From 3b997193bd45da3eae57029f05073c2b3c2a6a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Thu, 17 Feb 2022 23:51:03 +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 --- .../com/xm/core/ctrl/XmMenuController.java | 15 +++--- .../core/ctrl/XmProjectPhaseController.java | 20 +++---- .../com/xm/core/ctrl/XmTaskController.java | 24 +++++---- .../com/xm/core/service/XmMenuService.java | 53 +++++++++++++++++- .../core/service/XmProjectPhaseService.java | 54 ++++++++++++++++++- .../com/xm/core/service/XmTaskService.java | 43 ++++++++++++--- .../mapper/xm/core/dao/XmMenuMapper.xml | 17 ++++++ .../xm/core/dao/XmProjectPhaseMapper.xml | 15 ++++++ .../mapper/xm/core/dao/XmTaskMapper.xml | 15 ++++++ 9 files changed, 218 insertions(+), 38 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java index 8e42e520..ae437a31 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java @@ -9,6 +9,7 @@ import com.mdp.qx.HasQx; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.xm.core.entity.XmMenu; +import com.xm.core.entity.XmProjectPhase; import com.xm.core.entity.XmTask; import com.xm.core.service.XmMenuService; import com.xm.core.service.XmTaskService; @@ -24,6 +25,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; + /** * url编制采用rest风格,如对XM.xm_menu 项目菜单表的操作有增删改查,对应的url分别为:
* 新增: xm/xmMenu/add
@@ -168,9 +171,7 @@ public class XmMenuController { xmMenu.setMmUsername(user.getUsername()); } xmMenuService.insert(xmMenu); - if(StringUtils.hasText(xmMenu.getPmenuId())){ - this.xmMenuService.updateMenuChildrenCntByMenuId(xmMenu.getPmenuId()); - } + m.put("data",xmMenu); }catch (BizException e) { tips=e.getTips(); @@ -208,9 +209,6 @@ public class XmMenuController { tips.setFailureMsg("存在"+childCount+"个子故事关联该故事,不允许删除"); }else { xmMenuService.deleteByPk(xmMenu); - if(StringUtils.hasText(xmMenu.getPmenuId())){ - this.xmMenuService.updateMenuChildrenCntByMenuId(xmMenu.getPmenuId()); - } } } }catch (BizException e) { @@ -305,7 +303,7 @@ public class XmMenuController { } } if(canDelList.size()>0) { - xmMenuService.batchDelete(canDelList); + xmMenuService.doBatchDelete(canDelList); } String msg="成功删除"+canDelList.size()+"个故事信息"; if(hasTasksMenus.size()>0 ) { @@ -336,8 +334,7 @@ public class XmMenuController { try{ if(xmMenus.size()>0) { - this.xmMenuService.batchInsert(xmMenus); - + this.xmMenuService.doBatchInsert(xmMenus); }else { tips.setFailureMsg("没有数据可以新增,请上送数据"); } 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 72ba6c13..bc965237 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 @@ -10,6 +10,7 @@ import com.mdp.qx.HasQx; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.xm.core.entity.XmProjectPhase; +import com.xm.core.entity.XmTask; import com.xm.core.service.XmProjectGroupService; import com.xm.core.service.XmProjectPhaseService; import com.xm.core.service.XmProjectService; @@ -28,6 +29,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; + /** * url编制采用rest风格,如对XM.xm_project_phase 项目阶段模板的操作有增删改查,对应的url分别为:
* 新增: xm/xmProjectPhase/add
@@ -230,9 +233,6 @@ public class XmProjectPhaseController { Tips judgetTips=xmProjectPhaseService.judgetBudget(projectId, phaseBudgetCost,phaseBudgetInnerUserAt,phaseBudgetOutUserAt,phaseBudgetNouserAt,excludePhaseIds); if(judgetTips.isOk()) { xmProjectPhaseService.insert(xmProjectPhase); - if(StringUtils.hasText(xmProjectPhase.getParentPhaseId())){ - this.xmProjectPhaseService.updatePhaseChildrenCntByPhaseId(xmProjectPhase.getParentPhaseId()); - } xmRecordService.addXmPhaseRecord(projectId, xmProjectPhase.getId(), "项目-阶段计划-新增计划", "新增阶段计划"+xmProjectPhase.getPhaseName(),JSON.toJSONString(xmProjectPhase),null); m.put("data",xmProjectPhase); }else { @@ -285,9 +285,7 @@ public class XmProjectPhaseController { }else { xmProjectPhaseService.deleteByPk(xmProjectPhase); - if(StringUtils.hasText(xmProjectPhase.getParentPhaseId())){ - this.xmProjectPhaseService.updatePhaseChildrenCntByPhaseId(xmProjectPhase.getParentPhaseId()); - } + xmRecordService.addXmPhaseRecord(xmProjectPhase.getProjectId(), xmProjectPhase.getId(), "项目-阶段计划-删除计划", "删除阶段计划"+xmProjectPhase.getPhaseName(),JSON.toJSONString(xmProjectPhase),null); } } @@ -398,6 +396,7 @@ public class XmProjectPhaseController { return m; } List noQxUsernames=new ArrayList<>(); + List delPhases=new ArrayList<>(); for (XmProjectPhase phase : xmProjectPhases) { boolean meIsHisTeamHead=groupService.checkUserIsOtherUserTeamHead(groupVoList,phase.getMngUserid(),user.getUserid()); if( !meIsPm && !meIsHisTeamHead ){ @@ -412,14 +411,17 @@ public class XmProjectPhaseController { Long checkExistsChildren =xmProjectPhaseService.checkExistsChildren(phase.getId()); if(checkExistsChildren>0) { hasChildList.add(phase.getPhaseName()); - }else { - xmProjectPhaseService.deleteByPk(phase); + }else { + delPhases.add(phase); delCount=delCount+1; xmRecordService.addXmPhaseRecord(phase.getProjectId(), phase.getId(), "项目-阶段计划-删除计划", "删除阶段计划"+phase.getPhaseName(),JSON.toJSONString(phase),null); } } } + if(delPhases.size()>0){ + this.xmProjectPhaseService.doBatchDelete(delPhases); + } String noQxTips=""; if(noQxUsernames.size()>0){ noQxTips="您无权删除以下人员所负责的阶段计划【"+StringUtils.arrayToCommaDelimitedString(noQxUsernames.toArray())+"】"; @@ -494,7 +496,7 @@ public class XmProjectPhaseController { Tips judgetTips=xmProjectPhaseService.judgetBudget(projectId, phaseBudgetCost,phaseBudgetInnerUserAt,phaseBudgetOutUserAt,phaseBudgetNouserAt,null); if(judgetTips.isOk()) { - xmProjectPhaseService.batchInsert(xmProjectPhases); + xmProjectPhaseService.doBatchInsert(xmProjectPhases); for (XmProjectPhase phase : xmProjectPhases) { xmRecordService.addXmPhaseRecord(phase.getProjectId(), phase.getId(), "项目-阶段计划-新增计划", "新增阶段计划"+phase.getPhaseName(),JSON.toJSONString(phase),null); diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java index f63bcbc1..1c9478f4 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java @@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * url编制采用rest风格,如对XM.xm_task xm_task的操作有增删改查,对应的url分别为:
@@ -306,9 +307,6 @@ public class XmTaskController { Tips judgetTips=xmTaskService.judgetBudget(projectPhaseId, taskBudgetCost,taskBudgetInnerUserAt,taskBudgetOutUserAt,taskBudgetNouserAt,null); if(judgetTips.isOk()) { xmTaskVo = xmTaskService.addTask(xmTaskVo); - if(StringUtils.hasText(xmTaskVo.getParentTaskid())){ - xmTaskService.updateTaskChildrenCntByTaskId(xmTaskVo.getParentTaskid()); - } }else { tips=judgetTips; } @@ -433,13 +431,8 @@ public class XmTaskController { m.put("tips", tips); return m; } - if(StringUtils.hasText(xmTaskDb.getParentTaskid())){ - xmTaskService.updateTaskChildrenCntByTaskId(xmTaskDb.getParentTaskid()); - } xmTaskService.deleteTask(xmTask); - if(StringUtils.hasText(xmTaskDb.getParentTaskid())){ - xmTaskService.updateTaskChildrenCntByTaskId(xmTaskDb.getParentTaskid()); - } + }catch (BizException e) { tips=e.getTips(); logger.error("",e); @@ -792,11 +785,17 @@ public class XmTaskController { Tips judgetTips=xmTaskService.judgetBudget(projectPhaseId, taskBudgetCost,taskBudgetInnerUserAt,taskBudgetOutUserAt,taskBudgetNouserAt,excludeTaskIds); if(judgetTips.isOk()) { + for (XmTask task : xmTasks) { + task.setChildrenCnt( Integer.valueOf(xmTasks.stream().filter(i->task.getId().equals(i.getParentTaskid())).count()+"")); + } + xmTaskService.batchImportFromTemplate(xmTasks); + for (XmTask t : xmTasks) { xmRecordService.addXmTaskRecord(t.getProjectId(), t.getId(), "项目-任务-批量新增任务", "新增任务"+t.getName(),JSON.toJSONString(t),null); } + }else { tips=judgetTips; } @@ -943,13 +942,18 @@ public class XmTaskController { } List noDelList=new ArrayList<>(); + List delTasks=new ArrayList<>(); allowTasks.forEach(t->{ try { - xmTaskService.deleteTask(t); + delTasks.add(t); } catch (BizException e) { noDelList.add(t.getName()); } }); + if(delTasks.size()>0){ + this.xmTaskService.doBatchDelete(delTasks); + } + if(noDelList.size()>0 && allowTasks.size()>noDelList.size()) { tips.setOkMsg("成功删除"+(allowTasks.size()-noDelList.size())+"条任务,其中以下任务可能存在未结算的执行人或者存在子任务,不允许删除"+StringUtils.arrayToCommaDelimitedString(noDelList.toArray())); }if(noDelList.size()>0 && allowTasks.size()==noDelList.size()) { diff --git a/xm-core/src/main/java/com/xm/core/service/XmMenuService.java b/xm-core/src/main/java/com/xm/core/service/XmMenuService.java index 2d6e47ab..e3c4920e 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmMenuService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmMenuService.java @@ -5,10 +5,13 @@ import com.xm.core.entity.XmMenu; import com.xm.core.vo.XmMenuVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; + /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com.qqkj 顶级模块 oa 大模块 xm 小模块
@@ -40,7 +43,9 @@ public class XmMenuService extends BaseService { public void updateMenuChildrenCntByMenuId(String menuId){ super.update("updateMenuChildrenCntByMenuId",menuId); } - + public void updateChildrenCntByIds(List ids) { + super.update("updateChildrenCntByIds",ids); + } @Transactional public void batchInsertOrUpdate(List xmMenus) { List addList=new ArrayList<>(); @@ -54,6 +59,12 @@ public class XmMenuService extends BaseService { } if(addList.size()>0) { this.batchInsert(addList); + + List list= addList.stream().filter(i->!addList.stream().filter(k->k.getMenuId().equals(i.getPmenuId())).findAny().isPresent()).collect(Collectors.toList()); + list=list.stream().filter(i-> StringUtils.hasText(i.getPmenuId())).collect(Collectors.toList()); + if(list.size()>0){ + this.updateChildrenCntByIds(list.stream().map(i->i.getPmenuId()).collect(Collectors.toSet()).stream().collect(Collectors.toList())); + } } if(editList.size()>0) { this.batchUpdate(editList); @@ -68,5 +79,45 @@ public class XmMenuService extends BaseService { return this.selectList("selectExistIterationMenus",map("menuIds",menuIds)); } + + @Transactional + public int insert(XmMenu xmMenu) { + int i= super.insert(xmMenu); + if(StringUtils.hasText(xmMenu.getPmenuId())){ + this.updateMenuChildrenCntByMenuId(xmMenu.getPmenuId()); + } + return i; + } + + @Transactional + public int updateByPk(XmMenu xmMenu) { + int i= super.updateByPk(xmMenu); + + if(StringUtils.hasText(xmMenu.getPmenuId())){ + this.updateMenuChildrenCntByMenuId(xmMenu.getPmenuId()); + } + return i; + } + + @Transactional + public void doBatchInsert(List xmMenus) { + super.batchInsert(xmMenus); + List list= xmMenus.stream().filter(i->!xmMenus.stream().filter(k->k.getMenuId().equals(i.getPmenuId())).findAny().isPresent()).collect(Collectors.toList()); + list=list.stream().filter(i->StringUtils.hasText(i.getPmenuId())).collect(Collectors.toList()); + if(list.size()>0){ + this.updateChildrenCntByIds(list.stream().map(i->i.getPmenuId()).collect(Collectors.toSet()).stream().collect(Collectors.toList())); + } + } + + @Transactional + public void doBatchDelete(List canDelList) { + super.batchDelete(canDelList); + + List list= canDelList.stream().filter(i->!canDelList.stream().filter(k->k.getMenuId().equals(i.getPmenuId())).findAny().isPresent()).collect(Collectors.toList()); + list=list.stream().filter(i->StringUtils.hasText(i.getPmenuId())).collect(Collectors.toList()); + if(list.size()>0){ + this.updateChildrenCntByIds(list.stream().map(i->i.getPmenuId()).collect(Collectors.toSet()).stream().collect(Collectors.toList())); + } + } } 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 ad6bed6f..58576796 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 @@ -11,12 +11,15 @@ import com.xm.core.vo.XmProjectPhaseVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; + /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com.qqkj 顶级模块 oa 大模块 xm 小模块
@@ -58,6 +61,25 @@ public class XmProjectPhaseService extends BaseService { } return tips; } + @Transactional + public int insert(XmProjectPhase parameter) { + int i= super.insert(parameter); + if(StringUtils.hasText(parameter.getParentPhaseId())){ + this.updatePhaseChildrenCntByPhaseId(parameter.getParentPhaseId()); + } + return i; + } + + + @Transactional + public int deleteByPk(XmProjectPhase parameter) { + int i= super.deleteByPk(parameter); + if(StringUtils.hasText(parameter.getParentPhaseId())){ + this.updatePhaseChildrenCntByPhaseId(parameter.getParentPhaseId()); + } + return i; + } + /** * 判断新增预算是否超出项目总预算 * @param projectId @@ -121,7 +143,18 @@ public class XmProjectPhaseService extends BaseService { } } - + @Transactional + public int[] doBatchDelete(List batchValues) { + int[] result= super.batchDelete(batchValues); + + List list= batchValues.stream().filter(i->!batchValues.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())); + } + return result; + } + public XmProjectPhase autoCalcWorkload(XmProjectPhase phase) { BigDecimal phaseBudgetHours=NumberUtil.getBigDecimal(phase.getPhaseBudgetHours(),BigDecimal.ZERO); BigDecimal phaseBudgetInnerUserCnt=NumberUtil.getBigDecimal(phase.getPhaseBudgetInnerUserCnt(),BigDecimal.ZERO); @@ -145,7 +178,9 @@ public class XmProjectPhaseService extends BaseService { Long i= this.selectOne("checkExistsTask", phaseId); return i; } - + public void updateChildrenCntByIds(List ids) { + super.update("updateChildrenCntByIds",ids); + } public void updatePhaseChildrenCntByPhaseId(String phaseId){ super.update("updatePhaseChildrenCntByPhaseId",phaseId); @@ -169,6 +204,11 @@ public class XmProjectPhaseService extends BaseService { } if(addList.size()>0) { this.batchInsert(addList); + 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())); + } } if(editList.size()>0) { this.batchUpdate(editList); @@ -178,5 +218,15 @@ public class XmProjectPhaseService extends BaseService { public void calcKeyPaths(String projectId) { } + + @Transactional + public void doBatchInsert(List xmProjectPhases) { + 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())); + } + } } diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java index ba0b75ed..95fbab77 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java @@ -21,6 +21,7 @@ import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.util.*; import java.util.function.Consumer; +import java.util.stream.Collectors; /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
@@ -46,9 +47,18 @@ public class XmTaskService extends BaseService { @Autowired XmTaskSkillService xmTaskSkillService; - - - + + @Transactional + public int[] doBatchDelete(List batchValues) { + int[] i2= super.batchDelete(batchValues); + List list= batchValues.stream().filter(i->!batchValues.stream().filter(k->k.getId().equals(i.getParentTaskid())).findAny().isPresent()).collect(Collectors.toList()); + list=list.stream().filter(i->StringUtils.hasText(i.getParentTaskid())).collect(Collectors.toList()); + if(list.size()>0){ + this.updateChildrenCntByIds(list.stream().map(i->i.getParentTaskid()).collect(Collectors.toSet()).stream().collect(Collectors.toList())); + } + return i2; + } + public Map selectTotalPhaseAndTaskBudgetCost(String projectPhaseId, List excludeTaskIds){ Map p=new HashMap<>(); p.put("projectPhaseId", projectPhaseId); @@ -57,9 +67,7 @@ public class XmTaskService extends BaseService { } /** * 判断新增预算是否超出项目总预算 - * @param projectId * @param addTaskBudgetCost - * @param excludePhaseId * @return */ public Tips judgetBudget(String projectPhaseId,BigDecimal addTaskBudgetCost,BigDecimal addTaskBudgetInnerUserAt,BigDecimal addTaskBudgetOutUserAt,BigDecimal addTaskBudgetNouserAt,List excludeTaskIds){ @@ -154,7 +162,10 @@ public class XmTaskService extends BaseService { XmTask xmTask = new XmTask(); BeanUtils.copyProperties(xmTaskVo,xmTask); this.insert(xmTask); - + + if(StringUtils.hasText(xmTask.getParentTaskid())){ + this.updateTaskChildrenCntByTaskId(xmTask.getParentTaskid()); + } //新增/更新附件 //xmAttachmentService.insertOrUpdate(xmTaskVo.getId(),TYPE,xmTaskVo.getAttachment()); @@ -192,7 +203,9 @@ public class XmTaskService extends BaseService { throw new BizException("有未结算的执行人,不允许删除该任务"); } this.deleteByPk(xmTask); - + if(StringUtils.hasText(xmTask.getParentTaskid())){ + this.updateTaskChildrenCntByTaskId(xmTask.getParentTaskid()); + } xmRecordService.addXmTaskRecord(xmTask.getProjectId(), xmTask.getId(), "项目-任务-删除任务", "删除任务"+xmTask.getName()); } @@ -382,6 +395,12 @@ public class XmTaskService extends BaseService { xmTaskSkillService.batchInsert(xmTaskSkillList); } + + List list= xmTasks.stream().filter(i->!xmTasks.stream().filter(k->k.getId().equals(i.getParentTaskid())).findAny().isPresent()).collect(Collectors.toList()); + list=list.stream().filter(i->StringUtils.hasText(i.getParentTaskid())).collect(Collectors.toList()); + if(list.size()>0){ + this.updateChildrenCntByIds(list.stream().map(i->i.getParentTaskid()).collect(Collectors.toSet()).stream().collect(Collectors.toList())); + } } @@ -400,6 +419,12 @@ public class XmTaskService extends BaseService { public void batchInsertOrUpdate(List insertXmTasks,List editXmTasks) { if(insertXmTasks!=null && insertXmTasks.size()>0) { this.batchInsert(insertXmTasks); + List list= insertXmTasks.stream().filter(i->!insertXmTasks.stream().filter(k->k.getId().equals(i.getParentTaskid())).findAny().isPresent()).collect(Collectors.toList()); + list=list.stream().filter(i->StringUtils.hasText(i.getParentTaskid())).collect(Collectors.toList()); + if(list.size()>0){ + this.updateChildrenCntByIds(list.stream().map(i->i.getParentTaskid()).collect(Collectors.toSet()).stream().collect(Collectors.toList())); + } + } if(editXmTasks!=null && editXmTasks.size()>0) { this.batchUpdate(editXmTasks); @@ -410,6 +435,10 @@ public class XmTaskService extends BaseService { return this.selectOne("shareTaskDetail",xmTask); } + public void updateChildrenCntByIds(List ids) { + super.update("updateChildrenCntByIds",ids); + } + /** 请在此类添加自定义函数 */ } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml index 5164ed3a..f920331c 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml @@ -65,6 +65,23 @@ WHERE t.menu_id = #{menuId} + + + + + UPDATE xm_menu t + LEFT JOIN ( SELECT count( 1 ) AS children_cnt, tt.pmenu_id AS menu_id FROM xm_menu tt WHERE + (tt.pmenu_id) in + + ( #{item}) + + group by tt.pmenu_id ) t2 ON t2.menu_id = t.menu_id + SET t.children_cnt = ifnull( t2.children_cnt, 0 ) + WHERE (t.menu_id) in + + ( #{item}) + + 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 56ad7b59..bbaf46cc 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 @@ -72,6 +72,21 @@ WHERE t.id = #{id} + + + UPDATE xm_project_phase t + LEFT JOIN ( SELECT count( 1 ) AS children_cnt, tt.parent_phase_id AS id FROM xm_project_phase tt WHERE + (tt.parent_phase_id) in + + ( #{item}) + + group by tt.parent_phase_id ) t2 ON t2.id = t.id + SET t.children_cnt = ifnull( t2.children_cnt, 0 ) + WHERE (t.id) in + + ( #{item}) + + diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml index 10a46529..f8cddbe2 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml @@ -86,6 +86,21 @@ t.id = #{id} + + UPDATE xm_task t + LEFT JOIN ( SELECT count( 1 ) AS children_cnt, tt.parent_taskid AS id FROM xm_task tt WHERE + (tt.parent_taskid) in + + ( #{item}) + + group by tt.parent_taskid ) t2 ON t2.id = t.id + SET t.children_cnt = ifnull( t2.children_cnt, 0 ) + WHERE (t.id) in + + ( #{item}) + + +