ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/PdfMergeController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,144 @@ package com.ruoyi.web.controller.project; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.NotRepeatCommit; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.HttpStatus; 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.exception.base.BaseException; import com.ruoyi.common.utils.MergeFilesToPDFUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.vo.*; import com.ruoyi.project.mapper.ServiceFunddetailMapper; import com.ruoyi.project.service.*; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysPostService; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Options; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; import static com.ruoyi.web.controller.project.ServiceReimbursementController.convert; /** * PDFåå¹¶ * * @author ruoyi * @date 2022-01-24 */ @Slf4j @Api("PDFåå¹¶") @RestController @RequestMapping("/project/pdfmerge") public class PdfMergeController extends BaseController { @Autowired private IServiceDonateannexService serviceDonateannexService; @Autowired private MergeFilesToPDFUtils mergeFilesToPDFUtils; @Autowired private IBaseOnlyvalueService baseOnlyvalueService; @Autowired private IServiceDonatebaseinfoService donatebaseinfoService; /** * å¾çãpdfãææ¡£åå¹¶æpdf */ @ApiOperation("å¾çãpdfãææ¡£åå¹¶æpdf") @GetMapping("/merge") public void merge(@RequestParam("infoId") Long infoId, HttpServletResponse response) { log.info("mergeçå ¥åä¸ºè¾ ï¼{}", infoId); ServiceDonateannex serviceDonateannex = new ServiceDonateannex(); serviceDonateannex.setInfoid(infoId); List<ServiceDonateannex> serviceDonateannexes = serviceDonateannexService.queryList(serviceDonateannex); if (!CollectionUtils.isEmpty(serviceDonateannexes)) { log.info("serviceDonateannexesæ¥è¯¢çæ°æ®ä¸ºï¼{}", serviceDonateannexes.size()); //æ ¹æ®Annexfilestypeè¿è¡æåº Collections.sort(serviceDonateannexes, Comparator.comparingInt(ServiceDonateannex::getAnnexfilestype)); //è·åæä»¶åæ¾çä½ç½®ï¼é ç½®æä»¶éçProfileå°åï¼ String localPath = RuoYiConfig.getProfile(); //ç¨äºè½¬æä¸ç»´æ°ç» List<String> list = new ArrayList<>(); //ç¨äºè®°å½è¯¥ä¸´æ¶pdfæä»¶æ¯å¦å é¤ List<MegerIsRemove> megerIsRemoveList = new ArrayList<>(); for (ServiceDonateannex serviceDonateannex1 : serviceDonateannexes) { String path = serviceDonateannex1.getAnnexurl().replace("/profile", localPath); String suffix = path.substring(path.lastIndexOf(".")); Boolean aBoolean = false; if (suffix.equals(".jpg") || suffix.equals(".JPG") || suffix.equals(".PNG") || suffix.equals(".png") || suffix.equals(".JPEG") || suffix.equals(".jpeg")) { //å¾çå¤ç try { aBoolean = mergeFilesToPDFUtils.addImageToPdf(path, getNewFileNameWithExtension(path, ".pdf")); } catch (IOException e) { e.printStackTrace(); } } else if (suffix.equals(".pdf") || suffix.equals(".PDF")) { //pdfæä»¶å¤ç String pdf = getNewFileNameWithExtension(path, ".pdf"); list.add(pdf); megerIsRemoveList.add(new MegerIsRemove(false, pdf)); } else if (suffix.equals(".doc") || suffix.equals(".DOC") || suffix.equals(".docx") || suffix.equals(".DOCX")) { //wordæä»¶å¤ç aBoolean = mergeFilesToPDFUtils.wordtoPdf(path, getNewFileNameWithExtension(path, ".pdf")); } if (aBoolean) { //å°å¾çåwordæä»¶çä¸´æ¶æä»¶ï¼åå°éåä¸ï¼ä»¥ä¾¿åé¢å é¤ String pdf = getNewFileNameWithExtension(path, ".pdf"); list.add(pdf); megerIsRemoveList.add(new MegerIsRemove(true, pdf)); } } //è·ååå¹¶åç§° ServiceDonatebaseinfo donatebaseinfo = donatebaseinfoService.getById(serviceDonateannexes.get(0).getInfoid()); String fileName = donatebaseinfo.getDonorno() + donatebaseinfo.getName() + ".pdf"; String[] str = list.toArray(new String[0]); //æä»¶åå¹¶ mergeFilesToPDFUtils.mergePDF(str, fileName, response); //å é¤ä¸´æ¶æä»¶ for (MegerIsRemove megerIsRemove : megerIsRemoveList) { if (megerIsRemove.getIsdel()) { new File(megerIsRemove.getPath()).delete(); } } } } private static String getNewFileNameWithExtension(String fileName, String extension) { int dotIndex = fileName.lastIndexOf('.'); return dotIndex != -1 ? fileName.substring(0, dotIndex) + extension : fileName; } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
@@ -127,19 +127,19 @@ log.info("æ°å¢æ½å¨æç®ä¿¡æ¯ï¼{}", serviceDonatebaseinfo); SysUser user = SecurityUtils.getLoginUser().getUser(); String bh = ""; bh = serviceDonatebaseinfoService.getDonateNumber(serviceDonatebaseinfo); if (bh == "") { return AjaxResult.error("æ°å¢æ¶çæçç¼å·ä¸ºç©º,å建失败!"); } else { ServiceDonatebaseinfo serviceDonatebaseinfo1 = new ServiceDonatebaseinfo(); serviceDonatebaseinfo1.setDonorno(bh); List<ServiceDonatebaseinfo> listrecord = serviceDonatebaseinfoService.queryList(serviceDonatebaseinfo1); if (listrecord.size() > 0) { return AjaxResult.error("æ°å¢æ¶çæçç¼å·" + bh + "å·²åå¨,æ æ³ä¿å!"); } } // String bh = ""; // bh = serviceDonatebaseinfoService.getDonateNumber(serviceDonatebaseinfo); // if (bh == "") { // return AjaxResult.error("æ°å¢æ¶çæçç¼å·ä¸ºç©º,å建失败!"); // } else { // ServiceDonatebaseinfo serviceDonatebaseinfo1 = new ServiceDonatebaseinfo(); // serviceDonatebaseinfo1.setDonorno(bh); // List<ServiceDonatebaseinfo> listrecord = serviceDonatebaseinfoService.queryList(serviceDonatebaseinfo1); // if (listrecord.size() > 0) { // return AjaxResult.error("æ°å¢æ¶çæçç¼å·" + bh + "å·²åå¨,æ æ³ä¿å!"); // } // // } String idcardno = serviceDonatebaseinfo.getIdcardno(); ServiceDonatebaseinfo serviceDonatebaseinfo2 = new ServiceDonatebaseinfo(); serviceDonatebaseinfo2.setIdcardno(idcardno); @@ -148,7 +148,7 @@ return AjaxResult.error("æ°å¢æ¶èº«ä»½è¯" + idcardno + "å·²åå¨,æ æ³ä¿å!"); } serviceDonatebaseinfo.setDonorno(bh); // serviceDonatebaseinfo.setDonorno(bh); serviceDonatebaseinfo.setDeptid(user.getDeptId()); serviceDonatebaseinfo.setDeptname(sysDeptMapper.getDeptNameByDeptId(user.getDeptId())); serviceDonatebaseinfoService.save(serviceDonatebaseinfo); @@ -244,7 +244,7 @@ } Map<String, Object> map = new HashMap<>(); map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); map.put("downloadName", name + ".doc"); map.put("downloadName", name + ".doc"); return map; } ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java
@@ -9,6 +9,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.OrganEnum; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.project.domain.ServiceDonatecompletioninfo; import com.ruoyi.project.domain.ServiceDonateorgan; ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
@@ -40,7 +40,7 @@ * æ¥è¯¢æç®å¨å®ç§»æ¤å表 */ @ApiOperation("æ¥è¯¢æç®å¨å®ç§»æ¤å表") @PreAuthorize("@ss.hasPermi('project:donatecomporgan:list')") // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:list')") @GetMapping("/list") public TableDataInfo list(ServiceDonatecomporgan serviceDonatecomporgan) { startPage(); @@ -52,7 +52,7 @@ * å¯¼åºæç®å¨å®ç§»æ¤å表 */ @ApiOperation("å¯¼åºæç®å¨å®ç§»æ¤å表") @PreAuthorize("@ss.hasPermi('project:donatecomporgan:export')") // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:export')") @Log(title = "æç®å¨å®ç§»æ¤", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ServiceDonatecomporgan serviceDonatecomporgan) { @@ -65,7 +65,7 @@ * è·åæç®å¨å®ç§»æ¤è¯¦ç»ä¿¡æ¯ */ @ApiOperation("è·åæç®å¨å®ç§»æ¤è¯¦ç»ä¿¡æ¯") @PreAuthorize("@ss.hasPermi('project:donatecomporgan:query')") // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(serviceDonatecomporganService.getById(id)); @@ -75,7 +75,7 @@ * æ°å¢æç®å¨å®ç§»æ¤ */ @ApiOperation("æ°å¢æç®å¨å®ç§»æ¤") @PreAuthorize("@ss.hasPermi('project:donatecomporgan:add')") // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:add')") @Log(title = "æç®å¨å®ç§»æ¤", businessType = BusinessType.INSERT) @PostMapping("/add") @RepeatSubmit @@ -88,7 +88,7 @@ * ä¿®æ¹æç®å¨å®ç§»æ¤ */ @ApiOperation("ä¿®æ¹æç®å¨å®ç§»æ¤") @PreAuthorize("@ss.hasPermi('project:donatecomporgan:edit')") // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:edit')") @Log(title = "æç®å¨å®ç§»æ¤", businessType = BusinessType.UPDATE) @PostMapping("/edit") @RepeatSubmit @@ -100,7 +100,7 @@ * å 餿ç®å¨å®ç§»æ¤ */ @ApiOperation("å 餿ç®å¨å®ç§»æ¤") @PreAuthorize("@ss.hasPermi('project:donatecomporgan:remove')") // @PreAuthorize("@ss.hasPermi('project:donatecomporgan:remove')") @Log(title = "æç®å¨å®ç§»æ¤", businessType = BusinessType.DELETE) @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java
@@ -9,6 +9,8 @@ import com.ruoyi.common.enums.OrganEnum; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.project.domain.ServiceDonatebaseinfo; import com.ruoyi.project.domain.ServiceDonateorgan; import com.ruoyi.project.domain.vo.DonationWitnessVO; import com.ruoyi.project.domain.vo.TimeVO; @@ -128,6 +130,15 @@ @RepeatSubmit public AjaxResult add(@RequestBody ServiceDonationwitness serviceDonationwitness) { boolean save = serviceDonationwitnessService.save(serviceDonationwitness); if (save) { //çæâæç®è ç¼å·â ServiceDonatebaseinfo serviceDonatebaseinfo = serviceDonatebaseinfoService.getById(serviceDonationwitness.getInfoid()); log.info("serviceDonatebaseinfoçä¿¡æ¯ä¸º{}", serviceDonatebaseinfo); String donorno = serviceDonatebaseinfoService.getDonateNumber(serviceDonatebaseinfo); log.info("çæçæç®è ç¼å·ä¸º:{}", donorno); serviceDonatebaseinfo.setDonorno(donorno); serviceDonatebaseinfoService.updateById(serviceDonatebaseinfo); } return AjaxResult.success(serviceDonationwitness); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -1,21 +1,17 @@ package com.ruoyi.web.controller.project; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.NotRepeatCommit; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDept; 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.MergeFilesToPDFUtils; 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; ruoyi-admin/src/main/resources/application.yml
@@ -15,6 +15,8 @@ # profile: /home/smartor/uploadFile # å»é¢ç¯å¢ profile: E:/OPO/WEB/Upload # 彿¡£è·¯å¾ archived: E:/OPO/WEB/archived/ # è·åipå°åå¼å ³ addressEnabled: false # éªè¯ç ç±»å math æ°ç»è®¡ç® char å符éªè¯ @@ -70,15 +72,15 @@ enabled: ALWAYS # redis é ç½® redis: # å°åãå¯ç ã端å£ï¼é»è®¤ä¸º6379ï¼ï¼å»é¢ç¯å¢ host: 129.88.242.37 password: jqserver port: 6379 # # å°åãå¯ç ã端å£ï¼é»è®¤ä¸º6379ï¼ï¼å»é¢ç¯å¢ # host: 129.88.242.37 # password: jqserver # port: 6379 # # å°åãå¯ç ã端å£ï¼é»è®¤ä¸º6379ï¼ï¼å¼åç¯å¢ # host: 116.62.18.175 # password: Smartor # port: 6020 # å°åãå¯ç ã端å£ï¼é»è®¤ä¸º6379ï¼ï¼å¼åç¯å¢ host: 116.62.18.175 password: Smartor port: 6020 # æ°æ®åºç´¢å¼ database: 0 @@ -100,7 +102,7 @@ # 令çèªå®ä¹æ è¯ header: Authorization # 令çå¯é¥ secret: abcdefghijklmnopqrstuvwxyz secret: lihuabcdefghijklmnopqrstuvwxyz # ä»¤çæææï¼é»è®¤30åéï¼ expireTime: 3000 @@ -146,6 +148,7 @@ # å¹é 龿¥ urlPatterns: /system/*,/monitor/*,/tool/* #ééçå¯é¥ dingAppid: dingn8iip5ubj7clrrsv dingAppSecret: qlEK8D3oOVwGPOTiBQIBYTqQVlAfy9S_qQizEQFjJdSScwemWFryg4gbneu-NqWD ruoyi-common/pom.xml
@@ -52,7 +52,7 @@ <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <!-- JSONå·¥å ·ç±» --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> @@ -170,6 +170,34 @@ <artifactId>jodconverter-local-lo</artifactId> <version>4.4.6</version> </dependency> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc.free</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls</artifactId> <version>14.2.4</version> </dependency> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf</artifactId> <version>9.5.6</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> <!-- 使ç¨5.xçæ¬ --> </dependency> </dependencies> <repositories> <repository> <id>com.e-iceblue</id> <url>https://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> </project> ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,107 @@ package com.ruoyi.common.utils; import com.itextpdf.text.Image; import com.itextpdf.text.pdf.PdfWriter; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.file.FileUtils; import com.spire.doc.Document; import com.spire.doc.FileFormat; import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfDocumentBase; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @Configuration public class MergeFilesToPDFUtils { @Value("${ruoyi.archived}") private String archived; /** * å°å¾çåæpdf */ public Boolean addImageToPdf(String imagePath, String pdfPath) throws IOException { com.itextpdf.text.Document document = new com.itextpdf.text.Document(); try { PdfWriter.getInstance(document, new FileOutputStream(pdfPath)); document.open(); // è·åå¾åç宽度åé«åº¦ BufferedImage image = ImageIO.read(new File(imagePath)); float imageWidth = image.getWidth(); float imageHeight = image.getHeight(); // è·å页é¢ç宽度åé«åº¦ float pageWidth = document.getPageSize().getWidth(); float pageHeight = document.getPageSize().getHeight(); // 计ç®è°æ´æ¯ä¾ï¼ç¡®ä¿å¾åéåºé¡µé¢ float widthRatio = pageWidth / imageWidth; float heightRatio = pageHeight / imageHeight; float ratio = Math.min(widthRatio, heightRatio); // 计ç®è°æ´åçå¾åå¤§å° float adjustedWidth = imageWidth * ratio - 50; float adjustedHeight = imageHeight * ratio - 50; // å建å¾å对象 Image pdfImage = Image.getInstance(imagePath); pdfImage.scaleAbsolute(adjustedWidth, adjustedHeight); // æ·»å å¾åå°ææ¡£ document.add(pdfImage); } catch (Exception e) { e.printStackTrace(); } finally { document.close(); } return true; } /** * WORD转PDF * * @param inputPath * @param outputPath */ public Boolean wordtoPdf(String inputPath, String outputPath) { Document doc = new Document(); //å è½½Word doc.loadFromFile(inputPath); //ä¿å为PDFæ ¼å¼ doc.saveToFile(outputPath, FileFormat.PDF); return true; } /** * pdfåå¹¶ */ public Boolean mergePDF(String[] pdfFiles, String fileName, HttpServletResponse response) { try { PdfDocumentBase pdf = PdfDocument.mergeFiles(pdfFiles); //Save the result to a PDF file pdf.save(archived + fileName, com.spire.pdf.FileFormat.PDF); String filePath = archived + fileName; response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, fileName); FileUtils.writeBytes(filePath, response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); return false; } return true; } } ruoyi-project/src/main/java/com/ruoyi/project/domain/PdfMegerVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.ruoyi.project.domain; import com.ruoyi.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * è´¹ç¨ç³è¯·ä¸»å¯¹è±¡ service_fund * * @author ruoyi * @date 2022-01-24 */ @Data @ApiModel("è´¹ç¨ç³è¯·ä¸»") public class PdfMegerVO extends BaseEntity { private static final long serialVersionUID = 1L; @ApiModelProperty("id") private Long id; /** * 模å :å·®æ 1 è´¹ç¨ 2 */ @ApiModelProperty("模å :å·®æ 1 è´¹ç¨ 2") private Integer type; } ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
@@ -1,6 +1,7 @@ package com.ruoyi.project.domain; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -12,162 +13,228 @@ /** * æç®å¨å®ç§»æ¤å¯¹è±¡ service_donatecomporgan * * * @author ruoyi * @date 2023-12-25 */ @Data @ApiModel("æç®å¨å®ç§»æ¤") public class ServiceDonatecomporgan extends BaseEntity { public class ServiceDonatecomporgan extends BaseEntity { private static final long serialVersionUID = 1L; /** $column.columnComment */ /** * $column.columnComment */ @ApiModelProperty("$column.columnComment") //æ°æ®åºèªå¢æ¹æ@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO) private Long id; /** å ³èservice_donatebaseinfo表çID */ /** * å ³èservice_donatebaseinfo表çID */ @ApiModelProperty("å ³èservice_donatebaseinfo表çID") @Excel(name = "å ³èservice_donatebaseinfo表çID") private Long infoid; /** å¨å®ç±»å« 详è§åå ¸sys_Organ */ /** * å¨å®ç±»å« 详è§åå ¸sys_Organ */ @ApiModelProperty("å¨å®ç±»å« 详è§åå ¸sys_Organ") @Excel(name = "å¨å®ç±»å« 详è§åå ¸sys_Organ") private String organno; /** å¨å®ç±»å«åç§° 详è§åå ¸sys_Organ */ /** * å¨å®ç±»å«åç§° 详è§åå ¸sys_Organ */ @ApiModelProperty("å¨å®ç±»å«åç§° 详è§åå ¸sys_Organ") @Excel(name = "å¨å®ç±»å«åç§° 详è§åå ¸sys_Organ") private String organname; /** å¨å®ç§»æ¤ç¶æ ï¼0ï¼æªç§»æ¤ï¼1ï¼å·²ç§»æ¤ï¼2ï¼å¼ç¨ */ /** * å¨å®ç§»æ¤ç¶æ ï¼0ï¼æªç§»æ¤ï¼1ï¼å·²ç§»æ¤ï¼2ï¼å¼ç¨ */ @ApiModelProperty("å¨å®ç§»æ¤ç¶æ ï¼0ï¼æªç§»æ¤ï¼1ï¼å·²ç§»æ¤ï¼2ï¼å¼ç¨") @Excel(name = "å¨å®ç§»æ¤ç¶æ ï¼0ï¼æªç§»æ¤ï¼1ï¼å·²ç§»æ¤ï¼2ï¼å¼ç¨") private Long transplantstate; /** æªç§»æ¤åå */ /** * æªç§»æ¤åå */ @ApiModelProperty("æªç§»æ¤åå ") @Excel(name = "æªç§»æ¤åå ") private String abandonreason; /** ç§»æ¤æ¶é´ */ /** * ç§»æ¤æ¶é´ */ @ApiModelProperty("ç§»æ¤æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "ç§»æ¤æ¶é´", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date transplanttime; /** ç§»æ¤å»ç */ /** * ç§»æ¤å»ç */ @ApiModelProperty("ç§»æ¤å»ç") @Excel(name = "ç§»æ¤å»ç") private String transplantdoct; /** å¨å®ç§»æ¤æºæç¼å· å¯¹åºæºæè¡¨ */ /** * å¨å®ç§»æ¤æºæç¼å· å¯¹åºæºæè¡¨ */ @ApiModelProperty("å¨å®ç§»æ¤æºæç¼å· å¯¹åºæºæè¡¨") @Excel(name = "å¨å®ç§»æ¤æºæç¼å· å¯¹åºæºæè¡¨") private String transplanthospitalno; /** å¨å®ç§»æ¤æºæåç§° å¯¹åºæºæè¡¨ */ /** * å¨å®ç§»æ¤æºæåç§° å¯¹åºæºæè¡¨ */ @ApiModelProperty("å¨å®ç§»æ¤æºæåç§° å¯¹åºæºæè¡¨") @Excel(name = "å¨å®ç§»æ¤æºæåç§° å¯¹åºæºæè¡¨") private String transplanthospitalname; /** ç§»æ¤äººå§å */ /** * ç§»æ¤äººå§å */ @ApiModelProperty("ç§»æ¤äººå§å") @Excel(name = "ç§»æ¤äººå§å") private String name; /** ç§»æ¤äººæ§å« æ ¹æ®åå ¸sys_user_sex */ /** * ç§»æ¤äººæ§å« æ ¹æ®åå ¸sys_user_sex */ @ApiModelProperty("ç§»æ¤äººæ§å« æ ¹æ®åå ¸sys_user_sex") @Excel(name = "ç§»æ¤äººæ§å« æ ¹æ®åå ¸sys_user_sex") private Long sex; /** ç§»æ¤äººè¯ä»¶ç±»å æ ¹æ®åå ¸sys_IDType */ /** * ç§»æ¤äººè¯ä»¶ç±»å æ ¹æ®åå ¸sys_IDType */ @ApiModelProperty("ç§»æ¤äººè¯ä»¶ç±»å æ ¹æ®åå ¸sys_IDType") @Excel(name = "ç§»æ¤äººè¯ä»¶ç±»å æ ¹æ®åå ¸sys_IDType") private Long idcardtype; /** ç§»æ¤äººè¯ä»¶å·ç */ /** * ç§»æ¤äººè¯ä»¶å·ç */ @ApiModelProperty("ç§»æ¤äººè¯ä»¶å·ç ") @Excel(name = "ç§»æ¤äººè¯ä»¶å·ç ") private String idcardno; /** ç§»æ¤äººå¹´é¾ */ /** * ç§»æ¤äººå¹´é¾ */ @ApiModelProperty("ç§»æ¤äººå¹´é¾") @Excel(name = "ç§»æ¤äººå¹´é¾") private Long age; /** ç§»æ¤äººå¹´é¾åä½ æ ¹æ®åå ¸sys_AgeUnit */ /** * ç§»æ¤äººå¹´é¾åä½ æ ¹æ®åå ¸sys_AgeUnit */ @ApiModelProperty("ç§»æ¤äººå¹´é¾åä½ æ ¹æ®åå ¸sys_AgeUnit") @Excel(name = "ç§»æ¤äººå¹´é¾åä½ æ ¹æ®åå ¸sys_AgeUnit") private String ageunit; /** ç§»æ¤äººåºçæ¥æ */ /** * ç§»æ¤äººåºçæ¥æ */ @ApiModelProperty("ç§»æ¤äººåºçæ¥æ") @Excel(name = "ç§»æ¤äººåºçæ¥æ") private String birthday; /** ç§»æ¤äººèç³»çµè¯ */ /** * ç§»æ¤äººèç³»çµè¯ */ @ApiModelProperty("ç§»æ¤äººèç³»çµè¯") @Excel(name = "ç§»æ¤äººèç³»çµè¯") private String phone; /** ç§»æ¤äººç°ä½å°å */ /** * ç§»æ¤äººç°ä½å°å */ @ApiModelProperty("ç§»æ¤äººç°ä½å°å") @Excel(name = "ç§»æ¤äººç°ä½å°å") private String residenceaddress; /** ç§»æ¤äººç°ä½å°åç代ç */ /** * ç§»æ¤äººç°ä½å°åç代ç */ @ApiModelProperty("ç§»æ¤äººç°ä½å°åç代ç ") @Excel(name = "ç§»æ¤äººç°ä½å°åç代ç ") private String residenceprovince; /** ç§»æ¤äººç°ä½å°åçåç§° */ /** * ç§»æ¤äººç°ä½å°åçåç§° */ @ApiModelProperty("ç§»æ¤äººç°ä½å°åçåç§°") @Excel(name = "ç§»æ¤äººç°ä½å°åçåç§°") private String residenceprovincename; /** ç§»æ¤äººå¸ç¼å· æ ¹æ®è¡æ¿åºå表 */ /** * ç§»æ¤äººå¸ç¼å· æ ¹æ®è¡æ¿åºå表 */ @ApiModelProperty("ç§»æ¤äººå¸ç¼å· æ ¹æ®è¡æ¿åºå表") @Excel(name = "ç§»æ¤äººå¸ç¼å· æ ¹æ®è¡æ¿åºå表") private String residencecity; /** ç§»æ¤äººå¸åç§° */ /** * ç§»æ¤äººå¸åç§° */ @ApiModelProperty("ç§»æ¤äººå¸åç§°") @Excel(name = "ç§»æ¤äººå¸åç§°") private String residencecityname; /** ç§»æ¤äººæå±è¡éï¼éï¼æ ¹æ®è¡æ¿åºå表 */ /** * ç§»æ¤äººæå±è¡éï¼éï¼æ ¹æ®è¡æ¿åºå表 */ @ApiModelProperty("ç§»æ¤äººæå±è¡éï¼éï¼æ ¹æ®è¡æ¿åºå表") @Excel(name = "ç§»æ¤äººæå±è¡é", readConverterExp = "é=") private String residencetown; /** ç§»æ¤äººæå±è¡éï¼éï¼åç§° */ /** * ç§»æ¤äººæå±è¡éï¼éï¼åç§° */ @ApiModelProperty("ç§»æ¤äººæå±è¡éï¼éï¼åç§°") @Excel(name = "ç§»æ¤äººæå±è¡é", readConverterExp = "é=") private String residencetownname; /** ç§»æ¤äººç¤¾åºï¼æï¼ç¼å· æ ¹æ®è¡æ¿åºå表 */ /** * ç§»æ¤äººç¤¾åºï¼æï¼ç¼å· æ ¹æ®è¡æ¿åºå表 */ @ApiModelProperty("ç§»æ¤äººç¤¾åºï¼æï¼ç¼å· æ ¹æ®è¡æ¿åºå表") @Excel(name = "ç§»æ¤äººç¤¾åº", readConverterExp = "æ=") private String residencecommunity; /** ç§»æ¤äººç¤¾åºï¼æï¼åç§° */ /** * ç§»æ¤äººç¤¾åºï¼æï¼åç§° */ @ApiModelProperty("ç§»æ¤äººç¤¾åºï¼æï¼åç§°") @Excel(name = "ç§»æ¤äººç¤¾åº", readConverterExp = "æ=") private String residencecommunityname; /** ç§»æ¤äººæå±åºåç¼å· æ ¹æ®è¡æ¿åºå表 */ /** * ç§»æ¤äººæå±åºåç¼å· æ ¹æ®è¡æ¿åºå表 */ @ApiModelProperty("ç§»æ¤äººæå±åºåç¼å· æ ¹æ®è¡æ¿åºå表") @Excel(name = "ç§»æ¤äººæå±åºåç¼å· æ ¹æ®è¡æ¿åºå表") private String residencecountycode; /** ç§»æ¤äººæå±åºååç§° */ /** * ç§»æ¤äººæå±åºååç§° */ @ApiModelProperty("ç§»æ¤äººæå±åºååç§°") @Excel(name = "ç§»æ¤äººæå±åºååç§°") private String residencecountyname; /** * ç§»æ¤äººæå±åºååç§° */ @ApiModelProperty("ç§»æ¤äººæå±åºååç§°") @Excel(name = "ç§»æ¤äººæå±åºååç§°") private String caseno; } ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
@@ -114,5 +114,15 @@ @Excel(name = "åè½å»¶è¿æ§æ¢å¤ï¼åè§sys_0_1") private String isdgf; /** åè½å»¶è¿æ§æ¢å¤ï¼åè§sys_0_1 */ @ApiModelProperty("åè½å»¶è¿æ§æ¢å¤ï¼åè§sys_0_1") @Excel(name = "åè½å»¶è¿æ§æ¢å¤ï¼åè§sys_0_1") private String name; /** åè½å»¶è¿æ§æ¢å¤ï¼åè§sys_0_1 */ @ApiModelProperty("åè½å»¶è¿æ§æ¢å¤ï¼åè§sys_0_1") @Excel(name = "åè½å»¶è¿æ§æ¢å¤ï¼åè§sys_0_1") private String caseno; } ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java
@@ -364,7 +364,7 @@ private Date applyTime; @ApiModelProperty("æ°æ®æ¯å¦è¿å ¥shared表 0ï¼å¦ 1ï¼æ¯") private Integer uploadStates = 0; private Integer uploadStates; /** * æ¥ç¨è®°å½æå ¥å享表失败 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java
@@ -47,4 +47,7 @@ @Excel(name = "æµç¨ç»è®º 1ï¼éè¿ï¼2ï¼é©³åï¼") private Integer flowconclusion; List<String> fileNames; String outputFile; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java
@@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.project.domain.ServiceDonatecomporgan; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; @Data public class DonationCompletionVO { @@ -18,6 +20,7 @@ private String donationcategory; private String recordstate; private String name; private String caseno; private String sex; private Long idcardtype; private String idcardno; @@ -88,4 +91,6 @@ @ApiModelProperty("ç»æ¢æ¡ä¾ï¼0å¼å¯ï¼1ç»æ¢ é»è®¤å¼ï¼0") private Integer terminationCase; private List<ServiceDonatecomporgan> serviceDonatecomporganList; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java
@@ -12,6 +12,7 @@ private String donorno; private String donationcategory; private String name; private String caseno; private String sex; private Long idcardtype; private String idcardno; ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
@@ -2,22 +2,27 @@ import java.util.List; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.project.domain.ServiceDonatebaseinfo; import com.ruoyi.project.domain.ServiceDonateorgan; import com.ruoyi.project.domain.vo.DonationWitnessVO; import com.ruoyi.project.domain.vo.TimeVO; import com.ruoyi.project.domain.vo.WitnessStatsVO; import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper; import com.ruoyi.project.mapper.ServiceDonateorganMapper; 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 java.util.ArrayList; import java.util.Map; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.project.mapper.ServiceDonationwitnessMapper; import com.ruoyi.project.domain.ServiceDonationwitness; @@ -25,13 +30,12 @@ /** * æç®è§è¯Serviceä¸å¡å±å¤ç * * * @author ruoyi * @date 2021-11-17 */ @Service public class ServiceDonationwitnessServiceImpl extends ServiceImpl<ServiceDonationwitnessMapper, ServiceDonationwitness> implements IServiceDonationwitnessService { public class ServiceDonationwitnessServiceImpl extends ServiceImpl<ServiceDonationwitnessMapper, ServiceDonationwitness> implements IServiceDonationwitnessService { @Autowired @@ -40,23 +44,26 @@ @Autowired ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper; @Autowired ServiceDonateorganServiceImpl serviceDonateorganService; /** * æ¥è¯¢æç®è§è¯å表 * * * @param serviceDonationwitness æç®è§è¯ * @return æç®è§è¯ */ @Override public List<ServiceDonationwitness> queryList(ServiceDonationwitness serviceDonationwitness) { LambdaQueryWrapper<ServiceDonationwitness> wrappers = Wrappers.lambdaQuery(); if (StringUtils.isNotBlank(serviceDonationwitness.getDonorno())){ wrappers.eq(ServiceDonationwitness::getDonorno ,serviceDonationwitness.getDonorno()); if (StringUtils.isNotBlank(serviceDonationwitness.getDonorno())) { wrappers.eq(ServiceDonationwitness::getDonorno, serviceDonationwitness.getDonorno()); } if (StringUtils.isNotBlank(serviceDonationwitness.getGainhospitalname())){ wrappers.like(ServiceDonationwitness::getGainhospitalname ,serviceDonationwitness.getGainhospitalname()); if (StringUtils.isNotBlank(serviceDonationwitness.getGainhospitalname())) { wrappers.like(ServiceDonationwitness::getGainhospitalname, serviceDonationwitness.getGainhospitalname()); } if (StringUtils.isNotBlank(serviceDonationwitness.getOperationdoctor())){ wrappers.eq(ServiceDonationwitness::getOperationdoctor ,serviceDonationwitness.getOperationdoctor()); if (StringUtils.isNotBlank(serviceDonationwitness.getOperationdoctor())) { wrappers.eq(ServiceDonationwitness::getOperationdoctor, serviceDonationwitness.getOperationdoctor()); } return this.list(wrappers); } @@ -65,18 +72,18 @@ public List<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO) { SysUser user = SecurityUtils.getLoginUser().getUser(); List <SysRole> l = user.getRoles(); List<SysRole> l = user.getRoles(); Boolean b = false; for(SysRole r : l){ if(r.getRoleId().longValue() == 3){ for (SysRole r : l) { if (r.getRoleId().longValue() == 3) { b = true; } } if(b){ if (b) { donationWitnessVO.setBasecreateby(user.getUserName()); } return serviceDonationwitnessMapper.selectVOList(donationWitnessVO); List<DonationWitnessVO> donationWitnessVOS = serviceDonationwitnessMapper.selectVOList(donationWitnessVO); return donationWitnessVOS; } @Override @@ -111,63 +118,63 @@ int XONumber = 0; int XABNumber = 0; int DothersNumber = 0; for(ServiceDonationwitness l : list){ for (ServiceDonationwitness l : list) { ServiceDonatebaseinfo serviceDonatebaseinfo = serviceDonatebaseinfoMapper.getById(l.getInfoid()); if(serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("1")){ if (serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("1")) { manNumber++; } if(serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("2")){ if (serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("2")) { womanNumber++; } if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("0")){ if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("0")) { D0Number++; } if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("1")){ if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("1")) { D1Number++; } if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("2")){ if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("2")) { D2Number++; } if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("3")){ if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("3")) { D3Number++; } if(serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("4")){ if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("4")) { D4Number++; } if(l.getDonationcategory() != null && l.getDonationcategory().equals("DBD")){ if (l.getDonationcategory() != null && l.getDonationcategory().equals("DBD")) { DBDNumber++; } if(l.getDonationcategory() != null && l.getDonationcategory().equals("DCD")){ if (l.getDonationcategory() != null && l.getDonationcategory().equals("DCD")) { DCDNumber++; } if(l.getDonationcategory() != null && l.getDonationcategory().equals("DBCD")){ if (l.getDonationcategory() != null && l.getDonationcategory().equals("DBCD")) { DBCDNumber++; } if(serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 0 && serviceDonatebaseinfo.getAge() <= 17){ if (serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 0 && serviceDonatebaseinfo.getAge() <= 17) { A1Number++; } if(serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 18 && serviceDonatebaseinfo.getAge() <= 48){ if (serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 18 && serviceDonatebaseinfo.getAge() <= 48) { A2Number++; } if(serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 49 && serviceDonatebaseinfo.getAge() <= 69){ if (serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 49 && serviceDonatebaseinfo.getAge() <= 69) { A3Number++; } if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("1")){ if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("1")) { XANumber++; } if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("2")){ if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("2")) { XBNumber++; } if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("3")){ if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("3")) { XONumber++; } if(serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("4")){ if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("4")) { XABNumber++; } } DothersNumber = total - D0Number - D1Number - D2Number - D3Number - D4Number; if(total == 0){ if (total == 0) { w.setManRate(0); w.setWomanRate(0); w.setD0Rate(0); @@ -187,9 +194,7 @@ w.setXORate(0); w.setXABRate(0); } else{ } else { w.setManRate((double) manNumber / (double) total); w.setWomanRate((double) womanNumber / (double) total); w.setD0Rate((double) D0Number / (double) total); ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml
@@ -39,6 +39,7 @@ <result property="createTime" column="create_time"/> <result property="updateBy" column="update_by"/> <result property="updateTime" column="update_time"/> <result property="caseno" column="caseno"/> </resultMap> <sql id="selectServiceDonatecomporganVo"> @@ -53,6 +54,7 @@ TransplantHospitalNo, TransplantHospitalName, Name, caseno, Sex, IDCardType, IDCardNo, @@ -98,6 +100,7 @@ </if> <if test="name != null and name != ''">and Name like concat('%', #{name}, '%')</if> <if test="sex != null ">and Sex = #{sex}</if> <if test="caseno != null ">and caseno = #{caseno}</if> <if test="idcardtype != null ">and IDCardType = #{idcardtype}</if> <if test="idcardno != null and idcardno != ''">and IDCardNo = #{idcardno}</if> <if test="age != null ">and Age = #{age}</if> ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
@@ -27,6 +27,8 @@ <result property="createTime" column="create_time"/> <result property="updateBy" column="update_by"/> <result property="updateTime" column="update_time"/> <result property="name" column="name"/> <result property="caseno" column="caseno"/> </resultMap> <sql id="selectServiceDonationwitnessorganVo"> @@ -52,6 +54,8 @@ create_by, create_time, update_by, caseno, name, update_time from service_donationwitnessorgan </sql> ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -677,6 +677,7 @@ } catch (Exception e) { ServiceFund serviceFund2 = new ServiceFund(); serviceFund2.setId(serviceFund1.getId()); serviceFund2.setUploadStates(1); serviceFund2.setNotes("æå ¥fundå享表失败"); serviceFundService.updateById(serviceFund2); }