From 39405c053391f29d2f2c0e2c3104bea111e0e460 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 08 五月 2024 10:25:31 +0800 Subject: [PATCH] 代码提交 --- ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java | 256 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 191 insertions(+), 65 deletions(-) diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java index 76c4855..75ca769 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java @@ -1,39 +1,41 @@ package com.ruoyi.project.service.impl; -import java.io.File; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.exception.base.BaseException; -import com.ruoyi.common.utils.ChineseUtils; import com.ruoyi.common.utils.HttpClientKit; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.vo.*; import com.ruoyi.project.mapper.*; -import com.ruoyi.project.service.IServiceFundSharedService; -import com.ruoyi.project.service.IServiceFunddetailService; -import com.ruoyi.project.service.IServiceFunddetailSharedService; +import com.ruoyi.project.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; +import org.apache.ibatis.annotations.Param; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFColor; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.project.service.IServiceFundService; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; /** * 璐圭敤鐢宠涓籗ervice涓氬姟灞傚鐞� @@ -71,6 +73,15 @@ @Autowired private IServiceFunddetailService serviceFunddetailService; + @Autowired + private VExpertfeeExpertMapper vExpertfeeExpertMapper; + + @Autowired + private VExpertfeeDonorMapper vExpertfeeDonorMapper; + + @Autowired + private VExpertfeeTotalMapper vExpertfeeTotalMapper; + /** * 鏌ヨ璐圭敤鐢宠涓诲垪琛�(鍖呭惈鍒犻櫎鐨�) @@ -86,6 +97,9 @@ } if (serviceFund.getId() != null) { wrappers.eq(ServiceFund::getId, serviceFund.getId()); + } + if (serviceFund.getFundTaxId() != null) { + wrappers.eq(ServiceFund::getFundTaxId, serviceFund.getFundTaxId()); } if (StringUtils.isNotBlank(serviceFund.getUserno())) { wrappers.eq(ServiceFund::getUserno, serviceFund.getUserno()); @@ -108,8 +122,14 @@ if (serviceFund.getUploadtime() != null) { wrappers.eq(ServiceFund::getUploadtime, serviceFund.getUploadtime()); } + if (serviceFund.getUploadStates() != null) { + wrappers.eq(ServiceFund::getUploadStates, serviceFund.getUploadStates()); + } if (serviceFund.getFlowlevel() != null) { wrappers.eq(ServiceFund::getFlowlevel, serviceFund.getFlowlevel()); + } + if (serviceFund.getJxrq() != null) { + wrappers.eq(ServiceFund::getJxrq, serviceFund.getJxrq()); } return this.list(wrappers); } @@ -138,8 +158,18 @@ } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Boolean addFundSharedInfo(Long id) { + log.info("fund琛ㄧ殑id锛歿}", id); + //鍒ゆ柇涓�涓嬶紝share琛ㄦ槸鍚﹀凡缁忓瓨鍦ㄤ簡 + Map<String, Object> map = new HashMap<>(); + map.put("serfunid", id); + map.put("del_flag", 0); + List<ServiceFundShared> serviceFundSharedList = serviceFundSharedMapper.selectByMap(map); + if (!CollectionUtils.isEmpty(serviceFundSharedList)) { + return true; + } + ServiceFund serviceFund = serviceFundMapper.selectById(id); ServiceFundShared serviceFundShared = DtoConversionUtils.sourceToTarget(serviceFund, ServiceFundShared.class); serviceFundShared.setSerfunid(serviceFundShared.getId()); @@ -159,7 +189,17 @@ serviceFunddetailShareds.get(i).setFundid(serviceFundShared.getId()); serviceFunddetailShareds.get(i).setId(null); //鏁版嵁鍙戦�佺粰璐㈠姟 - uploadOAFileAndUpdateDb(serviceFunddetailShareds.get(i)); + try { + uploadOAFileAndUpdateDb(serviceFunddetailShareds.get(i)); + } catch (Exception e) { + e.printStackTrace(); + log.error("Exception涓叆鍙傜殑ID涓猴細{},寮傚父淇℃伅涓� 锛� {}", id, e.getMessage()); + if (id != null) { + Boolean aBoolean = sharedService.delfundsharedInfoById(null, id); + log.error("fund2鍒嗕韩琛ㄩ噷鐨勬暟鎹槸鍚﹀垹闄ゆ垚鍔燂細{}", aBoolean); + } + return false; + } } boolean result = false; for (ServiceFunddetailShared serviceFunddetailShared : serviceFunddetailShareds) { @@ -667,9 +707,13 @@ } @Override + public List<SpFinancialExpensesFundOut> getExpertfeeList(SpSelectExpertfee spSelectExpertfee) { + return serviceFundMapper.getExpertfeeList(spSelectExpertfee.getPaApplyType(), spSelectExpertfee.getDonorname(), spSelectExpertfee.getPacheckno(), spSelectExpertfee.getCheckstatus(), spSelectExpertfee.getPadepartno(), spSelectExpertfee.getPausername()); + } + + @Override public int countItem(Long infoid, Long itemid) { List<ServiceFund> serviceFunds = serviceFundMapper.getInfoByInfoId(infoid); - int count = 0; for (ServiceFund s : serviceFunds) { long fundid = s.getId(); @@ -685,39 +729,47 @@ public Long addOrUpdateNew(ServiceFundVO serviceFundVO) { Long id = null; //灏嗘暟鎹繚瀛樺埌fund琛� + serviceFundVO.setUploadStates(0); id = saveFund(serviceFundVO); List<ServiceFunddetailVO> serviceFunddetails = serviceFundVO.getServiceFunddetails(); - if (CollectionUtils.isEmpty(serviceFunddetails)) { - throw new BaseException("serviceFunddetails涓虹┖鍠�"); - } BigDecimal bigDecimal = new BigDecimal(0.0); - // 淇濆瓨璇︽儏鏁版嵁 - for (ServiceFunddetailVO serviceFunddetailVO : serviceFunddetails) { + if (!CollectionUtils.isEmpty(serviceFunddetails)) { - if (StringUtils.isEmpty(serviceFunddetailVO.getBankcardno())) { - throw new BaseException("璇锋鏌ラ摱琛屽崱鍙锋槸鍚︿负绌�,濮撳悕锛�" + serviceFunddetailVO.getBeneficiaryname()); + // 淇濆瓨璇︽儏鏁版嵁 + for (ServiceFunddetailVO serviceFunddetailVO : serviceFunddetails) { + //鍘绘帀韬唤璇佺殑棣栧熬绌烘牸 + if (StringUtils.isNotEmpty(serviceFunddetailVO.getIdcardno())) { + serviceFunddetailVO.setIdcardno(serviceFunddetailVO.getIdcardno().trim()); + } + + if (StringUtils.isEmpty(serviceFunddetailVO.getBankcardno())) { + throw new BaseException("璇锋鏌ラ摱琛屽崱鍙锋槸鍚︿负绌�,濮撳悕锛�" + serviceFunddetailVO.getBeneficiaryname()); + } + serviceFunddetailVO.setFundid(id); + //灏囬檮浠惰浆鎴恓son + if (!CollectionUtils.isEmpty(serviceFunddetailVO.getAnnexfilesList())) { + serviceFunddetailVO.setAnnexfiles(JSON.toJSONString(serviceFunddetailVO.getAnnexfilesList())); + } else { + serviceFunddetailVO.setAnnexfiles(null); + } + if (!CollectionUtils.isEmpty(serviceFunddetailVO.getInvoicefilesList())) { + serviceFunddetailVO.setInvoicefiles(JSON.toJSONString(serviceFunddetailVO.getInvoicefilesList())); + } else { + serviceFunddetailVO.setInvoicefiles(null); + } + ServiceFunddetail serviceFunddetail = DtoConversionUtils.sourceToTarget(serviceFunddetailVO, ServiceFunddetail.class); + + if (serviceFunddetailVO.getId() == null) { + serviceFunddetailService.save(serviceFunddetail); + } else { + serviceFunddetailService.updateById(serviceFunddetail); + } + + bigDecimal = bigDecimal.add(BigDecimal.valueOf(serviceFunddetailVO.getAmount())); + } - serviceFunddetailVO.setFundid(id); - //灏囬檮浠惰浆鎴恓son - if (!CollectionUtils.isEmpty(serviceFunddetailVO.getAnnexfilesList())) { - serviceFunddetailVO.setAnnexfiles(JSON.toJSONString(serviceFunddetailVO.getAnnexfilesList())); - } - if (!CollectionUtils.isEmpty(serviceFunddetailVO.getInvoicefilesList())) { - serviceFunddetailVO.setInvoicefiles(JSON.toJSONString(serviceFunddetailVO.getInvoicefilesList())); - } - ServiceFunddetail serviceFunddetail = DtoConversionUtils.sourceToTarget(serviceFunddetailVO, ServiceFunddetail.class); - - if (serviceFunddetailVO.getId() == null) { - serviceFunddetailService.save(serviceFunddetail); - } else { - serviceFunddetailService.updateById(serviceFunddetail); - } - - bigDecimal = bigDecimal.add(BigDecimal.valueOf(serviceFunddetailVO.getAmount())); - - } serviceFundVO.setPretaxcost(bigDecimal.doubleValue()); serviceFundMapper.updateById(serviceFundVO); @@ -874,8 +926,40 @@ } } + @Override + public Map<String, Object> exportFeeSum(Integer faxId) { + List<VExpertfeeTotal> list = vExpertfeeTotalMapper.selectVExpertfeeTotalListByTaxId(faxId); + ExcelUtil<VExpertfeeTotal> util = new ExcelUtil<VExpertfeeTotal>(VExpertfeeTotal.class); + AjaxResult ajaxResult = util.exportExcel(list, "vExpertfeeTotal"); + String filePath = RuoYiConfig.getDownloadPath() + ajaxResult.get("msg"); - int uploadOAFileAndUpdateDb(ServiceFunddetailShared remShare) { + List<VExpertfeeDonor> list2 = vExpertfeeDonorMapper.selectVExpertfeeDonorList2(faxId); + ExcelUtil<VExpertfeeDonor> util2= new ExcelUtil<VExpertfeeDonor>(VExpertfeeDonor.class); + AjaxResult ajaxResult2 = util2.exportExcel(list2, "VExpertfeeDonor"); + + List<VExpertfeeExpert> list3 = vExpertfeeExpertMapper.selectVExpertfeeExpertListByFaxId(faxId); + ExcelUtil<VExpertfeeExpert> util3 = new ExcelUtil<VExpertfeeExpert>(VExpertfeeExpert.class); + AjaxResult ajaxResult3 = util3.exportExcel(list3, "vExpertfeeExpert"); + + List<String> list1 = new ArrayList<>(); + list1.add(ajaxResult.get("msg").toString()); + list1.add(ajaxResult2.get("msg").toString()); + list1.add(ajaxResult3.get("msg").toString()); + + + String name = "涓撳璐规眹鎬诲崟" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xlsx"; + mergeExcel(list1, RuoYiConfig.getDownloadPath() + name); + for (String path : list1) { + new File(RuoYiConfig.getDownloadPath() + path).delete(); + } + Map<String, Object> map = new HashMap<>(); + map.put("downloadUrl", "/profile/download/" + name); + map.put("downloadName", name); + return map; + } + + + int uploadOAFileAndUpdateDb(ServiceFunddetailShared remShare) throws Exception { //涓婁紶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"; @@ -915,7 +999,7 @@ } - private Integer uploadFile(String filePath, String strFUrl, List<RbDetailFile> parseArray2, List<RbDetailFile> parseArray, ServiceFunddetailShared remShare, String flag) { + private Integer uploadFile(String filePath, String strFUrl, List<RbDetailFile> parseArray2, List<RbDetailFile> parseArray, ServiceFunddetailShared remShare, String flag) throws Exception { if (!CollectionUtils.isEmpty(parseArray)) { for (int i = 0; i < parseArray.size(); i++) { RbDetailFile rbDetailFile = parseArray.get(i); @@ -927,24 +1011,24 @@ System.out.println("fund鏈嶅姟鐨刦ilePath + substring: " + filePath + substring); File filetest = new File(filePath + substring); - try { - String struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl); - log.info("绗笁鏂逛紶鍥炵殑鏁版嵁: {}", struploadResult); - if (StringUtils.isEmpty(struploadResult)) { - log.error("HttpClientKit.sendPostWithFile 璇锋眰涓虹┖浜� filetest:{}, strFUrl:{} ", filetest, strFUrl); - return 0; - } - //鑾峰彇fileid - JSONObject jsonR = JSONObject.parseObject(struploadResult); - JSONArray jsonArr = jsonR.getJSONArray("atts"); - log.info("绗笁鏂逛紶鍥炵殑鏁版嵁鑾峰彇鐨刟tts : {}", jsonArr); - for (int j = 0; j < jsonArr.size(); j++) { - JSONObject jsonRet = jsonArr.getJSONObject(j); - rbDetailFile.setFileid(jsonRet.get("fileUrl").toString()); - } - } catch (Exception e) { - e.printStackTrace(); + String struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl); + log.info("绗笁鏂逛紶鍥炵殑鏁版嵁: {}", struploadResult); + if (StringUtils.isEmpty(struploadResult)) { + log.error("HttpClientKit.sendPostWithFile 璇锋眰涓虹┖浜� filetest:{}, strFUrl:{} ", filetest, strFUrl); + return 0; } + //鑾峰彇fileid + JSONObject jsonR = JSONObject.parseObject(struploadResult); + JSONArray jsonArr = jsonR.getJSONArray("atts"); + log.info("绗笁鏂逛紶鍥炵殑鏁版嵁鑾峰彇鐨刟tts : {}", jsonArr); + for (int j = 0; j < jsonArr.size(); j++) { + JSONObject jsonRet = jsonArr.getJSONObject(j); + if (StringUtils.isEmpty(jsonRet.get("fileUrl").toString())) { + throw new BaseException("fileID涓虹┖,璇疯仈绯荤涓夋柟澶勭悊"); + } + rbDetailFile.setFileid(jsonRet.get("fileUrl").toString()); + } + parseArray2.add(rbDetailFile); } if (flag.equals("1")) { @@ -1065,4 +1149,46 @@ return id; } + public void mergeExcel(List<String> files, String outputFile) { + try { + Workbook resultWorkbook = new XSSFWorkbook(); + for (String file : files) { + InputStream is1 = new FileInputStream(RuoYiConfig.getDownloadPath() + file); + Workbook workbook1 = new XSSFWorkbook(is1); + Sheet sheet1 = workbook1.getSheetAt(0); + // 澶嶅埗绗竴涓枃浠剁殑Sheet + Sheet newSheet1 = resultWorkbook.createSheet(file.substring(0, file.indexOf("."))); + for (Row row : sheet1) { + Row newRow = newSheet1.createRow(row.getRowNum()); + int columns = row.getLastCellNum(); + for (int i = 0; i < columns; i++) { + newSheet1.setColumnWidth(i, 5000); + Cell cell = row.getCell(i); + Cell newCell = newRow.createCell(cell.getColumnIndex()); + newCell.setCellValue(cell.getStringCellValue()); + // 鍒涘缓鍗曞厓鏍兼牱寮� + CellStyle style = resultWorkbook.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); // 姘村钩灞呬腑 + style.setVerticalAlignment(VerticalAlignment.CENTER); // 鍨傜洿灞呬腑 + if (row.getRowNum() == 0) { + // 璁剧疆绗竴琛岃儗鏅壊 + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + } + + newCell.setCellStyle(style); + } + } + } + FileOutputStream out = new FileOutputStream(outputFile); + resultWorkbook.write(out); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Transactional(rollbackFor = Exception.class) + public Boolean updateFundTaxIdById(Long id, Long fundTaxId) { + return serviceFundMapper.updateFundTaxIdById(id, fundTaxId); + } } -- Gitblit v1.9.3