瀏覽代碼

1.删除项目组成员

WoNiu 4 年之前
父節點
當前提交
6b9caa0e08

+ 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    项目对象