From d68d798881163134cb5f59fc4a8d924809119a3c Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 17 十月 2023 12:59:56 +0800 Subject: [PATCH] #fropensagresxdocreport --- src/main/java/com/zy/crm/manager/controller/ContractController.java | 80 ++++++++++++++++++++++++++++----------- 1 files changed, 57 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/zy/crm/manager/controller/ContractController.java b/src/main/java/com/zy/crm/manager/controller/ContractController.java index e0fb02f..931f1b4 100644 --- a/src/main/java/com/zy/crm/manager/controller/ContractController.java +++ b/src/main/java/com/zy/crm/manager/controller/ContractController.java @@ -1,7 +1,6 @@ package com.zy.crm.manager.controller; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -26,16 +25,12 @@ import com.zy.crm.system.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.InputStreamResource; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.ClassUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; +import java.io.*; import java.text.SimpleDateFormat; import java.util.*; @@ -53,7 +48,7 @@ @Autowired private ProcessPermissionsService processPermissionsService; - @RequestMapping(value = "/contract/{id}/auth") + @RequestMapping(value = "/contract/{id}/auth2") @ManagerAuth public R get(@PathVariable("id") String id) { Contract contract = contractService.selectById(String.valueOf(id)); @@ -81,15 +76,39 @@ } private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + 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()){ String val = String.valueOf(entry.getValue()); if (val.contains(RANGE_TIME_LINK)){ String[] dates = val.split(RANGE_TIME_LINK); wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else if (entry.getKey().equals("dept_id")){ + if (!val.equals("19")){ + wrapper.eq(entry.getKey(), val); + } + } else if (entry.getKey().equals("user_id") && !signDeptId){ + signUserId = true; + wrapper.eq(entry.getKey(), val); } else { wrapper.like(entry.getKey(), val); } + } + if (!signUserId && !signDeptId){ + wrapper.eq("user_id", getUserId()); + } + if (signHostId){ + wrapper.or().eq("host_id",1); } } @@ -102,16 +121,22 @@ contract.setDeptId(getDeptId()); contract.setCreateTime(now); - contract.setSettle(0); + contract.setSettle(1); - User manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 + User manager = new User(); + try{ + manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗 + }catch (Exception e){ + manager = getUser(); + } + contract.setDirector(manager.getId()); List<String> initNames = new ArrayList<>(); - initNames.add("鍒涘缓浜у搧璐圭敤鏄庣粏妯℃澘"); - initNames.add("鎻愪氦浜у搧璐圭敤鏄庣粏"); + initNames.add("鍒涘缓鍚堝悓妯℃澘"); + initNames.add("鎻愪氦鍚堝悓"); initNames.add("閮ㄩ棬缁忕悊瀹℃牳"); ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 7).eq("process", "3-1" ));//7锛氬悎鍚岀鐞� User president = userService.selectById(processPermissions.getUserId()); - initNames.add("鎬昏鍔�"+president.getNickname()+"瀹℃牳"); + initNames.add("鎬荤粡鍔�"+president.getNickname()+"瀹℃牳"); initNames.add("涓氬姟鍛樼‘璁�"); contract.setSettleMsg(JSON.toJSONString(SettleDto.initContract(manager,getUser(),president,initNames,4))); @@ -215,7 +240,11 @@ /////////////////////////鐢熸垚Tab琛ㄦ牸鏁版嵁///////////////////////// String fileName = this.getClass().getClassLoader().getResource("contractTemplate/" + contractTemplate + ".docx").getPath();//鑾峰彇鏂囦欢璺緞 - return WordUtils.generate(fileName, map, tabParam); + +// String outPdfPath = fileName.split("\\.")[0]+".pdf"; + ResponseEntity<InputStreamResource> generate = WordUtils.generate(fileName, map, tabParam); +// WordUtils.documents4jWordToPdf(fileName,outPdfPath); + return generate; } catch (Exception e) { return null; } @@ -326,18 +355,15 @@ return R.ok().add(vos); } - @PostMapping(value = "/contracr/approval/auth") + @PostMapping(value = "/contract/approval/auth") @ManagerAuth - public R approvalBusinessTrip(@RequestParam Long contracrId, + public R approvalBusinessTrip(@RequestParam Long contractId, @RequestParam(required = false) Long plannerId){ - Contract contract = contractService.selectById(contracrId); + Contract contract = contractService.selectById(contractId); assert contract != null; Date now = new Date(); switch (contract.getSettle()) { case 0: - User user2 = userService.selectById(contract.getUserId()); - User manager1 = userService.getDeptManager(getHostId(), user2.getDeptId()); - if (Cools.isEmpty(getUser())) { return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); } @@ -356,6 +382,9 @@ dto.setMsg(getUser().getNickname() + "鎻愪氦瀹屾垚"); dto.setTime(DateUtils.convert(now)); break; + case 2: + contract.setDirector(dto.getUserId()); + break; default: break; } @@ -371,8 +400,8 @@ break; case 1: // 鏈儴闂ㄧ粡鐞嗗鏍� - User user = userService.selectById(contract.getUserId()); - User manager = userService.getDeptManager(getHostId(), user.getDeptId()); + User manager = userService.selectById(contract.getDirector()); + if (manager.getId().equals(getUserId())) { // 淇敼 settle 姝ラ鏁版嵁 @@ -386,6 +415,9 @@ dto.setCurr(Boolean.TRUE); dto.setMsg("閮ㄩ棬缁忕悊" + manager.getNickname() + "瀹℃壒閫氳繃"); dto.setTime(DateUtils.convert(now)); + break; + case 3: + contract.setDirector(dto.getUserId()); break; default: break; @@ -404,8 +436,7 @@ } break; case 2: - ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 7).eq("process", "3-1"));//3锛氭姤閿�娴佺▼ - User planLeader = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鍚堝悓绠$悊娴佺▼鑺傜偣纭浜� + User planLeader = userService.selectById(contract.getDirector()); if (planLeader.getId().equals(getUserId())) { @@ -421,6 +452,9 @@ dto.setMsg("鎬昏鍔�" + planLeader.getNickname() + "瀹℃壒閫氳繃"); dto.setTime(DateUtils.convert(now)); break; + case 4: + contract.setDirector(dto.getUserId()); + break; default: break; } -- Gitblit v1.9.1