Explorar o código

1.拆分basic定时任务

WoNiu %!s(int64=4) %!d(string=hai) anos
pai
achega
665d209084

+ 11 - 549
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -111,17 +111,8 @@ public class ChuanyunBasicDataScheduledTask {
      */
     @Scheduled(fixedDelay = 3600000L)
     private void getDataFromChuanyun() {
-        saveDeviceConfigure();
-        //钉钉请假
-        saveAskForLeave();
-        //专项费用分摊
-        getSpecialProcedure();
         //获取人员-归属公司信息
         getUserCompany();
-        //人员报销特殊项目
-        getReimbursementItems();
-        //人工成本特殊项目
-        getCostCollection();
         //获取集团项目数据
         getGroupProject();
         //获取用户数据
@@ -136,18 +127,14 @@ public class ChuanyunBasicDataScheduledTask {
         getCompany();
         //获取供应商
         getSupplier();
-        //项目物料成本
-        savePurCost();
-        //项目收付款
-        saveCashFlow();
-        //新增供应商信息
-        saveSupplier();
-        //设备信息
-        getEquipmentInform();
-        //项目预决算
-        saveBudgetStatistics();
-        //U9设备信息
-        saveDeviceInfo();
+        //人员报销特殊项目
+        getReimbursementItems();
+        //人工成本特殊项目
+        getCostCollection();
+        //专项费用分摊
+        getSpecialProcedure();
+        //钉钉请假
+        saveAskForLeave();
     }
 
     /**
@@ -319,228 +306,13 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
-    private void saveDeviceConfigure(){
-        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<ChuanyunDeviceConfigureDTO> pageInfo=clawFeign.findChuanyunDeviceConfigure(map);
-            if (page<=pageInfo.getTotalPages()){
-                page += 1;
-            }else {
-                flag = false;
-                break;
-            }
-            List<ChuanyunDeviceConfigureDTO> list = pageInfo.getContent();
-            list.forEach(chuanyunDeviceConfigureDTO -> {
-                try {
-                    List<String> matchers = new ArrayList<>();
-                    matchers.add("F0000001_2,"+chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode());
-                    var filter= Filter.instance(0,1,true,"And",matchers);
-                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunEquipmentInformDO.SCHEMA_CODE,filter);
-                    if (chuanyunFindAllResponse.getReturnData()!=null){
-                        List<ChuanyunEquipmentInformDO> projectresult=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                        chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().setSncode(projectresult.get(0).getObjectId());
-                    }
 
-                    List<String> projectmatchers = new ArrayList<>();
-                    projectmatchers.add("F0000001_2,"+chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode());
-                    projectmatchers.add("F0000002_2,"+chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getLinenum());
-                    var projectfilter= Filter.instance(0,Integer.MAX_VALUE,true,"And",projectmatchers);
-                    var chuanyunFindResponse = chuanYunManager.findAll(ChuanyunEquipmentDO.SCHEMA_CODE,projectfilter);
-                    ChuanyunSaveDTO chuanyunSaveDTO;
-                    EquipmentDTO equipmentDTO = new EquipmentDTO(chuanyunDeviceConfigureDTO);
-                    var purcostString=objectMapper.writeValueAsString(equipmentDTO);
-                    if (chuanyunFindResponse.getReturnData()!=null){
-                        List<ChuanyunEquipmentDO> projectresult=objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                        chuanyunSaveDTO = chuanYunManager.update(ChuanyunEquipmentDO.SCHEMA_CODE,projectresult.get(0).getObjectId(),purcostString);
-                    }else {
-                        chuanyunSaveDTO =chuanYunManager.save(ChuanyunEquipmentDO.SCHEMA_CODE,purcostString,true);
-                    }
-                    if(chuanyunSaveDTO.getSuccessful()){
-                        log.info("新增配置设备信息成功");
-                    }else{
-                        log.warn("新增配置设备信息失败");
-                    }
-                } catch (JsonProcessingException | BigSizeException e) {
-                    e.printStackTrace();
-                }
-            });
-        }
-    }
 
-    /**
-     * 新增设备信息
-     */
-    private void saveDeviceInfo(){
-        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<ChuanyunDeviceDTO> pageInfo=clawFeign.findChuanyunDevice(map);
-            if (page<=pageInfo.getTotalPages()){
-                page += 1;
-            }else {
-                flag = false;
-                break;
-            }
-            List<ChuanyunDeviceDTO> list = pageInfo.getContent();
-            list.forEach(chuanyunDeviceDTO -> {
-                try {
-                    if(chuanyunDeviceDTO != null) {
-                        List<String> projectmatchers = new ArrayList<>();
-                        projectmatchers.add("F0000002_2,"+chuanyunDeviceDTO.getProjectcode());
-                        var projectfilter= Filter.instance(0,Integer.MAX_VALUE,true,"And",projectmatchers);
-                        var chuanyunFindResponse = chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,projectfilter);
-                        if (chuanyunFindResponse.getReturnData()!=null){
-                            List<ChuanyunGroupProjectDO> projectresult=objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                            projectresult.forEach(chuanyunGroupProjectDO -> {
-                                if (chuanyunGroupProjectDO.getProjectType().equals("实施")||chuanyunGroupProjectDO.getProjectType().equals("售后")){
-                                    chuanyunDeviceDTO.setProjectcode(chuanyunGroupProjectDO.getObjectId());
-                                }
-                            });
-                        }
 
-                        chuanyunMaterialDao.findByCode(chuanyunDeviceDTO.getItemcode()).ifPresent(chuanyunMaterialDO -> {
-                            chuanyunDeviceDTO.setItemcode(chuanyunMaterialDO.getObjectId());
-                        });
-                        DeviceInfoDTO deviceInfoDTO = new DeviceInfoDTO(chuanyunDeviceDTO);
-                        var purcostString=objectMapper.writeValueAsString(deviceInfoDTO);
-                        ChuanyunSaveDTO chuanyunSaveDTO;
-                        //根据项目号判断是否存在
-                        List<String> macthers = new ArrayList<>();
-                        macthers.add("F0000001_2,"+chuanyunDeviceDTO.getSncode());
-                        var filter= Filter.instance(0,1,true,"And",macthers);
-                        var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunEquipmentInformDO.SCHEMA_CODE,filter);
-                        if (chuanyunFindAllResponse.getReturnData() == null) {
-                            //新增
-                            chuanyunSaveDTO =chuanYunManager.save(ChuanyunEquipmentInformDO.SCHEMA_CODE,purcostString,true);
-                        }else {
-                            List<ChuanyunEquipmentInformDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                            ChuanyunEquipmentInformDO chuanyunProjectCashFlowDO = result.get(0);
-                            //更新
-                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunEquipmentInformDO.SCHEMA_CODE,chuanyunProjectCashFlowDO.getObjectId(),purcostString);
-                        }
-                        if(chuanyunSaveDTO.getSuccessful()){
-                            log.info("新增设备信息成功");
-                        }else{
-                            log.warn("新增设备信息失败");
-                        }
-                    }
-                } catch (JsonProcessingException | BigSizeException e) {
-                    e.printStackTrace();
-                }
-            });
-        }
-    }
 
-    /**
-     * 更新项目收付款
-     */
-    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 saveBudgetStatistics() {
-        List<ChuanyunBudgetStatisticsDO> list = chuanyunBudgetStatisticsDao.findAll();
-        list.forEach(chuanyunBudgetStatisticsDO -> {
-            if (!StringUtils.isEmpty(chuanyunBudgetStatisticsDO.getProject())){
-                var objectMapper = new ObjectMapper();
-                try {
-                    //集团总表中查找项目
-                    List<String> projectmatchers = new ArrayList<>();
-                    projectmatchers.add("Name_2,"+chuanyunBudgetStatisticsDO.getProject());
-                    var projectfilter= Filter.instance(0,1,true,"And",projectmatchers);
-                    var chuanyunFindResponse = chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,projectfilter);
-                    if (chuanyunFindResponse.getReturnData()!=null){
-                        List<ChuanyunGroupProjectDO> projectresult=objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                        chuanyunBudgetStatisticsDO.setProject(projectresult.get(0).getObjectId());
-                        List<String> matchers = new ArrayList<>();
-                        ChuanyunSaveDTO chuanyunSaveDTO;
-                        matchers.add("F0000001_2,"+chuanyunBudgetStatisticsDO.getProject());
-                        matchers.add("F0000002_2,"+chuanyunBudgetStatisticsDO.getFeeType());
-                        var filter= Filter.instance(0,1,true,"And",matchers);
-                        var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunBudgetAmountDO.SCHEMA_CODE,filter);
-                        BudgetDTO budgetDTO = new BudgetDTO(chuanyunBudgetStatisticsDO);
-                        budgetDTO.setDate(LocalDateTime.of(2020,2,1,0,0));
-                        var budgetString = objectMapper.writeValueAsString(budgetDTO);
-                        if (chuanyunFindAllResponse.getReturnData() != null) {
-                            List<ChuanyunBudgetAmountDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                            ChuanyunBudgetAmountDO chuanyunBudgetAmountDO = result.get(0);
-                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunBudgetAmountDO.SCHEMA_CODE,chuanyunBudgetAmountDO.getObjectId(),budgetString);
-                        }else {
-                            chuanyunSaveDTO = chuanYunManager.save(ChuanyunBudgetAmountDO.SCHEMA_CODE,budgetString,true);
-                        }
-                        if(chuanyunSaveDTO.getSuccessful()){
-                            log.info("新增项目预决算统计成功");
-                        }else{
-                            log.warn("新增项目预决算统计失败");
-                        }
-                    }
-                } catch (JsonProcessingException | BigSizeException e) {
-                    e.printStackTrace();
-                }
-            }
-        });
-    }
+
+
 
     /**
      * 更新请假信息
@@ -588,106 +360,9 @@ public class ChuanyunBasicDataScheduledTask {
         });
     }
 
-    private void saveSupplier() {
-        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<ChuanyunSupplierDTO> pageInfo=clawFeign.findChuanyunSupplier(map);
-            if (page<=pageInfo.getTotalPages()){
-                page += 1;
-            }else {
-                flag = false;
-                break;
-            }
-            List<ChuanyunSupplierDTO> list = pageInfo.getContent();
-            list.forEach(chuanyunSupplierDTO -> {
-                SupplierDTO supplierDTO = new SupplierDTO(chuanyunSupplierDTO);
-                try {
-                    var supplierString = objectMapper.writeValueAsString(supplierDTO);
-                    ChuanyunSaveDTO chuanyunSaveDTO;
-                    //根据编码判断供应商是否存在
-                    List<String> macthers = new ArrayList<>();
-                    macthers.add("F0000001_2,"+chuanyunSupplierDTO.getName());
-                    var filter= Filter.instance(0,1,true,"And",macthers);
-                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSupplierDO.SCHEMA_CODE,filter);
-                    if (chuanyunFindAllResponse.getReturnData() == null) {
-                        chuanyunSaveDTO=chuanYunManager.save(ChuanyunSupplierDO.SCHEMA_CODE,supplierString,true);
-                    }else {
-                        List<ChuanyunSupplierDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                        chuanyunSaveDTO=chuanYunManager.update(ChuanyunSupplierDO.SCHEMA_CODE,result.get(0).getObjectId(),supplierString);
-                    }
-                    if(chuanyunSaveDTO.getSuccessful()){
-                        log.info("新增供应商信息成功");
-                    }else{
-                        log.warn("新增供应商信息失败");
-                    }
-                } catch (JsonProcessingException | BigSizeException e) {
-                    e.printStackTrace();
-                }
 
-            });
-        }
-    }
 
-    /**
-     * 更新项目物料成本
-     */
-    private void savePurCost() {
-        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<ChuanyunPurCostDTO> pageInfo = clawFeign.findChuanyunPurCost(map);
-            if (page<=pageInfo.getTotalPages()){
-                page += 1;
-            }else {
-                flag = false;
-                break;
-            }
-            List<ChuanyunPurCostDTO> list = pageInfo.getContent();
-            list.forEach(chuanyunPurCostDTO -> {
-                try {
-                    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();
-                }
-            });
-        }
-    }
+
 
     /**
      * 新增人力成本
@@ -750,40 +425,6 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
-    /**
-     * 同步设备信息
-     */
-    private void getEquipmentInform(){
-        var objectMapper=new ObjectMapper();
-        var start=0;
-        var totalCount=0L;
-        var flag=true;
-        while (flag){
-            try {
-                //从氚云查询数据
-                var filter= Filter.instance(start,start+pageSize,true);
-                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunEquipmentInformDO.SCHEMA_CODE,filter);
-                if(chuanyunFindAllResponse.getReturnData()==null){
-                    flag=false;
-                    continue;
-                }
-                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
-                    start+=pageSize;
-                }else{
-                    flag=false;
-                }
-                //转化为POJO
-                List<ChuanyunEquipmentInformDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                //获取项目总数
-                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
-                //保存
-                chuanyunEquipmentInformDao.saveAll(result);
-            }catch (Exception e){
-                log.error(e.getMessage());
-                e.printStackTrace();
-            }
-        }
-    }
 
     /**
      * 获取供应商信息
@@ -1266,137 +907,12 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
-    @Data
-    class EquipmentDTO{
-        /**
-         * 设备编号
-         */
-        @JsonProperty("F0000001")
-        private String equipmentCode;
-
-        /**
-         * 设备配置编号
-         */
-        @JsonProperty("F0000002")
-        private String equipmentConfigureCode;
-
-        /**
-         * 设备配置属性
-         */
-        @JsonProperty("F0000003")
-        private String equipmentConfigureAttribute;
-
-        /**
-         * 设备配置值
-         */
-        @JsonProperty("F0000004")
-        private String equipmentConfigureValue;
-
-        public EquipmentDTO(ChuanyunDeviceConfigureDTO chuanyunDeviceConfigureDTO){
-            if (null!=chuanyunDeviceConfigureDTO){
-                if (null!=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode()){
-                    this.equipmentCode=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode();
-                }
-                if (null!=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getLinenum()){
-                    this.equipmentConfigureCode=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getLinenum();
-                }
-                if (null!=chuanyunDeviceConfigureDTO.getPropertyname()){
-                    this.equipmentConfigureAttribute=chuanyunDeviceConfigureDTO.getPropertyname();
-                }
-                if (null!=chuanyunDeviceConfigureDTO.getPropertyvaluename()){
-                    this.equipmentConfigureValue=chuanyunDeviceConfigureDTO.getPropertyvaluename();
-                }
-            }
-        }
-    }
-
-    @Data
-    class BudgetDTO{
-
-        /**
-         * 所属项目
-         */
-        @JsonProperty("F0000001")
-        private String project;
-
-        /**
-         * 费用类型
-         */
-        @JsonProperty("F0000002")
-        private String feeType;
-
-        /**
-         * 预算金额
-         */
-        @JsonProperty("F0000003")
-        private BigDecimal budgetAmount;
-
-        /**
-         * 默认日期(4月份)
-         */
-        @JsonProperty("F0000006")
-        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
-        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
-        private LocalDateTime date;
-
-        /**
-         * 决算金额
-         */
-        @JsonProperty("F0000004")
-        private BigDecimal finalAmount;
-
-        /**
-         * 预算绝算差异
-         */
-        @JsonProperty("F0000005")
-        private BigDecimal differenceAmount;
 
-        public BudgetDTO(ChuanyunBudgetStatisticsDO chuanyunBudgetStatisticsDO) {
-            if (null!=chuanyunBudgetStatisticsDO){
-                if (null!=chuanyunBudgetStatisticsDO.getBudgetAmount()){
-                    this.budgetAmount=chuanyunBudgetStatisticsDO.getBudgetAmount();
-                }
-                if (null!=chuanyunBudgetStatisticsDO.getFinalAmount()){
-                    this.finalAmount=chuanyunBudgetStatisticsDO.getFinalAmount();
-                }
-                if (null!=chuanyunBudgetStatisticsDO.getFeeType()){
-                    this.feeType=chuanyunBudgetStatisticsDO.getFeeType();
-                }
-                if (null!=chuanyunBudgetStatisticsDO.getProject()){
-                    this.project=chuanyunBudgetStatisticsDO.getProject();
-                }
-                if (null!=chuanyunBudgetStatisticsDO.getDifferenceAmount()){
-                    this.differenceAmount=chuanyunBudgetStatisticsDO.getDifferenceAmount();
-                }
-            }
-        }
-    }
 
 
-    class DeviceInfoDTO {
-        @JsonProperty("F0000001")
-        private String equipmentCode;
 
-        @JsonProperty("F0000002")
-        private String equipmentMaterielCode;
 
-        @JsonProperty("F0000003")
-        private String projectId;
 
-        public DeviceInfoDTO(ChuanyunDeviceDTO chuanyunDeviceDTO){
-            if (null!=chuanyunDeviceDTO){
-                if (null!=chuanyunDeviceDTO.getSncode()){
-                    this.equipmentCode=chuanyunDeviceDTO.getSncode();
-                }
-                if(null!=chuanyunDeviceDTO.getItemcode()){
-                    this.equipmentMaterielCode=chuanyunDeviceDTO.getItemcode();
-                }
-                if (null!=chuanyunDeviceDTO.getProjectcode()){
-                    this.projectId=chuanyunDeviceDTO.getProjectcode();
-                }
-            }
-        }
-    }
 
     @Data
     class CashFlowDTO {
@@ -1430,63 +946,9 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
-    @Data
-    class SupplierDTO{
-        /**
-         * 供应商名称
-         */
-        @JsonProperty("F0000001")
-        private String supplierName;
-
-        /**
-         * U9代码
-         */
-        @JsonProperty("F0000002")
-        private String supplierCode;
-
-        public SupplierDTO(ChuanyunSupplierDTO chuanyunSupplierDTO) {
-            if (null!=chuanyunSupplierDTO){
-                if (null!=chuanyunSupplierDTO.getCode()){
-                    this.supplierCode=chuanyunSupplierDTO.getCode();
-                }
-                if (null!=chuanyunSupplierDTO.getName()){
-                    this.supplierName=chuanyunSupplierDTO.getName();
-                }
-            }
-        }
-    }
-
-    @Data
-    class PurCostDTO {
-        @JsonProperty("F0000001")
-        private String projectcode;
 
-        /**
-         * 采购成本
-         */
-        @JsonProperty("F0000002")
-        private BigDecimal purcost;
 
-        /**
-         * 领料成本
-         */
-        @JsonProperty("F0000003")
-        private BigDecimal issuedcost;
 
-        public PurCostDTO(ChuanyunPurCostDTO chuanyunPurCostDTO) {
-            if (null!=chuanyunPurCostDTO) {
-                if (null != chuanyunPurCostDTO.getProjectcode()) {
-                    this.projectcode = chuanyunPurCostDTO.getProjectcode();
-                }
-                if (null != chuanyunPurCostDTO.getPurcost()) {
-                    this.purcost = chuanyunPurCostDTO.getPurcost();
-                }
-                if (null != chuanyunPurCostDTO.getIssuedcost()) {
-                    this.issuedcost = chuanyunPurCostDTO.getIssuedcost();
-                }
-            }
-        }
-    }
 
     @Data
     class LaborCostDTO {

+ 19 - 17
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -239,24 +239,26 @@ public class ChuanyunProjectScheduledTask {
                 chuanyunProjectTotalCostDTO.setStatus(chuanyunProjectCostDO.getStatus());
                 chuanyunProjectTotalCostDTO.setWorkHour(chuanyunProjectCostDO.getTotalHour());
                 chuanyunProjectTotalCostDTO.setPersonDays(chuanyunProjectCostDO.getPersonDays());
-                List<String> matchers = new ArrayList<>();
-                matchers.add("F0000001_2,"+chuanyunProjectCostDO.getProjectId());
-                matchers.add("F0000004_2,"+chuanyunProjectCostDO.getProjectType());
-                matchers.add("F0000006_2,"+chuanyunProjectCostDO.getStatus());
-                var filter= Filter.instance(0,1,true,"And",matchers);
-                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectTotalCostDO.SCHEMA_CODE,filter);
-                var projectTotalString=objectMapper.writeValueAsString(chuanyunProjectTotalCostDTO);
-                ChuanyunSaveDTO chuanyunSaveDTO;
-                if (chuanyunFindAllResponse.getReturnData()!=null) {
-                    List<ChuanyunProjectTotalCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                    ChuanyunProjectTotalCostDO firstResult = result.get(0);
-                    chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectTotalCostDO.SCHEMA_CODE,firstResult.getObjectId(),projectTotalString);
-                }else {
-                    chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectTotalCostDO.SCHEMA_CODE,projectTotalString,true);
+                if (!StringUtils.isEmpty(chuanyunProjectCostDO.getProjectId()) && !StringUtils.isEmpty(chuanyunProjectCostDO.getProjectType())){
+                    List<String> matchers = new ArrayList<>();
+                    matchers.add("F0000001_2,"+chuanyunProjectCostDO.getProjectId());
+                    matchers.add("F0000004_2,"+chuanyunProjectCostDO.getProjectType());
+                    matchers.add("F0000006_2,"+chuanyunProjectCostDO.getStatus());
+                    var filter= Filter.instance(0,1,true,"And",matchers);
+                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectTotalCostDO.SCHEMA_CODE,filter);
+                    var projectTotalString=objectMapper.writeValueAsString(chuanyunProjectTotalCostDTO);
+                    ChuanyunSaveDTO chuanyunSaveDTO;
+                    if (chuanyunFindAllResponse.getReturnData()!=null) {
+                        List<ChuanyunProjectTotalCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        ChuanyunProjectTotalCostDO firstResult = result.get(0);
+                        chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectTotalCostDO.SCHEMA_CODE,firstResult.getObjectId(),projectTotalString);
+                    }else {
+                        chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectTotalCostDO.SCHEMA_CODE,projectTotalString,true);
 
-                }
-                if(!chuanyunSaveDTO.getSuccessful()){
-                    log.warn("新增项目成本汇总失败");
+                    }
+                    if(!chuanyunSaveDTO.getSuccessful()){
+                        log.warn("新增项目成本汇总失败");
+                    }
                 }
             } catch (JsonProcessingException | BigSizeException e) {
                 log.error(e.getMessage());

+ 248 - 0
src/main/java/com/galaxis/manatee/task/EquipmentInfoTask.java

@@ -0,0 +1,248 @@
+package com.galaxis.manatee.task;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.galaxis.capsule.dto.PageDTO;
+import com.galaxis.manatee.dao.*;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunEquipmentDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunEquipmentInformDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunDeviceConfigureDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunDeviceDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.Filter;
+import com.galaxis.manatee.exception.BigSizeException;
+import com.galaxis.manatee.manager.ChuanYunManager;
+import com.galaxis.manatee.manager.ClawFeign;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+@Slf4j
+public class EquipmentInfoTask {
+
+    private final Integer pageSize=20;
+    private final ChuanYunManager chuanYunManager;
+    private final ClawFeign clawFeign;
+    private final ChuanyunMaterialDao chuanyunMaterialDao;
+
+
+    public EquipmentInfoTask(ChuanYunManager chuanYunManager, ClawFeign clawFeign, ChuanyunMaterialDao chuanyunMaterialDao) {
+        this.chuanYunManager = chuanYunManager;
+        this.clawFeign = clawFeign;
+        this.chuanyunMaterialDao = chuanyunMaterialDao;
+    }
+
+    @Scheduled(fixedDelay = 3600000L)
+    private void getDataFromChuanyun() {
+        saveDeviceInfo();
+        saveDeviceConfigure();
+    }
+
+    /**
+     * U9设备信息
+     */
+    private void saveDeviceInfo(){
+        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<ChuanyunDeviceDTO> pageInfo=clawFeign.findChuanyunDevice(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunDeviceDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunDeviceDTO -> {
+                try {
+                    if(chuanyunDeviceDTO != null) {
+                        List<String> projectmatchers = new ArrayList<>();
+                        projectmatchers.add("F0000002_2,"+chuanyunDeviceDTO.getProjectcode());
+                        var projectfilter= Filter.instance(0,Integer.MAX_VALUE,true,"And",projectmatchers);
+                        var chuanyunFindResponse = chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,projectfilter);
+                        if (chuanyunFindResponse.getReturnData()!=null){
+                            List<ChuanyunGroupProjectDO> projectresult=objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                            projectresult.forEach(chuanyunGroupProjectDO -> {
+                                if (chuanyunGroupProjectDO.getProjectType().equals("实施")||chuanyunGroupProjectDO.getProjectType().equals("售后")){
+                                    chuanyunDeviceDTO.setProjectcode(chuanyunGroupProjectDO.getObjectId());
+                                }
+                            });
+                        }
+
+                        chuanyunMaterialDao.findByCode(chuanyunDeviceDTO.getItemcode()).ifPresent(chuanyunMaterialDO -> {
+                            chuanyunDeviceDTO.setItemcode(chuanyunMaterialDO.getObjectId());
+                        });
+                        DeviceInfoDTO deviceInfoDTO = new DeviceInfoDTO(chuanyunDeviceDTO);
+                        var purcostString=objectMapper.writeValueAsString(deviceInfoDTO);
+                        ChuanyunSaveDTO chuanyunSaveDTO;
+                        //根据项目号判断是否存在
+                        List<String> macthers = new ArrayList<>();
+                        macthers.add("F0000001_2,"+chuanyunDeviceDTO.getSncode());
+                        var filter= Filter.instance(0,1,true,"And",macthers);
+                        var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunEquipmentInformDO.SCHEMA_CODE,filter);
+                        if (chuanyunFindAllResponse.getReturnData() == null) {
+                            //新增
+                            chuanyunSaveDTO =chuanYunManager.save(ChuanyunEquipmentInformDO.SCHEMA_CODE,purcostString,true);
+                        }else {
+                            List<ChuanyunEquipmentInformDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                            ChuanyunEquipmentInformDO chuanyunProjectCashFlowDO = result.get(0);
+                            //更新
+                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunEquipmentInformDO.SCHEMA_CODE,chuanyunProjectCashFlowDO.getObjectId(),purcostString);
+                        }
+                        if(chuanyunSaveDTO.getSuccessful()){
+//                            log.info("新增设备信息成功");
+                        }else{
+                            log.warn("新增设备信息失败");
+                        }
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+            });
+            log.info("设备信息完成更新"+pageInfo.getTotalElements());
+        }
+    }
+
+    /**
+     * U9获取设备配置信息
+     */
+    private void saveDeviceConfigure(){
+        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<ChuanyunDeviceConfigureDTO> pageInfo=clawFeign.findChuanyunDeviceConfigure(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunDeviceConfigureDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunDeviceConfigureDTO -> {
+                try {
+                    List<String> matchers = new ArrayList<>();
+                    matchers.add("F0000001_2,"+chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode());
+                    var filter= Filter.instance(0,1,true,"And",matchers);
+                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunEquipmentInformDO.SCHEMA_CODE,filter);
+                    if (chuanyunFindAllResponse.getReturnData()!=null){
+                        List<ChuanyunEquipmentInformDO> projectresult=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().setSncode(projectresult.get(0).getObjectId());
+                    }
+
+                    List<String> projectmatchers = new ArrayList<>();
+                    projectmatchers.add("F0000001_2,"+chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode());
+                    projectmatchers.add("F0000002_2,"+chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getLinenum());
+                    var projectfilter= Filter.instance(0,Integer.MAX_VALUE,true,"And",projectmatchers);
+                    var chuanyunFindResponse = chuanYunManager.findAll(ChuanyunEquipmentDO.SCHEMA_CODE,projectfilter);
+                    ChuanyunSaveDTO chuanyunSaveDTO;
+                    EquipmentDTO equipmentDTO = new EquipmentDTO(chuanyunDeviceConfigureDTO);
+                    var purcostString=objectMapper.writeValueAsString(equipmentDTO);
+                    if (chuanyunFindResponse.getReturnData()!=null){
+                        List<ChuanyunEquipmentDO> projectresult=objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        chuanyunSaveDTO = chuanYunManager.update(ChuanyunEquipmentDO.SCHEMA_CODE,projectresult.get(0).getObjectId(),purcostString);
+                    }else {
+                        chuanyunSaveDTO =chuanYunManager.save(ChuanyunEquipmentDO.SCHEMA_CODE,purcostString,true);
+                    }
+                    if(chuanyunSaveDTO.getSuccessful()){
+//                        log.info("新增配置设备信息成功");
+                    }else{
+                        log.warn("新增配置设备信息失败");
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+            });
+            log.info("设备配置信息完成更新"+pageInfo.getTotalElements());
+        }
+    }
+
+    @Data
+    class EquipmentDTO{
+        /**
+         * 设备编号
+         */
+        @JsonProperty("F0000001")
+        private String equipmentCode;
+
+        /**
+         * 设备配置编号
+         */
+        @JsonProperty("F0000002")
+        private String equipmentConfigureCode;
+
+        /**
+         * 设备配置属性
+         */
+        @JsonProperty("F0000003")
+        private String equipmentConfigureAttribute;
+
+        /**
+         * 设备配置值
+         */
+        @JsonProperty("F0000004")
+        private String equipmentConfigureValue;
+
+        public EquipmentDTO(ChuanyunDeviceConfigureDTO chuanyunDeviceConfigureDTO){
+            if (null!=chuanyunDeviceConfigureDTO){
+                if (null!=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode()){
+                    this.equipmentCode=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getSncode();
+                }
+                if (null!=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getLinenum()){
+                    this.equipmentConfigureCode=chuanyunDeviceConfigureDTO.getChuanyunDeviceConfigurePrimaryKey().getLinenum();
+                }
+                if (null!=chuanyunDeviceConfigureDTO.getPropertyname()){
+                    this.equipmentConfigureAttribute=chuanyunDeviceConfigureDTO.getPropertyname();
+                }
+                if (null!=chuanyunDeviceConfigureDTO.getPropertyvaluename()){
+                    this.equipmentConfigureValue=chuanyunDeviceConfigureDTO.getPropertyvaluename();
+                }
+            }
+        }
+    }
+
+    class DeviceInfoDTO {
+        @JsonProperty("F0000001")
+        private String equipmentCode;
+
+        @JsonProperty("F0000002")
+        private String equipmentMaterielCode;
+
+        @JsonProperty("F0000003")
+        private String projectId;
+
+        public DeviceInfoDTO(ChuanyunDeviceDTO chuanyunDeviceDTO){
+            if (null!=chuanyunDeviceDTO){
+                if (null!=chuanyunDeviceDTO.getSncode()){
+                    this.equipmentCode=chuanyunDeviceDTO.getSncode();
+                }
+                if(null!=chuanyunDeviceDTO.getItemcode()){
+                    this.equipmentMaterielCode=chuanyunDeviceDTO.getItemcode();
+                }
+                if (null!=chuanyunDeviceDTO.getProjectcode()){
+                    this.projectId=chuanyunDeviceDTO.getProjectcode();
+                }
+            }
+        }
+    }
+}

+ 411 - 0
src/main/java/com/galaxis/manatee/task/U9InfoTask.java

@@ -0,0 +1,411 @@
+package com.galaxis.manatee.task;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.capsule.dto.PageDTO;
+import com.galaxis.manatee.dao.*;
+import com.galaxis.manatee.entity.chuanyun.data.object.*;
+import com.galaxis.manatee.entity.chuanyun.dto.*;
+import com.galaxis.manatee.exception.BigSizeException;
+import com.galaxis.manatee.manager.ChuanYunManager;
+import com.galaxis.manatee.manager.ClawFeign;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class U9InfoTask {
+
+    private final Integer pageSize=20;
+    private final ChuanYunManager chuanYunManager;
+    private final ClawFeign clawFeign;
+    private final ChuanyunBudgetStatisticsDao chuanyunBudgetStatisticsDao;
+
+
+    public U9InfoTask(ChuanYunManager chuanYunManager, ClawFeign clawFeign, ChuanyunBudgetStatisticsDao chuanyunBudgetStatisticsDao) {
+        this.chuanYunManager = chuanYunManager;
+        this.clawFeign = clawFeign;
+        this.chuanyunBudgetStatisticsDao = chuanyunBudgetStatisticsDao;
+
+    }
+
+    @Scheduled(fixedDelay = 3600000L)
+    private void getDataFromU9() {
+        savePurCost();
+        saveCashFlow();
+        saveSupplier();
+        saveBudgetStatistics();
+    }
+
+    /**
+     * 更新项目物料成本
+     */
+    private void savePurCost() {
+        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<ChuanyunPurCostDTO> pageInfo = clawFeign.findChuanyunPurCost(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunPurCostDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunPurCostDTO -> {
+                try {
+                    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();
+                }
+            });
+        }
+    }
+
+    /**
+     * 更新项目收付款
+     */
+    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();
+                }
+            });
+        }
+    }
+
+    /**
+     * U9供应商信息
+     */
+    private void saveSupplier() {
+        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<ChuanyunSupplierDTO> pageInfo=clawFeign.findChuanyunSupplier(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunSupplierDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunSupplierDTO -> {
+                SupplierDTO supplierDTO = new SupplierDTO(chuanyunSupplierDTO);
+                try {
+                    var supplierString = objectMapper.writeValueAsString(supplierDTO);
+                    ChuanyunSaveDTO chuanyunSaveDTO;
+                    //根据编码判断供应商是否存在
+                    List<String> macthers = new ArrayList<>();
+                    macthers.add("F0000001_2,"+chuanyunSupplierDTO.getName());
+                    var filter= Filter.instance(0,1,true,"And",macthers);
+                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSupplierDO.SCHEMA_CODE,filter);
+                    if (chuanyunFindAllResponse.getReturnData() == null) {
+                        chuanyunSaveDTO=chuanYunManager.save(ChuanyunSupplierDO.SCHEMA_CODE,supplierString,true);
+                    }else {
+                        List<ChuanyunSupplierDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        chuanyunSaveDTO=chuanYunManager.update(ChuanyunSupplierDO.SCHEMA_CODE,result.get(0).getObjectId(),supplierString);
+                    }
+                    if(chuanyunSaveDTO.getSuccessful()){
+//                        log.info("新增供应商信息成功");
+                    }else{
+                        log.warn("新增供应商信息失败");
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+
+            });
+        }
+    }
+
+    /**
+     * 更新项目预决算统计
+     */
+    private void saveBudgetStatistics() {
+        List<ChuanyunBudgetStatisticsDO> list = chuanyunBudgetStatisticsDao.findAll();
+        list.forEach(chuanyunBudgetStatisticsDO -> {
+            if (!StringUtils.isEmpty(chuanyunBudgetStatisticsDO.getProject())){
+                var objectMapper = new ObjectMapper();
+                try {
+                    //集团总表中查找项目
+                    List<String> projectmatchers = new ArrayList<>();
+                    projectmatchers.add("Name_2,"+chuanyunBudgetStatisticsDO.getProject());
+                    var projectfilter= Filter.instance(0,1,true,"And",projectmatchers);
+                    var chuanyunFindResponse = chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,projectfilter);
+                    if (chuanyunFindResponse.getReturnData()!=null){
+                        List<ChuanyunGroupProjectDO> projectresult=objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        chuanyunBudgetStatisticsDO.setProject(projectresult.get(0).getObjectId());
+                        List<String> matchers = new ArrayList<>();
+                        ChuanyunSaveDTO chuanyunSaveDTO;
+                        matchers.add("F0000001_2,"+chuanyunBudgetStatisticsDO.getProject());
+                        matchers.add("F0000002_2,"+chuanyunBudgetStatisticsDO.getFeeType());
+                        var filter= Filter.instance(0,1,true,"And",matchers);
+                        var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunBudgetAmountDO.SCHEMA_CODE,filter);
+                        BudgetDTO budgetDTO = new BudgetDTO(chuanyunBudgetStatisticsDO);
+                        budgetDTO.setDate(LocalDateTime.of(2020,2,1,0,0));
+                        var budgetString = objectMapper.writeValueAsString(budgetDTO);
+                        if (chuanyunFindAllResponse.getReturnData() != null) {
+                            List<ChuanyunBudgetAmountDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                            ChuanyunBudgetAmountDO chuanyunBudgetAmountDO = result.get(0);
+                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunBudgetAmountDO.SCHEMA_CODE,chuanyunBudgetAmountDO.getObjectId(),budgetString);
+                        }else {
+                            chuanyunSaveDTO = chuanYunManager.save(ChuanyunBudgetAmountDO.SCHEMA_CODE,budgetString,true);
+                        }
+                        if(chuanyunSaveDTO.getSuccessful()){
+//                            log.info("新增项目预决算统计成功");
+                        }else{
+                            log.warn("新增项目预决算统计失败");
+                        }
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+    }
+
+    @Data
+    class PurCostDTO {
+        @JsonProperty("F0000001")
+        private String projectcode;
+
+        /**
+         * 采购成本
+         */
+        @JsonProperty("F0000002")
+        private BigDecimal purcost;
+
+        /**
+         * 领料成本
+         */
+        @JsonProperty("F0000003")
+        private BigDecimal issuedcost;
+
+        public PurCostDTO(ChuanyunPurCostDTO chuanyunPurCostDTO) {
+            if (null!=chuanyunPurCostDTO) {
+                if (null != chuanyunPurCostDTO.getProjectcode()) {
+                    this.projectcode = chuanyunPurCostDTO.getProjectcode();
+                }
+                if (null != chuanyunPurCostDTO.getPurcost()) {
+                    this.purcost = chuanyunPurCostDTO.getPurcost();
+                }
+                if (null != chuanyunPurCostDTO.getIssuedcost()) {
+                    this.issuedcost = chuanyunPurCostDTO.getIssuedcost();
+                }
+            }
+        }
+    }
+
+    @Data
+    class SupplierDTO{
+        /**
+         * 供应商名称
+         */
+        @JsonProperty("F0000001")
+        private String supplierName;
+
+        /**
+         * U9代码
+         */
+        @JsonProperty("F0000002")
+        private String supplierCode;
+
+        public SupplierDTO(ChuanyunSupplierDTO chuanyunSupplierDTO) {
+            if (null!=chuanyunSupplierDTO){
+                if (null!=chuanyunSupplierDTO.getCode()){
+                    this.supplierCode=chuanyunSupplierDTO.getCode();
+                }
+                if (null!=chuanyunSupplierDTO.getName()){
+                    this.supplierName=chuanyunSupplierDTO.getName();
+                }
+            }
+        }
+    }
+
+    @Data
+    class BudgetDTO{
+
+        /**
+         * 所属项目
+         */
+        @JsonProperty("F0000001")
+        private String project;
+
+        /**
+         * 费用类型
+         */
+        @JsonProperty("F0000002")
+        private String feeType;
+
+        /**
+         * 预算金额
+         */
+        @JsonProperty("F0000003")
+        private BigDecimal budgetAmount;
+
+        /**
+         * 默认日期(4月份)
+         */
+        @JsonProperty("F0000006")
+        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+        private LocalDateTime date;
+
+        /**
+         * 决算金额
+         */
+        @JsonProperty("F0000004")
+        private BigDecimal finalAmount;
+
+        /**
+         * 预算绝算差异
+         */
+        @JsonProperty("F0000005")
+        private BigDecimal differenceAmount;
+
+        public BudgetDTO(ChuanyunBudgetStatisticsDO chuanyunBudgetStatisticsDO) {
+            if (null!=chuanyunBudgetStatisticsDO){
+                if (null!=chuanyunBudgetStatisticsDO.getBudgetAmount()){
+                    this.budgetAmount=chuanyunBudgetStatisticsDO.getBudgetAmount();
+                }
+                if (null!=chuanyunBudgetStatisticsDO.getFinalAmount()){
+                    this.finalAmount=chuanyunBudgetStatisticsDO.getFinalAmount();
+                }
+                if (null!=chuanyunBudgetStatisticsDO.getFeeType()){
+                    this.feeType=chuanyunBudgetStatisticsDO.getFeeType();
+                }
+                if (null!=chuanyunBudgetStatisticsDO.getProject()){
+                    this.project=chuanyunBudgetStatisticsDO.getProject();
+                }
+                if (null!=chuanyunBudgetStatisticsDO.getDifferenceAmount()){
+                    this.differenceAmount=chuanyunBudgetStatisticsDO.getDifferenceAmount();
+                }
+            }
+        }
+    }
+
+    @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();
+                }
+            }
+        }
+    }
+}