From 564bf7ab6a639c2c4557d35b8fd9b51dca60a738 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 22 八月 2023 13:32:34 +0800 Subject: [PATCH] #规则完善 --- src/main/java/com/zy/crm/manager/controller/PriQuoteController.java | 254 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 248 insertions(+), 6 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..c204270 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,9 @@ @Autowired private PriQuoteBudgetService priQuoteBudgetService; + @Autowired + private PlanTypeService planTypeService; + @RequestMapping(value = "/priQuote/{id}/auth") @ManagerAuth public R get(@PathVariable("id") String id) { @@ -75,7 +76,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); @@ -134,6 +135,8 @@ priQuote.setUserId(getUserId()); //鏇存柊浜哄憳 priQuote.setUpdateUserId(getUserId()); + //鎵�灞為儴闂� + priQuote.setDeptId(getDeptId()); //鏇存柊鏃堕棿 priQuote.setUpdateTime(new Date()); @@ -147,7 +150,8 @@ priQuote.setForm(JSON.toJSONString(map)); // 鑷畾涔夎〃鍗曞唴瀹� priQuote.setSettle(1); // 1.寮�濮� User manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 - priQuote.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager))); + User president = userService.selectOne(new EntityWrapper<User>().eq("role_id",1).eq("username","鐜嬪紑鏉�")); // 鑾峰彇鎬昏鍔炵‘璁や汉 + priQuote.setSettleMsg(JSON.toJSONString(SettleDto.initPriQuote(plan, manager,president,getUser()))); planService.updateById(plan); @@ -416,4 +420,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: + // 鏌ユ壘瑙勫垝缁勯暱 + User planLeader = userService.selectOne(new EntityWrapper<User>().eq("username","鐜嬪紑鏉�")); + if (Cools.isEmpty(planLeader)) { + throw new CoolException("鏈煡鎵炬�昏鍔烇紝璇疯仈绯荤鐞嗗憳"); + } + 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: +// // 鏌ユ壘瑙勫垝缁勯暱 +// User planLeader = userService.selectOne(new EntityWrapper<User>().eq("username","鐜嬪紑鏉�")); +// if (Cools.isEmpty(planLeader)) { +// throw new CoolException("鏈煡鎵炬�昏鍔烇紝璇疯仈绯荤鐞嗗憳"); +// } +// 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