From 35c083327282f2b790f7231896c1dfcf36af6ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Mon, 21 Feb 2022 16:25:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/ctrl/XmProductController.java | 58 +++++++++++++------ 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java index 4c55cecf..f55e91f1 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java @@ -21,6 +21,7 @@ import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.*; +import java.util.stream.Collectors; /** * url编制采用rest风格,如对XM.xm_product 产品表的操作有增删改查,对应的url分别为:
@@ -328,36 +329,55 @@ public class XmProductController { public Map batchDelXmProduct(@RequestBody List xmProducts) { Map m = new HashMap<>(); Tips tips=new Tips("成功删除"+xmProducts.size()+"条数据"); - try{ + try{ + User user=LoginUtils.getCurrentUserInfo(); List hasProjects=new ArrayList<>(); List hasMenus=new ArrayList<>(); List canDelList=new ArrayList<>(); + List errTips=new ArrayList<>(); for (XmProduct xmProduct : xmProducts) { - long projects=xmProductService.checkExistsProject(xmProduct.getId()); - if(projects>0) { - hasProjects.add(xmProduct.getProductName()); - }else { - long menus=xmProductService.checkExistsMenu(xmProduct.getId()); - if(menus>0) { - hasMenus.add(xmProduct.getProductName()); - }else { - canDelList.add(xmProduct); + XmProduct xmProductDb=xmProductService.selectOneObject(new XmProduct(xmProduct.getId())); + Tips otips=new Tips(); + if(xmProductDb==null){ + otips.setFailureMsg("data-0","","产品【"+xmProductDb.getProductName()+"】已不存在"); + }else if(!"0".equals(xmProductDb.getPstatus())&&!"3".equals(xmProductDb.getPstatus())){ + otips.setFailureMsg("pstatus-not-0-3","产品【"+xmProductDb.getProductName()+"】不是初始、已关闭状态,不允许删除"); + }else if(!user.getBranchId().equals(xmProductDb.getBranchId())){ + otips.setFailureMsg("branchId-not-right","产品【"+xmProductDb.getProductName()+"】不属于您所在的机构,不允许删除"); + }else if(!user.getUserid().equals(xmProductDb.getPmUserid()) && !user.getUserid().equals(xmProductDb.getAssistantUserid())){ + otips.setFailureMsg("pmUserid-not-right","您不是产品【"+xmProductDb.getProductName()+"】负责人,也不是产品助理,不允许删除"); + }else{ + if(!"1".equals(xmProductDb.getIsTpl())){ + long menus=xmProductService.checkExistsMenu(xmProduct.getId()); + if(menus>0) { + hasMenus.add(xmProduct.getProductName()); + otips.setFailureMsg("had-menus","产品【"+xmProductDb.getProductName()+"】有"+menus+"个需求关联,不允许删除,请先解绑需求"); + } } + } - + if(otips.isOk()){ + canDelList.add(xmProductDb); + }else { + errTips.add(tips); } } if(canDelList.size()>0) { xmProductService.batchDelete(canDelList); } - String msg="成功删除"+canDelList+"条产品信息"; - if(hasProjects.size()>0 ) { - msg=msg+",【"+StringUtils.arrayToDelimitedString(hasProjects.toArray(), ",")+"】存在项目关联,不允许删除"; - } - if(hasMenus.size()>0 ) { - msg=msg+",【"+StringUtils.arrayToDelimitedString(hasMenus.toArray(), ",")+"】存在需求关联,不允许删除"; - } - tips.setOkMsg(msg); + String msg="成功删除"+canDelList.size()+"条产品信息"; + if(canDelList.size()==xmProducts.size()){ + tips.setOkMsg(msg); + }else{ + if(errTips.size()>0 && canDelList.size()>0){ + String errmsg=errTips.stream().map(i->i.getMsg()).collect(Collectors.joining("\n")); + tips.setOkMsg(msg+"\n"+errmsg); + }else{ + tips.setFailureMsg(errTips.stream().map(i->i.getMsg()).collect(Collectors.joining("\n"))); + } + } + return tips; + }catch (BizException e) { tips=e.getTips(); logger.error("",e);