Selaa lähdekoodia

调整总采购数量处理逻辑,纠正白样、产前样、大货样的研发部订单需求数量和总采购数量

lvjs 1 päivä sitten
vanhempi
commit
782b261d94

+ 43 - 13
src/main/java/com/malk/eastar/service/impl/EastarTbServiceImpl.java

@@ -230,7 +230,18 @@ public class EastarTbServiceImpl  implements EastarTbService {
         List<String> jds=UtilMap.getList(data,"checkboxField_me9n37rs");
         Map<String,List<Map>> gysOrderData=new HashMap<>(); // 采购需求数据  按照供应商拆分BOM
 
+        Map<String,String> seriesDevNumMap = new HashMap<>();  //系列与研发部订单需求数量映射数据 add by Jason 20260320
+        String nameSeries;  //系列 add by Jason 20260320
+        String devNum;  //研发部订单需求数量 add by Jason 20260320
         for(Map map:table){
+            //获取系列与研发部订单需求数量映射 add by Jason 20260320 start
+            nameSeries = UtilMap.getString(map,"selectField_me2f7tw4");    //系列
+            devNum = UtilMap.getString(map,"numberField_mmke3fdc");   //研发部订单需求数量
+            if(seriesDevNumMap.get(nameSeries) == null){
+                seriesDevNumMap.put(nameSeries,devNum);
+            }
+            //获取系列与研发部订单需求数量映射 add by Jason 20260320 end
+
             Map taskMap=UtilMap.map("projectId, tasklistId, scenariofieldconfigId, stageId",tbProjectId,tasklistId,scenariofieldconfigId,stageId);
             taskMap.put("content",getValue(map,"selectField_me2f7tw4","-")+getValue(map,"textField_me2f7tvo","")); //系列 配件
             String gysName=UtilMap.getString(map,"textField_me2f7tvz");
@@ -269,6 +280,8 @@ public class EastarTbServiceImpl  implements EastarTbService {
         List<String> jdList=Arrays.asList("白样", "产前样","大货样", "大货");
         Object demoValue = orderData.get("textField_me2f7tvd");
         //        项目阶段处理
+        String numOfSets;   //工厂采购数量 add by Jason 20260320
+        int allSupplyNum;   //总采购数量 add by Jason 20260320
         for(String jd:jds){
             System.out.println("项目阶段:"+jd);
            if(jdList.contains(jd)){
@@ -292,7 +305,16 @@ public class EastarTbServiceImpl  implements EastarTbService {
                            procuremenType ="配件采购";
                            taskStatus ="待排期";
                            taskType ="大货";
+                           //计算总采购数量 add by Jason 20260320 start
+                           numOfSets = map.get("numberField_mifp03el")==null?null:map.get("numberField_mifp03el").toString();
+                           devNum = map.get("numberField_mmmwu4cg")==null?null:map.get("numberField_mmmwu4cg").toString();
+                           allSupplyNum = 0;
+                           if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(numOfSets)){
+                               allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(numOfSets);  //计算总采购数量
+                           }
+                           //计算总采购数量 add by Jason 20260320 end
                            Map<String, Object> copiedMap = new HashMap<>(map); // 关键:创建副本
+                           copiedMap.put("numberField_mmmwu4ci",allSupplyNum);    //总采购数量 add by Jason 20260320
                            copiedMap.put("dateField_mizvc5oi", planTimestamp);
                            modifiedList.add(copiedMap);
                        } else{
@@ -307,6 +329,8 @@ public class EastarTbServiceImpl  implements EastarTbService {
                            copiedMap.put("dateField_mizvc5oi", planTimestamp);
                            copiedMap.put("numberField_mkosp94h", demoValue);
                            copiedMap.put("numberField_mifp03el", demoValue);
+                           copiedMap.put("numberField_mmmwu4cg",0);    //研发部订单需求数量 add by Jason 20260320
+                           copiedMap.put("numberField_mmmwu4ci",demoValue);    //总采购数量 add by Jason 20260320
                            modifiedList.add(copiedMap);
                        }
                    }
@@ -334,17 +358,30 @@ public class EastarTbServiceImpl  implements EastarTbService {
         }
 //        生成包装任务:打样不需要生成包装
         if("大货".equals(orderType)){
-            savePackTask(tbProjectId, orderLangConf, data, pName, pId, pMainId, projectOrder, mchDDIdMap);
+            //seriesDevNumMap 系列与研发部订单需求数量映射数据 add by Jason 20260320
+            savePackTask(tbProjectId, orderLangConf, data, pName, pId, pMainId, projectOrder, mchDDIdMap, seriesDevNumMap);
         }
         return Collections.emptyMap();
     }
 
 //    生成包装任务
-    private List<Map> savePackTask(String tbProjectId, List <Map> orderLangConf,Map data,String pName,String pId,String pMainId,List projectOrder,Map mchDDIdMap) {
+    //seriesDevNumMap 系列与研发部订单需求数量映射数据 add by Jason 20260320
+    private List<Map> savePackTask(String tbProjectId, List <Map> orderLangConf,Map data,String pName,String pId,String pMainId,List projectOrder,Map mchDDIdMap,Map<String,String> seriesDevNumMap) {
         Map<String, List<Map>> packOrderData = new HashMap<>();
+        String nameSeries;  //系列 add by Jason 20260320
+        String devNum;  //研发部订单需求数量 add by Jason 20260320
+        int allSupplyNum;   //总采购数量 add by Jason 20260320
         for (Map orderMap : orderLangConf) {
             String supplier = UtilMap.getString(orderMap, "textField_mkp7yv76");
             String setsValue = UtilMap.getString(orderMap, "numberField_meqqj4wd");
+            //计算总采购数量 add by Jason 20260320 start
+            nameSeries = UtilMap.getString(orderMap, "textField_meqqj4wa");   //系列
+            devNum = seriesDevNumMap.get(nameSeries);
+            allSupplyNum = 0;
+            if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(setsValue)){
+                allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(setsValue);  //计算总采购数量
+            }
+            //计算总采购数量 add by Jason 20260320 end
             Map packTask = UtilMap.map(
                     "textField_mecmytpr, textField_mifp03eo, textField_mjr129o4, selectField_me2f7tw4, numberField_mkosp94h, numberField_mifp03el, " +
                             "numberField_mmmwu4cg, " + //研发部订单需求数量 add by Jason 20260312
@@ -355,8 +392,8 @@ public class EastarTbServiceImpl  implements EastarTbService {
                     UtilMap.getString(orderMap, "textField_meqqj4wa"),
                     setsValue,
                     setsValue,
-                    0, //研发部订单需求数量 add by Jason 20260312
-                    0 //总采购数量 add by Jason 20260312
+                    devNum, //研发部订单需求数量 add by Jason 20260320
+                    allSupplyNum //总采购数量 add by Jason 20260320
 
             );
             packOrderData.computeIfAbsent(supplier, k -> new ArrayList<>()).add(packTask);
@@ -396,7 +433,7 @@ public class EastarTbServiceImpl  implements EastarTbService {
         if (PublicUtil.isNull(taskMap,"executorId")){
             taskMap.remove("executorId");
         }
-        String rdNum = UtilMap.getString(cgDetail,"numberField_mmke3fdc"); //研发部订单需求数量 add by Jason 20260312
+        String rdNum; //研发部订单需求数量 add by Jason 20260312
         for(Map map: orderConf){
             Map tMap=new HashMap();
             tMap.putAll(taskMap);
@@ -430,21 +467,14 @@ public class EastarTbServiceImpl  implements EastarTbService {
             log.info("最终任务名称:{},详细参数:{}",tMap.get("content"),tMap);
             Map result=tbTask.createTask(tbConf.getOperatorId(), tMap);// 更新任务所属任务列表
             Map recod=new HashMap(cgDetail);
-            //计算总采购数量 add by Jason 20260312 start
-            int allSupplyNum = 0;
-            if(StringUtils.isNotEmpty(rdNum) && StringUtils.isNotEmpty(value)){
-                allSupplyNum = Integer.parseInt(rdNum) + Integer.parseInt(value);
-            }
-            //计算总采购数量 add by Jason 20260312 end
+            rdNum = UtilMap.getString(cgDetail,"numberField_mmke3fdc");   //研发部订单需求数量 add by Jason 20260312
             recod.putAll(
                     UtilMap.map(
                             "textField_mecmytpr, textField_mecmytps, textField_mecmytpt, numberField_mifp03el, " +
                                     "numberField_mmmwu4cg, " + //研发部订单需求数量 add by Jason 20260312
-                                    "numberField_mmmwu4ci, " + //总采购数量 add by Jason 20260312
                                     "textField_mifp03eo, textField_miib17jx, textField_mizvc5oj, textField_mjr129o4, numberField_mkosp94h, numberField_me2f7tw0",
                             result.get("content"),result.get("taskId"),"未开始",value,
                             rdNum, //研发部订单需求数量 add by Jason 20260312
-                            allSupplyNum, //总采购数量 add by Jason 20260312
                             sku,pId,result.get("taskId"),lang,value,UtilMap.getString(map, "numberField_mkf4bc4j")));
             recodTable.add(recod);
 //            for (String son:sonconf){

+ 0 - 8
src/main/java/com/malk/eastar/service/impl/YidaServiceImpl.java

@@ -429,7 +429,6 @@ public class YidaServiceImpl implements YidaService {
         String skuSN; //SKU编号,旧变量名 -> sku
         String numOfSets;   //套数【语言版本 - 数量拆分】或套数【系列套数】,旧变量名 -> value
         String devNum;  //研发部订单需求数量,旧变量名 -> rdNum
-        int allSupplyNum;   //总采购数量
         String partsName;   //配件名称
         Map partsRecord;  //配件记录,来源于【立项/项目台账】子表单【全品类】某一行记录,旧变量名 -> recod
         for(Map orderSubRecordLangOrSeries : orderSubDataLangOrSeries){    //遍历子表单记录,旧变量名 -> map
@@ -468,11 +467,6 @@ public class YidaServiceImpl implements YidaService {
                     "numberField_mesc7nvi"  // 套数【系列套数】
             ); // 数量
             devNum = UtilMap.getString(projectSubRecordParts,"numberField_mmke3fdc");   //研发部订单需求数量
-//            allSupplyNum = 0;
-//            if(StringUtils.isNotEmpty(devNum) && StringUtils.isNotEmpty(numOfSets)){
-//                allSupplyNum = Integer.parseInt(devNum) + Integer.parseInt(numOfSets);  //计算总采购数量
-//            }
-            allSupplyNum = Integer.parseInt(numOfSets); //暂时不加上“研发部订单需求数量”
             partsName = nameSeries + "-" + partsTypeName;
             /*
                 复制【立项/项目台账】子表单【全品类】记录为配件记录,并补充部分字段
@@ -485,7 +479,6 @@ public class YidaServiceImpl implements YidaService {
                                     //"textField_mecmytpt," +
                                     "numberField_mifp03el, " +   //工厂采购数量
                                     "numberField_mmmwu4cg, " +   //研发部订单需求数量
-                                    "numberField_mmmwu4ci, " +   //总采购数量
                                     "textField_mifp03eo, " + //SKU编号
                                     "textField_miib17jx, " + //项目订单编号
                                     "textField_mizvc5oj, " + //任务表明细实例标识
@@ -496,7 +489,6 @@ public class YidaServiceImpl implements YidaService {
                             //"未开始",
                             numOfSets,
                             devNum,
-                            allSupplyNum,
                             skuSN,
                             projectCode,
                             "~",