From 368bf17aa614f61e74c95151755f68d5b33053dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Tue, 17 Jan 2023 00:11:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=95=E6=A0=87=E7=9B=B4=E9=80=9A=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/ctrl/XmGroupController.java | 121 +++++++++++++----- .../com/xm/core/service/XmGroupService.java | 70 ++++++++-- 2 files changed, 154 insertions(+), 37 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmGroupController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmGroupController.java index 0a516d26..179eda4d 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmGroupController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmGroupController.java @@ -11,6 +11,7 @@ import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.swagger.ApiEntityParams; import com.xm.core.entity.XmGroup; +import com.xm.core.entity.XmProduct; import com.xm.core.entity.XmProject; import com.xm.core.service.XmGroupService; import com.xm.core.service.XmProductService; @@ -31,7 +32,6 @@ 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_group xm_group的操作有增删改查,对应的url分别为:
@@ -94,15 +94,22 @@ public class XmGroupController { return ResponseHelper.failed("id-0","小组编号不能为空"); } User user=LoginUtils.getCurrentUserInfo(); - XmGroup groupDb=this.xmGroupService.selectOneObject(new XmGroup(group.getId())); + XmGroup groupDb=this.xmGroupService.selectOneById( group.getId()); if(groupDb==null){ return ResponseHelper.failed("data-0","小组已不存在。"); } xmGroupService.parentIdPathsCalcBeforeSave(group); tips= xmGroupService.updateGroup(group,groupDb); //列出XmProjectGroup列表 - xmGroupCacheService.clearProjectGroup(groupDb.getProjectId()); - xmRecordService.addXmGroupRecord(groupDb.getProjectId(),groupDb.getId(),"团队-小组-修改小组","修改小组信息【"+groupDb.getGroupName()+"】"); - m.put("tips", tips); + if("0".equals(groupDb.getPgClass())){ + xmGroupCacheService.clearProjectGroup(groupDb.getProjectId()); + xmRecordService.addXmGroupRecord(groupDb.getProjectId(),groupDb.getId(),"团队-小组-修改小组","修改小组信息【"+groupDb.getGroupName()+"】"); + + }else{ + xmGroupCacheService.clearProductGroup(groupDb.getProductId()); + xmRecordService.addXmProductRecord(groupDb.getProductId(),"团队-小组-修改小组","修改小组信息【"+groupDb.getGroupName()+"】"); + + } + m.put("tips", tips); return m; } @@ -127,7 +134,10 @@ public class XmGroupController { List xmGroupList=new ArrayList<>(); String iterationId= (String) params.get("iterationId"); String projectId= (String) params.get("projectId"); - if(StringUtils.hasText(projectId)){ + String productId= (String) params.get("productId"); + if(StringUtils.hasText(productId)){ + xmGroupList = xmGroupService.getProductGroupVoList(productId); //产品团队 + }else if(StringUtils.hasText(projectId)){ xmGroupList = xmGroupService.getProjectGroupVoList(projectId); //列出XmProjectGroup列表 }else if(StringUtils.hasText(iterationId)){ xmGroupList = xmGroupService.getProjectGroupVoListByIterationId(iterationId ); //列出XmProjectGroup列表 @@ -188,24 +198,51 @@ public class XmGroupController { Tips tips=new Tips("成功新增一条数据"); try{ User u = LoginUtils.getCurrentUserInfo(); - if(!StringUtils.hasText(xmGroup.getProjectId())){ - return ResponseHelper.failed("projectId-0","项目编号不能为空"); - } - XmProject project = xmProjectService.getProjectFromCache(xmGroup.getProjectId()); - if(project==null){ - return ResponseHelper.failed("project-0","项目已不存在"); - } - tips=this.xmGroupService.checkProjectStatus(project); - if(!tips.isOk()){ - return ResponseHelper.failed(tips); - } - Map projectAdmMap=xmGroupService.getProjectAdmUsers(project); - if(!projectAdmMap.containsKey(u.getUserid())) { - return ResponseHelper.failed("not-project-adm","您不是项目管理人员,不能创建小组。项目级助理以上人员可以创建小组。"); + + if(StringUtils.isEmpty(xmGroup.getPgClass())){ + return ResponseHelper.failed("pgClass-0","小组类型不能为空"); } - xmGroup.setProductId(null); + xmGroup.setBranchId(null); + if("0".equals(xmGroup.getPgClass())){ + if(!StringUtils.hasText(xmGroup.getProjectId())){ + return ResponseHelper.failed("projectId-0","项目编号不能为空"); + } + XmProject project = xmProjectService.getProjectFromCache(xmGroup.getProjectId()); + if(project==null){ + return ResponseHelper.failed("project-0","项目已不存在"); + } + tips=this.xmGroupService.checkProjectStatus(project); + if(!tips.isOk()){ + return ResponseHelper.failed(tips); + } + Map projectAdmMap=xmGroupService.getProjectAdmUsers(project); + if(!projectAdmMap.containsKey(u.getUserid())) { + return ResponseHelper.failed("not-project-adm","您不是项目管理人员,不能创建小组。项目级助理以上人员可以创建小组。"); + } + xmGroup.setProductId(null); - xmGroup.setBranchId(project.getBranchId()); + xmGroup.setBranchId(project.getBranchId()); + }else if("1".equals(xmGroup.getPgClass())){ + if(!StringUtils.hasText(xmGroup.getProductId())){ + return ResponseHelper.failed("productId-0","产品编号不能为空"); + } + XmProduct xmProduct = xmProductService.selectOneById(xmGroup.getProductId()); + if(xmProduct==null){ + return ResponseHelper.failed("product-0","产品已不存在"); + } + tips=this.xmGroupService.checkProductStatus(xmProduct); + if(!tips.isOk()){ + return ResponseHelper.failed(tips); + } + Map productAdmUsers=xmGroupService.getProductAdmUsers(xmProduct); + if(!productAdmUsers.containsKey(u.getUserid())) { + return ResponseHelper.failed("not-product-adm","您不是产品管理人员,不能创建小组。产品级助理以上人员可以创建小组。"); + } + + xmGroup.setBranchId(xmProduct.getBranchId()); + }else{ + return ResponseHelper.failed("pgClass-err","小组类型数值不正确"); + } if (StringUtils.isEmpty(xmGroup.getId())) { @@ -218,13 +255,19 @@ public class XmGroupController { return m; } } - if(StringUtils.hasText(xmGroup.getBranchId())){ + if(!StringUtils.hasText(xmGroup.getBranchId())){ xmGroup.setBranchId(u.getBranchId()); } this.xmGroupService.parentIdPathsCalcBeforeSave(xmGroup); xmGroupService.insert(xmGroup); - xmGroupCacheService.clearProjectGroup(xmGroup.getProjectId()); - xmRecordService.addXmGroupRecord(xmGroup.getProjectId(),xmGroup.getId(),"团队-小组-新增小组","新增小组【"+xmGroup.getGroupName()+"】"); + if("0".equals(xmGroup.getPgClass())){ + xmGroupCacheService.clearProjectGroup(xmGroup.getProjectId()); + xmRecordService.addXmGroupRecord(xmGroup.getProjectId(),xmGroup.getId(),"团队-小组-新增小组","新增小组【"+xmGroup.getGroupName()+"】"); + }else{ + xmGroupCacheService.clearProductGroup(xmGroup.getProductId()); + xmRecordService.addXmProductRecord(xmGroup.getProductId(),"团队-小组-新增小组","新增小组【"+xmGroup.getGroupName()+"】"); + } + m.put("data",xmGroup); }catch (BizException e) { @@ -255,7 +298,7 @@ public class XmGroupController { if(groupDb==null){ return ResponseHelper.failed("data-0","小组已不存在"); } - if(StringUtils.hasText(groupDb.getProjectId())){ + if("0".equals(groupDb.getPgClass()) && StringUtils.hasText(groupDb.getProjectId())){ XmProject project = xmProjectService.getProjectFromCache(groupDb.getProjectId()); if(project==null){ return ResponseHelper.failed("project-0","项目已不存在"); @@ -264,6 +307,15 @@ public class XmGroupController { if(!projectAdmMap.containsKey(u.getUserid())) { return ResponseHelper.failed("not-project-adm","您不是项目管理人员,不能删除小组。项目级助理以上人员可以删除小组。"); } + } else if("1".equals(groupDb.getPgClass()) && StringUtils.hasText(groupDb.getProductId())){ + XmProduct product = xmProductService.selectOneById(groupDb.getProductId()); + if(product==null){ + return ResponseHelper.failed("product-0","产品已不存在"); + } + Map productAdmUsers=xmGroupService.getProductAdmUsers(product); + if(!productAdmUsers.containsKey(u.getUserid())) { + return ResponseHelper.failed("not-product-adm","您不是产品管理人员,不能删除小组。产品级助理以上人员可以删除小组。"); + } } XmGroup childrenGroupQuery=new XmGroup(); childrenGroupQuery.setPgroupId(xmGroup.getId()); @@ -272,8 +324,15 @@ public class XmGroupController { return ResponseHelper.failed("childrenCnt-no-0","该小组有下级小组,不能删除。请先删除下级小组。"); } xmGroupService.doDeleteByPk(xmGroup,groupDb); - xmGroupCacheService.clearProjectGroup(groupDb.getProjectId()); - xmRecordService.addXmGroupRecord(groupDb.getProjectId(),groupDb.getId(),"团队-小组-删除小组","删除小组【"+groupDb.getGroupName()+"】"); + if("0".equals(groupDb.getPgClass())){ + xmGroupCacheService.clearProjectGroup(groupDb.getProjectId()); + xmRecordService.addXmGroupRecord(groupDb.getProjectId(),groupDb.getId(),"团队-小组-删除小组","删除小组【"+groupDb.getGroupName()+"】"); + + }else{ + xmGroupCacheService.clearProductGroup(groupDb.getProductId()); + xmRecordService.addXmProductRecord(groupDb.getProductId(),"团队-小组-删除小组","删除小组【"+groupDb.getGroupName()+"】"); + + } }catch (BizException e) { @@ -287,7 +346,9 @@ public class XmGroupController { return m; } - + + /** + * @ApiOperation( value = "根据主键列表批量删除xm_group信息",notes="batchDelXmProjectGroup,仅需要上传主键字段") @@ -343,4 +404,6 @@ public class XmGroupController { m.put("tips", tips); return m; } + + */ } diff --git a/xm-core/src/main/java/com/xm/core/service/XmGroupService.java b/xm-core/src/main/java/com/xm/core/service/XmGroupService.java index ae6e1f3f..b8cfee67 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmGroupService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmGroupService.java @@ -84,24 +84,23 @@ public class XmGroupService extends BaseService { } - /** 请在此类添加自定义函数 */ - public List getProjectGroupVoList(String projectId) { + public List getProductGroupVoList(String productId) { List groupVoList=new ArrayList<>(); - List groupVoList2 = groupCacheService.getProjectGroups(projectId); + List groupVoList2 = groupCacheService.getProductGroups(productId); if(groupVoList2==null||groupVoList2.size()==0) { XmGroup group = new XmGroup(); - group.setProjectId(projectId); + group.setProductId(productId); Page page=PageUtils.getLocalPage(); PageUtils.clearPage(); List groupList = this.selectListByWhere(group); if(groupList==null || groupList.size()==0) { - groupCacheService.putProjectGroups(projectId, groupVoList); + groupCacheService.putProductGroups(productId, groupVoList); return groupVoList; } - List groupUserList=this.xmGroupUserService.selectGroupUserListByProjectId(projectId); + List groupUserList=this.xmGroupUserService.selectGroupUserListByProductId(productId); if(groupUserList==null || groupUserList.size()==0) { - //groupCacheService.putProjectGroups(projectId, groupVoList); + //groupCacheService.putProjectGroups(productId, groupVoList); //return groupVoList; } groupList.forEach(g -> { @@ -116,7 +115,7 @@ public class XmGroupService extends BaseService { gvo.setGroupUsers(groupUsers ); groupVoList.add(gvo); }); - groupCacheService.putProjectGroups(projectId, groupVoList); + groupCacheService.putProductGroups(productId, groupVoList); if(page!=null && (page.getPageNum()>0||page.getPageSize()>0)){ PageUtils.startPage(page.getPageNum(), page.getPageSize(),page.getOrderBy()); } @@ -128,6 +127,51 @@ public class XmGroupService extends BaseService { } + + /** 请在此类添加自定义函数 */ + public List getProjectGroupVoList(String projectId) { + List groupVoList=new ArrayList<>(); + List groupVoList2 = groupCacheService.getProjectGroups(projectId); + if(groupVoList2==null||groupVoList2.size()==0) { + + XmGroup group = new XmGroup(); + group.setProjectId(projectId); + Page page=PageUtils.getLocalPage(); + PageUtils.clearPage(); + List groupList = this.selectListByWhere(group); + if(groupList==null || groupList.size()==0) { + groupCacheService.putProjectGroups(projectId, groupVoList); + return groupVoList; + } + List groupUserList=this.xmGroupUserService.selectGroupUserListByProjectId(projectId); + if(groupUserList==null || groupUserList.size()==0) { + //groupCacheService.putProjectGroups(projectId, groupVoList); + //return groupVoList; + } + groupList.forEach(g -> { + XmGroupVo gvo = new XmGroupVo(); + BeanUtils.copyProperties(g,gvo); + List groupUsers=new ArrayList<>(); + groupUserList.forEach(gu -> { + if(g.getId().equals(gu.getGroupId())) { + groupUsers.add(gu); + } + }); + gvo.setGroupUsers(groupUsers ); + groupVoList.add(gvo); + }); + groupCacheService.putProjectGroups(projectId, groupVoList); + if(page!=null && (page.getPageNum()>0||page.getPageSize()>0)){ + PageUtils.startPage(page.getPageNum(), page.getPageSize(),page.getOrderBy()); + } + + return groupVoList; + }else { + return groupVoList2; + } + + } + public boolean checkUserIsProjectAdm(XmProject xmProject,String userid){ if(xmProject==null){ return false; @@ -566,6 +610,16 @@ public class XmGroupService extends BaseService { } return tips; } + + public Tips checkProductStatus(XmProduct xmProduct){ + Tips tips=new Tips("成功"); + if(xmProduct==null){ + tips.setFailureMsg("product-0","产品已不存在"); + } else if("3".equals(xmProduct.getPstatus())){ + tips.setFailureMsg("pstatus-3","产品已关闭,不能操作"); + } + return tips; + } public Tips checkHasProjectEditQx(User user,XmProject xmProject){ Tips tips=new Tips("成功"); Map pmUserMap=new HashMap<>();