From 65314b14210a175bae095649584614973b3619df Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 12 八月 2025 13:48:14 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java | 251 +++++++++++++------------------------------------- 1 files changed, 65 insertions(+), 186 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 35e47e0..10fe981 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,29 +1,27 @@ 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; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.page.TableDataInfo; 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; @@ -41,6 +39,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; @@ -59,6 +58,9 @@ @Autowired private IServiceReimbursementService serviceReimbursementService; +// @Autowired +// private MergeFilesToPDFUtils mergeFilesToPDFUtils; + @Autowired private IServiceReimbursementSharedService serviceReimbursementSharedService; @@ -75,16 +77,13 @@ private IServiceFundflowService serviceFundflowService; @Autowired - private ISysDeptService sysDeptService; + private DingTalkService dingTalkService; @Autowired - private IBaseOnlyvalueService baseOnlyvalueService; + private ISysUserService sysUserService; @Autowired private ISysPostService postService; - - @Autowired - private IServiceSystemmessageService ServiceSystemmessage; private static Configuration configuration = null; @@ -101,7 +100,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) { @@ -162,6 +161,7 @@ if (APPLICATIONENDTIME == null) { APPLICATIONENDTIME = ""; } + //startPage(); List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE, checkstatus, donorname); //鏍规嵁缁忓姙浜虹瓫閫� @@ -173,11 +173,15 @@ list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getAmountrequested()).compareTo(new BigDecimal(spFinancialExpensesIn.getMoney())) == 0).collect(Collectors.toList()); } + //鏍规嵁涓氬姟缁勭瓫閫� + if (StringUtils.isNotBlank(spFinancialExpensesIn.getDeptnos())) { + list = list.stream().filter(reimbursementOut -> reimbursementOut.getDeptmentno().contains(spFinancialExpensesIn.getDeptnos())).collect(Collectors.toList()); // 鎸塶ame瀛楁杩囨护 + } //鏍规嵁鍒涘缓鏃堕棿鎺掑簭 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); @@ -187,7 +191,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) { @@ -200,7 +204,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)); @@ -220,7 +224,7 @@ * 鏂板鎶ラ攢鐢宠 */ @ApiOperation("鏂板鎶ラ攢鐢宠") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:add')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:add')") @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.INSERT) @PostMapping("/add") @RepeatSubmit @@ -229,12 +233,24 @@ 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); +// } /** @@ -301,7 +317,6 @@ serviceReimbursement.setFlowlevel(0L); serviceReimbursement.setBackflowlevel(0L); } - } if (!postids.contains(2) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) { @@ -316,6 +331,32 @@ serviceFundflow.setFlowlevel(serviceFundflowrules.get(0).getFlowlevel() - 1); serviceFundflowService.save(serviceFundflow); + + + SysUser sysUser = null; + if (serviceReimbursement.getFlowlevel() == 0L) { + //缁勯暱淇℃伅 + SysUser su = new SysUser(); + su.setNickName(serviceReimbursement.getManagername()); + List<SysUser> sysUserList = sysUserService.selectUserList(su); + if (sysUserList.size() > 0) { + sysUser = sysUserList.get(0); + } + } else if (serviceReimbursement.getFlowlevel() == 1L) { + //闄堟厱鍗庝俊鎭� + sysUser = sysUserService.selectUserByUserName("047"); + } + ConcurrentHashMap map = new ConcurrentHashMap(); + ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>(); + map.put("鎻愪氦浜猴細", loginUser.getUser().getUserName()); + map.put("鎻愪氦鏃堕棿锛�", new Date()); + map.put("鍐呭锛�", serviceReimbursement.getReason()); + contentList.add(map); + DingTalkReqVo dingTalkReqVo = new DingTalkReqVo(); + dingTalkReqVo.setTitle("宸梾瀹℃壒淇℃伅"); + dingTalkReqVo.setNumber(sysUser != null ? sysUser.getPhonenumber() : ""); + dingTalkReqVo.setContents(contentList); + dingTalkService.sendNotification(dingTalkReqVo); } serviceReimbursementService.updateById(serviceReimbursement); @@ -335,174 +376,12 @@ @PostMapping("/checkfund") public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) { log.info("瀹℃牳璐圭敤鐨勫叆鍙� : {}", checkFundVO); - ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid()); - log.info("瀹℃牳璐圭敤鐨剆erviceReimbursementService.getById杩斿弬 : {}", serviceReimbursement); - if (serviceReimbursement != null) { - Integer totalLevel = 0; - LoginUser loginUser = getLoginUser(); - ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule(); - serviceFundflowrule.setFundtype(1); - serviceFundflowrule.setApplytype("0"); - serviceFundflowrule.setCheckuserno(loginUser.getUsername()); - List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule); - log.info("瀹℃牳璐圭敤鐨剆erviceFundflowruleService.queryList杩斿弬 : {}", serviceFundflowrules.size()); - if (serviceFundflowrules == null || serviceFundflowrules.stream().count() == 0) { - return AjaxResult.error(HttpStatus.ERROR, "褰撳墠浜哄憳鏃犳璁板綍瀹℃牳鏉冮檺"); - } - - if (serviceFundflowrules.get(0).getFlowlevel() - 1 != serviceReimbursement.getFlowlevel()) { - return AjaxResult.error(HttpStatus.ERROR, "褰撳墠浜哄憳涓庢璁板綍鐨勫鏍哥骇鍒笉绗�"); - } - - if (serviceFundflowrules != null && serviceFundflowrules.stream().count() > 0) { - totalLevel = serviceFundflowrules.get(0).getTotallevel(); - - - } - Integer CheckFlag = 0; - Integer RecordStatus = serviceReimbursement.getRecordstatus(); - Integer FlowLevel = Integer.valueOf(serviceReimbursement.getFlowlevel().toString()); - if (Objects.isNull(serviceReimbursement.getBackflowlevel()) && !Objects.isNull(serviceReimbursement.getFlowlevel())) { - serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel.toString())); - } - Integer OriginalFlowLevel = FlowLevel; - if (checkFundVO.getFlowconclusion() == 1) { - CheckFlag = 1; - if (totalLevel == 0) { - //99 鍙栨秷 - RecordStatus = 99; - } else { - - if (totalLevel == FlowLevel + 1) { - RecordStatus = 99; - } else { - RecordStatus = (FlowLevel + 1) * 2; - } - } - - if (serviceReimbursement.getFlowlevel() == 1 && serviceReimbursement.getBackflowlevel() == 100) { - log.info("鍑哄樊琛ヨ创琚� 璐㈠姟閫�鍥炲啀鎻愪氦锛屽嚭绾冲啀娆″鎵癸紝涔嬪悗鎻愪氦鍒拌储鍔�:{}", serviceReimbursement.getId()); - //璇存槑鏄储鍔¢��鍥炲啀鎻愪氦鐨�.闇�瑕佸嚭绾冲啀鐪嬩竴閬嶏紝娌¢棶棰樹箣鍚庯紝寰�鍒嗕韩琛ㄩ噷鏂板 -// serviceReimbursementService.addSharedData(serviceReimbursement.getId()); - - serviceReimbursement.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue()); - serviceReimbursement.setRecordstatus(99); - serviceReimbursement.setUploadStates(0); - boolean b = serviceReimbursementService.updateById(serviceReimbursement); - log.info("鏄惁淇敼鎴愬姛:{}", b); - - //淇濆瓨瀹℃壒娴佺▼琛� - ServiceFundflow serviceFundflow = new ServiceFundflow(); - SysUser user = loginUser.getUser(); - serviceFundflow.setFundid(serviceReimbursement.getId()); - serviceFundflow.setCheckuserno(user.getUserName()); - serviceFundflow.setCheckusername(user.getNickName()); - serviceFundflow.setFundtype(1); - serviceFundflow.setApplytype("0"); - serviceFundflow.setFlowconclusion(CheckFlag); - serviceFundflow.setFlowcontent("閫氳繃"); - serviceFundflow.setFlowlevel(OriginalFlowLevel + 1); - Boolean aBoolean = serviceFundflowService.save(serviceFundflow); - return AjaxResult.success(); - } - - FlowLevel = FlowLevel + 1; - serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel)); - } else { - CheckFlag = 2; - - if (CheckFlag == 2) { - //搴斿尰闄㈣姹傚鏋滃嚭鐜伴��鍥烇紝鐩存帴閫�鍒板彂璧疯�� - FlowLevel = 0; - RecordStatus = -1; - } else { - //涓嬮潰鏄師鏉ョ殑鍐欐硶锛屼竴绾т竴绾х殑寰�涓嬮��锛屽尰闄㈢幇鍦ㄤ笉瑕佽繖鏍锋悶浜嗭紝涓嬮潰杩欐浠g爜鍏堜繚鐣欙紝绛夊尰闄㈠洖蹇冭浆鎰忥紝鍐嶇粰鏀惧紑 - RecordStatus = (FlowLevel + 1) * 2 - 1; - FlowLevel = (FlowLevel - 1); - if (FlowLevel < 0) { - FlowLevel = 0; - } - } - - - } - - serviceReimbursement.setRecordstatus(RecordStatus); - serviceReimbursement.setFlowlevel(Long.valueOf(FlowLevel.toString())); - ServiceFundflow serviceFundflow = new ServiceFundflow(); - SysUser user = loginUser.getUser(); - serviceFundflow.setFundid(serviceReimbursement.getId()); - serviceFundflow.setCheckuserno(user.getUserName()); - serviceFundflow.setCheckusername(user.getNickName()); - serviceFundflow.setFundtype(1); - serviceFundflow.setApplytype("0"); - serviceFundflow.setFlowconclusion(CheckFlag); - if (StringUtils.isNotBlank(checkFundVO.getFlowcontent())) { - serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent()); - } else { - serviceFundflow.setFlowcontent(checkFundVO.getFlowconclusion() == 1 ? "閫氳繃" : "涓嶉�氳繃"); - } - serviceFundflow.setFlowlevel(OriginalFlowLevel + 1); - serviceFundflowService.save(serviceFundflow); - - List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId()); - log.info("postService.selectPostListByUserId : {}", postids.size()); - if (!postids.contains(2) && !postids.contains(6) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) { - if (CheckFlag == 2 && OriginalFlowLevel == 1) { - ServiceFundflow serviceFundflowAuto = new ServiceFundflow(); - serviceFundflowAuto.setFundid(serviceReimbursement.getId()); - serviceFundflowAuto.setCheckuserno(user.getUserName()); - serviceFundflowAuto.setCheckusername(user.getNickName()); - serviceFundflowAuto.setFundtype(1); - serviceFundflowAuto.setApplytype("0"); - serviceFundflowAuto.setFlowconclusion(CheckFlag); - serviceFundflowAuto.setFlowcontent("闈炰笓鑱屼汉鍛樹簩绾у鏍告嫆缁濆悗鐩存帴閫�鍥炲埌淇敼鐘舵��"); - serviceFundflowAuto.setFlowlevel(1); - serviceFundflowService.save(serviceFundflowAuto); - serviceReimbursement.setRecordstatus(1); - } - - } - //001瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂 - if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("001")) { - serviceReimbursement.setOfficedirector(user.getNickName()); - } - - serviceReimbursementService.updateById(serviceReimbursement); - - ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage(); - serviceSystemmessage.setFundtype(1); - serviceSystemmessage.setApplytype("0"); - serviceSystemmessage.setSenduserno(user.getUserName()); - serviceSystemmessage.setSendusername(user.getNickName()); - serviceSystemmessage.setReceiveuserno(serviceReimbursement.getUserno()); - serviceSystemmessage.setReceiveusername(serviceReimbursement.getUsername()); - serviceSystemmessage.setIsread(0); - serviceSystemmessage.setMessagetype(1); - 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) + "绾у鏍�"); - log.info("totalLevel鐨勫�� : {}, OriginalFlowLevel鐨勫��:{}", totalLevel, OriginalFlowLevel); - - //杩欎竴鍧楁斁瀹氭椂浠诲姟閲屽仛 -// 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.save(serviceSystemmessage); - - return AjaxResult.success(); - } else { - return AjaxResult.error(HttpStatus.NO_CONTENT, "璐圭敤缂栧彿涓嶆纭�"); + Map<String, String> map = serviceReimbursementService.checkFund(getLoginUser(), checkFundVO); + Set<String> keys = map.keySet(); + for (String s : keys) { + if (!s.equals("200")) return AjaxResult.error(map.get(s)); } + return AjaxResult.success(); } @@ -510,7 +389,7 @@ * 淇敼鎶ラ攢鐢宠 */ @ApiOperation("淇敼鎶ラ攢鐢宠") - //@PreAuthorize("@ss.hasPermi('project:reimbursement:edit')") + //// @PreAuthorize("@ss.hasPermi('project:reimbursement:edit')") @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.UPDATE) @PostMapping("/reimbursementEdit") @RepeatSubmit @@ -526,7 +405,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) { @@ -541,7 +420,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) { @@ -733,7 +612,7 @@ throw new ServiceException("涓嬭浇澶辫触锛岀敤鎴蜂俊鎭嚭閿�", HttpStatus.NO_CONTENT); } - Date dt = rdInfoByItem.get(0).getCreateTime(); + Date dt = rdInfoByItem.get(0).getApplyTime(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = formatter.format(dt); String time = date.substring(0, 10); -- Gitblit v1.9.3