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})
+
+
+