Browse Source

1.同步项目物料成本,收付款

WoNiu 4 years ago
parent
commit
28459f3b88

+ 10 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunProjectCashFlowDao.java

@@ -0,0 +1,10 @@
+package com.galaxis.manatee.dao;
+
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectCashFlowDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunProjectCashFlowDao extends GalaxisRepository<ChuanyunProjectCashFlowDO,String> {
+}

+ 4 - 2
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -98,8 +98,6 @@ public class ChuanyunBasicDataScheduledTask {
      */
     @Scheduled(fixedDelay = 3600000L)
     private void getDataFromChuanyun() {
-//        savePurCost();
-        saveCashFlow();
         //专项费用分摊
         getSpecialProcedure();
         //获取人员-归属公司信息
@@ -122,6 +120,10 @@ public class ChuanyunBasicDataScheduledTask {
         getCompany();
         //获取供应商
         getSupplier();
+        //项目物料成本
+        savePurCost();
+        //项目收付款
+        saveCashFlow();
 
     }
 

+ 89 - 1
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -3,8 +3,12 @@ package com.galaxis.manatee.task;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.galaxis.manatee.dao.ChuanyunPaymentReceiveDao;
+import com.galaxis.manatee.dao.ChuanyunProjectCashFlowDao;
+import com.galaxis.manatee.dao.ChuanyunPurCostDao;
 import com.galaxis.manatee.dao.ChuanyunSaleContractDao;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPaymentReceiveDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectCashFlowDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPurCostDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSaleContractDO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.manager.ChuanYunManager;
@@ -27,11 +31,15 @@ public class ChuanyunProjectScheduledTask {
     private final ChuanYunManager chuanYunManager;
     private final ChuanyunSaleContractDao chuanyunSaleContractDao;
     private final ChuanyunPaymentReceiveDao chuanyunPaymentReceiveDao;
+    private final ChuanyunPurCostDao chuanyunPurCostDao;
+    private final ChuanyunProjectCashFlowDao chuanyunProjectCashFlowDao;
 
-    public ChuanyunProjectScheduledTask(ChuanYunManager chuanYunManager, ChuanyunSaleContractDao chuanyunSaleContractDao, ChuanyunPaymentReceiveDao chuanyunPaymentReceiveDao) {
+    public ChuanyunProjectScheduledTask(ChuanYunManager chuanYunManager, ChuanyunSaleContractDao chuanyunSaleContractDao, ChuanyunPaymentReceiveDao chuanyunPaymentReceiveDao, ChuanyunPurCostDao chuanyunPurCostDao, ChuanyunProjectCashFlowDao chuanyunProjectCashFlowDao) {
         this.chuanYunManager = chuanYunManager;
         this.chuanyunSaleContractDao = chuanyunSaleContractDao;
         this.chuanyunPaymentReceiveDao = chuanyunPaymentReceiveDao;
+        this.chuanyunPurCostDao = chuanyunPurCostDao;
+        this.chuanyunProjectCashFlowDao = chuanyunProjectCashFlowDao;
     }
 
     /**
@@ -71,6 +79,86 @@ public class ChuanyunProjectScheduledTask {
     }
 
     /**
+     * 同步项目收付款
+     */
+    @Scheduled(fixedDelay = 3600000L)
+    private void getCashFlow() {
+        var start=0;
+        var totalCount=0L;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter = Filter.instance(start, start + pageSize, true);
+                var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunProjectCashFlowDO.SCHEMA_CODE, filter);
+                if (chuanyunFindAllResponse.getReturnData() == null) {
+                    flag = false;
+                    continue;
+                }
+                if (chuanyunFindAllResponse.getReturnData().getTotalCount() >= start + pageSize) {
+                    start += pageSize;
+                } else {
+                    flag = false;
+                }
+                //转化为POJO
+                List<ChuanyunProjectCashFlowDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                result.forEach(chuanyunProjectCashFlowDO -> {
+                    var tmp=chuanyunProjectCashFlowDao.findById(chuanyunProjectCashFlowDO.getObjectId());
+                    tmp.ifPresent(chuanyunProjectCashFlowDao::delete);
+                });
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存
+                chuanyunProjectCashFlowDao.saveAll(result);
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        log.info("项目收付款保存"+totalCount);
+    }
+
+    /**
+     * 同步项目物料成本
+     */
+    @Scheduled(fixedDelay = 3600000L)
+    private void getPurCost() {
+        var start=0;
+        var totalCount=0L;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter = Filter.instance(start, start + pageSize, true);
+                var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunPurCostDO.SCHEMA_CODE, filter);
+                if (chuanyunFindAllResponse.getReturnData() == null) {
+                    flag = false;
+                    continue;
+                }
+                if (chuanyunFindAllResponse.getReturnData().getTotalCount() >= start + pageSize) {
+                    start += pageSize;
+                } else {
+                    flag = false;
+                }
+                //转化为POJO
+                List<ChuanyunPurCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                result.forEach(chuanyunPurCostDO -> {
+                    var tmp=chuanyunPurCostDao.findById(chuanyunPurCostDO.getObjectId());
+                    tmp.ifPresent(chuanyunPurCostDao::delete);
+                });
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存
+                chuanyunPurCostDao.saveAll(result);
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+            }
+        log.info("项目物料成本保存"+totalCount);
+    }
+
+    /**
      * 更新销售合同回款数据
      */
     @Scheduled(fixedDelay = 3600000L)