材料出库接口去除电缆代码
This commit is contained in:
		
							parent
							
								
									691bbb8815
								
							
						
					
					
						commit
						87c25fbf45
					
				| 
						 | 
					@ -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();
 | 
				
			||||||
    }
 | 
					//    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue