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/ServiceFundController.java | 895 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 455 insertions(+), 440 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 87e72dc..94b2a5e 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,6 +1,8 @@ package com.ruoyi.web.controller.project; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; 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; @@ -11,25 +13,33 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.exception.base.BaseException; +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; import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.vo.*; -import com.ruoyi.project.mapper.ServiceFunddetailMapper; import com.ruoyi.project.service.*; +import com.ruoyi.system.service.ISysPostService; +import com.ruoyi.system.service.ISysUserService; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; 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.*; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; import static com.ruoyi.web.controller.project.ServiceReimbursementController.convert; @@ -40,6 +50,7 @@ * @author ruoyi * @date 2022-01-24 */ +@Slf4j @Api("璐圭敤鐢宠涓�") @RestController @RequestMapping("/project/fund") @@ -48,13 +59,7 @@ @Autowired private IServiceFundService serviceFundService; @Autowired - private IServiceFundSharedService fundSharedService; - @Autowired - private ServiceFunddetailMapper serviceFunddetailMapper; - @Autowired private IServiceFunddetailService serviceFunddetailService; - @Autowired - private IServiceFunddetailSharedService funddetailSharedService; @Autowired private IServiceFundflowruleService serviceFundflowruleService; @Autowired @@ -66,11 +71,20 @@ private IServiceReimbursementService serviceReimbursementService; @Autowired - private IServiceSystemmessageService ServiceSystemmessage; + private IServiceSystemmessageService iServiceSystemmessageService; @Autowired - private IServiceFundSharedService fundServiceShare; + private IServiceExternalpersonService externalpersonService; + @Autowired + private ISysPostService postService; + + + @Autowired + private DingTalkService dingTalkService; + + @Autowired + private ISysUserService sysUserService; public ServiceFundController() { configuration = new Configuration(); @@ -78,14 +92,53 @@ } /** + * 鑷磋繙绯荤粺娴佺▼閫�鍥� + * + * @param serviceProcessDocVO + * @return + */ + @PostMapping("/backdocument") + public AjaxResult backDocument(@RequestBody ServiceProcessDocVO serviceProcessDocVO) { + log.info("鑷磋繙绯荤粺娴佺▼閫�鍥炲叆鍙傦細{}", serviceProcessDocVO); + if (serviceProcessDocVO.getBackCode() == null || StringUtils.isEmpty(serviceProcessDocVO.getApplytype())) { + return AjaxResult.error("鍏ヨ兘涓虹┖,璇锋鏌ュ叆鍙�!!"); + } + + serviceFundService.backDocument(serviceProcessDocVO); + return AjaxResult.success("閫�鍥炴垚鍔�"); + } + + + /** + * 鑷磋繙绯荤粺娴佺▼閫�鍥炲鎵规棩蹇� + * + * @param serviceProcessVO + * @return + */ + @PostMapping("/processlog") + public AjaxResult processlog(@RequestBody ServiceProcessVO serviceProcessVO) { + log.info("鑷磋繙绯荤粺娴佺▼閫�鍥炲鎵规棩蹇楀叆鍙傦細{}", serviceProcessVO); + if (serviceProcessVO.getBackCode() == null || StringUtils.isEmpty(serviceProcessVO.getApplytype())) { + return AjaxResult.error("鍏ヨ兘涓虹┖,璇锋鏌ュ叆鍙�!!"); + } + + Boolean processlog = serviceFundService.processlog(serviceProcessVO); + if (!processlog) return AjaxResult.error("瀹℃壒璁板綍澶辫触"); + return AjaxResult.success("瀹℃壒璁板綍鎴愬姛"); + } + + + /** * 鏌ヨ璐圭敤鐢宠涓诲垪琛� */ @ApiOperation("鏌ヨ璐圭敤鐢宠涓诲垪琛�") - //@PreAuthorize("@ss.hasPermi('project:fund:list')") + //// @PreAuthorize("@ss.hasPermi('project:fund:list')") @GetMapping("/list") 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); } @@ -113,7 +166,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; } @@ -135,18 +193,43 @@ } //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 (StringUtils.isNotEmpty(spFinancialExpensesIn.getDeptnos())) { + list = list.stream().filter(obj -> obj.getDeptmentno().contains(spFinancialExpensesIn.getDeptnos())).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.getApplyTime().compareTo(o2.getApplyTime()); } }); return getCustomDataTable(list, pageNum, pageSize); } + /** + * 鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃 + */ + @ApiOperation("鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃") + @Log(title = "鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃", businessType = BusinessType.OTHER) + @PostMapping("/getExpertfeeList") + public TableDataInfo getExpertfeeList(@RequestBody SpSelectExpertfee spSelectExpertfee) { + List<SpFinancialExpensesFundOut> expertfeeList = serviceFundService.getExpertfeeList(spSelectExpertfee); + return getCustomDataTable(expertfeeList, spSelectExpertfee.getPageNum(), spSelectExpertfee.getPageSize()); + } + @ApiOperation("鏌ヨ璐圭敤鐢宠涓诲垪琛�") - //@PreAuthorize("@ss.hasPermi('project:fund:list')") + //// @PreAuthorize("@ss.hasPermi('project:fund:list')") @GetMapping(value = "/getInfo/{infoid}") public AjaxResult getInfoByInfoId(@PathVariable("infoid") Long infoid) { return AjaxResult.success(serviceFundService.getInfoByInfoId(infoid)); @@ -158,21 +241,17 @@ return AjaxResult.success(serviceFundService.getFundId(infoid)); } - @GetMapping("/addFundSharedInfo/{id}") - public AjaxResult addFundSharedInfo(@PathVariable("id") Long id) { - return AjaxResult.success(serviceFundService.addFundSharedInfo(id)); - } +// @GetMapping("/addFundSharedInfo/{id}") +// public AjaxResult addFundSharedInfo(@PathVariable("id") Long id) { +// return AjaxResult.success(serviceFundService.addFundSharedInfo(id)); +// } - @GetMapping("/getFundDetail/{id}") - public AjaxResult getFundDetail(@PathVariable("id") Long id) { - return AjaxResult.success(serviceFundService.getFundDetail(id)); - } /** * 瀵煎嚭璐圭敤鐢宠涓诲垪琛� */ @ApiOperation("瀵煎嚭璐圭敤鐢宠涓诲垪琛�") - //@PreAuthorize("@ss.hasPermi('project:fund:export')") + //// @PreAuthorize("@ss.hasPermi('project:fund:export')") @Log(title = "璐圭敤鐢宠涓�", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ServiceFund serviceFund) { @@ -186,7 +265,7 @@ * 鑾峰彇璐圭敤鐢宠涓昏缁嗕俊鎭� */ @ApiOperation("鑾峰彇璐圭敤鐢宠涓昏缁嗕俊鎭�") - //@PreAuthorize("@ss.hasPermi('project:fund:query')") + //// @PreAuthorize("@ss.hasPermi('project:fund:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(serviceFundService.getById(id)); @@ -196,9 +275,9 @@ * 鏂板璐圭敤鐢宠涓� */ @ApiOperation("鏂板璐圭敤鐢宠涓�") - //@PreAuthorize("@ss.hasPermi('project:fund:add')") + //// @PreAuthorize("@ss.hasPermi('project:fund:add')") @Log(title = "璐圭敤鐢宠涓�", businessType = BusinessType.INSERT) - @PostMapping + @PostMapping("/add") @RepeatSubmit @Options(useGeneratedKeys = true, keyProperty = "id") public AjaxResult add(@RequestBody ServiceFund serviceFund) { @@ -210,407 +289,130 @@ return AjaxResult.success(id); } - -// public int addReiSharedDatd(ServiceFund serviceFund, int nType) { -// //remShare = ; -// ServiceFundShared remShare = null; -// if (nType == 1) { -// remShare = new ServiceFundShared(); -// remShare.setSerfunid(serviceFund.getId()); -// } else //modify -// { -// List<ServiceFundShared> remlist = fundServiceShare.getFundShareInfoById(serviceFund.getId()); -// if (remlist != null) remShare = remlist.get(0); -// } -// -// remShare.setDonorno(serviceFund.getDonorno()); -// remShare.setDonorname(serviceFund.getDonorname()); -// remShare.setUserno(serviceFund.getUserno()); -// remShare.setUsername(serviceFund.getUsername()); -// remShare.setUnitname(serviceFund.getUnitname()); -// remShare.setUnitno(serviceFund.getUnitno()); -// remShare.setUnituserno(serviceFund.getUnituserno()); -// remShare.setPhone(serviceFund.getPhone()); -// remShare.setAnnexbankcard(serviceFund.getAnnexbankcard()); -// remShare.setAnnexregistform(serviceFund.getAnnexregistform()); -// Double nTemp = serviceFund.getPretaxcost(); -// if (nTemp == null) nTemp = 0d; -// remShare.setPretaxcost(BigDecimal.valueOf(nTemp)); -// //remShare.setAnnexfiles(serviceReimbursement.getAnnexfiles()); -// // remShare.setAmountrequested(BigDecimal.valueOf(serviceReimbursement.getAmountrequested())); -// -// nTemp = serviceFund.getTaxedcost(); -// if (nTemp == null) nTemp = 0d; -// remShare.setTaxedcost(BigDecimal.valueOf(nTemp)); -// -// nTemp = serviceFund.getTotalcost(); -// if (nTemp == null) nTemp = 0d; -// remShare.setTotalcost(BigDecimal.valueOf(nTemp)); -// -// nTemp = serviceFund.getExpertcost(); -// if (nTemp == null) nTemp = 0.0; -// remShare.setExpertcost(BigDecimal.valueOf(nTemp)); -// -// nTemp = serviceFund.getEthicscost(); -// if (nTemp == null) nTemp = 0.0; -// remShare.setEthicscost(BigDecimal.valueOf(nTemp)); -// -// nTemp = serviceFund.getMedicalcost(); -// if (nTemp == null) nTemp = 0.0; -// remShare.setMedicalcost(BigDecimal.valueOf(nTemp)); -// -// nTemp = serviceFund.getFamilycost(); -// if (nTemp == null) nTemp = 0.0; -// remShare.setFamilycost(BigDecimal.valueOf(nTemp)); -// -// nTemp = serviceFund.getAftercarecost(); -// if (nTemp == null) nTemp = 0.0; -// remShare.setAftercarecost(BigDecimal.valueOf(nTemp)); -// -// nTemp = serviceFund.getAmountrequested(); -// if (nTemp == null) nTemp = 0.0; -// remShare.setAmountrequested(BigDecimal.valueOf(nTemp)); -// -// -// remShare.setApplytype(serviceFund.getApplytype()); -// -// nTemp = serviceFund.getPrepaidamount(); -// if (nTemp == null) nTemp = 0.0; -// remShare.setPrepaidamount(BigDecimal.valueOf(nTemp)); -// -// remShare.setInvoicecount(serviceFund.getInvoicecount()); -// remShare.setAttachcount(serviceFund.getAttachcount()); -// remShare.setManagerno(serviceFund.getManagerno()); -// remShare.setManagername(serviceFund.getManagername()); -// remShare.setDeptmentno(serviceFund.getDeptmentno()); -// remShare.setDeptmentname(serviceFund.getDeptmentname()); -// remShare.setOpochecker(serviceFund.getOpochecker()); -// remShare.setFinvicepresident(serviceFund.getFinvicepresident()); -// remShare.setBusvicepresident(serviceFund.getBusvicepresident()); -// remShare.setOfficedirector(serviceFund.getOfficedirector()); -// remShare.setFinancedirector(serviceFund.getFinancedirector()); -// remShare.setFinancechecher(serviceFund.getFinancechecher()); -// //remShare.setIsdistribute(serviceFund.getIsdistribute()); -// remShare.setRecordstatus(serviceFund.getRecordstatus()); -// remShare.setUploadflag(serviceFund.getUploadflag()); -// remShare.setUploadtime(serviceFund.getUploadtime()); -// long nLevel = serviceFund.getFlowlevel(); -// remShare.setFlowlevel(nLevel); -// -// remShare.setInfoid(serviceFund.getInfoid()); -// -// //remShare.setOaid(serviceReimbursement.getOaid()); -// //remShare.setDonorno(serviceReimbursement.getDonorno()); -// -// boolean bRet = false; -// if (nType == 1) { -// bRet = fundServiceShare.save(remShare); -// } else { -// //remShare.setId(serviceReimbursement.); -// bRet = fundServiceShare.updateById(remShare); -// } -// -// //if(!bRet) return -1; -// String strMutfileUrl = remShare.getAnnexbankcard(); -// //鏈夐檮浠舵椂鎵嶈皟鐢ㄧ涓夋柟杩涜涓婁紶 -// if (strMutfileUrl == null) return 0; -// if (strMutfileUrl.isEmpty()) return 0; -// -// try { -// uploadOAFileAndUpdateDb(remShare); -// } catch (Exception e) { -// logger.error("璋冪敤绗笁鏂规帴鍙e嚭閿�!"); -// e.printStackTrace(); -// } -// -// //姝ゅ淇濆瓨鎴愬姛鍚庤涓婁紶OA锛屼繚瀛樿繑鍥炲�� -// -// return 0; -// } - - -// int uploadOAFileAndUpdateDb(ServiceFundShared remShare) { -// //涓婁紶OA鏂囦欢 -// //String strUrl = "http://129.88.242.39:8899/seeyon/rest/token?userName=opo&password=127814f8-84e8-4304-84a5-a71573567efd&loginName=demo3"; -// String strUrl = "http://129.88.242.39:8899/seeyon/rest/token"; -// //String strUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/token"; -// //涓婁紶鏂囦欢鎴愬姛鍚庯紝鍘绘洿鏂扮浉鍏崇殑鏁版嵁搴� -// -// -// Map<String, Object> map = new HashMap<String, Object>(); -// map.put("userName", "opo"); -// map.put("password", "4126407a-9821-4874-be41-6568abd6dbe5"); -// map.put("loginName", "demo3"); -// -// JSONObject jsonObj = new JSONObject(map); -// -// System.out.println("uploadOAFileAndUpdateDb + jsonObject" + jsonObj.toString() + "\r\n" + jsonObj.toJSONString()); -// String strRes = HttpClientKit.postOpr(strUrl, jsonObj.toString());// -// //String strRes = HttpClientKit.postMsg(strUrl,jsonObj);//寰楀埌杩斿洖鐨則oken? -// -// JSONObject json1 = JSONObject.parseObject(strRes); -// strRes = json1.get("id").toString(); -// -// ///if(strRes.isEmpty() || "" == strRes) return -1;// 涓虹┖浠h〃澶辫触 -// -// //涓嬮潰闇�姹傝皟鐢ㄦ枃浠剁殑鎺ュ彛锛岃皟鐢ㄦ垚鍔熻繑鍥炲悗锛屽緱鍒癴ilename鍜宖ileid 鐢ㄨ繖浜屼釜鍊煎幓鏇存柊鏁版嵁 -// -// String filePath = RuoYiConfig.getUploadPath(); -// String strMutfileUrl = remShare.getAnnexbankcard();//鍙兘瀛樺湪澶氫釜鍦板潃锛屼互,鍒嗗紑 -// -// String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + strRes; -// //String strFUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/attachment?token="+strRes; -// //strFUrl = String.format(strFUrl, strRes); -// -// /*File test = null; -// File file = new File("E:\\YYJQ\\OPO\\WEB\\Upload\\upload\\2023\\02\\17"); -// if (file.exists() && file.isDirectory()) { -// // 鑾峰彇鎵�鏈夌洸鐩掓枃浠跺す -// File[] ones = file.listFiles(); -// for (File one : ones) { -// test = one; -// } -// }*/ -// -// String filename = ""; -// String fileid = ""; -// -// String[] urlArray = strMutfileUrl.split(","); -// for (int i = 0; i < urlArray.length; i++) { -// String strOneFileName = urlArray[i]; -// String strTemp = strOneFileName.substring(15); -// String strFile = filePath + strTemp; -// //FileUploadUtils.getAbsoluteFile(filePath,strOneFileName); -// String struploadResult = ""; -// File filetest = new File(strFile); -// try { -// struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// -// -// //String strFRes = HttpClientKit.postMsg(strFUrl,jsonFObj); -// if (struploadResult == null) return 0; -// if (struploadResult.isEmpty()) return 0; -// -// JSONObject jsonR = JSONObject.parseObject(struploadResult); -// -// JSONArray jsonArr = jsonR.getJSONArray("atts"); -// for (int j = 0; j < jsonArr.size(); j++) { -// JSONObject jsonRet = jsonArr.getJSONObject(j); -// String name1 = jsonRet.get("filename").toString(); -// String id1 = jsonRet.get("fileUrl").toString(); -// filename += name1; -// fileid += id1; -// if (i != urlArray.length - 1) { -// filename += ","; -// fileid += ","; -// } -// } -// -// } -// -// long nId = remShare.getId(); -// remShare.setId(nId); -// remShare.setFilename(filename); -// remShare.setFileid(fileid); -// boolean bRet = fundServiceShare.updateById(remShare); -// if (!bRet) return -1; -// -// return 0; -// } + /** + * fund琛ㄤ腑锛屼慨鏀筬undTaxId + */ + @ApiOperation("fund琛ㄤ腑锛屼慨鏀筬undTaxId") + @PostMapping("/editFundTaxId") + public AjaxResult editFundTaxId(@RequestBody ServiceFund serviceFund) { + boolean b = serviceFundService.updateFundTaxIdById(serviceFund.getId(), serviceFund.getFundTaxId()); + return AjaxResult.success(b); + } /** * 鏂板璐圭敤姹囨�� */ @ApiOperation("鏂板璐圭敤姹囨��") @Log(title = "鏂板璐圭敤姹囨��", businessType = BusinessType.INSERT) - @PostMapping("/addnew") + @PostMapping("/addOrUpdateNew") @RepeatSubmit @Options(useGeneratedKeys = true, keyProperty = "id") - public AjaxResult addnew(@RequestBody ServiceFundVO serviceFundVO) { - boolean b = serviceFundService.save(serviceFundVO); - Long id = serviceFundVO.getId(); -// if (b) { -// addReiSharedDatd(serviceFundVO, 1); -// } - List<ServiceFunddetail> serviceFunddetails = serviceFundVO.getServiceFunddetails(); - serviceFunddetails.forEach(item -> item.setFundid(id)); - serviceFunddetailService.saveBatch(serviceFunddetails); - return AjaxResult.success(id); + public AjaxResult addOrUpdateNew(@RequestBody ServiceFundVO serviceFundVO) { + + return AjaxResult.success(serviceFundService.addOrUpdateNew(serviceFundVO)); } + /** * 瀹℃牳璐圭敤 */ @ApiOperation("瀹℃牳璐圭敤") - @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER) + @RepeatSubmit +// @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER) @PostMapping("/checkfund") public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) { - logger.info("serviceFundController---checkFund鐨勫叆鍙傚�糲heckFundVO :{}", checkFundVO); - ServiceFund serviceFund = serviceFundService.getById(checkFundVO.getFundid()); - if (serviceFund != null) { - Integer TotalLevel = 0; - LoginUser loginUser = getLoginUser(); - ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule(); - serviceFundflowrule.setFundtype(2); - serviceFundflowrule.setApplytype(serviceFund.getApplytype()); - serviceFundflowrule.setCheckuserno(loginUser.getUsername()); - logger.info("serviceFundController---checkFund---queryList鐨勫叆鍙傚�約erviceFundflowrule:{}", serviceFundflowrule); - - List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule); - - if (serviceFundflowrules == null || serviceFundflowrules.stream().count() == 0) { - return AjaxResult.error(HttpStatus.ERROR, "褰撳墠浜哄憳鏃犳璁板綍瀹℃牳鏉冮檺"); - } - - if (serviceFundflowrules.get(0).getFlowlevel() - 1 != serviceFund.getFlowlevel()) { - return AjaxResult.error(HttpStatus.ERROR, "褰撳墠浜哄憳涓庢璁板綍鐨勫鏍哥骇鍒笉绗�"); - } - - if (serviceFundflowrules != null && serviceFundflowrules.stream().count() > 0) { - TotalLevel = serviceFundflowrules.get(0).getTotallevel(); - } - - Integer CheckFlag = 0; - Integer RecordStatus = serviceFund.getRecordstatus(); - Integer FlowLevel = serviceFund.getFlowlevel(); - Integer OriginalFlowLevel = FlowLevel; - if (checkFundVO.getFlowconclusion() == 1) { - CheckFlag = 1; - if (TotalLevel == 0) { - RecordStatus = 99; - } else { - if (TotalLevel == FlowLevel + 1) { - RecordStatus = 99; - } else { - RecordStatus = (FlowLevel + 1) * 2; - } - } - FlowLevel = FlowLevel + 1; - } else { - CheckFlag = 2; - if (CheckFlag == 2) { - //搴斿尰闄㈣姹傚鏋滃嚭鐜伴��鍥烇紝鐩存帴閫�鍒板彂璧疯�� - FlowLevel = 0; - } else { - RecordStatus = (FlowLevel + 1) * 2 - 1; - FlowLevel = (FlowLevel - 1); - if (FlowLevel < 0) { - FlowLevel = 0; - } - } - } - - serviceFund.setRecordstatus(RecordStatus); - serviceFund.setFlowlevel(FlowLevel); - - ServiceFundflow serviceFundflow = new ServiceFundflow(); - SysUser user = loginUser.getUser(); - serviceFundflow.setFundid(serviceFund.getId()); - serviceFundflow.setCheckuserno(user.getUserName()); - serviceFundflow.setCheckusername(user.getNickName()); - serviceFundflow.setFundtype(2); - serviceFundflow.setApplytype(serviceFund.getApplytype()); - serviceFundflow.setFlowconclusion(CheckFlag); - serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent()); - serviceFundflow.setFlowlevel(OriginalFlowLevel + 1); - serviceFundflowService.save(serviceFundflow); - serviceFundService.updateById(serviceFund); - - ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage(); - serviceSystemmessage.setFundtype(2); - serviceSystemmessage.setApplytype(serviceFund.getApplytype()); - serviceSystemmessage.setSenduserno(user.getUserName()); - serviceSystemmessage.setSendusername(user.getNickName()); - serviceSystemmessage.setReceiveuserno(serviceFund.getUserno()); - serviceSystemmessage.setReceiveusername(serviceFund.getUsername()); - serviceSystemmessage.setIsread(0); - serviceSystemmessage.setMessagetype(1); - serviceSystemmessage.setRelevantno(serviceFund.getId()); - - if (CheckFlag == 1) { - //閫氳繃 - serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁�氳繃"); - serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceFund.getCreateTime()) + "鎻愪氦鐨勫叧浜庢崘鐚渚嬨��" + serviceFund.getDonorname() + "銆戠殑璐圭敤鐢宠宸查�氳繃" + (OriginalFlowLevel + 1) + "绾у鏍�"); - if (TotalLevel == OriginalFlowLevel + 1) { - ServiceFundShared serviceFundShared = DtoConversionUtils.sourceToTarget(serviceFund, ServiceFundShared.class); - serviceFundShared.setId(null); - serviceFundShared.setSerfunid(serviceFund.getId()); - serviceFundShared.setAmountrequested(new BigDecimal(serviceFund.getAmountrequested())); - serviceFundShared.setPrepaidamount(new BigDecimal(serviceFund.getPrepaidamount())); - serviceFundShared.setTotalcost(new BigDecimal(serviceFund.getTotalcost())); - serviceFundShared.setProcurementcost(new BigDecimal(serviceFund.getProcurementcost())); - serviceFundShared.setExpertcost(new BigDecimal(serviceFund.getExpertcost())); - serviceFundShared.setEthicscost(new BigDecimal(serviceFund.getEthicscost())); - serviceFundShared.setMedicalcost(new BigDecimal(serviceFund.getMedicalcost())); - serviceFundShared.setFamilycost(new BigDecimal(serviceFund.getFamilycost())); - serviceFundShared.setAftercarecost(new BigDecimal(serviceFund.getAftercarecost())); - fundSharedService.save(serviceFundShared); - - Map<String, Object> columnMap = new HashMap<>(); - columnMap.put("fundID", checkFundVO.getFundid()); - //鑾峰彇璇︽儏鏁版嵁 - List<ServiceFunddetail> serviceFunddetails = serviceFunddetailMapper.selectByMap(columnMap); - logger.info("serviceFundController---checkFund鐨勮繑鍥炲�約erviceFunddetails :{}", serviceFunddetails); - List<ServiceFunddetailShared> serviceFunddetailShareds = DtoConversionUtils.sourceToTarget(serviceFunddetails, ServiceFunddetailShared.class); - for (int i = 0; i < serviceFunddetails.size(); i++) { - serviceFunddetailShareds.get(i).setFundid(serviceFundShared.getId()); - serviceFunddetailShareds.get(i).setFdid(serviceFunddetails.get(i).getId()); - serviceFunddetailShareds.get(i).setAmount(new BigDecimal(serviceFunddetails.get(i).getAmount())); - serviceFunddetailShareds.get(i).setPrepaidamount(new BigDecimal(serviceFunddetails.get(i).getPrepaidamount())); - serviceFunddetailShareds.get(i).setTaxamount(new BigDecimal(serviceFunddetails.get(i).getTaxamount())); - serviceFunddetailShareds.get(i).setTaxedamount(new BigDecimal(serviceFunddetails.get(i).getTaxedamount())); - serviceFunddetailShareds.get(i).setQuantity(new BigDecimal(serviceFunddetails.get(i).getQuantity())); - serviceFunddetailShareds.get(i).setPrice(new BigDecimal(serviceFunddetails.get(i).getPrice())); - serviceFunddetailShareds.get(i).setId(null); - } - funddetailSharedService.saveBatch(serviceFunddetailShareds); - - } - - } else { - //椹冲洖 - serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁┏鍥�"); - serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceFund.getCreateTime()) + "鎻愪氦鐨勫叧浜庢崘鐚渚嬨��" + serviceFund.getDonorname() + "銆戠殑璐圭敤鐢宠宸茶" + (OriginalFlowLevel + 1) + "绾у鏍搁┏鍥烇紝鍘熷洜涓�" + checkFundVO.getFlowcontent() + ""); - } - ServiceSystemmessage.save(serviceSystemmessage); - return AjaxResult.success(); - } else { - return AjaxResult.error(HttpStatus.NO_CONTENT, "璐圭敤缂栧彿涓嶆纭�"); + log.info("serviceFundController---checkFund鐨勫叆鍙傚�糲heckFundVO :{}", checkFundVO); + LoginUser loginUser = getLoginUser(); + Map<String, String> map = serviceFundService.checkFund(checkFundVO,loginUser); + Set<String> keys = map.keySet(); + for (String s : keys) { + if (!s.equals("200")) return AjaxResult.error(map.get(s)); } + return AjaxResult.success(); } /** - * 淇敼璐圭敤鐢宠涓� + * 璐圭敤涓婃姤 */ - @ApiOperation("淇敼璐圭敤鐢宠涓�") - //@PreAuthorize("@ss.hasPermi('project:fund:edit')") - @Log(title = "璐圭敤鐢宠涓�", businessType = BusinessType.UPDATE) - @PutMapping + @ApiOperation("璐圭敤涓婃姤") + @Log(title = "璐圭敤涓婃姤", businessType = BusinessType.UPDATE) + @PostMapping("/fundEdit") @RepeatSubmit - public AjaxResult edit(@RequestBody ServiceFund serviceFund) { - List<ServiceFund> infoByInfoIdList = serviceFundService.getInfoByInfoId(serviceFund.getId()); - for (ServiceFund sf : infoByInfoIdList) { - //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜� - if (sf.getBackflowlevel() == 100 || sf.getBackflowlevel() == 199) { - ServiceFundShared serviceFundShared = DtoConversionUtils.sourceToTarget(serviceFund, ServiceFundShared.class); - serviceFundShared.setId(null); - serviceFundShared.setDel_flag(0); - fundSharedService.save(serviceFundShared); + public AjaxResult fundEdit(@RequestBody ServiceFundVO serviceFundVO) { + ServiceFund serviceFund = DtoConversionUtils.sourceToTarget(serviceFundVO, ServiceFund.class); + log.info("淇敼璐圭敤鐢宠鍏ュ弬:{}", serviceFund); + List<ServiceFund> infoByInfoIdList = serviceFundService.queryInfoById(serviceFund); + log.info("淇敼璐圭敤鐢宠锛岄�氳繃鍏ュ弬鏌ヨ serviceFundService.queryInfoById鏁版嵁涓虹┖,鍏ュ弬:{}", infoByInfoIdList.size()); + if (CollectionUtils.isEmpty(infoByInfoIdList)) { + Long id = serviceFundService.addOrUpdateNew(serviceFundVO); + serviceFund.setId(id); + } + Long flowLavel = null; + + LoginUser loginUser = getLoginUser(); + + //鏌ヨ蹇呭浜� + ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule(); + serviceFundflowrule.setApplytype(serviceFund.getApplytype()); + serviceFundflowrule.setMustAudite(1); + List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule); + log.info("fund蹇呭浜虹殑绛夌骇涓猴細{}", serviceFundflowrules.get(0).getFlowlevel()); + + for (ServiceFund sf : infoByInfoIdList) { + sf.setApplyTime(new Date()); + //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜� + if (sf.getBackflowlevel() != null && sf.getBackflowlevel() == 199) { //灏唂und琛ㄧ殑瀹℃牳鐘舵�佹敼鎴�100 sf.setBackflowlevel(100); + + //閫�鍥炲啀鎻愪氦锛岄渶瑕佸啀鍒板嚭绾抽偅閲� + sf.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); + sf.setRecordstatus(0); serviceFundService.updateById(sf); + +// //寰�鍒嗕韩琛ㄩ噷鏂板 +// serviceFundService.addFundSharedInfo(serviceFund.getId()); + return success(); + } else if (sf.getBackflowlevel() != null && sf.getBackflowlevel() == 100) { + //璐㈠姟閫�鍥炵殑鏁版嵁鍐嶆彁浜わ紝鍒板嚭绾抽偅閲屾病鏈夎繃锛屽啀閫�鍥烇紝瀵艰嚧backflowlevel鏄�100, + //閫�鍥炲啀鎻愪氦锛岄渶瑕佸啀鍒板嚭绾抽偅閲� + sf.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); + sf.setRecordstatus(2); + serviceFundService.updateById(sf); + } else if (sf.getBackflowlevel() != null && sf.getBackflowlevel() >= serviceFundflowrules.get(0).getFlowlevel()) { + //鑱傜閫�鍥炵殑锛屼篃闇�瑕佸厛鍒板嚭绾抽偅閲� + sf.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); + sf.setRecordstatus(2); + serviceFundService.updateById(sf); } else { - serviceFund.setFlowlevel(sf.getBackflowlevel()); + + Integer TotalLevel = 0; + List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId()); + if (!postids.contains(2)) { + serviceFund.setRecordstatus(2); + if (serviceFund.getBackflowlevel() != null) { + serviceFund.setFlowlevel(serviceFund.getBackflowlevel().longValue()); + } else { + serviceFund.setBackflowlevel(serviceFundflowrules.get(0).getFlowlevel() - 1); + serviceFund.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1)); + } + } else { + serviceFund.setRecordstatus(0); + if (serviceFund.getBackflowlevel() != null) { + serviceFund.setFlowlevel(serviceFund.getBackflowlevel().longValue()); + } else { + serviceFund.setFlowlevel(0L); + serviceFund.setBackflowlevel(0); + } + + } + // serviceFund.setFlowlevel(sf.getBackflowlevel()); boolean bret = serviceFundService.updateById(serviceFund); -// if (bret) { -// addReiSharedDatd(serviceFund, 2); -// } + log.info("serviceFundService.updateById杩斿弬:{}", bret); + return toAjax(bret); } } @@ -618,13 +420,14 @@ return toAjax(false); } + /** * 鍒犻櫎璐圭敤鐢宠涓� */ @ApiOperation("鍒犻櫎璐圭敤鐢宠涓�") - //@PreAuthorize("@ss.hasPermi('project:fund:remove')") + //// @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))); } @@ -636,7 +439,7 @@ @GetMapping(value = "/downloadLW/{id}") public Map downloadInfoLW(@PathVariable("id") Long id) throws IOException { Map dataMap = new HashMap(); - getDataLW(dataMap, id); + String dataLW = getDataLW(dataMap, id); String filePath = getClass().getResource("/template/").getPath(); System.out.println(filePath); //璁剧疆妯℃湰瑁呯疆鏂规硶鍜岃矾寰�,FreeMarker鏀寔澶氱妯℃澘瑁呰浇鏂规硶銆傚彲浠ラ噸servlet锛宑lasspath锛屾暟鎹簱鏁欑▼瑁呰浇锛� @@ -650,7 +453,11 @@ e.printStackTrace(); } String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis()); + String name = "涓撳鍔冲姟璐瑰彂鏀剧敵璇峰崟_" + dataMap.get("XM") + "_" + newTime; + if (dataLW.equals("4")) { + name = "鍔炲叕璐圭敤鐢宠鍗昣" + dataMap.get("XM") + "_" + newTime; + } //杈撳嚭鏂囨。璺緞鍙婂悕绉� File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc"); @@ -669,10 +476,11 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } - private void getDataLW(Map dataMap, Long id) { + private String getDataLW(Map dataMap, Long id) { ServiceFund serviceFund = serviceFundService.getById(id); if (serviceFund == null) { throw new ServiceException("涓嬭浇澶辫触锛岀敤鎴蜂俊鎭嚭閿�", HttpStatus.NO_CONTENT); @@ -682,15 +490,22 @@ String date = formatter.format(dt); 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() + "鍏冦��"); +// dataMap.put("FYXM1", "鏀粯涓撳璐圭敤锛屽叾涓◣鍓嶉噾棰�" + serviceFund.getPretaxcost() + "鍏冿紝绋庡悗閲戦" + serviceFund.getTaxedcost() + "鍏冦��"); + if (serviceFund.getApplytype().equals("1")) { + dataMap.put("FYXM1", "浜轰綋鍣ㄥ畼鎹愮尞涓撳鍔冲姟璐�:" + serviceFund.getPretaxcost() + "鍏� (鍏朵腑绋庡悗璐圭敤鐢变腑蹇冩壙鎷呯◣璐�)銆�"); + } else if (serviceFund.getApplytype().equals("4")) { + dataMap.put("FYXM1", "鍔炲叕璐圭敤:" + serviceFund.getPretaxcost()); + } dataMap.put("FYXM2", ""); dataMap.put("FYXM3", ""); - dataMap.put("JEXS", serviceFund.getAmountrequested()); - dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "鏁�"); + dataMap.put("JEXS", serviceFund.getPretaxcost()); + dataMap.put("JEDS", convert(serviceFund.getPretaxcost()) + "鏁�"); dataMap.put("BXBZ", serviceFund.getRemark() == null ? "" : serviceFund.getRemark()); @@ -740,16 +555,34 @@ List<Double> sqljList = new ArrayList<>(); List<Double> ksljList = new ArrayList<>(); List<Double> shljList = new ArrayList<>(); - Map<String, Optional<ServiceFunddetailAssort>> result = fd.stream().collect(Collectors.groupingBy(ServiceFunddetail::getApplytypename, Collectors.mapping(obj -> new ServiceFunddetailAssort(obj.getAmount(), obj.getTaxamount(), obj.getTaxedamount()), Collectors.reducing(ServiceFunddetailAssort::add)))); - result.forEach((FWFL, serviceFunddetailAssort) -> { + + //鏍规嵁鈥濈鐩被鍨嬪悕绉扳�滐紝鏉ヨ绠楃◣鍓嶆�诲拰锛岀◣閲戞�诲拰,绋庡悗鎬诲拰 + Map<String, ServiceFunddetailAssort> funddetailMap = new HashMap<>(); + for (ServiceFunddetail serviceFunddetail : fd) { + boolean b = funddetailMap.containsKey(serviceFunddetail.getSubjecttypename()); + if (b == true) { + ServiceFunddetailAssort serviceFunddetailAssort = funddetailMap.get(serviceFunddetail.getSubjecttypename()); + serviceFunddetailAssort.setKSXJ(serviceFunddetailAssort.getKSXJ() + serviceFunddetail.getTaxamount()); + serviceFunddetailAssort.setSQXJ(serviceFunddetailAssort.getSQXJ() + serviceFunddetail.getAmount()); + serviceFunddetailAssort.setSHXJ(serviceFunddetailAssort.getSHXJ() + serviceFunddetail.getTaxedamount()); + } else { + funddetailMap.put(serviceFunddetail.getSubjecttypename(), new ServiceFunddetailAssort()); + ServiceFunddetailAssort serviceFunddetailAssort = funddetailMap.get(serviceFunddetail.getSubjecttypename()); + serviceFunddetailAssort.setKSXJ(serviceFunddetailAssort.getKSXJ() + serviceFunddetail.getTaxamount()); + serviceFunddetailAssort.setSQXJ(serviceFunddetailAssort.getSQXJ() + serviceFunddetail.getAmount()); + serviceFunddetailAssort.setSHXJ(serviceFunddetailAssort.getSHXJ() + serviceFunddetail.getTaxedamount()); + } + } + + funddetailMap.forEach((FWFL, serviceFunddetailAssort) -> { Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("FWFL", FWFL); - map1.put("SQXJ", serviceFunddetailAssort.get().getSQXJ()); - map1.put("KSXJ", serviceFunddetailAssort.get().getKSXJ()); - map1.put("SHXJ", serviceFunddetailAssort.get().getSHXJ()); - sqljList.add(serviceFunddetailAssort.get().getSQXJ()); - ksljList.add(serviceFunddetailAssort.get().getKSXJ()); - shljList.add(serviceFunddetailAssort.get().getSHXJ()); + map1.put("SQXJ", serviceFunddetailAssort.getSQXJ()); + map1.put("KSXJ", serviceFunddetailAssort.getKSXJ()); + map1.put("SHXJ", serviceFunddetailAssort.getSHXJ()); + sqljList.add(serviceFunddetailAssort.getSQXJ()); + ksljList.add(serviceFunddetailAssort.getKSXJ()); + shljList.add(serviceFunddetailAssort.getSHXJ()); lists.add(map1); }); @@ -770,7 +603,7 @@ dataMap.put("list", newsList); for (int i = 0; i < lists.size(); i++) { Map<String, Object> map = lists.get(i); - map.put("XH", i+1); + map.put("XH", i + 1); } dataMap.put("item", lists); @@ -783,6 +616,7 @@ dataMap.put("KSLJ", kslj); dataMap.put("SHLJ", shlj); + return serviceFund.getApplytype(); } @@ -923,11 +757,13 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } private void getDataSS(Map dataMap, Long id) { ServiceFund serviceFund = serviceFundService.getById(id); + log.info("閫氳繃id鏌ヨ鏁版嵁鐨勭粨鏋滐細{}", serviceFund); if (serviceFund == null) { throw new ServiceException("涓嬭浇澶辫触锛岀敤鎴蜂俊鎭嚭閿�", HttpStatus.NO_CONTENT); } @@ -970,14 +806,15 @@ } /** - * 涓嬭浇鎹愮尞鑰呭尰瀛︽垚鏈粺璁¤〃 + * 涓嬭浇鎹愮尞鑰呭尰瀛︺�佸姙鍏�佺哗鏁堟垚鏈粺璁¤〃 */ - @ApiOperation("鎹愮尞鑰呭尰瀛︽垚鏈粺璁¤〃") + @ApiOperation("鎹愮尞鑰呭尰瀛︺�佸姙鍏�佺哗鏁堟垚鏈粺璁¤〃") @GetMapping(value = "/downloadYX/{id}") public Map downloadInfoYX(@PathVariable("id") Long id) throws IOException { Map dataMap = new HashMap(); - getDataYX(dataMap, id); + String dataYX = getDataYX(dataMap, id); String filePath = getClass().getResource("/template/").getPath(); + log.info("filePath鐨勫�间负:{}", filePath); System.out.println(filePath); //璁剧疆妯℃湰瑁呯疆鏂规硶鍜岃矾寰�,FreeMarker鏀寔澶氱妯℃澘瑁呰浇鏂规硶銆傚彲浠ラ噸servlet锛宑lasspath锛屾暟鎹簱鏁欑▼瑁呰浇锛� configuration.setDirectoryForTemplateLoading(new File(filePath)); @@ -985,45 +822,79 @@ Template t = null; try { //鎹愮尞琛�.ftl涓鸿瑁呰浇鐨勬ā鏉� - t = configuration.getTemplate("鍖诲鎴愭湰璐圭敤鐢宠鍗�.ftl"); + //涓撳鍔冲姟璐圭敵璇� 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(); } String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis()); - String name = "鍖诲鎴愭湰璐圭敤鐢宠鍗昣" + dataMap.get("XM") + "_" + newTime; - + String name = null; + if (dataYX.equals("3")) { + 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"); Writer out = null; - try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8")); } catch (FileNotFoundException e1) { - e1.printStackTrace(); + log.error("FileNotFoundException鎶ラ敊淇℃伅鏄細{}", e1.getMessage()); +// e1.printStackTrace(); } try { + t.process(dataMap, out); } catch (TemplateException e) { - e.printStackTrace(); + log.error("TemplateException鎶ラ敊淇¤嚜鏄細{}", e.getMessage()); + e.getMessage(); } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } - private void getDataYX(Map dataMap, Long id) { + private String getDataYX(Map dataMap, Long id) { ServiceFund serviceFund = serviceFundService.getById(id); + log.info("閫氳繃id鑾峰彇鍖诲銆佸姙鍏�佺哗鏁堟垚鏈殑fund淇℃伅涓猴細{}", serviceFund); if (serviceFund == null) { throw new ServiceException("涓嬭浇澶辫触锛岀敤鎴蜂俊鎭嚭閿�", HttpStatus.NO_CONTENT); } + ServiceExternalperson infoByUserNo = null; + if (StringUtils.isNotBlank(serviceFund.getUserno()) && serviceFund.getApplytype().equals("5")) { + infoByUserNo = externalpersonService.getInfoByUserNo(serviceFund.getUserno()); + } 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); } - Date dt = serviceFund.getCreateTime(); +// Date dt = serviceFund.getCreateTime(); + Date dt = serviceFund.getApplyTime(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = formatter.format(dt); String time = date.substring(0, 10); @@ -1031,34 +902,104 @@ 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()); dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname()); dataMap.put("JSR", serviceFund.getUsername() == null ? "" : serviceFund.getUsername()); + dataMap.put("YWZ", serviceFund.getDeptmentname() == null ? "" : serviceFund.getDeptmentname()); + dataMap.put("ZHUZANG", serviceFund.getManagername() == null ? "" : serviceFund.getManagername()); - for (ServiceFunddetail f : fd) { - seqno++; + + if (StringUtils.isEmpty(serviceFund.getRemark())) { + dataMap.put("FYMC", LocalDate.now().getYear() + "骞�" + LocalDate.now().getMonthValue() + "鏈堜汉浣撳櫒瀹樿幏鍙栨湇鍔$鐞嗕腑蹇冨伐浣滀汉鍛樼哗鏁�"); + } else { + dataMap.put("FYMC", serviceFund.getRemark().substring(0, serviceFund.getRemark().length() - 2) + "浜轰綋鍣ㄥ畼鑾峰彇鏈嶅姟绠$悊涓績宸ヤ綔浜哄憳缁╂晥"); + } + String bz = ""; + int i = 0; + if (!serviceFund.getApplytype().equals("5")) { + for (ServiceFunddetail f : fd) { + seqno++; + Map<String, Object> map = new HashMap<String, Object>(); + map.put("seqno", seqno); + + //濡傛灉鏄尰鐤楁垚鏈紝鍒欐妸閾惰鍗″姞涓婃瘡鏉℃槑缁嗙殑鍚庨潰 + 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() + "鍏�"; + if (f.getItemname() == null && f.getAmount() == 0.0) { + fyxm = ""; + } + map.put("FYXM", fyxm); + newList.add(map); + } + } else { Map<String, Object> map = new HashMap<String, Object>(); - map.put("seqno", seqno); + map.put("seqno", 1); 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 (StringUtils.isEmpty(serviceFund.getRemark())) { + fyxm += LocalDate.now().getYear() + "骞�" + LocalDate.now().getMonthValue() + "鏈堜汉浣撳櫒瀹樿幏鍙栨湇鍔$鐞嗕腑蹇冨伐浣滀汉鍛樼哗鏁�,鍏辫"; + } else { + fyxm += serviceFund.getRemark().substring(0, serviceFund.getRemark().length() - 2) + "浜轰綋鍣ㄥ畼鑾峰彇鏈嶅姟绠$悊涓績宸ヤ綔浜哄憳缁╂晥,鍏辫"; + } + fyxm += serviceFund.getPretaxcost() + "鍏�"; + if (serviceFund.getPretaxcost() == null && serviceFund.getPretaxcost() == 0.0) { + fyxm = ""; + } map.put("FYXM", fyxm); newList.add(map); + Map<String, Object> objectObjectHashMap = new HashMap<>(); + objectObjectHashMap.put("seqno", 2); + objectObjectHashMap.put("FYXM", ""); + newList.add(objectObjectHashMap); + + Map<String, Object> objectObjectHashMap2 = new HashMap<>(); + objectObjectHashMap2.put("seqno", 3); + objectObjectHashMap2.put("FYXM", ""); + newList.add(objectObjectHashMap2); } + + + //鍚堝苟鍗曞厓鏍� + checkList(newList); dataMap.put("items", newList); - dataMap.put("JEXS", serviceFund.getAmountrequested()); - dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "鏁�"); - dataMap.put("BXBZ", serviceFund.getRemark() == null ? "" : serviceFund.getRemark()); + dataMap.put("JEXS", serviceFund.getPretaxcost()); + dataMap.put("JEDS", convert(serviceFund.getPretaxcost()) + "鏁�"); +// dataMap.put("JEXS", serviceFund.getAmountrequested()); +// dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "鏁�"); + //澶囨敞閲屾斁鐨勬槸缁忓姙浜虹殑閾惰鍗′俊鎭� + + 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()); + dataMap.put("BGSZR", serviceFund.getOfficedirector() == null ? "" : serviceFund.getOfficedirector()); + dataMap.put("CWBZR", serviceFund.getFinancedirector() == null ? "" : serviceFund.getFinancedirector()); + dataMap.put("CWSH", serviceFund.getFinancechecher() == null ? "" : serviceFund.getFinancechecher()); dataMap.put("YYMMDD", time); - dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname()); + dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname().trim()); dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername()); dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername()); @@ -1072,7 +1013,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()); @@ -1085,6 +1026,21 @@ dataMap.put("list", newsList); dataMap.put("BYHJ", hj); + dataMap.put("BGSZR2", serviceFund.getOfficedirector() == null ? "" : serviceFund.getOfficedirector()); + dataMap.put("CWBZR2", serviceFund.getFinancedirector() == null ? "" : serviceFund.getFinancedirector()); + dataMap.put("CWSH2", serviceFund.getFinancechecher() == null ? "" : serviceFund.getFinancechecher()); + + return serviceFund.getApplytype(); + } + + public List<Map<String, Object>> checkList(List<Map<String, Object>> list) { + String start = "<w:vMerge w:val='restart'/>"; + String end = "<w:vMerge/>"; + list.get(0).put("start", start); + for (int i = 1; i < list.size(); i++) { + list.get(i).put("end", end); + } + return list; } @@ -1128,6 +1084,7 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } @@ -1196,6 +1153,7 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } @@ -1695,6 +1653,7 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } @@ -1709,6 +1668,7 @@ String date = formatter.format(dt); String time = date.substring(0, 10); + dataMap.put("XZBH", serviceFund.getBh() == null ? "" : serviceFund.getBh()); dataMap.put("YYMMDD", time); dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname()); dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername()); @@ -1782,6 +1742,7 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); + map.put("downloadName", name + ".doc"); return map; } @@ -1795,6 +1756,8 @@ 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()); dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname()); @@ -1851,7 +1814,6 @@ dataMap.put("SQZE", String.format("%.2f", sh).toString() + ""); - } @@ -1879,6 +1841,7 @@ /** * 璐圭敤绫诲瀷璁℃暟 */ +// @NotRepeatCommit(key = "param:arg[1]", value = 30000) @ApiOperation("璐圭敤绫诲瀷璁℃暟") @GetMapping(value = "/countItem/{infoid}/{itemid}") public AjaxResult countItem(@PathVariable Long infoid, @PathVariable Long itemid) { @@ -1888,4 +1851,56 @@ } + /** + * 缁╂晥璁$畻 + */ + @ApiOperation("缁╂晥璁$畻") + @Log(title = "缁╂晥璁$畻", businessType = BusinessType.INSERT) + @PostMapping("/performance") + @RepeatSubmit + public AjaxResult performance(@RequestBody ServiceFundVO serviceFundVO) { + + return AjaxResult.success(serviceFundService.performance(serviceFundVO)); + } + + /** + * 鍚堣涓◣ + */ + @NotRepeatCommit(key = "param:arg[1]", value = 30000) + @ApiOperation("鍚堣涓◣") + @Log(title = "鍚堣涓◣", businessType = BusinessType.INSERT) + @PostMapping("/totaltax") + public AjaxResult totaltax(@RequestBody TotalTaxVO totalTaxVO) { + Map<String, List<ServiceFunddetailExcel>> totaltax = serviceFundService.totaltax(totalTaxVO); + if (ObjectUtils.isEmpty(totaltax)) { + throw new BaseException("鍚堣涓◣澶辫触"); + } + + Set<String> strings = totaltax.keySet(); + String key2 = null; + for (String key : strings) { + key2 = key; + } + ExcelUtil<ServiceFunddetailExcel> util = new ExcelUtil<ServiceFunddetailExcel>(ServiceFunddetailExcel.class); + AjaxResult ajaxResult = util.exportExcel(totaltax.get(key2), key2); + String msg = (String) ajaxResult.get("msg"); + + Map dataMap = new HashMap(); + dataMap.put("downloadUrl", "/profile/download/" + msg); + dataMap.put("downloadName", msg); + + return AjaxResult.success(dataMap); + } + + /** + * 瀵煎嚭涓撳鎶ラ攢璐圭敤姹囨�� + */ + @ApiOperation("瀵煎嚭涓撳鎶ラ攢璐圭敤姹囨��") + @Log(title = "璐圭敤鐢宠涓�", businessType = BusinessType.EXPORT) + @GetMapping("/exportFeeSum/{faxId}") + public Map<String, Object> exportFeeSum(@PathVariable Integer faxId) { + Map<String, Object> map = serviceFundService.exportFeeSum(faxId); + return map; + } + } -- Gitblit v1.9.3