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 d681b2ea..a91349ea 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 @@ -269,7 +269,58 @@ public class XmProductController { m.put("tips", tips); return m; } - + /***/ + @ApiOperation( value = "从回收站恢复产品",notes="unDelXmProduct,仅需要上传主键字段") + @ApiResponses({ + @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") + }) + @HasQx(value = "xm_core_xmProduct_unDel",name = "从回收站恢复产品等",categoryId = "admin-xm",categoryName = "管理端-项目管理系统") + @RequestMapping(value="/unDel",method=RequestMethod.POST) + public Map unDelXmProduct(@RequestBody XmProduct xmProduct){ + Map m = new HashMap<>(); + Tips tips=new Tips("成功从回收站恢复产品"); + try{ + if(!StringUtils.hasText(xmProduct.getId())){ + return ResponseHelper.failed("id-0","","产品编号不能为空"); + } + User user=LoginUtils.getCurrentUserInfo(); + XmProduct xmProductDb=xmProductService.getProductFromCache(xmProduct.getId()); + if(xmProductDb==null){ + return ResponseHelper.failed("data-0","产品已不存在"); + }else if(!"1".equals(xmProductDb.getDel())){ + return ResponseHelper.failed("del-not-1","该产品不是已删除状态"); + }else if(!user.getBranchId().equals(xmProductDb.getBranchId())){ + return ResponseHelper.failed("branchId-not-right","该产品不属于您所在的机构,不允许操作"); + }else if(!groupService.checkUserIsProductAdm(xmProductDb,user.getUserid())){ + return ResponseHelper.failed("pmUserid-not-right","您不是该产品产品负责人,也不是产品助理,不允许操作"); + } + /** + if(!"1".equals(xmProductDb.getIsTpl())){ + long menus=xmProductService.checkExistsMenu(xmProduct.getId()); + if(menus>0) { + return ResponseHelper.failed("had-menus","该产品有"+menus+"个需求关联,不允许删除,请先解绑需求"); + + } + } + **/ + XmProduct xmProductDel=new XmProduct(); + xmProductDel.setId(xmProductDb.getId()); + xmProductDel.setDel("0"); + xmProductDel.setLtime(new Date()); + xmProductService.updateSomeFieldByPk(xmProductDel); + xmProductService.clearCache(xmProduct.getId()); + xmRecordService.addXmProductRecord(xmProduct.getId(),"从回收站恢复产品",user.getUsername()+"从回收站恢复产品产品【"+xmProductDb.getId()+"】【"+xmProductDb.getProductName()+"】","",JSON.toJSONString(xmProductDb)); + + }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="delXmProduct,仅需要上传主键字段") diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectController.java index 61dded0b..cca462e0 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectController.java @@ -157,7 +157,50 @@ public class XmProjectController { m.put("tips", tips); return m; } + @ApiOperation( value = "从回收站恢复项目",notes="unDelXmProject,仅需要上传主键字段") + @ApiResponses({ + @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") + }) + @RequestMapping(value="/unDel",method=RequestMethod.POST) + @HasQx(value = "xm_core_xmProject_unDel",name = "从回收站恢复项目",categoryId = "admin-xm",categoryName = "管理端-项目管理系统") + public Map unDelXmProject(@RequestBody XmProject xmProject){ + Map m = new HashMap<>(); + Tips tips=new Tips("成功从回收站恢复项目"); + try{ + User user= LoginUtils.getCurrentUserInfo(); + XmProject xmProjectDb=this.xmProjectService.getProjectFromCache(xmProject.getId()); + if(xmProjectDb==null){ + tips.setFailureMsg("项目不存在"); + } + if(!user.getBranchId().equals(xmProjectDb.getBranchId())){ + return ResponseHelper.failed("branchId-not-right","该项目不属于您的组织,不允许您进行恢复"); + } + if(!"1".equals(xmProjectDb.getDel())){ + return ResponseHelper.failed("status-not-0","该项目不属于删除状态,不允许恢复"); + } + if(this.groupService.checkUserIsProjectAdm(xmProjectDb,user.getUserid())){ + XmProject xmProjectUpdate=new XmProject(); + xmProjectUpdate.setId(xmProjectDb.getId()); + xmProjectUpdate.setDel("0"); + xmProjectUpdate.setLtime(new Date()); + xmProjectService.updateSomeFieldByPk(xmProjectUpdate); + xmProjectService.clearProject(xmProject.getId()); + xmRecordService.addXmProjectRecord(xmProject.getId(),"项目-从回收站恢复项目",user.getUsername()+"从回收站恢复项目【"+xmProjectDb.getName()+"】", null, JSON.toJSONString(xmProjectDb)); + + }else { + tips.setFailureMsg("您不是该项目管理人员,无权从回收站恢复项目"); + } + }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 = "删除一条xm_project信息",notes="delXmProject,仅需要上传主键字段") @ApiResponses({ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") @@ -176,9 +219,6 @@ public class XmProjectController { if(!user.getBranchId().equals(xmProjectDb.getBranchId())){ return ResponseHelper.failed("branchId-not-right","该项目不属于您的组织,不允许您进行删除"); } - if(!"0".equals(xmProjectDb.getStatus())&&!"9".equals(xmProjectDb.getStatus())){ - return ResponseHelper.failed("status-not-0","该项目不属于初始或者已关闭状态,不允许删除"); - } if(this.groupService.checkUserIsProjectAdm(xmProjectDb,user.getUserid())){ XmProject xmProjectUpdate=new XmProject(); xmProjectUpdate.setId(xmProjectDb.getId());