From 064e2b95e2a88f9679a1834e4dec95038c0482ff Mon Sep 17 00:00:00 2001 From: LSH Date: 星期一, 09 十月 2023 15:31:34 +0800 Subject: [PATCH] #流程相关 --- src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java | 200 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 176 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java b/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java index a5f868f..42d337b 100644 --- a/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java +++ b/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java @@ -42,7 +42,13 @@ private PlanService planService; @Autowired - private PriSalesService priSalesService; + private PlanTypeService planTypeService; + + @Autowired + private ProcessPermissionsService processPermissionsService; + + @Autowired + private PriQuoteService priQuoteService; @Autowired private CstmrService cstmrService; @@ -81,21 +87,25 @@ @RequestParam Map<String, Object> param){ EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>(); wrapper.setSqlSelect("id,title,create_time as createTime,filepath,settle,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,dept_id as deptId,status,update_time as updateTime,check_data as checkData,update_user_id as updateUserId,member_id as memberId"); - wrapper.in("member_id", getUserRoleBelongsToUserId("allopen")); +// wrapper.in("member_id", getUserRoleBelongsToUserId("allopen")); excludeTrash(param); convert(param, wrapper); allLike(PriOnline2.class, param.keySet(), wrapper, condition); + wrapper.or().eq("member_id",getUserId()); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} return R.ok(priOnline2Service.selectPage(new Page<>(curr, limit), wrapper)); } private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ - Long deptId = getDeptId(); boolean signUserId = false; boolean signDeptId = false; + boolean signHostId = false; for (Map.Entry<String, Object> entry : map.entrySet()){ if (entry.getKey().equals("dept_id")){ signDeptId = true; + if (String.valueOf(entry.getValue()).equals("19")){ + signHostId = true; + } } } for (Map.Entry<String, Object> entry : map.entrySet()){ @@ -117,6 +127,9 @@ } if (!signUserId && !signDeptId){ wrapper.eq("user_id", getUserId()); + } + if (signHostId){ + wrapper.or().eq("host_id",1); } } @@ -145,6 +158,9 @@ //涓氬姟鍛� // Item item = itemService.selectById(priOnline.getItemId()); Plan plan = planService.selectById(priOnline2.getItemId()); + if (plan.getStatus()!=1){ + return R.error("姝よ鍒掑崟鐘舵�佹敼鍙橈紝璇峰埛鏂伴〉闈㈤噸鏂伴�夋嫨锛�"); + } priOnline2.setMemberId(plan.getUserId()); Cstmr cstmr = cstmrService.selectById(plan.getCstmrId()); @@ -152,16 +168,31 @@ priOnline2.setSettle(0); - User manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 +// User manager = new User(); +// try{ +// manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 +// }catch (Exception e){ +// manager = getUser(); +// } + String node="2-"; + + PlanType planType = planTypeService.selectById(plan.getPlanType()); + node = node+planType.getType(); + + ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", node));//2锛氭姤浠锋祦绋� + User manager = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣2纭浜� + + User userUp = userService.selectById(plan.getUserId()); // 鑾峰彇涓氬姟鍛� List<String> initNames = new ArrayList<>(); - initNames.add("鍒涘缓鏍镐环鍗曟ā鏉�"); - initNames.add("鎻愪氦鏍镐环"); - initNames.add("閮ㄩ棬缁忕悊瀹℃牳"); + initNames.add("鎺ュ彇鏍镐环浠诲姟"); + initNames.add("瀹屾垚鏍镐环"); + initNames.add("缁忕悊瀹℃牳"); initNames.add("涓氬姟鍛樼‘璁�"); - priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.initSalesPricing(manager,getUser(),initNames,3))); + priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.initSalesPricing(manager,getUser(),userUp,initNames,3))); //璁剧疆椤圭洰娴佺▼ plan.setStep(2); + plan.setStatus(2); planService.updateById(plan); priOnline2Service.insert(priOnline2); @@ -302,17 +333,32 @@ @RequestMapping(value = "/priOnline2/delete/auth") @ManagerAuth(memo = "鍒犻櫎鏍镐环绠$悊") public R delete(Long[] ids){ - if (Cools.isEmpty(ids)){ - return R.error(); - } - for (Long id : ids){ - int priSales = priSalesService.selectCount(new EntityWrapper<PriSales>().eq("pri_online2_id", id)); - if (priSales!=0){ - return R.error("瀛樺湪鍏宠仈鐨勪骇鍝佽垂鐢ㄦ槑缁嗭紝绂佹鍒犻櫎锛侊紒锛�"); + try{ + if (Cools.isEmpty(ids) || ids.length==0){ + return R.error(); } + for (Long id : ids){ + int priQuote= priQuoteService.selectCount(new EntityWrapper<PriQuote>().eq("pri_online_id", id)); + if (priQuote!=0){ + return R.error("瀛樺湪鍏宠仈鐨勬姤浠峰崟锛岀姝㈠垹闄わ紒锛侊紒"); + } +// int priSales = priSalesService.selectCount(new EntityWrapper<PriSales>().eq("pri_online2_id", id)); +// if (priSales!=0){ +// return R.error("瀛樺湪鍏宠仈鐨勪骇鍝佽垂鐢ㄦ槑缁嗭紝绂佹鍒犻櫎锛侊紒锛�"); +// } + } + for (Long id : ids) { + PriOnline2 priOnline2 = priOnline2Service.selectById(id); + Plan plan = planService.selectById(priOnline2.getItemId()); + plan.setStatus(1); + planService.updateById(plan); + } + + priOnline2Service.deleteBatchIds(Arrays.asList(ids)); + return R.ok(); + }catch (Exception e){ + return R.error(e.getMessage()); } - priOnline2Service.deleteBatchIds(Arrays.asList(ids)); - return R.ok(); } @RequestMapping(value = "/priOnline2/export/auth") @@ -331,7 +377,7 @@ public R query(String condition) { EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>(); wrapper.like("order_num", condition); - wrapper.in("member_id", getUserRoleBelongsToUserId("allopen")); + wrapper.in("user_id", getUserRoleBelongsToUserId("allopen")); Page<PriOnline2> page = priOnline2Service.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); for (PriOnline2 priOnline2 : page.getRecords()){ @@ -339,6 +385,26 @@ map.put("id", priOnline2.getId()); // map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getMemberId$()); map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getTemplateName()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/priOnline2Query2/auth") + @ManagerAuth + public R query2(String condition) { + EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>(); + wrapper.like("order_num", condition); + wrapper.in("user_id", getUserRoleBelongsToUserId("allopen")); + Page<PriOnline2> page = priOnline2Service.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (PriOnline2 priOnline2 : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", priOnline2.getId()); +// map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getMemberId$()); +// map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getTemplateName()); + map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getMemberId$() + "/" + priOnline2.getTemplateName()); + result.add(map); } return R.ok(result); @@ -372,8 +438,12 @@ Date now = new Date(); switch (priOnline2.getSettle()) { case 0: - User user2 = userService.selectById(priOnline2.getUserId()); - User manager1 = userService.getDeptManager(getHostId(), user2.getDeptId()); + // 鏈儴闂ㄧ粡鐞嗗鏍� 鑺傜偣璐熻矗浜� + Plan plan1 = planService.selectById(priOnline2.getItemId()); + PlanType planType1 = planTypeService.selectById(plan1.getPlanType()); + + ProcessPermissions processPermissions1 = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "2-"+planType1.getType()));//2锛氭姤浠锋祦绋� + User manager1 = userService.selectById(processPermissions1.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣2纭浜� if (Cools.isEmpty(getUser())) { return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); @@ -409,9 +479,19 @@ } break; case 1: - // 鏈儴闂ㄧ粡鐞嗗鏍� - User user = userService.selectById(priOnline2.getUserId()); - User manager = userService.getDeptManager(getHostId(), user.getDeptId()); + // 鏈儴闂ㄧ粡鐞嗗鏍� 鑺傜偣璐熻矗浜� + Plan plan = planService.selectById(priOnline2.getItemId()); + PlanType planType = planTypeService.selectById(plan.getPlanType()); + + ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "2-"+planType.getType()));//2锛氭姤浠锋祦绋� + User manager = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鎶ヤ环娴佺▼鑺傜偣2纭浜� + +// User manager = new User(); +// try{ +// manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 +// }catch (Exception e){ +// manager = user; +// } if (manager.getId().equals(getUserId())) { // 淇敼 settle 姝ラ鏁版嵁 @@ -423,7 +503,7 @@ break; case 2: dto.setCurr(Boolean.TRUE); - dto.setMsg("閮ㄩ棬缁忕悊" + manager.getNickname() + "瀹℃壒閫氳繃"); + dto.setMsg(manager.getNickname() + "瀹℃壒閫氳繃"); dto.setTime(DateUtils.convert(now)); break; default: @@ -467,10 +547,16 @@ priOnline2.setSettleMsg(JSON.toJSONString(list2)); // 淇敼瑙勫垝鍗曠姸鎬� priOnline2.setSettle(3); // 瀹℃壒閫氳繃 + priOnline2.setStatus(1); priOnline2.setUpdateTime(new Date()); if (!priOnline2Service.updateById(priOnline2)) { throw new CoolException("纭澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + try{ + priQuoteAdd(priOnline2.getId(),plannerId); + }catch (Exception e){ + return R.error("鑷姩鐢熸垚鎶ヤ环鍗曞け璐�"); } break; default: @@ -479,4 +565,70 @@ return R.ok("瀹℃壒鎴愬姛"); } + public void priQuoteAdd(Long priOnlineId,Long priType){ + Pri pri = null; + if (priType==1L){ + pri = priService.selectById(114); + }else { + pri = priService.selectById(115); + } + + PriOnline2 priOnline2 = priOnline2Service.selectById(priOnlineId); + + PriQuote priQuote = new PriQuote(); + priQuote.setCreateTime(new Date()); + priQuote.setTitle(pri.getTitle()); + priQuote.setTemplateName(priOnline2.getTemplateName()); + priQuote.setSheetData(pri.getSheetData()); + priQuote.setPriOnlineId(priOnlineId); + priQuote.setItemId(priOnline2.getItemId()); + priQuote.setOrderNum(priOnline2.getOrderNum()); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); + priQuote.setInOrderNum(format.format(new Date())); + + //鍒涘缓浜哄憳 + priQuote.setUserId(getUserId()); + //鏇存柊浜哄憳 + priQuote.setUpdateUserId(getUserId()); + //鎵�灞為儴闂� + priQuote.setDeptId(getDeptId()); + //鏇存柊鏃堕棿 + priQuote.setUpdateTime(new Date()); + //妯℃澘 + Integer i = priType == 1L ? 1 : 2; + priQuote.setTemplate(i.toString()); + + //涓氬姟鍛� + Plan plan = planService.selectById(priQuote.getItemId()); + priQuote.setMemberId(plan.getUserId()); + + //璁剧疆椤圭洰娴佺▼ + plan.setStep(5); + +// priQuote.setForm(JSON.toJSONString(map)); // 鑷畾涔夎〃鍗曞唴瀹� + priQuote.setSettle(1); // 1.寮�濮� + User manager = new User(); + try{ + manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 + }catch (Exception e){ + manager = getUser(); + } + 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); + + priQuoteService.insert(priQuote); + } + + @PostMapping(value = "/priOnline2/priQuoteAdd/list/auth") + @ManagerAuth + public R priOnline2priQuoteAdd(@RequestParam Long planId){ + List<KeyValueVo> vos = new ArrayList<>(); + vos.add(new KeyValueVo("鎶ヤ环妯℃澘1", 1L)); + vos.add(new KeyValueVo("鎶ヤ环妯℃澘2", 2L)); + return R.ok().add(vos); + } + } -- Gitblit v1.9.1