Explorar el Código

绩效考核取值调整
自动发起采购订单逻辑更新

fyz hace 1 mes
padre
commit
0c651426b1

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

@@ -69,6 +69,7 @@ public class PurchaseController {
     @PostMapping("startPurchaseOrderNew")
     public McR startPurchaseOrderNew(@RequestParam("formInstanceId") String formInstanceId){
 
+        log.info("formInstanceId:{}",formInstanceId);
         purchaseService.startPurchaseOrderNew(formInstanceId);
 
         return McR.success();

+ 1 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/schedule/ScheduleTask.java

@@ -181,7 +181,7 @@ public class ScheduleTask {
 
 
     /**
-     * 每2小时全量同步账龄表
+     * 每周六上午10点更新每日用车
      */
 //    @Scheduled(cron = "0 0 0/2 * * ?")
     @Scheduled(cron = "0 0 10 ? * SAT")

+ 345 - 317
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/WorkServiceImpl.java

@@ -500,7 +500,7 @@ public class WorkServiceImpl implements WorkService {
     @Override
     public void startAssessment() {
         LocalDateTime now = LocalDateTime.now();
-        LocalDateTime lastMonth = now.plusMonths(-1);
+        LocalDateTime lastMonth = now.plusMonths(-2);
         // 方法1:指定时区转换为Instant
         long lastMonthTime = lastMonth.atZone(ZoneId.systemDefault())
                 .toInstant()
@@ -512,51 +512,52 @@ public class WorkServiceImpl implements WorkService {
 //                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lrr3rg6h", projectCode)))
                 .build());
         List<Map<String,Object>> sonList = new ArrayList<>();
-        dataList.forEach(e->{
-            LocalDateTime start = null;
-            LocalDateTime end = null;
-            if (ObjectUtil.isNotNull( e.get("dateField_lrn2oy54"))){
-                String startTime = e.get("dateField_lrn2oy54").toString();
-                long startTimestamp = Long.parseLong(startTime);
-                Instant instant = Instant.ofEpochMilli(startTimestamp);
-                LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
-                start = dateTime.plusDays(120).plusMonths(1).withDayOfMonth(1);
-            }
-
-            if (ObjectUtil.isNotNull(e.get("dateField_lzaqu26p"))){
-
-                String endTime = e.get("dateField_lzaqu26p").toString();
-                long endTimestamp = Long.parseLong(endTime);
-                Instant instant = Instant.ofEpochMilli(endTimestamp);
-                LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
-                end = dateTime.plusDays(90);
-            }
+        dataList.forEach(e-> {
+            if (!"PMXZ001".equals(e.get("textField_lrr3rg6h")) && !"PMZC001".equals(e.get("textField_lrr3rg6h")) && !e.get("textField_lrr3rg6h").toString().startsWith("PM99")) {
+                LocalDateTime start = null;
+                LocalDateTime end = null;
+                if (ObjectUtil.isNotNull(e.get("dateField_lrn2oy54"))) {
+                    String startTime = e.get("dateField_lrn2oy54").toString();
+                    long startTimestamp = Long.parseLong(startTime);
+                    Instant instant = Instant.ofEpochMilli(startTimestamp);
+                    LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
+                    start = dateTime.plusDays(120).plusMonths(1).withDayOfMonth(1);
+                }
 
-            if ((ObjectUtil.isNull(e.get("dateField_lzaqu26p")) || now.isBefore(end)) && ObjectUtil.isNotNull(e.get("dateField_lrn2oy54")) && (now.isAfter(start) || now.isEqual(start))){
-                List<Map<String,Object>> objects = new ArrayList<>();
-                Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
-                        "APP_TKO2FYGFQYQQMQFUTUU5", "FORM-EA91EECA918848EA9EFFA87107B60BD0SLXX", "receipt",
-                        e.get("formInstanceId"), e.get("textField_lrr3rg6i"), e.get("textField_ltxrn8h1"));
-                objects.add(map);
-
-                Map<String, Object> dataMap = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp, selectField_mfo51ygd, selectField_mfp86vfw",
-                        objects, e.get("textField_ltxrn8h1"), "是", "是");
-                if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))){
-                    //项目点负责人
-                    String xmdfzr = e.get("employeeField_lw1usgpt_id").toString();
-                    JSONArray xmdfzrArray = JSONArray.parseArray(xmdfzr);
-                    dataMap.put("employeeField_mfo3dvpt",xmdfzrArray.get(0));
-                    dataMap.put("textField_mgolsje0",xmdfzrArray.get(0));
+                if (ObjectUtil.isNotNull(e.get("dateField_lzaqu26p"))) {
+                    String endTime = e.get("dateField_lzaqu26p").toString();
+                    long endTimestamp = Long.parseLong(endTime);
+                    Instant instant = Instant.ofEpochMilli(endTimestamp);
+                    LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
+                    end = dateTime.plusDays(90);
                 }
 
-                if (ObjectUtil.isNotNull(e.get("employeeField_lrpswhaj_id"))){
-                    //营运经理
-                    String yyjl = e.get("employeeField_lrpswhaj_id").toString();
-                    JSONArray yyjlArray = JSONArray.parseArray(yyjl);
-                    dataMap.put("employeeField_mfo3dvq2",yyjlArray.get(0));
-                    dataMap.put("textField_mgolsje1",yyjlArray.get(0));
+                if ((ObjectUtil.isNull(e.get("dateField_lzaqu26p")) || now.isBefore(end)) && ObjectUtil.isNotNull(e.get("dateField_lrn2oy54")) && (now.isAfter(start) || now.isEqual(start))) {
+                    List<Map<String, Object>> objects = new ArrayList<>();
+                    Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
+                            "APP_TKO2FYGFQYQQMQFUTUU5", "FORM-EA91EECA918848EA9EFFA87107B60BD0SLXX", "receipt",
+                            e.get("formInstanceId"), e.get("textField_lrr3rg6i"), e.get("textField_ltxrn8h1"));
+                    objects.add(map);
+
+                    Map<String, Object> dataMap = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp, selectField_mfo51ygd, selectField_mfp86vfw",
+                            objects, e.get("textField_ltxrn8h1"), "是", "是");
+                    if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))) {
+                        //项目点负责人
+                        String xmdfzr = e.get("employeeField_lw1usgpt_id").toString();
+                        JSONArray xmdfzrArray = JSONArray.parseArray(xmdfzr);
+                        dataMap.put("employeeField_mfo3dvpt", xmdfzrArray.get(0));
+                        dataMap.put("textField_mgolsje0", xmdfzrArray.get(0));
+                    }
+
+                    if (ObjectUtil.isNotNull(e.get("employeeField_lrpswhaj_id"))) {
+                        //营运经理
+                        String yyjl = e.get("employeeField_lrpswhaj_id").toString();
+                        JSONArray yyjlArray = JSONArray.parseArray(yyjl);
+                        dataMap.put("employeeField_mfo3dvq2", yyjlArray.get(0));
+                        dataMap.put("textField_mgolsje1", yyjlArray.get(0));
+                    }
+                    sonList.add(dataMap);
                 }
-                sonList.add(dataMap);
             }
         });
         /*发起流程*/
@@ -566,7 +567,7 @@ public class WorkServiceImpl implements WorkService {
                 .formUuid("FORM-EA91EECA918848EA9EFFA87107B60BD0SLXX")
                 .formDataJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, tableField_mfo51ygb",
                         lastMonthTime,sonList)))
-                        .useLatestVersion(true)
+                .useLatestVersion(true)
                 .build(), YDConf.FORM_OPERATION.start);
     }
 
@@ -579,7 +580,7 @@ public class WorkServiceImpl implements WorkService {
         // 获取月份的第一天
         LocalDateTime firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取月份的最后一天
-        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
+        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-2).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         // 转换回时间戳
         long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -588,6 +589,9 @@ public class WorkServiceImpl implements WorkService {
         List<String> dateList = new ArrayList<>();
         dateList.add(String.valueOf(firstDayTimestamp));
         dateList.add(String.valueOf(lastDayTimestamp));
+        List<String> conDateList = new ArrayList<>();
+        conDateList.add(String.valueOf(firstDayTimestamp));
+        conDateList.add(String.valueOf(lastDayTimestamp));
         //项目点数据
         List<Map> projectList = ydService.queryFormData_all(YDParam.builder()
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
@@ -612,9 +616,10 @@ public class WorkServiceImpl implements WorkService {
                                 list -> {
                                     //社保公积金补贴
                                     double sbgjj = list.stream()
-                                            .mapToDouble(map -> ((Number) (Double.parseDouble(!map.get("numberField_kp1tzw9_value").toString().isEmpty() ? map.get("numberField_kp1tzw9_value").toString() : "0.0")
-                                                    + Double.parseDouble(!map.get("numberField_lixe8q3_value").toString().isEmpty() ? map.get("numberField_lixe8q3_value").toString() : "0.0")
-                                                    + UtilMap.getDouble(map, "numberField_x4wvwkm"))).doubleValue())
+                                            .mapToDouble(map -> ((Number) (UtilMap.getDouble(map,"numberField_kp1tzw9")
+                                                    + UtilMap.getDouble(map, "numberField_lixe8q3")
+//                                                    + UtilMap.getDouble(map, "numberField_x4wvwkm")
+                                            )).doubleValue())
                                             .sum();
                                     //小业主费用
                                     double xyzfy = list.stream()
@@ -858,7 +863,7 @@ public class WorkServiceImpl implements WorkService {
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
                 .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
                 .formUuid("FORM-C2576D2264944067B278E6522D4F0A81UBZ3")
-                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lr347gek",dateList)))
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lr347gek, selectField_lr347gep",dateList,"自盘")))
                 .build());
 
         Map<String, HashMap<String, Object>> materialChecks = materialCheckList.stream().collect(
@@ -905,7 +910,7 @@ public class WorkServiceImpl implements WorkService {
         // 获取上月份的第一天
         firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取上月份的最后一天
-        lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
+        lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-2).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         // 转换回时间戳
         firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -925,7 +930,7 @@ public class WorkServiceImpl implements WorkService {
         Map<String, HashMap<String, Object>> lastOpens = lastOpenList.stream().collect(
                 Collectors.groupingBy(
                         //根据项目点编号
-                        map -> map.get("textField_m25j5gxk").toString(),
+                        map -> map.get("textField_lvdntzul").toString(),
                         Collectors.collectingAndThen(
                                 Collectors.toList(),
                                 list -> {
@@ -943,7 +948,7 @@ public class WorkServiceImpl implements WorkService {
         // 获取上上月份的第一天
         firstDay = LocalDateTime.now().plusMonths(-3).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取上上月份的最后一天
-        lastDay =  LocalDateTime.now().plusMonths(-3).withDayOfMonth(LocalDate.now().plusMonths(-4).lengthOfMonth())
+        lastDay =  LocalDateTime.now().plusMonths(-3).withDayOfMonth(LocalDate.now().plusMonths(-3).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
         lastDayTimestamp = lastDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -963,7 +968,7 @@ public class WorkServiceImpl implements WorkService {
         Map<String, HashMap<String, Object>> lastLastOpens = lastLastOpenList.stream().collect(
                 Collectors.groupingBy(
                         //根据项目点编号
-                        map -> map.get("textField_m25j5gxk").toString(),
+                        map -> map.get("textField_lvdntzul").toString(),
                         Collectors.collectingAndThen(
                                 Collectors.toList(),
                                 list -> {
@@ -982,272 +987,276 @@ public class WorkServiceImpl implements WorkService {
             String name = e.get("textField_lrr3rg6i").toString();
 //            if ("苏南硕放机场".equals(name)){
 
-                String code = e.get("textField_ltxrn8h1").toString();
+            String code = e.get("textField_ltxrn8h1").toString();
+            if (!"PMXZ001".equals(e.get("textField_lrr3rg6h")) && !"PMZC001".equals(e.get("textField_lrr3rg6h")) && !e.get("textField_lrr3rg6h").toString().startsWith("PM99")) {
+
                 List<Map<String,Object>> objects = new ArrayList<>();
-                Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
-                        "APP_ERBDTFS82HOVBPL3NFH0", "FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC", "receipt",
-                        e.get("formInstanceId"), name, code);
-                objects.add(map);
-                Map<String, Object> dataMap = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp, " +
-                                "dateField_mfo3dvpr, radioField_mfo5qdfc, selectField_mfo51ygd, selectField_mfp86vfw, " +
-                                "textField_mfenmegj, textField_mfo6i24e, textField_mgizxcry, numberField_mfo3dvq0, " +
-                                "numberField_mfo3dvpy",
-                        objects, code,LocalDateTime.now().plusMonths(-2).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(),
-                        "项目点负责人","否","否",name,formatNowMonth,name,UtilMap.getDouble(e,"numberField_lrhjdu5l"),
-                        UtilMap.getDouble(e,"numberField_lrpvi1wf"));
-                if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))){
-                    //项目点负责人
-                    String xmdfzr = e.get("employeeField_lw1usgpt_id").toString();
-                    JSONArray xmdfzrArray = JSONArray.parseArray(xmdfzr);
-                    dataMap.put("employeeField_mfo3dvpt",xmdfzrArray.get(0));
-                    dataMap.put("textField_mgoljmhh",xmdfzrArray.get(0));
-                }
+            Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
+                    "APP_ERBDTFS82HOVBPL3NFH0", "FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC", "receipt",
+                    e.get("formInstanceId"), name, code);
+            objects.add(map);
+            Map<String, Object> dataMap = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp, " +
+                            "dateField_mfo3dvpr, radioField_mfo5qdfc, selectField_mfo51ygd, selectField_mfp86vfw, " +
+                            "textField_mfenmegj, textField_mfo6i24e, textField_mgizxcry, numberField_mfo3dvq0, " +
+                            "numberField_mfo3dvpy",
+                    objects, code,LocalDateTime.now().plusMonths(-2).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(),
+                    "项目点负责人","否","否",name,formatNowMonth,name,UtilMap.getDouble(e,"numberField_lrhjdu5l"),
+                    UtilMap.getDouble(e,"numberField_lrpvi1wf"));
+            if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))){
+                //项目点负责人
+                String xmdfzr = e.get("employeeField_lw1usgpt_id").toString();
+                JSONArray xmdfzrArray = JSONArray.parseArray(xmdfzr);
+                dataMap.put("employeeField_mfo3dvpt",xmdfzrArray.get(0));
+                dataMap.put("textField_mgoljmhh",xmdfzrArray.get(0));
+            }
 
-                if (ObjectUtil.isNotNull(e.get("employeeField_lrpswhaj_id"))){
-                    //营运经理
-                    String yyjl = e.get("employeeField_lrpswhaj_id").toString();
-                    JSONArray yyjlArray = JSONArray.parseArray(yyjl);
-                    dataMap.put("employeeField_mfo3dvq2",yyjlArray.get(0));
-                    dataMap.put("textField_mgolu3w2",yyjlArray.get(0));
+            if (ObjectUtil.isNotNull(e.get("employeeField_lrpswhaj_id"))){
+                //营运经理
+                String yyjl = e.get("employeeField_lrpswhaj_id").toString();
+                JSONArray yyjlArray = JSONArray.parseArray(yyjl);
+                dataMap.put("employeeField_mfo3dvq2",yyjlArray.get(0));
+                dataMap.put("textField_mgolu3w2",yyjlArray.get(0));
+            }
+            List<Map> sonList = ydService.queryDetails(YDParam.builder().
+                    appType("APP_ERBDTFS82HOVBPL3NFH0")
+                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                    .formInstanceId(e.get("formInstanceId").toString())
+                    .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
+                    .tableFieldId("tableField_lrru2tnq")
+                    .build());
+            //项目点档案子表本月
+            List<Map> sonFilterList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
+            sonFilterList.forEach(s->{
+                //人工定额
+                double person = UtilMap.getDouble(s,"numberField_lrru2tnt_value");
+                //物料定额
+                double cost = UtilMap.getDouble(s,"numberField_lrru2tnu_value");
+                //收入定额
+                double income = UtilMap.getDouble(s,"numberField_lrru2tns_value");
+                //回款金额
+                double back = UtilMap.getDouble(s,"numberField_lrru2to3_value");
+                //工资定额分项
+                dataMap.put("numberField_mfenmehp",person);
+                //物料定额
+                dataMap.put("numberField_mfenmeih",cost);
+                //定额收入
+                dataMap.put("numberField_mfenmejp",income);
+                //回款金额
+                dataMap.put("numberField_mfenmek8",back);
+            });
+            //项目点档案子表上月
+            List<Map> sonLastMonthList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
+            sonLastMonthList.forEach(s->{
+                //开票金额
+                double open = UtilMap.getDouble(s,"numberField_lrru2to2_value");
+                //开票金额
+                dataMap.put("numberField_mfenmejr",open);
+            });
+            //算薪结果表
+            salarys.forEach((k,v)->{
+                if (k.equals(name)){
+                    dataMap.putAll(v);
                 }
-                List<Map> sonList = ydService.queryDetails(YDParam.builder().
-                        appType("APP_ERBDTFS82HOVBPL3NFH0")
-                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                        .formInstanceId(e.get("formInstanceId").toString())
-                        .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
-                        .tableFieldId("tableField_lrru2tnq")
-                        .build());
-                //项目点档案子表本月
-                List<Map> sonFilterList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
-                sonFilterList.forEach(s->{
-                    //人工定额
-                    double person = UtilMap.getDouble(s,"numberField_lrru2tnt_value");
-                    //物料定额
-                    double cost = UtilMap.getDouble(s,"numberField_lrru2tnu_value");
-                    //收入定额
-                    double income = UtilMap.getDouble(s,"numberField_lrru2tns_value");
-                    //回款金额
-                    double back = UtilMap.getDouble(s,"numberField_lrru2to3_value");
-                    //工资定额分项
-                    dataMap.put("numberField_mfenmehp",person);
-                    //物料定额
-                    dataMap.put("numberField_mfenmeih",cost);
-                    //定额收入
-                    dataMap.put("numberField_mfenmejp",income);
-                    //回款金额
-                    dataMap.put("numberField_mfenmek8",back);
-                });
-                //项目点档案子表上月
-                List<Map> sonLastMonthList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
-                sonLastMonthList.forEach(s->{
-                    //开票金额
-                    double open = UtilMap.getDouble(s,"numberField_lrru2to2_value");
-                    //开票金额
-                    dataMap.put("numberField_mfenmejr",open);
-                });
-                //算薪结果表
-                salarys.forEach((k,v)->{
-                    if (k.equals(name)){
-                        dataMap.putAll(v);
-                    }
-                });
-                //社保公积金
-                socials.forEach((k,v)->{
-                    if (k.equals(name)){
-                        dataMap.putAll(v);
-                    }
-                });
-
-                //遍历部门成本
-                dataMap.put("numberField_mfenmei2",0.0);
-                dataMap.put("numberField_mfenmeil",0.0);
-                dataMap.put("numberField_mfenmeio",0.0);
-                dataMap.put("numberField_mfenmelh",0.0);
-                dataMap.put("numberField_mfenmelg",0.0);
-                dataMap.put("numberField_mfenmek9",0.0);
-                costCollect.forEach((k0,v0)->{
-                    if (k0.equals(name)){
-                        v0.forEach((k1,v1)->{
-                            if ("生产成本-业务外包费".equals(k1)){
-                                //劳务所临时工费用
-                                dataMap.put("numberField_mfenmei2",v1.get("cost"));
-                            }else if ("生产成本-租赁费".equals(k1)){
-                                //租赁
-                                dataMap.put("numberField_mfenmeil",v1.get("cost"));
-                            }else if ("生产成本-折旧".equals(k1)) {
-                                //折旧
-                                dataMap.put("numberField_mfenmeio", v1.get("cost"));
-                            }
-                        });
-                    }
-                });
-                //劳防用品
-                dataMap.put("numberField_mfenmeim",0.0);
-                workCloCost.forEach((k,v)->{
-                    if (k.equals(name)){
-                        dataMap.put("numberField_mfenmeim",v.get("cost"));
-                    }
-                });
-                //物耗(非工作服)
-                dataMap.put("numberField_mfenmeii",0.0);
-                workNoCloCost.forEach((k,v)->{
-                    if (k.equals(name)){
-                        dataMap.put("numberField_mfenmeii",v.get("cost"));
-                    }
-                });
-                //设备维修
-                dataMap.put("numberField_mfenmeij",0.0);
-                repairBillCost.forEach((k,v)->{
-                    if (k.equals(code)){
-                        dataMap.put("numberField_mfenmeij",v.get("cost"));
-                    }
-                });
-                //超期时间
-                daysDiff.forEach((k,v)->{
-                    if (k.equals(code)){
-                        dataMap.put("numberField_mfenmek9",v);
-                    }
-                });
+            });
+            //社保公积金
+            socials.forEach((k,v)->{
+                if (k.equals(name)){
+                    dataMap.putAll(v);
+                }
+            });
 
-                double bzwhcb = UtilMap.getDouble(e,"numberField_lrn2oy4q_value");
-                final double[] krksl = {0.0};
-                //入库
-                procurements.forEach((k,v)->{
-                    if (k.equals(code)){
-                        krksl[0] = UtilMap.getDouble(v,"cost");
-                    }
-                });
-                if (bzwhcb == 0 || (bzwhcb != 0.0 && krksl[0] == 0)){
-                    dataMap.put("numberField_mfenmekv",5);//7-入库
-                }else {
-                    dataMap.put("numberField_mfenmekv",0);//7-入库
+            //遍历部门成本
+            dataMap.put("numberField_mfenmei2",0.0);
+            dataMap.put("numberField_mfenmeil",0.0);
+            dataMap.put("numberField_mfenmeio",0.0);
+            dataMap.put("numberField_mfenmelh",0.0);
+            dataMap.put("numberField_mfenmelg",0.0);
+            dataMap.put("numberField_mfenmek9",0.0);
+            costCollect.forEach((k0,v0)->{
+                if (k0.equals(name)){
+                    v0.forEach((k1,v1)->{
+                        if ("生产成本-业务外包费".equals(k1)){
+                            //劳务所临时工费用
+                            dataMap.put("numberField_mfenmei2",v1.get("cost"));
+                        }else if ("生产成本-租赁费".equals(k1)){
+                            //租赁
+                            dataMap.put("numberField_mfenmeil",v1.get("cost"));
+                        }else if ("生产成本-折旧".equals(k1)) {
+                            //折旧
+                            dataMap.put("numberField_mfenmeio", v1.get("cost"));
+                        }
+                    });
                 }
-                //出库
-                krksl[0] = 0;
-                materialOuts.forEach((k,v)->{
-                    if (k.equals(code)){
-                        krksl[0] = UtilMap.getDouble(v,"size");
-                    }
-                });
-                if (bzwhcb == 0 || (bzwhcb != 0.0 && krksl[0] > 0)){
-                    dataMap.put("numberField_mfenmel3",3);//7-出库
-                }else {
-                    dataMap.put("numberField_mfenmel3",0);//7-出库
+            });
+            //劳防用品
+            dataMap.put("numberField_mfenmeim",0.0);
+            workCloCost.forEach((k,v)->{
+                if (k.equals(name)){
+                    dataMap.put("numberField_mfenmeim",v.get("cost"));
                 }
-                //盘点
-                krksl[0] = 0;
-                materialChecks.forEach((k,v)->{
-                    if (k.equals(code)){
-                        krksl[0] = UtilMap.getDouble(v,"size");
-                    }
-                });
-                if (bzwhcb == 0 || (bzwhcb != 0.0 && krksl[0] > 0)){
-                    dataMap.put("numberField_mfenmel9",2);//7-自盘
-                }else {
-                    dataMap.put("numberField_mfenmel9",0);//7-自盘
+            });
+            //物耗(非工作服)
+            dataMap.put("numberField_mfenmeii",0.0);
+            workNoCloCost.forEach((k,v)->{
+                if (k.equals(name)){
+                    dataMap.put("numberField_mfenmeii",v.get("cost"));
                 }
-                //上月小业主开票
-                lastOpens.forEach((k,v)->{
-                    if (k.equals(code)){
-                        dataMap.put("numberField_mfenmelh",v.get("open"));
-                    }
-                });
-                //上上月小业主开票
-                lastLastOpens.forEach((k,v)->{
-                    if (k.equals(code)){
-                        dataMap.put("numberField_mfenmelg",v.get("open"));
-                    }
-                });
-                //结算帐期
-                dataMap.put("textField_mfenmejo",SETTLEMENT_PERIOD.get(UtilMap.getString(e,"selectField_mejp7y3y")));
-                //回款账期
-                dataMap.put("textField_mfenmejq",PAYMENT_TERM.get(UtilMap.getString(e,"selectField_lt590fk8")));
-
-
-                //公式字段计算
-                //定额工资
-                dataMap.put("numberField_mfenmehw", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmehp")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
-                //调整后应发工资
-                dataMap.put("numberField_mfenmei5", UtilMap.getDouble(dataMap,"numberField_mfenmei5")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmei2")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
-                //人工结余
-                dataMap.put("numberField_mfenmei6", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
-                        -  UtilMap.getDouble(dataMap,"numberField_mfenmei5"));
-                //人工占比
-                double fm = UtilMap.getDouble(dataMap,"numberField_mfenmejr")
-                        +  UtilMap.getDouble(dataMap,"numberField_mfenmelh");
-                if (fm == 0){
-                    dataMap.put("numberField_mfenmei4",0);
-                }else {
-                    dataMap.put("numberField_mfenmei4", (UtilMap.getDouble(dataMap,"rgzbfz")
-                            + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
-                            + UtilMap.getDouble(dataMap,"numberField_mfenmeht")
-                            + UtilMap.getDouble(dataMap,"numberField_mfenmei2")) / fm * 100);
+            });
+            //设备维修
+            dataMap.put("numberField_mfenmeij",0.0);
+            repairBillCost.forEach((k,v)->{
+                if (k.equals(code)){
+                    dataMap.put("numberField_mfenmeij",v.get("cost"));
+                }
+            });
+            //超期时间
+            daysDiff.forEach((k,v)->{
+                if (k.equals(code)){
+                    dataMap.put("numberField_mfenmek9",v);
                 }
-                //结余比例
-                if (UtilMap.getDouble(dataMap,"numberField_mfenmehw") == 0){
-                    dataMap.put("numberField_mfenmei7",0);
-                }else {
-                    dataMap.put("numberField_mfenmei7", UtilMap.getDouble(dataMap,"numberField_mfenmei6")
-                            /  UtilMap.getDouble(dataMap,"numberField_mfenmehw") * 100);
+            });
+
+            //物料定额
+            double wlde = UtilMap.getDouble(dataMap,"numberField_mfenmeih");
+            final double[] krksl = {0.0};
+            //入库
+            procurements.forEach((k,v)->{
+                if (k.equals(code)){
+                    krksl[0] = UtilMap.getDouble(v,"cost");
                 }
-                //实际费用 (工作服  非工作服  生产成本-租赁费   生产成本-折旧   设备维修)
-                dataMap.put("numberField_mfenmeip",UtilMap.getDouble(dataMap,"numberField_mfenmeim")
-                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeii")
-                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeil")
-                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeio")
-                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeij"));
-                //物耗占比
-                if (UtilMap.getDouble(dataMap,"numberField_mfenmejr")  == 0){
-                    dataMap.put("numberField_mfenmeir",0);
-                }else {
-                    dataMap.put("numberField_mfenmeir", UtilMap.getDouble(dataMap,"numberField_mfenmeii")
-                            /  UtilMap.getDouble(dataMap,"numberField_mfenmejr") * 100);
+            });
+            if (wlde == 0 || (wlde != 0 && krksl[0] == 0)){
+                dataMap.put("numberField_mfenmekv",5);//7-入库
+            }else {
+                dataMap.put("numberField_mfenmekv",0);//7-入库
+            }
+            //出库
+            krksl[0] = 0;
+            materialOuts.forEach((k,v)->{
+                if (k.equals(code)){
+                    krksl[0] = UtilMap.getInt(v,"size");
                 }
-                //物料结余
-                dataMap.put("numberField_mfenmeis", UtilMap.getDouble(dataMap,"numberField_mfenmeih")
-                        -  UtilMap.getDouble(dataMap,"numberField_mfenmeii"));
-                //结余比例
-                if (UtilMap.getDouble(dataMap,"numberField_mfenmeih") == 0){
-                    dataMap.put("numberField_mfenmeit",0);
-                }else {
-                    dataMap.put("numberField_mfenmeit", UtilMap.getDouble(dataMap,"numberField_mfenmeis")
-                            /  UtilMap.getDouble(dataMap,"numberField_mfenmeih") * 100);
+            });
+            if (wlde == 0 || (wlde != 0 && krksl[0] > 0)){
+                dataMap.put("numberField_mfenmel3",3);//7-出库
+            }else {
+                dataMap.put("numberField_mfenmel3",0);//7-出库
+            }
+            //盘点
+            krksl[0] = 0;
+            materialChecks.forEach((k,v)->{
+                if (k.equals(code)){
+                    krksl[0] = UtilMap.getInt(v,"size");
                 }
-                //结算金额-差额
-                dataMap.put("numberField_mfenmejs", UtilMap.getDouble(dataMap,"numberField_mfenmejr")
-                        -  UtilMap.getDouble(dataMap,"numberField_mfenmejp"));
-                //开票状态
-                if (UtilMap.getDouble(dataMap,"numberField_mfenmejr") > 0){
-                    dataMap.put("textField_mgohy54u","已开票");
-                }else {
-                    dataMap.put("textField_mgohy54u","未开票");
+            });
+            if (wlde == 0 || (wlde != 0 && krksl[0] > 0)){
+                dataMap.put("numberField_mfenmel9",2);//7-自盘
+            }else {
+                dataMap.put("numberField_mfenmel9",0);//7-自盘
+            }
+            //上月小业主开票
+            lastOpens.forEach((k,v)->{
+                if (k.equals(name)){
+                    dataMap.put("numberField_mfenmelh",v.get("open"));
                 }
-                //增长金额
-                dataMap.put("numberField_mfenmeli", UtilMap.getDouble(dataMap,"numberField_mfenmelh")
-                        -  UtilMap.getDouble(dataMap,"numberField_mfenmelg"));
-                //增长率
-                if (UtilMap.getDouble(dataMap,"numberField_mfenmelg") == 0 && UtilMap.getDouble(dataMap,"numberField_mfenmelh") >= 500){
-                    dataMap.put("numberField_mfenmelj",100);
-                }else {
-                    dataMap.put("numberField_mfenmelj", UtilMap.getDouble(dataMap,"numberField_mfenmeli")
-                            / UtilMap.getDouble(dataMap,"numberField_mfenmelg"));
+            });
+            //上上月小业主开票
+            lastLastOpens.forEach((k,v)->{
+                if (k.equals(name)){
+                    dataMap.put("numberField_mfenmelg",v.get("open"));
                 }
-                UtilMap.map("numberField_mfenmehq, numberField_mfenmehr, numberField_mfenmehy, numberField_mfenmei0",0,0,0,0);
-                ydClient.operateData(YDParam.builder()
-                        .appType("APP_TKO2FYGFQYQQMQFUTUU5")
-                        .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
-                        .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
-                        .searchCondition(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, textField_mfenmegp", dateList, code)))
-                        .formDataJson(JSON.toJSONString(dataMap))
-                        .useLatestVersion(true)
-                        .build(), YDConf.FORM_OPERATION.upsert);
+            });
+            //结算帐期
+            dataMap.put("textField_mfenmejo",SETTLEMENT_PERIOD.get(UtilMap.getString(e,"selectField_mejp7y3y")));
+            //回款账期
+            dataMap.put("textField_mfenmejq",PAYMENT_TERM.get(UtilMap.getString(e,"selectField_lt590fk8")));
+
+
+            //公式字段计算
+            //定额工资
+            dataMap.put("numberField_mfenmehw", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
+                    + UtilMap.getDouble(dataMap,"numberField_mfenmehp")
+                    + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
+                    + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
+            //调整后应发工资
+            dataMap.put("numberField_mfenmei5", UtilMap.getDouble(dataMap,"numberField_mfenmei5")
+                    + UtilMap.getDouble(dataMap,"numberField_mfenmei2")
+                    + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
+                    + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
+            //人工结余
+            dataMap.put("numberField_mfenmei6", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
+                    -  UtilMap.getDouble(dataMap,"numberField_mfenmei5"));
+            //人工占比
+            double fm = UtilMap.getDouble(dataMap,"numberField_mfenmejr")
+                    +  UtilMap.getDouble(dataMap,"numberField_mfenmelh");
+            if (fm == 0){
+                dataMap.put("numberField_mfenmei4",0);
+            }else {
+                dataMap.put("numberField_mfenmei4", (UtilMap.getDouble(dataMap,"rgzbfz")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmeht")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmei2")) / fm * 100);
+            }
+            //结余比例
+            if (UtilMap.getDouble(dataMap,"numberField_mfenmehw") == 0){
+                dataMap.put("numberField_mfenmei7",0);
+            }else {
+                dataMap.put("numberField_mfenmei7", UtilMap.getDouble(dataMap,"numberField_mfenmei6")
+                        /  UtilMap.getDouble(dataMap,"numberField_mfenmehw") * 100);
+            }
+            //实际费用 (工作服  非工作服  生产成本-租赁费   生产成本-折旧   设备维修)
+            dataMap.put("numberField_mfenmeip",UtilMap.getDouble(dataMap,"numberField_mfenmeim")
+                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeii")
+                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeil")
+                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeio")
+                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeij"));
+            //物耗占比
+            if (UtilMap.getDouble(dataMap,"numberField_mfenmejr")  == 0){
+                dataMap.put("numberField_mfenmeir",0);
+            }else {
+                dataMap.put("numberField_mfenmeir", UtilMap.getDouble(dataMap,"numberField_mfenmeii")
+                        /  UtilMap.getDouble(dataMap,"numberField_mfenmejr") * 100);
+            }
+            //物料结余
+            dataMap.put("numberField_mfenmeis", UtilMap.getDouble(dataMap,"numberField_mfenmeih")
+                    -  UtilMap.getDouble(dataMap,"numberField_mfenmeii"));
+            //结余比例
+            if (UtilMap.getDouble(dataMap,"numberField_mfenmeih") == 0){
+                dataMap.put("numberField_mfenmeit",0);
+            }else {
+                dataMap.put("numberField_mfenmeit", UtilMap.getDouble(dataMap,"numberField_mfenmeis")
+                        /  UtilMap.getDouble(dataMap,"numberField_mfenmeih") * 100);
+            }
+            //结算金额-差额
+            dataMap.put("numberField_mfenmejs", UtilMap.getDouble(dataMap,"numberField_mfenmejr")
+                    -  UtilMap.getDouble(dataMap,"numberField_mfenmejp"));
+            //开票状态
+            if (UtilMap.getDouble(dataMap,"numberField_mfenmejr") > 0){
+                dataMap.put("textField_mgohy54u","已开票");
+            }else {
+                dataMap.put("textField_mgohy54u","未开票");
+            }
+            //增长金额
+            dataMap.put("numberField_mfenmeli", UtilMap.getDouble(dataMap,"numberField_mfenmelh")
+                    -  UtilMap.getDouble(dataMap,"numberField_mfenmelg"));
+            //增长率
+            if (UtilMap.getDouble(dataMap,"numberField_mfenmelg") == 0 && UtilMap.getDouble(dataMap,"numberField_mfenmelh") >= 500){
+                dataMap.put("numberField_mfenmelj",100);
+            }else {
+                dataMap.put("numberField_mfenmelj", UtilMap.getDouble(dataMap,"numberField_mfenmeli")
+                        / UtilMap.getDouble(dataMap,"numberField_mfenmelg"));
+            }
+            UtilMap.map("numberField_mfenmehq, numberField_mfenmehr, numberField_mfenmehy, numberField_mfenmei0",0,0,0,0);
+            ydClient.operateData(YDParam.builder()
+                    .appType("APP_TKO2FYGFQYQQMQFUTUU5")
+                    .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
+                    .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
+                    .searchCondition(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, textField_mfenmegp", conDateList, code)))
+                    .formDataJson(JSON.toJSONString(dataMap))
+                    .useLatestVersion(true)
+                    .build(), YDConf.FORM_OPERATION.upsert_v2);
 //            }
+            }
         });
     }
 
@@ -1268,23 +1277,35 @@ public class WorkServiceImpl implements WorkService {
                 .tableFieldId("tableField_mfo51ygb")
                 .build());
 
-        String[] dateList = getMonthStartEndTimestamps(formData.get("dateField_mfo3dvpr").toString());
+        List<String> dateList = getMonthStartEndTimestamps(formData.get("dateField_mfo3dvpr").toString());
         //定额档案表
         List<Map> quotaList = ydService.queryFormData_all(YDParam.builder()
                 .appType("APP_TKO2FYGFQYQQMQFUTUU5")
                 .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
                 .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
-                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr",dateList)))
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr",  dateList)))
                 .build());
 
         sonList.forEach(s->{
             String code = s.get("textField_mfenmegp").toString();
-            String xmdemp = s.get("employeeField_mfo3dvpt").toString();
-            JSONArray xmdArray = JSONArray.parseArray(xmdemp);
+            String xmdemp = UtilMap.getString(s,"employeeField_mfo3dvpt_id");
+            String xmdempId;
+            if(ObjectUtil.isNotNull(xmdemp) && !xmdemp.isEmpty()){
+                JSONArray xmdArray = JSONArray.parseArray(xmdemp);
+                xmdempId = xmdArray.get(0).toString();
+            } else {
+                xmdempId = "";
+            }
 
-            String qyemp = s.get("employeeField_mfo3dvq2").toString();
-            JSONArray qyArray = JSONArray.parseArray(qyemp);
+            String qyemp = UtilMap.getString(s,"employeeField_mfo3dvq2_id");
+            String qyempId;
 
+            if(ObjectUtil.isNotNull(qyemp) && !qyemp.isEmpty()){
+                JSONArray qyArray = JSONArray.parseArray(qyemp);
+                qyempId = qyArray.get(0).toString();
+            } else {
+                qyempId = "";
+            }
             quotaList.forEach(q->{
                 if (code.equals(q.get("textField_mfenmegp"))){
                     ydClient.operateData(YDParam.builder()
@@ -1293,9 +1314,12 @@ public class WorkServiceImpl implements WorkService {
                             .formInstanceId(q.get("formInstanceId").toString())
                             .useLatestVersion(true)
                             //项目是否参与考核  项目负责人是否参与考核  项目负责人userid  区域负责人userid
-                            .updateFormDataJson(JSON.toJSONString(UtilMap.map("selectField_mfo51ygd, selectField_mfp86vfw, " +
-                                            "textField_mgoljmhh, textField_mgolu3w2, employeeField_mfo3dvpt, employeeField_mfo3dvq2",
-                                    s.get("selectField_mfo51ygd"),s.get("selectField_mfp86vfw"),xmdArray.get(0),qyArray.get(0),xmdArray.get(0),qyArray.get(0))))
+                            .updateFormDataJson(JSON.toJSONString(
+//                                    UtilMap.map("selectField_mfo51ygd, selectField_mfp86vfw, " +
+//                                            "textField_mgoljmhh, textField_mgolu3w2, employeeField_mfo3dvpt, employeeField_mfo3dvq2",
+//                                    s.get("selectField_mfo51ygd"),s.get("selectField_mfp86vfw"),xmdempId,qyempId,xmdempId,qyempId)))
+                                    UtilMap.map("selectField_mfo51ygd, selectField_mfp86vfw",
+                                            s.get("selectField_mfo51ygd"),s.get("selectField_mfp86vfw"))))
                             .build(), YDConf.FORM_OPERATION.update);
                 }
             });
@@ -1310,7 +1334,7 @@ public class WorkServiceImpl implements WorkService {
         // 获取月份的第一天
         LocalDateTime firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取月份的最后一天
-        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
+        LocalDateTime lastDay =  LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-2).lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         // 转换回时间戳
         long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -1324,7 +1348,7 @@ public class WorkServiceImpl implements WorkService {
                 .appType("APP_TKO2FYGFQYQQMQFUTUU5")
                 .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
                 .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
-                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, selectField_mfo51ygd", dateList,"是")))
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_mfo6i24e, selectField_mfo51ygd", formatNowMonth,"是")))
                 .build());
 
         List<Map> list1 = new ArrayList<>();
@@ -1469,7 +1493,7 @@ public class WorkServiceImpl implements WorkService {
                 .build(), YDConf.FORM_OPERATION.start);
     }
 
-    public static String[] getMonthStartEndTimestamps(String timestampStr) {
+    public static List<String> getMonthStartEndTimestamps(String timestampStr) {
         try {
             long timestamp = Long.parseLong(timestampStr);
 
@@ -1497,7 +1521,11 @@ public class WorkServiceImpl implements WorkService {
             calendar.set(Calendar.MILLISECOND, 999);
             long lastDay = calendar.getTimeInMillis();
 
-            return new String[]{String.valueOf(firstDay), String.valueOf(lastDay)};
+            List<String> dateList = new ArrayList<>();
+            dateList.add(String.valueOf(firstDay));
+            dateList.add(String.valueOf(lastDay));
+
+            return dateList;
 
         } catch (NumberFormatException e) {
             throw new IllegalArgumentException("无效的时间戳格式: " + timestampStr);

+ 7 - 6
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/purchaseServiceImpl.java

@@ -167,9 +167,9 @@ public class purchaseServiceImpl implements PurchaseService {
     @Override
     public void startPurchaseOrderNew(String formInstanceId) {
 
-        LocalDateTime firstDay = LocalDateTime.now().plusMonths(-1).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
+        LocalDateTime firstDay = LocalDateTime.now().plusYears(-1).plusMonths(-11).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         // 获取月份的最后一天
-        LocalDateTime lastDay =  LocalDateTime.now().withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
+        LocalDateTime lastDay =  LocalDateTime.now().plusYears(-1).plusMonths(1).withDayOfMonth(LocalDate.now().lengthOfMonth())
                 .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         // 转换回时间戳
         long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
@@ -186,7 +186,7 @@ public class purchaseServiceImpl implements PurchaseService {
                 .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_ltxstp81",dateList)))
                 .build());
         //过滤参与批量发起为否的数据
-        dataList = dataList.stream().filter(map -> !"否".equals(map.get("selectField_mgswtsqu"))).collect(Collectors.toList());
+        dataList = dataList.stream().filter(map -> "是".equals(map.get("selectField_mgswtsqu"))).collect(Collectors.toList());
 
         //分组求和
         Map<Object, Long> groupCountMap = dataList.stream()
@@ -214,7 +214,6 @@ public class purchaseServiceImpl implements PurchaseService {
                 })
                 .collect(Collectors.toList());
 
-        System.out.println(collect);
         // 记录已经处理过的key,避免重复添加
         Set<String> processedKeys = new HashSet<>();
         List<Map> lastDataList = new ArrayList<>();
@@ -264,11 +263,13 @@ public class purchaseServiceImpl implements PurchaseService {
                 List<Map> tableList = new ArrayList<>();
                 final String[] cbzz = {"",""};
                 final String[] gys = {"",""};
-
                 e.forEach((k,v)->{
                     List<String> v1 = (List<String>) v;
                     if (v1.size()>=3){
-
+                        System.out.println("e:"+e);
+                        log.info("数据key:{}",e.toString());
+                        System.out.println("v:"+v);
+                        log.info("日常采购物耗:{}",v.toString());
                         for (String s : (List<String>) v) {
                             List<Map> costList = finalDataList.stream().filter(map -> s.equals(map.get("textField_ltxstp83"))).collect(Collectors.toList());
                             costList.forEach(c->{

+ 1 - 1
mjava/src/main/java/com/malk/service/aliwork/impl/YDClientImpl.java

@@ -132,7 +132,7 @@ public class YDClientImpl implements YDClient {
                 break;
 
             case retrieve_search_form:
-                ddr_new = DDR_New.doPost(getRequestUrl("/forms/instances/search"), ddClient.initTokenHeader(), null, param);
+                ddr_new = DDR_New.doPost(getRequestUrl_v2("/forms/instances/search"), ddClient.initTokenHeader(), null, param);
                 break;
 
             case retrieve_search_form_id: