From 6892c31200a7ed1b0e60ee5aff794b1fcecc7ef6 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 01 十一月 2023 16:28:06 +0800 Subject: [PATCH] 解决文件上传时,文件名重复问题 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java | 158 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 131 insertions(+), 27 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java index a708d1e..b14a7c4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java @@ -1,5 +1,7 @@ package com.ruoyi.web.controller.project; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.config.RuoYiConfig; @@ -12,6 +14,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.tax.TaxtUtils; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -27,7 +30,12 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Options; +import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; @@ -75,7 +83,7 @@ private IServiceSystemmessageService ServiceSystemmessage; @Autowired - private IServiceFundSharedService fundServiceShare; + private IBaseOnlyvalueService baseOnlyvalueService; @Autowired private IServiceExternalpersonService externalpersonService; @@ -83,6 +91,11 @@ @Autowired private ISysPostService postService; + @Autowired + private DataSourceTransactionManager transactionManager; + + @Autowired + private TransactionDefinition transactionDefinition; public ServiceFundController() { configuration = new Configuration(); @@ -98,6 +111,8 @@ public TableDataInfo list(ServiceFund serviceFund) { startPage(); //List<ServiceFund> list = serviceFundService.queryList(serviceFund); + SysUser user = SecurityUtils.getLoginUser().getUser(); + serviceFund.setUsername(user.getNickName()); List<ServiceFund> list = serviceFundService.selectServiceFundList(serviceFund); return getDataTable(list); } @@ -125,7 +140,12 @@ Integer APPLYTYPE = spFinancialExpensesIn.getAPPLYTYPE(); Integer pageNum = spFinancialExpensesIn.getPageNum(); Integer pageSize = spFinancialExpensesIn.getPageSize(); + Integer checkstatus = spFinancialExpensesIn.getCheckstatus(); + String donorname = spFinancialExpensesIn.getDonorname(); + if (StringUtils.isEmpty(donorname)) { + donorname = null; + } if (pageNum == null) { pageNum = 1; } @@ -147,16 +167,22 @@ } //startPage(); - List<SpFinancialExpensesFundOut> list = serviceFundService.getListBypower(loginUser.getUsername(), 2, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE); + List<SpFinancialExpensesFundOut> list = serviceFundService.getListBypower(loginUser.getUsername(), 2, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE, checkstatus, donorname); //閫氳繃鎹愮尞鑰呰繃婊� if (StringUtils.isNotEmpty(spFinancialExpensesIn.getDonorname())) { list = list.stream().filter(obj -> obj.getDonorname().contains(spFinancialExpensesIn.getDonorname())).collect(Collectors.toList()); } + //閫氳繃閲戦杩囨护 + if (spFinancialExpensesIn.getMoney() != null) { + list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getPretaxcost()).compareTo(new BigDecimal(spFinancialExpensesIn.getMoney())) == 0).collect(Collectors.toList()); + + } + Collections.sort(list, new Comparator<SpFinancialExpensesFundOut>() { @Override public int compare(SpFinancialExpensesFundOut o1, SpFinancialExpensesFundOut o2) { - return o2.getCreateTime().compareTo(o1.getCreateTime()); + return o1.getCreateTime().compareTo(o2.getCreateTime()); } }); return getCustomDataTable(list, pageNum, pageSize); @@ -452,10 +478,10 @@ * 瀹℃牳璐圭敤 */ @ApiOperation("瀹℃牳璐圭敤") - @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER) +// @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER) @PostMapping("/checkfund") public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) { - logger.info("serviceFundController---checkFund鐨勫叆鍙傚�糲heckFundVO :{}", checkFundVO); + log.info("serviceFundController---checkFund鐨勫叆鍙傚�糲heckFundVO :{}", checkFundVO); ServiceFund serviceFund = serviceFundService.getById(checkFundVO.getFundid()); if (serviceFund != null) { Integer TotalLevel = 0; @@ -464,7 +490,7 @@ serviceFundflowrule.setFundtype(2); serviceFundflowrule.setApplytype(serviceFund.getApplytype()); serviceFundflowrule.setCheckuserno(loginUser.getUsername()); - logger.info("serviceFundController---checkFund---queryList鐨勫叆鍙傚�約erviceFundflowrule:{}", serviceFundflowrule); + log.info("serviceFundController---checkFund---queryList鐨勫叆鍙傚�約erviceFundflowrule:{}", serviceFundflowrule); List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule); @@ -482,7 +508,7 @@ Integer CheckFlag = 0; Integer RecordStatus = serviceFund.getRecordstatus(); - Integer FlowLevel = serviceFund.getFlowlevel(); + Integer FlowLevel = serviceFund.getFlowlevel().intValue(); Integer OriginalFlowLevel = FlowLevel; if (checkFundVO.getFlowconclusion() == 1) { CheckFlag = 1; @@ -504,6 +530,8 @@ //搴斿尰闄㈣姹傚鏋滃嚭鐜伴��鍥烇紝鐩存帴閫�鍒板彂璧疯�� FlowLevel = 0; RecordStatus = -1; + logger.info("serviceFund杩涙潵浜嗗悧锛燂紵锛燂紵锛燂紵 :{},{}", RecordStatus, FlowLevel); + System.out.println("serviceFund杩涙潵浜嗗悧锛燂紵锛燂紵锛燂紵"); } else { RecordStatus = (FlowLevel + 1) * 2 - 1; FlowLevel = (FlowLevel - 1); @@ -514,7 +542,7 @@ } serviceFund.setRecordstatus(RecordStatus); - serviceFund.setFlowlevel(FlowLevel); + serviceFund.setFlowlevel(FlowLevel.longValue()); // serviceFund.setBackflowlevel(serviceFund.getFlowlevel()); ServiceFundflow serviceFundflow = new ServiceFundflow(); @@ -531,9 +559,22 @@ serviceFundflow.setFlowcontent(checkFundVO.getFlowconclusion() == 1 ? "閫氳繃" : "涓嶉�氳繃"); } serviceFundflow.setFlowlevel(OriginalFlowLevel + 1); - serviceFundflowService.save(serviceFundflow); - serviceFundService.updateById(serviceFund); + Boolean aBoolean = serviceFundflowService.saveData(serviceFundflow); + log.info("sserviceFund淇濆瓨鐨勭殑鍊兼槸-------- :{}", aBoolean); + + //001瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂 + if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("001")) { + serviceFund.setOfficedirector(user.getNickName()); + } + System.out.println("serviceFund鐨勫�兼槸--------:" + serviceFund); + log.info("寮�濮嬫洿鏂扮殑鐨勫�兼槸--------"); + ServiceFund updateServiceFund = new ServiceFund(); + updateServiceFund.setRecordstatus(serviceFund.getRecordstatus()); + updateServiceFund.setFlowlevel(serviceFund.getFlowlevel()); + + Boolean aBoolean1 = serviceFundService.updateById(serviceFund); + log.info("integer鏇存柊鐨勭殑鍊兼槸-------- :{}", aBoolean1); ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage(); serviceSystemmessage.setFundtype(2); serviceSystemmessage.setApplytype(serviceFund.getApplytype()); @@ -600,17 +641,17 @@ if (!postids.contains(2)) { serviceFund.setRecordstatus(2); if (serviceFund.getBackflowlevel() != null) { - serviceFund.setFlowlevel(serviceFund.getBackflowlevel()); + serviceFund.setFlowlevel(serviceFund.getBackflowlevel().longValue()); } else { serviceFund.setBackflowlevel(1); - serviceFund.setFlowlevel(1); + serviceFund.setFlowlevel(1L); } } else { serviceFund.setRecordstatus(0); if (serviceFund.getBackflowlevel() != null) { - serviceFund.setFlowlevel(serviceFund.getBackflowlevel()); + serviceFund.setFlowlevel(serviceFund.getBackflowlevel().longValue()); } else { - serviceFund.setFlowlevel(0); + serviceFund.setFlowlevel(0L); serviceFund.setBackflowlevel(0); } @@ -632,7 +673,7 @@ @ApiOperation("鍒犻櫎璐圭敤鐢宠涓�") //@PreAuthorize("@ss.hasPermi('project:fund:remove')") @Log(title = "璐圭敤鐢宠涓�", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") + @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(serviceFundService.removeByIds(Arrays.asList(ids))); } @@ -691,8 +732,9 @@ String time = date.substring(0, 10); dataMap.put("XZBH", serviceFund.getBh() == null ? "" : serviceFund.getBh()); + dataMap.put("ZB", serviceFund.getDeptmentname() == null ? "" : serviceFund.getDeptmentname()); dataMap.put("TBYYMMDD", time); - dataMap.put("BXDFJ", serviceFund.getAttachcount() == 0 ? " " : serviceFund.getAttachcount()); + dataMap.put("BXDFJ", serviceFund.getAttachcount() == null ? " " : serviceFund.getAttachcount()); dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname()); dataMap.put("JSR", serviceFund.getUsername() == null ? "" : serviceFund.getUsername()); // dataMap.put("FYXM1", "鏀粯涓撳璐圭敤锛屽叾涓◣鍓嶉噾棰�" + serviceFund.getPretaxcost() + "鍏冿紝绋庡悗閲戦" + serviceFund.getTaxedcost() + "鍏冦��"); @@ -998,9 +1040,9 @@ } /** - * 涓嬭浇鎹愮尞鑰呭尰瀛︽垚鏈粺璁¤〃 + * 涓嬭浇鎹愮尞鑰呭尰瀛︺�佸姙鍏�佺哗鏁堟垚鏈粺璁¤〃 */ - @ApiOperation("鎹愮尞鑰呭尰瀛︽垚鏈粺璁¤〃") + @ApiOperation("鎹愮尞鑰呭尰瀛︺�佸姙鍏�佺哗鏁堟垚鏈粺璁¤〃") @GetMapping(value = "/downloadYX/{id}") public Map downloadInfoYX(@PathVariable("id") Long id) throws IOException { Map dataMap = new HashMap(); @@ -1013,11 +1055,13 @@ Template t = null; try { //鎹愮尞琛�.ftl涓鸿瑁呰浇鐨勬ā鏉� - //涓撳鍔冲姟璐圭敵璇� 1 浼︾悊璇勪及鍔冲姟璐圭敵璇� 2 鍖诲鎴愭湰璐圭敤鐢宠 3 鍔炲叕璐圭敤鎶ラ攢鐢宠 4 + //涓撳鍔冲姟璐圭敵璇� 1 浼︾悊璇勪及鍔冲姟璐圭敵璇� 2 鍖诲鎴愭湰璐圭敤鐢宠 3 鍔炲叕璐圭敤鎶ラ攢鐢宠 4 缁╂晥璐圭敤鎶ラ攢鐢宠 5 if (dataYX.equals("3")) { t = configuration.getTemplate("鍖诲鎴愭湰璐圭敤鐢宠鍗�.ftl"); } else if (dataYX.equals("4")) { t = configuration.getTemplate("鍔炲叕璐圭敤鐢宠鍗�.ftl"); + } else if (dataYX.equals("5")) { + t = configuration.getTemplate("缁╂晥璐圭敤鐢宠鍗�.ftl"); } } catch (IOException e) { e.printStackTrace(); @@ -1028,6 +1072,8 @@ name = "鍖诲鎴愭湰璐圭敤鐢宠鍗昣" + dataMap.get("XM") + "_" + newTime; } else if (dataYX.equals("4")) { name = "鍔炲叕璐圭敤鐢宠鍗昣" + dataMap.get("XM") + "_" + newTime; + } else if (dataYX.equals("5")) { + name = "缁╂晥璐圭敤鐢宠鍗昣" + dataMap.get("XM") + "_" + newTime; } //杈撳嚭鏂囨。璺緞鍙婂悕绉� File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc"); @@ -1040,6 +1086,7 @@ e1.printStackTrace(); } try { + t.process(dataMap, out); } catch (TemplateException e) { e.printStackTrace(); @@ -1060,6 +1107,18 @@ } List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id); + if (serviceFund.getApplytype().equals("5")) { + //缁╂晥鐨勮鎯呭鏋滃皬浜�3琛岋紝榛樿瑕佺瓑浜�3琛� + if (fd.size() < 3) { + for (int i = 0; i <= 3 - fd.size(); i++) { + ServiceFunddetail serviceFunddetail = new ServiceFunddetail(); + serviceFunddetail.setQuantity(0.00); + serviceFunddetail.setPrice(0.00); + serviceFunddetail.setAmount(0.00); + fd.add(serviceFunddetail); + } + } + } if (fd == null) { throw new ServiceException("涓嬭浇澶辫触锛屾病鏈夊搴斾俊鎭�", HttpStatus.NO_CONTENT); } @@ -1072,6 +1131,7 @@ List<Map<String, Object>> newList = new ArrayList<Map<String, Object>>(); int seqno = 0; + dataMap.put("ZB", serviceFund.getDeptmentname() == null ? "" : serviceFund.getDeptmentname()); dataMap.put("XZBH", serviceFund.getBh() == null ? "" : serviceFund.getBh()); dataMap.put("TBYYMMDD", time); dataMap.put("BXDFJ", serviceFund.getAttachcount() == 0 ? " " : serviceFund.getAttachcount()); @@ -1080,18 +1140,48 @@ dataMap.put("YWZ", serviceFund.getDeptmentname() == null ? "" : serviceFund.getDeptmentname()); dataMap.put("ZHUZANG", serviceFund.getManagername() == null ? "" : serviceFund.getManagername()); + String bz = ""; + int i = 0; for (ServiceFunddetail f : fd) { seqno++; Map<String, Object> map = new HashMap<String, Object>(); map.put("seqno", seqno); +// String fyxm = ""; +// fyxm += f.getItemname() == null ? "" : f.getItemname(); +// fyxm += f.getAmount() + "鍏�"; +// //濡傛灉鏄尰鐤楁垚鏈紝鍒欐妸閾惰鍗″姞涓婃瘡鏉℃槑缁嗙殑鍚庨潰 +// if (serviceFund.getApplytype().equals("3")) { +// fyxm += "("; +// fyxm += f.getUnitname() == null ? "" : f.getUnitname() + ";"; +// fyxm += f.getDepositbank() == null ? "" : f.getDepositbank() + ": "; +// fyxm += f.getBankcardno() == null ? "" : f.getBankcardno(); +// fyxm += ")"; +// } + + //濡傛灉鏄尰鐤楁垚鏈紝鍒欐妸閾惰鍗″姞涓婃瘡鏉℃槑缁嗙殑鍚庨潰 + if (serviceFund.getApplytype().equals("3")) { + i = i + 1; + bz += f.getBeneficiaryname() == null ? "(" + i + ")" : "(" + i + ")" + f.getBeneficiaryname() + "锛�"; + bz += "閲戦 : " + f.getAmount() + "鍏�" + "锛�"; + bz += f.getDepositbank() == null ? "" : f.getDepositbank() + ": "; + bz += f.getBankcardno() == null ? "" : f.getBankcardno(); + bz += "<w:br/>"; + } + if (serviceFund.getApplytype().equals("4")) { + i = i + 1; + bz += f.getBeneficiaryname() == null ? "(" + i + ")" : "(" + i + ")" + f.getBeneficiaryname() + "锛�"; + bz += "閲戦 : " + f.getAmount() + "鍏�" + "锛�"; + bz += f.getDepositbank() == null ? "" : f.getDepositbank() + ": "; + bz += f.getBankcardno() == null ? "" : f.getBankcardno(); + bz += "<w:br/>"; + } + String fyxm = ""; fyxm += f.getItemname() == null ? "" : f.getItemname(); fyxm += f.getAmount() + "鍏�"; -// fyxm += "("; -// fyxm += f.getUnitname() == null ? "" : f.getUnitname() + ";"; -// fyxm += f.getDepositbank() == null ? "" : f.getDepositbank() + ": "; -// fyxm += f.getBankcardno() == null ? "" : f.getBankcardno(); -// fyxm += ")"; + if (f.getItemname() == null && f.getAmount() == 0.0) { + fyxm = ""; + } map.put("FYXM", fyxm); newList.add(map); } @@ -1104,7 +1194,8 @@ // dataMap.put("JEXS", serviceFund.getAmountrequested()); // dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "鏁�"); //澶囨敞閲屾斁鐨勬槸缁忓姙浜虹殑閾惰鍗′俊鎭� - dataMap.put("BXBZ", infoByUserNo == null ? "" : infoByUserNo.getBranchbankname() + " " + infoByUserNo.getBankcardno()); + + dataMap.put("BXBZ", serviceFund.getApplytype().equals("3") || serviceFund.getApplytype().equals("4") ? bz : infoByUserNo == null ? "" : infoByUserNo.getBranchbankname() + " " + infoByUserNo.getBankcardno()); dataMap.put("YZ", serviceFund.getPresident() == null ? "" : serviceFund.getPresident()); dataMap.put("CWFYZ", serviceFund.getFinvicepresident() == null ? "" : serviceFund.getFinvicepresident()); dataMap.put("YWFYZ", serviceFund.getBusvicepresident() == null ? "" : serviceFund.getBusvicepresident()); @@ -1127,7 +1218,7 @@ count++; map.put("XH", count); map.put("FWNR", f.getItemname() == null ? "" : f.getItemname()); - map.put("DW", f.getUnitname() == null ? "" : f.getUnitname()); + map.put("DW", f.getBeneficiaryname() == null ? "" : f.getBeneficiaryname()); map.put("SL", f.getQuantity() == 0.00 ? "" : f.getQuantity()); map.put("JG", f.getPrice() == 0.00 ? "" : f.getPrice()); @@ -1866,6 +1957,7 @@ String date = formatter.format(dt); String time = date.substring(0, 10); + dataMap.put("ZB", serviceFund.getDeptmentname() == null ? "" : serviceFund.getDeptmentname()); dataMap.put("XZBH", serviceFund.getBh() == null ? "" : serviceFund.getBh()); dataMap.put("TBYYMMDD", time); dataMap.put("BXDFJ", serviceFund.getAttachcount() == 0 ? " " : serviceFund.getAttachcount()); @@ -1923,7 +2015,6 @@ dataMap.put("SQZE", String.format("%.2f", sh).toString() + ""); - } @@ -1959,4 +2050,17 @@ } + + /** + * 缁╂晥璁$畻 + */ + @ApiOperation("缁╂晥璁$畻") + @Log(title = "缁╂晥璁$畻", businessType = BusinessType.INSERT) + @PostMapping("/performance") + @RepeatSubmit + public AjaxResult performance(@RequestBody ServiceFundVO serviceFundVO) { + + return AjaxResult.success(serviceFundService.performance(serviceFundVO)); + } + } -- Gitblit v1.9.3