Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
a287bd7771
  1. 82
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java

82
xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java

@ -246,9 +246,13 @@ public class XmProjectPhaseController {
xmProjectPhaseService.calcPhaseBudgetAmount(xmProjectPhase); xmProjectPhaseService.calcPhaseBudgetAmount(xmProjectPhase);
xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhase); xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhase);
if(xmProjectPhase.getLvl()==1){ if(xmProjectPhase.getLvl()==1){
tips=xmProjectPhaseService.judgetProjectBudget(xmProject.getId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds);
if("1".equals(xmProject.getBudgetCtrl())){
tips=xmProjectPhaseService.judgetProjectBudget(xmProject.getId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds);
}
}else { }else {
tips=xmProjectPhaseService.judgetPhaseBudget(xmProjectPhase.getParentPhaseId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds);
if("1".equals(xmProject.getPhaseBudgetCtrl())) {
tips = xmProjectPhaseService.judgetPhaseBudget(xmProjectPhase.getParentPhaseId(), xmProjectPhase.getPhaseBudgetAt(), null, null, null, excludePhaseIds);
}
} }
if(!tips.isOk()){ if(!tips.isOk()){
return ResponseHelper.failed(tips); return ResponseHelper.failed(tips);
@ -284,8 +288,15 @@ public class XmProjectPhaseController {
Map<String,Object> m = new HashMap<>(); Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功删除一条数据"); Tips tips=new Tips("成功删除一条数据");
try{ try{
XmProject xmProject=this.xmProjectService.getProjectFromCache(xmProjectPhase.getProjectId());
List<XmProjectGroupVo> groupVoList=groupService.getProjectGroupVoList(xmProjectPhase.getProjectId());
if(!StringUtils.hasText(xmProjectPhase.getId())){
return ResponseHelper.failed("id-0","请上送计划编号");
}
XmProjectPhase xmProjectPhaseDb=this.xmProjectPhaseService.selectOneObject(xmProjectPhase);
if(xmProjectPhaseDb==null){
return ResponseHelper.failed("data-0","该计划已不存在");
}
XmProject xmProject=this.xmProjectService.getProjectFromCache(xmProjectPhaseDb.getProjectId());
List<XmProjectGroupVo> groupVoList=groupService.getProjectGroupVoList(xmProjectPhaseDb.getProjectId());
User user = LoginUtils.getCurrentUserInfo(); User user = LoginUtils.getCurrentUserInfo();
boolean meIsPm=groupService.checkUserIsProjectAdm(xmProject,user.getUserid()); boolean meIsPm=groupService.checkUserIsProjectAdm(xmProject,user.getUserid());
boolean meIsTeamHead=groupService.checkUserIsOtherUserTeamHead(groupVoList,user.getUserid(),user.getUserid()); boolean meIsTeamHead=groupService.checkUserIsOtherUserTeamHead(groupVoList,user.getUserid(),user.getUserid());
@ -294,9 +305,9 @@ public class XmProjectPhaseController {
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
boolean meIsHisTeamHead=groupService.checkUserIsOtherUserTeamHead(groupVoList,xmProjectPhase.getMngUserid(),user.getUserid());
boolean meIsHisTeamHead=groupService.checkUserIsOtherUserTeamHead(groupVoList,xmProjectPhaseDb.getMngUserid(),user.getUserid());
if( !meIsPm && !meIsHisTeamHead ){ if( !meIsPm && !meIsHisTeamHead ){
tips.setFailureMsg("您不是"+xmProjectPhase.getMngUsername()+"的组长,不允许删除其负责的计划");
tips.setFailureMsg("您不是"+xmProjectPhaseDb.getMngUsername()+"的组长,不允许删除其负责的计划");
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
@ -305,7 +316,7 @@ public class XmProjectPhaseController {
if(exists>0) { if(exists>0) {
tips.setFailureMsg("存在"+exists+"条任务,不允许删除"); tips.setFailureMsg("存在"+exists+"条任务,不允许删除");
}else { }else {
XmProjectPhase xmProjectPhaseDb=this.xmProjectPhaseService.selectOneObject(xmProjectPhase);
if(xmProjectPhaseDb.getChildrenCnt()!=null && xmProjectPhaseDb.getChildrenCnt()>0){ if(xmProjectPhaseDb.getChildrenCnt()!=null && xmProjectPhaseDb.getChildrenCnt()>0){
tips.setFailureMsg("存在"+xmProjectPhaseDb.getChildrenCnt()+"条子计划,不允许删除"); tips.setFailureMsg("存在"+xmProjectPhaseDb.getChildrenCnt()+"条子计划,不允许删除");
} else { } else {
@ -362,12 +373,19 @@ public class XmProjectPhaseController {
xmProjectPhaseService.calcPhaseBudgetAmount(xmProjectPhase); xmProjectPhaseService.calcPhaseBudgetAmount(xmProjectPhase);
List<String> excludePhaseIds=new ArrayList<>(); List<String> excludePhaseIds=new ArrayList<>();
excludePhaseIds.add(xmProjectPhase.getId()); excludePhaseIds.add(xmProjectPhase.getId());
if("1".equals(xmProject.getBudgetCtrl())){
XmProjectPhase xmProjectPhaseDb=this.xmProjectPhaseService.selectOneObject(xmProjectPhase);
//如果修改了预算数据才进行预算判断
if(xmProjectPhaseDb.getPhaseBudgetAt()!=null && xmProjectPhaseDb.getPhaseBudgetAt().compareTo(xmProjectPhase.getPhaseBudgetAt())!=0){
if(xmProjectPhase.getLvl()==1){ if(xmProjectPhase.getLvl()==1){
tips=this.xmProjectPhaseService.judgetProjectBudget(xmProject.getId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds);
if("1".equals(xmProject.getBudgetCtrl())){
tips=this.xmProjectPhaseService.judgetProjectBudget(xmProject.getId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds);
}
}else{ }else{
tips=this.xmProjectPhaseService.judgetPhaseBudget(xmProjectPhase.getParentPhaseId(),xmProjectPhase.getPhaseBudgetAt(),null,null,null,excludePhaseIds);
}
if("1".equals(xmProject.getPhaseBudgetCtrl())) {
tips = this.xmProjectPhaseService.judgetPhaseBudget(xmProjectPhase.getParentPhaseId(), xmProjectPhase.getPhaseBudgetAt(), null, null, null, excludePhaseIds);
}
}
} }
if(!tips.isOk()) { if(!tips.isOk()) {
return ResponseHelper.failed(tips); return ResponseHelper.failed(tips);
@ -518,6 +536,7 @@ public class XmProjectPhaseController {
g.setMngUserid(user.getUserid()); g.setMngUserid(user.getUserid());
g.setMngUsername(user.getUsername()); g.setMngUsername(user.getUsername());
g=xmProjectPhaseService.autoCalcWorkload(g); g=xmProjectPhaseService.autoCalcWorkload(g);
xmProjectPhaseService.calcPhaseBudgetAmount(g);
} }
xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases); xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases);
@ -541,26 +560,28 @@ public class XmProjectPhaseController {
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList()); List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList());
for (XmProjectPhase child : children) { for (XmProjectPhase child : children) {
xmProjectPhaseService.calcPhaseBudgetAmount(child);
phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt());
} }
Tips tips2=xmProjectPhaseService.judgetPhaseBudget(parentId,phaseTotalBudgetAt,null,null,null,excludeIds);
if(!tips2.isOk()){
tips2.setFailureMsg(tips2.getMsg()+" 相关计划为【"+children.stream().map(i->i.getPhaseName()).collect(Collectors.joining(","))+"】");
return ResponseHelper.failed(tips2);
if("1".equals(xmProject.getPhaseBudgetCtrl())){
Tips tips2=xmProjectPhaseService.judgetPhaseBudget(parentId,phaseTotalBudgetAt,null,null,null,excludeIds);
if(!tips2.isOk()){
tips2.setFailureMsg(tips2.getMsg()+" 相关计划为【"+children.stream().map(i->i.getPhaseName()).collect(Collectors.joining(","))+"】");
return ResponseHelper.failed(tips2);
}
} }
} }
}else{//直接导入到项目之下需要判断当前一级预算是否超出项目总预算 }else{//直接导入到项目之下需要判断当前一级预算是否超出项目总预算
BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO; BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO;
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
for (XmProjectPhase l1Phase : l1Phases) { for (XmProjectPhase l1Phase : l1Phases) {
xmProjectPhaseService.calcPhaseBudgetAmount(l1Phase);
phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload()); phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload());
phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt());
} }
tips=xmProjectPhaseService.judgetProjectBudget(projectId,phaseTotalBudgetAt,null,null,null,l1Phases.stream().map(i->i.getId()).collect(Collectors.toList()));
if(!tips.isOk()){
return ResponseHelper.failed(tips);
if("1".equals(xmProject.getBudgetCtrl())) {
tips = xmProjectPhaseService.judgetProjectBudget(projectId, phaseTotalBudgetAt, null, null, null, l1Phases.stream().map(i -> i.getId()).collect(Collectors.toList()));
if (!tips.isOk()) {
return ResponseHelper.failed(tips);
}
} }
} }
if(tips.isOk()) { if(tips.isOk()) {
@ -620,6 +641,7 @@ public class XmProjectPhaseController {
for (XmProjectPhase g : xmProjectPhases) { for (XmProjectPhase g : xmProjectPhases) {
projectId=g.getProjectId(); projectId=g.getProjectId();
g=xmProjectPhaseService.autoCalcWorkload(g); g=xmProjectPhaseService.autoCalcWorkload(g);
xmProjectPhaseService.calcPhaseBudgetAmount(g);
} }
List<XmProjectPhase> l1Phases=xmProjectPhases.stream().filter(i->1==i.getLvl()).collect(Collectors.toList()); List<XmProjectPhase> l1Phases=xmProjectPhases.stream().filter(i->1==i.getLvl()).collect(Collectors.toList());
if(l1Phases==null ||l1Phases.size()==0){//如果是导入到某个计划之下 if(l1Phases==null ||l1Phases.size()==0){//如果是导入到某个计划之下
@ -641,26 +663,28 @@ public class XmProjectPhaseController {
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList()); List<String> excludeIds=children.stream().map(i->i.getId()).collect(Collectors.toList());
for (XmProjectPhase child : children) { for (XmProjectPhase child : children) {
xmProjectPhaseService.calcPhaseBudgetAmount(child);
phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(child.getPhaseBudgetAt());
} }
Tips tips2=xmProjectPhaseService.judgetPhaseBudget(parentId,phaseTotalBudgetAt,null,null,null,excludeIds);
if(!tips2.isOk()){
tips2.setFailureMsg(tips2.getMsg()+" 相关计划为【"+children.stream().map(i->i.getPhaseName()).collect(Collectors.joining(","))+"】");
return ResponseHelper.failed(tips2);
if("1".equals(xmProject.getPhaseBudgetCtrl())) {
Tips tips2 = xmProjectPhaseService.judgetPhaseBudget(parentId, phaseTotalBudgetAt, null, null, null, excludeIds);
if (!tips2.isOk()) {
tips2.setFailureMsg(tips2.getMsg() + " 相关计划为【" + children.stream().map(i -> i.getPhaseName()).collect(Collectors.joining(",")) + "】");
return ResponseHelper.failed(tips2);
}
} }
} }
}else{//直接导入到项目之下需要判断当前一级预算是否超出项目总预算 }else{//直接导入到项目之下需要判断当前一级预算是否超出项目总预算
BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO; BigDecimal phaseTotalBudgetWorkload=BigDecimal.ZERO;
BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO; BigDecimal phaseTotalBudgetAt=BigDecimal.ZERO;
for (XmProjectPhase l1Phase : l1Phases) { for (XmProjectPhase l1Phase : l1Phases) {
xmProjectPhaseService.calcPhaseBudgetAmount(l1Phase);
phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload()); phaseTotalBudgetWorkload=phaseTotalBudgetWorkload.add(l1Phase.getPhaseBudgetWorkload());
phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt()); phaseTotalBudgetAt=phaseTotalBudgetAt.add(l1Phase.getPhaseBudgetAt());
} }
tips=xmProjectPhaseService.judgetProjectBudget(projectId,phaseTotalBudgetAt,null,null,null,l1Phases.stream().map(i->i.getId()).collect(Collectors.toList()));
if(!tips.isOk()){
return ResponseHelper.failed(tips);
if("1".equals(xmProject.getBudgetCtrl())){
tips=xmProjectPhaseService.judgetProjectBudget(projectId,phaseTotalBudgetAt,null,null,null,l1Phases.stream().map(i->i.getId()).collect(Collectors.toList()));
if(!tips.isOk()){
return ResponseHelper.failed(tips);
}
} }
} }

Loading…
Cancel
Save