From efbc8993d6545d7ab898f5349a89915729fe5cb7 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期五, 06 十月 2023 14:12:31 +0800 Subject: [PATCH] #一键修改负责人 --- src/main/java/com/zy/crm/manager/controller/ReimburseOnlineController.java | 139 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 120 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/zy/crm/manager/controller/ReimburseOnlineController.java b/src/main/java/com/zy/crm/manager/controller/ReimburseOnlineController.java index f5d1969..2505934 100644 --- a/src/main/java/com/zy/crm/manager/controller/ReimburseOnlineController.java +++ b/src/main/java/com/zy/crm/manager/controller/ReimburseOnlineController.java @@ -92,11 +92,13 @@ @RequestParam(required = false)String condition, @RequestParam Map<String, Object> param){ EntityWrapper<ReimburseOnline> 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,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.setSqlSelect("id,settle,title,create_time as createTime,filepath,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,name"); +// wrapper.in("member_id", getUserRoleBelongsToUserId()); + wrapper.andNew(); excludeTrash(param); convert(param, wrapper); allLike(ReimburseOnline.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(reimburseOnlineService.selectPage(new Page<>(curr, limit), wrapper)); } @@ -105,9 +107,13 @@ 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()){ @@ -130,9 +136,12 @@ if (!signUserId && !signDeptId){ wrapper.eq("user_id", getUserId()); } + if (signHostId){ + wrapper.or().eq("host_id",1); + } } @RequestMapping(value = "/reimburseOnline/from/add/auth") - @ManagerAuth(memo = "鎶ラ攢") + @ManagerAuth(memo = "娣诲姞鎶ラ攢鍗�") @Transactional public R formAdd(@RequestBody ReimburseOnlineDomainParam param){ long planId = 0; @@ -148,8 +157,9 @@ ReimburseOnline reimburseOnline = new ReimburseOnline(planId,RuleUtils.rule(rule),now,getUser()); reimburseOnline.setCheckData(param.getCheckData()); reimburseOnline.setTemplateName(param.getTemplateName()); + reimburseOnline.setName(param.getName()); - reimburseOnline.setSettle(1); // 1.寮�濮� + reimburseOnline.setSettle(0); // 0.鍒涘缓 User manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 ProcessPermissions processPermissions3 = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 3).eq("process", param.getCheckData().equals("鍚�")? "3-1" : "3-2"));//3锛氭姤閿�娴佺▼ @@ -167,14 +177,14 @@ reimburseOnline.setSettleMsg(JSON.toJSONString(SettleDto.initPriQuote(reimburseOnline, manager,president3,president4,president5,president6,getUser()))); Map<String, Object> map = new HashMap<>(); map.put("title","闈為」鐩瀷鎶ラ攢"); - map.put("reimburseId",param.getReimburseId()); + map.put("reimburseId",reimburseOnline.getPlanId$()); map.put("docType",param.getDocType()); map.put("orderNo",param.getOrderNo()); map.put("templateName",param.getTemplateName()); map.put("checkData",param.getCheckData()); - map.put("reimburseOnlineDetls",param.getReimburseOnlineDetls()); + map.put("name",param.getName()); reimburseOnline.setForm(JSON.toJSONString(map)); - reimburseOnline.setMemberId(president3.getId()); + reimburseOnline.setMemberId(getUser().getId()); if (!reimburseOnlineService.insert(reimburseOnline)){ return R.error("娣诲姞鎶ラ攢涓绘。澶辫触"); @@ -188,16 +198,63 @@ } @RequestMapping(value = "/reimburseOnline/from/modify/auth") + @ManagerAuth(memo = "淇敼鎶ラ攢鍗�") @Transactional public R formModify(@RequestBody ReimburseOnlineDomainParam param){ - System.out.println(param); + + long planId = 0; + if (!param.getTemplateName().equals("闈為」鐩瀷鎶ラ攢")){ + if (Cools.isEmpty(param.getOrderNo())){ + return R.error("淇敼澶辫触锛�"+param.getTemplateName()+"闇�瑕佸叧鑱旈」鐩彿"); + } + String[] split = param.getOrderNo().split("---"); + planId = Long.parseLong(split[1]); + } + Date now = new Date(); + ReimburseOnline reimburseOnline = reimburseOnlineService.selectById(param.getReimburseId()); + + if (!reimburseOnline.getSettle().equals(0)){ + return R.error("淇敼澶辫触锛佹彁浜や箣鍚庣姝慨鏀癸紒"); + } + if (!reimburseOnline.getUserId().equals(getUserId())){ + return R.error("闈炲垱寤轰汉鍛樼姝慨鏀癸紒"); + } + + + reimburseOnline.setCheckData(param.getCheckData()); + reimburseOnline.setTemplateName(param.getTemplateName()); + reimburseOnline.setItemId(planId); + reimburseOnline.setName(param.getName()); + reimburseOnline.setUpdateTime(new Date()); + + Map<String, Object> map = new HashMap<>(); + map.put("title",reimburseOnline.getPlanId$()); + map.put("reimburseId",param.getReimburseId()); + map.put("docType",param.getDocType()); + map.put("orderNo",param.getOrderNo()); + map.put("templateName",param.getTemplateName()); + map.put("checkData",param.getCheckData()); + map.put("name",param.getName()); + reimburseOnline.setForm(JSON.toJSONString(map)); + + if (!reimburseOnlineService.updateById(reimburseOnline)){ + return R.error("鏇存柊鎶ラ攢涓绘。澶辫触"); + } + + reimburseOnlineDetlService.delete(new EntityWrapper<ReimburseOnlineDetl>().eq("order_id",reimburseOnline.getId())); + + for (ReimburseOnlineDetl reimburseOnlineDetl:param.getReimburseOnlineDetls()){ + reimburseOnlineDetl.setOrderId(reimburseOnline.getId()); + reimburseOnlineDetlService.insert(reimburseOnlineDetl); + } + return R.ok(); } @RequestMapping(value = "/reimburseOnline/detl/all/auth") @Transactional public R head(@RequestParam Integer reimburseId){ - List<ReimburseOnlineDetl> reimburseOnlineDetls = reimburseOnlineDetlService.selectList(new EntityWrapper<ReimburseOnlineDetl>().eq("reimburse_id", reimburseId)); + List<ReimburseOnlineDetl> reimburseOnlineDetls = reimburseOnlineDetlService.selectList(new EntityWrapper<ReimburseOnlineDetl>().eq("order_id", reimburseId)); return R.ok().add(reimburseOnlineDetls); } @@ -433,7 +490,7 @@ return R.ok().add(vos); } - @PostMapping(value = "/reimburseOnline/approval/auth") + @PostMapping(value = "/reimburseOnline/approval2/auth") @ManagerAuth public R approvalReimburseOnline(@RequestParam Long planId, @RequestParam(required = false) Long plannerId){ @@ -441,7 +498,45 @@ assert reimburseOnline != null; Integer settle = reimburseOnline.getSettle(); String process=""; + Date now = new Date(); switch (reimburseOnline.getSettle()) { + case 0: + User user2 = userService.selectById(reimburseOnline.getUserId()); + User manager1 = userService.getDeptManager(getHostId(), user2.getDeptId()); + + if (Cools.isEmpty(getUser())) { + return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); + } + if (!getUserId().equals(getUser().getId())) { + return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); + } + // 淇敼 settle 姝ラ鏁版嵁 + List<SettleDto> list1 = JSON.parseArray(reimburseOnline.getSettleMsg(), SettleDto.class); + for (SettleDto dto : list1) { + switch (dto.getStep()) { + case 0: + dto.setCurr(Boolean.FALSE); + break; + case 1: + dto.setCurr(Boolean.TRUE); + dto.setMsg(getUser().getNickname() + "鎻愪氦瀹屾垚"); + dto.setTime(DateUtils.convert(now)); + break; + default: + break; + } + } + reimburseOnline.setSettleMsg(JSON.toJSONString(list1)); + // 淇敼瑙勫垝鍗曠姸鎬� + reimburseOnline.setSettle(1); + reimburseOnline.setUpdateUserId(getUserId()); + reimburseOnline.setUpdateTime(now); + reimburseOnline.setMemberId(manager1.getId()); + + if (!reimburseOnlineService.updateById(reimburseOnline)) { + throw new CoolException("鎻愪氦澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + break; case 1: // 鏈儴闂ㄧ粡鐞嗗鏍� User user = userService.selectById(reimburseOnline.getUserId()); @@ -458,7 +553,7 @@ case 2: dto.setCurr(Boolean.TRUE); dto.setMsg("閮ㄩ棬缁忕悊" + manager.getNickname() + "瀹℃壒閫氳繃"); - dto.setTime(DateUtils.convert(new Date())); + dto.setTime(DateUtils.convert(now)); break; default: break; @@ -469,7 +564,9 @@ // 淇敼瑙勫垝鍗曠姸鎬� reimburseOnline.setSettle(2); // 鎬昏鍔炲緟瀹� reimburseOnline.setUpdateUserId(getUserId()); - reimburseOnline.setUpdateTime(new Date()); + reimburseOnline.setUpdateTime(now); + ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 3).eq("process", reimburseOnline.getCheckData().equals("鍚�") ? "3-1" : "3-2"));//3锛氭姤閿�娴佺▼ + reimburseOnline.setMemberId(processPermissions.getUserId()); if (!reimburseOnlineService.updateById(reimburseOnline)) { throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); @@ -511,22 +608,26 @@ for (SettleDto dto : list) { if (dto.getStep().equals(settle)){ dto.setCurr(Boolean.FALSE); - break; }else if (dto.getStep().equals(settle+1)){ dto.setCurr(Boolean.TRUE); dto.setMsg("鎶ヤ环娴佺▼鑺傜偣"+process+"纭浜�:"+planLeader.getNickname() + "瀹℃壒閫氳繃"); - dto.setTime(DateUtils.convert(new Date())); - break; - }else { - break; + dto.setTime(DateUtils.convert(now)); } } reimburseOnline.setSettleMsg(JSON.toJSONString(list)); // 淇敼瑙勫垝鍗曠姸鎬� reimburseOnline.setSettle(settle+1); reimburseOnline.setUpdateUserId(getUserId()); - reimburseOnline.setUpdateTime(new Date()); - reimburseOnline.setMemberId(planLeader.getId()); + reimburseOnline.setUpdateTime(now); + String[] split = process.split("-"); + if (settle!=5){ + settle=settle+2; + }else { + settle++; + reimburseOnline.setStatus(1); + } + ProcessPermissions processPermissions2 = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 3).eq("process", settle+"-"+split[1]));//3锛氭姤閿�娴佺▼ + reimburseOnline.setMemberId(processPermissions2.getUserId()); if (!reimburseOnlineService.updateById(reimburseOnline)) { throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); -- Gitblit v1.9.1