From b6dd47b05107fc36d8ff4f7f29a4446521f95503 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 02 一月 2025 18:44:28 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java | 122 ++++++++++++++++++++++++++++------------ 1 files changed, 85 insertions(+), 37 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java index 0656f3a..e8adf33 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java @@ -1,7 +1,6 @@ package com.ruoyi.web.controller.project; import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.annotation.NotRepeatCommit; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.HttpStatus; @@ -13,15 +12,17 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.dto.ServiceReimbursementDto; import com.ruoyi.project.domain.vo.CheckFundVO; +import com.ruoyi.project.domain.vo.DingTalkReqVo; import com.ruoyi.project.domain.vo.SpFinancialExpensesIn; import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut; import com.ruoyi.project.service.*; +import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysPostService; +import com.ruoyi.system.service.ISysUserService; import com.ruoyi.web.controller.enums.PersonType; import freemarker.template.Configuration; import freemarker.template.Template; @@ -39,6 +40,7 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -57,6 +59,9 @@ @Autowired private IServiceReimbursementService serviceReimbursementService; +// @Autowired +// private MergeFilesToPDFUtils mergeFilesToPDFUtils; + @Autowired private IServiceReimbursementSharedService serviceReimbursementSharedService; @@ -73,10 +78,10 @@ private IServiceFundflowService serviceFundflowService; @Autowired - private IServiceFundService serviceFundService; + private DingTalkService dingTalkService; @Autowired - private IBaseOnlyvalueService baseOnlyvalueService; + private ISysUserService sysUserService; @Autowired private ISysPostService postService; @@ -99,7 +104,7 @@ * 鏌ヨ鎶ラ攢鐢宠鍒楄〃 */ @ApiOperation("鏌ヨ鎶ラ攢鐢宠鍒楄〃") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:list')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:list')") @Log(title = "鏌ヨ鎶ラ攢鐢宠鍒楄〃", businessType = BusinessType.OTHER) @GetMapping("/list") public TableDataInfo list(ServiceReimbursement serviceReimbursement) { @@ -175,7 +180,7 @@ Collections.sort(list, new Comparator<SpFinancialExpensesReimbursementOut>() { @Override public int compare(SpFinancialExpensesReimbursementOut o1, SpFinancialExpensesReimbursementOut o2) { - return o1.getCreateTime().compareTo(o2.getCreateTime()); + return o1.getApplyTime().compareTo(o2.getApplyTime()); } }); return getCustomDataTable(list, pageNum, pageSize); @@ -185,7 +190,7 @@ * 瀵煎嚭鎶ラ攢鐢宠鍒楄〃 */ @ApiOperation("瀵煎嚭鎶ラ攢鐢宠鍒楄〃") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:export')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:export')") @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ServiceReimbursement serviceReimbursement) { @@ -198,7 +203,7 @@ * 鑾峰彇鎶ラ攢鐢宠璇︾粏淇℃伅 */ @ApiOperation("鑾峰彇鎶ラ攢鐢宠璇︾粏淇℃伅") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:query')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(serviceReimbursementService.getById(id)); @@ -218,21 +223,33 @@ * 鏂板鎶ラ攢鐢宠 */ @ApiOperation("鏂板鎶ラ攢鐢宠") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:add')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:add')") @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.INSERT) - @PostMapping + @PostMapping("/add") @RepeatSubmit @Options(useGeneratedKeys = true, keyProperty = "id") public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) { if (!Objects.isNull(serviceReimbursement)) { serviceReimbursement.setCreateTime(new Date()); serviceReimbursement.setCheckstatus(serviceReimbursement.getCheckstatus() == null ? 1 : serviceReimbursement.getCheckstatus()); + serviceReimbursement.setUploadStates(0); boolean b = serviceReimbursementService.save(serviceReimbursement); Long id = serviceReimbursement.getId(); return AjaxResult.success(id); } return error(); } + +// /** +// * 宸梾璐逛笂鎶� +// */ +// @ApiOperation("宸梾璐逛笂鎶�") +// @Log(title = "宸梾璐逛笂鎶�", businessType = BusinessType.OTHER) +// @PostMapping("/test") +// public AjaxResult test(@RequestBody CheckFundVO checkFundVO) { +// mergeFilesToPDFUtils.generatePdf(checkFundVO.getFileNames(), checkFundVO.getOutputFile()); +// return AjaxResult.success(200); +// } /** @@ -244,14 +261,26 @@ public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) { ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid()); serviceReimbursement.setApplyTime(new Date()); + Long flowLavel = null; + + LoginUser loginUser = getLoginUser(); + SysUser user = loginUser.getUser(); + + //鏌ヨ蹇呭浜� + ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule(); + serviceFundflowrule.setApplytype("0"); + serviceFundflowrule.setMustAudite(1); + serviceFundflowrule.setDel_flag(0); + List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule); + log.info("reimbursement蹇呭浜虹殑绛夌骇涓猴細{}", serviceFundflowrules.get(0).getFlowlevel()); + //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�; if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) { if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) { -// if (serviceReimbursement.getBackflowlevel() == 199) { //灏嗛��鍥為樁娈佃缃垚100 serviceReimbursement.setBackflowlevel(100L); //閫�鍥炲啀鎻愪氦锛岄渶瑕佸啀鍒板嚭绾抽偅閲� - serviceReimbursement.setFlowlevel(1L); + serviceReimbursement.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); serviceReimbursement.setRecordstatus(2); serviceReimbursementService.updateById(serviceReimbursement); @@ -259,9 +288,9 @@ // serviceReimbursementService.addSharedData(checkFundVO.getFundid()); return success(); - } else if (serviceReimbursement.getBackflowlevel() == 2) { - //鑱傜閫�鍥炵殑锛屼篃闇�瑕佽蛋鍑虹撼閭i噷 - serviceReimbursement.setFlowlevel(1L); + } else if (serviceReimbursement.getBackflowlevel() >= Long.valueOf(serviceFundflowrules.get(0).getFlowlevel())) { + //蹇呭浜洪瀵奸��鍥炵殑锛屼篃闇�瑕佽蛋蹇呭浜洪偅閲� + serviceReimbursement.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); serviceReimbursement.setRecordstatus(2); serviceReimbursementService.updateById(serviceReimbursement); return success(); @@ -269,8 +298,6 @@ } if (serviceReimbursement != null) { Integer TotalLevel = 0; - LoginUser loginUser = getLoginUser(); - SysUser user = loginUser.getUser(); List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId()); if (!postids.contains(2)) { @@ -278,8 +305,8 @@ if (serviceReimbursement.getBackflowlevel() != null) { serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel()); } else { - serviceReimbursement.setBackflowlevel(1L); - serviceReimbursement.setFlowlevel(1L); + serviceReimbursement.setBackflowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); + serviceReimbursement.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); } } else { serviceReimbursement.setRecordstatus(0); @@ -301,7 +328,8 @@ serviceFundflow.setApplytype("0"); serviceFundflow.setFlowconclusion(1); serviceFundflow.setFlowcontent("闈炰笓鑱屼汉鍛樼洿鎺ヨ繘鍏ヤ簩绾у鏍�"); - serviceFundflow.setFlowlevel(1); + + serviceFundflow.setFlowlevel(serviceFundflowrules.get(0).getFlowlevel() - 1); serviceFundflowService.save(serviceFundflow); } @@ -368,12 +396,15 @@ } if (serviceReimbursement.getFlowlevel() == 1 && serviceReimbursement.getBackflowlevel() == 100) { - log.info("鍑哄樊琛ヨ创琚� 璐㈠姟閫�鍥炲啀鎻愪氦锛屽嚭绾冲啀娆″鎵癸紝涔嬪悗鎻愪氦鍒拌储鍔�"); + log.info("鍑哄樊琛ヨ创琚� 璐㈠姟閫�鍥炲啀鎻愪氦锛屽嚭绾冲啀娆″鎵癸紝涔嬪悗鎻愪氦鍒拌储鍔�:{}", serviceReimbursement.getId()); //璇存槑鏄储鍔¢��鍥炲啀鎻愪氦鐨�.闇�瑕佸嚭绾冲啀鐪嬩竴閬嶏紝娌¢棶棰樹箣鍚庯紝寰�鍒嗕韩琛ㄩ噷鏂板 - serviceReimbursementService.addSharedData(serviceReimbursement.getId()); - serviceReimbursement.setFlowlevel(100L); +// serviceReimbursementService.addSharedData(serviceReimbursement.getId()); + + serviceReimbursement.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue()); serviceReimbursement.setRecordstatus(99); - serviceReimbursementService.updateById(serviceReimbursement); + serviceReimbursement.setUploadStates(1); + boolean b = serviceReimbursementService.updateById(serviceReimbursement); + log.info("鏄惁淇敼鎴愬姛:{}", b); //淇濆瓨瀹℃壒娴佺▼琛� ServiceFundflow serviceFundflow = new ServiceFundflow(); @@ -407,8 +438,19 @@ FlowLevel = 0; } } - - + SysUser sysUser = sysUserService.selectUserByUserName(serviceReimbursement.getUserno()); + ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>(); + ConcurrentHashMap map = new ConcurrentHashMap(); + map.put("瀹℃壒浜猴細", loginUser.getUser().getUserName()); + map.put("瀹℃壒鏃堕棿锛�", new Date()); + map.put("鎰忚锛�", "涓嶉�氳繃"); + if (StringUtils.isNotBlank(checkFundVO.getFlowcontent())) map.put("鎰忚锛�", checkFundVO.getFlowcontent()); + contentList.add(map); + DingTalkReqVo dingTalkReqVo = new DingTalkReqVo(); + dingTalkReqVo.setTitle("璐㈠姟绯荤粺椹冲洖淇℃伅"); + dingTalkReqVo.setNumber(sysUser.getPhonenumber()); + dingTalkReqVo.setContents(contentList); + dingTalkService.sendNotification(dingTalkReqVo); } serviceReimbursement.setRecordstatus(RecordStatus); @@ -447,9 +489,10 @@ } } - //001瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂 - if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("001")) { + //053瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂 + if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("053")) { serviceReimbursement.setOfficedirector(user.getNickName()); + serviceReimbursement.setUploadStates(1); } serviceReimbursementService.updateById(serviceReimbursement); @@ -463,21 +506,25 @@ serviceSystemmessage.setReceiveusername(serviceReimbursement.getUsername()); serviceSystemmessage.setIsread(0); serviceSystemmessage.setMessagetype(1); + serviceSystemmessage.setUpdateTime(new Date()); + serviceSystemmessage.setUpdateBy(user.getNickName()); serviceSystemmessage.setRelevantno(serviceReimbursement.getId()); log.info("CheckFlag鐨勫�� : {}", CheckFlag); if (CheckFlag == 1) { //閫氳繃 serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁�氳繃"); - serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫叧浜庢崘鐚渚嬨��" + serviceReimbursement.getDonorname() + "銆戠殑宸梾璐圭敵璇峰凡閫氳繃" + (OriginalFlowLevel + 1) + "绾у鏍�"); + serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫樊鏃呮姤閿�鍗曠敵璇峰凡閫氳繃"); log.info("totalLevel鐨勫�� : {}, OriginalFlowLevel鐨勫��:{}", totalLevel, OriginalFlowLevel); - if (totalLevel == OriginalFlowLevel + 1) { - //鎵�鏈夋暟鎹柊澧炲埌澶囦唤琛� - serviceReimbursementService.addSharedData(checkFundVO.getFundid()); - } + + //杩欎竴鍧楁斁瀹氭椂浠诲姟閲屽仛 +// if (totalLevel == OriginalFlowLevel + 1) { +// //鎵�鏈夋暟鎹柊澧炲埌澶囦唤琛� +// serviceReimbursementService.addSharedData(checkFundVO.getFundid()); +// } } else { //椹冲洖 serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁┏鍥�"); - serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫叧浜庢崘鐚渚嬨��" + serviceReimbursement.getDonorname() + "銆戠殑宸梾璐圭敵璇峰凡琚�" + (OriginalFlowLevel + 1) + "绾у鏍搁┏鍥烇紝鍘熷洜涓�" + checkFundVO.getFlowcontent() + ""); + serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫樊鏃呮姤閿�鍗曠敵璇疯椹冲洖锛屽師鍥�:" + checkFundVO.getFlowcontent() + ""); } ServiceSystemmessage.save(serviceSystemmessage); @@ -492,7 +539,7 @@ * 淇敼鎶ラ攢鐢宠 */ @ApiOperation("淇敼鎶ラ攢鐢宠") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:edit')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:edit')") @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.UPDATE) @PostMapping("/reimbursementEdit") @RepeatSubmit @@ -508,7 +555,7 @@ * 淇敼鎶ラ攢鐢宠 */ @ApiOperation("淇敼鎶ラ攢鐢宠") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:edit')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:edit')") @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER) @PostMapping("/editMoney") public AjaxResult editMoney(@RequestBody List<ReimbursementService> serviceReimbursement) { @@ -523,7 +570,7 @@ * 鍒犻櫎鎶ラ攢鐢宠 */ @ApiOperation("鍒犻櫎鎶ラ攢鐢宠") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:remove')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:remove')") @Log(title = "鎶ラ攢鐢宠") @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { @@ -585,6 +632,7 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } -- Gitblit v1.9.3