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);