浏览代码

日常物耗申请获取单价数据刷新
定时任务更新

fyz 1 月之前
父节点
当前提交
f013d9940b

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

@@ -39,6 +39,14 @@ public class ScheduleTask {
         timerService.updateYuedudinge();
         log.info("定时方法执行时间 :" + new Date());
     }
+    /**
+     * 每月1日凌晨1点自动执行
+     */
+    @Scheduled(cron = "0 0 2 1 * ?")
+    public void syncDingTalkFailedList2() {
+        timerService.updateYuedudinge();
+        log.info("定时方法执行时间 :" + new Date());
+    }
 
     /**
      * 每月16日凌晨6点30自动执行更新项目点档案子表产值预估

+ 27 - 23
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java

@@ -653,26 +653,26 @@ public class NCServiceImpl implements NCService {
                     "\t\tAND gl_detail.tempsaveflag <> 'Y' \n" +
                     "\t\tAND gl_detail.voucherkindv <> 5 \n" +
                     "\t\tAND ( gl_docfree1.F1 <> 'NN/A' OR gl_docfree1.F10 <> 'NN/A' ) \n" +
-                    "\t\tUNION ALL\n" +
-                    "\tSELECT\n" +
-                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
-                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
-                    "\tFROM\n" +
-                    "\t\tgl_detail gl_detail\n" +
-                    "\t\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
-                    "\t\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
-                    "\t\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
-                    "\tWHERE\n" +
-                    "\t\tsubstring( bd_account.CODE, 0, 5 ) IN ( '6603' ) \n" +
-                    "\t\tAND gl_detail.yearv = '"+year+"' \n" +
-                    "\t\tAND gl_detail.adjustperiod = '"+month+"' \n" +
-                    "\t\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
-                    "\t\tAND gl_detail.discardflagv <> 'Y' \n" +
-                    "\t\tAND gl_detail.dr = 0 \n" +
-                    "\t\tAND gl_detail.voucherkindv <> 255 \n" +
-                    "\t\tAND gl_detail.tempsaveflag <> 'Y' \n" +
-                    "\t\tAND gl_detail.voucherkindv <> 5 \n" +
-                    "\tAND 1 = 1 \n" +
+//                    "\t\tUNION ALL\n" +
+//                    "\tSELECT\n" +
+//                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+//                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+//                    "\tFROM\n" +
+//                    "\t\tgl_detail gl_detail\n" +
+//                    "\t\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+//                    "\t\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+//                    "\t\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+//                    "\tWHERE\n" +
+//                    "\t\tsubstring( bd_account.CODE, 0, 5 ) IN ( '6603' ) \n" +
+//                    "\t\tAND gl_detail.yearv = '"+year+"' \n" +
+//                    "\t\tAND gl_detail.adjustperiod = '"+month+"' \n" +
+//                    "\t\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+//                    "\t\tAND gl_detail.discardflagv <> 'Y' \n" +
+//                    "\t\tAND gl_detail.dr = 0 \n" +
+//                    "\t\tAND gl_detail.voucherkindv <> 255 \n" +
+//                    "\t\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+//                    "\t\tAND gl_detail.voucherkindv <> 5 \n" +
+//                    "\tAND 1 = 1 \n" +
                     "\t)A";
 
             resultSet = statement.executeQuery(sql);
@@ -804,7 +804,11 @@ public class NCServiceImpl implements NCService {
                         double manage_compute = s.get("manage_compute") == null ? 0.0 : Double.parseDouble(s.get("manage_compute").toString());
                         zsdsum[0] = zsdsum[0] + manage_compute;
                     });
-                    zsdglfy[0] = zsdglfy[0] + collect.get("直属队") / workingEmployeeIds.size() * zsdsum[0];
+                    if (workingEmployeeIds.size() * zsdsum[0] == 0.0){
+                        zsdglfy[0] = 0.0;
+                    }else {
+                        zsdglfy[0] = zsdglfy[0] + collect.get("直属队") / workingEmployeeIds.size() * zsdsum[0];
+                    }
                 }
             });
 
@@ -900,7 +904,7 @@ public class NCServiceImpl implements NCService {
 //                }
 //                //算薪人数
                 if (ObjectUtil.isNotNull(collect)){
-                    person[0] = Math.toIntExact(collect.get(name));
+                    person[0] = ObjectUtil.isNotNull(collect.get(name))?Math.toIntExact(collect.get(name)):0;
                 }
                 //生产成本-工资
                 if (ObjectUtil.isNotNull(personCostList)){
@@ -938,7 +942,7 @@ public class NCServiceImpl implements NCService {
                         }
                     });
                 }
-                //6001+6002+6003 管理费用分子
+                //6001+6002+6003 管理费用分子(去掉6003)
                 if (ObjectUtil.isNotNull(manageList)){
                     manageList.forEach(s->{
                         double manage_compute = s.get("manage_compute") == null ? 0.0 : Double.parseDouble(s.get("manage_compute").toString());

+ 138 - 127
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -1,6 +1,7 @@
 package com.malk.lanyun.service.impl;
 
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -31,6 +32,7 @@ import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -76,6 +78,7 @@ public class TimerServiceImpl implements TimerService {
      */
     @Override
     public String updateYuedudinge() {
+        String format = LocalDateTimeUtil.format(LocalDate.now(), "yyyy-MM");
         //获取上月时间戳
         long lastMonth = DateUtil.beginOfMonth(DateUtil.lastMonth()).getTime();
         List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
@@ -87,66 +90,67 @@ public class TimerServiceImpl implements TimerService {
         log.info("项目点数据, {}", dataList.size());
         dataList.forEach(formData -> {
 //            if("PM00411".equals(UtilMap.getString(formData, "textField_ltxrn8h1"))){
-
-            //获取撤场时间
-            Long withdrawalTime = formData.get("dateField_lzaqu26p")==null?null:DateUtil.beginOfMonth(DateUtil.date(Long.parseLong(formData.get("dateField_lzaqu26p").toString()))).getTime();
-            if (UtilMap.getString(formData, "selectField_lrn2oy4a").equals("进行中") || (ObjectUtil.isNotNull(withdrawalTime) && lastMonth == withdrawalTime)){
-                List<Map> details = UtilMap.getList(formData, "tableField_lrru2tnq");
+            if(!format.equals(UtilMap.getString(formData, "textField_m9uqfoyl"))){
+                //获取撤场时间
+                Long withdrawalTime = formData.get("dateField_lzaqu26p")==null?null:DateUtil.beginOfMonth(DateUtil.date(Long.parseLong(formData.get("dateField_lzaqu26p").toString()))).getTime();
+                if (UtilMap.getString(formData, "selectField_lrn2oy4a").equals("进行中") || (ObjectUtil.isNotNull(withdrawalTime) && lastMonth == withdrawalTime)){
+                    List<Map> details = UtilMap.getList(formData, "tableField_lrru2tnq");
 //            details = details.stream().filter(item -> UtilMap.isNotBlankString(item, "dateField_lrru2tnr")).collect(Collectors.toList());
-                // 数据格式化
+                    // 数据格式化
 //            details.forEach(row -> {
 //                row.put("textField_luh0k82j", UtilDateTime.format(new Date(UtilMap.getLong(row, "dateField_lrru2tnr")), "yyyy-MM"));
 //            }
 //            });
 //            Collections.sort(details, Comparator.comparingLong(o -> UtilMap.getLong(o, "dateField_lrru2tnr")));
 
-                // 查找当月数据
-                LocalDateTime currentDate = UtilDateTime.firstDayOfLastMonth(LocalDateTime.now());
+                    // 查找当月数据
+                    LocalDateTime currentDate = UtilDateTime.firstDayOfLastMonth(LocalDateTime.now());
 //            LocalDateTime currentDate = UtilDateTime.parseLocalDateTime("2024-07-01 00:00:00");
 
-                try {
-                    Optional optional = details.stream().filter(item -> UtilDateTime.getLocalDateTimeTimeStamp(currentDate) == UtilMap.getLong(item, "dateField_lrru2tnr") || (currentDate.getYear() +"-"+ String.format("%02d", currentDate.getMonthValue())).equals(UtilMap.getString(item,"textField_luh0k82j"))).findAny();
-                    log.info("上个月数据, {}, {}", currentDate, optional);
-                    if (!optional.isPresent() || UtilMap.getFloat((Map) optional.get(), "numberField_lrru2tnz") == 0f) {
-                        return;
-                    }
+                    try {
+                        Optional optional = details.stream().filter(item -> UtilDateTime.getLocalDateTimeTimeStamp(currentDate) == UtilMap.getLong(item, "dateField_lrru2tnr") || (currentDate.getYear() +"-"+ String.format("%02d", currentDate.getMonthValue())).equals(UtilMap.getString(item,"textField_luh0k82j"))).findAny();
+                        log.info("上个月数据, {}, {}", currentDate, optional);
+                        if (!optional.isPresent() || UtilMap.getFloat((Map) optional.get(), "numberField_lrru2tnz") == 0f) {
+                            return;
+                        }
 
-                    LocalDateTime lastMonthDate = UtilDateTime.firstDayOfLastMonth(currentDate);
+                        LocalDateTime lastMonthDate = UtilDateTime.firstDayOfLastMonth(currentDate);
 //            LocalDateTime lastMonthDate = UtilDateTime.parseLocalDateTime("2024-06-01 00:00:00");
-                    Map currentRow = (Map) optional.get();
-                    optional = details.stream().filter(item -> UtilDateTime.getLocalDateTimeTimeStamp(lastMonthDate) == UtilMap.getLong(item, "dateField_lrru2tnr") || (currentDate.getYear() +"-"+ String.format("%02d", currentDate.getMonthValue())).equals(UtilMap.getString(item,"textField_luh0k82j"))).findAny();
-                    log.info("上上月数据, {}, {}", lastMonthDate, optional);
-
-                    float price;
-                    if (!optional.isPresent() || UtilMap.getFloat((Map) optional.get(), "numberField_lrru2tnz") == 0f) {
-                        price = UtilMap.getFloat(currentRow, "numberField_lrru2tns");
-                        currentRow.put("numberField_lrru2tnz", price); // 取本月收入定额
-                    } else {
-                        price = UtilMap.getFloat((Map) optional.get(), "numberField_lrru2tnz");
-                        currentRow.put("numberField_lrru2tnz", price); // 取上月收入预估
-                    }
-                    //明细合计
-                    currentRow.put("numberField_lryopn7o", UtilMap.getFloat(currentRow, "numberField_lrru2tnz") + UtilMap.getFloat(currentRow, "numberField_lrru2to0") + UtilMap.getFloat(currentRow, "numberField_lrru2to1"));
-                    currentRow.put("numberField_m1hhyqiv", UtilMap.getFloat(currentRow, "numberField_lrru2tnz") + UtilMap.getFloat(currentRow, "numberField_lrru2to0") + UtilMap.getFloat(currentRow, "numberField_lrru2to1"));
+                        Map currentRow = (Map) optional.get();
+                        optional = details.stream().filter(item -> UtilDateTime.getLocalDateTimeTimeStamp(lastMonthDate) == UtilMap.getLong(item, "dateField_lrru2tnr") || (currentDate.getYear() +"-"+ String.format("%02d", currentDate.getMonthValue())).equals(UtilMap.getString(item,"textField_luh0k82j"))).findAny();
+                        log.info("上上月数据, {}, {}", lastMonthDate, optional);
+
+                        float price;
+                        if (!optional.isPresent() || UtilMap.getFloat((Map) optional.get(), "numberField_lrru2tnz") == 0f) {
+                            price = UtilMap.getFloat(currentRow, "numberField_lrru2tns");
+                            currentRow.put("numberField_lrru2tnz", price); // 取本月收入定额
+                        } else {
+                            price = UtilMap.getFloat((Map) optional.get(), "numberField_lrru2tnz");
+                            currentRow.put("numberField_lrru2tnz", price); // 取上月收入预估
+                        }
+                        //明细合计
+                        currentRow.put("numberField_lryopn7o", UtilMap.getFloat(currentRow, "numberField_lrru2tnz") + UtilMap.getFloat(currentRow, "numberField_lrru2to0") + UtilMap.getFloat(currentRow, "numberField_lrru2to1"));
+                        currentRow.put("numberField_m1hhyqiv", UtilMap.getFloat(currentRow, "numberField_lrru2tnz") + UtilMap.getFloat(currentRow, "numberField_lrru2to0") + UtilMap.getFloat(currentRow, "numberField_lrru2to1"));
 
-                    price += UtilMap.getFloat(formData, "numberField_lutjev0u");
-                    log.info("price, {}", price);
+                        price += UtilMap.getFloat(formData, "numberField_lutjev0u");
+                        log.info("price, {}", price);
 
-                    System.out.println("更新内容:" + JSON.toJSONString(UtilMap.map("tableField_lrru2tnq, numberField_lutjev0u", details, price)));
-                    // 合计初始化
+                        System.out.println("更新内容:" + JSON.toJSONString(UtilMap.map("tableField_lrru2tnq, numberField_lutjev0u", details, price)));
+                        // 合计初始化
 //            price = details.stream().map(item -> UtilMap.getFloat(item, "numberField_lrru2tnz")).collect(Collectors.toList()).stream().reduce(0f, (acc, cur) -> acc + cur);
-                    ydClient.operateData(YDParam.builder()
-                            .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                            .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                            .formInstanceId(UtilMap.getString(formData, "formInstanceId"))
+                        ydClient.operateData(YDParam.builder()
+                                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                                .formInstanceId(UtilMap.getString(formData, "formInstanceId"))
 //                    .useLatestVersion(true)
-                            .updateFormDataJson(JSON.toJSONString(UtilMap.map("tableField_lrru2tnq, numberField_lutjev0u", details, price)))
-                            .build(), YDConf.FORM_OPERATION.update);
-                } catch (Exception e) {
-                    e.printStackTrace();
+                                .updateFormDataJson(JSON.toJSONString(UtilMap.map("tableField_lrru2tnq, numberField_lutjev0u, textField_m9uqfoyl", details, price, format)))
+                                .build(), YDConf.FORM_OPERATION.update);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                 }
-            }
 //            }
+            }
 
         });
 
@@ -392,7 +396,7 @@ public class TimerServiceImpl implements TimerService {
                     .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
                     .formUuid("FORM-A4B37CFEB8524947939C00523373532BT3TH")
                     .formDataJson(JSON.toJSONString(UtilMap.map("dateField_ls2u8mbv, departmentSelectField_ls2u8mbw, employeeField_ls2u8mbx, tableField_ls2u8mc6, associationFormField_ls2u8mcb, dateField_ls1ky8c5, employeeField_ls1ky8c3",
-                            beginTime,department,header,tableList,jsonArray,sendTime,YDConf.PUB_ACCOUNT)))
+                            beginTime,department,header,tableList,jsonArray,sendTime,"026150181237-1254068060")))
                     .build(), YDConf.FORM_OPERATION.start);
         });
     }
@@ -1167,99 +1171,106 @@ public class TimerServiceImpl implements TimerService {
         if (ObjectUtil.isNotNull(formData)){
             String area = ObjectUtil.isNotNull(formData.get("selectField_lrn2oy4b"))?formData.get("selectField_lrn2oy4b").toString():"";
             double sum[] = {0.0,0.0,0.0,0.0,0.0};
-                List<Map> sonList = (List<Map>) formData.get("tableField_lr383i4g");
-                if (ObjectUtil.isNotNull(sonList) && sonList.size()>0){
-                    sonList.forEach(e->{
-                        String code = e.get("textField_lr383i4h").toString();
-                        if (ObjectUtil.isNotNull(code)){
-                            List<Map> businessList = ydService.queryFormData_all(YDParam.builder()
-                                    .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                                    .formUuid("FORM-84AFCA01E1C24216BD46DC13FB3A82D4B4ZB")
-                                    .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
-                                    .build());
-                            if (businessList.size()>=2){
-                                businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
-                            }
-                            if(ObjectUtil.isNotNull(businessList)){
-                                if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){
-                                    double fax = Double.parseDouble(businessList.get(0).get("numberField_ltxqbw00").toString());//税率
-                                    e.put("numberField_ludq7er6",fax);
-                                    Double unitPrice = Double.parseDouble(businessList.get(0).get("numberField_ltxqbvzz").toString());//供应商价目
-                                    e.put("numberField_ludokwa6",unitPrice);
-                                    e.put("selectField_lv4tq48o",businessList.get(0).get("selectField_ltxqfrj8") + "区 ¥" + businessList.get(0).get("numberField_ltxqbvzz") + " " + businessList.get(0).get("textField_ludp2v7i"));
-                                    Double scbqr = Double.parseDouble(e.get("numberField_lvaft823") == null|| e.get("numberField_lvaft823").toString().isEmpty() ? "0.0" :e.get("numberField_lvaft823").toString());//市场部确认
-                                    Double qgs = Double.parseDouble(e.get("numberField_lr383i4m") == null|| e.get("numberField_lr383i4m").toString().isEmpty() ? "0.0" :e.get("numberField_lr383i4m").toString());//请购数
-                                    Double kcjyl = Double.parseDouble(e.get("numberField_lrzu5n7a") == null|| e.get("numberField_lrzu5n7a").toString().isEmpty() ? "0.0" :e.get("numberField_lrzu5n7a").toString());//库存建议量
-                                    e.put("numberField_lrzu5n7d",String.format("%.2f",unitPrice * 1.1));//采购单价
-                                    if (e.get("numberField_lvaft823") == null|| e.get("numberField_lvaft823").toString().isEmpty()){
-                                        e.put("numberField_ludokwa9",String.format("%.2f", unitPrice * 1.1 * qgs));//采购金额小计
-                                        e.put("numberField_lxd0y351",String.format("%.8f", qgs * unitPrice));//实际金额小计
-                                        sum[0] = sum[0] + qgs * unitPrice * 1.1;
-                                        sum[2] = sum[2] + qgs * unitPrice;
-                                    }else {
-                                        e.put("numberField_ludokwa9",String.format("%.2f", unitPrice * 1.1 * scbqr));//采购金额小计
-                                        e.put("numberField_lxd0y351",String.format("%.8f", scbqr * unitPrice));//实际金额小计
-                                        sum[0] = sum[0] + scbqr * unitPrice * 1.1;
-                                        sum[2] = sum[2] + scbqr * unitPrice;
-                                    }
-                                    e.put("numberField_lv1qokdj",String.format("%.2f", unitPrice/(1+fax/100)));
-                                    e.put("numberField_lr383i4n",unitPrice * kcjyl);
+            List<Map> sonList = (List<Map>) formData.get("tableField_lr383i4g");
+            if (ObjectUtil.isNotNull(sonList) && sonList.size()>0){
+
+                sonList.forEach(e->{
+                    String code = e.get("textField_lr383i4h").toString();
+                    if (ObjectUtil.isNotNull(code)){
+                        List<Map> businessList = ydService.queryFormData_all(YDParam.builder()
+                                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                                .formUuid("FORM-84AFCA01E1C24216BD46DC13FB3A82D4B4ZB")
+                                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
+                                .build());
+                        if (businessList.size()>=2){
+                            businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
+                        }
+                        if(ObjectUtil.isNotNull(businessList) && businessList.size()>0){
+                            if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){
+                                double fax = Double.parseDouble(businessList.get(0).get("numberField_ltxqbw00").toString());//税率
+                                e.put("numberField_ludq7er6",fax);
+                                Double unitPrice = Double.parseDouble(businessList.get(0).get("numberField_ltxqbvzz").toString());//供应商价目
+                                e.put("numberField_ludokwa6",unitPrice);
+                                e.put("selectField_lv4tq48o",businessList.get(0).get("selectField_ltxqfrj8") + "区 ¥" + businessList.get(0).get("numberField_ltxqbvzz") + " " + businessList.get(0).get("textField_ludp2v7i"));
+                                Double scbqr = Double.parseDouble(e.get("numberField_lvaft823") == null|| e.get("numberField_lvaft823").toString().isEmpty() ? "0.0" :e.get("numberField_lvaft823").toString());//市场部确认
+                                Double qgs = Double.parseDouble(e.get("numberField_lr383i4m") == null|| e.get("numberField_lr383i4m").toString().isEmpty() ? "0.0" :e.get("numberField_lr383i4m").toString());//请购数
+                                Double kcjyl = Double.parseDouble(e.get("numberField_lrzu5n7a") == null|| e.get("numberField_lrzu5n7a").toString().isEmpty() ? "0.0" :e.get("numberField_lrzu5n7a").toString());//库存建议量
+                                e.put("numberField_lrzu5n7d",String.format("%.2f",unitPrice * 1.1));//采购单价
+                                if (e.get("numberField_lvaft823") == null|| e.get("numberField_lvaft823").toString().isEmpty()){
+                                    e.put("numberField_ludokwa9",String.format("%.2f", unitPrice * 1.1 * qgs));//采购金额小计
+                                    e.put("numberField_lxd0y351",String.format("%.8f", qgs * unitPrice));//实际金额小计
+                                    sum[0] = sum[0] + qgs * unitPrice * 1.1;
+                                    sum[2] = sum[2] + qgs * unitPrice;
+                                }else {
+                                    e.put("numberField_ludokwa9",String.format("%.2f", unitPrice * 1.1 * scbqr));//采购金额小计
+                                    e.put("numberField_lxd0y351",String.format("%.8f", scbqr * unitPrice));//实际金额小计
+                                    sum[0] = sum[0] + scbqr * unitPrice * 1.1;
+                                    sum[2] = sum[2] + scbqr * unitPrice;
+                                }
+                                e.put("numberField_lv1qokdj",String.format("%.2f", unitPrice/(1+fax/100)));
+                                e.put("numberField_lr383i4n",unitPrice * kcjyl);
+                                if (!ObjectUtil.isNotNull(e.get("textField_ludq7er4"))){
+                                    e.put("textField_ludq7er4","6038646631836291_"+LocalDateTimeUtil.format(LocalDateTime.now(), "yyyyMMddHHmmssS"));
                                 }
                             }
                         }
-                    });
-                }
-                List<Map> sonNoList = (List<Map>) formData.get("tableField_ludqgh1w");
-                if (ObjectUtil.isNotNull(sonNoList) && sonNoList.size()>0){
-                    sonNoList.forEach(e->{
-                        String code = e.get("textField_ludqgh1d").toString();
-                        if (ObjectUtil.isNotNull(code)){
-                            List<Map> businessList = ydService.queryFormData_all(YDParam.builder()
-                                    .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                                    .formUuid("FORM-84AFCA01E1C24216BD46DC13FB3A82D4B4ZB")
-                                    .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
-                                    .build());
-                            if (businessList.size()>=2){
-                                businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
-                            }
-                            if(ObjectUtil.isNotNull(businessList) && businessList.size()>0){
-                                if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){
-                                    double fax = Double.parseDouble(businessList.get(0).get("numberField_ltxqbw00").toString());//税率
-                                    e.put("numberField_ludqgh1n",fax);
-                                    Double unitPrice = Double.parseDouble(businessList.get(0).get("numberField_ltxqbvzz").toString());//供应商价目
-                                    e.put("numberField_ludqgh1m",unitPrice);
-                                    e.put("selectField_lv4tq48p",businessList.get(0).get("selectField_ltxqfrj8") + "区 ¥" + businessList.get(0).get("numberField_ltxqbvzz") + " " + businessList.get(0).get("textField_ludp2v7i"));
-                                    Double scbqr = Double.parseDouble(e.get("numberField_lvaft824") == null|| e.get("numberField_lvaft824").toString().isEmpty() ? "0.0" :e.get("numberField_lvaft824").toString());//市场部确认
-                                    Double qgs = Double.parseDouble(e.get("numberField_ludqgh1j") == null|| e.get("numberField_ludqgh1j").toString().isEmpty() ? "0.0" :e.get("numberField_ludqgh1j").toString());//请购数
-                                    Double kcjyl = Double.parseDouble(e.get("numberField_ludqgh1q") == null|| e.get("numberField_ludqgh1q").toString().isEmpty() ? "0.0" :e.get("numberField_ludqgh1q").toString());//库存建议量
-                                    e.put("numberField_ludqgh1s",String.format("%.2f",unitPrice * 1.1));//采购单价
-                                    if (e.get("numberField_lvaft824") == null|| e.get("numberField_lvaft824").toString().isEmpty()){
-                                        e.put("numberField_ludqgh1t",String.format("%.2f", unitPrice * 1.1 * qgs));//采购金额小计
-                                        e.put("numberField_ludqgh1o",String.format("%.8f", qgs * unitPrice));//实际金额小计
-                                        sum[1] = sum[1] + qgs * unitPrice * 1.1;
-                                        sum[3] = sum[3] + qgs * unitPrice;
-
-                                    }else {
-                                        e.put("numberField_ludqgh1t",String.format("%.2f", unitPrice * 1.1 * scbqr));//采购金额小计
-                                        e.put("numberField_ludqgh1o",String.format("%.8f", scbqr * unitPrice));//实际金额小计
-                                        sum[1] = sum[1] + scbqr * unitPrice * 1.1;
-                                        sum[3] = sum[3] + scbqr * unitPrice;
-                                    }
-                                    e.put("numberField_lv1qokdk",String.format("%.2f", unitPrice/(1+fax/100)));
-                                    e.put("numberField_lxd0y352",unitPrice * kcjyl);
+                    }
+                });
+            }
+            List<Map> sonNoList = (List<Map>) formData.get("tableField_ludqgh1w");
+            if (ObjectUtil.isNotNull(sonNoList) && sonNoList.size()>0){
+                sonNoList.forEach(e->{
+                    String code = e.get("textField_ludqgh1d").toString();
+                    if (ObjectUtil.isNotNull(code)){
+                        List<Map> businessList = ydService.queryFormData_all(YDParam.builder()
+                                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                                .formUuid("FORM-84AFCA01E1C24216BD46DC13FB3A82D4B4ZB")
+                                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_ltxqbvzu, selectField_ltxy8wyr, selectField_ltxqfrj8", code,"启用",area)))
+                                .build());
+                        if (businessList.size()>=2){
+                            businessList = businessList.stream().filter(map -> !"临时采购".equals(map.get("textField_ludp2v7i"))).collect(Collectors.toList());
+                        }
+                        if(ObjectUtil.isNotNull(businessList) && businessList.size()>0){
+                            if (ObjectUtil.isNotNull(businessList.get(0).get("numberField_ltxqbvzz"))){
+                                double fax = Double.parseDouble(businessList.get(0).get("numberField_ltxqbw00").toString());//税率
+                                e.put("numberField_ludqgh1n",fax);
+                                Double unitPrice = Double.parseDouble(businessList.get(0).get("numberField_ltxqbvzz").toString());//供应商价目
+                                e.put("numberField_ludqgh1m",unitPrice);
+                                e.put("selectField_lv4tq48p",businessList.get(0).get("selectField_ltxqfrj8") + "区 ¥" + businessList.get(0).get("numberField_ltxqbvzz") + " " + businessList.get(0).get("textField_ludp2v7i"));
+                                Double scbqr = Double.parseDouble(e.get("numberField_lvaft824") == null|| e.get("numberField_lvaft824").toString().isEmpty() ? "0.0" :e.get("numberField_lvaft824").toString());//市场部确认
+                                Double qgs = Double.parseDouble(e.get("numberField_ludqgh1j") == null|| e.get("numberField_ludqgh1j").toString().isEmpty() ? "0.0" :e.get("numberField_ludqgh1j").toString());//请购数
+                                Double kcjyl = Double.parseDouble(e.get("numberField_ludqgh1q") == null|| e.get("numberField_ludqgh1q").toString().isEmpty() ? "0.0" :e.get("numberField_ludqgh1q").toString());//库存建议量
+                                e.put("numberField_ludqgh1s",String.format("%.2f",unitPrice * 1.1));//采购单价
+                                if (e.get("numberField_lvaft824") == null|| e.get("numberField_lvaft824").toString().isEmpty()){
+                                    e.put("numberField_ludqgh1t",String.format("%.2f", unitPrice * 1.1 * qgs));//采购金额小计
+                                    e.put("numberField_ludqgh1o",String.format("%.8f", qgs * unitPrice));//实际金额小计
+                                    sum[1] = sum[1] + qgs * unitPrice * 1.1;
+                                    sum[3] = sum[3] + qgs * unitPrice;
+
+                                }else {
+                                    e.put("numberField_ludqgh1t",String.format("%.2f", unitPrice * 1.1 * scbqr));//采购金额小计
+                                    e.put("numberField_ludqgh1o",String.format("%.8f", scbqr * unitPrice));//实际金额小计
+                                    sum[1] = sum[1] + scbqr * unitPrice * 1.1;
+                                    sum[3] = sum[3] + scbqr * unitPrice;
+                                }
+                                e.put("numberField_lv1qokdk",String.format("%.2f", unitPrice/(1+fax/100)));
+                                e.put("numberField_lxd0y352",unitPrice * kcjyl);
+                                if (!ObjectUtil.isNotNull(e.get("textField_ludqgh1u"))){
+                                    e.put("textField_ludqgh1u","6038646631836291_"+LocalDateTimeUtil.format(LocalDateTime.now(), "yyyyMMddHHmmssS"));
                                 }
                             }
                         }
-                    });
-                }
+                    }
+                });
+            }
             ydClient.operateData(YDParam.builder()
                     .appType("APP_ERBDTFS82HOVBPL3NFH0")
                     .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
                     .formInstanceId(formInstId)
-                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("numberField_lr383i4a, numberField_lr383i48, tableField_ludqgh1w, tableField_lr383i4g, numberField_lwk4dwfe, numberField_lwk4dwfg, numberField_lwk4dwfi",
-                            String.format("%.2f", sum[1]),String.format("%.2f", sum[0]),sonNoList,sonList,sum[2],sum[3],sum[2]+sum[3])))
+                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("numberField_lr383i4a, numberField_lr383i48, tableField_ludqgh1w, tableField_lr383i4g, numberField_lwk4dwfe, numberField_lwk4dwfg, numberField_lwk4dwfi, numberField_lr383i4c",
+                            String.format("%.2f", sum[1]),String.format("%.2f", sum[0]),sonNoList,sonList,sum[2],sum[3],sum[2]+sum[3],sum[1]+sum[0])))
                     .build(), YDConf.FORM_OPERATION.update);
         }
     }