Przeglądaj źródła

调整日常物耗申请是否默认供应商
工程每日台账定时任务问题排查

fyz 1 tydzień temu
rodzic
commit
631ded18bd

+ 13 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/controller/AccessController.java

@@ -43,6 +43,19 @@ public class AccessController {
     public McR updateProject(@RequestParam("formInstanceId") String formInstanceId) {
     public McR updateProject(@RequestParam("formInstanceId") String formInstanceId) {
         log.info("定额确认单更新定额档案,入参: {} ", formInstanceId);
         log.info("定额确认单更新定额档案,入参: {} ", formInstanceId);
         workService.updateProject(formInstanceId);
         workService.updateProject(formInstanceId);
+        log.info("定额确认单更新定额档案完成,现在发起定额数据确认单");
+        workService.startQuotaConfirm();
+        return McR.success();
+    }
+    /**
+     * 发起考核确认单
+     */
+    @PostMapping("startAssessment")
+    public McR startAssessment(@RequestBody Map data) {
+        log.info("手动调度考核确认单,先生成定额档案表");
+        workService.quotaArchive();
+        log.info("生成考核确认单");
+        workService.startAssessment();
         return McR.success();
         return McR.success();
     }
     }
 
 

+ 2 - 2
mjava-lanyun/src/main/java/com/malk/lanyun/service/WorkService.java

@@ -39,13 +39,13 @@ public interface WorkService {
     void quotaArchive();
     void quotaArchive();
 
 
     /**
     /**
-     * 定时跑批定额档案表
+     * 更新定额档案表是否发起考核
      */
      */
     void updateProject(String formInstanceId);
     void updateProject(String formInstanceId);
 
 
 
 
     /**
     /**
-     * 定时自动发起考核确认单
+     * 发起考核确认单
      */
      */
     void startQuotaConfirm();
     void startQuotaConfirm();
 
 

+ 12 - 2
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -1226,7 +1226,12 @@ public class TimerServiceImpl implements TimerService {
                                 .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
                                 .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
                                 .build());
                                 .build());
                         if (businessList.size()>=2){
                         if (businessList.size()>=2){
-                            businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
+                            List<Map> isDefault = businessList.stream().filter(map -> "是".equals(map.get("selectField_mkdqmtns"))).collect(Collectors.toList());
+                            if (isDefault.size()>0){
+                                businessList = isDefault;
+                            }else {
+                                businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
+                            }
                         }
                         }
                         if(ObjectUtil.isNotNull(businessList) && businessList.size()>0){
                         if(ObjectUtil.isNotNull(businessList) && businessList.size()>0){
                             if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){
                             if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){
@@ -1295,7 +1300,12 @@ public class TimerServiceImpl implements TimerService {
                                 .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
                                 .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
                                 .build());
                                 .build());
                         if (businessList.size()>=2){
                         if (businessList.size()>=2){
-                            businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
+                            List<Map> isDefault = businessList.stream().filter(map -> "是".equals(map.get("selectField_mkdqmtns"))).collect(Collectors.toList());
+                            if (isDefault.size()>0){
+                                businessList = isDefault;
+                            }else {
+                                businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
+                            }
                         }
                         }
                         if(ObjectUtil.isNotNull(businessList) && businessList.size()>0){
                         if(ObjectUtil.isNotNull(businessList) && businessList.size()>0){
                             if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){
                             if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){

+ 38 - 20
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/WorkServiceImpl.java

@@ -79,10 +79,10 @@ public class WorkServiceImpl implements WorkService {
         Date beginOfMonth = DateUtil.beginOfMonth(DateUtil.lastMonth());
         Date beginOfMonth = DateUtil.beginOfMonth(DateUtil.lastMonth());
         Date endOfMonth = DateUtil.endOfMonth(DateUtil.lastMonth());
         Date endOfMonth = DateUtil.endOfMonth(DateUtil.lastMonth());
         String[] dateList = new String[2];
         String[] dateList = new String[2];
-//        dateList[0] = String.valueOf(beginOfMonth.getTime());
-        dateList[0] = String.valueOf(1755705600000L);
-//        dateList[1] = String.valueOf(endOfMonth.getTime());
-        dateList[1] = String.valueOf(1755791999000L);
+        dateList[0] = String.valueOf(beginOfMonth.getTime());
+//        dateList[0] = String.valueOf(1755705600000L);
+        dateList[1] = String.valueOf(endOfMonth.getTime());
+//        dateList[1] = String.valueOf(1755791999000L);
         //获取当月所有报工单
         //获取当月所有报工单
         List<Map> dataList = ydService.queryFormData_all(_initLYParam()
         List<Map> dataList = ydService.queryFormData_all(_initLYParam()
                 .formUuid("FORM-C9543719A88F4D99A8E197FD6F9DE182ZOW9")
                 .formUuid("FORM-C9543719A88F4D99A8E197FD6F9DE182ZOW9")
@@ -230,8 +230,7 @@ public class WorkServiceImpl implements WorkService {
                 if (ObjectUtil.isNotNull(inList) && inList.size()>0){
                 if (ObjectUtil.isNotNull(inList) && inList.size()>0){
                     inList.forEach(e->{
                     inList.forEach(e->{
                         //人员
                         //人员
-                        String emp = e.get("employeeField_lrs3k7zz").toString();
-                        JSONArray jsonArray = JSONArray.parseArray(emp);
+                        String emp = UtilMap.getList(e,"employeeField_lrs3k7zz").size()>0?UtilMap.getList(e,"employeeField_lrs3k7zz").get(0).toString():"";
                         //工时
                         //工时
                         Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7fric_value")) && !e.get("numberField_lrn7fric_value").toString().isEmpty() ? e.get("numberField_lrn7fric_value").toString() : "0.0");
                         Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7fric_value")) && !e.get("numberField_lrn7fric_value").toString().isEmpty() ? e.get("numberField_lrn7fric_value").toString() : "0.0");
                         //人均产值
                         //人均产值
@@ -241,7 +240,7 @@ public class WorkServiceImpl implements WorkService {
                         //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
                         //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
                         Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
                         Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
                                         "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
                                         "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
-                                workDate, workFrom, workContent, jsonArray.get(0), "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "内协",type, k);
+                                workDate, workFrom, workContent, emp, "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "内协",type, k);
                         dataForm.add(map);
                         dataForm.add(map);
                     });
                     });
                 }
                 }
@@ -500,7 +499,7 @@ public class WorkServiceImpl implements WorkService {
     @Override
     @Override
     public void startAssessment() {
     public void startAssessment() {
         LocalDateTime now = LocalDateTime.now();
         LocalDateTime now = LocalDateTime.now();
-        LocalDateTime lastMonth = now.plusMonths(-2);
+        LocalDateTime lastMonth = now.plusMonths(-1);
         // 方法1:指定时区转换为Instant
         // 方法1:指定时区转换为Instant
         long lastMonthTime = lastMonth.atZone(ZoneId.systemDefault())
         long lastMonthTime = lastMonth.atZone(ZoneId.systemDefault())
                 .toInstant()
                 .toInstant()
@@ -522,6 +521,7 @@ public class WorkServiceImpl implements WorkService {
                     Instant instant = Instant.ofEpochMilli(startTimestamp);
                     Instant instant = Instant.ofEpochMilli(startTimestamp);
                     LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
                     LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
                     start = dateTime.plusDays(120).plusMonths(1).withDayOfMonth(1);
                     start = dateTime.plusDays(120).plusMonths(1).withDayOfMonth(1);
+//                    start = start.plusMonths(1).withDayOfMonth(1);
                 }
                 }
 
 
                 if (ObjectUtil.isNotNull(e.get("dateField_lzaqu26p"))) {
                 if (ObjectUtil.isNotNull(e.get("dateField_lzaqu26p"))) {
@@ -573,14 +573,15 @@ public class WorkServiceImpl implements WorkService {
 
 
     @Override
     @Override
     public void quotaArchive() {
     public void quotaArchive() {
+
         LocalDate currentDate = LocalDate.now();
         LocalDate currentDate = LocalDate.now();
 //        YearMonth lastMonth = YearMonth.from(currentDate).minusMonths(1);
 //        YearMonth lastMonth = YearMonth.from(currentDate).minusMonths(1);
-        String formatNowMonth = LocalDateTime.now().plusMonths(-2).format(DateTimeFormatter.ofPattern("yyyy-MM"));
-        String formatLastMonth = LocalDateTime.now().plusMonths(-3).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+        String formatNowMonth = LocalDateTime.now().plusMonths(-1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+        String formatLastMonth = LocalDateTime.now().plusMonths(-2).format(DateTimeFormatter.ofPattern("yyyy-MM"));
         // 获取月份的第一天
         // 获取月份的第一天
-        LocalDateTime firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
+        LocalDateTime firstDay = LocalDateTime.now().plusMonths(-1).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取月份的最后一天
         // 获取月份的最后一天
-        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-2).lengthOfMonth())
+        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-1).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         // 转换回时间戳
         // 转换回时间戳
         long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -592,6 +593,22 @@ public class WorkServiceImpl implements WorkService {
         List<String> conDateList = new ArrayList<>();
         List<String> conDateList = new ArrayList<>();
         conDateList.add(String.valueOf(firstDayTimestamp));
         conDateList.add(String.valueOf(firstDayTimestamp));
         conDateList.add(String.valueOf(lastDayTimestamp));
         conDateList.add(String.valueOf(lastDayTimestamp));
+        //先清空已存在的数据
+        List<Map> deleteList = ydService.queryFormData_all(YDParam.builder()
+                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr", conDateList)))
+                .build());
+        deleteList.forEach(d->{
+            ydClient.operateData(YDParam.builder()
+                    .appType("APP_TKO2FYGFQYQQMQFUTUU5")
+                    .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
+                    .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
+                    .formInstanceId(UtilMap.getString(d,"formInstanceId"))
+                    .build(), YDConf.FORM_OPERATION.delete);
+        });
+
         //项目点数据
         //项目点数据
         List<Map> projectList = ydService.queryFormData_all(YDParam.builder()
         List<Map> projectList = ydService.queryFormData_all(YDParam.builder()
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
@@ -908,9 +925,9 @@ public class WorkServiceImpl implements WorkService {
         });
         });
 
 
         // 获取上月份的第一天
         // 获取上月份的第一天
-        firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
+        firstDay = LocalDateTime.now().plusMonths(-1).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取上月份的最后一天
         // 获取上月份的最后一天
-        lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-2).lengthOfMonth())
+        lastDay =  LocalDateTime.now().plusMonths(-1).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         // 转换回时间戳
         // 转换回时间戳
         firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -946,9 +963,9 @@ public class WorkServiceImpl implements WorkService {
                 ));
                 ));
 
 
         // 获取上上月份的第一天
         // 获取上上月份的第一天
-        firstDay = LocalDateTime.now().plusMonths(-3).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
+        firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取上上月份的最后一天
         // 获取上上月份的最后一天
-        lastDay =  LocalDateTime.now().plusMonths(-3).withDayOfMonth(LocalDate.now().plusMonths(-3).lengthOfMonth())
+        lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-2).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         lastDayTimestamp = lastDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         lastDayTimestamp = lastDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -999,7 +1016,7 @@ public class WorkServiceImpl implements WorkService {
                                 "dateField_mfo3dvpr, radioField_mfo5qdfc, selectField_mfo51ygd, selectField_mfp86vfw, " +
                                 "dateField_mfo3dvpr, radioField_mfo5qdfc, selectField_mfo51ygd, selectField_mfp86vfw, " +
                                 "textField_mfenmegj, textField_mfo6i24e, textField_mgizxcry, numberField_mfo3dvq0, " +
                                 "textField_mfenmegj, textField_mfo6i24e, textField_mgizxcry, numberField_mfo3dvq0, " +
                                 "numberField_mfo3dvpy",
                                 "numberField_mfo3dvpy",
-                        objects, code,LocalDateTime.now().plusMonths(-2).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(),
+                        objects, code,LocalDateTime.now().plusMonths(-1).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(),
                         "项目点负责人","否","否",name,formatNowMonth,name,UtilMap.getDouble(e,"numberField_lrhjdu5l"),
                         "项目点负责人","否","否",name,formatNowMonth,name,UtilMap.getDouble(e,"numberField_lrhjdu5l"),
                         UtilMap.getDouble(e,"numberField_lrpvi1wf"));
                         UtilMap.getDouble(e,"numberField_lrpvi1wf"));
                 if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))){
                 if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))){
@@ -1341,6 +1358,7 @@ public class WorkServiceImpl implements WorkService {
                 }
                 }
                 dataMap.put("numberField_mfenmell",sumScore);
                 dataMap.put("numberField_mfenmell",sumScore);
 
 
+                System.out.println(dataMap);
 //                UtilMap.map("numberField_mfenmehq, numberField_mfenmehr, numberField_mfenmehy, numberField_mfenmei0",0,0,0,0);
 //                UtilMap.map("numberField_mfenmehq, numberField_mfenmehr, numberField_mfenmehy, numberField_mfenmei0",0,0,0,0);
                 ydClient.operateData(YDParam.builder()
                 ydClient.operateData(YDParam.builder()
                         .appType("APP_TKO2FYGFQYQQMQFUTUU5")
                         .appType("APP_TKO2FYGFQYQQMQFUTUU5")
@@ -1424,12 +1442,12 @@ public class WorkServiceImpl implements WorkService {
     @Override
     @Override
     public void startQuotaConfirm() {
     public void startQuotaConfirm() {
         LocalDate currentDate = LocalDate.now();
         LocalDate currentDate = LocalDate.now();
-        String formatNowMonth = LocalDateTime.now().plusMonths(-2).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+        String formatNowMonth = LocalDateTime.now().plusMonths(-1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
 
 
         // 获取月份的第一天
         // 获取月份的第一天
-        LocalDateTime firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
+        LocalDateTime firstDay = LocalDateTime.now().plusMonths(-1).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取月份的最后一天
         // 获取月份的最后一天
-        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-2).lengthOfMonth())
+        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-1).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         // 转换回时间戳
         // 转换回时间戳
         long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();