|
@@ -4,43 +4,40 @@ 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.manatee.dao.ChuanyunGroupProjectDao;
|
|
|
+import com.galaxis.capsule.bo.ChuanyunObject;
|
|
|
+import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
|
+import com.galaxis.manatee.constant.StringConstant;
|
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
|
|
|
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.service.ChuanyunService;
|
|
|
-import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
|
|
|
-import com.galaxis.manatee.task.ChuanyunHumanResourceScheduledTask;
|
|
|
import lombok.Data;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
+/**
|
|
|
+ * @author chongjiezhong
|
|
|
+ */
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
|
|
|
private final Integer pageSize=20;
|
|
|
- private final ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask;
|
|
|
- private final ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask;
|
|
|
private final ChuanYunManager chuanYunManager;
|
|
|
- private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
|
|
|
|
|
|
- public ChuanyunServiceImpl(ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask, ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask, ChuanYunManager chuanYunManager, ChuanyunGroupProjectDao chuanyunGroupProjectDao) {
|
|
|
- this.chuanyunHumanResourceScheduledTask = chuanyunHumanResourceScheduledTask;
|
|
|
- this.chuanyunBasicDataScheduledTask = chuanyunBasicDataScheduledTask;
|
|
|
+ public ChuanyunServiceImpl(ChuanYunManager chuanYunManager) {
|
|
|
this.chuanYunManager = chuanYunManager;
|
|
|
- this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void updateProjectMember() {
|
|
|
var objectMapper=new ObjectMapper();
|
|
|
var start=0;
|
|
|
- var totalCount=0L;
|
|
|
var flag=true;
|
|
|
while (flag){
|
|
|
try {
|
|
@@ -58,29 +55,31 @@ public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
}
|
|
|
//转化为POJO
|
|
|
List<ChuanyunGroupProjectDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
- //获取项目总数
|
|
|
- totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
|
|
|
//保存
|
|
|
result.forEach(chuanyunGroupProjectDO -> {
|
|
|
|
|
|
//处理项目对象中的项目成员数据(改为手动调用处理)
|
|
|
- GroupProjectUpdateDTO groupProjectUpdateDTO= new GroupProjectUpdateDTO();
|
|
|
- chuanyunBasicDataScheduledTask.projectMemberCheck(chuanyunGroupProjectDO);
|
|
|
- try {
|
|
|
- groupProjectUpdateDTO=new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
|
|
|
- var groupProjectUpdateString=objectMapper.writeValueAsString(groupProjectUpdateDTO);
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
|
|
|
- if(chuanyunSaveDTO.getSuccessful()){
|
|
|
- log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员成功");
|
|
|
+ projectMemberCheck(chuanyunGroupProjectDO);
|
|
|
+ //只处理项目成员为空的情况
|
|
|
+ boolean emptyFlag= chuanyunGroupProjectDO.getProjectMemberList()==null||chuanyunGroupProjectDO.getProjectMemberList().length==0;
|
|
|
+ if(emptyFlag){
|
|
|
+ GroupProjectUpdateDTO groupProjectUpdateDTO= new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
|
|
|
+ //生成更新数据后校验数据是否增加成功
|
|
|
+ if(groupProjectUpdateDTO.getProjectMemberList()!=null&&groupProjectUpdateDTO.getProjectMemberList().length!=0){
|
|
|
+ try {
|
|
|
+ var groupProjectUpdateString=objectMapper.writeValueAsString(groupProjectUpdateDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员成功");
|
|
|
|
|
|
- }else{
|
|
|
- log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员失败");
|
|
|
- log.warn(chuanyunGroupProjectDO+"");
|
|
|
+ }else{
|
|
|
+ log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员失败");
|
|
|
+ log.warn(chuanyunGroupProjectDO+"");
|
|
|
+ }
|
|
|
+ } catch (BigSizeException | JsonProcessingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
- } catch (BigSizeException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (JsonProcessingException e) {
|
|
|
- e.printStackTrace();
|
|
|
}
|
|
|
});
|
|
|
}catch (Exception e){
|
|
@@ -91,28 +90,53 @@ public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 如果有项目组成员,将项目组成员projectMember替换为主键
|
|
|
+ * 如果没有项目组成员,判断是否是EBG的实施、研发二开、售后维保项目,如果是,则添加EBG全体成员
|
|
|
+ * @param chuanyunGroupProjectDO 项目对象
|
|
|
+ */
|
|
|
+ private void projectMemberCheck(ChuanyunGroupProjectDO chuanyunGroupProjectDO){
|
|
|
+ if (chuanyunGroupProjectDO.getProjectMemberList() != null && chuanyunGroupProjectDO.getProjectMemberList().length>0) {
|
|
|
+ List<String> memberList = new ArrayList<>();
|
|
|
+ var builder = new StringBuilder();
|
|
|
+ for (ChuanyunObject chuanyunObject: chuanyunGroupProjectDO.getProjectMemberObject()) {
|
|
|
+ builder.append(chuanyunObject.getObjectId()).append(StringConstant.SEMICOLON);
|
|
|
+ memberList.add(chuanyunObject.getObjectId());
|
|
|
+ }
|
|
|
+ chuanyunGroupProjectDO.setProjectMember(builder.toString());
|
|
|
+ //替换为主键后更新氚云数据表来增加权限
|
|
|
+ chuanyunGroupProjectDO.setProjectMemberList(memberList.toArray(new String[0]));
|
|
|
+ }else {
|
|
|
+ //项目成员为空的情况判断
|
|
|
+ //判断项目BG是否为EBG
|
|
|
+ var specifiedBusinessGroupFlag=ChuanyunGroupProjectDO.EBG.equals(chuanyunGroupProjectDO.getBusinessGroup());
|
|
|
+ //判断项目类型是否为 下列项目类型中的一种
|
|
|
+ var specifiedProjectTypeFlag=("实施".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
+ "维保".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
+ "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
+ "售后".equals(chuanyunGroupProjectDO.getProjectType()));
|
|
|
+ //如果项目组成员为空,则自动为项目添加所有EBG成员作为项目组成员
|
|
|
+ if (specifiedBusinessGroupFlag&&specifiedProjectTypeFlag) {
|
|
|
+ var projectMember = new ArrayList<String>();
|
|
|
+ var builder = new StringBuilder();
|
|
|
+ ChuanYunConstant.USER_BUSINESS_GROUP.forEach((k, v)->{
|
|
|
+ if (ChuanyunGroupProjectDO.EBG.equals(v)&&null!=k){
|
|
|
+ builder.append(k).append(StringConstant.SEMICOLON);
|
|
|
+ projectMember.add(k);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ chuanyunGroupProjectDO.setProjectMember(builder.toString());
|
|
|
+ chuanyunGroupProjectDO.setProjectMemberList(projectMember.toArray(new String[0]));
|
|
|
+ log.info("成员已更新"+chuanyunGroupProjectDO.getProjectCode()+chuanyunGroupProjectDO.getProjectType());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 用于刷新项目经理权限的对象
|
|
|
*/
|
|
|
@Data
|
|
|
- class GroupProjectUpdateDTO{
|
|
|
-// /**
|
|
|
-// * 项目总监
|
|
|
-// * U9项目责任人
|
|
|
-// */
|
|
|
-// @JsonProperty(value = "F0000006")
|
|
|
-// private String projectOwner;
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * IBG项目经理
|
|
|
-// */
|
|
|
-// @JsonProperty("F0000012")
|
|
|
-// private String ibgProjectManager;
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * EBG项目经理
|
|
|
-// */
|
|
|
-// @JsonProperty("F0000011")
|
|
|
-// private String ebgProjectManager;
|
|
|
+ static class GroupProjectUpdateDTO{
|
|
|
|
|
|
/**
|
|
|
* 项目组成员(前端传数据用)
|
|
@@ -120,21 +144,8 @@ public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
@JsonProperty("F0000034")
|
|
|
private String[] projectMemberList;
|
|
|
|
|
|
-
|
|
|
- public GroupProjectUpdateDTO() {
|
|
|
- }
|
|
|
-
|
|
|
public GroupProjectUpdateDTO(ChuanyunGroupProjectDO chuanyunGroupProjectDO) {
|
|
|
if(null!=chuanyunGroupProjectDO){
|
|
|
-// if(null!=chuanyunGroupProjectDO.getProjectOwnerObject()){
|
|
|
-// this.projectOwner=chuanyunGroupProjectDO.getProjectOwnerObject().getObjectId();
|
|
|
-// }
|
|
|
-// if(null!=chuanyunGroupProjectDO.getIbgProjectManagerObject()){
|
|
|
-// this.ibgProjectManager=chuanyunGroupProjectDO.getIbgProjectManagerObject().getObjectId();
|
|
|
-// }
|
|
|
-// if(null!=chuanyunGroupProjectDO.getEbgProjectManagerObject()){
|
|
|
-// this.ebgProjectManager=chuanyunGroupProjectDO.getEbgProjectManagerObject().getObjectId();
|
|
|
-// }
|
|
|
if(null!=chuanyunGroupProjectDO.getProjectMemberList()){
|
|
|
this.projectMemberList =chuanyunGroupProjectDO.getProjectMemberList();
|
|
|
}
|