diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java index 06c4aa71..a5e52797 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java @@ -8,9 +8,7 @@ import com.mdp.mybatis.PageUtils; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.xm.core.entity.XmIteration; -import com.xm.core.entity.XmIterationMenu; import com.xm.core.entity.XmMenu; -import com.xm.core.service.XmIterationMenuService; import com.xm.core.service.XmMenuService; import com.xm.core.service.push.XmMenuPushMsgService; import com.xm.core.vo.XmIterationMenuVo; @@ -50,44 +48,7 @@ public class XmIterationMenuController { @Autowired XmMenuService xmMenuService; - - - - /** - @ApiOperation( value = "新增一条迭代定义信息",notes="addXmIterationMenu,主键如果为空,后台自动生成") - @ApiResponses({ - @ApiResponse(code = 200,response=XmIterationMenu.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") - }) - @RequestMapping(value="/add",method=RequestMethod.POST) - public Map addXmIterationMenu(@RequestBody XmIterationMenu xmIterationMenu) { - Map m = new HashMap<>(); - Tips tips=new Tips("成功新增一条数据"); - try{ - if(StringUtils.isEmpty(xmIterationMenu.getId())) { - xmIterationMenu.setId(xmIterationMenuService.createKey("id")); - }else{ - XmIterationMenu xmIterationMenuQuery = new XmIterationMenu(xmIterationMenu.getId()); - if(xmIterationMenuService.countByWhere(xmIterationMenuQuery)>0){ - tips.setFailureMsg("编号重复,请修改编号再提交"); - m.put("tips", tips); - return m; - } - } - xmIterationMenuService.insert(xmIterationMenu); - m.put("data",xmIterationMenu); - }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="delXmIterationMenu,仅需要上传主键字段") @ApiResponses({ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") @@ -97,33 +58,7 @@ public class XmIterationMenuController { Map m = new HashMap<>(); Tips tips=new Tips("成功删除一条数据"); try{ - xmMenuService.batchUnIteration(xmIterationMenus); - User user = LoginUtils.getCurrentUserInfo(); - this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】移出迭代"); - }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="editXmIterationMenu") - @ApiResponses({ - @ApiResponse(code = 200,response=XmIterationMenu.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") - }) - @RequestMapping(value="/edit",method=RequestMethod.POST) - public Map editXmIterationMenu(@RequestBody XmIterationMenu xmIterationMenu) { - Map m = new HashMap<>(); - Tips tips=new Tips("成功更新一条数据"); - try{ - xmIterationMenuService.updateByPk(xmIterationMenu); - m.put("data",xmIterationMenu); + return batchDelXmIterationMenu(xmIterationMenus); }catch (BizException e) { tips=e.getTips(); logger.error("",e); @@ -134,11 +69,8 @@ public class XmIterationMenuController { m.put("tips", tips); return m; } - */ - - /***/ @ApiOperation( value = "根据主键列表批量删除迭代定义信息",notes="batchDelXmIterationMenu,仅需要上传主键字段") @ApiResponses({ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") @@ -146,13 +78,52 @@ public class XmIterationMenuController { @RequestMapping(value="/batchDel",method=RequestMethod.POST) public Map batchDelXmIterationMenu(@RequestBody XmIterationMenuVo xmIterationMenus) { Map m = new HashMap<>(); - Tips tips=new Tips("成功删除"+xmIterationMenus.getMenuIds().size()+"条数据"); + Tips tips=new Tips("成功将需求移出迭代"); try{ - xmMenuService.batchUnIteration(xmIterationMenus); - - User user = LoginUtils.getCurrentUserInfo(); - this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】移出迭代"); - + List menuIds=xmIterationMenus.getMenuIds(); + if(menuIds==null || menuIds.size()==0){ + return ResponseHelper.failed("menuIds-0","需求编号不能为空"); + } + List menus=xmMenuService.selectListByIds(menuIds); + if(menus==null || menus.size()==0){ + return ResponseHelper.failed("menus-0","需求已不存在"); + } + String productId=menus.get(0).getProductId(); + if(menus.stream().filter(i->!productId.equals(i.getProductId())).findAny().isPresent()){ + return ResponseHelper.failed("productId-0","批量操作的需求必须是同一个产品下的需求。"); + } + List notJoins=new ArrayList<>(); + List status7=new ArrayList<>(); + List canDels=new ArrayList<>(); + for (XmMenu menu : menus) { + if(!StringUtils.hasText(menu.getIterationId())){ + notJoins.add(menu); + continue; + } + if("7".equals(menu.getStatus())){ + status7.add(menu); + continue; + } + canDels.add(menu); + } + List msgs=new ArrayList<>(); + if(canDels.size()>0){ + msgs.add("成功将"+canDels.size()+"个需求移出迭代"); + xmIterationMenus.setMenuIds(canDels.stream().map(i->i.getMenuId()).collect(Collectors.toList())); + xmMenuService.batchUnIteration(xmIterationMenus); + //this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】加入迭代"); + } + if(status7.size()>0){ + msgs.add("有"+status7.size()+"个需求状态为已上线,不能移出迭代。【"+status7.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】"); + } + if(notJoins.size()>0){ + msgs.add("有"+notJoins.size()+"个需求未加入迭代,无需移出。【"+notJoins.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】"); + } + if(canDels.size()==0){ + tips.setFailureMsg(msgs.stream().collect(Collectors.joining("\n"))); + }else { + tips.setOkMsg(msgs.stream().collect(Collectors.joining("\n"))); + } }catch (BizException e) { tips=e.getTips(); logger.error("",e); @@ -176,23 +147,54 @@ public class XmIterationMenuController { return ResponseHelper.failed("menuIds-0","需求编号不能为空"); } List menus=xmMenuService.selectListByIds(menuIds); - List hadJoin=menus.stream().filter(i->StringUtils.hasText(i.getIterationId())).collect(Collectors.toList()); - List msgs=new ArrayList<>(); - if(menus!=null && menus.size()==menuIds.size()){ - return ResponseHelper.failed("menus-had-iteration","需求全部都已加入迭代,不能重复加入。"); + if(menus==null || menus.size()==0){ + return ResponseHelper.failed("menus-0","需求已不存在"); + } + String productId=menus.get(0).getProductId(); + if(menus.stream().filter(i->!productId.equals(i.getProductId())).findAny().isPresent()){ + return ResponseHelper.failed("productId-0","批量操作的需求必须是同一个产品下的需求。"); } - List menuNames = menus.stream().map(XmMenu::getMenuName).collect(Collectors.toList()); - String menusNameStr=StringUtils.arrayToDelimitedString(menuNames.toArray(),","); - msgs.add("以下需求已加入迭代计划,不能重复加入。"+menusNameStr); + List hadJoin=new ArrayList<>(); + List ntype1=new ArrayList<>(); + List status789=new ArrayList<>(); + List canAdds=new ArrayList<>(); + for (XmMenu menu : menus) { + if(StringUtils.hasText(menu.getIterationId())){ + hadJoin.add(menu); + continue; + } + if("1".equals(menu.getNtype())){ + ntype1.add(menu); + continue; + } + if("7".equals(menu.getStatus())||"8".equals(menu.getStatus())||"9".equals(menu.getStatus())){ + status789.add(menu); + continue; + } + canAdds.add(menu); + } + List msgs=new ArrayList<>(); + if(canAdds.size()>0){ + msgs.add("成功将"+canAdds.size()+"个需求加入迭代"); + xmIterationMenus.setMenuIds(canAdds.stream().map(i->i.getMenuId()).collect(Collectors.toList())); xmMenuService.batchIteration(xmIterationMenus); + //this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】加入迭代"); + } + if(status789.size()>0){ + msgs.add("有"+status789.size()+"个需求状态为已上线、已下线、已删除状态,不能加入迭代。【"+status789.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】"); + } + if(hadJoin.size()>0){ + msgs.add("有"+hadJoin.size()+"个需求已加入迭代,不能重复加入。【"+hadJoin.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】"); + } + if(ntype1.size()>0){ + msgs.add("有"+ntype1.size()+"个为需求集,不用加入迭代。【"+ntype1.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】"); + } + if(canAdds.size()==0){ + tips.setFailureMsg(msgs.stream().collect(Collectors.joining("\n"))); + }else { + tips.setOkMsg(msgs.stream().collect(Collectors.joining("\n"))); + } - User user = LoginUtils.getCurrentUserInfo(); - - for (XmIterationMenu xmIterationMenu : xmIterationMenus) { - - this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】加入迭代"); - - } }catch (BizException e) { tips=e.getTips(); logger.error("",e);