材料出库接口去除电缆代码

This commit is contained in:
李正@用友 2025-07-01 09:37:32 +08:00
parent 691bbb8815
commit 87c25fbf45
2 changed files with 144 additions and 119 deletions

View File

@ -48,9 +48,9 @@ import java.util.*;
public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain{ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain{
private static final BaseDAO DAO = new BaseDAO(); // private static final BaseDAO DAO = new BaseDAO();
private static final IHttpPostOtherSys HTTP_POST_OTHER_SYS = NCLocator.getInstance().lookup(IHttpPostOtherSys.class); // private static final IHttpPostOtherSys HTTP_POST_OTHER_SYS = NCLocator.getInstance().lookup(IHttpPostOtherSys.class);
@Override @Override
public MaterialOutVO[] save(List<Map<String, Object>> paramList) throws BusinessException { public MaterialOutVO[] save(List<Map<String, Object>> paramList) throws BusinessException {
@ -70,11 +70,11 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain{
// 翻译货位 // 翻译货位
ICAPILocationVOUtils.translate(vos); ICAPILocationVOUtils.translate(vos);
boolean isSpecialCase = checkSpecialCondition(paramList); // boolean isSpecialCase = checkSpecialCondition(paramList);
// 如果判定成功处理金思维的材料出库将来源的相关数据补充上 // 如果判定成功处理金思维的材料出库将来源的相关数据补充上
if (isSpecialCase) { // if (isSpecialCase) {
processPickingPlanSpecialLogic(vos); // processPickingPlanSpecialLogic(vos);
} // }
//其他数据填充 //其他数据填充
new MaterialOutSaveFillValue().setDefaultValue(vos); new MaterialOutSaveFillValue().setDefaultValue(vos);
@ -283,132 +283,132 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain{
/** /**
* 检查是否满足特殊条件需要同步的组织 * 检查是否满足特殊条件需要同步的组织
*/ */
private boolean checkSpecialCondition(List<Map<String, Object>> materialOutVOS) throws BusinessException { // private boolean checkSpecialCondition(List<Map<String, Object>> materialOutVOS) throws BusinessException {
//
List<MaterialOutVO> aggVOList = // List<MaterialOutVO> aggVOList =
TransferMapToVOTool.transferMapToAggVO(materialOutVOS, MaterialOutVO.class); // TransferMapToVOTool.transferMapToAggVO(materialOutVOS, MaterialOutVO.class);
MaterialOutVO[] vos = // MaterialOutVO[] vos =
aggVOList.toArray(new MaterialOutVO[aggVOList.size()]); // aggVOList.toArray(new MaterialOutVO[aggVOList.size()]);
//
if(Objects.isNull(materialOutVOS)){ // if(Objects.isNull(materialOutVOS)){
return false; // return false;
} // }
for (MaterialOutVO materialOutVO : vos) { // for (MaterialOutVO materialOutVO : vos) {
MaterialOutHeadVO head = materialOutVO.getHead(); // MaterialOutHeadVO head = materialOutVO.getHead();
// 提取组织 // // 提取组织
String pkOrg = head.getPk_org(); // String pkOrg = head.getPk_org();
// 翻译成code // // 翻译成code
// String orgCode = transferCodeByPk(StockOrgVO.getDefaultTableName(), StockOrgVO.CODE, StockOrgVO.PK_ORG, pkOrg); //// String orgCode = transferCodeByPk(StockOrgVO.getDefaultTableName(), StockOrgVO.CODE, StockOrgVO.PK_ORG, pkOrg);
// 使用统一的组织判断方法 // // 使用统一的组织判断方法
if(HTTP_POST_OTHER_SYS.checkIfIncludeOrg(pkOrg)){ //// if(HTTP_POST_OTHER_SYS.checkIfIncludeOrg(pkOrg)){
return true; //// return true;
} //// }
} // }
return false; // return false;
} // }
/** /**
* 处理备料计划特殊逻辑 * 处理备料计划特殊逻辑
*/ */
private void processPickingPlanSpecialLogic(MaterialOutVO[] vos) throws BusinessException { // private void processPickingPlanSpecialLogic(MaterialOutVO[] vos) throws BusinessException {
//
for (MaterialOutVO vo : vos) { // for (MaterialOutVO vo : vos) {
MaterialOutBodyVO[] bodyVOs = vo.getBodys(); // MaterialOutBodyVO[] bodyVOs = vo.getBodys();
if (bodyVOs != null) { // if (bodyVOs != null) {
for (MaterialOutBodyVO bodyVO : bodyVOs) { // for (MaterialOutBodyVO bodyVO : bodyVOs) {
// 获取物料编码 // // 获取物料编码
String materialCode = transferCodeByPk(MaterialVO.getDefaultTableName(), MaterialVO.CODE, MaterialVO.PK_MATERIAL, bodyVO.getCmaterialvid()); // String materialCode = transferCodeByPk(MaterialVO.getDefaultTableName(), MaterialVO.CODE, MaterialVO.PK_MATERIAL, bodyVO.getCmaterialvid());
if (StringUtils.isEmpty(materialCode)|| StringUtils.isEmpty(bodyVO.getCsourcebillbid())) { // if (StringUtils.isEmpty(materialCode)|| StringUtils.isEmpty(bodyVO.getCsourcebillbid())) {
continue; // continue;
} // }
// 基于mmpickmview视图查询备料计划相关数据 // // 基于mmpickmview视图查询备料计划相关数据
String sql = buildPickingPlanQuery(materialCode,bodyVO.getCsourcebillbid()); // String sql = buildPickingPlanQuery(materialCode,bodyVO.getCsourcebillbid());
//
try { // try {
List<Map<String, Object>> pickingPlanData = (List<Map<String, Object>>) DAO.executeQuery(sql, new MapListProcessor()); // List<Map<String, Object>> pickingPlanData = (List<Map<String, Object>>) DAO.executeQuery(sql, new MapListProcessor());
//
// 不唯一或者找不到这样是有问题抛出 // // 不唯一或者找不到这样是有问题抛出
if(pickingPlanData==null || pickingPlanData.isEmpty()){ // if(pickingPlanData==null || pickingPlanData.isEmpty()){
throw new BusinessException("根据生产订单明细主键和物料编码去查询bip的中间视图mmpickmview找不到数据无法进行材料出库的上游主键赋值请检查数据,报错SQL:"+sql); // throw new BusinessException("根据生产订单明细主键和物料编码去查询bip的中间视图mmpickmview找不到数据无法进行材料出库的上游主键赋值请检查数据,报错SQL:"+sql);
} // }
//
if(pickingPlanData.size()!=1){ // if(pickingPlanData.size()!=1){
throw new BusinessException("根据生产订单明细主键和物料编码去查询bip的中间视图mmpickmview不唯一无法进行材料出库的上游主键赋值请检查数据,报错SQL:"+sql); // throw new BusinessException("根据生产订单明细主键和物料编码去查询bip的中间视图mmpickmview不唯一无法进行材料出库的上游主键赋值请检查数据,报错SQL:"+sql);
} // }
//
if (pickingPlanData != null && !pickingPlanData.isEmpty()) { // if (pickingPlanData != null && !pickingPlanData.isEmpty()) {
// 处理查询到的备料计划数据 // // 处理查询到的备料计划数据
processPickingPlanData(bodyVO, pickingPlanData); // processPickingPlanData(bodyVO, pickingPlanData);
} // }
//
} catch (Exception e) { // } catch (Exception e) {
throw new BusinessException("查询备料计划数据失败: " + e.getMessage(), e); // throw new BusinessException("查询备料计划数据失败: " + e.getMessage(), e);
} // }
} // }
} // }
} // }
} // }
/** /**
* 构建备料计划查询SQL基于mmpickmview视图 * 构建备料计划查询SQL基于mmpickmview视图
*/ */
private String buildPickingPlanQuery(String materialCode,String cpmohid) { // private String buildPickingPlanQuery(String materialCode,String cpmohid) {
StringBuilder sql = new StringBuilder(); // StringBuilder sql = new StringBuilder();
sql.append("SELECT "); // sql.append("SELECT ");
sql.append(" CODE,"); // 物料编码 // sql.append(" CODE,"); // 物料编码
sql.append(" PK_BILLTYPECODE,"); // 备料计划交易类型编码 // sql.append(" PK_BILLTYPECODE,"); // 备料计划交易类型编码
sql.append(" CPICKMID,"); // 备料计划主键 // sql.append(" CPICKMID,"); // 备料计划主键
sql.append(" CMOID,"); // 流程生产订单行主键 // sql.append(" CMOID,"); // 流程生产订单行主键
sql.append(" CPMOHID,"); // 流程生产订单主键 // sql.append(" CPMOHID,"); // 流程生产订单主键
sql.append(" VROWNO,"); // 备料计划明细行号 // sql.append(" VROWNO,"); // 备料计划明细行号
sql.append(" CPICKM_BID "); // 备料计划明细主键 // sql.append(" CPICKM_BID "); // 备料计划明细主键
sql.append("FROM MMPICKMVIEW "); // sql.append("FROM MMPICKMVIEW ");
sql.append("WHERE CODE = '").append(materialCode).append("' AND ") // sql.append("WHERE CODE = '").append(materialCode).append("' AND ")
.append("cmoid ='").append(cpmohid).append("'"); // .append("cmoid ='").append(cpmohid).append("'");
return sql.toString(); // return sql.toString();
} // }
/** /**
* 处理备料计划数据 * 处理备料计划数据
*/ */
private void processPickingPlanData(MaterialOutBodyVO bodyVO, List<Map<String, Object>> pickingPlanData) { // private void processPickingPlanData(MaterialOutBodyVO bodyVO, List<Map<String, Object>> pickingPlanData) {
if (pickingPlanData == null || pickingPlanData.isEmpty()) { // if (pickingPlanData == null || pickingPlanData.isEmpty()) {
return; // return;
} // }
//
Map<String, Object> firstRow = pickingPlanData.get(0); // Map<String, Object> firstRow = pickingPlanData.get(0);
//
// 设置备料计划相关字段 // // 设置备料计划相关字段
if (firstRow.get("cpickmid") != null) { // if (firstRow.get("cpickmid") != null) {
bodyVO.setCsourcebillhid(firstRow.get("cpickmid").toString()); // 来源单据ID // bodyVO.setCsourcebillhid(firstRow.get("cpickmid").toString()); // 来源单据ID
} // }
//
if (firstRow.get("cpickm_bid") != null) { // if (firstRow.get("cpickm_bid") != null) {
bodyVO.setCsourcebillbid(firstRow.get("cpickm_bid").toString()); // 来源单据行ID // bodyVO.setCsourcebillbid(firstRow.get("cpickm_bid").toString()); // 来源单据行ID
} // }
//
if (firstRow.get("pk_billtypecode") != null) { // if (firstRow.get("pk_billtypecode") != null) {
bodyVO.setCsourcetranstype(firstRow.get("pk_billtypecode").toString()); // 交易类型编码 // bodyVO.setCsourcetranstype(firstRow.get("pk_billtypecode").toString()); // 交易类型编码
} // }
bodyVO.setCsourcetype("55A3"); // bodyVO.setCsourcetype("55A3");
} // }
/** /**
* 根据主键查询编码 * 根据主键查询编码
*/ */
private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException { // private String transferCodeByPk(String tableName, String selectField, String pkField, String pk) throws BusinessException {
if (nc.vo.cmp.util.StringUtils.isEmpty(pk)) { // if (nc.vo.cmp.util.StringUtils.isEmpty(pk)) {
return null; // return null;
} // }
SqlBuilder sqlBuilder = new SqlBuilder(); // SqlBuilder sqlBuilder = new SqlBuilder();
sqlBuilder.append(" select " + selectField); // sqlBuilder.append(" select " + selectField);
sqlBuilder.append(" from " + tableName); // sqlBuilder.append(" from " + tableName);
sqlBuilder.append(" where "); // sqlBuilder.append(" where ");
sqlBuilder.append(pkField, pk); // sqlBuilder.append(pkField, pk);
Object o = DAO.executeQuery(sqlBuilder.toString(), new ColumnProcessor()); // Object o = DAO.executeQuery(sqlBuilder.toString(), new ColumnProcessor());
if (o == null) { // if (o == null) {
throw new BusinessException("未查询到编码信息sql【" + sqlBuilder + ""); // throw new BusinessException("未查询到编码信息sql【" + sqlBuilder + "");
} // }
return o.toString(); // return o.toString();
} // }
} }

View File

@ -0,0 +1,25 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nccloud.api.ic.m4d;
import java.util.List;
import java.util.Map;
import nc.vo.ic.m4d.entity.MaterialOutVO;
import nc.vo.pub.BusinessException;
public interface IAPIMaterialOutMaintain {
MaterialOutVO[] save(List<Map<String, Object>> var1) throws BusinessException;
MaterialOutVO[] update(List<Map<String, Object>> var1) throws BusinessException;
MaterialOutVO[] delete(MaterialOutVO[] var1) throws BusinessException;
MaterialOutVO[] sign(MaterialOutVO[] var1) throws BusinessException;
MaterialOutVO[] unSign(MaterialOutVO[] var1) throws BusinessException;
MaterialOutVO[] saveByRef(List<Map<String, Object>> var1) throws BusinessException;
}