Bladeren bron

快客利更新供货商v3.0

wzy 10 maanden geleden
bovenliggende
commit
25a97af48f

+ 1 - 13
mjava-kuaikeli/src/main/java/com/malk/kuaikeli/controller/KKLController.java

@@ -29,11 +29,6 @@ public class KKLController {
     @Autowired
     private KKLService kklService;
 
-    @GetMapping("hello")
-    public String hello() {
-        return "hello";
-    }
-
     /**
      * [动态] 发起单据, 分供应商进行流程推送
      */
@@ -180,7 +175,7 @@ public class KKLController {
     }
 
     /**
-     * 更新菜品管理原材料
+     * 更新定价单供应商
      * @param map
      * @return
      */
@@ -193,13 +188,6 @@ public class KKLController {
         return kklService.updateSuppliers(formInstId);
     }
 
-    @PostMapping("updateFoodMaterials")
-    McR updateFoodMaterials(@RequestBody Map map) {
-        String formInstId = map.get("formInstId").toString();
-        return kklService.updateFoodMaterials(formInstId);
-    }
-
-    
     @PostMapping("test")
     McR test(HttpServletRequest request) {
         Map data = UtilServlet.getParamMap(request);

+ 0 - 1
mjava-kuaikeli/src/main/java/com/malk/kuaikeli/service/KKLService.java

@@ -33,5 +33,4 @@ public interface KKLService {
 
     List<Map<String, String>> getDiffMatchingSuppliers2(String projectCode,String oldSupplierCode, String newSupplierCode);
 
-    McR updateFoodMaterials(String formInstId);
 }

+ 28 - 57
mjava-kuaikeli/src/main/java/com/malk/kuaikeli/service/impl/KKLImplService.java

@@ -18,6 +18,7 @@ import lombok.SneakyThrows;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -655,50 +656,6 @@ public class KKLImplService implements KKLService {
         return diffList;
     }
 
-    @Async
-    @Override
-    public McR updateFoodMaterials(String formInstId) {
-        //获取菜品管理信息
-        Map foodFormData = ydClient.queryData(YDParam.builder().formInstanceId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
-        List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
-        for (Map material : materialList) {
-            String jsonString = material.get("associationFormField_lln3lmmv_id").toString();
-            String materialJsonString = StringEscapeUtils.unescapeJava(jsonString.substring(1, jsonString.length() - 1));//新供应商原材料(关联表单)
-
-            Map materialMap =(((List<Map>) JSONArray.parse(materialJsonString))).get(0);
-            String instanceId = materialMap.get("instanceId").toString();
-
-            //获取定价单明细中间表信息
-            Map formData1 = ydClient.queryData(YDParam.builder().formInstanceId(instanceId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
-
-            materialMap.put("title",formData1.get("textField_llkb7kd1").toString());
-            materialMap.put("subTitle",formData1.get("textField_lmkfg67e"));
-            List<Map> list = new ArrayList<>();
-            list.add(materialMap);
-            material.put("associationFormField_lln3lmmv",list);//原材料(关联表单)
-            material.put("textField_lln3lmn2",formData1.get("textField_llkb7kd3"));//单位
-            material.put("textField_llyy3khw",formData1.get("textField_lmkfg67e"));//品牌
-            material.put("textField_lz0ve9ct",formData1.get("textField_llkb7kd4"));//规格
-            material.put("numberField_lnrzzg03",formData1.get("numberField_lnrzzg03"));//整包装数量
-            material.put("textField_lnrzzg04",formData1.get("textField_lnrzzg04"));//整包装单位
-            material.put("textField_llndm599",formData1.get("textField_llkb7kd1"));//原材料名称
-            material.put("textField_lmk94yf5",formData1.get("textField_llkb7kd2"));//原材料编号
-            material.put("selectField_lmqclyx9",formData1.get("selectField_llkb7kd5"));//第一分类
-            material.put("numberField_lmqclyxa",formData1.get("numberField_llkknd6h"));//供货价
-            material.put("numberField_lmsvffts",formData1.get("numberField_llkknd6g"));//成本单价
-            material.put("numberField_lmsvfftt",formData1.get("numberField_llkb7kcy"));//服务费率
-        }
-
-//        foodFormData.put("tableField_llm1i9yy",materialList);
-
-        ydClient.operateData(YDParam.builder()
-                .formInstanceId(formInstId)
-                .updateFormDataJson(JSON.toJSONString(foodFormData))
-                .build(), YDConf.FORM_OPERATION.update);
-
-        return McR.success();
-    }
-
     private List<Map> getYdFormDataList(String formUuid, String searchCondition, YDConf.FORM_QUERY formQuery) {
         List<Map> list = new ArrayList<>();
         DDR_New ddrNew;
@@ -803,9 +760,10 @@ public class KKLImplService implements KKLService {
             return McR.errorUnknown("新供应商原材料编号存在重复!");
         }
 
-        for (Map diff : diffList) {
+        /*for (Map diff : diffList) {
             String oldCode = String.valueOf(diff.get("textField_lyxr5c44"));//老供应商原材料编号
             String newCode = String.valueOf(diff.get("textField_lywr2qcv"));//新供应商原材料编号
+
             if (!newMatchSupplierMaterialCodes.contains(newCode)){
                 //查询旧供应商原材料信息
                 List<Map> data = (List<Map>) ydClient.queryData(YDParam.builder()
@@ -824,8 +782,11 @@ public class KKLImplService implements KKLService {
                             .formDataJson(JSON.toJSONString(diffFormData)).build(), YDConf.FORM_OPERATION.create);
                 }
             }
-        }
-        Map changeCodeMap = new HashMap<>();
+        }*/
+
+        //未匹配上的原材料
+        List<String> notMatchCodes = new ArrayList<>();
+
         //获取旧供应商定价单明细中间表
         List<Map> oldSupplierMaterials = getYdFormDataList(PRICE_DETAIL_MIDDLE, JSON.toJSONString(UtilMap.map("textField_llzzbyj1, textField_llm1vtjm", oldSupplierCode,projectCode)), YDConf.FORM_QUERY.retrieve_list);
         for (Map oldSupplierMaterial : oldSupplierMaterials) {
@@ -835,21 +796,22 @@ public class KKLImplService implements KKLService {
             String formInstanceId = String.valueOf(oldSupplierMaterial.get("formInstanceId"));
 
             String newCode = "";
-            String newName = "";
 
             //更新定价单明细中间表
             oldSupplierMaterialFormData.put("textField_lmsli3bq", newSupplierName);//供应商名称
             oldSupplierMaterialFormData.put("textField_llzzbyj1", newSupplierCode);//供应商编号
 
-            //未匹配上的原材料
+            //未匹配上的原材料  将明细删除
             int index1 = oldDiffSupplierMaterialCodes.indexOf(code);
             if (index1 != -1){
-                newCode = newDiffSupplierMaterialCodes.get(index1);
-                oldSupplierMaterialFormData.put("textField_llkb7kd2", newCode);//物品编号
+                /*ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
+                        .formInstanceId(formInstanceId)
+                        .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_lm4lxur8","已停用"))).build(), YDConf.FORM_OPERATION.update);
+*/
                 ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
                         .formInstanceId(formInstanceId)
-                        .updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
-                changeCodeMap.put(code,newCode);
+                        .build(), YDConf.FORM_OPERATION.delete);
+                notMatchCodes.add(code);
                 continue;
             }
             //手动匹配上的原材料
@@ -861,7 +823,6 @@ public class KKLImplService implements KKLService {
                 ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
                         .formInstanceId(formInstanceId)
                         .updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
-                changeCodeMap.put(code,newCode);
                 continue;
             }
             //自动匹配上的原材料
@@ -873,11 +834,9 @@ public class KKLImplService implements KKLService {
                     ydClient.operateData(YDParam.builder().formUuid(PRICE_DETAIL_MIDDLE)
                             .formInstanceId(formInstanceId)
                             .updateFormDataJson(JSON.toJSONString(oldSupplierMaterialFormData)).build(), YDConf.FORM_OPERATION.update);
-                    changeCodeMap.put(code,newCode);
                     break;
                 }
             }
-
         }
 
         //更新定价单
@@ -908,10 +867,17 @@ public class KKLImplService implements KKLService {
             //获取菜品管理信息
             Map foodFormData = (Map) datum.get("formData");
             List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
+            List<String> errorCodes = new ArrayList<>();
 
 //            Map foodFormData = ydClient.queryData(YDParam.builder().formInstanceId(formInstId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
 //            List<Map> materialList = (List<Map>) foodFormData.get("tableField_llm1i9yy");
             for (Map material : materialList) {
+                String code = material.get("textField_lmk94yf5").toString();
+                //如果明细被删除
+                if (notMatchCodes.contains(code)){
+                    errorCodes.add(code);
+                    continue;
+                }
                 String jsonString3 = material.get("associationFormField_lln3lmmv_id").toString();
                 String materialJsonString = StringEscapeUtils.unescapeJava(jsonString3.substring(1, jsonString3.length() - 1));//新供应商原材料(关联表单)
 
@@ -939,7 +905,12 @@ public class KKLImplService implements KKLService {
                 material.put("numberField_lmsvfftt",formData1.get("numberField_llkb7kcy"));//服务费率
             }
 
-        foodFormData.put("tableField_llm1i9yy",materialList);
+            if (!errorCodes.isEmpty()){
+                foodFormData.put("selectField_lzaq9r7i","异常");
+                foodFormData.put("textField_lzaq9r7n",String.join(",",errorCodes));
+            }
+
+            foodFormData.put("tableField_llm1i9yy",materialList);
 
             ydClient.operateData(YDParam.builder()
                     .formInstanceId(formInstId)