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/ServiceReimbursementController.java | 813 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 486 insertions(+), 327 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
index b7da5fd..10fe981 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -1,63 +1,71 @@
package com.ruoyi.web.controller.project;
-import java.io.*;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
import com.ruoyi.project.domain.vo.CheckFundVO;
+import com.ruoyi.project.domain.vo.DingTalkReqVo;
import com.ruoyi.project.domain.vo.SpFinancialExpensesIn;
import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
import com.ruoyi.project.service.*;
-import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.service.ISysPostService;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.web.controller.enums.PersonType;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang.ArrayUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Options;
-import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-import freemarker.template.Configuration;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.*;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
/**
* 鎶ラ攢鐢宠Controller
- *
+ *
* @author ruoyi
* @date 2022-01-24
*/
+@Slf4j
@Api("鎶ラ攢鐢宠")
@RestController
@RequestMapping("/project/reimbursement")
-public class ServiceReimbursementController extends BaseController
-{
+public class ServiceReimbursementController extends BaseController {
@Autowired
private IServiceReimbursementService serviceReimbursementService;
+
+// @Autowired
+// private MergeFilesToPDFUtils mergeFilesToPDFUtils;
+
+ @Autowired
+ private IServiceReimbursementSharedService serviceReimbursementSharedService;
+
+ @Autowired
+ private IServiceReimbursementpayeeService reimbursementpayeeService;
@Autowired
private IServiceReimbursementdetailService serviceReimbursementdetailService;
@@ -69,31 +77,36 @@
private IServiceFundflowService serviceFundflowService;
@Autowired
- private ISysPostService postService;
+ private DingTalkService dingTalkService;
@Autowired
- private IServiceSystemmessageService ServiceSystemmessage;
+ private ISysUserService sysUserService;
+
+ @Autowired
+ private ISysPostService postService;
private static Configuration configuration = null;
+
public ServiceReimbursementController() {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
}
- static String cashUnitLeft[] = { "鍏�", "鎷�", "浣�", "浠�", "涓�", "鎷�", "浣�", "浠�","浜�", "鎷�", "浣�", "浠�", "涓�" };
- static String cashUnitRight[] = { "瑙�", "鍒�", "鍘�" };
- static String upperNumber[] = { "闆�", "澹�", "璐�", "鍙�", "鑲�", "浼�", "闄�", "鏌�","鎹�", "鐜�" };
+
+ static String cashUnitLeft[] = {"鍏�", "鎷�", "浣�", "浠�", "涓�", "鎷�", "浣�", "浠�", "浜�", "鎷�", "浣�", "浠�", "涓�"};
+ static String cashUnitRight[] = {"瑙�", "鍒�", "鍘�"};
+ static String upperNumber[] = {"闆�", "澹�", "璐�", "鍙�", "鑲�", "浼�", "闄�", "鏌�", "鎹�", "鐜�"};
/**
* 鏌ヨ鎶ラ攢鐢宠鍒楄〃
*/
@ApiOperation("鏌ヨ鎶ラ攢鐢宠鍒楄〃")
- //@PreAuthorize("@ss.hasPermi('project:reimbursement:list')")
+ //// @PreAuthorize("@ss.hasPermi('project:reimbursement:list')")
@Log(title = "鏌ヨ鎶ラ攢鐢宠鍒楄〃", businessType = BusinessType.OTHER)
@GetMapping("/list")
- public TableDataInfo list(ServiceReimbursement serviceReimbursement)
- {
+ public TableDataInfo list(ServiceReimbursement serviceReimbursement) {
SysUser user = SecurityUtils.getLoginUser().getUser();
serviceReimbursement.setCreateBy(user.getUserName());
+ serviceReimbursement.setUsername(user.getNickName());
startPage();
List<ServiceReimbursement> list = serviceReimbursementService.queryList(serviceReimbursement);
return getDataTable(list);
@@ -104,8 +117,7 @@
*/
@ApiOperation("鏍规嵁鏃ユ湡鏌ヨ鎶ラ攢鐢宠鍒楄〃")
@GetMapping("/listWithDate")
- public TableDataInfo listWithDate(ServiceReimbursementDto serviceReimbursementdto)
- {
+ public TableDataInfo listWithDate(ServiceReimbursementDto serviceReimbursementdto) {
startPage();
List<ServiceReimbursement> list = serviceReimbursementService.selectSearchList(serviceReimbursementdto);
return getDataTable(list);
@@ -117,56 +129,72 @@
@ApiOperation("鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃")
@Log(title = "鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃", businessType = BusinessType.OTHER)
@GetMapping("/listbypower")
- public TableDataInfo getListBypower(SpFinancialExpensesIn spFinancialExpensesIn)
- {
+ public TableDataInfo getListBypower(SpFinancialExpensesIn spFinancialExpensesIn) {
LoginUser loginUser = getLoginUser();
- String APPLICANT=spFinancialExpensesIn.getAPPLICANT();
- String APPLICATIONBEGTIME=spFinancialExpensesIn.getAPPLICATIONBEGTIME();
- String APPLICATIONENDTIME=spFinancialExpensesIn.getAPPLICATIONENDTIME();
- Integer CHECKFLAG=spFinancialExpensesIn.getCHECKFLAG();
- Integer APPLYTYPE=spFinancialExpensesIn.getAPPLYTYPE();
- Integer pageNum=spFinancialExpensesIn.getPageNum();
- Integer pageSize=spFinancialExpensesIn.getPageSize();
+ String APPLICANT = spFinancialExpensesIn.getAPPLICANT();
+ String APPLICATIONBEGTIME = spFinancialExpensesIn.getAPPLICATIONBEGTIME();
+ String APPLICATIONENDTIME = spFinancialExpensesIn.getAPPLICATIONENDTIME();
+ Integer CHECKFLAG = spFinancialExpensesIn.getCHECKFLAG();
+ Integer APPLYTYPE = spFinancialExpensesIn.getAPPLYTYPE();
+ Integer checkstatus = spFinancialExpensesIn.getCheckstatus();
+ Integer pageNum = spFinancialExpensesIn.getPageNum();
+ Integer pageSize = spFinancialExpensesIn.getPageSize();
+ String donorname = spFinancialExpensesIn.getDonorname();
- if(pageNum==null)
- {
- pageNum=1;
+ if (pageNum == null) {
+ pageNum = 1;
}
- if(pageSize==null)
- {
- pageSize=10;
+ if (pageSize == null) {
+ pageSize = 10;
}
- if(APPLICANT==null)
- {
- APPLICANT="";
+ if (APPLICANT == null) {
+ APPLICANT = "";
}
- if(APPLICATIONBEGTIME==null)
- {
- APPLICATIONBEGTIME="";
+ if (APPLICATIONBEGTIME == null) {
+ APPLICATIONBEGTIME = "";
}
- if(APPLICATIONENDTIME==null)
- {
- APPLICATIONENDTIME="";
+ if (APPLICATIONENDTIME == null) {
+ APPLICATIONENDTIME = "";
}
+
//startPage();
- List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(),1,APPLICANT,APPLICATIONBEGTIME,APPLICATIONENDTIME,loginUser.getDeptId().toString(),CHECKFLAG,APPLYTYPE);
- return getCustomDataTable(list,pageNum,pageSize);
+ List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE, checkstatus, donorname);
+ //鏍规嵁缁忓姙浜虹瓫閫�
+ if (StringUtils.isNotBlank(spFinancialExpensesIn.getUsername())) {
+ list = list.stream().filter(reimbursementOut -> reimbursementOut.getUsername().contains(spFinancialExpensesIn.getUsername())).collect(Collectors.toList()); // 鎸塶ame瀛楁杩囨护
+ }
+ //鏍规嵁閲戦绛涢��
+ if (spFinancialExpensesIn.getMoney() != null) {
+ list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getAmountrequested()).compareTo(new BigDecimal(spFinancialExpensesIn.getMoney())) == 0).collect(Collectors.toList());
+
+ }
+ //鏍规嵁涓氬姟缁勭瓫閫�
+ if (StringUtils.isNotBlank(spFinancialExpensesIn.getDeptnos())) {
+ list = list.stream().filter(reimbursementOut -> reimbursementOut.getDeptmentno().contains(spFinancialExpensesIn.getDeptnos())).collect(Collectors.toList()); // 鎸塶ame瀛楁杩囨护
+ }
+ //鏍规嵁鍒涘缓鏃堕棿鎺掑簭
+ Collections.sort(list, new Comparator<SpFinancialExpensesReimbursementOut>() {
+ @Override
+ public int compare(SpFinancialExpensesReimbursementOut o1, SpFinancialExpensesReimbursementOut o2) {
+ return o1.getApplyTime().compareTo(o2.getApplyTime());
+ }
+ });
+ return getCustomDataTable(list, pageNum, pageSize);
}
/**
* 瀵煎嚭鎶ラ攢鐢宠鍒楄〃
*/
@ApiOperation("瀵煎嚭鎶ラ攢鐢宠鍒楄〃")
- //@PreAuthorize("@ss.hasPermi('project:reimbursement:export')")
+ //// @PreAuthorize("@ss.hasPermi('project:reimbursement:export')")
@Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.EXPORT)
@GetMapping("/export")
- public AjaxResult export(ServiceReimbursement serviceReimbursement)
- {
+ public AjaxResult export(ServiceReimbursement serviceReimbursement) {
List<ServiceReimbursement> list = serviceReimbursementService.queryList(serviceReimbursement);
ExcelUtil<ServiceReimbursement> util = new ExcelUtil<ServiceReimbursement>(ServiceReimbursement.class);
return util.exportExcel(list, "鎶ラ攢鐢宠鏁版嵁");
@@ -176,20 +204,19 @@
* 鑾峰彇鎶ラ攢鐢宠璇︾粏淇℃伅
*/
@ApiOperation("鑾峰彇鎶ラ攢鐢宠璇︾粏淇℃伅")
- //@PreAuthorize("@ss.hasPermi('project:reimbursement:query')")
+ //// @PreAuthorize("@ss.hasPermi('project:reimbursement:query')")
@GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") Long id)
- {
+ public AjaxResult getInfo(@PathVariable("id") Long id) {
return AjaxResult.success(serviceReimbursementService.getById(id));
}
@GetMapping("/getMaxId")
- public AjaxResult getMaxId(){
+ public AjaxResult getMaxId() {
return AjaxResult.success(serviceReimbursementService.getMaxId());
}
@GetMapping("/getRBDetailList/{id}")
- public AjaxResult getRBDetailList(@PathVariable("id") Long id){
+ public AjaxResult getRBDetailList(@PathVariable("id") Long id) {
return AjaxResult.success(serviceReimbursementService.getRBDetailList(id));
}
@@ -197,17 +224,34 @@
* 鏂板鎶ラ攢鐢宠
*/
@ApiOperation("鏂板鎶ラ攢鐢宠")
- //@PreAuthorize("@ss.hasPermi('project:reimbursement:add')")
+ //// @PreAuthorize("@ss.hasPermi('project:reimbursement:add')")
@Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.INSERT)
- @PostMapping
+ @PostMapping("/add")
@RepeatSubmit
@Options(useGeneratedKeys = true, keyProperty = "id")
- public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement)
- {
- boolean b = serviceReimbursementService.save(serviceReimbursement);
- Long id = serviceReimbursement.getId();
- return AjaxResult.success(id);
+ public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) {
+ if (!Objects.isNull(serviceReimbursement)) {
+ serviceReimbursement.setCreateTime(new Date());
+ serviceReimbursement.setCheckstatus(serviceReimbursement.getCheckstatus() == null ? 1 : serviceReimbursement.getCheckstatus());
+ serviceReimbursement.setUploadStates(0);
+ boolean b = serviceReimbursementService.save(serviceReimbursement);
+ Long id = serviceReimbursement.getId();
+ return AjaxResult.success(id);
+ }
+ return error();
}
+
+// /**
+// * 宸梾璐逛笂鎶�
+// */
+// @ApiOperation("宸梾璐逛笂鎶�")
+// @Log(title = "宸梾璐逛笂鎶�", businessType = BusinessType.OTHER)
+// @PostMapping("/test")
+// public AjaxResult test(@RequestBody CheckFundVO checkFundVO) {
+// mergeFilesToPDFUtils.generatePdf(checkFundVO.getFileNames(), checkFundVO.getOutputFile());
+// return AjaxResult.success(200);
+// }
+
/**
* 宸梾璐逛笂鎶�
@@ -215,28 +259,67 @@
@ApiOperation("宸梾璐逛笂鎶�")
@Log(title = "宸梾璐逛笂鎶�", businessType = BusinessType.OTHER)
@PostMapping("/travelexpensereport")
- public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO)
- {
- ServiceReimbursement serviceReimbursement= serviceReimbursementService.getById(checkFundVO.getFundid());
- if(serviceReimbursement!=null)
- {
- Integer TotalLevel=0;
- LoginUser loginUser = getLoginUser();
- SysUser user = loginUser.getUser();
- List<Integer> postids =postService.selectPostListByUserId(loginUser.getUserId());
+ public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) {
+ ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
+ serviceReimbursement.setApplyTime(new Date());
+ Long flowLavel = null;
- if(!postids.contains(2))
- {
- serviceReimbursement.setFlowlevel(1);
+ LoginUser loginUser = getLoginUser();
+ SysUser user = loginUser.getUser();
+
+ //鏌ヨ蹇呭浜�
+ ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
+ serviceFundflowrule.setApplytype("0");
+ serviceFundflowrule.setMustAudite(1);
+ serviceFundflowrule.setDel_flag(0);
+ List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
+ log.info("reimbursement蹇呭浜虹殑绛夌骇涓猴細{}", serviceFundflowrules.get(0).getFlowlevel());
+
+ //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�;
+ if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) {
+ if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
+ //灏嗛��鍥為樁娈佃缃垚100
+ serviceReimbursement.setBackflowlevel(100L);
+ //閫�鍥炲啀鎻愪氦锛岄渶瑕佸啀鍒板嚭绾抽偅閲�
+ serviceReimbursement.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
serviceReimbursement.setRecordstatus(2);
+ serviceReimbursementService.updateById(serviceReimbursement);
+
+ //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉�
+// serviceReimbursementService.addSharedData(checkFundVO.getFundid());
+
+ return success();
+ } else if (serviceReimbursement.getBackflowlevel() >= Long.valueOf(serviceFundflowrules.get(0).getFlowlevel())) {
+ //蹇呭浜洪瀵奸��鍥炵殑锛屼篃闇�瑕佽蛋蹇呭浜洪偅閲�
+ serviceReimbursement.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
+ serviceReimbursement.setRecordstatus(2);
+ serviceReimbursementService.updateById(serviceReimbursement);
+ return success();
}
- else
- {
- serviceReimbursement.setFlowlevel(0);
+ }
+ if (serviceReimbursement != null) {
+ Integer TotalLevel = 0;
+ List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId());
+
+ if (!postids.contains(2)) {
+ serviceReimbursement.setRecordstatus(2);
+ if (serviceReimbursement.getBackflowlevel() != null) {
+ serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel());
+ } else {
+ serviceReimbursement.setBackflowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
+ serviceReimbursement.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
+ }
+ } else {
serviceReimbursement.setRecordstatus(0);
+ if (serviceReimbursement.getBackflowlevel() != null) {
+ serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel());
+ } else {
+ serviceReimbursement.setFlowlevel(0L);
+ serviceReimbursement.setBackflowlevel(0L);
+ }
}
- if(!postids.contains(2)) {
+ if (!postids.contains(2) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) {
ServiceFundflow serviceFundflow = new ServiceFundflow();
serviceFundflow.setFundid(serviceReimbursement.getId());
serviceFundflow.setCheckuserno(user.getUserName());
@@ -245,17 +328,42 @@
serviceFundflow.setApplytype("0");
serviceFundflow.setFlowconclusion(1);
serviceFundflow.setFlowcontent("闈炰笓鑱屼汉鍛樼洿鎺ヨ繘鍏ヤ簩绾у鏍�");
- serviceFundflow.setFlowlevel(1);
+
+ serviceFundflow.setFlowlevel(serviceFundflowrules.get(0).getFlowlevel() - 1);
serviceFundflowService.save(serviceFundflow);
+
+
+ SysUser sysUser = null;
+ if (serviceReimbursement.getFlowlevel() == 0L) {
+ //缁勯暱淇℃伅
+ SysUser su = new SysUser();
+ su.setNickName(serviceReimbursement.getManagername());
+ List<SysUser> sysUserList = sysUserService.selectUserList(su);
+ if (sysUserList.size() > 0) {
+ sysUser = sysUserList.get(0);
+ }
+ } else if (serviceReimbursement.getFlowlevel() == 1L) {
+ //闄堟厱鍗庝俊鎭�
+ sysUser = sysUserService.selectUserByUserName("047");
+ }
+ ConcurrentHashMap map = new ConcurrentHashMap();
+ ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>();
+ map.put("鎻愪氦浜猴細", loginUser.getUser().getUserName());
+ map.put("鎻愪氦鏃堕棿锛�", new Date());
+ map.put("鍐呭锛�", serviceReimbursement.getReason());
+ contentList.add(map);
+ DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
+ dingTalkReqVo.setTitle("宸梾瀹℃壒淇℃伅");
+ dingTalkReqVo.setNumber(sysUser != null ? sysUser.getPhonenumber() : "");
+ dingTalkReqVo.setContents(contentList);
+ dingTalkService.sendNotification(dingTalkReqVo);
}
serviceReimbursementService.updateById(serviceReimbursement);
return AjaxResult.success();
- }
- else
- {
- return AjaxResult.error(HttpStatus.NO_CONTENT,"璐圭敤缂栧彿涓嶆纭�");
+ } else {
+ return AjaxResult.error(HttpStatus.NO_CONTENT, "璐圭敤缂栧彿涓嶆纭�");
}
}
@@ -266,137 +374,14 @@
@ApiOperation("瀹℃牳璐圭敤")
@Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER)
@PostMapping("/checkfund")
- public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO)
- {
- ServiceReimbursement serviceReimbursement= serviceReimbursementService.getById(checkFundVO.getFundid());
- if(serviceReimbursement!=null)
- {
- Integer TotalLevel=0;
- LoginUser loginUser = getLoginUser();
- ServiceFundflowrule serviceFundflowrule=new ServiceFundflowrule();
- serviceFundflowrule.setFundtype(1);
- serviceFundflowrule.setApplytype("0");
- serviceFundflowrule.setCheckuserno(loginUser.getUsername());
- List<ServiceFundflowrule> serviceFundflowrules= serviceFundflowruleService.queryList(serviceFundflowrule);
-
- if(serviceFundflowrules==null || serviceFundflowrules.stream().count()==0)
- {
- return AjaxResult.error(HttpStatus.ERROR,"褰撳墠浜哄憳鏃犳璁板綍瀹℃牳鏉冮檺");
- }
-
- if(serviceFundflowrules.get(0).getFlowlevel()-1!=serviceReimbursement.getFlowlevel())
- {
- return AjaxResult.error(HttpStatus.ERROR,"褰撳墠浜哄憳涓庢璁板綍鐨勫鏍哥骇鍒笉绗�");
- }
-
- if(serviceFundflowrules!=null && serviceFundflowrules.stream().count()>0)
- {
- TotalLevel=serviceFundflowrules.get(0).getTotallevel();
- }
- Integer CheckFlag=0;
- Integer RecordStatus=serviceReimbursement.getRecordstatus();
- Integer FlowLevel=serviceReimbursement.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;
- }
- }
-
- serviceReimbursement.setRecordstatus(RecordStatus);
- serviceReimbursement.setFlowlevel(FlowLevel);
-
- ServiceFundflow serviceFundflow=new ServiceFundflow();
- SysUser user = loginUser.getUser();
- serviceFundflow.setFundid(serviceReimbursement.getId());
- serviceFundflow.setCheckuserno(user.getUserName());
- serviceFundflow.setCheckusername(user.getNickName());
- serviceFundflow.setFundtype(1);
- serviceFundflow.setApplytype("0");
- serviceFundflow.setFlowconclusion(CheckFlag);
- serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent());
- serviceFundflow.setFlowlevel(OriginalFlowLevel+1);
- serviceFundflowService.save(serviceFundflow);
-
- List<Integer> postids =postService.selectPostListByUserId(loginUser.getUserId());
-
- if(!postids.contains(2))
- {
- if(CheckFlag==2 && OriginalFlowLevel==1)
- {
- ServiceFundflow serviceFundflowAuto=new ServiceFundflow();
- serviceFundflowAuto.setFundid(serviceReimbursement.getId());
- serviceFundflowAuto.setCheckuserno(user.getUserName());
- serviceFundflowAuto.setCheckusername(user.getNickName());
- serviceFundflowAuto.setFundtype(1);
- serviceFundflowAuto.setApplytype("0");
- serviceFundflowAuto.setFlowconclusion(CheckFlag);
- serviceFundflowAuto.setFlowcontent("闈炰笓鑱屼汉鍛樹簩绾у鏍告嫆缁濆悗鐩存帴閫�鍥炲埌淇敼鐘舵��");
- serviceFundflowAuto.setFlowlevel(1);
- serviceFundflowService.save(serviceFundflowAuto);
-
- serviceReimbursement.setRecordstatus(1);
- }
- }
-
- serviceReimbursementService.updateById(serviceReimbursement);
-
- ServiceSystemmessage serviceSystemmessage=new ServiceSystemmessage();
- serviceSystemmessage.setFundtype(1);
- serviceSystemmessage.setApplytype("0");
- serviceSystemmessage.setSenduserno(user.getUserName());
- serviceSystemmessage.setSendusername(user.getNickName());
- serviceSystemmessage.setReceiveuserno(serviceReimbursement.getUserno());
- serviceSystemmessage.setReceiveusername(serviceReimbursement.getUsername());
- serviceSystemmessage.setIsread(0);
- serviceSystemmessage.setMessagetype(1);
- serviceSystemmessage.setRelevantno(serviceReimbursement.getId());
- if(CheckFlag==1)
- {
- //閫氳繃
- serviceSystemmessage.setMessagetitle(""+(OriginalFlowLevel+1)+"绾у鏍搁�氳繃");
- serviceSystemmessage.setMessagecontent("鎮�"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime())+"鎻愪氦鐨勫叧浜庢崘鐚渚嬨��"+serviceReimbursement.getDonorname()+"銆戠殑宸梾璐圭敵璇峰凡閫氳繃"+(OriginalFlowLevel+1)+"绾у鏍�");
-
- }
- else
- {
- //椹冲洖
- serviceSystemmessage.setMessagetitle(""+(OriginalFlowLevel+1)+"绾у鏍搁┏鍥�");
- serviceSystemmessage.setMessagecontent("鎮�"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime())+"鎻愪氦鐨勫叧浜庢崘鐚渚嬨��"+serviceReimbursement.getDonorname()+"銆戠殑宸梾璐圭敵璇峰凡琚�"+(OriginalFlowLevel+1)+"绾у鏍搁┏鍥烇紝鍘熷洜涓�"+checkFundVO.getFlowcontent()+"");
- }
- ServiceSystemmessage.save(serviceSystemmessage);
-
- return AjaxResult.success();
+ public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
+ log.info("瀹℃牳璐圭敤鐨勫叆鍙� : {}", checkFundVO);
+ Map<String, String> map = serviceReimbursementService.checkFund(getLoginUser(), checkFundVO);
+ Set<String> keys = map.keySet();
+ for (String s : keys) {
+ if (!s.equals("200")) return AjaxResult.error(map.get(s));
}
- else
- {
- return AjaxResult.error(HttpStatus.NO_CONTENT,"璐圭敤缂栧彿涓嶆纭�");
- }
+ return AjaxResult.success();
}
@@ -404,24 +389,41 @@
* 淇敼鎶ラ攢鐢宠
*/
@ApiOperation("淇敼鎶ラ攢鐢宠")
- //@PreAuthorize("@ss.hasPermi('project:reimbursement:edit')")
+ //// @PreAuthorize("@ss.hasPermi('project:reimbursement:edit')")
@Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.UPDATE)
- @PutMapping
- @RepeatSubmit
- public AjaxResult edit(@RequestBody ServiceReimbursement serviceReimbursement)
- {
- return toAjax(serviceReimbursementService.updateById(serviceReimbursement));
+ @PostMapping("/reimbursementEdit")
+ @RepeatSubmit
+ public AjaxResult edit(@RequestBody ServiceReimbursement serviceReimbursement) {
+ boolean b = serviceReimbursementService.updateById(serviceReimbursement);
+// if (b) {
+// addReiSharedDatd(serviceReimbursement, 2);
+// }
+ return toAjax(b);
+ }
+
+ /**
+ * 淇敼鎶ラ攢鐢宠
+ */
+ @ApiOperation("淇敼鎶ラ攢鐢宠")
+ //// @PreAuthorize("@ss.hasPermi('project:reimbursement:edit')")
+ @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER)
+ @PostMapping("/editMoney")
+ public AjaxResult editMoney(@RequestBody List<ReimbursementService> serviceReimbursement) {
+ boolean b = serviceReimbursementService.updateById(null);
+// if (b) {
+// addReiSharedDatd(null, 2);
+// }
+ return toAjax(b);
}
/**
* 鍒犻櫎鎶ラ攢鐢宠
*/
@ApiOperation("鍒犻櫎鎶ラ攢鐢宠")
- //@PreAuthorize("@ss.hasPermi('project:reimbursement:remove')")
- @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable Long[] ids)
- {
+ //// @PreAuthorize("@ss.hasPermi('project:reimbursement:remove')")
+ @Log(title = "鎶ラ攢鐢宠")
+ @GetMapping("/remove/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(serviceReimbursementService.removeByIds(Arrays.asList(ids)));
}
@@ -432,13 +434,14 @@
@GetMapping(value = "/download/{id}")
public Map downloadInfo(@PathVariable("id") Long id) throws IOException {
Map dataMap = new HashMap();
- getData(dataMap,id);
+ getData(dataMap, id);
String filePath = getClass().getResource("/template/").getPath();
+ log.info("涓嬭浇鍦板潃鏄暐锛燂紵锛焮}", filePath);
System.out.println(filePath);
//璁剧疆妯℃湰瑁呯疆鏂规硶鍜岃矾寰�,FreeMarker鏀寔澶氱妯℃澘瑁呰浇鏂规硶銆傚彲浠ラ噸servlet锛宑lasspath锛屾暟鎹簱鏁欑▼瑁呰浇锛�
configuration.setDirectoryForTemplateLoading(new File(filePath));
- Template t=null;
+ Template t = null;
try {
//鎹愮尞琛�.ftl涓鸿瑁呰浇鐨勬ā鏉�
t = configuration.getTemplate("宸梾璐规姤閿�鐢宠鍗�.ftl");
@@ -446,14 +449,28 @@
e.printStackTrace();
}
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
- String name = "宸梾璐规姤閿�鐢宠鍗昣"+dataMap.get("XM")+"_"+ newTime;
+ String name = "宸梾璐规姤閿�鐢宠鍗昣" + dataMap.get("JSR") + "_" + newTime;
//杈撳嚭鏂囨。璺緞鍙婂悕绉�
- File outFile = new File(RuoYiConfig.getProfile()+"/download/wordtemplate/"+name+".doc");
+ File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc");
+
+ //鍒涘缓鏂囦欢澶�
+ File folderPath = new File(RuoYiConfig.getProfile() + "/download/wordtemplate");
+ if (!folderPath.exists()) {
+ boolean success = folderPath.mkdirs();
+ if (success) {
+ System.out.println("鐩綍鍒涘缓鎴愬姛");
+ } else {
+ System.out.println("鐩綍鍒涘缓澶辫触");
+ }
+ } else {
+ System.out.println("鐩綍宸插瓨鍦�");
+ }
+
Writer out = null;
try {
- out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"utf-8"));
+ out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
@@ -463,76 +480,216 @@
} catch (TemplateException e) {
e.printStackTrace();
}
- Map<String ,Object> map = new HashMap<>();
- map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
+ Map<String, Object> map = new HashMap<>();
+ map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc");
+ map.put("downloadName", name + ".doc");
return map;
}
- private void getData(Map dataMap,Long id) {
- ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(id);
- if (serviceReimbursement == null) {
- throw new ServiceException("涓嬭浇澶辫触锛岀敤鎴蜂俊鎭嚭閿�", HttpStatus.NO_CONTENT);
+ private void getData(Map dataMap, Long id) {
+
+ //ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(id);
+ ServiceReimbursement serviceReimbursement = null;
+ ServiceReimbursementEo serviceReimbursementEo = new ServiceReimbursementEo();
+ serviceReimbursementEo.setId(id);
+ List<ServiceReimbursementEo> rdInfoByItem = serviceReimbursementService.getRDInfoByItem(serviceReimbursementEo);
+ log.info("rdInfoByItem鏄惁涓虹┖ :{}", CollectionUtils.isEmpty(rdInfoByItem) ? null : rdInfoByItem.size());
+ for (int i = 0; i < rdInfoByItem.size(); i++) {
+ ServiceReimbursementEo serviceReimbursementEo1 = rdInfoByItem.get(i);
+ String codeByInfo = PersonType.getCodeByInfo(serviceReimbursementEo1.getPersontype());
+ serviceReimbursementEo1.setPersontype(codeByInfo);
+ }
+ //鑾峰彇鎶ラ攢鏀粯淇℃伅
+ List<ServiceReimbursementpayee> reimbursementpayeeInfo = reimbursementpayeeService.getReimbursementpayeeInfo(serviceReimbursementEo);
+ log.info("reimbursementpayeeInfo鏄惁涓虹┖ :{}", CollectionUtils.isEmpty(reimbursementpayeeInfo) ? null : reimbursementpayeeInfo.size());
+ Map<String, List<ServiceReimbursementEo>> listMap = rdInfoByItem.stream().collect(Collectors.groupingBy(ServiceReimbursementEo::getPersontype));
+ List<Map<String, BigDecimal>> list = new ArrayList<>();
+ StringBuffer FYXM1 = new StringBuffer();
+ StringBuffer FYXM2 = new StringBuffer();
+ StringBuffer FYXM3 = new StringBuffer();
+ int flag = 0;
+ String key1 = null;
+ BigDecimal allMoney = new BigDecimal(0.00);
+ BigDecimal otherMoneyall = new BigDecimal(0.00);
+ for (String key : listMap.keySet()) {
+ Map<String, BigDecimal> map = new HashMap<>();
+ List<ServiceReimbursementEo> values = listMap.get(key);
+ BigDecimal otherMoney = new BigDecimal(0.00);
+ BigDecimal keyOneMoney = new BigDecimal(0.00);
+ BigDecimal keyTwoMoney = new BigDecimal(0.00);
+ for (ServiceReimbursementEo serviceReimbursementEo1 : values) {
+ otherMoney = otherMoney.add(serviceReimbursementEo1.getTrafficexpense()).add(serviceReimbursementEo1.getHotelexpense()).add(serviceReimbursementEo1.getCityfee()).add(serviceReimbursementEo1.getFoodexpenses()).add(serviceReimbursementEo1.getFoodallowance()).add(serviceReimbursementEo1.getOtherexpense()).add(serviceReimbursementEo1.getOtherfeeamount());
+ }
+ map.put(key, otherMoney);
+ list.add(map);
+ // 涓嶄负涓撳鎴栧灞烇紝key鏈夊彲鑳芥槸鏁板瓧锛屾湁鍙兘鏄眽瀛�
+ Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
+ boolean matches = pattern.matcher(key).matches();
+ if (matches) {
+ if (!key.equals("3") && !key.equals("4")) {
+ //灏嗕笂涓�娆$殑娓呯┖
+ FYXM1.delete(0, FYXM1.length());
+ //鍐嶆柊澧�
+ otherMoneyall = otherMoneyall.add(otherMoney);
+ FYXM1.append("OP0 宸ヤ綔浜哄憳鎶ラ攢宸梾璐�" + ":" + otherMoneyall + " ");
+ } else {
+ if (flag == 0) {
+ key1 = key;
+ flag = 1;
+ }
+ if (key1 == key) {
+ if (key.equals("3")) {
+// FYXM2.append(PersonType.getInfoByCode(key) + ":" + otherMoney);
+ FYXM2.append("涓撳鎶ラ攢宸梾璐� :" + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ } else {
+ FYXM2.append("瀹跺睘鎶ラ攢宸梾璐瑰強璇伐璐圭敤 : " + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ }
+ } else {
+ if (key.equals("3")) {
+// FYXM2.append(PersonType.getInfoByCode(key) + ":" + otherMoney);
+ FYXM3.append("涓撳鎶ラ攢宸梾璐� :" + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ } else {
+ FYXM3.append("瀹跺睘鎶ラ攢宸梾璐瑰強璇伐璐圭敤 : " + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ }
+ }
+ }
+ } else {
+ if (!key.equals("涓撳") && !key.equals("瀹跺睘")) {
+ //灏嗕笂涓�娆$殑娓呯┖
+ FYXM1.delete(0, FYXM1.length());
+ //鍐嶆柊澧�
+ otherMoneyall = otherMoneyall.add(otherMoney);
+ FYXM1.append("OP0 宸ヤ綔浜哄憳鎶ラ攢宸梾璐�" + ":" + otherMoneyall + " ");
+ } else {
+ if (flag == 0) {
+ key1 = key;
+ flag = 1;
+ }
+ if (key1 == key) {
+ if (key.equals("涓撳")) {
+// FYXM2.append(PersonType.getInfoByCode(key) + ":" + otherMoney);
+ FYXM2.append("涓撳鎶ラ攢宸梾璐� :" + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ } else {
+ FYXM2.append("瀹跺睘鎶ラ攢宸梾璐瑰強璇伐璐圭敤 : " + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ }
+ } else {
+ if (key.equals("涓撳")) {
+// FYXM2.append(PersonType.getInfoByCode(key) + ":" + otherMoney);
+ FYXM3.append("涓撳鎶ラ攢宸梾璐� :" + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ } else {
+ FYXM3.append("瀹跺睘鎶ラ攢宸梾璐瑰強璇伐璐圭敤 : " + otherMoney);
+ allMoney = allMoney.add(otherMoney);
+ }
+ }
+ }
+ }
+ }
+ allMoney = allMoney.add(otherMoneyall);
+ if (FYXM1.length() == 0) {
+ if (FYXM2.length() != 0 && FYXM3.length() != 0) {
+ FYXM1.append(FYXM3);
+ FYXM3.setLength(0);
+ } else if (FYXM2.length() != 0 && FYXM3.length() == 0) {
+ FYXM1.append(FYXM2);
+ FYXM2.setLength(0);
+ }
+ } else if (FYXM2.length() == 0) {
+ if (FYXM3.length() != 0) {
+ FYXM2.append(FYXM3);
+ FYXM3.setLength(0);
+ }
}
- Date dt = serviceReimbursement.getCreateTime();
+ if (rdInfoByItem == null || rdInfoByItem.size() == 0) {
+ throw new ServiceException("涓嬭浇澶辫触锛岀敤鎴蜂俊鎭嚭閿�", HttpStatus.NO_CONTENT);
+ }
+
+ Date dt = rdInfoByItem.get(0).getApplyTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = formatter.format(dt);
String time = date.substring(0, 10);
+ dataMap.put("ZB", rdInfoByItem.get(0).getDeptmentname() == null ? "" : rdInfoByItem.get(0).getDeptmentname());
+ dataMap.put("XZBH", rdInfoByItem.get(0).getBh() == null ? "" : rdInfoByItem.get(0).getBh());
dataMap.put("TBYYMMDD", time);
- dataMap.put("BXDFJ", serviceReimbursement.getAttachcount() == 0 ? " " : "" + serviceReimbursement.getAttachcount());
- dataMap.put("JXZXM", serviceReimbursement.getDonorname() == null ? "" : serviceReimbursement.getDonorname());
- dataMap.put("JSR", serviceReimbursement.getUsername() == null ? "" : serviceReimbursement.getUsername());
- dataMap.put("FYXM1", "宸梾璐规姤閿�鎬婚噾棰濓細 " + String.format("%.2f", serviceReimbursement.getAmountrequested()).toString() + "鍏�");
- dataMap.put("FYXM2", "");
- dataMap.put("FYXM3", "");
- dataMap.put("JEXS", serviceReimbursement.getAmountrequested());
- //double temp = 0;
- //temp = Math.round(serviceReimbursement.getAmountrequested() * 100) * 0.01d;
- dataMap.put("JEDS", convert(serviceReimbursement.getAmountrequested()) + "鏁�");
+ dataMap.put("BXDFJ", rdInfoByItem.get(0).getAttachcount() == null ? " " : "" + rdInfoByItem.get(0).getAttachcount());
+ dataMap.put("JXZXM", rdInfoByItem.get(0).getDonorname() == null ? "" : rdInfoByItem.get(0).getDonorname());
+ dataMap.put("JSR", rdInfoByItem.get(0).getUsername() == null ? "" : rdInfoByItem.get(0).getUsername());
+ if (FYXM1.length() != 0) {
+ dataMap.put("FYXM1", FYXM1.toString() + "鍏� ");
+ } else {
+ dataMap.put("FYXM1", "");
+ }
+ if (FYXM2.length() != 0) {
+ dataMap.put("FYXM2", FYXM2.toString() + "鍏� ");
+ } else {
+ dataMap.put("FYXM2", "");
+ }
+ if (FYXM3.length() != 0) {
+ dataMap.put("FYXM3", FYXM3.toString() + "鍏� ");
+ } else {
+ dataMap.put("FYXM3", "");
+ }
+ dataMap.put("JEXS", allMoney);
+ dataMap.put("JEDS", convert(allMoney.doubleValue()) + "鏁�");
String remark = "";
- remark += serviceReimbursement.getCosttypename() == null ? "" : serviceReimbursement.getCosttypename() + "(";
-
- remark += serviceReimbursement.getTravelers() == null ? "" : serviceReimbursement.getTravelers() + ": ";
-
- remark += serviceReimbursement.getIdcardno() == null ? "" : serviceReimbursement.getIdcardno() + "; ";
-
- remark += serviceReimbursement.getDepositbank() == null ? "" : serviceReimbursement.getDepositbank() + ": ";
-
- remark += serviceReimbursement.getBankcardno() == null ? "" : serviceReimbursement.getBankcardno() + ")";
- remark += "\n";
- remark += serviceReimbursement.getRemark() == null ? "" : serviceReimbursement.getRemark();
+ for (ServiceReimbursementpayee serviceReimbursementpayee : reimbursementpayeeInfo) {
+ remark += "<w:br/> " + serviceReimbursementpayee.getPersonname() + " " + serviceReimbursementpayee.getAmount();
+ remark += " 鍏�; ";
+ if (!StringUtils.isEmpty(serviceReimbursementpayee.getBankname())) {
+ remark += serviceReimbursementpayee.getBankname() + " ( " + serviceReimbursementpayee.getBankcardno() + ")";
+ }
+ remark += " 澶囨敞: " + serviceReimbursementpayee.getPersontype();
+ if (!StringUtils.isEmpty(serviceReimbursementpayee.getRemark())) {
+ remark += serviceReimbursementpayee.getRemark();
+ }
+ }
dataMap.put("BXBZ", remark);
+
+ dataMap.put("ZXFZR", StringUtils.isEmpty(rdInfoByItem.get(0).getOpochecker()) ? "" : rdInfoByItem.get(0).getOpochecker());
+//
+ dataMap.put("CWFYZ", StringUtils.isEmpty(rdInfoByItem.get(0).getFinvicepresident()) ? "" : rdInfoByItem.get(0).getFinvicepresident());
+ dataMap.put("YWFYZ", StringUtils.isEmpty(rdInfoByItem.get(0).getBusvicepresident()) ? "" : rdInfoByItem.get(0).getBusvicepresident());
+ dataMap.put("BGSZR", StringUtils.isEmpty(rdInfoByItem.get(0).getOfficedirector()) ? "" : rdInfoByItem.get(0).getOfficedirector());
+ dataMap.put("CWBZR", StringUtils.isEmpty(rdInfoByItem.get(0).getFinancedirector()) ? "" : rdInfoByItem.get(0).getFinancedirector());
+ dataMap.put("CWSH", StringUtils.isEmpty(rdInfoByItem.get(0).getFinancechecher()) ? "" : rdInfoByItem.get(0).getFinancechecher());
dataMap.put("YYMMDD", time);
- dataMap.put("FJ", serviceReimbursement.getAttachcount() == 0 ? " " : "" + serviceReimbursement.getAttachcount());
- dataMap.put("FP", serviceReimbursement.getInvoicecount() == 0 ? " " : "" + serviceReimbursement.getInvoicecount());
- dataMap.put("XM", serviceReimbursement.getTravelers() == null ? "" : serviceReimbursement.getTravelers());
- dataMap.put("BXR", serviceReimbursement.getUsername() == null ? "" : serviceReimbursement.getUsername());
- dataMap.put("QYZZ", serviceReimbursement.getManagername() == null ? "" : serviceReimbursement.getManagername());
- dataMap.put("CCSY", serviceReimbursement.getReason() == null ? "" : serviceReimbursement.getReason());
+ dataMap.put("FJ", rdInfoByItem.get(0).getAttachcount() == null ? " " : "" + rdInfoByItem.get(0).getAttachcount());
+ dataMap.put("FP", rdInfoByItem.get(0).getInvoicecount() == null ? " " : "" + rdInfoByItem.get(0).getInvoicecount());
+ dataMap.put("XM", rdInfoByItem.get(0).getTravelers() == null ? "" : rdInfoByItem.get(0).getTravelers());
+ dataMap.put("BXR", rdInfoByItem.get(0).getUsername() == null ? "" : rdInfoByItem.get(0).getUsername());
+ dataMap.put("QYZZ", rdInfoByItem.get(0).getManagername() == null ? "" : rdInfoByItem.get(0).getManagername());
+ dataMap.put("CCSY", rdInfoByItem.get(0).getReason() == null ? "" : rdInfoByItem.get(0).getReason());
List<ServiceReimbursementdetail> rd = serviceReimbursementdetailService.getAllDetailsByRBID(id);
if (rd == null) {
throw new ServiceException("涓嬭浇澶辫触锛屾病鏈夊搴斾俊鎭�", HttpStatus.NO_CONTENT);
}
- List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
+ List<Map<String, Object>> newsList = new ArrayList<Map<String, Object>>();
int days = 0;
- double te = 0;
- double cf = 0;
- double he = 0;
- double oe = 0;
- double fe = 0;
- double fa = 0;
- double hj = 0;
- double qt = 0;
- for(ServiceReimbursementdetail s : rd) {
- Map<String, Object> map=new HashMap<String, Object>();
+ BigDecimal te = BigDecimal.ZERO;
+ BigDecimal cf = BigDecimal.ZERO;
+ BigDecimal he = BigDecimal.ZERO;
+ BigDecimal oe = BigDecimal.ZERO;
+ BigDecimal fe = BigDecimal.ZERO;
+ BigDecimal fa = BigDecimal.ZERO;
+ BigDecimal hj = BigDecimal.ZERO;
+ BigDecimal qt = BigDecimal.ZERO;
+ for (ServiceReimbursementdetail s : rd) {
+ Map<String, Object> map = new HashMap<String, Object>();
Date st = s.getStarttime();
SimpleDateFormat formatter_st = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -547,11 +704,16 @@
map.put("DA", s.getDeparture() == null ? "" : s.getDeparture());
Date et = s.getEndtime();
- SimpleDateFormat formatter_et = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String date_et = formatter_et.format(et);
- String year_et = date_et.substring(0, 4);
- String month_et = date_et.substring(5, 7);
- String day_et = date_et.substring(8, 10);
+ String year_et = null;
+ String month_et = null;
+ String day_et = null;
+ if (et != null) {
+ SimpleDateFormat formatter_et = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String date_et = formatter_et.format(et);
+ year_et = date_et.substring(0, 4);
+ month_et = date_et.substring(5, 7);
+ day_et = date_et.substring(8, 10);
+ }
map.put("AY", year_et == null ? "" : year_et);
map.put("AM", month_et == null ? "" : month_et);
@@ -562,35 +724,35 @@
days += s.getDays();
map.put("JT", s.getTraffictype() == null ? "" : s.getTraffictype());
map.put("QTFSM", s.getOtherfeedesc() == null ? "" : s.getOtherfeedesc());
- map.put("JTF", s.getTrafficexpense() == 0.00 ? "" : String.format("%.2f", s.getTrafficexpense()).toString() + "");
- te += s.getTrafficexpense();
- map.put("SNJT", s.getCityfee() == 0.00 ? "" : String.format("%.2f", s.getCityfee()).toString() + "");
- cf += s.getCityfee();
- map.put("ZSF", s.getHotelexpense() == 0.00 ? "" : String.format("%.2f", s.getHotelexpense()).toString() + "");
- he += s.getHotelexpense();
- map.put("ZF", s.getOtherexpense() == 0.00 ? "" : String.format("%.2f", s.getOtherexpense()).toString() + "");
- oe += s.getOtherexpense();
- map.put("HSBX", s.getFoodexpenses() == 0.00 ? "" : String.format("%.2f",s.getFoodexpenses()).toString() + "");
- fe += s.getFoodexpenses();
- map.put("HSBZ", s.getFoodallowance() == 0.00 ? "" : String.format("%.2f",s.getFoodallowance()).toString() + "");
- fa += s.getFoodallowance();
- map.put("QTF", s.getOtherfeeamount() == 0.00 ? "" : String.format("%.2f",s.getOtherfeeamount()).toString() + "");
- qt += s.getOtherfeeamount();
- map.put("HJ", String.format("%.2f", s.getTrafficexpense() + s.getCityfee() + s.getHotelexpense() + s.getOtherexpense() + s.getFoodexpenses() + s.getFoodallowance() + s.getOtherfeeamount()).toString() + "");
- hj += s.getTrafficexpense() + s.getCityfee() + s.getHotelexpense() + s.getOtherexpense() + s.getFoodexpenses() + s.getFoodallowance() + s.getOtherfeeamount();
+ map.put("JTF", s.getTrafficexpense().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getTrafficexpense()).toString() + "");
+ te = te.add(s.getTrafficexpense());
+ map.put("SNJT", s.getCityfee().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getCityfee()).toString() + "");
+ cf = cf.add(s.getCityfee());
+ map.put("ZSF", s.getHotelexpense().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getHotelexpense()).toString() + "");
+ he = he.add(s.getHotelexpense());
+ map.put("ZF", s.getOtherexpense().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getOtherexpense()).toString() + "");
+ oe = oe.add(s.getOtherexpense());
+ map.put("HSBX", s.getFoodexpenses().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getFoodexpenses()).toString() + "");
+ fe = fe.add(s.getFoodexpenses());
+ map.put("HSBZ", s.getFoodallowance().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getFoodallowance()).toString() + "");
+ fa = fa.add(s.getFoodallowance());
+ map.put("QTF", s.getOtherfeeamount().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getOtherfeeamount()).toString() + "");
+ qt = qt.add(s.getOtherfeeamount());
+ map.put("HJ", String.format("%.2f", s.getTrafficexpense().add(s.getCityfee()).add(s.getHotelexpense()).add(s.getOtherexpense()).add(s.getFoodexpenses()).add(s.getFoodallowance()).add(s.getOtherfeeamount())).toString() + "");
+ hj = hj.add(s.getTrafficexpense().add(s.getCityfee()).add(s.getHotelexpense()).add(s.getOtherexpense()).add(s.getFoodexpenses()).add(s.getFoodallowance()).add(s.getOtherfeeamount()));
//hj = Math.round(hj * 100) * 0.01d;
- DecimalFormat df = new DecimalFormat("0.00");
+// DecimalFormat df = new DecimalFormat("0.00");
- hj = new Double(df.format(hj).toString());
+ // hj = new Double(df.format(hj).toString());
newsList.add(map);
}
- dataMap.put("list",newsList);
+ dataMap.put("list", newsList);
dataMap.put("TND", "" + days);
dataMap.put("TJT", "");
- dataMap.put("TJTF", "" + String.format("%.2f",te).toString() + "");
- dataMap.put("TSNJT", "" + String.format("%.2f",cf).toString() + "");
+ dataMap.put("TJTF", "" + String.format("%.2f", te).toString() + "");
+ dataMap.put("TSNJT", "" + String.format("%.2f", cf).toString() + "");
dataMap.put("TZSF", "" + String.format("%.2f", he).toString() + "");
dataMap.put("TZF", "" + String.format("%.2f", oe).toString() + "");
dataMap.put("THSBX", "" + String.format("%.2f", fe).toString() + "");
@@ -598,17 +760,17 @@
dataMap.put("TQTF", "" + String.format("%.2f", qt).toString() + "");
dataMap.put("THJ", "" + String.format("%.2f", hj).toString() + "");
- dataMap.put("DS", convert(hj) + "鏁�");
+ dataMap.put("DS", convert(hj.doubleValue()) + "鏁�");
//dataMap.put("DS", "鏁�");
dataMap.put("XS", String.format("%.2f", hj).toString() + "");
- dataMap.put("R", serviceReimbursement.getCosttypename() == null ? "" : serviceReimbursement.getCosttypename());
+ dataMap.put("R", StringUtils.isEmpty(rdInfoByItem.get(0).getCosttypename()) ? "" : rdInfoByItem.get(0).getCosttypename());
}
public static String convert(Double money) {
String smoney = money.toString();
- try{
+ try {
if (smoney.indexOf(".") != -1) { //鎶婃暟鍊煎垎涓烘暣鏁板瀷鍜屽甫灏忔暟鐨勬暟鍊煎垎寮�澶勭悊銆�
String left = smoney.substring(0, smoney.indexOf("."));
String right = smoney.substring(smoney.indexOf(".") + 1);
@@ -618,7 +780,7 @@
} else {
return convertLeft(smoney);
}
- }catch(IllegalArgumentException e){
+ } catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
System.out.println("璇疯緭鍏ヨ浆鎹㈣寖鍥村唴鐜伴噾");
return null;
@@ -630,12 +792,12 @@
int length = left.length(); //鏍规嵁鍗曚綅'浜�','涓�','鍏�'锛屾妸鏁存暟閮ㄥ垎鍒嗕负3绉嶆儏鍐靛鐞嗐��
if (length <= 4) { //閲戦鍦ㄥ崈鍏冧互鍐呫��
- if(length == 1 && Integer.valueOf(left) == 0) //閲戦涓�'0'鍏冩椂鐨勭壒娈婃儏鍐点��
+ if (length == 1 && Integer.valueOf(left) == 0) //閲戦涓�'0'鍏冩椂鐨勭壒娈婃儏鍐点��
return "闆跺厓";
return convertPart(left, length);
} else if (length <= 8) { //閲戦鍦ㄥ崈涓囧厓浠ュ唴銆�
- String part1 = left.substring(0,length - 4);
+ String part1 = left.substring(0, length - 4);
String part2 = left.substring(length - 4, length);
String result1 = convertPart(part1, length);
@@ -686,7 +848,7 @@
String number = "";
String unit = "";
- if(part.equals("0000") && position == 8) //鐢ㄤ簬鎺掗櫎鍗曚綅涓�'涓�'鏃讹紝鍥涗綅鏁板�煎潎涓�'0'鐨勬儏鍐点��
+ if (part.equals("0000") && position == 8) //鐢ㄤ簬鎺掗櫎鍗曚綅涓�'涓�'鏃讹紝鍥涗綅鏁板�煎潎涓�'0'鐨勬儏鍐点��
return "";
for (int i = 0; i < part.length(); i++) {
int value = Integer.valueOf(String.valueOf(part.charAt(i)));
@@ -696,9 +858,7 @@
}
result = result.replaceAll("闆朵粺", "闆�").replaceAll("闆朵桨", "闆�") //鎶婂崟浣�'浜�','涓�','鍏�'鏀惧埌鏈�鍚庢浛鎹€��
- .replaceAll("闆舵嬀", "闆�").replaceAll("闆堕浂", "闆�")
- .replaceAll("闆堕浂", "闆�").replaceAll("闆朵嚎", "浜�")
- .replaceAll("闆朵竾", "涓�").replaceAll("闆跺厓", "鍏�");
+ .replaceAll("闆舵嬀", "闆�").replaceAll("闆堕浂", "闆�").replaceAll("闆堕浂", "闆�").replaceAll("闆朵嚎", "浜�").replaceAll("闆朵竾", "涓�").replaceAll("闆跺厓", "鍏�");
// result = result.replaceAll("闆朵粺", "闆�");
// result = result.replaceAll("闆朵桨", "闆�");
// result = result.replaceAll("闆舵嬀", "闆�");
@@ -711,7 +871,6 @@
System.out.println(result);
return result;
}
-
}
--
Gitblit v1.9.3