Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
7c2a99603f
  1. 7
      xm-core/src/main/java/com/xm/core/PubTool.java
  2. 18
      xm-core/src/main/java/com/xm/core/service/XmMenuService.java
  3. 24
      xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java
  4. 6
      xm-core/src/main/java/com/xm/core/service/XmProjectService.java
  5. 26
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  6. 2
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml

7
xm-core/src/main/java/com/xm/core/PubTool.java

@ -3,6 +3,11 @@ package com.xm.core;
public class PubTool { public class PubTool {
public static String getPidPaths(String pidPahts, String trimId){ public static String getPidPaths(String pidPahts, String trimId){
return pidPahts.substring(0,pidPahts.indexOf(trimId+","));
int i=pidPahts.indexOf(trimId+",");
if(i>0){
return pidPahts.substring(0,i);
}else{
return pidPahts;
}
} }
} }

18
xm-core/src/main/java/com/xm/core/service/XmMenuService.java

@ -128,9 +128,15 @@ public class XmMenuService extends BaseService {
Tips tips = new Tips("成功"); Tips tips = new Tips("成功");
if (!StringUtils.hasText(currNode.getPmenuId()) || "0".equals(currNode.getPmenuId())) { if (!StringUtils.hasText(currNode.getPmenuId()) || "0".equals(currNode.getPmenuId())) {
currNode.setPidPaths("0," + currNode.getMenuId() + ","); currNode.setPidPaths("0," + currNode.getMenuId() + ",");
currNode.setLvl(2);
return tips; return tips;
} else { } else {
List<XmMenu> parentList=this.getParentList(currNode); List<XmMenu> parentList=this.getParentList(currNode);
if(parentList==null || parentList.size()==0){
currNode.setPidPaths("0,"+currNode.getPmenuId()+","+currNode.getMenuId()+",");
currNode.setLvl(2);
return tips;
}
String idPath="0,"; String idPath="0,";
for (int i = parentList.size() - 1; i >= 0; i--) { for (int i = parentList.size() - 1; i >= 0; i--) {
idPath=idPath+parentList.get(i).getMenuId()+","; idPath=idPath+parentList.get(i).getMenuId()+",";
@ -148,7 +154,7 @@ public class XmMenuService extends BaseService {
List<XmMenu> parentList=new ArrayList<>(); List<XmMenu> parentList=new ArrayList<>();
XmMenu current=currNode; XmMenu current=currNode;
while (true){ while (true){
if(!StringUtils.hasText(currNode.getPmenuId()) || "0".equals(currNode.getPmenuId())){
if(!StringUtils.hasText(current.getPmenuId()) || "0".equals(current.getPmenuId())){
return parentList; return parentList;
} }
XmMenu query=new XmMenu(); XmMenu query=new XmMenu();
@ -165,16 +171,18 @@ public class XmMenuService extends BaseService {
List<XmMenu> parentList=new ArrayList<>(); List<XmMenu> parentList=new ArrayList<>();
XmMenu current=currNode; XmMenu current=currNode;
while (true){ while (true){
if(!StringUtils.hasText(currNode.getPmenuId()) || "0".equals(currNode.getPmenuId())){
if(!StringUtils.hasText(current.getPmenuId()) || "0".equals(current.getPmenuId())){
return parentList; return parentList;
} }
XmMenu query=new XmMenu(); XmMenu query=new XmMenu();
query.setMenuId(current.getPmenuId()); query.setMenuId(current.getPmenuId());
current=nodes.stream().filter(i->i.getMenuId().equals(query.getMenuId())).findFirst().get();
if(current==null){
Optional<XmMenu> optional=nodes.stream().filter(i->i.getMenuId().equals(query.getMenuId())).findFirst();
if(optional.isPresent()){
current=optional.get();
parentList.add(current);
}else{
return parentList; return parentList;
} }
parentList.add(current);
} }
} }

24
xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java

@ -265,7 +265,7 @@ public class XmProjectPhaseService extends BaseService {
} }
for (XmProjectPhase node : nodes) { for (XmProjectPhase node : nodes) {
if(!StringUtils.hasText(node.getParentPhaseId())){ if(!StringUtils.hasText(node.getParentPhaseId())){
node.setPidPaths("0,");
node.setPidPaths("0,"+node.getId()+",");
continue; continue;
} }
if(hadCalcMap.containsKey(node.getParentPhaseId())){ if(hadCalcMap.containsKey(node.getParentPhaseId())){
@ -273,6 +273,10 @@ public class XmProjectPhaseService extends BaseService {
node.setPidPaths(idPaths+node.getId()+","); node.setPidPaths(idPaths+node.getId()+",");
}else{ }else{
List<XmProjectPhase> pnodeList=this.getParentList(node,nodes); List<XmProjectPhase> pnodeList=this.getParentList(node,nodes);
if(pnodeList==null ||pnodeList.size()==0){
node.setPidPaths("0,"+node.getParentPhaseId()+","+node.getId()+",");
continue;
}
XmProjectPhase topParent=pnodeList.get(pnodeList.size()-1); XmProjectPhase topParent=pnodeList.get(pnodeList.size()-1);
String idPath="0,"; String idPath="0,";
if(hadCalcMap.containsKey(topParent.getParentPhaseId())){ if(hadCalcMap.containsKey(topParent.getParentPhaseId())){
@ -303,9 +307,15 @@ public class XmProjectPhaseService extends BaseService {
Tips tips = new Tips("成功"); Tips tips = new Tips("成功");
if (!StringUtils.hasText(currNode.getParentPhaseId()) || "0".equals(currNode.getParentPhaseId())) { if (!StringUtils.hasText(currNode.getParentPhaseId()) || "0".equals(currNode.getParentPhaseId())) {
currNode.setPidPaths("0," + currNode.getId() + ","); currNode.setPidPaths("0," + currNode.getId() + ",");
currNode.setLvl(1);
return tips; return tips;
} else { } else {
List<XmProjectPhase> parentList=this.getParentList(currNode); List<XmProjectPhase> parentList=this.getParentList(currNode);
if(parentList==null ||parentList.size()==0){
currNode.setPidPaths("0,"+currNode.getParentPhaseId()+","+currNode.getId()+",");
currNode.setLvl(2);
return tips;
}
String idPath="0,"; String idPath="0,";
for (int i = parentList.size() - 1; i >= 0; i--) { for (int i = parentList.size() - 1; i >= 0; i--) {
idPath=idPath+parentList.get(i).getId()+","; idPath=idPath+parentList.get(i).getId()+",";
@ -323,7 +333,7 @@ public class XmProjectPhaseService extends BaseService {
List<XmProjectPhase> parentList=new ArrayList<>(); List<XmProjectPhase> parentList=new ArrayList<>();
XmProjectPhase current=currNode; XmProjectPhase current=currNode;
while (true){ while (true){
if(!StringUtils.hasText(currNode.getParentPhaseId()) || "0".equals(currNode.getParentPhaseId())){
if(!StringUtils.hasText(current.getParentPhaseId()) || "0".equals(current.getParentPhaseId())){
return parentList; return parentList;
} }
XmProjectPhase query=new XmProjectPhase(); XmProjectPhase query=new XmProjectPhase();
@ -340,16 +350,18 @@ public class XmProjectPhaseService extends BaseService {
List<XmProjectPhase> parentList=new ArrayList<>(); List<XmProjectPhase> parentList=new ArrayList<>();
XmProjectPhase current=currNode; XmProjectPhase current=currNode;
while (true){ while (true){
if(!StringUtils.hasText(currNode.getParentPhaseId()) || "0".equals(currNode.getParentPhaseId())){
if(!StringUtils.hasText(current.getParentPhaseId()) || "0".equals(current.getParentPhaseId())){
return parentList; return parentList;
} }
XmProjectPhase query=new XmProjectPhase(); XmProjectPhase query=new XmProjectPhase();
query.setId(current.getParentPhaseId()); query.setId(current.getParentPhaseId());
current=nodes.stream().filter(i->i.getId().equals(query.getId())).findFirst().get();
if(current==null){
Optional<XmProjectPhase> optional=nodes.stream().filter(i->i.getId().equals(query.getId())).findFirst();
if(!optional.isPresent()){
current=optional.get();
parentList.add(current);
}else {
return parentList; return parentList;
} }
parentList.add(current);
} }
} }

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

@ -105,7 +105,10 @@ public class XmProjectService extends BaseService {
String newId=newIdMap.get(oldId); String newId=newIdMap.get(oldId);
node.setProjectId(xmProjectTo.getId()); node.setProjectId(xmProjectTo.getId());
node.setId(newId); node.setId(newId);
node.setParentPhaseId(newIdMap.get(node.getParentPhaseId()));
if(StringUtils.hasText(node.getParentPhaseId())){
node.setParentPhaseId(newIdMap.get(node.getParentPhaseId()));
}
node.setCtime(new Date()); node.setCtime(new Date());
node.setMngUserid(user.getUserid()); node.setMngUserid(user.getUserid());
node.setMngUsername(user.getUsername()); node.setMngUsername(user.getUsername());
@ -114,6 +117,7 @@ public class XmProjectService extends BaseService {
node.setBizFlowState(""); node.setBizFlowState("");
node.setBizProcInstId(null); node.setBizProcInstId(null);
} }
this.xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases);
this.xmProjectPhaseService.doBatchInsert(xmProjectPhases); this.xmProjectPhaseService.doBatchInsert(xmProjectPhases);
} }

26
xm-core/src/main/java/com/xm/core/service/XmTaskService.java

@ -427,7 +427,7 @@ public class XmTaskService extends BaseService {
} }
for (XmTask node : nodes) { for (XmTask node : nodes) {
if(!StringUtils.hasText(node.getParentTaskid())){ if(!StringUtils.hasText(node.getParentTaskid())){
node.setPidPaths("0,");
node.setPidPaths("0,"+node.getId()+",");
continue; continue;
} }
if(hadCalcMap.containsKey(node.getParentTaskid())){ if(hadCalcMap.containsKey(node.getParentTaskid())){
@ -435,6 +435,10 @@ public class XmTaskService extends BaseService {
node.setPidPaths(idPaths+node.getId()+","); node.setPidPaths(idPaths+node.getId()+",");
}else{ }else{
List<XmTask> pnodeList=this.getParentList(node,nodes); List<XmTask> pnodeList=this.getParentList(node,nodes);
if(pnodeList==null ||pnodeList.size()==0){
node.setPidPaths("0,"+node.getParentTaskid()+","+node.getId()+",");
continue;
}
XmTask topParent=pnodeList.get(pnodeList.size()-1); XmTask topParent=pnodeList.get(pnodeList.size()-1);
String idPath="0,"; String idPath="0,";
if(hadCalcMap.containsKey(topParent.getParentTaskid())){ if(hadCalcMap.containsKey(topParent.getParentTaskid())){
@ -468,6 +472,11 @@ public class XmTaskService extends BaseService {
return tips; return tips;
} else { } else {
List<XmTask> parentList=this.getParentList(currNode); List<XmTask> parentList=this.getParentList(currNode);
if(parentList==null ||parentList.size()==0){
currNode.setPidPaths("0,"+currNode.getParentTaskid()+","+currNode.getId()+",");
currNode.setLvl(2);
return tips;
}
String idPath="0,"; String idPath="0,";
for (int i = parentList.size() - 1; i >= 0; i--) { for (int i = parentList.size() - 1; i >= 0; i--) {
idPath=idPath+parentList.get(i).getId()+","; idPath=idPath+parentList.get(i).getId()+",";
@ -485,7 +494,7 @@ public class XmTaskService extends BaseService {
List<XmTask> parentList=new ArrayList<>(); List<XmTask> parentList=new ArrayList<>();
XmTask current=currNode; XmTask current=currNode;
while (true){ while (true){
if(!StringUtils.hasText(currNode.getParentTaskid()) || "0".equals(currNode.getParentTaskid())){
if(!StringUtils.hasText(current.getParentTaskid()) || "0".equals(current.getParentTaskid())){
return parentList; return parentList;
} }
XmTask query=new XmTask(); XmTask query=new XmTask();
@ -502,16 +511,19 @@ public class XmTaskService extends BaseService {
List<XmTask> parentList=new ArrayList<>(); List<XmTask> parentList=new ArrayList<>();
XmTask current=currNode; XmTask current=currNode;
while (true){ while (true){
if(!StringUtils.hasText(currNode.getParentTaskid()) || "0".equals(currNode.getParentTaskid())){
if(!StringUtils.hasText(current.getParentTaskid()) || "0".equals(current.getParentTaskid())){
return parentList; return parentList;
} }
XmTask query=new XmTask(); XmTask query=new XmTask();
query.setId(current.getParentTaskid()); query.setId(current.getParentTaskid());
current=nodes.stream().filter(i->i.getId().equals(query.getId())).findFirst().get();
if(current==null){
Optional<XmTask> optional=nodes.stream().filter(i->i.getId().equals(query.getId())).findFirst();
if(optional.isPresent()){
current=optional.get();
parentList.add(current);
}else{
return parentList; return parentList;
} }
parentList.add(current);
} }
} }
@ -526,7 +538,7 @@ public class XmTaskService extends BaseService {
if(!pidPaths.startsWith("0,")){ if(!pidPaths.startsWith("0,")){
return; return;
} }
if("0".equals(node.getNtype())){
if("0".equals(node.getNtype())&&pidPaths.endsWith(id+",")){
pidPaths=pidPaths.substring(2,pidPaths.indexOf(id)); pidPaths=pidPaths.substring(2,pidPaths.indexOf(id));
}else{ }else{
pidPaths=pidPaths.substring(2); pidPaths=pidPaths.substring(2);

2
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml

@ -110,7 +110,7 @@
sum(t.task_budget_at) as task_budget_at sum(t.task_budget_at) as task_budget_at
FROM xm_project_phase t FROM xm_project_phase t
WHERE WHERE
t.parent_taskid=#{item}
t.parent_phase_id=#{item}
GROUP BY GROUP BY
t.project_id, t.project_id,
t.parent_phase_id t.parent_phase_id

Loading…
Cancel
Save