Browse Source

提交仓库
净值定时任务

zfc 11 months ago
parent
commit
d730d7fd05

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

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
 import com.malk.lanyun.entity.ProjectAnalysis;
 import com.malk.lanyun.service.NCService;
 import com.malk.lanyun.service.NCService;
+import com.malk.lanyun.service.SyncAssetsService;
 import com.malk.lanyun.service.TimerService;
 import com.malk.server.common.McException;
 import com.malk.server.common.McR;
@@ -42,6 +43,8 @@ public class TimerController {
 
     @Autowired
     private NCService ncService;
+
+
     /**
      * 月度定额更新
      */

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

@@ -1,5 +1,6 @@
 package com.malk.lanyun.schedule;
 
+import com.malk.lanyun.service.SyncAssetsService;
 import com.malk.lanyun.service.TimerService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +24,8 @@ public class ScheduleTask {
     @Autowired
     private TimerService timerService;
 
+    @Autowired
+    private SyncAssetsService syncAssetsService;
     /**
      * 每月1日凌晨2点自动执行
      */
@@ -57,4 +60,13 @@ public class ScheduleTask {
     void insertAnalysisList(){
         timerService.insertAnalysisList();
     }
+
+    /**
+     * 每月1号 凌晨3点跑批计算净值
+     */
+    @Scheduled(cron = "0 0 3 1 * ?")
+    void synAssetsItem(){
+        syncAssetsService.SynAssetsItem();
+    }
+
 }

+ 8 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/SyncAssetsService.java

@@ -0,0 +1,8 @@
+package com.malk.lanyun.service;
+
+public interface SyncAssetsService {
+
+    void SynAssetsItem();
+
+
+}

+ 75 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/SyncAssetsImpl.java

@@ -0,0 +1,75 @@
+package com.malk.lanyun.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.malk.lanyun.service.SyncAssetsService;
+import com.malk.server.aliwork.YDConf;
+import com.malk.server.aliwork.YDParam;
+import com.malk.service.aliwork.YDClient;
+import com.malk.utils.UtilDateTime;
+import com.malk.utils.UtilMap;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+
+@Service
+@Slf4j
+public class SyncAssetsImpl implements SyncAssetsService {
+
+    @Autowired
+    private YDClient ydClient;
+
+    //同步资产档案净值
+    @Override
+    public void SynAssetsItem() {
+
+        YDParam ydParam = new YDParam();
+        ydParam = YDParam.builder()
+                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                .formUuid("FORM-F3695066AABE41F6AF241489F8558ACA78OI")  //资产档案
+                .formInstId("FINST-G9766T71XRHMWPDI7JZFU6GVQ1X83AMR8B4YLQM1")
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lu2eb47g","否")))//护理对象暂停和正常、月度计划创建只查询正常的护理计划
+                .build();
+        //pagesize设为1获取总数
+        ydParam.setPageSize(1);
+        long totalCount = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getTotalCount();
+        float pageSize = 50;
+        ydParam.setCurrentPage(1);
+        ydParam.setPageSize((int) pageSize);
+        List<Map> dataList = new ArrayList<>();
+        for (int page = 1; page <= Math.ceil(totalCount / pageSize); page++) {
+            ydParam.setCurrentPage(page);
+            //  1次获取50条
+            dataList = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
+            dataList.forEach(dataItem -> {
+                Map formMap = (Map) dataItem.get("formData");
+
+                float metValue = UtilMap.getFloat((Map) formMap,"numberField_lu2ejqd4");
+                float depreciation = UtilMap.getFloat((Map) formMap,"numberField_lu2eb47d");
+
+                if (metValue>0 && depreciation>0){
+                    log.info("metValue:"+metValue);
+                    log.info("depreciation:"+depreciation);
+                    float updateDepreciation = metValue - depreciation;
+                    // 更新
+                    ydClient.operateData(YDParam.builder()
+                            .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                            .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                            .formInstanceId((String) dataItem.get("formInstanceId"))
+                            .updateFormDataJson(JSON.toJSONString(UtilMap.map("numberField_lu2ejqd4",updateDepreciation)))
+                            .build(), YDConf.FORM_OPERATION.update);
+                }
+
+
+            });
+        }
+
+    }
+}