Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
ce87486bcc
  1. 21
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java
  2. 19
      xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java

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

@ -630,7 +630,7 @@ public class XmProjectPhaseController {
}) })
@HasQx(value = "xm_core_xmProjectPhase_batchSaveBudget",name = "批量修改项目计划的预算",categoryId = "admin-xm",categoryName = "管理端-项目管理系统") @HasQx(value = "xm_core_xmProjectPhase_batchSaveBudget",name = "批量修改项目计划的预算",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchSaveBudget",method=RequestMethod.POST) @RequestMapping(value="/batchSaveBudget",method=RequestMethod.POST)
public Map<String,Object> batchSaveBudget(@RequestBody List<XmProjectPhaseVo> xmProjectPhases) {
public Map<String,Object> batchSaveBudget(@RequestBody List<XmProjectPhase> xmProjectPhases) {
Map<String,Object> m = new HashMap<>(); Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功修改"+xmProjectPhases.size()+"条数据"); Tips tips=new Tips("成功修改"+xmProjectPhases.size()+"条数据");
try{ try{
@ -643,6 +643,8 @@ public class XmProjectPhaseController {
if(!StringUtils.hasText(xmProjectPhase.getProjectId())){ if(!StringUtils.hasText(xmProjectPhase.getProjectId())){
return ResponseHelper.failed("projectId-0","请上送项目编号"); return ResponseHelper.failed("projectId-0","请上送项目编号");
} }
List<XmProjectPhase> xmProjectPhaseListDb=xmProjectPhaseService.selectListByIds(xmProjectPhases.stream().map(i->i.getId()).collect(Collectors.toList()));
XmProject xmProject=this.xmProjectService.getProjectFromCache(xmProjectPhase.getProjectId()); XmProject xmProject=this.xmProjectService.getProjectFromCache(xmProjectPhase.getProjectId());
List<XmProjectGroupVo> groupVoList=groupService.getProjectGroupVoList(xmProjectPhase.getProjectId()); List<XmProjectGroupVo> groupVoList=groupService.getProjectGroupVoList(xmProjectPhase.getProjectId());
User user = LoginUtils.getCurrentUserInfo(); User user = LoginUtils.getCurrentUserInfo();
@ -654,12 +656,12 @@ public class XmProjectPhaseController {
return m; return m;
} }
String projectId=null; String projectId=null;
List<String> excludePhaseIds=new ArrayList<>();
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); xmProjectPhaseService.calcPhaseBudgetAmount(g);
} }
xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases);
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){//如果是导入到某个计划之下
//找到导入的树中最上面的节点 //找到导入的树中最上面的节点
@ -705,22 +707,17 @@ public class XmProjectPhaseController {
} }
} }
for (XmProjectPhaseVo projectPhase : xmProjectPhases) {
if(!"1".equals(projectPhase.getNtype()) && !"add".equals(projectPhase.getOpType())&& !"addSub".equals(projectPhase.getOpType())){
if(xmProjectPhases.stream().filter(i->projectPhase.getId().equals(i.getParentPhaseId())).findAny().isPresent()){
return ResponseHelper.failed("p-ntype-no-1",projectPhase.getPhaseName()+"不是计划集,不允许下挂子计划");
}
}
if("add".equals(projectPhase.getOpType())||"addSub".equals(projectPhase.getOpType())){
for (XmProjectPhase projectPhase : xmProjectPhases) {
int childrenCnt=Integer.valueOf(xmProjectPhases.stream().filter(i->projectPhase.getId().equals(i.getParentPhaseId())).count()+""); int childrenCnt=Integer.valueOf(xmProjectPhases.stream().filter(i->projectPhase.getId().equals(i.getParentPhaseId())).count()+"");
if(childrenCnt>0){ if(childrenCnt>0){
projectPhase.setChildrenCnt(childrenCnt); projectPhase.setChildrenCnt(childrenCnt);
projectPhase.setNtype("1"); projectPhase.setNtype("1");
} }
} }
}
xmProjectPhaseService.parentIdPathsCalcBeforeSave(xmProjectPhases.stream().map(i->(XmProjectPhase)i).collect(Collectors.toList()));
xmProjectPhaseService.batchInsertOrUpdate(xmProjectPhases);
List<XmProjectPhase> inserts=xmProjectPhases.stream().filter(i->xmProjectPhaseListDb.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList());
List<XmProjectPhase> updates=xmProjectPhases.stream().filter(i->!xmProjectPhaseListDb.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList());
xmProjectPhaseService.batchInsertOrUpdate(inserts,updates);
for (XmProjectPhase phase : xmProjectPhases) { for (XmProjectPhase phase : xmProjectPhases) {
xmRecordService.addProjectPhaseRecord(phase.getProjectId(), phase.getId(), "项目-计划-修改计划预算", "修改计划"+phase.getPhaseName(),JSON.toJSONString(phase),null); xmRecordService.addProjectPhaseRecord(phase.getProjectId(), phase.getId(), "项目-计划-修改计划预算", "修改计划"+phase.getPhaseName(),JSON.toJSONString(phase),null);

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

@ -222,25 +222,20 @@ public class XmProjectPhaseService extends BaseService {
} }
@Transactional @Transactional
public void batchInsertOrUpdate(List<XmProjectPhaseVo> xmProjectPhases) {
List<XmProjectPhaseVo> addList=new ArrayList<>();
List<XmProjectPhaseVo> editList=new ArrayList<>();
for (XmProjectPhaseVo vo : xmProjectPhases) {
if("addSub".equals(vo.getOpType())||"add".equals(vo.getOpType())) {
addList.add(vo);
}else {
editList.add(vo);
}
}
public void batchInsertOrUpdate(List<XmProjectPhase> inserts,List<XmProjectPhase> updates) {
List<XmProjectPhase> addList=inserts;
List<XmProjectPhase> editList=updates;
List<XmProjectPhase> all=new ArrayList<>();
if(addList.size()>0) { if(addList.size()>0) {
all.addAll(addList);
this.batchInsert(addList); this.batchInsert(addList);
} }
if(editList.size()>0) { if(editList.size()>0) {
all.addAll(editList);
this.batchUpdate(editList); this.batchUpdate(editList);
} }
this.batchSumParents(xmProjectPhases.stream().map(i->(XmProjectPhase)i).collect(Collectors.toList()));
this.batchSumParents(all);
} }
public void calcKeyPaths(String projectId) { public void calcKeyPaths(String projectId) {

Loading…
Cancel
Save