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 6039a7fd..66593b82 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 @@ -273,6 +273,7 @@ public class XmMenuController { } xmMenuService.parentIdPathsCalcBeforeSave(xmMenu); xmMenu.setStatus("0"); + xmMenu.setChildrenCnt(0); xmMenuService.insert(xmMenu); xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"新增产品需求","新增需求"+xmMenu.getMenuName()); m.put("data",xmMenu); @@ -305,9 +306,15 @@ public class XmMenuController { if(taskCount>0) { tips.setFailureMsg("存在"+taskCount+"个任务关联该需求,不允许删除"); }else { - xmMenu=this.xmMenuService.selectOneObject(xmMenu); + List ids=new ArrayList<>(); + ids.add(xmMenu.getMenuId()); + List xmMenus=this.xmMenuService.selectListByIdsWithsChildrenCnt(ids); + if(xmMenus==null || xmMenus.size()==0){ + return ResponseHelper.failed("data-0","数据不存在"); + } + xmMenu=xmMenus.get(0); if(xmMenu.getChildrenCnt()!=null && xmMenu.getChildrenCnt()>0){ - return ResponseHelper.failed("hadChild","该需求池有子需求,不能删除"); + return ResponseHelper.failed("hadChild","该需求有子需求,不能删除"); } if(!groupService.calcCanOpMenus(xmMenu)){ return ResponseHelper.failed("noqx","您无权删除此需求。"); @@ -440,7 +447,7 @@ public class XmMenuController { List noExists=new ArrayList<>(); List hasChildMenus=new ArrayList<>(); List canDelList=new ArrayList<>(); - List xmMenusDb=this.xmMenuService.selectListByIds(xmMenus.stream().map(i->i.getMenuId()).collect(Collectors.toList())); + List xmMenusDb=this.xmMenuService.selectListByIdsWithsChildrenCnt(xmMenus.stream().map(i->i.getMenuId()).collect(Collectors.toList())); for (XmMenu xmMenu : xmMenusDb) { boolean canDel=this.xmMenuService.checkCanDelAllChild(xmMenu,xmMenusDb); if(canDel){ 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 ffd37787..5a90edc1 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 @@ -6,6 +6,7 @@ import com.mdp.audit.log.client.annotation.AuditLog; import com.mdp.audit.log.client.annotation.OperType; import com.mdp.core.entity.Tips; import com.mdp.core.err.BizException; +import com.mdp.core.utils.BaseUtils; import com.mdp.core.utils.NumberUtil; import com.mdp.core.utils.RequestUtils; import com.mdp.core.utils.ResponseHelper; @@ -279,6 +280,55 @@ public class XmTaskController { return m; } + /***/ + @ApiOperation( value = "根据主键批量修改修改任务中的某些字段信息",notes="editXmMenu") + @ApiResponses({ + @ApiResponse(code = 200,response=XmMenu.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @HasQx(value = "xm_core_xmTask_editSomeFields",name = "批量修改修改任务中的某些字段",categoryId = "admin-xm",categoryName = "管理端-项目管理系统") + @RequestMapping(value="/editSomeFields",method=RequestMethod.POST) + public Map editSomeFields(@RequestBody Map xmTaskMap) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功更新一条数据"); + try{ + List ids= (List) xmTaskMap.get("ids"); + + if(ids==null || ids.size()==0){ + ResponseHelper.failed("ids-0","ids不能为空"); + } + XmTask xmTask= BaseUtils.fromMap(xmTaskMap,XmTask.class); + List xmTasksDb=xmTaskService.selectListByIds(ids); + if(xmTasksDb==null ||xmTasksDb.size()==0){ + ResponseHelper.failed("tasks-0","该任务已不存在"); + } + List can=new ArrayList<>(); + List no=new ArrayList<>(); + if(can.size()<=0){ + return ResponseHelper.failed("noqx","您无权修改选中的任务。"); + } + Set fields=new HashSet<>(); + fields.add("childrenCnt"); + fields.add("ntype"); + fields.add("pidPaths"); + for (String fieldName : xmTaskMap.keySet()) { + if(fields.contains(fieldName)){ + return ResponseHelper.failed(fieldName+"-no-edit",fieldName+"不允许修改"); + } + } + xmTaskService.editSomeFields(xmTaskMap); + xmRecordService.addXmTaskRecord(xmTask.getProjectId(),xmTask.getId(),"修改项目任务","修改任务"+xmTask.getMenuName(),"", JSON.toJSONString(xmTask)); + + //m.put("data",xmMenu); + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } @ApiOperation( value = "查询任务的信息详情,免登录",notes="taskDetail,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}") @ApiResponses({ 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 b888a2cc..ef8dd0c1 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 @@ -305,5 +305,9 @@ public class XmMenuService extends BaseService { public void editSomeFields(Map xmMenuMap) { super.update("editSomeFields",xmMenuMap); } + + public List selectListByIdsWithsChildrenCnt(List ids) { + return super.selectList("selectListByIdsWithsChildrenCnt",ids); + } } 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 250f66cc..8a07e633 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 @@ -721,5 +721,9 @@ public class XmTaskService extends BaseService { public void updateActCostAndActWorkloadAfterSettle(String taskId,String toTaskState) { super.update("updateActCostAndActWorkloadAfterSettle",map("id",taskId,"taskState",toTaskState)); } + + public void editSomeFields(Map xmTaskMap) { + super.update("editSomeFields",xmTaskMap); + } } 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 7baed9c3..9fabd758 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 @@ -184,6 +184,15 @@ #{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 3f6f7b24..b67c598b 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 @@ -355,6 +355,17 @@ res.task_state=ifnull(#{taskState},res.task_state) where id=#{id} + + + update xm_task + + + + where id in + + #{item} + +