Parcourir la source

账龄表更新

pruple_boy il y a 5 mois
Parent
commit
8c0f479dbd

+ 1 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -214,6 +214,7 @@ public class TimerController {
         }
         return McR.success();
     }
+
     @PostMapping("testNC")
     public void testNC(){
         ncService.getProjectOperate();

+ 24 - 15
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/FImplService.java

@@ -46,7 +46,7 @@ private YDService ydService;
     public void syncCallLetters() {
         List<Map> dataList = ydService.queryFormData_all(_initLYParam()
                 .formUuid("FORM-EC785A5AB2B9432C892062823EB7C62A9NTL")
-                .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lvituew9, radioField_m4qrz687", "正常", "否")))
+//                .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lvituew9, radioField_m4qrz687", "正常", "否")))
                 .build());
         // 更新数据版本, upsert不支持版本更新
 //        if (true) {
@@ -125,7 +125,7 @@ private YDService ydService;
 
         List<Map> dataList = ydService.queryFormData_all(_initLYParam()
                 .formUuid("FORM-6603375ED27B4D059CBB919C2BEFA44BZVOL")
-//                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lvdosccc", "KP_2024121301677")))
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lvdosccc", "KP_2024120501538")))
                 .build());
 
         // 合同业务类型: 日保一次性与小业主一致
@@ -144,16 +144,16 @@ private YDService ydService;
 
         // 账龄表子表: 1 开票周期, 开票周期-文本, 开票内容, 含税单价, 数量, 税率
         List<String> compId_detail = UtilList.asList("dateField_m25j5gxu", "textField_m25j5gxv", "textField_lvdnme0u", "numberField_lvdnme0w", "numberField_lvdnme0x", "numberField_lvdnme0y");
-        // 账龄表子表: 2 含税小计, 税额, 无税金额, 差异说明, 已回款金额, 回款周期, 回款周期-文本, 子表流水号
-        compId_detail.addAll(Arrays.asList("numberField_lvdnme0z", "numberField_lvdnme10", "numberField_lvdnme11", "textareaField_m25j5gyc", "numberField_lvg084l9", "dateField_m0dp1g0e", "textField_m25j5gyh", "textField_m5297e3q"));
+        // 账龄表子表: 2 含税小计, 税额, 无税金额, 差异说明, 已回款金额, 回款周期, 回款周期-文本, 子表流水号, 物料名称
+        compId_detail.addAll(Arrays.asList("numberField_lvdnme0z", "numberField_lvdnme10", "numberField_lvdnme11", "textareaField_m25j5gyc", "numberField_lvg084l9", "dateField_m0dp1g0e", "textField_m25j5gyh", "textField_m5297e3q", "textField_m5aes96o"));
         // 账龄表子表: 匹配来源数据表
         Map compIds_tab = UtilMap.map("tableField_lvc9x4vt, tableField_lvd8pp44, tableField_lvdnme13",
                 // 大业主对应子表
-                Arrays.asList("dateField_lw5uybgq", "dateField_lw5uybgq_wb", "textField_lvd8pp2t", "numberField_lvd8pp2v", "numberField_lvd8pp2w", "numberField_lvd8pp2x", "numberField_lvd8pp2y", "numberField_lvd8pp2z", "numberField_lvd8pp30", "textField_lvdnme0g", "numberField_lvg084lb", "dateField_m0f55roc", "dateField_m0f55roc_wb", "textField_lvdojfup"),
+                Arrays.asList("dateField_lw5uybgq", "dateField_lw5uybgq_wb", "textField_lvd8pp2t", "numberField_lvd8pp2v", "numberField_lvd8pp2w", "numberField_lvd8pp2x", "numberField_lvd8pp2y", "numberField_lvd8pp2z", "numberField_lvd8pp30", "textField_lvdnme0g", "numberField_lvg084lb", "dateField_m0f55roc", "dateField_m0f55roc_wb", "textField_lvdojfup", "associationFormField_lvynhq7p"),
                 // 工程订单对应子表
-                Arrays.asList("dateField_lvd8pp45", "ateField_lvd8pp45_wb", "textField_lvd8pp3w", "numberField_lvd8pp3y", "numberField_lvd8pp3z", "numberField_lvd8pp40", "numberField_lvd8pp41", "numberField_lvd8pp42", "numberField_lvd8pp43", "textField_lvdnme0h", "numberField_lvg084l9", "dateField_m0dp1g0e", "dateField_m0dp1g0e_wb", "textField_lvdojfur"),
+                Arrays.asList("dateField_lvd8pp45", "ateField_lvd8pp45_wb", "textField_lvd8pp3w", "numberField_lvd8pp3y", "numberField_lvd8pp3z", "numberField_lvd8pp40", "numberField_lvd8pp41", "numberField_lvd8pp42", "numberField_lvd8pp43", "textField_lvdnme0h", "numberField_lvg084l9", "dateField_m0dp1g0e", "dateField_m0dp1g0e_wb", "textField_lvdojfur", "associationFormField_lvynrr6a"),
                 // 小业主\日报一次性对应子表
-                Arrays.asList("dateField_lvdnme0t", "dateField_lvdnme0t_wb", "textField_lvdnme0u", "numberField_lvdnme0w", "numberField_lvdnme0x", "numberField_lvdnme0y", "numberField_lvdnme0z", "numberField_lvdnme10", "numberField_lvdnme11", "textField_lvdnme12", "numberField_lvg084la", "dateField_m0f55roe", "dateField_m0f55roe_wb", "textField_lvdojfus"));
+                Arrays.asList("dateField_lvdnme0t", "dateField_lvdnme0t_wb", "textField_lvdnme0u", "numberField_lvdnme0w", "numberField_lvdnme0x", "numberField_lvdnme0y", "numberField_lvdnme0z", "numberField_lvdnme10", "numberField_lvdnme11", "textField_lvdnme12", "numberField_lvg084la", "dateField_m0f55roe", "dateField_m0f55roe_wb", "textField_lvdojfus", "associationFormField_lvynrr6c"));
 
         // 明细处理为主表记录, 以明细形式写入
         for (Map formData : dataList) {
@@ -175,18 +175,25 @@ private YDService ydService;
             }
             // 子表数据匹配 _wb
             for (Map detail : details) {
-                // 唯一条件: 单据编号 + 业务类型 + 开票周期
+                // 唯一条件: 单据编号 + 业务类型 + 开票周期 + UUID + 物料名称 (ppExt: 同一个开票周期下, 会有不同物料名称)
                 String compId_date = (String) UtilMap.getList(compIds_tab, compId_type).get(0);
-                String uuid_filed = (String) UtilMap.getList(compIds_tab, compId_type).get(13);
                 long kpzq = UtilMap.getLong(detail, compId_date);
-                String uuid = UtilMap.getString(detail, uuid_filed);
                 if (kpzq == 0) {
                     continue;
                 }
+                String material = "", uuid = ""; // 物料取值关联表单, uuid为避免重复
                 List<String> arrCompId = UtilMap.getList(compIds_tab, compId_type);
                 for (int i = 0; i < arrCompId.size(); i++) {
                     String key = compId_detail.get(i);
-                    if (arrCompId.get(i).contains("dateField_")) {
+                    if (key.equals("textField_m5aes96o")) {
+                        String cId = arrCompId.get(i)+ "_id";
+                        if (!detail.containsKey(cId)) {
+                            continue;
+                        }
+                        List<Map> associations =  (List<Map>) JSON.parse(String.valueOf(JSON.parse(UtilMap.getString(detail, cId))));
+                        material = UtilMap.getString(associations.get(0), "title");
+                        dataForm.put(key, material);
+                    } else if (arrCompId.get(i).contains("dateField_")) {
                         String cId = arrCompId.get(i).replace("_wb", "");
                         if (!detail.containsKey(cId)) {
                             continue;
@@ -201,6 +208,9 @@ private YDService ydService;
                             dataForm.put(key, tm);
                         }
                     } else {
+                        if (key.equals("textField_m5297e3q")) {
+                            uuid =  UtilMap.getString(detail, arrCompId.get(i));
+                        }
                         dataForm.put(key, detail.get(arrCompId.get(i)));
                     }
                 }
@@ -209,11 +219,10 @@ private YDService ydService;
                 searchCondition.addAll(Arrays.asList(
                         YDConf.searchCondition_TextFiled("textField_lvdosccc", UtilMap.getString(formData, "textField_lvdosccc"), "eq"),
                         YDConf.searchCondition_TextFiled("selectField_lvc9x4vn", UtilMap.getString(formData, "selectField_lvc9x4vn"), "eq"),
-                        YDConf.searchCondition_TextFiled("textField_m25j5gxv", kpzq_wb, "eq")
+                        YDConf.searchCondition_TextFiled("textField_m25j5gxv", kpzq_wb, "eq"),
+                        YDConf.searchCondition_TextFiled("textField_m5aes96o", material, "eq"),
+                        YDConf.searchCondition_TextFiled("textField_m5297e3q", uuid, "eq")
                 ));
-                if (ObjectUtil.isNotNull(uuid)){
-                    searchCondition.add(YDConf.searchCondition_TextFiled("textField_m5297e3q", uuid, "eq"));
-                }
                 // 回款状态与未回款金额记录, 用于催款函查询
                 float figure = UtilMap.getFloat(dataForm, "numberField_lvdnme0z") - UtilMap.getFloat(dataForm, "numberField_lvg084l9");
                 dataForm.put("radioField_m4qrz687", figure == 0 ? "是" : "否");