pruple_boy 2 роки тому
батько
коміт
4305ec5951

+ 28 - 0
mjava-lichen/src/main/java/com/malk/lichen/controller/LiChenController.java

@@ -134,4 +134,32 @@ public class LiChenController {
         }
         return McR.success();
     }
+
+    /**
+     * 写入应付单
+     */
+    @PostMapping("form/yfd")
+    McR updateJieZhiDan(@RequestBody Map data) {
+        log.info("写入借支单, {}", data);
+
+        List<Map> list = (List<Map>) data.get("data");
+        for (Map record : list) {
+            Map searchMap = UtilMap.map("textField_ljqs84wy", record.get("textField_ljqs84wy"));
+            YDParam ydParam = YDParam.builder()
+                    .formUuid("FORM-MP966K813G9CM4MB9YNWBAQVGR4W3WSY7SQJL1")
+                    .processCode("TPROC--MP966K813G9CM4MB9YNWBAQVGR4W3XSY7SQJL2")
+                    .searchFieldJson(JSON.toJSONString(searchMap))
+                    .build();
+            long total = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_list).getTotalCount();
+            if (total == 0) {
+                record.put("tableField_ljqs84xg", JSON.parse(String.valueOf(record.get("tableField_ljqs84xg"))));
+                ydParam.formDataJson = JSON.toJSONString(record);
+                ydClient.operateData(ydParam, YDConf.FORM_OPERATION.start);
+            }
+        }
+
+
+        return McR.success();
+    }
+
 }

+ 4 - 4
mjava-xiding/src/main/java/com/malk/xiding/controller/XDController.java

@@ -81,7 +81,7 @@ public class XDController {
         String Time = UtilDateTime.formatLocalDate(UtilDateTime.convertToLocalDateTimeFromDate(sTime).plusDays(1).toLocalDate()) + " 05:00:00";
 
         log.info("xxxx, {}, {}", sTime, Time);
-        ddClient_attendance.listAttendanceRecord(ddClient.getAccessToken(), Arrays.asList("181004250420083082"), "2023-06-27 00:00:00", "2023-06-28 03:59:59");
+        ddClient_attendance.listAttendanceRecord(ddClient.getAccessToken(), Arrays.asList("233927562629501739"), "2023-06-19 00:00:00", "2023-06-19 23:59:59");
 
 //        return McR.success(ddClient_attendance.uploadAttendanceRecord(ddClient.getAccessToken(), "1111", "纷享销客同步", "纷享销客同步", null, new Date().getTime()));
 //        return McR.success(approveRecordDao2.findAllByEndTimeAfter(UtilDateTime.parseDateTime("2023-05-18 00:00:00"), PageRequest.of(0, 50)));
@@ -90,10 +90,10 @@ public class XDController {
 
     @PostMapping("test")
     McR test() {
-        long startTime = UtilDateTime.parseDateTime("2023-05-01" + " 00:00:00").getTime();
-        long endTime = UtilDateTime.parseDateTime("2023-05-31" + " 23:59:59").getTime();
+        long startTime = UtilDateTime.parseDateTime("2023-06-14" + " 00:00:00").getTime();
+        long endTime = UtilDateTime.parseDateTime("2023-06-14" + " 23:59:59").getTime();
         xdService.syncApprove(startTime, endTime, XDConf.TMP_CODE_CC, "出差");
-        xdService.syncApprove(startTime, endTime, XDConf.TMP_CODE_WC, "外出");
+//        xdService.syncApprove(startTime, endTime, XDConf.TMP_CODE_WC, "外出");
         return McR.success();
     }
 

+ 28 - 18
mjava-xiding/src/main/java/com/malk/xiding/service/impl/XDImplService.java

@@ -93,32 +93,42 @@ public class XDImplService implements XDService {
             List<Map> formComponentValues = (List<Map>) record.get("formComponentValues");
             if (tmpCode.equals(XDConf.TMP_CODE_CC)) {
                 String schedule = (String) formComponentValues.stream().filter(item -> "itinerary".equals(item.get("bizAlias"))).findAny().get().get("value");
-                List<Map> rowValue = (List<Map>) ((List<Map>) JSON.parse(schedule)).get(0).get("rowValue");
-                startTime = (String) rowValue.stream().filter(item -> "startTime".equals(item.get("bizAlias"))).findAny().get().get("value");
-                endTime = (String) rowValue.stream().filter(item -> "endTime".equals(item.get("bizAlias"))).findAny().get().get("value");
+                // ppExt: 出差申请单为明细组件, 存在多条情况 23.07.03
+                List<Map> itineraryList = ((List<Map>) JSON.parse(schedule));
+                for (Map itinerary : itineraryList) {
+                    List<Map> rowValue = (List<Map>) itinerary.get("rowValue");
+                    startTime = (String) rowValue.stream().filter(item -> "startTime".equals(item.get("bizAlias"))).findAny().get().get("value");
+                    endTime = (String) rowValue.stream().filter(item -> "endTime".equals(item.get("bizAlias"))).findAny().get().get("value");
+                    _approveRecord(instanceId, type, userPo, userId, startTime, endTime);
+                }
             } else {
                 formComponentValues = (List<Map>) record.get("formComponentValues");
                 startTime = (String) formComponentValues.stream().filter(item -> "startTime".equals(item.get("bizAlias"))).findAny().get().get("value");
                 endTime = (String) formComponentValues.stream().filter(item -> "finishTime".equals(item.get("bizAlias"))).findAny().get().get("value");
+                _approveRecord(instanceId, type, userPo, userId, startTime, endTime);
             }
-            // 不区分半天考勤时段, 全天都可进行打卡
-            Date sTime = UtilDateTime.parseDateTime(startTime.split(" ")[0] + " 00:00:00");
-            Date eTime = UtilDateTime.parseDateTime(endTime.split(" ")[0] + " 23:59:59");
-            XdDdApproveRecordPo approveRecordPo = XdDdApproveRecordPo.builder()
-                    .userId(userId)
-                    .userName(userPo.getName())
-                    .openUserId(userPo.getIdFxxk())
-                    .instanceId(instanceId)
-                    .startTime(sTime)
-                    .endTime(eTime)
-                    .type(type)
-                    .build();
-            ddApproveRecordDao.save(approveRecordPo);
-            log.info("同步出差和人员信息, {}, {}", userPo, approveRecordPo);
-            _attendanceSync(sTime, eTime, userPo.getIdFxxk(), userId);  // 兼容后补审批记录
         });
     }
 
+    // ppExt: 出差申请单为明细组件, 存在多条情况 23.07.03
+    void _approveRecord(String instanceId, String type, XdDdFxkRelationPo userPo, String userId, String startTime, String endTime) {
+        // 不区分半天考勤时段, 全天都可进行打卡
+        Date sTime = UtilDateTime.parseDateTime(startTime.split(" ")[0] + " 00:00:00");
+        Date eTime = UtilDateTime.parseDateTime(endTime.split(" ")[0] + " 23:59:59");
+        XdDdApproveRecordPo approveRecordPo = XdDdApproveRecordPo.builder()
+                .userId(userId)
+                .userName(userPo.getName())
+                .openUserId(userPo.getIdFxxk())
+                .instanceId(instanceId)
+                .startTime(sTime)
+                .endTime(eTime)
+                .type(type)
+                .build();
+        ddApproveRecordDao.save(approveRecordPo);
+        log.info("同步出差和人员信息, {}, {}", userPo, approveRecordPo);
+        _attendanceSync(sTime, eTime, userPo.getIdFxxk(), userId);  // 兼容后补审批记录
+    }
+
     // 同步纷享销客人员信息
     private XdDdFxkRelationPo _syncUserInfo(String userId) {
         // 更新人员对照记录表, 包括失败备注

BIN
mjava-xiding/target/mjava-xiding.jar.original