From fa8521a23af37854e7a23d35467147bd00e008b2 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 14 九月 2023 18:57:31 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java | 91 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 68 insertions(+), 23 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 f2220b6..0a759dd 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 @@ -31,6 +31,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Options; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.io.*; @@ -100,6 +101,7 @@ public TableDataInfo list(ServiceReimbursement serviceReimbursement) { SysUser user = SecurityUtils.getLoginUser().getUser(); serviceReimbursement.setCreateBy(user.getUserName()); + serviceReimbursement.setUsername(user.getNickName()); startPage(); List<ServiceReimbursement> list = serviceReimbursementService.queryList(serviceReimbursement); return getDataTable(list); @@ -154,6 +156,15 @@ } //startPage(); List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE); + //鏍规嵁缁忓姙浜虹瓫閫� + if (StringUtils.isNotBlank(spFinancialExpensesIn.getUsername())) { + list = list.stream().filter(reimbursementOut -> reimbursementOut.getUsername().contains(spFinancialExpensesIn.getUsername())).collect(Collectors.toList()); // 鎸塶ame瀛楁杩囨护 + } + //鏍规嵁閲戦绛涢�� + if (spFinancialExpensesIn.getMoney() != null) { + list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getAmountrequested()) == new BigDecimal(spFinancialExpensesIn.getMoney())).collect(Collectors.toList()); + } + //鏍规嵁鍒涘缓鏃堕棿鎺掑簭 Collections.sort(list, new Comparator<SpFinancialExpensesReimbursementOut>() { @Override public int compare(SpFinancialExpensesReimbursementOut o1, SpFinancialExpensesReimbursementOut o2) { @@ -450,20 +461,17 @@ ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid()); //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�; if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) { - if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) { - - //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉� - ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class); - serviceReimbursementShared.setId(null); - serviceReimbursementShared.setDelFlag(0L); - serviceReimbursementShared.setReimid(serviceReimbursement.getId()); - serviceReimbursementSharedService.save(serviceReimbursementShared); - +// if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) { + if (serviceReimbursement.getBackflowlevel() == 199) { //灏嗛��鍥為樁娈佃缃垚100 serviceReimbursement.setBackflowlevel(100L); serviceReimbursement.setFlowlevel(100L); serviceReimbursement.setRecordstatus(0); serviceReimbursementService.updateById(serviceReimbursement); + + //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉� + serviceReimbursementService.addSharedData(checkFundVO.getFundid()); + return success(); } } @@ -474,16 +482,25 @@ List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId()); if (!postids.contains(2)) { - serviceReimbursement.setFlowlevel(1L); - serviceReimbursement.setBackflowlevel(1L); serviceReimbursement.setRecordstatus(2); + if (serviceReimbursement.getBackflowlevel() != null) { + serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel()); + } else { + serviceReimbursement.setBackflowlevel(1L); + serviceReimbursement.setFlowlevel(1L); + } } else { - serviceReimbursement.setFlowlevel(0L); serviceReimbursement.setRecordstatus(0); - serviceReimbursement.setBackflowlevel(0L); + if (serviceReimbursement.getBackflowlevel() != null) { + serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel()); + } else { + serviceReimbursement.setFlowlevel(0L); + serviceReimbursement.setBackflowlevel(0L); + } + } - if (!postids.contains(2)) { + if (!postids.contains(2) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) { ServiceFundflow serviceFundflow = new ServiceFundflow(); serviceFundflow.setFundid(serviceReimbursement.getId()); serviceFundflow.setCheckuserno(user.getUserName()); @@ -557,12 +574,14 @@ } } 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; @@ -583,13 +602,17 @@ serviceFundflow.setFundtype(1); serviceFundflow.setApplytype("0"); serviceFundflow.setFlowconclusion(CheckFlag); - serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent()); + 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)) { + 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()); @@ -601,9 +624,13 @@ serviceFundflowAuto.setFlowcontent("闈炰笓鑱屼汉鍛樹簩绾у鏍告嫆缁濆悗鐩存帴閫�鍥炲埌淇敼鐘舵��"); serviceFundflowAuto.setFlowlevel(1); serviceFundflowService.save(serviceFundflowAuto); - serviceReimbursement.setRecordstatus(1); } + + } + //001瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂 + if (checkFundVO.getFlowconclusion() == 1 && user.getUserId().equals("001")) { + serviceReimbursement.setOfficedirector(user.getNickName()); } serviceReimbursementService.updateById(serviceReimbursement); @@ -618,10 +645,12 @@ 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()); @@ -646,7 +675,7 @@ @ApiOperation("淇敼鎶ラ攢鐢宠") //@PreAuthorize("@ss.hasPermi('project:reimbursement:edit')") @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.UPDATE) - @PutMapping + @PostMapping("/reimbursementEdit") @RepeatSubmit public AjaxResult edit(@RequestBody ServiceReimbursement serviceReimbursement) { boolean b = serviceReimbursementService.updateById(serviceReimbursement); @@ -676,8 +705,8 @@ */ @ApiOperation("鍒犻櫎鎶ラ攢鐢宠") //@PreAuthorize("@ss.hasPermi('project:reimbursement:remove')") - @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") + @Log(title = "鎶ラ攢鐢宠") + @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(serviceReimbursementService.removeByIds(Arrays.asList(ids))); } @@ -691,6 +720,7 @@ Map dataMap = new HashMap(); getData(dataMap, id); String filePath = getClass().getResource("/template/").getPath(); + log.info("涓嬭浇鍦板潃鏄暐锛燂紵锛焮}", filePath); System.out.println(filePath); //璁剧疆妯℃湰瑁呯疆鏂规硶鍜岃矾寰�,FreeMarker鏀寔澶氱妯℃澘瑁呰浇鏂规硶銆傚彲浠ラ噸servlet锛宑lasspath锛屾暟鎹簱鏁欑▼瑁呰浇锛� configuration.setDirectoryForTemplateLoading(new File(filePath)); @@ -703,7 +733,7 @@ e.printStackTrace(); } String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis()); - String name = "宸梾璐规姤閿�鐢宠鍗昣" + dataMap.get("XM") + "_" + newTime; + String name = "宸梾璐规姤閿�鐢宠鍗昣" + dataMap.get("JSR") + "_" + newTime; //杈撳嚭鏂囨。璺緞鍙婂悕绉� File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc"); @@ -746,9 +776,15 @@ ServiceReimbursementEo serviceReimbursementEo = new ServiceReimbursementEo(); serviceReimbursementEo.setId(id); List<ServiceReimbursementEo> rdInfoByItem = serviceReimbursementService.getRDInfoByItem(serviceReimbursementEo); + log.info("rdInfoByItem鏄惁涓虹┖ :{}", CollectionUtils.isEmpty(rdInfoByItem) ? null : rdInfoByItem.size()); + for (int i = 0; i < rdInfoByItem.size(); i++) { + ServiceReimbursementEo serviceReimbursementEo1 = rdInfoByItem.get(i); + String codeByInfo = PersonType.getCodeByInfo(serviceReimbursementEo1.getPersontype()); + serviceReimbursementEo1.setPersontype(codeByInfo); + } //鑾峰彇鎶ラ攢鏀粯淇℃伅 List<ServiceReimbursementpayee> reimbursementpayeeInfo = reimbursementpayeeService.getReimbursementpayeeInfo(serviceReimbursementEo); - + log.info("reimbursementpayeeInfo鏄惁涓虹┖ :{}", CollectionUtils.isEmpty(reimbursementpayeeInfo) ? null : reimbursementpayeeInfo.size()); Map<String, List<ServiceReimbursementEo>> listMap = rdInfoByItem.stream().collect(Collectors.groupingBy(ServiceReimbursementEo::getPersontype)); List<Map<String, BigDecimal>> list = new ArrayList<>(); StringBuffer FYXM1 = new StringBuffer(); @@ -765,7 +801,7 @@ BigDecimal keyOneMoney = new BigDecimal(0.00); BigDecimal keyTwoMoney = new BigDecimal(0.00); for (ServiceReimbursementEo serviceReimbursementEo1 : values) { - otherMoney = otherMoney.add(serviceReimbursementEo1.getTrafficexpense()).add(serviceReimbursementEo1.getHotelexpense()).add(serviceReimbursementEo1.getFoodexpenses()).add(serviceReimbursementEo1.getFoodallowance()).add(serviceReimbursementEo1.getOtherexpense()).add(serviceReimbursementEo1.getOtherfeeamount()); + otherMoney = otherMoney.add(serviceReimbursementEo1.getTrafficexpense()).add(serviceReimbursementEo1.getHotelexpense()).add(serviceReimbursementEo1.getCityfee()).add(serviceReimbursementEo1.getFoodexpenses()).add(serviceReimbursementEo1.getFoodallowance()).add(serviceReimbursementEo1.getOtherexpense()).add(serviceReimbursementEo1.getOtherfeeamount()); } map.put(key, otherMoney); list.add(map); @@ -864,6 +900,7 @@ String date = formatter.format(dt); String time = date.substring(0, 10); + dataMap.put("XZBH", rdInfoByItem.get(0).getBh() == null ? "" : rdInfoByItem.get(0).getBh()); dataMap.put("TBYYMMDD", time); dataMap.put("BXDFJ", rdInfoByItem.get(0).getAttachcount() == null ? " " : "" + rdInfoByItem.get(0).getAttachcount()); dataMap.put("JXZXM", rdInfoByItem.get(0).getDonorname() == null ? "" : rdInfoByItem.get(0).getDonorname()); @@ -900,6 +937,14 @@ } dataMap.put("BXBZ", remark); + dataMap.put("ZXFZR", StringUtils.isEmpty(rdInfoByItem.get(0).getOpochecker()) ? "" : rdInfoByItem.get(0).getOpochecker()); +// + dataMap.put("CWFYZ", StringUtils.isEmpty(rdInfoByItem.get(0).getFinvicepresident()) ? "" : rdInfoByItem.get(0).getFinvicepresident()); + dataMap.put("YWFYZ", StringUtils.isEmpty(rdInfoByItem.get(0).getBusvicepresident()) ? "" : rdInfoByItem.get(0).getBusvicepresident()); + dataMap.put("BGSZR", StringUtils.isEmpty(rdInfoByItem.get(0).getOfficedirector()) ? "" : rdInfoByItem.get(0).getOfficedirector()); + dataMap.put("CWBZR", StringUtils.isEmpty(rdInfoByItem.get(0).getFinancedirector()) ? "" : rdInfoByItem.get(0).getFinancedirector()); + dataMap.put("CWSH", StringUtils.isEmpty(rdInfoByItem.get(0).getFinancechecher()) ? "" : rdInfoByItem.get(0).getFinancechecher()); + dataMap.put("YYMMDD", time); -- Gitblit v1.9.3