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