From c2e58f7e1554cb23cb63877517b072942735bfdf Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 01 三月 2024 19:26:51 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java        |    4 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java                 |   10 
 ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java                           |  107 +++++++++
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml                 |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java |    1 
 ruoyi-admin/src/main/resources/application.yml                                                        |   21 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java      |   12 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java      |   11 +
 ruoyi-common/pom.xml                                                                                  |   30 ++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java     |   81 +++---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/PdfMergeController.java                    |  144 +++++++++++++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java                      |  131 +++++++++--
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                                          |    1 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java                                 |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java                              |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java       |   30 +-
 ruoyi-project/src/main/java/com/ruoyi/project/domain/PdfMegerVO.java                                  |   29 ++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java                     |    5 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java                        |    1 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml                      |    3 
 20 files changed, 524 insertions(+), 106 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/PdfMergeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/PdfMergeController.java
new file mode 100644
index 0000000..12e3c92
--- /dev/null
+++ b/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;
+
+    /**
+     * 鍥剧墖銆乸df銆佹枃妗e悎骞舵垚pdf
+     */
+    @ApiOperation("鍥剧墖銆乸df銆佹枃妗e悎骞舵垚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<>();
+            //鐢ㄤ簬璁板綍璇ヤ复鏃秔df鏂囦欢鏄惁鍒犻櫎
+            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;
+    }
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
index fc55bec..f2ca5ea 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
+++ b/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;
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java
index 0c1532c..bb29157 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java
+++ b/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;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
index 706b61d..a0ae668 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
+++ b/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) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java
index f69cdb2..63a95a0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java
+++ b/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);
     }
 
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 13c3ed3..bbad96d 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,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;
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 8f8fce1..2ab7106 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/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:
-    # 鍦板潃銆佸瘑鐮併�佺鍙o紙榛樿涓�6379锛夛細鍖婚櫌鐜
-    host: 129.88.242.37
-    password: jqserver
-    port: 6379
+    #    # 鍦板潃銆佸瘑鐮併�佺鍙o紙榛樿涓�6379锛夛細鍖婚櫌鐜
+    #    host: 129.88.242.37
+    #    password: jqserver
+    #    port: 6379
 
-#    # 鍦板潃銆佸瘑鐮併�佺鍙o紙榛樿涓�6379锛夛細寮�鍙戠幆澧�
-#    host: 116.62.18.175
-#    password: Smartor
-#    port: 6020
+    # 鍦板潃銆佸瘑鐮併�佺鍙o紙榛樿涓�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
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index de8dcca..9331061 100644
--- a/ruoyi-common/pom.xml
+++ b/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>
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java
new file mode 100644
index 0000000..f79b0e2
--- /dev/null
+++ b/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;
+
+    /**
+     * 灏嗗浘鐗囧悎鎴恜df
+     */
+    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杞琍DF
+     *
+     * @param inputPath
+     * @param outputPath
+     */
+    public Boolean wordtoPdf(String inputPath, String outputPath) {
+        Document doc = new Document();
+        //鍔犺浇Word
+        doc.loadFromFile(inputPath);
+        //淇濆瓨涓篜DF鏍煎紡
+        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;
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/PdfMegerVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/PdfMegerVO.java
new file mode 100644
index 0000000..e36aa20
--- /dev/null
+++ b/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;
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
index db861ed..c601050 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
+++ b/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;
+
+
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
index ea15913..27a7947 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
+++ b/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;
+
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java
index bbac545..2ca2cbb 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java
+++ b/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;
 
     /**
      * 鏉ョ敤璁板綍鎻掑叆鍒嗕韩琛ㄥけ璐�
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java
index 84cecbb..519c41d 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/CheckFundVO.java
+++ b/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;
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java
index 8faa482..5106455 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationCompletionVO.java
+++ b/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;
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java
index 288b2df..0a14c28 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationWitnessVO.java
+++ b/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;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
index a5136dc..bd8cba8 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
+++ b/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);
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml
index 4f6387d..83c2ffa 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml
+++ b/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>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
index 3e021ca..175dc8b 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
+++ b/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>
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 13ed330..eaae727 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/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);
             }

--
Gitblit v1.9.3