|
@@ -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)
|