From cb3870820f63e6f7ba595d80dcbbfd3deae6fdf6 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 07 十一月 2023 17:49:28 +0800 Subject: [PATCH] # --- src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java | 542 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 377 insertions(+), 165 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..a78fcc4 100644 --- a/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java +++ b/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java @@ -16,6 +16,7 @@ import com.zy.crm.common.web.BaseController; import com.zy.crm.manager.entity.*; import com.zy.crm.manager.service.*; +import com.zy.crm.manager.utils.CompanySearchUtils; import com.zy.crm.system.entity.User; import com.zy.crm.system.service.UserService; import org.springframework.beans.factory.annotation.Autowired; @@ -42,13 +43,21 @@ private PlanService planService; @Autowired - private PriSalesService priSalesService; + private PlanTypeService planTypeService; + + @Autowired + private ProcessPermissionsService processPermissionsService; + + @Autowired + private PriQuoteService priQuoteService; @Autowired private CstmrService cstmrService; @Autowired private UserService userService; + + String PZH = " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� "; @RequestMapping(value = "/priOnline2/{id}/auth") @ManagerAuth @@ -57,7 +66,7 @@ assert priOnline2 != null; JSONObject resultObj = JSON.parseObject(JSON.toJSONString(priOnline2)); // 姝ラ鏉$浉鍏� - resultObj.put("step", priOnline2.getSettle() == 4 ? 0 : priOnline2.getSettle() + 1); + resultObj.put("step", priOnline2.getSettle().equals(priOnline2.getSettleSize()) ? 0 : priOnline2.getSettle() + 1); return R.ok().add(resultObj); } @@ -73,56 +82,134 @@ @RequestMapping(value = "/priOnline2/list/auth") @ManagerAuth - public R list(@RequestParam(defaultValue = "1")Integer curr, - @RequestParam(defaultValue = "10")Integer limit, - @RequestParam(required = false)String orderByField, - @RequestParam(required = false)String orderByType, - @RequestParam(required = false)String condition, - @RequestParam Map<String, Object> param){ + public R list(@RequestParam(defaultValue = "1") Integer curr, + @RequestParam(defaultValue = "10") Integer limit, + @RequestParam(required = false) String orderByField, + @RequestParam(required = false) String orderByType, + @RequestParam(required = false) String condition, + @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.setSqlSelect("id,title,create_time as createTime,filepath,settle,settle_size as settleSize,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")); excludeTrash(param); convert(param, wrapper); allLike(PriOnline2.class, param.keySet(), wrapper, condition); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + 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(); + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { boolean signUserId = false; boolean signDeptId = false; - for (Map.Entry<String, Object> entry : map.entrySet()){ - if (entry.getKey().equals("dept_id")){ + 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()){ + for (Map.Entry<String, Object> entry : map.entrySet()) { String val = String.valueOf(entry.getValue()); - if (val.contains(RANGE_TIME_LINK)){ + 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")){ + } else if (entry.getKey().equals("dept_id")) { + if (!val.equals("19")) { wrapper.eq(entry.getKey(), val); } - } else if (entry.getKey().equals("user_id") && !signDeptId){ + } 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 (!signUserId && !signDeptId) { + if (getRole().getId() == 1) { + wrapper.or().eq("host_id", 1); + } else if (getRole().getId() == 2) { + wrapper.eq("dept_id", getDeptId()); + } else { + wrapper.eq("user_id", getUserId()); + } + } + if (signHostId) { + wrapper.or().eq("host_id", 1); } } + @RequestMapping(value = "/priOnline2/HJ/add/auth") + @ManagerAuth(memo = "鎺ュ彇闆嗘垚鏍镐环浠诲姟") + public R addHJ(PriOnline2 priOnline2) { + PriOnline2 priOnline21 = priOnline2Service.selectById(priOnline2.getId()); + if (priOnline21.getSettle()!=1 || !priOnline21.getMemberId().equals(0L)){ + return R.error("姝ら泦鎴愭牳浠峰崟鐘舵�佸凡鏀瑰彉锛岃鍒锋柊椤甸潰閲嶆柊閫夋嫨锛�"); + } + Date now = new Date(); + priOnline21.setMemberId(getUserId()); + + + List<SettleDto> planDtos = JSON.parseArray(priOnline21.getSettleMsg(), SettleDto.class); + List<SettleDto> planDtoList = new ArrayList<>(); + for (SettleDto dto : planDtos) { + if (dto.getStep().equals(2)) { + dto.setUserId(getUserId()); + dto.setUsername(getUser().getNickname()); + if (Cools.isEmpty(dto.getMsg())) { + dto.setMsg(getUser().getNickname() + "鎺ュ彇鏍镐环"); + } else { + dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + getUser().getNickname() + "鎺ュ彇鏍镐环"); + } + dto.setTime(DateUtils.convert(new Date())); + } + planDtoList.add(dto); + } + priOnline21.setSettleMsg(JSON.toJSONString(planDtoList)); + priOnline21.setUpdateUserId(getUserId()); + priOnline21.setUpdateTime(now); + priOnline2Service.updateById(priOnline21); + return R.ok("鎺ュ彇鎴愬姛"); + } + + @RequestMapping(value = "/priOnline2/HJ/search/auth") + @ManagerAuth + public R priOnline2Search(String condition) { + EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>(); + wrapper.like("template_name", condition); + wrapper.eq("member_id",0L); + + List<ProcessPermissions> processPermissionsList = processPermissionsService.selectList(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5));//2锛氭牳浠锋祦绋� + int type =0; + for (ProcessPermissions processPermissions:processPermissionsList){ + if (getUserId().equals(processPermissions.getUserId())){ + type=1; + break; + } + } + if (type==0){ + return R.error("浣犱笉鏄牳浠峰憳,鏃犳潈鎺ヤ换鍔�"); + } + List<Map<String, Object>> result = new ArrayList<>(); + + List<PriOnline2> priOnline2s = priOnline2Service.selectList(wrapper); + for (PriOnline2 priOnline2 : priOnline2s){ + Map<String, Object> map = new HashMap<>(); + map.put("id", priOnline2.getId()); + map.put("name", priOnline2.getTemplateName()+" - ID:"+priOnline2.getId()); + result.add(map); + } + return R.ok(result); + } + @RequestMapping(value = "/priOnline2/add/auth") @ManagerAuth(memo = "娣诲姞鏍镐环绠$悊") - public R add(@RequestBody Map<String,Object> map) { + public R add(@RequestBody Map<String, Object> map) { PriOnline2 priOnline2 = new PriOnline2(); priOnline2.setCreateTime(new Date()); priOnline2.setTitle(map.get("title").toString()); @@ -131,37 +218,70 @@ priOnline2.setItemId(Long.parseLong(map.get("itemId").toString())); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); priOnline2.setOrderNum(format.format(new Date())); - //鍒涘缓浜哄憳 - priOnline2.setUserId(getUserId()); - //鍒涘缓浜哄憳閮ㄩ棬 - priOnline2.setDeptId(getDeptId()); - //鏇存柊鏃堕棿 - priOnline2.setUpdateTime(new Date()); - //鏇存柊浜哄憳 - priOnline2.setUpdateUserId(getUserId()); - //鐘舵�侊紝鏈畬鎴� - priOnline2.setStatus(0); //涓氬姟鍛� // Item item = itemService.selectById(priOnline.getItemId()); Plan plan = planService.selectById(priOnline2.getItemId()); - priOnline2.setMemberId(plan.getUserId()); + User userUp = userService.selectById(plan.getUserId()); + + //涓氬姟鍛� + priOnline2.setUserId(userUp.getId()); + //涓氬姟鍛橀儴闂� + priOnline2.setDeptId(userUp.getDeptId()); + //鏇存柊浜哄憳 + priOnline2.setUpdateUserId(getUserId()); + //鏇存柊鏃堕棿 + priOnline2.setUpdateTime(new Date()); + + //鐘舵�侊紝鏈畬鎴� + priOnline2.setStatus(0); + + if (plan.getStatus() != 1) { + return R.error("姝よ鍒掑崟鐘舵�佹敼鍙橈紝璇峰埛鏂伴〉闈㈤噸鏂伴�夋嫨锛�"); + } + priOnline2.setMemberId(getUserId()); Cstmr cstmr = cstmrService.selectById(plan.getCstmrId()); priOnline2.setTemplateName(cstmr.getName()); //鐢叉柟鍗曚綅鍚嶇О 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", "2-1"));//2锛氭牳浠锋祦绋� +// User manager = userService.selectById(processPermissions.getUserId()); // 鑾峰彇鏍镐环娴佺▼鑺傜偣2纭浜� + + // 鑾峰彇涓氬姟鍛� List<String> initNames = new ArrayList<>(); - initNames.add("鍒涘缓鏍镐环鍗曟ā鏉�"); - initNames.add("鎻愪氦鏍镐环"); - initNames.add("閮ㄩ棬缁忕悊瀹℃牳"); + initNames.add("鎺ュ彇鏍镐环浠诲姟"); + initNames.add("瀹屾垚鏍镐环"); + if (planType.getType().equals(2)) { + initNames.add("瀹屾垚鏍镐环"); + } +// initNames.add("缁忕悊瀹℃牳"); initNames.add("涓氬姟鍛樼‘璁�"); - priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.initSalesPricing(manager,getUser(),initNames,3))); + List<User> users = new ArrayList<>(); + users.add(getUser()); + users.add(getUser()); + if (planType.getType().equals(2)) { + users.add(new User()); + } + users.add(userUp); + priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.InItFlowPath(users, initNames, users.size()))); + priOnline2.setSettleSize(users.size()); + priOnline2.setPlanId(plan.getId()); //璁剧疆椤圭洰娴佺▼ plan.setStep(2); + plan.setStatus(2); planService.updateById(plan); priOnline2Service.insert(priOnline2); @@ -170,7 +290,7 @@ @RequestMapping(value = "/priOnline2/addOther/auth") @ManagerAuth(memo = "鍙﹀瓨鏍镐环绠$悊") - public R addOther(@RequestBody Map<String,Object> map) { + public R addOther(@RequestBody Map<String, Object> map) { PriOnline2 online = priOnline2Service.selectById(Long.parseLong(map.get("id").toString())); PriOnline2 priOnline2 = new PriOnline2(); @@ -200,9 +320,9 @@ return R.ok(); } - @RequestMapping(value = "/priOnline2/update/auth") - @ManagerAuth(memo = "鏇存柊鏍镐环绠$悊") - public R update(@RequestBody Map<String,Object> map){ + @RequestMapping(value = "/priOnline2/update/auth") + @ManagerAuth(memo = "鏇存柊鏍镐环绠$悊") + public R update(@RequestBody Map<String, Object> map) { PriOnline2 priOnline2 = priOnline2Service.selectById(Long.parseLong(map.get("id").toString())); if (priOnline2.getStatus() == 1) { return R.error("鏍镐环宸插畬鎴愶紝绂佹淇濆瓨"); @@ -220,7 +340,7 @@ //鏇存柊鐘舵�� @RequestMapping(value = "/priOnline2/updateForm/auth") @ManagerAuth(memo = "鏇存柊鏍镐环绠$悊鐘舵��") - public R updateForm(Long id,Integer status,String title,String templateName){ + public R updateForm(Long id, Integer status, String title, String templateName) { PriOnline2 priOnline2 = priOnline2Service.selectById(id); priOnline2.setStatus(status); priOnline2.setUpdateTime(new Date()); @@ -234,7 +354,7 @@ @ManagerAuth(memo = "涓婁紶璇环鏂囦欢") public R uploadCheck(@RequestParam("id") Integer id, @RequestParam("checkData") String checkData, - @RequestParam("file") MultipartFile[] files){ + @RequestParam("file") MultipartFile[] files) { PriOnline2 priOnline2 = priOnline2Service.selectById(id); if (priOnline2.getStatus() == 1) { return R.error("鏍镐环宸插畬鎴愶紝绂佹涓婁紶"); @@ -244,7 +364,7 @@ MultipartFile file = files[0]; SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss"); - String path = ClassUtils.getDefaultClassLoader().getResource("excel/uploadCheckData").getPath(); + String path = ClassUtils.getDefaultClassLoader().getResource("excel/uploadCheckData").getPath(); //鏂囦欢鍚庣紑鍚� String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); //涓婁紶鏂囦欢鍚� @@ -255,7 +375,7 @@ //鏈嶅姟鍣ㄧ淇濆瓨鐨勬枃浠跺璞� File serverFile = new File(filepath); - if(!serverFile.exists()) { + if (!serverFile.exists()) { try { //鍒涘缓鏂囦欢 serverFile.createNewFile(); @@ -301,23 +421,38 @@ @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("瀛樺湪鍏宠仈鐨勪骇鍝佽垂鐢ㄦ槑缁嗭紝绂佹鍒犻櫎锛侊紒锛�"); + public R delete(Long[] ids) { + 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") @ManagerAuth - public R export(@RequestBody JSONObject param){ + public R export(@RequestBody JSONObject param) { EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>(); List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); Map<String, Object> map = excludeTrash(param.getJSONObject("priOnline")); @@ -331,10 +466,10 @@ 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()){ + 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$()); @@ -344,11 +479,31 @@ 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.getUser$() + "/" + priOnline2.getTemplateName()); + + result.add(map); + } + return R.ok(result); + } + @RequestMapping(value = "/priOnline2/check/column/auth") @ManagerAuth public R query(@RequestBody JSONObject param) { Wrapper<PriOnline2> wrapper = new EntityWrapper<PriOnline2>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); - if (null != priOnline2Service.selectOne(wrapper)){ + if (null != priOnline2Service.selectOne(wrapper)) { return R.parse(BaseRes.REPEAT).add(getComment(PriOnline2.class, String.valueOf(param.get("key")))); } return R.ok(); @@ -363,120 +518,177 @@ return R.ok().add(vos); } + @PostMapping(value = "/priOnline2/approvalEnd/auth") + @ManagerAuth(memo = "鎷掔粷鐢宠鍗�") + public R approvalEnd(@RequestParam Long priOnlineId, + @RequestParam(required = false) Long plannerId) { + PriOnline2 priOnline2 = priOnline2Service.selectById(priOnlineId); + Date now = new Date(); + Long memberId = priOnline2.getMemberId(); + User member = userService.selectById(memberId); + if (!member.getId().equals(getUserId())) { + return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�"); + } + List<SettleDto> planDtos = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); + List<SettleDto> planDtoList = new ArrayList<>(); + boolean sign = true; + for (SettleDto dto : planDtos) { + if (dto.getStep().equals(1)) { + priOnline2.setMemberId(dto.getUserId()); + } + if (sign && dto.getUserId().equals(memberId) && priOnline2.getSettle() + 1 == dto.getStep()) { + if (Cools.isEmpty(dto.getMsg())) { + dto.setMsg(DateUtils.convert(now) + " " + member.getNickname() + "鍥為��瀹℃壒"); + } else { + dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + member.getNickname() + "鍥為��瀹℃壒"); + } + sign = false; + } + if (sign) { + dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + member.getNickname() + "鍥為��瀹℃壒"); + } + + planDtoList.add(dto); + } + priOnline2.setStatus(0); + priOnline2.setSettle(0); + priOnline2.setUpdateUserId(getUserId()); + priOnline2.setUpdateTime(now); + + priOnline2.setSettleMsg(JSON.toJSONString(planDtoList)); + priOnline2Service.updateById(priOnline2); + return R.ok("鍥為��鎴愬姛"); + } + @PostMapping(value = "/priOnline2/approval/auth") @ManagerAuth public R approvalBusinessTrip(@RequestParam Long priOnlineId, - @RequestParam(required = false) Long plannerId){ + @RequestParam(required = false) Long plannerId) { PriOnline2 priOnline2 = priOnline2Service.selectById(priOnlineId); assert priOnline2 != null; Date now = new Date(); - switch (priOnline2.getSettle()) { - case 0: - User user2 = userService.selectById(priOnline2.getUserId()); - User manager1 = userService.getDeptManager(getHostId(), user2.getDeptId()); + Long nextUserId = getUserId(); + User user = new User(); + List<SettleDto> list = new ArrayList<>(); - if (Cools.isEmpty(getUser())) { - return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); - } - if (!getUserId().equals(getUser().getId())) { - return R.error("鎶辨瓑锛屾偍娌℃湁鎻愪氦鐨勬潈闄�"); - } - // 淇敼 settle 姝ラ鏁版嵁 - List<SettleDto> list1 = JSON.parseArray(priOnline2.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; - } - } - priOnline2.setSettleMsg(JSON.toJSONString(list1)); - // 淇敼瑙勫垝鍗曠姸鎬� - priOnline2.setSettle(1); - priOnline2.setUpdateUserId(getUserId()); - priOnline2.setUpdateTime(now); - priOnline2.setMemberId(manager1.getId()); + user = userService.selectById(priOnline2.getMemberId()); - if (!priOnline2Service.updateById(priOnline2)) { - throw new CoolException("鎻愪氦澶辫触锛岃鑱旂郴绠$悊鍛�"); - } - break; - case 1: - // 鏈儴闂ㄧ粡鐞嗗鏍� - User user = userService.selectById(priOnline2.getUserId()); - User manager = userService.getDeptManager(getHostId(), user.getDeptId()); - if (manager.getId().equals(getUserId())) { - - // 淇敼 settle 姝ラ鏁版嵁 - List<SettleDto> list = JSON.parseArray(priOnline2.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(now)); - break; - default: - break; - } - } - priOnline2.setSettleMsg(JSON.toJSONString(list)); - - // 淇敼瑙勫垝鍗曠姸鎬� - priOnline2.setSettle(2); // 鐢宠閫氳繃 - priOnline2.setUpdateTime(now); - if (!priOnline2Service.updateById(priOnline2)) { - throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�"); - } - } else { - return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄愶紒锛侊紒"); - } - break; - case 2: - // 涓氬姟鍛� - User salesman0 = userService.selectById(priOnline2.getUserId()); - if (!getUserId().equals(salesman0.getId())) { - return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�"); - } - // 淇敼 settle 姝ラ鏁版嵁 - List<SettleDto> list2 = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); - for (SettleDto dto : list2) { - switch (dto.getStep()) { - case 2: - dto.setCurr(Boolean.TRUE); - break; - case 3: - dto.setCurr(Boolean.TRUE); - dto.setMsg("涓氬姟鍛�" + salesman0.getNickname() + "浠ョ‘璁�"); - dto.setTime(DateUtils.convert(new Date())); - break; - default: - break; - } - } - priOnline2.setSettleMsg(JSON.toJSONString(list2)); - // 淇敼瑙勫垝鍗曠姸鎬� - priOnline2.setSettle(3); // 瀹℃壒閫氳繃 - priOnline2.setUpdateTime(new Date()); - - if (!priOnline2Service.updateById(priOnline2)) { - throw new CoolException("纭澶辫触锛岃鑱旂郴绠$悊鍛�"); - } - break; - default: - return R.error(); + if (Cools.isEmpty(getUser()) || Cools.isEmpty(user)){ + return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�"); } + + if (!getUserId().equals(user.getId())) { + return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�"); + } + // 淇敼 settle 姝ラ鏁版嵁 + list = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class); + for (SettleDto dto : list) { + if (dto.getStep().equals(priOnline2.getSettle())) { + dto.setCurr(Boolean.TRUE); + } else if (dto.getStep().equals(priOnline2.getSettle() + 1)) { + dto.setCurr(Boolean.TRUE); + if (Cools.isEmpty(dto.getMsg())) { + dto.setMsg(user.getNickname() + "瀹℃壒閫氳繃"); + } else { + dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(new Date()) + " " + user.getNickname() + "瀹℃壒閫氳繃"); + } + dto.setTime(DateUtils.convert(new Date())); + } else if (dto.getStep().equals(priOnline2.getSettle() + 2)) { + if (Cools.isEmpty(dto.getUserId())){ + nextUserId= 0L; + }else { + nextUserId=dto.getUserId(); + } + } + } + priOnline2.setSettleMsg(JSON.toJSONString(list)); + // 淇敼瑙勫垝鍗曠姸鎬� + priOnline2.setSettle(priOnline2.getSettle() + 1); // 瀹℃壒閫氳繃 + if (user.getId().equals(priOnline2.getUserId())) { + priOnline2.setStatus(1); + } + priOnline2.setUpdateTime(now); + priOnline2.setUpdateUserId(getUserId()); + priOnline2.setMemberId(nextUserId); + + if (!priOnline2Service.updateById(priOnline2)) { + throw new CoolException("纭澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + if (user.getId().equals(priOnline2.getUserId())) { + try { + priQuoteAdd(priOnline2.getId(), plannerId); + } catch (Exception e) { + return R.error("鑷姩鐢熸垚鎶ヤ环鍗曞け璐�"); + } + } + 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())); + //涓氬姟鍛� + Plan plan = planService.selectById(priQuote.getItemId()); + User userUp = userService.selectById(plan.getUserId()); + //涓氬姟鍛� + priQuote.setUserId(userUp.getId()); + //鏇存柊浜哄憳 + priQuote.setUpdateUserId(getUserId()); + //鎵�灞為儴闂� + priQuote.setDeptId(userUp.getDeptId()); + //鏇存柊鏃堕棿 + priQuote.setUpdateTime(new Date()); + //妯℃澘 + Integer i = priType == 1L ? 1 : 2; + priQuote.setTemplate(i.toString()); + + //璁剧疆椤圭洰娴佺▼ + plan.setStep(3); + +// 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(); + } + priQuote.setMemberId(manager.getId()); + + 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