diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java index f51dc0ae..f03c62e7 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectGroupController.java @@ -73,6 +73,11 @@ public class XmProjectGroupController { return m; } String projectId = xmProjectGroupVo.get(0).getProjectId(); + if(!StringUtils.hasText(projectId)){ + tips.setFailureMsg("项目编号projectId不能为空"); + m.put("tips", tips); + return m; + } tips= xmProjectGroupService.updateGroup(projectId,xmProjectGroupVo); //列出XmProjectGroup列表 //m.put("data",xmProjectGroupVo); m.put("tips", tips); diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java index 5e4a1757..75f06d8d 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java @@ -364,53 +364,7 @@ public class XmProjectGroupService extends BaseService { }); - if(delGroups.size()>0) { - delGroups.forEach(g->{ - - XmProjectGroupUser UserDel = new XmProjectGroupUser(); - UserDel.setGroupId(g.getId()); - xmProjectGroupUserService.delete("deleteByGroupId",UserDel); - XmProjectGroup delGroup=new XmProjectGroup(); - delGroup.setId(g.getId()); - this.deleteByPk(delGroup); - pushMsgService.pushChannelGroupRemoveMsg(user.getBranchId(), g.getId()); - xmRecordService.addXmGroupRecord(projectId, g.getId(),"项目-团队-删除小组", "删除小组["+g.getGroupName()+"]",g.getId(),null); - }); - - } - - if(xmProjectGroupVoAdd.size()>0) { - xmProjectGroupVoAdd.forEach(gvo -> { - gvo.setId(xmProjectGroupService.createKey("id")); - gvo.setProjectId(projectId); - XmProjectGroup g = new XmProjectGroup(); - BeanUtils.copyProperties(gvo,g); - xmProjectGroupService.insert(g); - List guser = gvo.getGroupUsers(); - List addGroupUsernames=new ArrayList<>(); - List> users=new ArrayList<>(); - if(guser != null && guser.size() > 0) { - guser.forEach(u -> { - Map userMap=new HashMap<>(); - userMap.put("userid", u.getUserid()); - userMap.put("username", u.getUsername()); - users.add(userMap); - u.setId(xmProjectGroupUserService.createKey("id")); - u.setGroupId(gvo.getId()); - u.setProjectId(projectId); - u.setJoinTime(new Date()); - u.setStatus("0"); - addGroupUsernames.add(u.getUsername()); - xmProjectGroupUserService.insert(u); - allUsersFromUi.add(u); - }); - } - pushMsgService.pushChannelGroupCreateMsg(user.getBranchId(),g.getProjectId(),g.getId(), g.getId(), g.getGroupName(), user.getUserid(), user.getUsername(), users,"新增小组["+gvo.getGroupName()+"]及以下组员:"+StringUtils.arrayToDelimitedString(addGroupUsernames.toArray(), ",")); - xmRecordService.addXmGroupRecord(projectId, gvo.getId(),"项目-团队-新增小组", "新增小组["+gvo.getGroupName()+"]及以下组员:"+StringUtils.arrayToDelimitedString(addGroupUsernames.toArray(), ","),JSON.toJSONString(gvo),null); - - }); - } if(allUsersAdd.size()>0) { xmProjectGroupUserService.batchInsert(allUsersAdd); @@ -452,7 +406,54 @@ public class XmProjectGroupService extends BaseService { } } - } + } + + if(delGroups.size()>0) { + delGroups.forEach(g->{ + + XmProjectGroupUser UserDel = new XmProjectGroupUser(); + UserDel.setGroupId(g.getId()); + xmProjectGroupUserService.delete("deleteByGroupId",UserDel); + XmProjectGroup delGroup=new XmProjectGroup(); + delGroup.setId(g.getId()); + this.deleteByPk(delGroup); + pushMsgService.pushChannelGroupRemoveMsg(user.getBranchId(), g.getId()); + xmRecordService.addXmGroupRecord(projectId, g.getId(),"项目-团队-删除小组", "删除小组["+g.getGroupName()+"]",g.getId(),null); + }); + + } + if(xmProjectGroupVoAdd.size()>0) { + xmProjectGroupVoAdd.forEach(gvo -> { + gvo.setId(xmProjectGroupService.createKey("id")); + gvo.setProjectId(projectId); + XmProjectGroup g = new XmProjectGroup(); + BeanUtils.copyProperties(gvo,g); + xmProjectGroupService.insert(g); + List guser = gvo.getGroupUsers(); + List addGroupUsernames=new ArrayList<>(); + List> users=new ArrayList<>(); + if(guser != null && guser.size() > 0) { + guser.forEach(u -> { + Map userMap=new HashMap<>(); + userMap.put("userid", u.getUserid()); + userMap.put("username", u.getUsername()); + users.add(userMap); + u.setId(xmProjectGroupUserService.createKey("id")); + u.setGroupId(gvo.getId()); + u.setProjectId(projectId); + u.setJoinTime(new Date()); + u.setStatus("0"); + addGroupUsernames.add(u.getUsername()); + xmProjectGroupUserService.insert(u); + allUsersFromUi.add(u); + }); + } + pushMsgService.pushChannelGroupCreateMsg(user.getBranchId(),g.getProjectId(),g.getId(), g.getId(), g.getGroupName(), user.getUserid(), user.getUsername(), users,"新增小组["+gvo.getGroupName()+"]及以下组员:"+StringUtils.arrayToDelimitedString(addGroupUsernames.toArray(), ",")); + + xmRecordService.addXmGroupRecord(projectId, gvo.getId(),"项目-团队-新增小组", "新增小组["+gvo.getGroupName()+"]及以下组员:"+StringUtils.arrayToDelimitedString(addGroupUsernames.toArray(), ","),JSON.toJSONString(gvo),null); + + }); + } groupCacheService.putGroups(projectId, null); Tips tips=new Tips("全部更新成功"); 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 3ace103c..961ad2d3 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 @@ -42,7 +42,7 @@ - and exists ( select 1 from XM.xm_task t where t.menu_id =res.id and t.project_id=#{projectId}) + and exists ( select 1 from XM.xm_task t where t.menu_id =res.menu_id and t.project_id=#{projectId}) and ( exists ( select 1 from XM.xm_menu m1 where m.mm_userid=#{compete} and m.product_id=res.product_id) @@ -63,7 +63,6 @@ - and plan.project_id=#{projectId} and exists ( select 1 from XM.xm_iteration_menu im where im.menu_id=res.menu_id and im.iteration_id=#{iterationId} @@ -77,6 +76,9 @@ exists ( select 1 from XM.xm_task t where t.menu_id=res.menu_id) + + and exists ( select 1 from XM.xm_task t where t.menu_id =res.menu_id and t.project_id=#{projectId}) + and ( exists ( select 1 from XM.xm_menu m1 where m.mm_userid=#{compete} and m.product_id=res.product_id) or exists ( select 1 from xm_product p where p.pm_userid=#{compete} and res.product_id=p.id)