Sfoglia il codice sorgente

1.项目立项更新项目组成员

WoNiu 4 anni fa
parent
commit
54239170a3

+ 20 - 90
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -20,6 +20,7 @@ import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -105,6 +106,9 @@ public class ChuanyunBasicDataScheduledTask {
 
     public void getGroupProjectForSynchronizationManually() {this.getGroupProjectForSynchronization();}
 
+    @Async
+    public void chuanyunUpdateProjectMemberManually(String param){this.chuanyunUpdateProjectMember(param);};
+
 
     /**
      * 定时将氚云中的数据保存到manatee
@@ -217,6 +221,20 @@ public class ChuanyunBasicDataScheduledTask {
     }
 
     /**
+     * 项目立项单独更新项目组成员
+     * @param param
+     */
+    private void chuanyunUpdateProjectMember(String param){
+        log.info(param);
+        var objectMapper=new ObjectMapper();
+        ChuanyunWebServiceDTO chuanyunWebServiceDTO  = objectMapper.convertValue(param, new TypeReference<>(){});
+        log.info(chuanyunWebServiceDTO.getProjectId());
+        ChuanyunGroupProjectDO chuanyunGroupProjectDO = chuanyunGroupProjectDao.getOne(chuanyunWebServiceDTO.getProjectId());
+        projectMemberListCheck(chuanyunGroupProjectDO);
+
+    }
+
+    /**
      * 更新项目成员方法
      * @param chuanyunGroupProjectDO    项目对象
      */
@@ -240,6 +258,7 @@ public class ChuanyunBasicDataScheduledTask {
                     var groupProjectMemberListUpdateString=objectMapper.writeValueAsString(groupProjectMemberListUpdateDTO);
                     ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectMemberListUpdateString);
                     if(chuanyunSaveDTO.getSuccessful()){
+                        log.info("更新项目成员成功"+groupProjectMemberListUpdateString);
                         updateFlag=true;
                     }else{
                         log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目成员失败"+groupProjectMemberListUpdateString);
@@ -364,66 +383,7 @@ public class ChuanyunBasicDataScheduledTask {
 
 
 
-    /**
-     * 新增人力成本
-     */
-    @Scheduled(fixedDelay = 7200000L)
-    private void saveLaborCost() {
-        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<ChuanyunLaborCostDTO> pageInfo = clawFeign.findChuanyunLaborCost(map);
-            if (page<=pageInfo.getTotalPages()){
-                page += 1;
-            }else {
-                flag = false;
-                break;
-            }
-            List<ChuanyunLaborCostDTO> list = pageInfo.getContent();
-            list.forEach(chuanyunLaborCostDTO -> {
-                try {
-                    if(chuanyunLaborCostDTO != null) {
-                        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
-                        String newDate = dateTimeFormatter.format(chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod());
-                        LocalDateTime dt = LocalDateTime.parse(newDate,dateTimeFormatter);
-                        chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().setPeriod(dt);
-                        LaborCostDTO laborCostDTO = new LaborCostDTO(chuanyunLaborCostDTO);
-                        laborCostDTO.setDataType("U9");
-                        var purcostString=objectMapper.writeValueAsString(laborCostDTO);
-                        ChuanyunSaveDTO chuanyunSaveDTO;
-                        //根据项目号判断是否存在
-                        List<String> matchers = new ArrayList<>();
-                        matchers.add("F0000005_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode());
-                        matchers.add("F0000002_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod());
-                        var filter= Filter.instance(0,1,true,"And",matchers);
-                        var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunMonthLaborCostDO.SCHEMA_CODE,filter);
-                        if (chuanyunFindAllResponse.getReturnData() == null) {
-                            //新增
-                            chuanyunSaveDTO =chuanYunManager.save(ChuanyunMonthLaborCostDO.SCHEMA_CODE,purcostString,true);
-                        }else {
-                            List<ChuanyunMonthLaborCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-//                            ChuanyunMonthLaborCostDO chuanyunMonthLaborCostDO = result.get(0);
-                            //更新
-                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunMonthLaborCostDO.SCHEMA_CODE,result.get(0).getObjectId(),purcostString);
-                        }
-                        if(chuanyunSaveDTO.getSuccessful()){
-//                            log.info("新增项目人力成本成功");
-                        }else{
-                            log.warn("新增项目人力成本失败");
-                        }
-                    }
-                } catch (JsonProcessingException | BigSizeException e) {
-                    e.printStackTrace();
-                }
-            });
-        }
-    }
+
 
 
     /**
@@ -950,37 +910,7 @@ public class ChuanyunBasicDataScheduledTask {
 
 
 
-    @Data
-    class LaborCostDTO {
-
-        @JsonProperty("F0000005")
-        private String projectCode;
-
-        @JsonProperty("F0000003")
-        private BigDecimal amount;
-
-        @JsonProperty("F0000002")
-        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
-        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
-        private LocalDateTime logDate;
-
-        @JsonProperty("F0000004")
-        private String dataType;
 
-        public LaborCostDTO(ChuanyunLaborCostDTO chuanyunMonthLaborCostDTO) {
-            if (null!=chuanyunMonthLaborCostDTO){
-                if (null!=chuanyunMonthLaborCostDTO.getCostamount()){
-                    this.amount=chuanyunMonthLaborCostDTO.getCostamount();
-                }
-                if (null!=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode()){
-                    this.projectCode=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode();
-                }
-                if (null!=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod()){
-                    this.logDate=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod();
-                }
-            }
-        }
-    }
 
     /**
      * 用于刷新项目经理权限的对象

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

@@ -23,6 +23,7 @@ import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -50,6 +51,7 @@ public class U9InfoTask {
         savePurCost();
         saveCashFlow();
         saveSupplier();
+        saveLaborCost();
         saveBudgetStatistics();
     }
 
@@ -212,6 +214,66 @@ public class U9InfoTask {
     }
 
     /**
+     * 新增人力成本
+     */
+    private void saveLaborCost() {
+        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<ChuanyunLaborCostDTO> pageInfo = clawFeign.findChuanyunLaborCost(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunLaborCostDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunLaborCostDTO -> {
+                try {
+                    if(chuanyunLaborCostDTO != null) {
+                        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
+                        String newDate = dateTimeFormatter.format(chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod());
+                        LocalDateTime dt = LocalDateTime.parse(newDate,dateTimeFormatter);
+                        chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().setPeriod(dt);
+                        LaborCostDTO laborCostDTO = new LaborCostDTO(chuanyunLaborCostDTO);
+                        laborCostDTO.setDataType("U9");
+                        var purcostString=objectMapper.writeValueAsString(laborCostDTO);
+                        ChuanyunSaveDTO chuanyunSaveDTO;
+                        //根据项目号判断是否存在
+                        List<String> matchers = new ArrayList<>();
+                        matchers.add("F0000005_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode());
+                        matchers.add("F0000002_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod());
+                        var filter= Filter.instance(0,1,true,"And",matchers);
+                        var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunMonthLaborCostDO.SCHEMA_CODE,filter);
+                        if (chuanyunFindAllResponse.getReturnData() == null) {
+                            //新增
+                            chuanyunSaveDTO =chuanYunManager.save(ChuanyunMonthLaborCostDO.SCHEMA_CODE,purcostString,true);
+                        }else {
+                            List<ChuanyunMonthLaborCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+//                            ChuanyunMonthLaborCostDO chuanyunMonthLaborCostDO = result.get(0);
+                            //更新
+                            chuanyunSaveDTO = chuanYunManager.update(ChuanyunMonthLaborCostDO.SCHEMA_CODE,result.get(0).getObjectId(),purcostString);
+                        }
+                        if(chuanyunSaveDTO.getSuccessful()){
+//                            log.info("新增项目人力成本成功");
+                        }else{
+                            log.warn("新增项目人力成本失败");
+                        }
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+            });
+        }
+    }
+
+    /**
      * 更新项目预决算统计
      */
     private void saveBudgetStatistics() {
@@ -316,6 +378,38 @@ public class U9InfoTask {
     }
 
     @Data
+    class LaborCostDTO {
+
+        @JsonProperty("F0000005")
+        private String projectCode;
+
+        @JsonProperty("F0000003")
+        private BigDecimal amount;
+
+        @JsonProperty("F0000002")
+        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+        private LocalDateTime logDate;
+
+        @JsonProperty("F0000004")
+        private String dataType;
+
+        public LaborCostDTO(ChuanyunLaborCostDTO chuanyunMonthLaborCostDTO) {
+            if (null!=chuanyunMonthLaborCostDTO){
+                if (null!=chuanyunMonthLaborCostDTO.getCostamount()){
+                    this.amount=chuanyunMonthLaborCostDTO.getCostamount();
+                }
+                if (null!=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode()){
+                    this.projectCode=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode();
+                }
+                if (null!=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod()){
+                    this.logDate=chuanyunMonthLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod();
+                }
+            }
+        }
+    }
+
+    @Data
     class BudgetDTO{
 
         /**