فهرست منبع

1.修改项目收付款

WoNiu 4 سال پیش
والد
کامیت
97bba875dc
1فایلهای تغییر یافته به همراه118 افزوده شده و 9 حذف شده
  1. 118 9
      src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

+ 118 - 9
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -8,6 +8,7 @@ import com.galaxis.capsule.dto.PageDTO;
 import com.galaxis.manatee.constant.ChuanYunConstant;
 import com.galaxis.manatee.dao.*;
 import com.galaxis.manatee.entity.chuanyun.data.object.*;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunProjectCashFlowDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunPurCostDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
@@ -98,6 +99,7 @@ public class ChuanyunBasicDataScheduledTask {
     @Scheduled(fixedDelay = 3600000L)
     private void getDataFromChuanyun() {
 //        savePurCost();
+        saveCashFlow();
         //专项费用分摊
         getSpecialProcedure();
         //获取人员-归属公司信息
@@ -319,6 +321,63 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
+    /**
+     * 更新项目收付款
+     */
+    private void saveCashFlow() {
+        var objectMapper=new ObjectMapper();
+        var page = 1;
+        var size = 20;
+        var flag=true;
+        while (flag) {
+            Map<String,String> map=new HashMap<>(1);
+            map.put("page",String.valueOf(page));
+            map.put("size",String.valueOf(size));
+            //获取收付款
+            PageDTO<ChuanyunProjectCashFlowDTO> pageInfo = clawFeign.findChuanyunProjectCashFlow(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunProjectCashFlowDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunProjectCashFlowDTO -> {
+                try {
+                    if(chuanyunProjectCashFlowDTO != null) {
+                        CashFlowDTO cashFlowDTO = new CashFlowDTO(chuanyunProjectCashFlowDTO);
+                        var purcostString=objectMapper.writeValueAsString(cashFlowDTO);
+                        ChuanyunSaveDTO chuanyunSaveDTO;
+                        //根据项目号判断是否存在
+                        List<String> macthers = new ArrayList<>();
+                        macthers.add("F0000001_2,"+chuanyunProjectCashFlowDTO.getProjectcode());
+                        var filter= Filter.instance(0,1,true,"And",macthers);
+                        var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectCashFlowDO.SCHEMA_CODE,filter);
+                        if (chuanyunFindAllResponse.getReturnData() == null) {
+                            //新增
+                            chuanyunSaveDTO =chuanYunManager.save(ChuanyunProjectCashFlowDO.SCHEMA_CODE,purcostString,true);
+                        }else {
+                            List<ChuanyunProjectCashFlowDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                            ChuanyunProjectCashFlowDO chuanyunProjectCashFlowDO = result.get(0);
+                            //更新
+                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectCashFlowDO.SCHEMA_CODE,chuanyunProjectCashFlowDO.getObjectId(),purcostString);
+                        }
+                        if(chuanyunSaveDTO.getSuccessful()){
+                            log.info("新增项目收付款成功");
+                        }else{
+                            log.warn("新增项目收付款失败");
+                        }
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+            });
+        }
+    }
+
+    /**
+     * 更新项目物料成本
+     */
     private void savePurCost() {
         var objectMapper=new ObjectMapper();
         var page = 1;
@@ -339,14 +398,29 @@ public class ChuanyunBasicDataScheduledTask {
             List<ChuanyunPurCostDTO> list = pageInfo.getContent();
             list.forEach(chuanyunPurCostDTO -> {
                 try {
-                    PurCostDTO purCostDTO = new PurCostDTO(chuanyunPurCostDTO);
-                    var purcostString=objectMapper.writeValueAsString(purCostDTO);
-                    ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.save(ChuanyunPurCostDO.SCHEMA_CODE,purcostString,true);
-                    if(chuanyunSaveDTO.getSuccessful()){
-                        log.info("新增项目物料成本成功");
-
-                    }else{
-                        log.warn("新增项目物料成本失败");
+                    if(chuanyunPurCostDTO != null) {
+                        PurCostDTO purCostDTO = new PurCostDTO(chuanyunPurCostDTO);
+                        var purcostString=objectMapper.writeValueAsString(purCostDTO);
+                        ChuanyunSaveDTO chuanyunSaveDTO;
+                        //根据项目号判断是否存在
+                        List<String> macthers = new ArrayList<>();
+                        macthers.add("F0000001_2,"+chuanyunPurCostDTO.getProjectcode());
+                        var filter= Filter.instance(0,1,true,"And",macthers);
+                        var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunPurCostDO.SCHEMA_CODE,filter);
+                        if (chuanyunFindAllResponse.getReturnData() == null) {
+                            //新增
+                            chuanyunSaveDTO =chuanYunManager.save(ChuanyunPurCostDO.SCHEMA_CODE,purcostString,true);
+                        }else {
+                            List<ChuanyunPurCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                            ChuanyunPurCostDO chuanyunPurCostDO = result.get(0);
+                            //更新
+                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunPurCostDO.SCHEMA_CODE,chuanyunPurCostDO.getObjectId(),purcostString);
+                        }
+                        if(chuanyunSaveDTO.getSuccessful()){
+                            log.info("新增项目物料成本成功");
+                        }else{
+                            log.warn("新增项目物料成本失败");
+                        }
                     }
                 } catch (JsonProcessingException | BigSizeException e) {
                     e.printStackTrace();
@@ -743,12 +817,14 @@ public class ChuanyunBasicDataScheduledTask {
         log.info("报销科目信息保存保存"+totalCount);
     }
 
+    /**
+     * 同步集团总表(手动更新调用)
+     */
     private void getGroupProjectForSynchronization(){
         var objectMapper=new ObjectMapper();
         var start=0;
         var totalCount=0L;
         var flag=true;
-
         while (flag){
             try {
                 //从氚云查询数据
@@ -834,6 +910,39 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
+
+    @Data
+    class CashFlowDTO {
+        @JsonProperty("F0000001")
+        private String projectcode;
+
+        /**
+         * 收款金额
+         */
+        @JsonProperty("F0000002")
+        private BigDecimal income;
+
+        /**
+         * 付款金额
+         */
+        @JsonProperty("F0000003")
+        private BigDecimal outcome;
+
+        public CashFlowDTO(ChuanyunProjectCashFlowDTO chuanyunProjectCashFlowDTO) {
+            if (null!=chuanyunProjectCashFlowDTO) {
+                if (null!=chuanyunProjectCashFlowDTO.getProjectcode()) {
+                    this.projectcode=chuanyunProjectCashFlowDTO.getProjectcode();
+                }
+                if (null!=chuanyunProjectCashFlowDTO.getOutcome()) {
+                    this.outcome=chuanyunProjectCashFlowDTO.getOutcome();
+                }
+                if (null!=chuanyunProjectCashFlowDTO.getIncome()) {
+                    this.income=chuanyunProjectCashFlowDTO.getIncome();
+                }
+            }
+        }
+    }
+
     @Data
     class PurCostDTO {
         @JsonProperty("F0000001")