From 3041a7d6dba13e237c4f21d3e46b88c35d376bf3 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 08 九月 2023 10:14:47 +0800 Subject: [PATCH] # --- src/main/java/com/zy/crm/manager/controller/PriQuoteController.java | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 257 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java b/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java index f261d0b..b2409f2 100644 --- a/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java +++ b/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java @@ -12,13 +12,11 @@ import com.core.common.DateUtils; import com.core.common.R; import com.core.domain.KeyValueVo; +import com.core.exception.CoolException; import com.zy.crm.common.model.SettleDto; import com.zy.crm.common.web.BaseController; import com.zy.crm.manager.entity.*; -import com.zy.crm.manager.service.ItemService; -import com.zy.crm.manager.service.PlanService; -import com.zy.crm.manager.service.PriQuoteBudgetService; -import com.zy.crm.manager.service.PriQuoteService; +import com.zy.crm.manager.service.*; import com.zy.crm.system.entity.User; import com.zy.crm.system.service.UserService; import org.apache.poi.xssf.usermodel.XSSFSheet; @@ -48,6 +46,12 @@ @Autowired private PriQuoteBudgetService priQuoteBudgetService; + @Autowired + private ProcessPermissionsService processPermissionsService; + + @Autowired + private PlanTypeService planTypeService; + @RequestMapping(value = "/priQuote/{id}/auth") @ManagerAuth public R get(@PathVariable("id") String id) { @@ -75,7 +79,7 @@ @RequestParam(required = false)String condition, @RequestParam Map<String, Object> param){ EntityWrapper<PriQuote> wrapper = new EntityWrapper<>(); - wrapper.setSqlSelect("id,title,create_time as createTime,filepath,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,update_user_id as updateUserId,update_time as updateTime,in_order_num as inOrderNum,member_id as memberId"); + wrapper.setSqlSelect("id,title,create_time as createTime,filepath,item_id as itemId,order_num as orderNum,template_name as templateName,sheet_data as sheetData,user_id as userId,dept_id as deptId,settle,settle_msg as settleMsg,form,update_user_id as updateUserId,update_time as updateTime,in_order_num as inOrderNum,member_id as memberId"); wrapper.in("member_id", getUserRoleBelongsToUserId()); excludeTrash(param); convert(param, wrapper); @@ -116,7 +120,7 @@ } @RequestMapping(value = "/priQuote/add/auth") - @ManagerAuth + @ManagerAuth(memo = "娣诲姞鎶ヤ环鍗�") public R add(@RequestBody Map<String,Object> map) { PriQuoteBudget priQuoteBudget = priQuoteBudgetService.selectById(Long.parseLong(map.get("priQuoteBudgetId").toString())); @@ -134,6 +138,8 @@ priQuote.setUserId(getUserId()); //鏇存柊浜哄憳 priQuote.setUpdateUserId(getUserId()); + //鎵�灞為儴闂� + priQuote.setDeptId(getDeptId()); //鏇存柊鏃堕棿 priQuote.setUpdateTime(new Date()); @@ -147,7 +153,9 @@ priQuote.setForm(JSON.toJSONString(map)); // 鑷畾涔夎〃鍗曞唴瀹� priQuote.setSettle(1); // 1.寮�濮� User manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 - priQuote.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager))); + ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 2).eq("process", "3-1"));//2锛氭姤浠锋祦绋� + User president = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣3-1纭浜� + priQuote.setSettleMsg(JSON.toJSONString(SettleDto.initPriQuote(plan, manager,president,getUser()))); planService.updateById(plan); @@ -156,7 +164,7 @@ } @RequestMapping(value = "/priQuote/addOther/auth") - @ManagerAuth + @ManagerAuth(memo = "鍙﹀瓨鎶ヤ环鍗�") public R addOther(@RequestBody Map<String,Object> map) { PriQuote quote = priQuoteService.selectById(Long.parseLong(map.get("id").toString())); @@ -187,7 +195,7 @@ } @RequestMapping(value = "/priQuote/update/auth") - @ManagerAuth + @ManagerAuth(memo = "鏇存柊鎶ヤ环鍗�") public R update(@RequestBody Map<String,Object> map){ PriQuote priQuote = priQuoteService.selectById(Long.parseLong(map.get("id").toString())); priQuote.setTitle(map.get("title").toString()); @@ -201,7 +209,7 @@ } @RequestMapping(value = "/priQuote/updateForm/auth") - @ManagerAuth + @ManagerAuth(memo = "鏇存柊鎶ヤ环鍗�") public R updateForm(Long id,String templateName,String title){ PriQuote priQuote = priQuoteService.selectById(id); priQuote.setTemplateName(templateName); @@ -215,7 +223,7 @@ } @RequestMapping(value = "/priQuote/delete/auth") - @ManagerAuth + @ManagerAuth(memo = "鍒犻櫎鎶ヤ环鍗�") public R delete(Long[] ids){ if (Cools.isEmpty(ids)){ return R.error(); @@ -416,4 +424,242 @@ } } + @PostMapping(value = "/priQuote/approval/auth") + @ManagerAuth + public R approvalPriQuote(@RequestParam Long planId, + @RequestParam(required = false) Long plannerId){ + PriQuote priQuote = priQuoteService.selectById(planId); + assert priQuote != null; + + switch (priQuote.getSettle()) { + case 1: + // 鏈儴闂ㄧ粡鐞嗗鏍� + User user = userService.selectById(priQuote.getUserId()); + User manager = userService.getDeptManager(getHostId(), user.getDeptId()); + if (manager.getId().equals(getUserId())) { + + // 淇敼 settle 姝ラ鏁版嵁 + List<SettleDto> list = JSON.parseArray(priQuote.getSettleMsg(), SettleDto.class); + for (SettleDto dto : list) { + switch (dto.getStep()) { + case 1: + dto.setCurr(Boolean.FALSE); + break; + case 2: + dto.setCurr(Boolean.TRUE); + dto.setMsg("閮ㄩ棬缁忕悊" + manager.getNickname() + "瀹℃壒閫氳繃"); + dto.setTime(DateUtils.convert(new Date())); + break; + default: + break; + } + } + priQuote.setSettleMsg(JSON.toJSONString(list)); + + // 淇敼瑙勫垝鍗曠姸鎬� + priQuote.setSettle(2); // 鎬昏鍔炲緟瀹� + priQuote.setUpdateUserId(getUserId()); + priQuote.setUpdateTime(new Date()); + + if (!priQuoteService.updateById(priQuote)) { + throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + + } else { + return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); + } + break; + case 2: + ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 2).eq("process", "3-1"));//2锛氭姤浠锋祦绋� + User planLeader = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣3纭浜� + if (Cools.isEmpty(planLeader)) { + throw new CoolException("鏈煡鎵惧埌鎶ヤ环娴佺▼鑺傜偣3-1纭浜猴紝璇疯仈绯诲湪瀹℃壒鏉冮檺娣诲姞纭浜猴紒"); + } + if (!getUserId().equals(planLeader.getId())) { + return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); + } + User planner = userService.selectById(plannerId); + // 淇敼 settle 姝ラ鏁版嵁 + List<SettleDto> list = JSON.parseArray(priQuote.getSettleMsg(), SettleDto.class); + for (SettleDto dto : list) { + switch (dto.getStep()) { + case 2: + dto.setCurr(Boolean.FALSE); + break; + case 3: + dto.setCurr(Boolean.TRUE); + dto.setMsg("鎬昏鍔�" + planLeader.getNickname() + "瀹℃壒閫氳繃"); + dto.setTime(DateUtils.convert(new Date())); + break; + default: + break; + } + } + priQuote.setSettleMsg(JSON.toJSONString(list)); + // 淇敼瑙勫垝鍗曠姸鎬� + priQuote.setSettle(3); // 瑙勫垝鍛樺緟瀹� + priQuote.setUpdateUserId(getUserId()); + priQuote.setUpdateTime(new Date()); + + if (!priQuoteService.updateById(priQuote)) { + throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + break; + case 3: + // 涓氬姟鍛� + User salesman0 = userService.selectById(priQuote.getUserId()); + if (!getUserId().equals(salesman0.getId())) { + return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); + } + // 淇敼 settle 姝ラ鏁版嵁 + List<SettleDto> list1 = JSON.parseArray(priQuote.getSettleMsg(), SettleDto.class); + for (SettleDto dto : list1) { + switch (dto.getStep()) { + case 3: + dto.setCurr(Boolean.TRUE); + break; + case 4: + dto.setCurr(Boolean.TRUE); + dto.setMsg("涓氬姟鍛�" + salesman0.getNickname() + "瀹℃壒閫氳繃"); + dto.setTime(DateUtils.convert(new Date())); + break; + default: + break; + } + } + priQuote.setSettleMsg(JSON.toJSONString(list1)); + // 淇敼瑙勫垝鍗曠姸鎬� + priQuote.setSettle(4); // 瀹℃壒閫氳繃 + priQuote.setUpdateUserId(getUserId()); + priQuote.setUpdateTime(new Date()); + + if (!priQuoteService.updateById(priQuote)) { + throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + break; + default: + return R.error(); + } + return R.ok("瀹℃壒鎴愬姛"); + } + + @PostMapping(value = "/priQuote/refuse/auth") + @ManagerAuth + public R refusePriQuote(@RequestParam Long planId, + @RequestParam(required = false) Long plannerId){ +// PriQuote priQuote = priQuoteService.selectById(planId); +// assert priQuote != null; +// +// switch (priQuote.getSettle()) { +// case 1: +// // 鏈儴闂ㄧ粡鐞嗗鏍� +// User user = userService.selectById(priQuote.getUserId()); +// User manager = userService.getDeptManager(getHostId(), user.getDeptId()); +// if (manager.getId().equals(getUserId())) { +// +// // 淇敼 settle 姝ラ鏁版嵁 +// List<SettleDto> list = JSON.parseArray(priQuote.getSettleMsg(), SettleDto.class); +// for (SettleDto dto : list) { +// switch (dto.getStep()) { +// case 1: +// dto.setCurr(Boolean.FALSE); +// break; +// case 2: +// dto.setCurr(Boolean.TRUE); +// dto.setMsg("閮ㄩ棬缁忕悊" + manager.getNickname() + "瀹℃壒閫氳繃"); +// dto.setTime(DateUtils.convert(new Date())); +// break; +// default: +// break; +// } +// } +// priQuote.setSettleMsg(JSON.toJSONString(list)); +// +// // 淇敼瑙勫垝鍗曠姸鎬� +// priQuote.setSettle(2); // 鎬昏鍔炲緟瀹� +// priQuote.setUpdateUserId(getUserId()); +// priQuote.setUpdateTime(new Date()); +// +// if (!priQuoteService.updateById(priQuote)) { +// throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } +// +// } else { +// return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); +// } +// break; +// case 2: +// ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 2).eq("process", "3-1"));//2锛氭姤浠锋祦绋� +// User planLeader = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣3纭浜� +// if (Cools.isEmpty(planLeader)) { +// throw new CoolException("鏈煡鎵惧埌鎶ヤ环娴佺▼鑺傜偣3-1纭浜猴紝璇疯仈绯诲湪瀹℃壒鏉冮檺娣诲姞纭浜猴紒"); +// } +// if (!getUserId().equals(planLeader.getId())) { +// return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); +// } +// User planner = userService.selectById(plannerId); +// // 淇敼 settle 姝ラ鏁版嵁 +// List<SettleDto> list = JSON.parseArray(priQuote.getSettleMsg(), SettleDto.class); +// for (SettleDto dto : list) { +// switch (dto.getStep()) { +// case 2: +// dto.setCurr(Boolean.FALSE); +// break; +// case 3: +// dto.setCurr(Boolean.TRUE); +// dto.setMsg("鎬昏鍔�" + planLeader.getNickname() + "瀹℃壒閫氳繃"); +// dto.setTime(DateUtils.convert(new Date())); +// break; +// default: +// break; +// } +// } +// priQuote.setSettleMsg(JSON.toJSONString(list)); +// // 淇敼瑙勫垝鍗曠姸鎬� +// priQuote.setSettle(3); // 瑙勫垝鍛樺緟瀹� +// priQuote.setUpdateUserId(getUserId()); +// priQuote.setUpdateTime(new Date()); +// +// if (!priQuoteService.updateById(priQuote)) { +// throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } +// break; +// case 3: +// // 涓氬姟鍛� +// User salesman0 = userService.selectById(priQuote.getUserId()); +// if (!getUserId().equals(salesman0.getId())) { +// return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); +// } +// // 淇敼 settle 姝ラ鏁版嵁 +// List<SettleDto> list1 = JSON.parseArray(priQuote.getSettleMsg(), SettleDto.class); +// for (SettleDto dto : list1) { +// switch (dto.getStep()) { +// case 3: +// dto.setCurr(Boolean.TRUE); +// break; +// case 4: +// dto.setCurr(Boolean.TRUE); +// dto.setMsg("涓氬姟鍛�" + salesman0.getNickname() + "瀹℃壒閫氳繃"); +// dto.setTime(DateUtils.convert(new Date())); +// break; +// default: +// break; +// } +// } +// priQuote.setSettleMsg(JSON.toJSONString(list1)); +// // 淇敼瑙勫垝鍗曠姸鎬� +// priQuote.setSettle(4); // 瀹℃壒閫氳繃 +// priQuote.setUpdateUserId(getUserId()); +// priQuote.setUpdateTime(new Date()); +// +// if (!priQuoteService.updateById(priQuote)) { +// throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } +// break; +// default: +// return R.error(); +// } + return R.ok("瀹℃壒鎴愬姛"); + } + } -- Gitblit v1.9.1