From 845ac5d2db3e7a0e49d74a4c53642dfa972d4ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Tue, 22 Feb 2022 04:59:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/ctrl/XmProjectPhaseController.java | 29 ++++++++++--------- .../core/service/XmProjectPhaseService.java | 28 +++++++----------- .../xm/core/dao/XmProjectPhaseMapper.xml | 6 ++++ 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java index a9d1d474..81267a99 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java @@ -312,14 +312,12 @@ public class XmProjectPhaseController { if(exists>0) { tips.setFailureMsg("存在"+exists+"条任务,不允许删除"); }else { - Long checkExistsChildren =xmProjectPhaseService.checkExistsChildren(xmProjectPhase.getId()); - if(checkExistsChildren>0) { - tips.setFailureMsg("存在"+checkExistsChildren+"条子计划,不允许删除"); - }else { - - xmProjectPhaseService.deleteByPk(xmProjectPhase); - - xmRecordService.addXmPhaseRecord(xmProjectPhase.getProjectId(), xmProjectPhase.getId(), "项目-计划-删除计划", "删除计划"+xmProjectPhase.getPhaseName(),JSON.toJSONString(xmProjectPhase),null); + XmProjectPhase xmProjectPhaseDb=this.xmProjectPhaseService.selectOneObject(xmProjectPhase); + if(xmProjectPhaseDb.getChildrenCnt()!=null && xmProjectPhaseDb.getChildrenCnt()>0){ + tips.setFailureMsg("存在"+xmProjectPhaseDb.getChildrenCnt()+"条子计划,不允许删除"); + } else { + xmProjectPhaseService.deleteByPk(xmProjectPhaseDb); + xmRecordService.addXmPhaseRecord(xmProjectPhaseDb.getProjectId(), xmProjectPhaseDb.getId(), "项目-计划-删除计划", "删除计划"+xmProjectPhaseDb.getPhaseName(),JSON.toJSONString(xmProjectPhaseDb),null); } } @@ -379,8 +377,7 @@ public class XmProjectPhaseController { Tips judgetTips=xmProjectPhaseService.judgetBudget(projectId, phaseBudgetCost,phaseBudgetInnerUserAt,phaseBudgetOutUserAt,phaseBudgetNouserAt,excludePhaseIds); if(judgetTips.isOk()) { xmProjectPhase=xmProjectPhaseService.autoCalcWorkload(xmProjectPhase); - xmProjectPhaseService.updateByPk(xmProjectPhase); - xmProjectPhaseService.sumParents(xmProjectPhase); + xmProjectPhaseService.editByPk(xmProjectPhase); xmRecordService.addXmPhaseRecord(xmProjectPhase.getProjectId(), xmProjectPhase.getId(), "项目-计划-修改计划", "修改计划"+xmProjectPhase.getPhaseName(),JSON.toJSONString(xmProjectPhase),null); }else { @@ -417,6 +414,11 @@ public class XmProjectPhaseController { return m; } XmProjectPhase xmProjectPhase=xmProjectPhases.get(0); + if(!StringUtils.hasText(xmProjectPhase.getProjectId())){ + tips.setFailureMsg("项目编号不能为空"); + m.put("tips", tips); + return m; + } List noDelList=new ArrayList<>(); List hasChildList=new ArrayList<>(); int delCount=0; @@ -431,7 +433,8 @@ public class XmProjectPhaseController { } List noQxUsernames=new ArrayList<>(); List delPhases=new ArrayList<>(); - for (XmProjectPhase phase : xmProjectPhases) { + List xmProjectPhaseListDb=this.xmProjectPhaseService.selectListByIds(xmProjectPhases.stream().map(i->i.getId()).collect(Collectors.toList())); + for (XmProjectPhase phase : xmProjectPhaseListDb) { boolean meIsHisTeamHead=groupService.checkUserIsOtherUserTeamHead(groupVoList,phase.getMngUserid(),user.getUserid()); if( !meIsPm && !meIsHisTeamHead ){ noQxUsernames.add(phase.getMngUsername()); @@ -448,7 +451,7 @@ public class XmProjectPhaseController { List canDelNodes=new ArrayList<>(); for (XmProjectPhase phase : delPhases) { - boolean canDelAllChild =xmProjectPhaseService.checkCanDelAllChild(phase,xmProjectPhases); + boolean canDelAllChild =xmProjectPhaseService.checkCanDelAllChild(phase,delPhases); if(!canDelAllChild) { hasChildList.add(phase.getPhaseName()); }else { @@ -456,7 +459,7 @@ public class XmProjectPhaseController { } } if(canDelNodes.size()>0){ - this.xmProjectPhaseService.doBatchDelete(delPhases); + this.xmProjectPhaseService.doBatchDelete(canDelNodes); } String noQxTips=""; if(noQxUsernames.size()>0){ diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java index d9236854..63466f37 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java @@ -64,8 +64,7 @@ public class XmProjectPhaseService extends BaseService { public int insert(XmProjectPhase parameter) { int i= super.insert(parameter); if(StringUtils.hasText(parameter.getParentPhaseId())){ - this.updatePhaseChildrenCntByPhaseId(parameter.getParentPhaseId()); - sumParents(parameter); + sumParents(parameter); } return i; @@ -76,7 +75,6 @@ public class XmProjectPhaseService extends BaseService { public int deleteByPk(XmProjectPhase parameter) { int i= super.deleteByPk(parameter); if(StringUtils.hasText(parameter.getParentPhaseId())){ - this.updatePhaseChildrenCntByPhaseId(parameter.getParentPhaseId()); sumParents(parameter); } return i; @@ -232,15 +230,6 @@ public class XmProjectPhaseService extends BaseService { if(editList.size()>0) { this.batchUpdate(editList); } - - List ids=new ArrayList<>(); - List list= xmProjectPhases.stream().filter(i->!xmProjectPhases.stream().filter(k->k.getId().equals(i.getParentPhaseId())).findAny().isPresent()).collect(Collectors.toList()); - list=list.stream().filter(i->StringUtils.hasText(i.getParentPhaseId())).collect(Collectors.toList()); - ids=list.stream().map(i->i.getParentPhaseId()).collect(Collectors.toList()); - ids=ids.stream().collect(Collectors.toSet()).stream().collect(Collectors.toList()); - if(list.size()>0){ - this.updateChildrenCntByIds(ids); - } this.batchSumParents(xmProjectPhases.stream().map(i->(XmProjectPhase)i).collect(Collectors.toList())); } @@ -258,11 +247,6 @@ public class XmProjectPhaseService extends BaseService { } } super.batchInsert(xmProjectPhases); - List list= xmProjectPhases.stream().filter(i->!xmProjectPhases.stream().filter(k->k.getId().equals(i.getParentPhaseId())).findAny().isPresent()).collect(Collectors.toList()); - list=list.stream().filter(i->StringUtils.hasText(i.getParentPhaseId())).collect(Collectors.toList()); - if(list.size()>0){ - this.updateChildrenCntByIds(list.stream().map(i->i.getParentPhaseId()).collect(Collectors.toSet()).stream().collect(Collectors.toList())); - } batchSumParents(xmProjectPhases); } @@ -464,5 +448,15 @@ public class XmProjectPhaseService extends BaseService { } } + + @Transactional + public void editByPk(XmProjectPhase xmProjectPhase) { + super.updateByPk(xmProjectPhase); + this.sumParents(xmProjectPhase); + } + + public List selectListByIds(List ids) { + return super.selectList("selectListByIds",ids); + } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml index dea0acc0..3092f9c8 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectPhaseMapper.xml @@ -170,6 +170,12 @@ and res.ntype='1' +