فهرست منبع

Merge branch '1.0' of https://codeup.aliyun.com/5ec7ea24405cdab50f3fd8f0/galaxis/manatee into 1.0

xuj 4 سال پیش
والد
کامیت
81ee5b3d06

+ 8 - 0
src/main/java/com/galaxis/manatee/controller/GetController.java

@@ -125,5 +125,13 @@ public class GetController {
         chuanyunService.updateChuanyunDept(code);
     }
 
+    /**
+     * 将领导从特定项目中剔除
+     */
+    @GetMapping("/test/deleteProjectMember")
+    public void deleteProjectMember() {
+        chuanyunService.deleteProjectMember();
+    }
+
 
 }

+ 5 - 0
src/main/java/com/galaxis/manatee/service/ChuanyunService.java

@@ -26,4 +26,9 @@ public interface ChuanyunService {
      * @param code  表单编号
      */
     void updateChuanyunDept(String code);
+
+    /**
+     * 将领导从特定项目中剔除
+     */
+    void deleteProjectMember();
 }

+ 64 - 0
src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java

@@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -33,6 +34,7 @@ public class ChuanyunServiceImpl implements ChuanyunService {
     private final ChuanYunManager chuanYunManager;
     private final ChuanyunCostCollectionDao chuanyunCostCollectionDao;
     private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
+    private String[] leader = {"e1feb431-91fd-4a01-8d81-a2e618b571ff","1c8c4dfa-7e22-4f4e-a672-3e080e01a283","18bf4c09-f7d7-4c01-8509-ec554c6592f0","9df86c86-87f4-4d91-ba1e-29657c6cdb65","3fcbf0e0-bf06-411b-9ce4-b77dc897ee93","0fb67380-3408-4786-bac4-44dfef738110"};
 
     public ChuanyunServiceImpl(ChuanYunManager chuanYunManager, ChuanyunCostCollectionDao chuanyunCostCollectionDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao) {
         this.chuanYunManager = chuanYunManager;
@@ -152,6 +154,68 @@ public class ChuanyunServiceImpl implements ChuanyunService {
         }
     }
 
+    @Override
+    public void deleteProjectMember() {
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunGroupProjectDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                //保存
+                result.forEach(chuanyunGroupProjectDO ->  {
+                    if (chuanyunGroupProjectDO.getProjectMemberObject()!=null&&chuanyunGroupProjectDO.getProjectMemberObject().size()>0){
+                        //判断是否是实施、研发二开、售后维保项目
+                        var specifiedProjectTypeFlag=("实施".equals(chuanyunGroupProjectDO.getProjectType())||
+                                "维保".equals(chuanyunGroupProjectDO.getProjectType())||
+                                "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||
+                                "售后".equals(chuanyunGroupProjectDO.getProjectType()));
+                        var specifiedBusinessGroupFlag=ChuanyunGroupProjectDO.EBG.equals(chuanyunGroupProjectDO.getBusinessGroup());
+                        //项目组成员去除领导
+                        List<String> projectMember = new ArrayList<String>();
+                        if (specifiedBusinessGroupFlag&&specifiedProjectTypeFlag){
+                            List<ChuanyunObject> list = chuanyunGroupProjectDO.getProjectMemberObject();
+                            for (ChuanyunObject chuanyunObject:list){
+                                if (!Arrays.asList(leader).contains(chuanyunObject.getObjectId())){
+                                    projectMember.add(chuanyunObject.getObjectId());
+                                }
+                            }
+                            chuanyunGroupProjectDO.setProjectMemberList(projectMember.toArray(new String[0]));
+                            GroupProjectUpdateDTO groupProjectUpdateDTO = new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
+                            try {
+                                var groupProjectUpdateString=objectMapper.writeValueAsString(groupProjectUpdateDTO);
+                                ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
+                                if(chuanyunSaveDTO.getSuccessful()){
+                                    log.info("删除项目组成员成功");
+                                }else{
+                                    log.warn("删除项目组成员失败");
+                                }
+                            } catch (JsonProcessingException | BigSizeException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                });
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
+
     /**
      * 如果没有项目组成员,判断是否是EBG的实施、研发二开、售后维保项目,如果是,则添加EBG全体成员
      * @param chuanyunGroupProjectDO    项目对象

+ 0 - 5
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -86,7 +86,6 @@ public class ChuanyunBasicDataScheduledTask {
         this.getUserList();
     }
 
-
     public void getCompanyManually(){
         this.getCompany();
     }
@@ -99,7 +98,6 @@ public class ChuanyunBasicDataScheduledTask {
 
     public void getGroupProjectForSynchronizationManually() {this.getGroupProjectForSynchronization();}
 
-
     /**
      * 定时将氚云中的数据保存到manatee
      */
@@ -1001,7 +999,6 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
-
     @Data
     class CashFlowDTO {
         @JsonProperty("F0000001")
@@ -1098,8 +1095,6 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
-
-
     /**
      * 用于刷新项目经理权限的对象
      */

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

@@ -769,268 +769,268 @@ public class ChuanyunProjectScheduledTask {
             log.error(e.getMessage());
         }
     }
-}
-
-@Data
-class ChuanyunMemberMonthCostDTO{
-    /**
-     * 项目ID
-     */
-    @JsonProperty("F0000003")
-    private String projectId;
-
-    /**
-     * 项目类型
-     */
-    @JsonProperty("F0000008")
-    private String projectType;
-
-    /**
-     * 日志流程状态
-     */
-    @JsonProperty("F0000009")
-    private String status;
-
-    /**
-     * 用户ID
-     */
-    @JsonProperty("F0000002")
-    private String userId;
-
-    /**
-     * 日期
-     */
-    @JsonProperty("F0000004")
-    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
-    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
-    private LocalDateTime dayLogDate;
-
-    /**
-     * 工时
-     */
-    @JsonProperty("F0000005")
-    private BigDecimal workHour;
-
-    /**
-     * 成本
-     */
-    @JsonProperty("F0000006")
-    private BigDecimal cost;
-
-    /**
-     * 月度工时汇总
-     */
-    @JsonProperty("F0000007")
-    private BigDecimal monthWorkHour;
-
-    /**
-     * 部门Id
-     */
-    @JsonProperty("F0000010")
-    private String departmentId;
-}
-
-@Data
-class ChuanyunProjectMemberCostDTO {
-
-    /**
-     * 项目ID
-     */
-    @JsonProperty("F0000001")
-    private String projectId;
-
-    /**
-     * 项目类型
-     */
-    @JsonProperty("F0000005")
-    private String projectType;
-
-    /**
-     * 用户ID
-     */
-    @JsonProperty("F0000002")
-    private String userId;
-
-    /**
-     * 工时
-     */
-    @JsonProperty("F0000003")
-    private BigDecimal workHour;
-
-    /**
-     * 成本
-     */
-    @JsonProperty("F0000004")
-    private BigDecimal cost;
-
-    /**
-     * 总人天
-     */
-    @JsonProperty("F0000006")
-    private BigDecimal personDays;
-
-    /**
-     * 工时状态
-     */
-    @JsonProperty("F0000007")
-    private String status;
-}
-
-/**
- * 人员项目周度工时
- */
-@Data
-class ChuanyunProjectMemberWeekHourDTO{
-
-    @JsonProperty("F0000001")
-    private String projectId;
-
-    @JsonProperty("F0000002")
-    private String userId;
-
-    @JsonProperty("F0000003")
-    private String projectType;
-
-    @JsonProperty("F0000004")
-    private BigDecimal totalHour;
-
-    @JsonProperty("F0000005")
-    private BigDecimal personDays;
-
-    @JsonProperty("F0000008")
-    private String year;
 
-    @JsonProperty("F0000006")
-    private String week;
-
-    @JsonProperty("F0000007")
-    private String hourStatus;
-
-    /**
-     * 部门信息
-     */
-    @JsonProperty("F0000009")
-    private String departmentId;
-}
-
-/**
- * 项目汇总工时
- */
-@Data
-class ChuanyunProjectTotalCostDTO{
-
-    /**
-     * 项目ID
-     */
-    @JsonProperty("F0000001")
-    private String projectId;
-
-    /**
-     * 项目类型
-     */
-    @JsonProperty("F0000004")
-    private String projectType;
-
-    /**
-     * 工时
-     */
-    @JsonProperty("F0000003")
-    private BigDecimal workHour;
-
-    /**
-     * 成本
-     */
-    @JsonProperty("F0000002")
-    private BigDecimal cost;
+    @Data
+    class ChuanyunMemberMonthCostDTO{
+        /**
+         * 项目ID
+         */
+        @JsonProperty("F0000003")
+        private String projectId;
+
+        /**
+         * 项目类型
+         */
+        @JsonProperty("F0000008")
+        private String projectType;
+
+        /**
+         * 日志流程状态
+         */
+        @JsonProperty("F0000009")
+        private String status;
+
+        /**
+         * 用户ID
+         */
+        @JsonProperty("F0000002")
+        private String userId;
+
+        /**
+         * 日期
+         */
+        @JsonProperty("F0000004")
+        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+        private LocalDateTime dayLogDate;
+
+        /**
+         * 工时
+         */
+        @JsonProperty("F0000005")
+        private BigDecimal workHour;
+
+        /**
+         * 成本
+         */
+        @JsonProperty("F0000006")
+        private BigDecimal cost;
+
+        /**
+         * 月度工时汇总
+         */
+        @JsonProperty("F0000007")
+        private BigDecimal monthWorkHour;
+
+        /**
+         * 部门Id
+         */
+        @JsonProperty("F0000010")
+        private String departmentId;
+    }
 
-    /**
-     * 总人天
-     */
-    @JsonProperty("F0000005")
-    private BigDecimal personDays;
+    @Data
+    class ChuanyunProjectMemberCostDTO {
+
+        /**
+         * 项目ID
+         */
+        @JsonProperty("F0000001")
+        private String projectId;
+
+        /**
+         * 项目类型
+         */
+        @JsonProperty("F0000005")
+        private String projectType;
+
+        /**
+         * 用户ID
+         */
+        @JsonProperty("F0000002")
+        private String userId;
+
+        /**
+         * 工时
+         */
+        @JsonProperty("F0000003")
+        private BigDecimal workHour;
+
+        /**
+         * 成本
+         */
+        @JsonProperty("F0000004")
+        private BigDecimal cost;
+
+        /**
+         * 总人天
+         */
+        @JsonProperty("F0000006")
+        private BigDecimal personDays;
+
+        /**
+         * 工时状态
+         */
+        @JsonProperty("F0000007")
+        private String status;
+    }
 
     /**
-     * 工时状态
+     * 人员项目周度工时
      */
-    @JsonProperty("F0000006")
-    private String status;
+    @Data
+    class ChuanyunProjectMemberWeekHourDTO{
 
-    @JsonProperty("F0000007")
-    private BigDecimal amount;
-}
+        @JsonProperty("F0000001")
+        private String projectId;
 
-@Data
-class ChuanyunAdjustAccountDTO {
-    @JsonProperty("F0000002")
-    private String projectCode;
+        @JsonProperty("F0000002")
+        private String userId;
 
-    /**
-     * 核算实施人天
-     */
-    @JsonProperty("F0000003")
-    private BigDecimal personDays;
+        @JsonProperty("F0000003")
+        private String projectType;
 
-    /**
-     * 核算实施人力成本
-     */
-    @JsonProperty("F0000004")
-    private BigDecimal laborCost;
+        @JsonProperty("F0000004")
+        private BigDecimal totalHour;
 
-    /**
-     * 核算实施费用
-     */
-    @JsonProperty("F0000005")
-    private BigDecimal implementationCosts;
+        @JsonProperty("F0000005")
+        private BigDecimal personDays;
 
-    /**
-     *核算实施总成本
-     */
-    @JsonProperty("F0000006")
-    private BigDecimal totalImplementationCosts;
+        @JsonProperty("F0000008")
+        private String year;
 
-    /**
-     * 项目
-     */
-    @JsonProperty("F0000007")
-    private String projectId;
-}
+        @JsonProperty("F0000006")
+        private String week;
 
-/**
- * 工时标准化更新数据
- */
-@Data
-class ChuanyunSelfWorkHourDTO {
+        @JsonProperty("F0000007")
+        private String hourStatus;
 
-    @JsonProperty("F0000002")
-    private String userId;
-
-    @JsonProperty("F0000001")
-    private String projectId;
-
-    /**
-     * 项目类型
-     */
-    @JsonProperty("F0000005")
-    private String projectType;
+        /**
+         * 部门信息
+         */
+        @JsonProperty("F0000009")
+        private String departmentId;
+    }
 
     /**
-     * 流程状态
+     * 项目汇总工时
      */
-    @JsonProperty("F0000006")
-    private String status;
-
-    @JsonProperty("F0000003")
-    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
-    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
-    private LocalDateTime dayLogDate;
+    @Data
+    class ChuanyunProjectTotalCostDTO{
+
+        /**
+         * 项目ID
+         */
+        @JsonProperty("F0000001")
+        private String projectId;
+
+        /**
+         * 项目类型
+         */
+        @JsonProperty("F0000004")
+        private String projectType;
+
+        /**
+         * 工时
+         */
+        @JsonProperty("F0000003")
+        private BigDecimal workHour;
+
+        /**
+         * 成本
+         */
+        @JsonProperty("F0000002")
+        private BigDecimal cost;
+
+        /**
+         * 总人天
+         */
+        @JsonProperty("F0000005")
+        private BigDecimal personDays;
+
+        /**
+         * 工时状态
+         */
+        @JsonProperty("F0000006")
+        private String status;
+
+        @JsonProperty("F0000007")
+        private BigDecimal amount;
+    }
 
-    @JsonProperty("F0000004")
-    private BigDecimal standardWorkHour;
+    @Data
+    class ChuanyunAdjustAccountDTO {
+        @JsonProperty("F0000002")
+        private String projectCode;
+
+        /**
+         * 核算实施人天
+         */
+        @JsonProperty("F0000003")
+        private BigDecimal personDays;
+
+        /**
+         * 核算实施人力成本
+         */
+        @JsonProperty("F0000004")
+        private BigDecimal laborCost;
+
+        /**
+         * 核算实施费用
+         */
+        @JsonProperty("F0000005")
+        private BigDecimal implementationCosts;
+
+        /**
+         *核算实施总成本
+         */
+        @JsonProperty("F0000006")
+        private BigDecimal totalImplementationCosts;
+
+        /**
+         * 项目
+         */
+        @JsonProperty("F0000007")
+        private String projectId;
+    }
 
     /**
-     * 部门Id
+     * 工时标准化更新数据
      */
-    @JsonProperty("F0000007")
-    private String departmentId;
+    @Data
+    class ChuanyunSelfWorkHourDTO {
+
+        @JsonProperty("F0000002")
+        private String userId;
+
+        @JsonProperty("F0000001")
+        private String projectId;
+
+        /**
+         * 项目类型
+         */
+        @JsonProperty("F0000005")
+        private String projectType;
+
+        /**
+         * 流程状态
+         */
+        @JsonProperty("F0000006")
+        private String status;
+
+        @JsonProperty("F0000003")
+        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+        private LocalDateTime dayLogDate;
+
+        @JsonProperty("F0000004")
+        private BigDecimal standardWorkHour;
+
+        /**
+         * 部门Id
+         */
+        @JsonProperty("F0000007")
+        private String departmentId;
+    }
 }