4 次代碼提交 fba05c30ea ... 79e69c2acb

作者 SHA1 備註 提交日期
  wzy 79e69c2acb 销售订单新增字段 1 月之前
  wzy 6885349039 同步任务记录写入宜搭 1 月之前
  wzy 6579e3afac Merge branch 'master' of https://mc.cloudpure.cn/mjava/cont 1 月之前
  wzy f4e50f0f74 1 1 月之前

+ 4 - 4
mjava-huagao/src/main/java/com/malk/huagao/schedule/KdScheduleTask.java

@@ -22,13 +22,13 @@ public class KdScheduleTask {
     //每周六 17:00定时同步序列号主档
     @Scheduled(cron = "0 0 17 * * 6")
     public void syncBDSerialMainFile(){
-        kdHuaGaoService.syncBDSerialMainFile();
+        kdHuaGaoService.syncBDSerialMainFile(null);
     }
 
     //每周六 16:00定时同步即时库存明细
     @Scheduled(cron = "0 0 16 * * 6")
     public void syncSTKInventory(){
-        kdHuaGaoService.syncSTKInventory();
+        kdHuaGaoService.syncSTKInventory(null);
     }
 
     //每周六 18:00定时处理待处理品数据
@@ -40,12 +40,12 @@ public class KdScheduleTask {
     //每天00:00定时同步生产退料明细
     @Scheduled(cron = "0 0 0 * * ?")
     public void syncPRDReturnMtrl(){
-        kdHuaGaoService.syncPRDReturnMtrl();
+        kdHuaGaoService.syncPRDReturnMtrl(null);
     }
 
     //每天00:01定时同步发货通知单
     @Scheduled(cron = "0 1 0 * * ?")
     public void syncDLVNotice(){
-        kdHuaGaoService.syncDLVNotice();
+        kdHuaGaoService.syncDLVNotice(null);
     }
 }

+ 4 - 4
mjava-huagao/src/main/java/com/malk/huagao/service/KdHuaGaoService.java

@@ -1,15 +1,15 @@
 package com.malk.huagao.service;
 
 public interface KdHuaGaoService {
-    void syncBDSerialMainFile();
+    void syncBDSerialMainFile(String userId);
 
-    void syncSTKInventory();
+    void syncSTKInventory(String userId);
 
-    void syncPRDReturnMtrl();
+    void syncPRDReturnMtrl(String userId);
 
     void syncReport(String type,String userId);
 
     void syncPendingProducts();
 
-    void syncDLVNotice();
+    void syncDLVNotice(String userId);
 }

+ 244 - 170
mjava-huagao/src/main/java/com/malk/huagao/service/impl/KdHuaGaoServiceImpl.java

@@ -67,9 +67,19 @@ public class KdHuaGaoServiceImpl implements KdHuaGaoService {
     }
 
     @Override
-    public void syncBDSerialMainFile() {
+    public void syncBDSerialMainFile(String userId) {
         MDC.put("MDC_KEY_PID","1002");
 
+        //创建看板更新记录
+        if (Strings.isBlank(userId)){
+            userId = "yida_pub_account";
+        }
+
+        String formInstId = ydClient.operateData(YDParam.builder()
+                .formUuid("FORM-0BEA655A36724D509A2CF21C4BA38D367YF7")
+                .formDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mfmhvkey, selectField_mhsjnn2r, dateField_mhsjnn2s, employeeField_mhswy0xy", "成品库存天数看板", "更新中", System.currentTimeMillis(),Arrays.asList(userId))))
+                .build(), YDConf.FORM_OPERATION.create).toString();
+
         // 获取当前日期
         LocalDate today = LocalDate.now();
 
@@ -277,16 +287,38 @@ public class KdHuaGaoServiceImpl implements KdHuaGaoService {
                         .formDataJson(JSONObject.toJSONString(groupMap))
                         .build(), YDConf.FORM_OPERATION.create);
             }
+
+            //更新看板更新记录
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "已完成", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
+
         }catch (Exception e){
+            //更新看板更新记录
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "异常", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
+
             throw new RuntimeException(e);
         }
-
     }
 
     @Override
-    public void syncSTKInventory() {
+    public void syncSTKInventory(String userId) {
         MDC.put("MDC_KEY_PID","1002");
 
+        //创建看板更新记录
+        if (Strings.isBlank(userId)){
+            userId = "yida_pub_account";
+        }
+
+        String formInstId = ydClient.operateData(YDParam.builder()
+                .formUuid("FORM-0BEA655A36724D509A2CF21C4BA38D367YF7")
+                .formDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mfmhvkey, selectField_mhsjnn2r, dateField_mhsjnn2s, employeeField_mhswy0xy", "成品/组件库存看板", "更新中", System.currentTimeMillis(),Arrays.asList(userId))))
+                .build(), YDConf.FORM_OPERATION.create).toString();
+
         // 获取当前日期
         LocalDate today = LocalDate.now();
         int year = today.getYear();//获取当前年份
@@ -477,7 +509,19 @@ public class KdHuaGaoServiceImpl implements KdHuaGaoService {
                         .build(), YDConf.FORM_OPERATION.create);
             }
 
+            //更新看板更新记录
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "已完成", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
+
         }catch (Exception e){
+            //更新看板更新记录
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "异常", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
+
             throw new RuntimeException(e);
         }
 
@@ -485,82 +529,106 @@ public class KdHuaGaoServiceImpl implements KdHuaGaoService {
 
     //定时同步昨日到今天的
     @Override
-    public void syncPRDReturnMtrl() {
+    public void syncPRDReturnMtrl(String userId) {
         MDC.put("MDC_KEY_PID","1002");
 
-        K3CloudApi client = new K3CloudApi(initIden());
+        //创建看板更新记录
+        if (Strings.isBlank(userId)){
+            userId = "yida_pub_account";
+        }
 
-        int startRow = 0;
-        int limit = 2000;
+        //创建看板更新记录
+        String formInstId = ydClient.operateData(YDParam.builder()
+                .formUuid("FORM-0BEA655A36724D509A2CF21C4BA38D367YF7")
+                .formDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mfmhvkey, selectField_mhsjnn2r, dateField_mhsjnn2s, employeeField_mhswy0xy", "不良物料退库统计看板", "更新中", System.currentTimeMillis(),Arrays.asList(userId))))
+                .build(), YDConf.FORM_OPERATION.create).toString();
 
-        BillQuery billQuery = new BillQuery();
+        try {
+            K3CloudApi client = new K3CloudApi(initIden());
 
-        billQuery.setLimit(limit);
-        billQuery.setFormId("PRD_ReturnMtrl");
-        billQuery.setFieldKeys("FBillNo,FDate,FPPBOMEntryId,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,FMaterialId.FDefaultVendor,FReturnType,FQty");
-        List<Map> filterString = new ArrayList<>();
-        //审核日期为昨日到现在且单据状态等于已审核
-        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","265",1,"","","0"));//审核日期在今天之前XX天之后
-        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FDocumentStatus","105","C","","","0"));//单据状态等于XX
-//        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","420","2025-01-01","","","0"));//审核日期等于XX年
+            int startRow = 0;
+            int limit = 2000;
 
-        billQuery.setFilterString(filterString);
+            BillQuery billQuery = new BillQuery();
 
-        List<Map> result = new ArrayList<>();
-        List<Map> list = new ArrayList<>();
+            billQuery.setLimit(limit);
+            billQuery.setFormId("PRD_ReturnMtrl");
+            billQuery.setFieldKeys("FBillNo,FDate,FPPBOMEntryId,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,FMaterialId.FDefaultVendor,FReturnType,FQty");
+            List<Map> filterString = new ArrayList<>();
+            //审核日期为昨日到现在且单据状态等于已审核
+            filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","265",1,"","","0"));//审核日期在今天之前XX天之后
+            filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FDocumentStatus","105","C","","","0"));//单据状态等于XX
+//        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","420","2025-01-01","","","0"));//审核日期等于XX年
 
-        do {
-            billQuery.setStartRow(startRow);
+            billQuery.setFilterString(filterString);
 
-            try {
-                result = (List<Map>)JSONObject.parse(client.billQuery(JSONObject.toJSONString(billQuery)));
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
+            List<Map> result = new ArrayList<>();
+            List<Map> list = new ArrayList<>();
 
-            list.addAll(result);
+            do {
+                billQuery.setStartRow(startRow);
 
-            startRow += limit;
-        }while (result.size() == limit);
+                result = (List<Map>)JSONObject.parse(client.billQuery(JSONObject.toJSONString(billQuery)));
 
-        for (Map map : list) {
-            Map formData = new HashMap();
-            String fBillNo = UtilMap.getString(map, "FBillNo");
-            formData.put("textField_mfm7o4wb", fBillNo);//单据编号
+                list.addAll(result);
 
-            String fDate = UtilMap.getString(map, "FDate");
-            // 解析字符串为 LocalDateTime
-            LocalDateTime localDateTime = LocalDateTime.parse(fDate);
-            // 将 LocalDateTime 转换为 ZonedDateTime
-            ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
-            formData.put("dateField_mfm7o4wc", zonedDateTime.toInstant().toEpochMilli());//单据日期
+                startRow += limit;
+            }while (result.size() == limit);
 
-            String fppbomEntryId = UtilMap.getString(map, "FPPBOMEntryId");
-            formData.put("textField_mfmaqppu", fppbomEntryId);//分录明细id
-            formData.put("textField_mfm7o4we", UtilMap.getString(map,"FMaterialId.FNumber"));//物料编码
+            for (Map map : list) {
+                Map formData = new HashMap();
+                String fBillNo = UtilMap.getString(map, "FBillNo");
+                formData.put("textField_mfm7o4wb", fBillNo);//单据编号
+
+                String fDate = UtilMap.getString(map, "FDate");
+                // 解析字符串为 LocalDateTime
+                LocalDateTime localDateTime = LocalDateTime.parse(fDate);
+                // 将 LocalDateTime 转换为 ZonedDateTime
+                ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
+                formData.put("dateField_mfm7o4wc", zonedDateTime.toInstant().toEpochMilli());//单据日期
+
+                String fppbomEntryId = UtilMap.getString(map, "FPPBOMEntryId");
+                formData.put("textField_mfmaqppu", fppbomEntryId);//分录明细id
+                formData.put("textField_mfm7o4we", UtilMap.getString(map,"FMaterialId.FNumber"));//物料编码
+
+                formData.put("textField_mfm7o4wf", UtilMap.getString(map,"FMaterialId.FName"));//物料名称
+                formData.put("textField_mfm7o4wg", UtilMap.getString(map,"FMaterialId.FSpecification"));//物料规格
+                formData.put("textField_mfq6bwfl", UtilMap.getString(map,"FMaterialId.FDefaultVendor"));//默认供应商
+
+                //退料类型
+                String type = UtilMap.getString(map, "FReturnType");
+                String typeValue = "";
+                switch (type){
+                    case "1": typeValue = "良品退料";break;
+                    case "2": typeValue = "来料不良退料";break;
+                    case "3": typeValue = "作业不良退料";break;
+                    default:break;
+                }
+                formData.put("textField_mfm7o4wh", typeValue);
 
-            formData.put("textField_mfm7o4wf", UtilMap.getString(map,"FMaterialId.FName"));//物料名称
-            formData.put("textField_mfm7o4wg", UtilMap.getString(map,"FMaterialId.FSpecification"));//物料规格
-            formData.put("textField_mfq6bwfl", UtilMap.getString(map,"FMaterialId.FDefaultVendor"));//默认供应商
+                formData.put("numberField_mfm7o4wj", UtilMap.getDouble(map,"FQty"));//退料数量
 
-            //退料类型
-            String type = UtilMap.getString(map, "FReturnType");
-            String typeValue = "";
-            switch (type){
-                case "1": typeValue = "良品退料";break;
-                case "2": typeValue = "来料不良退料";break;
-                case "3": typeValue = "作业不良退料";break;
-                default:break;
+                ydClient.operateData(YDParam.builder()
+                        .formUuid("FORM-D21383AF87AC48BEB577485C37F46E8FUAIK")
+                        .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_mfm7o4wb, textField_mfmaqppu, textField_mfm7o4wh",fBillNo,fppbomEntryId,typeValue)))
+                        .formDataJson(JSONObject.toJSONString(formData))
+                        .build(), YDConf.FORM_OPERATION.upsert);
             }
-            formData.put("textField_mfm7o4wh", typeValue);
 
-            formData.put("numberField_mfm7o4wj", UtilMap.getDouble(map,"FQty"));//退料数量
+            //更新看板更新记录
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "已完成", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
 
+        }catch (Exception e){
+            //更新看板更新记录
             ydClient.operateData(YDParam.builder()
-                    .formUuid("FORM-D21383AF87AC48BEB577485C37F46E8FUAIK")
-                    .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_mfm7o4wb, textField_mfmaqppu, textField_mfm7o4wh",fBillNo,fppbomEntryId,typeValue)))
-                    .formDataJson(JSONObject.toJSONString(formData))
-                    .build(), YDConf.FORM_OPERATION.upsert);
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "异常", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
+
+            throw new RuntimeException(e);
         }
     }
 
@@ -569,18 +637,12 @@ public class KdHuaGaoServiceImpl implements KdHuaGaoService {
     public void syncReport(String type,String userId) {
         MDC.put("MDC_KEY_PID","1002");
 
-        //创建看板更新记录
-        String formInstId = ydClient.operateData(YDParam.builder()
-                .formUuid("FORM-0BEA655A36724D509A2CF21C4BA38D367YF7")
-                .formDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mfmhvkey, selectField_mhsjnn2r, dateField_mhsjnn2s, employeeField_mhswy0xy", type, "更新中", System.currentTimeMillis(),Arrays.asList(userId))))
-                .build(), YDConf.FORM_OPERATION.create).toString();
-
         try {
             switch (type){
-                case "成品库存天数看板": syncBDSerialMainFile();break;
-                case "成品/组件库存看板": syncSTKInventory();break;
-                case "不良物料退库统计看板": syncPRDReturnMtrl();break;
-                case "成品/样机出库看板": syncDLVNotice();break;
+                case "成品库存天数看板": syncBDSerialMainFile(userId);break;
+                case "成品/组件库存看板": syncSTKInventory(userId);break;
+                case "不良物料退库统计看板": syncPRDReturnMtrl(userId);break;
+                case "成品/样机出库看板": syncDLVNotice(userId);break;
                 default:break;
             }
 
@@ -589,22 +651,11 @@ public class KdHuaGaoServiceImpl implements KdHuaGaoService {
                 sendDdMsg(ddClient.getAccessToken(),ddConf.getAgentId(),userId,"更新" + type + "完成  时间:" + DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
             }
 
-            //更新看板更新记录
-            ydClient.operateData(YDParam.builder()
-                    .formInstId(formInstId)
-                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "已完成", System.currentTimeMillis())))
-                    .build(), YDConf.FORM_OPERATION.update);
         }catch (Exception e){
             //发送工作通知
             if (Objects.nonNull(userId)){
                 sendDdMsg(ddClient.getAccessToken(),ddConf.getAgentId(),userId,"更新" + type + "异常:" + e.getMessage() + "  时间:" + DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
             }
-
-            //更新看板更新记录
-            ydClient.operateData(YDParam.builder()
-                    .formInstId(formInstId)
-                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "异常", System.currentTimeMillis())))
-                    .build(), YDConf.FORM_OPERATION.update);
         }
     }
 
@@ -718,113 +769,136 @@ public class KdHuaGaoServiceImpl implements KdHuaGaoService {
     }
 
     @Override
-    public void syncDLVNotice() {
+    public void syncDLVNotice(String userId) {
         MDC.put("MDC_KEY_PID","1002");
 
-        K3CloudApi client = new K3CloudApi(initIden());
+        //创建看板更新记录
+        if (Strings.isBlank(userId)){
+            userId = "yida_pub_account";
+        }
 
-        int startRow = 0;
-        int limit = 2000;
+        //创建看板更新记录
+        String formInstId = ydClient.operateData(YDParam.builder()
+                .formUuid("FORM-0BEA655A36724D509A2CF21C4BA38D367YF7")
+                .formDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mfmhvkey, selectField_mhsjnn2r, dateField_mhsjnn2s, employeeField_mhswy0xy", "成品/样机出库看板", "更新中", System.currentTimeMillis(),Arrays.asList(userId))))
+                .build(), YDConf.FORM_OPERATION.create).toString();
 
-        BillQuery billQuery = new BillQuery();
+        try {
+            K3CloudApi client = new K3CloudApi(initIden());
 
-        billQuery.setLimit(limit);
-        billQuery.setFormId("SAL_DELIVERYNOTICE");
-        billQuery.setFieldKeys("FBillNo,FDate,FCustomerID.FName,F_QUXZ_Assistant.FNumber,FEntity_FEntryID,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,FMaterialId.F_QUXZ_Assistant,FUnitID.FName,FQty,FIsFree,FHGZBDay.FNumber,FStockID.FName");
-        List<Map> filterString = new ArrayList<>();
-        //审核日期为昨日到现在且单据状态等于已审核且明细收件人电话不为空
-        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","265",1,"","","0"));//审核日期在今天之前XX天之后
-        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FDocumentStatus","105","C","","","0"));//单据状态等于XX
+            int startRow = 0;
+            int limit = 2000;
+
+            BillQuery billQuery = new BillQuery();
+
+            billQuery.setLimit(limit);
+            billQuery.setFormId("SAL_DELIVERYNOTICE");
+            billQuery.setFieldKeys("FBillNo,FDate,FCustomerID.FName,F_QUXZ_Assistant.FNumber,FEntity_FEntryID,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,FMaterialId.F_QUXZ_Assistant,FUnitID.FName,FQty,FIsFree,FHGZBDay.FNumber,FStockID.FName");
+            List<Map> filterString = new ArrayList<>();
+            //审核日期为昨日到现在且单据状态等于已审核且明细收件人电话不为空
+            filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","265",1,"","","0"));//审核日期在今天之前XX天之后
+            filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FDocumentStatus","105","C","","","0"));//单据状态等于XX
 //        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FHGReceiveDZ","52","","","","0"));//明细收件人地址不为空
-        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FHGReceiveDh","52","","","","0"));//明细收件人电话不为空
+            filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FHGReceiveDh","52","","","","0"));//明细收件人电话不为空
 //        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","420","2025-01-01","","","0"));//审核日期等于XX年
 //        filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","63","","","","0"));//审核日期等于本月
 
-        billQuery.setFilterString(filterString);
+            billQuery.setFilterString(filterString);
 
-        List<Map> result = new ArrayList<>();
-        List<Map> list = new ArrayList<>();
+            List<Map> result = new ArrayList<>();
+            List<Map> list = new ArrayList<>();
 
-        do {
-            billQuery.setStartRow(startRow);
+            do {
+                billQuery.setStartRow(startRow);
 
-            try {
                 result = (List<Map>)JSONObject.parse(client.billQuery(JSONObject.toJSONString(billQuery)));
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
 
-            list.addAll(result);
-
-            startRow += limit;
-        }while (result.size() == limit);
-
-        for (Map map : list) {
-            Map formData = new HashMap();
-            String fBillNo = UtilMap.getString(map, "FBillNo");
-            formData.put("textField_mfqf1fj5", fBillNo);//单据编号
-
-            String fDate = UtilMap.getString(map, "FDate");
-            // 解析字符串为 LocalDateTime
-            LocalDateTime localDateTime = LocalDateTime.parse(fDate);
-            // 将 LocalDateTime 转换为 ZonedDateTime
-            ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
-
-            //localDateTime是当月的第几周
-            int week = localDateTime.get(WeekFields.ISO.weekOfWeekBasedYear());
-
-            formData.put("dateField_mfqf1fj4", zonedDateTime.toInstant().toEpochMilli());//单据日期
-            formData.put("textField_mfqf1fj6",UtilMap.getString(map,"FCustomerID.FName"));//客户名称
-
-            String F_QUXZ_AssistantFNumber = UtilMap.getString(map, "F_QUXZ_Assistant.FNumber");
-            String F_QUXZ_Assistant = "";
-            switch (F_QUXZ_AssistantFNumber){
-                case "01": F_QUXZ_Assistant = "正常订单";break;
-                case "02": F_QUXZ_Assistant = "样机订单";break;
-                case "03": F_QUXZ_Assistant = "租赁订单";break;
-                case "04": F_QUXZ_Assistant = "维修订单";break;
-                case "05": F_QUXZ_Assistant = "研发订单";break;
-                case "06": F_QUXZ_Assistant = "服务订单";break;
-                case "10": F_QUXZ_Assistant = "营销支持";break;
-                case "JD": F_QUXZ_Assistant = "京东订单";break;
-                case "SHZY": F_QUXZ_Assistant = "售后专用";break;
-                case "TM": F_QUXZ_Assistant = "天猫订单";break;
-                default:break;
-            }
-            formData.put("textField_mfqhmwpu", F_QUXZ_Assistant);//销售类型
-
-            String fEntityFEntryID = UtilMap.getString(map, "FEntity_FEntryID");
-            formData.put("textField_mfqf1fjm", fEntityFEntryID);//销售订单分录id
-            formData.put("textField_mfqf1fj7", UtilMap.getString(map,"FMaterialId.FNumber"));//物料编码
-            formData.put("textField_mfqf1fj8", UtilMap.getString(map,"FMaterialId.FName"));//物料名称
-            formData.put("textField_mfqf1fj9", UtilMap.getString(map,"FMaterialId.FSpecification"));//物料规格
-            formData.put("textField_mfqf1fk3", UtilMap.getString(map,"FMaterialId.F_QUXZ_Assistant"));//所属系列
-            formData.put("textField_mfqf1fjb", UtilMap.getString(map,"FUnitID.FName"));//销售单位
-            formData.put("numberField_mfqf1fjd", UtilMap.getDouble(map,"FQty"));//销售数量
-            formData.put("textField_mfqf1fjh", UtilMap.getBoolean(map,"FIsFree") ? "是" : "否");//是否赠品
-            formData.put("textField_mfqf1fjj", UtilMap.getString(map,"FStockID.FName"));//出货仓库
-
-            String FHGZBDayFNumber = UtilMap.getString(map, "FHGZBDay.FNumber");
-            String FHGZBDay = "";
-            switch (FHGZBDayFNumber){
-                case "01": FHGZBDay = "1年";break;
-                case "02": FHGZBDay = "2年";break;
-                case "03": FHGZBDay = "3年";break;
-                case "04": FHGZBDay = "4年";break;
-                case "05": FHGZBDay = "5年";break;
-                case "06": FHGZBDay = "15";break;
-                case "07": FHGZBDay = "27";break;
-                default:break;
-            }
-            formData.put("textField_mfqhmwpv", FHGZBDay);//质保期
+                list.addAll(result);
+
+                startRow += limit;
+            }while (result.size() == limit);
+
+            for (Map map : list) {
+                Map formData = new HashMap();
+                String fBillNo = UtilMap.getString(map, "FBillNo");
+                formData.put("textField_mfqf1fj5", fBillNo);//单据编号
+
+                String fDate = UtilMap.getString(map, "FDate");
+                // 解析字符串为 LocalDateTime
+                LocalDateTime localDateTime = LocalDateTime.parse(fDate);
+                // 将 LocalDateTime 转换为 ZonedDateTime
+                ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
+
+                //localDateTime是当月的第几周
+                int week = localDateTime.get(WeekFields.ISO.weekOfWeekBasedYear());
+
+                formData.put("dateField_mfqf1fj4", zonedDateTime.toInstant().toEpochMilli());//单据日期
+                formData.put("textField_mfqf1fj6",UtilMap.getString(map,"FCustomerID.FName"));//客户名称
+
+                String F_QUXZ_AssistantFNumber = UtilMap.getString(map, "F_QUXZ_Assistant.FNumber");
+                String F_QUXZ_Assistant = "";
+                switch (F_QUXZ_AssistantFNumber){
+                    case "01": F_QUXZ_Assistant = "正常订单";break;
+                    case "02": F_QUXZ_Assistant = "样机订单";break;
+                    case "03": F_QUXZ_Assistant = "租赁订单";break;
+                    case "04": F_QUXZ_Assistant = "维修订单";break;
+                    case "05": F_QUXZ_Assistant = "研发订单";break;
+                    case "06": F_QUXZ_Assistant = "服务订单";break;
+                    case "10": F_QUXZ_Assistant = "营销支持";break;
+                    case "JD": F_QUXZ_Assistant = "京东订单";break;
+                    case "SHZY": F_QUXZ_Assistant = "售后专用";break;
+                    case "TM": F_QUXZ_Assistant = "天猫订单";break;
+                    default:break;
+                }
+                formData.put("textField_mfqhmwpu", F_QUXZ_Assistant);//销售类型
+
+                String fEntityFEntryID = UtilMap.getString(map, "FEntity_FEntryID");
+                formData.put("textField_mfqf1fjm", fEntityFEntryID);//销售订单分录id
+                formData.put("textField_mfqf1fj7", UtilMap.getString(map,"FMaterialId.FNumber"));//物料编码
+                formData.put("textField_mfqf1fj8", UtilMap.getString(map,"FMaterialId.FName"));//物料名称
+                formData.put("textField_mfqf1fj9", UtilMap.getString(map,"FMaterialId.FSpecification"));//物料规格
+                formData.put("textField_mfqf1fk3", UtilMap.getString(map,"FMaterialId.F_QUXZ_Assistant"));//所属系列
+                formData.put("textField_mfqf1fjb", UtilMap.getString(map,"FUnitID.FName"));//销售单位
+                formData.put("numberField_mfqf1fjd", UtilMap.getDouble(map,"FQty"));//销售数量
+                formData.put("textField_mfqf1fjh", UtilMap.getBoolean(map,"FIsFree") ? "是" : "否");//是否赠品
+                formData.put("textField_mfqf1fjj", UtilMap.getString(map,"FStockID.FName"));//出货仓库
+
+                String FHGZBDayFNumber = UtilMap.getString(map, "FHGZBDay.FNumber");
+                String FHGZBDay = "";
+                switch (FHGZBDayFNumber){
+                    case "01": FHGZBDay = "1年";break;
+                    case "02": FHGZBDay = "2年";break;
+                    case "03": FHGZBDay = "3年";break;
+                    case "04": FHGZBDay = "4年";break;
+                    case "05": FHGZBDay = "5年";break;
+                    case "06": FHGZBDay = "15";break;
+                    case "07": FHGZBDay = "27";break;
+                    default:break;
+                }
+                formData.put("textField_mfqhmwpv", FHGZBDay);//质保期
 
-            formData.put("textField_mfqithiv",getWeekOfMonth(localDateTime));//所属周
+                formData.put("textField_mfqithiv",getWeekOfMonth(localDateTime));//所属周
+
+                ydClient.operateData(YDParam.builder()
+                        .formUuid("FORM-F7DB6FC6E47949A98BDD3DC344B3CBC1V7HY")
+                        .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_mfqf1fj5, textField_mfqf1fjm",fBillNo,fEntityFEntryID)))
+                        .formDataJson(JSONObject.toJSONString(formData))
+                        .build(), YDConf.FORM_OPERATION.upsert);
+            }
 
+            //更新看板更新记录
             ydClient.operateData(YDParam.builder()
-                    .formUuid("FORM-F7DB6FC6E47949A98BDD3DC344B3CBC1V7HY")
-                    .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_mfqf1fj5, textField_mfqf1fjm",fBillNo,fEntityFEntryID)))
-                    .formDataJson(JSONObject.toJSONString(formData))
-                    .build(), YDConf.FORM_OPERATION.upsert);
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "已完成", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
+        }catch (Exception e){
+            //更新看板更新记录
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(formInstId)
+                    .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("selectField_mhsjnn2r, dateField_mhsjnn2t", "异常", System.currentTimeMillis())))
+                    .build(), YDConf.FORM_OPERATION.update);
+
+            throw new RuntimeException(e);
         }
     }
 

+ 4 - 4
mjava-huagao/src/test/java/com/malk/huagao/KdTest.java

@@ -72,7 +72,7 @@ public class KdTest {
 
     @Test
     public void test2() {
-        kdHuaGaoService.syncBDSerialMainFile();
+        kdHuaGaoService.syncBDSerialMainFile(null);
     }
 
 
@@ -182,12 +182,12 @@ public class KdTest {
 
     @Test
     public void test4(){
-        kdHuaGaoService.syncSTKInventory();
+        kdHuaGaoService.syncSTKInventory(null);
     }
 
     @Test
     public void test5(){
-        kdHuaGaoService.syncPRDReturnMtrl();
+        kdHuaGaoService.syncPRDReturnMtrl(null);
     }
 
     @Test
@@ -197,7 +197,7 @@ public class KdTest {
 
     @Test
     public void test7(){
-        kdHuaGaoService.syncDLVNotice();
+        kdHuaGaoService.syncDLVNotice(null);
     }
 
     @Test

+ 6 - 2
mjava-jinlun/src/main/java/com/malk/jinlun/entity/SaleOrderEntry.java

@@ -9,8 +9,8 @@ public class SaleOrderEntry {
 
     private FNumber FUnitID;//销售单位
     private double FQty;//销售数量
-    private FNumber FPriceUnitId;
-//    private double FPriceUnitQty;
+    private FNumber FPriceUnitId;//计价单位
+    private double FPriceUnitQty;//计价数量
 //    private double FPrice;
     private double FTaxPrice;//含税单价
 
@@ -44,4 +44,8 @@ public class SaleOrderEntry {
     private String F_NLD_BH;//最大磁能积(BH)max
     private String F_NLD_Hk;//方形度Hk/Hcj
     private String F_VMKV_GXYQ;//公差要求
+
+    boolean FDeliveryControl;//控制发货数量
+    Double FDeliveryMaxQty;//发货上限
+    Double FDeliveryMinQty;//发货下限
 }

+ 16 - 2
mjava-jinlun/src/main/java/com/malk/jinlun/service/impl/JinlunServiceImpl.java

@@ -416,9 +416,12 @@ public class JinlunServiceImpl implements JinlunService {
         for (Map saleDetail : saleDetailList) {
             FNumber FMaterialId = new FNumber(UtilMap.getString(saleDetail, "ShortText1758341332222"));//物料编码
             FNumber FUnitID = new FNumber(UtilMap.getString(saleDetail, "Text1758341368975"));//销售单位
+            Double FQty = UtilMap.getDouble(saleDetail, "Number1758341381523");//销售数量
+            FNumber FPriceUnitId = new FNumber(UtilMap.getString(saleDetail, "Text1763091074956"));//计价单位
+            Double FPriceUnitQty = UtilMap.getDouble(saleDetail, "Number1763091134020");//计价数量
 
             String F_Sl_XSTYPE = UtilMap.getString(saleDetail, "Dropdown1758341293022_key");//产品类别
-            Double FQty = UtilMap.getDouble(saleDetail, "Number1758341381523");//销售数量
+
             Double FTaxPrice = UtilMap.getDouble(saleDetail, "Number1758341424993");//含税单价
             boolean FIsFree = UtilMap.getBoolean(saleDetail,"Logic1758341430353");//是否赠品
             Double FEntryTaxRate = UtilMap.getDouble(saleDetail, "Number1758349078527");//税率
@@ -434,9 +437,18 @@ public class JinlunServiceImpl implements JinlunService {
             String F_NLD_Hk = UtilMap.getString(saleDetail,"ShortText1762135907570");//方形度Hk/Hcj
             String F_VMKV_GXYQ = UtilMap.getString(saleDetail,"ShortText1762135907570");//公差要求
 
+            boolean FDeliveryControl = UtilMap.getBoolean(saleDetail,"Logic1763091193161");//控制发货数量
+            Double FDeliveryMaxQty = UtilMap.getDouble(saleDetail, "Number1763091294543");//发货上限
+            Double FDeliveryMinQty = UtilMap.getDouble(saleDetail, "Number1763091312359");//发货下限
+
+            //todo 订单图纸附件上传
+
+
             SaleOrderEntry saleOrderEntry = new SaleOrderEntry();
             saleOrderEntry.setFMaterialId(FMaterialId);
             saleOrderEntry.setFUnitID(FUnitID);
+            saleOrderEntry.setFPriceUnitId(FPriceUnitId);
+            saleOrderEntry.setFPriceUnitQty(FPriceUnitQty);
             saleOrderEntry.setF_Sl_XSTYPE(F_Sl_XSTYPE);
             saleOrderEntry.setFQty(FQty);
             saleOrderEntry.setFTaxPrice(FTaxPrice);
@@ -453,7 +465,9 @@ public class JinlunServiceImpl implements JinlunService {
             saleOrderEntry.setF_NLD_BH(F_NLD_BH);
             saleOrderEntry.setF_NLD_Hk(F_NLD_Hk);
             saleOrderEntry.setF_VMKV_GXYQ(F_VMKV_GXYQ);
-
+            saleOrderEntry.setFDeliveryControl(FDeliveryControl);
+            saleOrderEntry.setFDeliveryMaxQty(FDeliveryMaxQty);
+            saleOrderEntry.setFDeliveryMinQty(FDeliveryMinQty);
 
             saleOrderEntryList.add(saleOrderEntry);
         }

+ 39 - 12
mjava-jinlun/src/main/java/com/malk/jinlun/service/impl/JinlunTaskServiceImpl.java

@@ -425,7 +425,7 @@ public class JinlunTaskServiceImpl implements JinlunTaskService {
 
         BillQuery billQuery = new BillQuery();
         billQuery.setFormId("AR_receivable");
-        billQuery.setFieldKeys("FBillTypeID.FName,FBillNo,FCUSTOMERID.FName,FSALEERID.FName,F_VMKV_Base_qtr.FName,FSetAccountType,FCURRENCYID.FName,FDate,FENDDATE_H,FPayConditon.FName,FALLAMOUNTFOR,FEntityDetail_FEntryID,FMATERIALID.FNumber,FMATERIALID.FName,FMATERIALID.F_Sl_xingnengid,FPRICEUNITID.FName,FPriceQty,FTaxPrice,FPrice,FEntryTaxRate,FNoTaxAmountFor_D,FTAXAMOUNTFOR_D,FALLAMOUNTFOR_D,FIsFree,FBASICUNITQTY,FLot.FName,FRECEIVEAMOUNT,FComment");
+        billQuery.setFieldKeys("FBillTypeID.FName,FBillNo,FCUSTOMERID.FName,FSALEERID.FName,F_VMKV_Base_qtr.FName,FSetAccountType,FCURRENCYID.FName,FDate,FENDDATE_H,FPayConditon.FName,FALLAMOUNTFOR,FEntityDetail_FEntryID,FMATERIALID.FNumber,FMATERIALID.FName,FMATERIALID.F_Sl_xingnengid,FPRICEUNITID.FName,FPriceQty,FStockUnitId.FName,FStockQty,FSalUnitId.FName,FSalQty,FTaxPrice,FPrice,FEntryTaxRate,FNoTaxAmountFor_D,FTAXAMOUNTFOR_D,FALLAMOUNTFOR_D,FIsFree,FLot.FName,FRECEIVEAMOUNT,FComment");
         List<Map> filterString = new ArrayList<>();
 
         //审核日期为昨天至今天
@@ -481,7 +481,7 @@ public class JinlunTaskServiceImpl implements JinlunTaskService {
 
             data.put("ShortText1760602218380",UtilMap.getString(receipt,"FPayConditon.FName"));//收款条件
             data.put("ShortText1760602197718",UtilMap.getString(receipt,"FCURRENCYID.FName"));//币别
-            data.put("Number1760602528131",UtilMap.getString(receipt,"FALLAMOUNTFOR"));//价税合计
+            data.put("Number1760602528131",UtilMap.getDouble(receipt,"FALLAMOUNTFOR"));//价税合计
             data.put("Date1760602209998",UtilMap.getString(receipt,"FENDDATE_H").replace("T"," "));//到期日
 
             List<Map> entry = new ArrayList<>();
@@ -490,20 +490,47 @@ public class JinlunTaskServiceImpl implements JinlunTaskService {
             entryMap.put("ShortText1760602287318",UtilMap.getString(receipt,"FMATERIALID.FNumber"));//物料编码
             entryMap.put("Text1760602292846",UtilMap.getString(receipt,"FMATERIALID.FName"));//物料名称
             entryMap.put("Text1760602314150",UtilMap.getString(receipt,"FMATERIALID.F_Sl_xingnengid"));//性能
-            entryMap.put("Text1760602299878",UtilMap.getString(receipt,"FPRICEUNITID.FName"));//计价单位
-            entryMap.put("Number1760602320518",UtilMap.getString(receipt,"FPriceQty"));//计价数量
-            entryMap.put("Number1760602330651",UtilMap.getString(receipt,"FTaxPrice"));//含税单价
-            entryMap.put("Number1760602338551",UtilMap.getString(receipt,"FPrice"));//单价
-            entryMap.put("Number1760602343876",UtilMap.getString(receipt,"FEntryTaxRate"));//税率
-            entryMap.put("Number1760602347414",UtilMap.getString(receipt,"FNoTaxAmountFor_D"));//不含税金额
-            entryMap.put("Number1760602354115",UtilMap.getString(receipt,"FTAXAMOUNTFOR_D"));//税额
-            entryMap.put("Number1760602359012",UtilMap.getString(receipt,"FALLAMOUNTFOR_D"));//价税合计
+            String jjdw = UtilMap.getString(receipt, "FPRICEUNITID.FName");
+            entryMap.put("Text1760602299878", jjdw);//计价单位
+            Double jjsl = UtilMap.getDouble(receipt, "FPriceQty");
+            entryMap.put("Number1760602320518", jjsl);//计价数量
+            String kcdw = UtilMap.getString(receipt, "FStockUnitId.FName");
+            entryMap.put("Text1762914941284", kcdw);//库存单位
+            Double kcsl = UtilMap.getDouble(receipt, "FStockQty");
+            entryMap.put("Number1762914960910", kcsl);//库存数量
+            String xsdw = UtilMap.getString(receipt, "FSalUnitId.FName");
+            entryMap.put("Text1762914943634", xsdw);//销售单位
+            Double xssl = UtilMap.getDouble(receipt, "FSalQty");
+            entryMap.put("Number1762914972786", xssl);//销售数量
+            entryMap.put("Number1760602330651",UtilMap.getDouble(receipt,"FTaxPrice"));//含税单价
+            entryMap.put("Number1760602338551",UtilMap.getDouble(receipt,"FPrice"));//单价
+            entryMap.put("Number1760602343876",UtilMap.getDouble(receipt,"FEntryTaxRate"));//税率
+            entryMap.put("Number1760602347414",UtilMap.getDouble(receipt,"FNoTaxAmountFor_D"));//不含税金额
+            entryMap.put("Number1760602354115",UtilMap.getDouble(receipt,"FTAXAMOUNTFOR_D"));//税额
+            entryMap.put("Number1760602359012",UtilMap.getDouble(receipt,"FALLAMOUNTFOR_D"));//价税合计
             entryMap.put("Logic1760602369561",UtilMap.getString(receipt,"FIsFree"));//是否赠品
-            entryMap.put("Number1760602378666",UtilMap.getString(receipt,"FBASICUNITQTY"));//销售基本数量
+
             entryMap.put("ShortText1760602387059",UtilMap.getString(receipt,"FLot.FName"));//批号
-            entryMap.put("Number1760602396337",UtilMap.getString(receipt,"FRECEIVEAMOUNT"));//已结算金额
+            entryMap.put("Number1760602396337",UtilMap.getDouble(receipt,"FRECEIVEAMOUNT"));//已结算金额
             entryMap.put("Text1760602391849",UtilMap.getString(receipt,"FComment"));//备注
 
+            double sl = 0.0;
+            double zl = 0.0;
+            if ("Pcs".equals(jjdw)) {
+                sl = jjsl;
+                if ("Kg".equals(xsdw)) {
+                    zl = kcsl;
+                }
+            }else {
+                zl = jjsl;
+                if ("Pcs".equals(kcdw)) {
+                    sl = kcsl;
+                }
+            }
+
+            entryMap.put("Number1762915279108", sl);//数量
+            entryMap.put("Number1762915289424", zl);//重量
+
             entry.add(entryMap);
 
             data.put("Sheet1760602277185",entry);

+ 1 - 1
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/service/LingmingguangziServiceImpl.java

@@ -474,7 +474,7 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         Map formData = ddrNew.getFormData();
 
         //erp环境
-        String type = formData.get("selectField_m3fgkfz9").toString();
+        String type = formData.get("selectField_m3fgkfz9_id").toString();
 
         //新增销售订单
         Map body = new HashMap();