Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
84ef1f39ef
  1. 27
      xm-core/src/main/java/com/xm/core/entity/XmProductCopyVo.java
  2. 118
      xm-core/src/main/java/com/xm/core/service/XmProductService.java
  3. 163
      xm-core/src/main/java/com/xm/core/service/XmProjectService.java
  4. 19
      xm-core/src/main/java/com/xm/core/vo/XmProjectCopyVo.java

27
xm-core/src/main/java/com/xm/core/entity/XmProductCopyVo.java

@ -10,6 +10,9 @@ public class XmProductCopyVo {
String isTpl;//是否拷贝为模板
String copyMenu;//是否拷贝需求
String copyPhase;//是否复制计划 0否1是
String copyGroup;//是否复制组织架构 0否1是
String copyGroupUser;//是否复制组织架构中用户 0否1是
public String getId() {
return id;
@ -50,4 +53,28 @@ public class XmProductCopyVo {
public void setCopyMenu(String copyMenu) {
this.copyMenu = copyMenu;
}
public String getCopyPhase() {
return copyPhase;
}
public void setCopyPhase(String copyPhase) {
this.copyPhase = copyPhase;
}
public String getCopyGroup() {
return copyGroup;
}
public void setCopyGroup(String copyGroup) {
this.copyGroup = copyGroup;
}
public String getCopyGroupUser() {
return copyGroupUser;
}
public void setCopyGroupUser(String copyGroupUser) {
this.copyGroupUser = copyGroupUser;
}
}

118
xm-core/src/main/java/com/xm/core/service/XmProductService.java

@ -3,10 +3,7 @@ package com.xm.core.service;
import com.mdp.core.err.BizException;
import com.mdp.core.service.BaseService;
import com.mdp.safe.client.entity.User;
import com.xm.core.entity.XmMenu;
import com.xm.core.entity.XmProduct;
import com.xm.core.entity.XmProductCopyVo;
import com.xm.core.entity.XmProject;
import com.xm.core.entity.*;
import com.xm.core.service.cache.XmProductCacheService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -14,10 +11,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -38,6 +32,18 @@ public class XmProductService extends BaseService {
@Autowired
XmProductCacheService xmProductCacheService;
@Autowired
XmProjectGroupService groupService;
@Autowired
XmProjectGroupUserService groupUserService;
@Autowired
XmProjectPhaseService xmProjectPhaseService;
/**
* 产品不直接根项目关联此函数作废了
* @param productId
@ -83,6 +89,7 @@ public class XmProductService extends BaseService {
if(xmProductDb==null){
throw new BizException("产品不存在");
}
String isTpl=xmProduct.getIsTpl();
XmProduct xmProductTo=new XmProduct();
BeanUtils.copyProperties(xmProductDb,xmProductTo);
xmProductTo.setId(this.createKey("id"));
@ -100,7 +107,7 @@ public class XmProductService extends BaseService {
xmProductTo.setPmUsername(user.getUsername());
xmProductTo.setCtime(new Date());
xmProductTo.setPstatus("0");
xmProductTo.setIsTpl(xmProduct.getIsTpl());
xmProductTo.setIsTpl(isTpl);
xmProductTo.setAssUserid(user.getUserid());
xmProductTo.setAssUsername(user.getUsername());
xmProductTo.setBizProcInstId(null);
@ -109,29 +116,114 @@ public class XmProductService extends BaseService {
xmProductTo.setProductName(xmProduct.getProductName()+"(复制)");
}
this.insert(xmProductTo);
Map<String,String> newPhaseIdMap=new HashMap<>();
if("1".equals(xmProduct.getCopyPhase())){
XmProjectPhase phaseQuery=new XmProjectPhase();
phaseQuery.setProductId(xmProductDb.getId());
List<XmProjectPhase> xmProjectPhases=this.xmProjectPhaseService.selectListByWhere(phaseQuery);
if(xmProjectPhases!=null && xmProjectPhases.size()>0){
for (XmProjectPhase node : xmProjectPhases) {
String id=this.xmProjectPhaseService.createKey("id");
newPhaseIdMap.put(node.getId(),id);
}
for (XmProjectPhase node : xmProjectPhases) {
String oldId=node.getId();
String newId=newPhaseIdMap.get(oldId);
node.setProjectId(null);
node.setProductId(xmProductTo.getId());
node.setId(newId);
if(StringUtils.hasText(node.getParentPhaseId())){
node.setParentPhaseId(newPhaseIdMap.get(node.getParentPhaseId()));
}
node.setCtime(new Date());
node.setMngUserid(user.getUserid());
node.setMngUsername(user.getUsername());
node.setIsTpl(isTpl);
node.setBranchId(user.getBranchId());
node.setBizFlowState("");
node.setBizProcInstId(null);
}
this.xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases);
this.xmProjectPhaseService.doBatchInsert(xmProjectPhases);
}
}
Map<String,String> newMenuIdMap=new HashMap<>();
if("1".equals(xmProduct.getCopyMenu())){
XmMenu mq=new XmMenu();
mq.setProductId(xmProduct.getId());
List<XmMenu> xmMenus=this.xmMenuService.selectListByWhere(mq);
Map<String,String> idMap=new HashMap<>();
if(xmMenus!=null && xmMenus.size()>0){
for (XmMenu node : xmMenus) {
idMap.put(node.getMenuId(),this.xmMenuService.createKey("id"));
newMenuIdMap.put(node.getMenuId(),this.xmMenuService.createKey("id"));
}
for (XmMenu node : xmMenus) {
String oldId=node.getMenuId();
String newId=idMap.get(oldId);
String newId=newMenuIdMap.get(oldId);
node.setMenuId(newId);
node.setProductId(xmProductTo.getId());
node.setPmenuId(idMap.get(node.getPmenuId()));
node.setPmenuId(newMenuIdMap.get(node.getPmenuId()));
node.setPhaseId(newPhaseIdMap.get(node.getPhaseId()));
node.setCtime(new Date());
node.setMmUserid(user.getUserid());
node.setMmUsername(user.getUsername());
node.setIterationId(null);
}
this.xmMenuService.parentIdPathsCalcBeforeSave(xmMenus);
this.xmMenuService.doBatchInsert(xmMenus);
}
}
List<XmProjectGroup> groupsDb=new ArrayList<>();
Map<String, String> newGroupIdMap = new HashMap<>();
if( "1".equals(xmProduct.getCopyGroup())||"1".equals(xmProduct.getCopyGroupUser())) {
XmProjectGroup groupQ = new XmProjectGroup();
groupQ.setProductId(xmProductDb.getId());
groupsDb = this.groupService.selectListByWhere(groupQ);
if (groupsDb != null && groupsDb.size() > 0) {
for (XmProjectGroup group : groupsDb) {
newGroupIdMap.put(group.getId(), this.groupService.createKey("id"));
}
for (XmProjectGroup node : groupsDb) {
String oldId = node.getId();
String newId = newGroupIdMap.get(oldId);
node.setProductId(xmProductTo.getId());
node.setId(newId);
node.setPgroupId(newGroupIdMap.get(node.getPgroupId()));
node.setBranchId(user.getBranchId());
node.setProjectId(null);
node.setCtime(new Date());
node.setAssUserid(user.getUserid());
node.setAssUsername(user.getUsername());
node.setLeaderUserid(user.getUserid());
node.setLeaderUsername(user.getUsername());
node.setIsTpl(isTpl);
node.setPgClass("1");
}
this.groupService.parentIdPathsCalcBeforeSave(groupsDb);
this.groupService.batchInsert(groupsDb);
}
}
if(groupsDb.size()>0 && "1".equals(xmProduct.getCopyGroupUser())){
XmProjectGroupUser userQ=new XmProjectGroupUser();
userQ.setProductId(xmProductDb.getId());
List<XmProjectGroupUser> usersDb=this.groupUserService.selectGroupUserListByProductId(xmProductDb.getId());
if(usersDb!=null && usersDb.size()>0){
for (XmProjectGroupUser node : usersDb) {
node.setProjectId(null);
node.setProductId(xmProductTo.getId());
node.setGroupId(newGroupIdMap.get(node.getGroupId()));
node.setStatus("0");
node.setJoinTime(new Date());
node.setPgClass("1");
}
this.groupUserService.batchInsert(usersDb);
}
}
return xmProductTo;
}

163
xm-core/src/main/java/com/xm/core/service/XmProjectService.java

@ -9,9 +9,7 @@ import com.mdp.core.utils.BaseUtils;
import com.mdp.core.utils.DateUtils;
import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils;
import com.xm.core.entity.XmProject;
import com.xm.core.entity.XmProjectPhase;
import com.xm.core.entity.XmTask;
import com.xm.core.entity.*;
import com.xm.core.service.cache.XmProjectCacheService;
import com.xm.core.vo.XmProjectCopyVo;
import com.xm.core.vo.XmProjectVo;
@ -22,10 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br>
@ -60,6 +55,12 @@ public class XmProjectService extends BaseService {
XmProjectCacheService xmProjectCacheService;
@Autowired
XmProjectPhaseService xmProjectPhaseService;
@Autowired
XmProjectGroupService groupService;
@Autowired
XmProjectGroupUserService groupUserService;
public XmProject getProjectFromCache(String projectId) {
@ -96,62 +97,112 @@ public class XmProjectService extends BaseService {
XmProjectPhase phaseQuery=new XmProjectPhase();
phaseQuery.setProjectId(xmProjectDb.getId());
List<XmProjectPhase> xmProjectPhases=this.xmProjectPhaseService.selectListByWhere(phaseQuery);
Map<String,String> newIdMap=new HashMap<>();
if(xmProjectPhases!=null && xmProjectPhases.size()>0){
for (XmProjectPhase node : xmProjectPhases) {
String id=this.xmProjectPhaseService.createKey("id");
newIdMap.put(node.getId(),id);
}
for (XmProjectPhase node : xmProjectPhases) {
String oldId=node.getId();
String newId=newIdMap.get(oldId);
node.setProjectId(xmProjectTo.getId());
node.setId(newId);
if(StringUtils.hasText(node.getParentPhaseId())){
node.setParentPhaseId(newIdMap.get(node.getParentPhaseId()));
Map<String,String> newPhaseIdMap=new HashMap<>();
if("1".equals(xmProject.getCopyPhase()) ||"1".equals(xmProject.getCopyTask())){
List<XmProjectPhase> xmProjectPhases=this.xmProjectPhaseService.selectListByWhere(phaseQuery);
if(xmProjectPhases!=null && xmProjectPhases.size()>0){
for (XmProjectPhase node : xmProjectPhases) {
String id=this.xmProjectPhaseService.createKey("id");
newPhaseIdMap.put(node.getId(),id);
}
for (XmProjectPhase node : xmProjectPhases) {
String oldId=node.getId();
String newId=newPhaseIdMap.get(oldId);
node.setProjectId(xmProjectTo.getId());
node.setId(newId);
if(StringUtils.hasText(node.getParentPhaseId())){
node.setParentPhaseId(newPhaseIdMap.get(node.getParentPhaseId()));
}
node.setCtime(new Date());
node.setMngUserid(user.getUserid());
node.setMngUsername(user.getUsername());
node.setIsTpl(isTpl);
node.setBranchId(user.getBranchId());
node.setBizFlowState("");
node.setBizProcInstId(null);
}
this.xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases);
this.xmProjectPhaseService.doBatchInsert(xmProjectPhases);
}
node.setCtime(new Date());
node.setMngUserid(user.getUserid());
node.setMngUsername(user.getUsername());
node.setIsTpl(isTpl);
node.setBranchId(user.getBranchId());
node.setBizFlowState("");
node.setBizProcInstId(null);
}
if("1".equals(xmProject.getCopyTask()) && "1".equals(xmProject.getCopyPhase())){
XmTask taskQ=new XmTask();
taskQ.setProjectId(xmProjectDb.getId());
List<XmTask> xmTasks=this.xmTaskService.selectListByWhere(taskQ);
Map<String,String> newTaskIdMap=new HashMap<>();
if(xmTasks!=null && xmTasks.size()>0){
for (XmTask node : xmTasks) {
newTaskIdMap.put(node.getId(),this.xmTaskService.createKey("id"));
}
for (XmTask node : xmTasks) {
String oldId=node.getId();
String newId=newTaskIdMap.get(oldId);
node.setProjectId(xmProjectTo.getId());
node.setId(newId);
node.setParentTaskid(newTaskIdMap.get(node.getParentTaskid()));
node.setCbranchId(user.getBranchId());
node.setCdeptid(user.getDeptid());
node.setCreateUsername(user.getUsername());
node.setCreateUserid(user.getUserid());
node.setCreateTime(new Date());
node.setProjectPhaseId(newPhaseIdMap.get(node.getProjectPhaseId()));
node.setIsTpl(isTpl);
node.setMenuId(null);
node.setMenuName(null);
node.setProductId(null);
node.setProductName(null);
}
this.xmTaskService.parentIdPathsCalcBeforeSave(xmTasks);
this.xmTaskService.batchImportFromTemplate(xmTasks);
}
this.xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases);
this.xmProjectPhaseService.doBatchInsert(xmProjectPhases);
}
XmTask taskQ=new XmTask();
taskQ.setProjectId(xmProjectDb.getId());
List<XmTask> xmTasks=this.xmTaskService.selectListByWhere(taskQ);
Map<String,String> newTaskIdMap=new HashMap<>();
if(xmTasks!=null && xmTasks.size()>0){
for (XmTask node : xmTasks) {
newTaskIdMap.put(node.getId(),this.xmTaskService.createKey("id"));
List<XmProjectGroup> groupsDb=new ArrayList<>();
Map<String, String> newGroupIdMap = new HashMap<>();
if( "1".equals(xmProject.getCopyGroup())||"1".equals(xmProject.getCopyGroupUser())) {
XmProjectGroup groupQ = new XmProjectGroup();
groupQ.setProjectId(xmProjectDb.getId());
groupsDb = this.groupService.selectListByWhere(groupQ);
if (groupsDb != null && groupsDb.size() > 0) {
for (XmProjectGroup group : groupsDb) {
newGroupIdMap.put(group.getId(), this.groupService.createKey("id"));
}
for (XmProjectGroup node : groupsDb) {
String oldId = node.getId();
String newId = newGroupIdMap.get(oldId);
node.setProjectId(xmProjectTo.getId());
node.setId(newId);
node.setPgroupId(newGroupIdMap.get(node.getPgroupId()));
node.setBranchId(user.getBranchId());
node.setProductId(null);
node.setCtime(new Date());
node.setAssUserid(user.getUserid());
node.setAssUsername(user.getUsername());
node.setLeaderUserid(user.getUserid());
node.setLeaderUsername(user.getUsername());
node.setIsTpl(isTpl);
node.setPgClass("0");
}
this.groupService.parentIdPathsCalcBeforeSave(groupsDb);
this.groupService.batchInsert(groupsDb);
}
for (XmTask node : xmTasks) {
String oldId=node.getId();
String newId=newTaskIdMap.get(oldId);
node.setProjectId(xmProjectTo.getId());
node.setId(newId);
node.setParentTaskid(newTaskIdMap.get(node.getParentTaskid()));
node.setCbranchId(user.getBranchId());
node.setCdeptid(user.getDeptid());
node.setCreateUsername(user.getUsername());
node.setCreateUserid(user.getUserid());
node.setCreateTime(new Date());
node.setProjectPhaseId(newIdMap.get(node.getProjectPhaseId()));
node.setIsTpl(isTpl);
node.setMenuId("");
node.setMenuName("");
node.setProductId("");
node.setProductName("");
}
if(groupsDb.size()>0 && "1".equals(xmProject.getCopyGroupUser())){
XmProjectGroupUser userQ=new XmProjectGroupUser();
userQ.setProjectId(xmProjectDb.getId());
List<XmProjectGroupUser> usersDb=this.groupUserService.selectGroupUserListByProjectId(xmProjectDb.getId());
if(usersDb!=null && usersDb.size()>0){
for (XmProjectGroupUser node : usersDb) {
node.setProjectId(xmProjectTo.getId());
node.setGroupId(newGroupIdMap.get(node.getGroupId()));
node.setStatus("0");
node.setJoinTime(new Date());
node.setPgClass("0");
}
this.groupUserService.batchInsert(usersDb);
}
this.xmTaskService.parentIdPathsCalcBeforeSave(xmTasks);
this.xmTaskService.batchImportFromTemplate(xmTasks);
}
return xmProjectTo;
}

19
xm-core/src/main/java/com/xm/core/vo/XmProjectCopyVo.java

@ -7,7 +7,8 @@ public class XmProjectCopyVo {
String isTpl;//是否复制为模板项目 0否1是
String copyPhase;//是否复制计划 0否1是
String copyTask;//是否复制任务 0否1是
String copyGrup;//是否复制组织架构 0否1是
String copyGroup;//是否复制组织架构 0否1是
String copyGroupUser;//是否复制组织架构中用户 0否1是
public String getId() {
return id;
@ -57,11 +58,19 @@ public class XmProjectCopyVo {
this.copyTask = copyTask;
}
public String getCopyGrup() {
return copyGrup;
public String getCopyGroup() {
return copyGroup;
}
public void setCopyGrup(String copyGrup) {
this.copyGrup = copyGrup;
public void setCopyGroup(String copyGroup) {
this.copyGroup = copyGroup;
}
public String getCopyGroupUser() {
return copyGroupUser;
}
public void setCopyGroupUser(String copyGroupUser) {
this.copyGroupUser = copyGroupUser;
}
}
Loading…
Cancel
Save