浏览代码

立项完成自动生成采购任务接口调整,调整小计金额计算逻辑

lvjs 2 月之前
父节点
当前提交
bed116b939

+ 1 - 0
src/main/java/com/malk/eastar/conf/EastarParam.java

@@ -23,6 +23,7 @@ public class EastarParam {
     public static String YD_FORMUUID_CUSTOMER_CONTACT = "FORM-F2217E70844B4836833AB97C56C27BDFRI4Y";    //客户跟进,add by Jason 20260522
     public static String YD_FORMUUID_ALERT_LOG = "FORM-49E10E54526E42B0925D0C809F4BF5DA8W4S";    //私海客户流出告警日志,add by Jason 20260522
     public static String YD_FORMUUID_ALERT_DETAIL = "FORM-AAA9AD76E53246B89356B09DEE5262552ZA0";    //私海客户流出风险提示,add by Jason 20260522
+    public static String YD_FORMUUID_PSS_SERIES = "FORM-3598FDFC625D44CD929675B32228BFC7ES87";    //PSS系列,add by Jason 20260529
 
     static {
         CUSTFIELD_ACCE.put("配件名","textField_me2f7tvo");

+ 54 - 15
src/main/java/com/malk/eastar/service/impl/YidaServiceImpl.java

@@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -297,8 +298,8 @@ public class YidaServiceImpl implements YidaService {
         List<UtilMap.assDetail> supplierBuyerDataAssSupplier;    //【供应商跟单员档案】关联表单【供应商】,旧变量名 -> gys
         String numOfSets;   //工厂采购数量
         int allSupplyNum;   //总采购数量
-        double unitPrice;   //单价
-        double subTotal;   //小计金额
+        BigDecimal unitPrice;   //单价
+        BigDecimal subTotal;   //小计金额
         for(String projectPhase : projectPhaseList){ //遍历项目包含阶段,旧变量名 -> jd
             log.info("项目阶段:"+projectPhase);
             if(partsTaskPhaseList.contains(projectPhase)){
@@ -338,11 +339,13 @@ public class YidaServiceImpl implements YidaService {
                             partsRecordNew.put("numberField_mmmwu4ci",0);    //总采购数量(废弃)
                             partsRecordNew.put("numberField_mifp03el",allSupplyNum);   //工厂采购数量
                             //计算小计金额
-                            if(partsRecord.get("numberField_me2f7tw0")!=null && StringUtils.isNotEmpty(partsRecord.get("numberField_mifp03el").toString().trim())){
-                                unitPrice = Double.parseDouble(partsRecord.get("numberField_me2f7tw0").toString()); //单价
-                                subTotal = unitPrice*allSupplyNum;
-                                partsRecordNew.put("numberField_mifp03ey", NumberUtil.decimalFormatMoney(subTotal));   //小计金额
+                            if(partsRecord.get("numberField_me2f7tw0")!=null && StringUtils.isNotEmpty(partsRecord.get("numberField_me2f7tw0").toString().trim())){
+                                unitPrice = new BigDecimal(partsRecord.get("numberField_me2f7tw0").toString().trim()); //单价
+                                subTotal = unitPrice.multiply(BigDecimal.valueOf(allSupplyNum));
+                                partsRecordNew.put("numberField_mifp03ey", subTotal);   //小计金额
                             }
+                            System.out.println("系列:"+UtilMap.getString(partsRecordNew,"textField_mpcf6yu2")+",语言:"+UtilMap.getString(partsRecordNew,"textField_mjr129o4")+",配件:"+UtilMap.getString(partsRecordNew,"textField_mecmytpr")
+                                    +",工厂采购数量:"+allSupplyNum+",单价:"+partsRecord.get("numberField_me2f7tw0").toString().trim()+",小计金额:"+UtilMap.getString(partsRecordNew,"numberField_mifp03ey"));
                             partsTaskSubDataNew.add(partsRecordNew);
                         } else{
                             if("大货样".equals(projectPhase)){
@@ -358,12 +361,8 @@ public class YidaServiceImpl implements YidaService {
                             partsRecordNew.put("numberField_mmmwu4cg",0);    //研发部订单需求数量
                             partsRecordNew.put("numberField_mmmwu4ci",0);    //总采购数量(废弃)
                             partsRecordNew.put("numberField_mifp03el", sampleNum);   //工厂采购数量
-                            //计算小计金额
-                            if(partsRecord.get("numberField_me2f7tw0")!=null && StringUtils.isNotEmpty(partsRecord.get("numberField_mifp03el").toString().trim())){
-                                unitPrice = Double.parseDouble(partsRecord.get("numberField_me2f7tw0").toString()); //单价
-                                subTotal = unitPrice*sampleNum;
-                                partsRecordNew.put("numberField_mifp03ey", NumberUtil.decimalFormatMoney(subTotal));   //小计金额
-                            }
+                            partsRecordNew.put("numberField_me2f7tw0", 0);   //单价
+                            partsRecordNew.put("numberField_mifp03ey", 0);   //小计金额
                             partsTaskSubDataNew.add(partsRecordNew);
                         }
                     }
@@ -486,6 +485,37 @@ public class YidaServiceImpl implements YidaService {
             );
         }
 
+        /*
+            新增【PSS系列】记录
+         */
+        Map<String,String> pssSeriesMap = new HashMap<>();
+        for(Map projectSubRecordLang : projectSubDataLang){
+            nameSeries = UtilMap.getString(projectSubRecordLang,"textField_mn6vamof");    //系列
+            codeSeries = UtilMap.getString(projectSubRecordLang,"textField_mn6vamog");    //系列编号
+            if (!pssSeriesMap.containsKey(nameSeries)) {
+                pssSeriesMap.put(nameSeries, codeSeries);
+            }
+        }
+        Map projectPssSeriesMap;
+        for(String seriesName : pssSeriesMap.keySet()){
+            projectPssSeriesMap = UtilMap.map(
+                    "textField_mpdet3xr, " +  //项目编号(立项流程)
+                            "textField_mpdet3xs, " +   //系列
+                            "textField_mpdey1no",  //系列编号
+                    projectCode,
+                    seriesName,
+                    pssSeriesMap.get(seriesName)
+            );
+            log.info("新增【PSS系列】记录:"+ JSONObject.toJSONString(projectPssSeriesMap));
+            ydClient.operateData(
+                    YDParam.builder()
+                            .formUuid(EastarParam.YD_FORMUUID_PSS_SERIES)
+                            .formDataJson(JSONObject.toJSONString(projectPssSeriesMap))
+                            .build(),
+                    YDConf.FORM_OPERATION.create
+            );
+        }
+
 
         return Collections.emptyMap();
     }
@@ -580,6 +610,7 @@ public class YidaServiceImpl implements YidaService {
                                     "textField_mizvc5oj, " + //任务表明细实例标识
                                     "textField_mpcf6yu2, " + //系列
                                     "textField_mjr129o4, " + //语言
+                                    "radioField_mpm9k87c, " + //配件共用信息
                                     "numberField_me2f7tw0", //单价
                             partsName,
                             UtilMap.getString(projectSubRecordParts,"selectField_mizsccds"),
@@ -593,7 +624,8 @@ public class YidaServiceImpl implements YidaService {
                             "~",
                             UtilMap.getString(projectSubRecordParts,"selectField_me2f7tw4"),
                             nameLang,
-                            UtilMap.getString(orderSubRecordLang, "numberField_mkf4bc4j")   //货值单价
+                            UtilMap.getString(projectSubRecordParts,"radioField_me2f7tvw"), //配件共用信息
+                            UtilMap.getString(projectSubRecordParts,"numberField_mpqc5tmf") //大货供应商单价
                     )
             );
             partsRecordList.add(partsRecord);
@@ -655,6 +687,7 @@ public class YidaServiceImpl implements YidaService {
                     allSupplyNum = Integer.parseInt(numOfSets);  //总采购数量=工厂采购数量
                 }
             }
+
             partsRecord = UtilMap.map(
                     "textField_mecmytpr, " +    //配件名称
                             "textField_mifp03eo, " +    //SKU编号
@@ -664,7 +697,9 @@ public class YidaServiceImpl implements YidaService {
                             "numberField_mkosp94h, " +  //客户订单数量
                             "numberField_mmmwu4cg, " +  //研发部订单需求数量
                             "numberField_mmmwu4ci, " +  //总采购数量(废弃)
-                            "numberField_mifp03el", //工厂采购数量
+                            "numberField_mifp03el, "+ //工厂采购数量
+                            "numberField_me2f7tw0, "+ //单价
+                            "numberField_mifp03ey", //小计金额
                     UtilMap.getString(orderSubRecordLang, "textField_mizmmf8k"),    //成品名称
                     UtilMap.getString(orderSubRecordLang, "textField_mizmmf8j"),    //成品编号
                     UtilMap.getString(orderSubRecordLang, "textField_meqqj4wb"),    //语言
@@ -673,8 +708,12 @@ public class YidaServiceImpl implements YidaService {
                     numOfSets,
                     devNum, //研发部订单需求数量
                     0, //总采购数量(废弃)
-                    allSupplyNum    //工厂采购数量
+                    allSupplyNum,    //工厂采购数量
+                    0,  //单价
+                    0 //小计金额
             );
+
+
             partsRecordListBySupplier.computeIfAbsent(supplier, k -> new ArrayList<>()).add(partsRecord);
         }
         List<String> ssUserId = (List<String>) UtilMap.getList(projectData, "employeeField_me2hyld9_id");  // 业务员 userid