소스 검색

1.立项更新项目组成员

WoNiu 4 년 전
부모
커밋
afd9e58681

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

@@ -134,14 +134,6 @@ public class GetController {
     }
 
     /**
-     * 将领导从特定项目中剔除
-     */
-    @GetMapping("/test/deleteProjectMember")
-    public void deleteProjectMember() {
-        chuanyunService.deleteProjectMember();
-    }
-
-    /**
      * 导入设备配置信息
      * @param file
      */
@@ -151,5 +143,10 @@ public class GetController {
         chuanyunService.importEquipment(list);
     }
 
+//    @GetMapping("/test/updateMember")
+//    public void updateMember(){
+//        chuanyunBasicDataScheduledTask.chuanyunUpdateProjectMemberManually();
+//    }
+
 
 }

+ 6 - 4
src/main/java/com/galaxis/manatee/service/ChuanyunService.java

@@ -28,10 +28,6 @@ public interface ChuanyunService {
      */
     void updateChuanyunDept(String code);
 
-    /**
-     * 将领导从特定项目中剔除
-     */
-    void deleteProjectMember();
 
     /**
      * 设备配置信息导入
@@ -42,4 +38,10 @@ public interface ChuanyunService {
      * 更新项目中受益部门名称
      */
     void updateU9Department();
+
+    /**
+     * 立项时更新项目组成员
+     */
+    @Async
+    void updateMember(String param);
 }

+ 23 - 65
src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java

@@ -9,6 +9,7 @@ import com.galaxis.manatee.constant.ChuanYunConstant;
 import com.galaxis.manatee.constant.StringConstant;
 import com.galaxis.manatee.dao.ChuanyunCostCollectionDao;
 import com.galaxis.manatee.dao.ChuanyunEquipmentInformDao;
+import com.galaxis.manatee.dao.ChuanyunGroupProjectDao;
 import com.galaxis.manatee.dao.ChuanyunUserCompanyDao;
 import com.galaxis.manatee.entity.chuanyun.data.object.*;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
@@ -16,14 +17,13 @@ import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.exception.BigSizeException;
 import com.galaxis.manatee.manager.ChuanYunManager;
 import com.galaxis.manatee.service.ChuanyunService;
-import com.galaxis.manatee.task.ChuanyunFinancialScheduledTask;
+import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -38,13 +38,16 @@ public class ChuanyunServiceImpl implements ChuanyunService {
     private final ChuanyunCostCollectionDao chuanyunCostCollectionDao;
     private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
     private final ChuanyunEquipmentInformDao chuanyunEquipmentInformDao;
-    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"};
+    private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
+    private final ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask;
 
-    public ChuanyunServiceImpl(ChuanYunManager chuanYunManager, ChuanyunCostCollectionDao chuanyunCostCollectionDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunEquipmentInformDao chuanyunEquipmentInformDao) {
+    public ChuanyunServiceImpl(ChuanYunManager chuanYunManager, ChuanyunCostCollectionDao chuanyunCostCollectionDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunEquipmentInformDao chuanyunEquipmentInformDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask) {
         this.chuanYunManager = chuanYunManager;
         this.chuanyunCostCollectionDao = chuanyunCostCollectionDao;
         this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
         this.chuanyunEquipmentInformDao = chuanyunEquipmentInformDao;
+        this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
+        this.chuanyunBasicDataScheduledTask = chuanyunBasicDataScheduledTask;
     }
 
     @Override
@@ -159,67 +162,6 @@ 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();
-            }
-        }
-    }
 
     @Override
     public void importEquipment(List<ChuanyunEquipmentDO> list) {
@@ -290,6 +232,22 @@ public class ChuanyunServiceImpl implements ChuanyunService {
         }
     }
 
+    @Override
+    public void updateMember(String param) {
+        var objectMapper=new ObjectMapper();
+        param=param.substring(14,param.length()-2);
+        var chuanyunFindResponse =  chuanYunManager.find(ChuanyunManagerProjectDO.SCHEMA_CODE,param);
+        if (chuanyunFindResponse.getReturnData()!=null){
+            ChuanyunManagerProjectDO chuanyunManagerProjectDO = objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObject(), new TypeReference<>(){});
+            log.info("管理项目"+chuanyunManagerProjectDO);
+            ChuanyunGroupProjectDO chuanyunGroupProjectDO = chuanyunGroupProjectDao.findByProjectCode(chuanyunManagerProjectDO.getSeqNo());
+            chuanyunBasicDataScheduledTask.chuanyunUpdateProjectMemberManually(chuanyunGroupProjectDO);
+            log.info("更新项目组成员成功"+chuanyunGroupProjectDO);
+        }else {
+            log.info("更新项目组成员失败");
+        }
+    }
+
     /**
      * 更新外部部门名称
      * @param

+ 3 - 21
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -107,7 +107,9 @@ public class ChuanyunBasicDataScheduledTask {
     public void getGroupProjectForSynchronizationManually() {this.getGroupProjectForSynchronization();}
 
 
-    public void chuanyunUpdateProjectMemberManually(String param){this.chuanyunUpdateProjectMember(param);};
+    public void chuanyunUpdateProjectMemberManually(ChuanyunGroupProjectDO chuanyunGroupProjectDO){
+        projectMemberListCheck(chuanyunGroupProjectDO);
+    };
 
 
     /**
@@ -220,26 +222,6 @@ public class ChuanyunBasicDataScheduledTask {
         log.info("集团项目信息保存保存"+totalCount+"项目映射更新完成");
     }
 
-    /**
-     * 项目立项单独更新项目组成员
-     * @param param
-     */
-    private void chuanyunUpdateProjectMember(String param){
-
-        var objectMapper=new ObjectMapper();
-        param=param.substring(14,param.length()-2);
-        log.info(param);
-        var chuanyunFindResponse =  chuanYunManager.find(ChuanyunManagerProjectDO.SCHEMA_CODE,param);
-        if (chuanyunFindResponse.getReturnData()!=null){
-            ChuanyunManagerProjectDO chuanyunManagerProjectDO = objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObject(), new TypeReference<>(){});
-            log.info("管理项目"+chuanyunManagerProjectDO);
-            ChuanyunGroupProjectDO chuanyunGroupProjectDO = chuanyunGroupProjectDao.findByProjectCode(chuanyunManagerProjectDO.getSeqNo());
-            projectMemberListCheck(chuanyunGroupProjectDO);
-            log.info("更新项目组成员成功"+chuanyunGroupProjectDO);
-        }else {
-            log.info("更新项目组成员失败");
-        }
-    }
 
     /**
      * 更新项目成员方法

+ 5 - 4
src/main/java/com/galaxis/manatee/webservice/CountryEndpoint.java

@@ -5,11 +5,10 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.galaxis.manatee.chuanyun_web_service.*;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunWebServiceDTO;
+import com.galaxis.manatee.service.ChuanyunService;
 import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
 import com.galaxis.manatee.task.ChuanyunHumanResourceScheduledTask;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.tomcat.util.json.JSONParser;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.ws.server.endpoint.annotation.Endpoint;
 import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
 import org.springframework.ws.server.endpoint.annotation.RequestPayload;
@@ -26,10 +25,12 @@ public class CountryEndpoint {
 
 	private final ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask;
 	private final ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask;
+	private final ChuanyunService chuanyunService;
 
-	public CountryEndpoint(ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask, ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask) {
+	public CountryEndpoint(ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask, ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask, ChuanyunService chuanyunService) {
 		this.chuanyunHumanResourceScheduledTask = chuanyunHumanResourceScheduledTask;
 		this.chuanyunBasicDataScheduledTask = chuanyunBasicDataScheduledTask;
+		this.chuanyunService = chuanyunService;
 	}
 
 
@@ -71,7 +72,7 @@ public class CountryEndpoint {
 		log.info("开始数据同步");
 		if (request.getMethodName().equals("projectApproval")){
 			log.info("同步项目组成员");
-			chuanyunBasicDataScheduledTask.chuanyunUpdateProjectMemberManually(request.getParam());
+			chuanyunService.updateMember(request.getParam());
 		}else {
 			chuanyunHumanResourceScheduledTask.getPayrollManually();
 			chuanyunBasicDataScheduledTask.getUserCompanyManually();