2 次代碼提交 6b1676c404 ... 7ce2d86753

作者 SHA1 備註 提交日期
  “lqy 7ce2d86753 Merge remote-tracking branch 'origin/master' 2 周之前
  “lqy 651139f326 1.20代码提交 2 周之前

+ 21 - 10
mjava-huagao/src/main/java/com/malk/huagao/controller/KdYdCustomerController.java

@@ -10,6 +10,9 @@ import com.malk.server.aliwork.YDParam;
 import com.malk.server.common.McR;
 import com.malk.server.common.McR;
 import com.malk.server.dingtalk.DDR_New;
 import com.malk.server.dingtalk.DDR_New;
 import com.malk.service.aliwork.YDClient;
 import com.malk.service.aliwork.YDClient;
+import com.malk.service.dingtalk.DDClient;
+import com.malk.service.dingtalk.DDClient_Contacts;
+import com.malk.service.dingtalk.DDClient_Workflow;
 import com.malk.utils.UtilMap;
 import com.malk.utils.UtilMap;
 import org.slf4j.MDC;
 import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,11 +42,19 @@ public class KdYdCustomerController {
     private YdHuaGaoService ydHuaGaoService;
     private YdHuaGaoService ydHuaGaoService;
     @Autowired
     @Autowired
     private IKdYdZpService kdYdZpService;
     private IKdYdZpService kdYdZpService;
+    @Autowired
+    private DDClient_Contacts ddClient_contacts;
+    @Autowired
+    private DDClient ddClient;
 @Autowired
 @Autowired
 private YDClient ydClient;
 private YDClient ydClient;
     @PostMapping("/test30")
     @PostMapping("/test30")
     McR test13(@RequestBody Map data) {
     McR test13(@RequestBody Map data) {
         MDC.put("MDC_KEY_PID","1003");
         MDC.put("MDC_KEY_PID","1003");
+//        Map userInfoByMobile1 = ddClient_contacts.getUserInfoById(ddClient.getAccessToken(), "yzsyzid2");
+//        if (userInfoByMobile1 != null && userInfoByMobile1.containsKey("mobile")) {
+//            mobile = String.valueOf(userInfoByMobile1.get("mobile"));
+//        }
 //        String ins = String.valueOf(data.get("formInstId"));
 //        String ins = String.valueOf(data.get("formInstId"));
 //
 //
 //
 //
@@ -59,16 +70,16 @@ private YDClient ydClient;
 //                .formInstanceIdList((List<String>) ddrNew.getData())
 //                .formInstanceIdList((List<String>) ddrNew.getData())
 //                .build(), YDConf.FORM_OPERATION.delete_batch);
 //                .build(), YDConf.FORM_OPERATION.delete_batch);
 
 
-        DDR_New ddrNew = ydClient.queryData(YDParam.builder()
-                .formInstId("FINST-DZ966471VB228QLYJ6WXG6I7YGV631VYLW0KMBQE")
-                .build(), YDConf.FORM_QUERY.retrieve_id);
-//
-//        if (ddrNew == null || ddrNew.getFormData() == null) {
-//            throw new RuntimeException("未找到订单信息");
-//        }
-//
-        Map formData1 = ddrNew.getFormData();
-        System.out.println("======"+formData1);
+//        DDR_New ddrNew = ydClient.queryData(YDParam.builder()
+//                .formInstId("FINST-DZ966471VB228QLYJ6WXG6I7YGV631VYLW0KMBQE")
+//                .build(), YDConf.FORM_QUERY.retrieve_id);
+////
+////        if (ddrNew == null || ddrNew.getFormData() == null) {
+////            throw new RuntimeException("未找到订单信息");
+////        }
+////
+//        Map formData1 = ddrNew.getFormData();
+//        System.out.println("======"+formData1);
 
 
 //        String ddje = UtilMap.getString(formData1, "numberField_mjm9k35k");
 //        String ddje = UtilMap.getString(formData1, "numberField_mjm9k35k");
 //        String dddate = UtilMap.getString(formData1, "dateField_mjm9k35j");
 //        String dddate = UtilMap.getString(formData1, "dateField_mjm9k35j");

+ 1 - 1
mjava-huagao/src/main/java/com/malk/huagao/service/impl/YdHuaGaoServiceImpl.java

@@ -830,7 +830,7 @@ public class YdHuaGaoServiceImpl implements YdHuaGaoService {
         log.info("定时同步-物料单");
         log.info("定时同步-物料单");
         // 查询需要删除的数据
         // 查询需要删除的数据
         LambdaQueryWrapper<KdYdMaterial> materialdel = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<KdYdMaterial> materialdel = new LambdaQueryWrapper<>();
-        materialdel.eq(KdYdMaterial::getOperationType, "3")  // 修正:使用 materialdel 而不是 materialqw
+        materialdel.eq(KdYdMaterial::getOperationType, "3")
                 .eq(KdYdMaterial::getSyncStatus, "0");
                 .eq(KdYdMaterial::getSyncStatus, "0");
         List<KdYdMaterial> kdYdMaterialdels = kdYdMaterialMapper.selectList(materialdel);
         List<KdYdMaterial> kdYdMaterialdels = kdYdMaterialMapper.selectList(materialdel);
 
 

+ 39 - 1
mjava-lilin/src/main/java/com/malk/lilin/Controller/LiLinController.java

@@ -2,13 +2,22 @@ package com.malk.lilin.Controller;
 
 
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.malk.lilin.Service.LiLinService;
 import com.malk.lilin.Service.LiLinService;
+import com.malk.server.aliwork.YDConf;
+import com.malk.server.aliwork.YDParam;
+import com.malk.server.aliwork.YDSearch;
 import com.malk.server.common.McR;
 import com.malk.server.common.McR;
+import com.malk.server.dingtalk.DDConf;
+import com.malk.service.aliwork.YDClient;
+import com.malk.service.aliwork.YDService;
+import com.malk.utils.UtilMap;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import java.io.IOException;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
@@ -19,9 +28,38 @@ import java.util.Objects;
 public class LiLinController {
 public class LiLinController {
     @Autowired
     @Autowired
     private LiLinService liLinService;
     private LiLinService liLinService;
-
+    @Autowired
+    private YDClient ydClient;
+    @Autowired
+    private YDService ydService;
+    @Autowired
+    private YDConf ydConf;
+    @Autowired
+    private DDConf ddConf;
     @GetMapping("/test")
     @GetMapping("/test")
     public McR test() {
     public McR test() {
+//        List<Map> list = (List<Map>) ydClient.queryData(YDParam.builder()
+//                .formUuid("FORM-754586D31BF6414586E5C20DB3774A7320CV")
+//                .searchFieldJson(JSONObject.toJSONString(Arrays.asList(
+//                        new YDSearch("selectField_ma0w9yrb", "已审批已付款", "SelectField",
+//                                YDSearch.Type.RADIO_FIELD, YDSearch.Operator.EQ),
+//                        new YDSearch("radioField_mimhsd0h", "否", "是否创建付款通知",
+//                                YDSearch.Type.RADIO_FIELD, YDSearch.Operator.EQ)
+//                )))
+//                .build(), YDConf.FORM_QUERY.retrieve_list_all).getData();
+//        for (Map item : list) {
+//            boolean processSuccess = false;
+//            String formInstanceId = null;
+//            String mainInstructionId = null;
+//
+//            try {
+////                formInstanceId = UtilMap.getString(item, "formInstanceId");
+//                ydClient.operateData(YDParam.builder()
+//                        .formUuid("FORM-754586D31BF6414586E5C20DB3774A7320CV")
+//                        .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("radioField_mimhsd0h", "是")))
+//                        .build(), YDConf.FORM_OPERATION.multi_update);
+//            }
+//        }
         return McR.success();
         return McR.success();
     }
     }
 
 

+ 27 - 36
mjava-lilin/src/main/java/com/malk/lilin/Service/impl/LiLinServiceImpl.java

@@ -919,7 +919,7 @@ public class LiLinServiceImpl implements LiLinService {
                 log.info("开始对账单同步,accountNo: {}", accountNo);
                 log.info("开始对账单同步,accountNo: {}", accountNo);
 
 
                 // 准备时间范围
                 // 准备时间范围
-                String dayFromId = LocalDate.now().minusDays(12).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+                String dayFromId = LocalDate.now().minusDays(8).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
                 String dayToId = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
                 String dayToId = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
 
 
                 // 构建 POST 请求体
                 // 构建 POST 请求体
@@ -1455,25 +1455,19 @@ public class LiLinServiceImpl implements LiLinService {
                                 "已审批已付款",
                                 "已审批已付款",
                                 "SelectField",
                                 "SelectField",
                                 YDSearch.Type.RADIO_FIELD,
                                 YDSearch.Type.RADIO_FIELD,
-                                YDSearch.Operator.EQ)
-//                        new YDSearch("radioField_mimhsd0h", "否", "是否创建付款通知", YDSearch.Type.RADIO_FIELD, YDSearch.Operator.EQ)
+                                YDSearch.Operator.EQ),
+                        new YDSearch("radioField_mimhsd0h", "否", "是否创建付款通知", YDSearch.Type.RADIO_FIELD, YDSearch.Operator.EQ)
                 )))
                 )))
                 .build(), YDConf.FORM_QUERY.retrieve_list_all).getData();
                 .build(), YDConf.FORM_QUERY.retrieve_list_all).getData();
-//        List<Map> list = (List<Map>) ydClient.queryData(YDParam.builder()
-//                .formUuid("FORM-754586D31BF6414586E5C20DB3774A7320CV")
-//                .searchFieldJson(JSONObject.toJSONString(Arrays.asList(
-//                        new YDSearch("textField_m9ze3rjg",
-//                                "CGFK20251027560",
-//                                "电子凭证号",
-//                                YDSearch.Type.TEXT_FIELD,
-//                                YDSearch.Operator.EQ)
-//                )))
-//                .build(), YDConf.FORM_QUERY.retrieve_list_all).getData();
+
         if (list == null || list.isEmpty()) {
         if (list == null || list.isEmpty()) {
             log.info("没有找到需要处理的单据");
             log.info("没有找到需要处理的单据");
             return McR.success("无待处理数据");
             return McR.success("无待处理数据");
         }
         }
 
 
+        int successCount = 0;
+        int failCount = 0;
+
         for (Map item : list) {
         for (Map item : list) {
             try {
             try {
                 String formInstanceId = getStringValue(item, "formInstanceId");
                 String formInstanceId = getStringValue(item, "formInstanceId");
@@ -1483,13 +1477,6 @@ public class LiLinServiceImpl implements LiLinService {
                     continue;
                     continue;
                 }
                 }
                 Map data = (Map) item.get("formData");
                 Map data = (Map) item.get("formData");
-                // 获取源表单详情
-//                Map data = (Map) ydClient.queryData(YDParam.builder()
-//                        .formInstId(formInstanceId)
-//                        .appType(ydConf.getAppType())
-//                        .systemToken(ydConf.getSystemToken())
-//                        .userId(ddConf.getOperator())
-//                        .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
 
 
                 if (data == null) {
                 if (data == null) {
                     log.warn("formInstanceId={} 的 formData 为空,跳过", formInstanceId);
                     log.warn("formInstanceId={} 的 formData 为空,跳过", formInstanceId);
@@ -1513,6 +1500,8 @@ public class LiLinServiceImpl implements LiLinService {
 //                 如果目标表单中已存在该流水号,则跳过,不再新增
 //                 如果目标表单中已存在该流水号,则跳过,不再新增
                 if (list1 != null && !list1.isEmpty()) {
                 if (list1 != null && !list1.isEmpty()) {
                     log.info("已存在重复数据,跳过插入:mainInstructionId={}", mainInstructionId);
                     log.info("已存在重复数据,跳过插入:mainInstructionId={}", mainInstructionId);
+                    updateSourceBillStatus(formInstanceId, "是");
+                    successCount++;
                     continue;
                     continue;
                 }
                 }
 
 
@@ -1598,31 +1587,23 @@ public class LiLinServiceImpl implements LiLinService {
                 formData.put("textField_mdsk7rlm", mainInstructionId); // 主流水号用于去重
                 formData.put("textField_mdsk7rlm", mainInstructionId); // 主流水号用于去重
                 formData.put("employeeField_m8yf6gkl", Arrays.asList("275412081437800471"));
                 formData.put("employeeField_m8yf6gkl", Arrays.asList("275412081437800471"));
 
 
-                // 执行新增
-//                ydClient.operateData(YDParam.builder()
-//                        .formUuid("FORM-6B8A683A23524D3596C8C6CA13327EF3552K")
-//                        .appType("APP_RPH7R3LF3SMXLRDY1ZJW")
-//                        .systemToken("7M866K91D4LVACB4EADAZ5UJG7IN3OGA33WAMNT")
-//                        .noExecuteExpression(false)
-////                        .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_mdsk7rlm", mainInstructionId)))
-//                        .searchCondition(JSONObject.toJSONString(Arrays.asList(new YDSearch(
-//                                "textField_mdsk7rlm", mainInstructionId, "付款通知单流水号", YDSearch.Type.TEXT_FIELD, YDSearch.Operator.EQ))))
-//                        .formDataJson(JSONObject.toJSONString(formData))
-//                        .build(), YDConf.FORM_OPERATION.upsert);
                 try {
                 try {
-//                    ydClient.operateData(YDParam.builder()
-//                            .formInstId(formInstanceId)
-//                            .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("radioField_mimhsd0h","是")))
-//                            .build(), YDConf.FORM_OPERATION.update);
+
                     ydClient.operateData(YDParam.builder()
                     ydClient.operateData(YDParam.builder()
                             .formUuid("FORM-6B8A683A23524D3596C8C6CA13327EF3552K")
                             .formUuid("FORM-6B8A683A23524D3596C8C6CA13327EF3552K")
                             .formDataJson(JSON.toJSONString(formData))
                             .formDataJson(JSON.toJSONString(formData))
 //                        .userId("275412081437800471")
 //                        .userId("275412081437800471")
                             .build(), YDConf.FORM_OPERATION.create);
                             .build(), YDConf.FORM_OPERATION.create);
+                    ydClient.operateData(YDParam.builder()
+                            .formInstId(formInstanceId)
+                            .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("radioField_mimhsd0h","是")))
+                            .build(), YDConf.FORM_OPERATION.update);
 
 
                     log.info("成功插入新数据:mainInstructionId={}, 付款类型={}", mainInstructionId, fklx);
                     log.info("成功插入新数据:mainInstructionId={}, 付款类型={}", mainInstructionId, fklx);
+                    successCount++;
                 } catch (Exception e) {
                 } catch (Exception e) {
                     log.info("处理单据异常:mainInstructionId={}, error={}", mainInstructionId, e.getMessage(), e);
                     log.info("处理单据异常:mainInstructionId={}, error={}", mainInstructionId, e.getMessage(), e);
+                    failCount++;
                 }
                 }
 
 
 
 
@@ -1699,7 +1680,17 @@ public class LiLinServiceImpl implements LiLinService {
         }
         }
         return McR.success();
         return McR.success();
     }
     }
-
+    private void updateSourceBillStatus(String formInstanceId, String status) {
+        try {
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(formInstanceId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("radioField_mimhsd0h", status)))
+                    .build(), YDConf.FORM_OPERATION.update);
+        } catch (Exception e) {
+            log.error("更新源单据状态失败:formInstanceId={}", formInstanceId, e);
+            throw e; // 抛出异常让上层处理
+        }
+    }
     private Object getAss(String title, String id) {
     private Object getAss(String title, String id) {
         return UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle", "APP_RPH7R3LF3SMXLRDY1ZJW", "FORM-754586D31BF6414586E5C20DB3774A7320CV", "receipt", id, title, "");
         return UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle", "APP_RPH7R3LF3SMXLRDY1ZJW", "FORM-754586D31BF6414586E5C20DB3774A7320CV", "receipt", id, title, "");
     }
     }