From fa8521a23af37854e7a23d35467147bd00e008b2 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 14 九月 2023 18:57:31 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java | 959 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 700 insertions(+), 259 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..0a759dd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java @@ -1,63 +1,66 @@ 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.bean.DtoConversionUtils; +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.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.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.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 IServiceReimbursementSharedService serviceReimbursementSharedService; + + @Autowired + private IServiceReimbursementpayeeService reimbursementpayeeService; @Autowired private IServiceReimbursementdetailService serviceReimbursementdetailService; @@ -69,19 +72,24 @@ private IServiceFundflowService serviceFundflowService; @Autowired + private IServiceFundService serviceFundService; + + @Autowired private ISysPostService postService; @Autowired private IServiceSystemmessageService ServiceSystemmessage; 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[] = {"闆�", "澹�", "璐�", "鍙�", "鑲�", "浼�", "闄�", "鏌�", "鎹�", "鐜�"}; /** * 鏌ヨ鎶ラ攢鐢宠鍒楄〃 @@ -90,10 +98,10 @@ //@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 +112,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,45 +124,54 @@ @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 pageNum = spFinancialExpensesIn.getPageNum(); + Integer pageSize = spFinancialExpensesIn.getPageSize(); - 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); + //鏍规嵁缁忓姙浜虹瓫閫� + if (StringUtils.isNotBlank(spFinancialExpensesIn.getUsername())) { + list = list.stream().filter(reimbursementOut -> reimbursementOut.getUsername().contains(spFinancialExpensesIn.getUsername())).collect(Collectors.toList()); // 鎸塶ame瀛楁杩囨护 + } + //鏍规嵁閲戦绛涢�� + if (spFinancialExpensesIn.getMoney() != null) { + list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getAmountrequested()) == new BigDecimal(spFinancialExpensesIn.getMoney())).collect(Collectors.toList()); + } + //鏍规嵁鍒涘缓鏃堕棿鎺掑簭 + Collections.sort(list, new Comparator<SpFinancialExpensesReimbursementOut>() { + @Override + public int compare(SpFinancialExpensesReimbursementOut o1, SpFinancialExpensesReimbursementOut o2) { + return o2.getCreateTime().compareTo(o1.getCreateTime()); + } + }); + return getCustomDataTable(list, pageNum, pageSize); } /** @@ -165,8 +181,7 @@ //@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, "鎶ラ攢鐢宠鏁版嵁"); @@ -178,18 +193,17 @@ @ApiOperation("鑾峰彇鎶ラ攢鐢宠璇︾粏淇℃伅") //@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)); } @@ -202,12 +216,240 @@ @PostMapping @RepeatSubmit @Options(useGeneratedKeys = true, keyProperty = "id") - public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) - { + public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) { + boolean b = serviceReimbursementService.save(serviceReimbursement); +// if (b) { +// addReiSharedDatd(serviceReimbursement, 1); +// } Long id = serviceReimbursement.getId(); return AjaxResult.success(id); } + +// public int addReiSharedDatd(ServiceReimbursement serviceReimbursement, int nType) { +// //remShare = ; +// ServiceReimbursementShared remShare = new ServiceReimbursementShared(); +// if (nType == 1) { +// // remShare = new ServiceReimbursementShared(); +// remShare.setReimid(serviceReimbursement.getId()); +// } else //modify +// { +// List<ServiceReimbursementShared> remlist = serviceReimbursementServiceShare.getRemShareInfoByRemId(serviceReimbursement.getId()); +// if (!CollectionUtils.isEmpty(remlist)) remShare = remlist.get(0); +// } +// +// remShare.setUserno(serviceReimbursement.getUserno()); +// remShare.setUsername(serviceReimbursement.getUsername()); +// remShare.setTravelers(serviceReimbursement.getTravelers()); +// remShare.setIdcardtype(serviceReimbursement.getIdcardtype()); +// remShare.setIdcardno(serviceReimbursement.getIdcardno()); +// remShare.setPhone(serviceReimbursement.getPhone()); +// remShare.setDepositbank(serviceReimbursement.getDepositbank()); +// remShare.setBankcardno(serviceReimbursement.getBankcardno()); +// remShare.setBranchbankname(serviceReimbursement.getBranchbankname()); +// remShare.setAnnexbankcard(serviceReimbursement.getAnnexbankcard()); +// remShare.setAnnexfiles(serviceReimbursement.getAnnexfiles()); +// //remShare.setAnnexfiles(serviceReimbursement.getAnnexfiles()); +// // remShare.setAmountrequested(BigDecimal.valueOf(serviceReimbursement.getAmountrequested())); +// +// Double nTemp = serviceReimbursement.getAmountrequested(); +// if (nTemp == null) nTemp = 0d; +// remShare.setAmountrequested(BigDecimal.valueOf(nTemp)); +// +// nTemp = serviceReimbursement.getPrepaidamount(); +// if (nTemp == null) nTemp = 0.0; +// remShare.setPrepaidamount(BigDecimal.valueOf(nTemp)); +// +// remShare.setInvoicecount(serviceReimbursement.getInvoicecount()); +// remShare.setAttachcount(serviceReimbursement.getAttachcount()); +// remShare.setManagerno(serviceReimbursement.getManagerno()); +// remShare.setManagername(serviceReimbursement.getManagername()); +// remShare.setDeptmentno(serviceReimbursement.getDeptmentno()); +// remShare.setDeptmentname(serviceReimbursement.getDeptmentname()); +// remShare.setOpochecker(serviceReimbursement.getOpochecker()); +// remShare.setFinvicepresident(serviceReimbursement.getFinvicepresident()); +// remShare.setBusvicepresident(serviceReimbursement.getBusvicepresident()); +// remShare.setOfficedirector(serviceReimbursement.getOfficedirector()); +// remShare.setFinancedirector(serviceReimbursement.getFinancedirector()); +// remShare.setFinancechecher(serviceReimbursement.getFinancechecher()); +// remShare.setInfoid(serviceReimbursement.getInfoid()); +// remShare.setDonorno(serviceReimbursement.getDonorno()); +// +// remShare.setDonorname(serviceReimbursement.getDonorname()); +// remShare.setReason(serviceReimbursement.getReason()); +// remShare.setRecordstatus(serviceReimbursement.getRecordstatus()); +// remShare.setUploadflag(serviceReimbursement.getUploadflag()); +// remShare.setUploadtime(serviceReimbursement.getUploadtime()); +// +// nTemp = serviceReimbursement.getTotalamount(); +// if (nTemp == null) nTemp = 0.0; +// remShare.setTotalamount(BigDecimal.valueOf(nTemp)); +// +// remShare.setBigstrmoney(serviceReimbursement.getBigstrmoney()); +// remShare.setFlowlevel(serviceReimbursement.getFlowlevel()); +// remShare.setCosttype(serviceReimbursement.getCosttype()); +// remShare.setCosttypename(serviceReimbursement.getCosttypename()); +// remShare.setFileurl(serviceReimbursement.getAnnexfiles()); +// remShare.setDonorbank(serviceReimbursement.getDonorbank()); +// remShare.setDonorbankcard(serviceReimbursement.getDonorbankcard()); +// remShare.setDonorremark(serviceReimbursement.getDonorremark()); +// +// nTemp = serviceReimbursement.getDonoramount(); +// if (nTemp == null) nTemp = 0.0; +// remShare.setDonoramount(nTemp); +// remShare.setDonorrelatives(serviceReimbursement.getDonorrelatives()); +// //remShare.setOaid(serviceReimbursement.getOaid()); +// //remShare.setDonorno(serviceReimbursement.getDonorno()); +// +// boolean bRet = false; +// if (nType == 1) { +// bRet = serviceReimbursementServiceShare.save(remShare); +// } else { +// //remShare.setId(serviceReimbursement.); +// bRet = serviceReimbursementServiceShare.updateById(remShare); +// } +// +// //if(!bRet) return -1; +// String strMutfileUrl = remShare.getFileurl(); +// //鏈夐檮浠舵椂鎵嶈皟鐢ㄧ涓夋柟杩涜涓婁紶 +// 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(ServiceReimbursementShared 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.getFileurl();//鍙兘瀛樺湪澶氫釜鍦板潃锛屼互,鍒嗗紑 +// +// 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(); +// } +// +// +// /*CloseableHttpClient httpClient = HttpClients.createDefault(); +// //鍒涘缓post鏂规硶杩炴帴瀹炰緥锛屽湪post鏂规硶涓紶鍏ュ緟杩炴帴鍦板潃 +// HttpPost httpPost = new HttpPost(strFUrl); +// CloseableHttpResponse response = null; +// +// String struploadResult = ""; +// try { +// //璁剧疆璇锋眰鍙傛暟锛堢被浼糷tml椤甸潰涓璶ame灞炴�э級 +// MultipartEntityBuilder entity = MultipartEntityBuilder.create(); +// //entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); +// entity.setCharset(Charset.forName("UTF-8")); +// +// byte[] fileBytes = Files.readAllBytes(Paths.get(strFile)); +// if (fileBytes != null) { +// //鍐呭绫诲瀷锛岀敤浜庡畾涔夌綉缁滄枃浠剁殑绫诲瀷鍜岀綉椤电殑缂栫爜锛屽喅瀹氭枃浠舵帴鏀舵柟灏嗕互浠�涔堝舰寮忋�佷粈涔堢紪鐮佽鍙栬繖涓枃浠� +// ContentType OCTEC_STREAM = ContentType.create("application/octet-stream", Charset.forName("UTF-8")); +// //娣诲姞鏂囦欢 +// entity.addBinaryBody("file", fileBytes, OCTEC_STREAM, strTemp); +// } +// +// httpPost.setEntity(entity.build()); +// //鍙戣捣璇锋眰锛屽苟杩斿洖璇锋眰鍝嶅簲 +// response = httpClient.execute(httpPost); +// struploadResult = EntityUtils.toString(response.getEntity(), "utf-8"); +// } +// 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 = serviceReimbursementServiceShare.updateById(remShare); +//// if (!bRet) return -1; +// +// return 0; +// } + /** * 宸梾璐逛笂鎶� @@ -215,28 +457,50 @@ @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; + public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) { + ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid()); + //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�; + if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) { +// if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) { + if (serviceReimbursement.getBackflowlevel() == 199) { + //灏嗛��鍥為樁娈佃缃垚100 + serviceReimbursement.setBackflowlevel(100L); + serviceReimbursement.setFlowlevel(100L); + serviceReimbursement.setRecordstatus(0); + serviceReimbursementService.updateById(serviceReimbursement); + + //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉� + serviceReimbursementService.addSharedData(checkFundVO.getFundid()); + + return success(); + } + } + if (serviceReimbursement != null) { + Integer TotalLevel = 0; LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); - List<Integer> postids =postService.selectPostListByUserId(loginUser.getUserId()); + List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId()); - if(!postids.contains(2)) - { - serviceReimbursement.setFlowlevel(1); + if (!postids.contains(2)) { serviceReimbursement.setRecordstatus(2); - } - else - { - serviceReimbursement.setFlowlevel(0); + if (serviceReimbursement.getBackflowlevel() != null) { + serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel()); + } else { + serviceReimbursement.setBackflowlevel(1L); + serviceReimbursement.setFlowlevel(1L); + } + } 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()); @@ -252,10 +516,8 @@ serviceReimbursementService.updateById(serviceReimbursement); return AjaxResult.success(); - } - else - { - return AjaxResult.error(HttpStatus.NO_CONTENT,"璐圭敤缂栧彿涓嶆纭�"); + } else { + return AjaxResult.error(HttpStatus.NO_CONTENT, "璐圭敤缂栧彿涓嶆纭�"); } } @@ -266,72 +528,73 @@ @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; + public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) { + log.info("瀹℃牳璐圭敤鐨勫叆鍙� : {}", checkFundVO); + ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid()); + log.info("瀹℃牳璐圭敤鐨剆erviceReimbursementService.getById杩斿弬 : {}", serviceReimbursement); + if (serviceReimbursement != null) { + Integer totalLevel = 0; LoginUser loginUser = getLoginUser(); - ServiceFundflowrule serviceFundflowrule=new ServiceFundflowrule(); + 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,"褰撳墠浜哄憳鏃犳璁板綍瀹℃牳鏉冮檺"); + List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule); + log.info("瀹℃牳璐圭敤鐨剆erviceFundflowruleService.queryList杩斿弬 : {}", serviceFundflowrules.size()); + 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.get(0).getFlowlevel() - 1 != serviceReimbursement.getFlowlevel()) { + return AjaxResult.error(HttpStatus.ERROR, "褰撳墠浜哄憳涓庢璁板綍鐨勫鏍哥骇鍒笉绗�"); } - if(serviceFundflowrules!=null && serviceFundflowrules.stream().count()>0) - { - TotalLevel=serviceFundflowrules.get(0).getTotallevel(); + 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; + Integer CheckFlag = 0; + Integer RecordStatus = serviceReimbursement.getRecordstatus(); + Integer FlowLevel = Integer.valueOf(serviceReimbursement.getFlowlevel().toString()); + if (Objects.isNull(serviceReimbursement.getBackflowlevel()) && !Objects.isNull(serviceReimbursement.getFlowlevel())) { + serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel.toString())); + } + Integer OriginalFlowLevel = FlowLevel; + if (checkFundVO.getFlowconclusion() == 1) { + CheckFlag = 1; + if (totalLevel == 0) { + //99 鍙栨秷 + 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; + FlowLevel = FlowLevel + 1; + serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel)); + } else { + CheckFlag = 2; + + if (CheckFlag == 2) { + //搴斿尰闄㈣姹傚鏋滃嚭鐜伴��鍥烇紝鐩存帴閫�鍒板彂璧疯�� + FlowLevel = 0; + RecordStatus = -1; + } else { + //涓嬮潰鏄師鏉ョ殑鍐欐硶锛屼竴绾т竴绾х殑寰�涓嬮��锛屽尰闄㈢幇鍦ㄤ笉瑕佽繖鏍锋悶浜嗭紝涓嬮潰杩欐浠g爜鍏堜繚鐣欙紝绛夊尰闄㈠洖蹇冭浆鎰忥紝鍐嶇粰鏀惧紑 + RecordStatus = (FlowLevel + 1) * 2 - 1; + FlowLevel = (FlowLevel - 1); + if (FlowLevel < 0) { + FlowLevel = 0; + } } } serviceReimbursement.setRecordstatus(RecordStatus); - serviceReimbursement.setFlowlevel(FlowLevel); - - ServiceFundflow serviceFundflow=new ServiceFundflow(); + serviceReimbursement.setFlowlevel(Long.valueOf(FlowLevel.toString())); + ServiceFundflow serviceFundflow = new ServiceFundflow(); SysUser user = loginUser.getUser(); serviceFundflow.setFundid(serviceReimbursement.getId()); serviceFundflow.setCheckuserno(user.getUserName()); @@ -339,17 +602,19 @@ serviceFundflow.setFundtype(1); serviceFundflow.setApplytype("0"); serviceFundflow.setFlowconclusion(CheckFlag); - serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent()); - serviceFundflow.setFlowlevel(OriginalFlowLevel+1); + if (StringUtils.isNotBlank(checkFundVO.getFlowcontent())) { + serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent()); + } else { + serviceFundflow.setFlowcontent(checkFundVO.getFlowconclusion() == 1 ? "閫氳繃" : "涓嶉�氳繃"); + } + serviceFundflow.setFlowlevel(OriginalFlowLevel + 1); serviceFundflowService.save(serviceFundflow); - List<Integer> postids =postService.selectPostListByUserId(loginUser.getUserId()); - - if(!postids.contains(2)) - { - if(CheckFlag==2 && OriginalFlowLevel==1) - { - ServiceFundflow serviceFundflowAuto=new ServiceFundflow(); + List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId()); + log.info("postService.selectPostListByUserId : {}", postids.size()); + if (!postids.contains(2) && !postids.contains(6) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) { + if (CheckFlag == 2 && OriginalFlowLevel == 1) { + ServiceFundflow serviceFundflowAuto = new ServiceFundflow(); serviceFundflowAuto.setFundid(serviceReimbursement.getId()); serviceFundflowAuto.setCheckuserno(user.getUserName()); serviceFundflowAuto.setCheckusername(user.getNickName()); @@ -359,14 +624,18 @@ serviceFundflowAuto.setFlowcontent("闈炰笓鑱屼汉鍛樹簩绾у鏍告嫆缁濆悗鐩存帴閫�鍥炲埌淇敼鐘舵��"); serviceFundflowAuto.setFlowlevel(1); serviceFundflowService.save(serviceFundflowAuto); - serviceReimbursement.setRecordstatus(1); } + + } + //001瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂 + if (checkFundVO.getFlowconclusion() == 1 && user.getUserId().equals("001")) { + serviceReimbursement.setOfficedirector(user.getNickName()); } serviceReimbursementService.updateById(serviceReimbursement); - ServiceSystemmessage serviceSystemmessage=new ServiceSystemmessage(); + ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage(); serviceSystemmessage.setFundtype(1); serviceSystemmessage.setApplytype("0"); serviceSystemmessage.setSenduserno(user.getUserName()); @@ -376,26 +645,26 @@ serviceSystemmessage.setIsread(0); serviceSystemmessage.setMessagetype(1); serviceSystemmessage.setRelevantno(serviceReimbursement.getId()); - if(CheckFlag==1) - { + log.info("CheckFlag鐨勫�� : {}", CheckFlag); + if (CheckFlag == 1) { //閫氳繃 - serviceSystemmessage.setMessagetitle(""+(OriginalFlowLevel+1)+"绾у鏍搁�氳繃"); - serviceSystemmessage.setMessagecontent("鎮�"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime())+"鎻愪氦鐨勫叧浜庢崘鐚渚嬨��"+serviceReimbursement.getDonorname()+"銆戠殑宸梾璐圭敵璇峰凡閫氳繃"+(OriginalFlowLevel+1)+"绾у鏍�"); - - } - else - { + serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁�氳繃"); + serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫叧浜庢崘鐚渚嬨��" + serviceReimbursement.getDonorname() + "銆戠殑宸梾璐圭敵璇峰凡閫氳繃" + (OriginalFlowLevel + 1) + "绾у鏍�"); + log.info("totalLevel鐨勫�� : {}, OriginalFlowLevel鐨勫��:{}", totalLevel, OriginalFlowLevel); + if (totalLevel == OriginalFlowLevel + 1) { + //鎵�鏈夋暟鎹柊澧炲埌澶囦唤琛� + serviceReimbursementService.addSharedData(checkFundVO.getFundid()); + } + } 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.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(); - } - else - { - return AjaxResult.error(HttpStatus.NO_CONTENT,"璐圭敤缂栧彿涓嶆纭�"); + } else { + return AjaxResult.error(HttpStatus.NO_CONTENT, "璐圭敤缂栧彿涓嶆纭�"); } } @@ -406,11 +675,29 @@ @ApiOperation("淇敼鎶ラ攢鐢宠") //@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); } /** @@ -418,10 +705,9 @@ */ @ApiOperation("鍒犻櫎鎶ラ攢鐢宠") //@PreAuthorize("@ss.hasPermi('project:reimbursement:remove')") - @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @Log(title = "鎶ラ攢鐢宠") + @GetMapping("/remove/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(serviceReimbursementService.removeByIds(Arrays.asList(ids))); } @@ -432,13 +718,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 +733,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 +764,214 @@ } 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"); 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).getCreateTime(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = formatter.format(dt); String time = date.substring(0, 10); + dataMap.put("XZBH", rdInfoByItem.get(0).getBh() == null ? "" : rdInfoByItem.get(0).getBh()); dataMap.put("TBYYMMDD", time); - dataMap.put("BXDFJ", 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 +986,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 +1006,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 +1042,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 +1062,7 @@ } else { return convertLeft(smoney); } - }catch(IllegalArgumentException e){ + } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); System.out.println("璇疯緭鍏ヨ浆鎹㈣寖鍥村唴鐜伴噾"); return null; @@ -630,12 +1074,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 +1130,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 +1140,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 +1153,6 @@ System.out.println(result); return result; } - } -- Gitblit v1.9.3