From 2136ebf3c9a32430a27b5c50d7a7452cc3b30fdd Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 05 九月 2025 15:34:34 +0800
Subject: [PATCH] 审批日志
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java | 947 ++++++++++++++++++++++++++++++++--------------------------
1 files changed, 521 insertions(+), 426 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 ac64e1f..2c26721 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,8 +1,8 @@
package com.ruoyi.web.controller.project;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
+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;
@@ -13,26 +13,34 @@
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.HttpClientKit;
+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;
@@ -42,6 +50,7 @@
* @author ruoyi
* @date 2022-01-24
*/
+@Slf4j
@Api("璐圭敤鐢宠涓�")
@RestController
@RequestMapping("/project/fund")
@@ -50,17 +59,12 @@
@Autowired
private IServiceFundService serviceFundService;
@Autowired
- private IServiceFundSharedService fundSharedService;
- @Autowired
- private ServiceFunddetailMapper serviceFunddetailMapper;
+ private IServiceFundSharedService serviceFundSharedService;
@Autowired
private IServiceFunddetailService serviceFunddetailService;
@Autowired
- private IServiceFunddetailSharedService funddetailSharedService;
- @Autowired
private IServiceFundflowruleService serviceFundflowruleService;
- @Autowired
- private IServiceFundflowService serviceFundflowService;
+
@Autowired
private IServiceDonatebaseinfoService serviceDonatebaseinfoService;
@@ -68,11 +72,10 @@
private IServiceReimbursementService serviceReimbursementService;
@Autowired
- private IServiceSystemmessageService ServiceSystemmessage;
+ private IServiceExternalpersonService externalpersonService;
@Autowired
- private IServiceFundSharedService fundServiceShare;
-
+ private ISysPostService postService;
public ServiceFundController() {
configuration = new Configuration();
@@ -80,14 +83,72 @@
}
/**
+ * 鑷磋繙绯荤粺娴佺▼閫�鍥�
+ *
+ * @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("瀹℃壒璁板綍鎴愬姛");
+ }
+
+ /**
+ * 淇敼缂栧彿涓庢敮浠樻柟寮�
+ *
+ * @param serviceCodeAndPyaWay
+ * @return
+ */
+ @PostMapping("/updatecodepayway")
+ public AjaxResult updatecodepay(@RequestBody ServiceCodeAndPyaWay serviceCodeAndPyaWay) {
+ log.info("鑷磋繙绯荤粺缂栧彿涓庢敮浠樻柟寮忓叆鍙傦細{}", serviceCodeAndPyaWay);
+ if (StringUtils.isEmpty(serviceCodeAndPyaWay.getApplytype()) || StringUtils.isEmpty(serviceCodeAndPyaWay.getBh()) || StringUtils.isEmpty(serviceCodeAndPyaWay.getZffs())) {
+ return AjaxResult.error("鍏ヨ兘涓虹┖,璇锋鏌ュ叆鍙�!!");
+ }
+
+ Boolean result = serviceFundService.updatecodepay(serviceCodeAndPyaWay);
+ if (!result) 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);
}
@@ -115,7 +176,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;
}
@@ -137,18 +203,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));
@@ -160,21 +251,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) {
@@ -188,7 +275,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));
@@ -198,9 +285,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) {
@@ -212,397 +299,145 @@
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;
- 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) {
- boolean bret = serviceFundService.updateById(serviceFund);
-// if (bret) {
-// addReiSharedDatd(serviceFund, 2);
-// }
- return toAjax(bret);
+ 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 {
+
+ 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);
+ log.info("serviceFundService.updateById杩斿弬:{}", bret);
+
+ return toAjax(bret);
+ }
+ }
+
+ 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)));
}
@@ -614,7 +449,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锛屾暟鎹簱鏁欑▼瑁呰浇锛�
@@ -623,12 +458,20 @@
Template t = null;
try {
//鎹愮尞琛�.ftl涓鸿瑁呰浇鐨勬ā鏉�
- t = configuration.getTemplate("涓撳鍔冲姟璐瑰彂鏀剧敵璇峰崟.ftl");
+ t = configuration.getTemplate("涓撳鍔冲姟璐瑰彂鏀剧敵璇峰崟(1).ftl");
} catch (IOException e) {
e.printStackTrace();
}
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
- String name = "涓撳鍔冲姟璐瑰彂鏀剧敵璇峰崟_" + dataMap.get("XM") + "_" + newTime;
+
+ String newName = null;
+ if (Objects.isNull(dataMap.get("XM"))) {
+ newName = dataMap.get("XM").toString().trim();
+ }
+ String name = "涓撳鍔冲姟璐瑰彂鏀剧敵璇峰崟_" + newName + "_" + newTime;
+ if (dataLW.equals("4")) {
+ name = "鍔炲叕璐圭敤鐢宠鍗昣" + newName + "_" + newTime;
+ }
//杈撳嚭鏂囨。璺緞鍙婂悕绉�
File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc");
@@ -647,10 +490,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);
@@ -660,15 +504,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());
@@ -689,6 +540,7 @@
for (ServiceFunddetail f : fd) {
Map<String, Object> map = new HashMap<String, Object>();
+
map.put("XH", f.getItemcode() == null ? "" : f.getItemcode());
String itemName = f.getItemname() == null ? "" : f.getItemname();
@@ -711,12 +563,74 @@
newsList.add(map);
}
+ // 涓撳鍔冲姟璐圭粺璁¤〃
+ List<Map<String, Object>> lists = new ArrayList<Map<String, Object>>();
+
+ List<Double> sqljList = new ArrayList<>();
+ List<Double> ksljList = new ArrayList<>();
+ List<Double> shljList = new ArrayList<>();
+
+ //鏍规嵁鈥濈鐩被鍨嬪悕绉扳�滐紝鏉ヨ绠楃◣鍓嶆�诲拰锛岀◣閲戞�诲拰,绋庡悗鎬诲拰
+ 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.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);
+ });
+
+ double sqxj = 0;
+ double kslj = 0;
+ double shlj = 0;
+ for (Double sqx : sqljList) {
+ sqxj += sqx;
+ }
+ for (Double ksl : ksljList) {
+ kslj += ksl;
+ }
+ for (Double shl : shljList) {
+ shlj += shl;
+ }
+
+ //鏁版嵁灏佽
dataMap.put("list", newsList);
+ for (int i = 0; i < lists.size(); i++) {
+ Map<String, Object> map = lists.get(i);
+ map.put("XH", i + 1);
+ }
+
+ dataMap.put("item", lists);
dataMap.put("SQHJ", sq);
dataMap.put("KSHJ", ks);
dataMap.put("SHHJ", sh);
+ dataMap.put("SQLJ", sqxj);
+ dataMap.put("KSLJ", kslj);
+ dataMap.put("SHLJ", shlj);
+
+ return serviceFund.getApplytype();
}
@@ -857,11 +771,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);
}
@@ -904,14 +820,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));
@@ -919,45 +836,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);
@@ -965,34 +916,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());
@@ -1006,7 +1027,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());
@@ -1019,6 +1040,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;
}
@@ -1062,6 +1098,7 @@
}
Map<String, Object> map = new HashMap<>();
map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc");
+ map.put("downloadName", name + ".doc");
return map;
}
@@ -1130,6 +1167,7 @@
}
Map<String, Object> map = new HashMap<>();
map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc");
+ map.put("downloadName", name + ".doc");
return map;
}
@@ -1629,6 +1667,7 @@
}
Map<String, Object> map = new HashMap<>();
map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc");
+ map.put("downloadName", name + ".doc");
return map;
}
@@ -1643,6 +1682,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());
@@ -1716,6 +1756,7 @@
}
Map<String, Object> map = new HashMap<>();
map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc");
+ map.put("downloadName", name + ".doc");
return map;
}
@@ -1729,6 +1770,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());
@@ -1785,7 +1828,6 @@
dataMap.put("SQZE", String.format("%.2f", sh).toString() + "");
-
}
@@ -1813,6 +1855,7 @@
/**
* 璐圭敤绫诲瀷璁℃暟
*/
+// @NotRepeatCommit(key = "param:arg[1]", value = 30000)
@ApiOperation("璐圭敤绫诲瀷璁℃暟")
@GetMapping(value = "/countItem/{infoid}/{itemid}")
public AjaxResult countItem(@PathVariable Long infoid, @PathVariable Long itemid) {
@@ -1822,4 +1865,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