Bläddra i källkod

Merge remote-tracking branch 'origin/master'

lfx 7 månader sedan
förälder
incheckning
440c5df18a

+ 10 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -188,4 +188,14 @@ public class TimerController {
         List<Map> mapList = timerService.checkoutStatus(data);
         return McR.success(mapList);
     }
+
+    /**
+     * 日常物耗申请单中发起节点获取首条供应商价目表单价
+     * @param
+     */
+    @PostMapping("updateDailyPrice")
+    void updateDailyPrice(String formInstId){
+        log.info("进入更新获取首条供应商价目表单价方法");
+        timerService.updateDailyPrice(formInstId);
+    }
 }

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

@@ -48,7 +48,7 @@ public class NCTask {
     /**
      * 每月1日凌晨6点跑批NC供应商付款
      */
-    @Scheduled(cron = "0 0 6 * * ?")
+    @Scheduled(cron = "0 0 7 * * ?")
     void supplierPay() {
         ncService.getSupplierPay();
     }

+ 5 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/TimerService.java

@@ -100,4 +100,9 @@ public interface TimerService {
     void updateAnalysis(Map<String,Object> data);
 
     List<Map> checkoutStatus(Map<String, Object> data);
+    /**
+     * 日常物耗申请单中发起节点获取首条供应商价目表单价
+     * @param
+     */
+    void updateDailyPrice(String formInstId);
 }

+ 3 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java

@@ -344,7 +344,9 @@ public class NCServiceImpl implements NCService {
 
             resultSet = statement.executeQuery(sql);
 
+            int count = 1;
             while (resultSet.next()) {
+                log.info("第{}次",count);
                 Map hashMap = new HashMap();
 
                 String years =resultSet.getString("yearv");
@@ -364,6 +366,7 @@ public class NCServiceImpl implements NCService {
                         .formUuid("FORM-09CDC75CDC6048379567EC87ED6CE7B6T8PP")
                         .formDataJson(JSON.toJSONString(hashMap))
                         .build(), YDConf.FORM_OPERATION.create);
+                count++;
             }
         } catch (Exception e) {
             log.info("数据库连接异常"+e.toString());
@@ -371,7 +374,6 @@ public class NCServiceImpl implements NCService {
         } finally {
             // 关闭资源
             try {
-                assert resultSet != null;
                 resultSet.close();
                 statement.close();
                 connection.close();

+ 91 - 28
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -466,7 +466,7 @@ public class TimerServiceImpl implements TimerService {
                     " order by `month` DESC LIMIT " + pageStart + "," + pageSize;
             sql[2] = sql[2] +
                     "  GROUP BY `month` ) t1 ";
-
+            log.info("sql[0]:{}",sql[0]);
             log.info("sql[1]:{}",sql[1]);
         }else {
             /*sql获取第二层月明细数据*/
@@ -598,7 +598,7 @@ public class TimerServiceImpl implements TimerService {
                 ps = connection.prepareStatement(deleteSql);
                 for (int i = 0; i < monthList.size(); i++) {
                     ps.setObject(1,monthList.get(i).get("dateField_lcwv382"));
-                    ps.executeBatch();
+                    ps.execute();
                 }
                 String sql = "INSERT INTO `lanyun_project_analysis`(`project_name`, `belong_project`, `month`, " +
                         "`status`, `predict_income`, `open`, `income`, `person`, `person_cost`, `material`, `other_cost`, " +
@@ -632,7 +632,7 @@ public class TimerServiceImpl implements TimerService {
                     ps.setObject(16,dataList.get(i).get("numberField_ln701sy"));
                     ps.setObject(17,dataList.get(i).get("numberField_fmhzxdr"));
                     ps.setObject(18,dataList.get(i).get("numberField_lz6mt3xr"));
-                    double net = Double.parseDouble(dataList.get(i).get("numberField_lz6mt3xr").toString());
+                    double net = ObjectUtil.isNotNull(dataList.get(i).get("numberField_lz6mt3xr"))?Double.parseDouble(dataList.get(i).get("numberField_lz6mt3xr").toString()):0f;
                     double net_margin = net/income;
                     if (income == 0f){
                         net_margin = 0f;
@@ -968,21 +968,21 @@ public class TimerServiceImpl implements TimerService {
         String[] dateList = new String[2];
         dateList[0] = String.valueOf(beginOfMonth.getTime());
         dateList[1] = String.valueOf(date.getTime());
-        List<Map> materialList = ydService.queryFormData_all(YDParam.builder()
-                .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                .formUuid("FORM-4F7FB29798F442E783B1C77AF1E7D644FBI7")
-                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lzhqum4c", (Object) dateList)))
-                .build());
-        if (ObjectUtil.isNotNull(materialList)&&materialList.size()>0){
-            materialList.forEach(e->{
-                ydClient.operateData(YDParam.builder()
-                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                        .formInstanceId(e.get("formInstanceId").toString())
-                        .build(), YDConf.FORM_OPERATION.delete);
-            });
-        }
+//        List<Map> materialList = ydService.queryFormData_all(YDParam.builder()
+//                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+//                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+//                .formUuid("FORM-4F7FB29798F442E783B1C77AF1E7D644FBI7")
+//                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lzhqum4c", (Object) dateList)))
+//                .build());
+//        if (ObjectUtil.isNotNull(materialList)&&materialList.size()>0){
+//            materialList.forEach(e->{
+//                ydClient.operateData(YDParam.builder()
+//                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+//                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+//                        .formInstanceId(e.get("formInstanceId").toString())
+//                        .build(), YDConf.FORM_OPERATION.delete);
+//            });
+//        }
 
         //获取所有离职员工id
         String dingtalkToken = ddClient.getAccessToken(dingtalkAppKey, dingtalkAppSecret);
@@ -1048,9 +1048,10 @@ public class TimerServiceImpl implements TimerService {
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
                 .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
                 .formUuid("FORM-4F7FB29798F442E783B1C77AF1E7D644FBI7")
+                .searchCondition(JSON.toJSONString(UtilMap.map("dateField_lzhqum4c", (Object) dateList)))
                 //年月,离职人数,入职人数,在职人数
                 .formDataJson(JSON.toJSONString(UtilMap.map("dateField_lzhqum4c, numberField_lzhqum4e, numberField_lzhqum4f, numberField_lzhqum4d",beginOfMonth.getTime(),month[1],inJobIdSet.size(),employeeIds.size())))
-                .build(), YDConf.FORM_OPERATION.create);
+                .build(), YDConf.FORM_OPERATION.upsert);
     }
 
     @Override
@@ -1181,21 +1182,83 @@ public class TimerServiceImpl implements TimerService {
             }
         }
         for (int i = 0; i < materialList.size(); i++) {
-            HashMap<Object, Object> lastMap = new HashMap<>();
-            lastMap.put("code",materialList.get(i).get("textField_ltxutdfi"));
-            lastMap.put("name",materialList.get(i).get("textField_lvat5hwb"));
-            lastMap.put("entryDate",materialList.get(i).get("dateField_lvvthng6"));
-            lastMap.put("whcode",materialList.get(i).get("textField_lr26l3hs"));
-            lastMap.put("whmc",materialList.get(i).get("textField_lr26l3ht"));
-            lastMap.put("whfl",materialList.get(i).get("textField_lu24bwd1"));
-            lastMap.put("salary",materialList.get(i).get("numberField_lu24bwd0"));
+//            HashMap<Object, Object> lastMap = new HashMap<>();
+//            lastMap.put("code",materialList.get(i).get("textField_ltxutdfi"));
+//            lastMap.put("name",materialList.get(i).get("textField_lvat5hwb"));
+//            lastMap.put("entryDate",materialList.get(i).get("dateField_lvvthng6"));
+//            lastMap.put("whcode",materialList.get(i).get("textField_lr26l3hs"));
+//            lastMap.put("whmc",materialList.get(i).get("textField_lr26l3ht"));
+//            lastMap.put("whfl",materialList.get(i).get("textField_lu24bwd1"));
+//            lastMap.put("salary",materialList.get(i).get("numberField_lu24bwd0"));
             for (int j = 0; j < codes.size(); j++) {
                 if (materialList.get(i).get("textField_ltxutdfi").equals(codes.get(j))){
-                    lastResult.add(lastMap);
+                    lastResult.add(materialList.get(i));
+//                    lastResult.add(lastMap);
                     break;
                 }
             }
         }
         return lastResult;
     }
+
+    @Override
+    public void updateDailyPrice(String formInstId) {
+
+        System.out.println(formInstId);
+        Map formData = ydClient.queryData(YDParam.builder()
+                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                        .formInstId(formInstId).build()
+                , YDConf.FORM_QUERY.retrieve_id).getFormData();
+        System.out.println(formData);
+        if (ObjectUtil.isNotNull(formData)){
+            String area = ObjectUtil.isNotNull(formData.get("selectField_lrn2oy4b"))?formData.get("selectField_lrn2oy4b").toString():"";
+            List<Map> sonList = (List<Map>) formData.get("tableField_lr383i4g");
+            double sum[] = {0,0};
+            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 -> map.get("textField_ludp2v7i") != "临时采购").collect(Collectors.toList());
+                            }
+                        System.out.println(businessList.size());
+                        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").toString());//市场部确认
+                                e.put("numberField_lxd0y351",String.format("%.8f", scbqr * unitPrice));//实际金额小计
+                                sum[0] = sum[0] + scbqr * unitPrice;
+                                e.put("numberField_lrzu5n7d",String.format("%.2f",unitPrice * 1.1));//采购单价
+                                e.put("numberField_ludokwa9",String.format("%.2f", unitPrice * 1.1 * scbqr));//采购金额小计
+                                sum[1] = sum[1] + scbqr * unitPrice * 1.1;
+                                e.put("numberField_lv1qokdj",String.format("%.2f", unitPrice/(1+fax/100)));
+                            }
+                        }
+                    }
+                });
+                System.out.println(sum);
+                ydClient.operateData(YDParam.builder()
+                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                        .formInstanceId(formInstId)
+                        .updateFormDataJson(JSON.toJSONString(UtilMap.map("numberField_lwk4dwfe, numberField_lr383i48, tableField_lr383i4g",String.format("%.2f", sum[0]),String.format("%.2f", sum[1]),sonList)))
+                        .build(), YDConf.FORM_OPERATION.update);
+            }
+        }
+    }
 }
+//实际金额小计
+//numberField_lwk4dwfe
+//采购金额小计
+//numberField_lr383i48