Parcourir la source

定时发起定额确认单
采购订单拆分添加筛选条件

fyz il y a 2 mois
Parent
commit
8bfa8afa20

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

@@ -26,6 +26,7 @@ public class PurchaseController {
     @PostMapping("selectAllProcured")
     public McR selectAllProcured(@RequestBody Map data){
 
+        log.info("开始查询待采购数据拆分:{}",data);
         List<Map> procureds = purchaseService.selectAllProcured(data);
 
         return McR.success(procureds);

+ 28 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/schedule/WorkTask.java

@@ -0,0 +1,28 @@
+package com.malk.lanyun.schedule;
+
+import com.malk.lanyun.service.NCService;
+import com.malk.lanyun.service.WorkService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+
+@Slf4j
+@Configuration
+@EnableScheduling
+@ConditionalOnProperty(name = {"spel.scheduling"})
+public class WorkTask {
+    @Autowired
+    WorkService workService;
+
+    /**
+     * 每月1日凌晨4点跑批NC生产成本
+     */
+    @Scheduled(cron = "0 0 3 21 * ?")
+    void productCosts() {
+        log.info("开始跑批更新NC生产成本");
+        workService.startAssessment();
+    }
+}

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

@@ -26,4 +26,15 @@ public interface WorkService {
      * 考勤数据表汇总
      */
     void getMonthCheck();
+
+    /**
+     * 发起考核确认单
+     */
+    void startAssessment();
+
+
+    /**
+     * 定时跑批定额档案表
+     */
+    void quotaArchive();
 }

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

@@ -163,7 +163,7 @@ public class FImplService implements FService {
         // 2. 核心代码:双层分组汇总
         // 第一级按 "项目点编号" 分组
         // 第二级按 "开票周期文本" 分组,并对 "含税小计" 求和
-        Map<String, Map<String, Double>> result = dataList.stream()
+        Map<String, Map<String, Double>> result = dataList.stream().filter(map -> !"小业主".equals(map.get("selectField_lvc9x4vn")))
                 .collect(Collectors.groupingBy(
                         map -> (String) map.get("textField_m25j5gxk"), // 第一级分类器
                         Collectors.groupingBy(

+ 78 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/WorkServiceImpl.java

@@ -19,6 +19,9 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -468,4 +471,79 @@ public class WorkServiceImpl implements WorkService {
                     .build(), YDConf.FORM_OPERATION.upsert);
         });
     }
+
+    @Override
+    public void startAssessment() {
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime lastMonth = now.plusMonths(-1);
+        // 方法1:指定时区转换为Instant
+        long lastMonthTime = lastMonth.atZone(ZoneId.systemDefault())
+                .toInstant()
+                .toEpochMilli();
+        List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
+                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
+//                .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);
+            }
+
+            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));
+                }
+
+                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));
+                }
+                sonList.add(dataMap);
+            }
+        });
+        /*发起流程*/
+        ydClient.operateData(YDParam.builder().userId("026150181237-1254068060")
+                .appType("APP_TKO2FYGFQYQQMQFUTUU5")
+                .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
+                .formUuid("FORM-EA91EECA918848EA9EFFA87107B60BD0SLXX")
+                .formDataJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, tableField_mfo51ygb",
+                        lastMonthTime,sonList)))
+                .build(), YDConf.FORM_OPERATION.start);
+    }
+
+    @Override
+    public void quotaArchive() {
+
+    }
 }

+ 1 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/purchaseServiceImpl.java

@@ -48,6 +48,7 @@ public class purchaseServiceImpl implements PurchaseService {
     private DDClient_Personnel ddClientPersonnel;
     @Override
     public List<Map> selectAllProcured(Map data) {
+
         List<Map> lastList = new ArrayList<>();
         Map<String, Object> param = new HashMap<>();
         param.put("selectField_mff51th7","否");