From 054cfdd53b732d2f60627fc9ac7cf92233d3c200 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 17 十一月 2023 16:17:56 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BaseAnnextypeController.java                |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java            |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java         |    3 
 ruoyi-common/src/main/java/com/ruoyi/common/config/IsAspectAspect.java                                 |   55 ++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java |    3 
 ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java                                         |   18 +
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml                       |  222 +++++++++++++++---------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceExpertexpenseController.java         |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java                  |   13 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java        |   14 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java  |    1 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java           |    1 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java       |    1 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java           |   40 +++
 ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml                            |   19 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java                                  |    8 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java    |   34 ++-
 ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml                                  |    4 
 ruoyi-common/src/main/java/com/ruoyi/common/annotation/NotRepeatCommit.java                            |   17 +
 ruoyi-common/src/main/java/com/ruoyi/common/utils/ChineseUtils.java                                    |   15 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceOrganallocationController.java       |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java        |    1 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java     |    5 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java                 |   13 +
 24 files changed, 367 insertions(+), 138 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BaseAnnextypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BaseAnnextypeController.java
index 3443496..cdcf9b2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BaseAnnextypeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BaseAnnextypeController.java
@@ -1,6 +1,7 @@
 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.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -81,7 +82,7 @@
     @PreAuthorize("@ss.hasPermi('system:annextype:add')")
     @Log(title = "鎹愮尞闄勪欢", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    @RepeatSubmit
+     @RepeatSubmit
     public AjaxResult add(@RequestBody BaseAnnextype baseAnnextype) {
         log.info("鏂板鎹愮尞闄勪欢{}锛�", baseAnnextype);
 
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 3ec5767..e5f80e1 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
@@ -1,6 +1,7 @@
 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;
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 05667b9..6c86822 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
@@ -1,6 +1,7 @@
 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.core.controller.BaseController;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java
index 99a3912..bbef2d5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java
@@ -1,6 +1,7 @@
 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.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
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 c28d50e..e622cbf 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
@@ -4,6 +4,7 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.enums.OrganEnum;
 import com.ruoyi.common.utils.StringUtils;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
index 8f3537b..af6b309 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
@@ -3,6 +3,7 @@
 import java.util.Arrays;
 import java.util.List;
 
+import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.project.domain.vo.EthicalReviewVO;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -87,7 +88,7 @@
     //@PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:add')")
     @Log(title = "浼︾悊瀹℃煡涓撳鎰忚", businessType = BusinessType.INSERT)
     @PostMapping
-    @RepeatSubmit
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult add(@RequestBody ServiceEthicalreviewopinions serviceEthicalreviewopinions)
     {
         return toAjax(serviceEthicalreviewopinionsService.save(serviceEthicalreviewopinions));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceExpertexpenseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceExpertexpenseController.java
index ee85f90..04321d8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceExpertexpenseController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceExpertexpenseController.java
@@ -2,6 +2,8 @@
 
 import java.util.Arrays;
 import java.util.List;
+
+import com.ruoyi.common.annotation.NotRepeatCommit;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -79,7 +81,7 @@
     @ApiOperation("鏂板璐圭敤鐢宠涓�")
     @Log(title = "璐圭敤鐢宠涓�", businessType = BusinessType.INSERT)
     @PostMapping
-    @RepeatSubmit
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult add(@RequestBody ServiceExpertexpense serviceExpertexpense)
     {
         return toAjax(serviceExpertexpenseService.save(serviceExpertexpense));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
index c4f23c9..b4e3261 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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;
@@ -481,6 +482,7 @@
      * 瀹℃牳璐圭敤
      */
     @ApiOperation("瀹℃牳璐圭敤")
+    @RepeatSubmit
 //    @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER)
     @PostMapping("/checkfund")
     public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
@@ -2099,6 +2101,7 @@
     /**
      * 璐圭敤绫诲瀷璁℃暟
      */
+//    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     @ApiOperation("璐圭敤绫诲瀷璁℃暟")
     @GetMapping(value = "/countItem/{infoid}/{itemid}")
     public AjaxResult countItem(@PathVariable Long infoid, @PathVariable Long itemid) {
@@ -2123,10 +2126,10 @@
     /**
      * 鍚堣涓◣
      */
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     @ApiOperation("鍚堣涓◣")
     @Log(title = "鍚堣涓◣", businessType = BusinessType.INSERT)
     @PostMapping("/totaltax")
-    @RepeatSubmit
     public AjaxResult totaltax(@RequestBody TotalTaxVO totalTaxVO) {
         Map<String, List<ServiceFunddetailExcel>> totaltax = serviceFundService.totaltax(totalTaxVO);
         if (ObjectUtils.isEmpty(totaltax)) {
@@ -2139,7 +2142,13 @@
             key2 = key;
         }
         ExcelUtil<ServiceFunddetailExcel> util = new ExcelUtil<ServiceFunddetailExcel>(ServiceFunddetailExcel.class);
-        return AjaxResult.success(util.exportExcel(totaltax.get(key2), key2));
+        AjaxResult ajaxResult = util.exportExcel(totaltax.get(key2), key2);
+        String msg = (String) ajaxResult.get("msg");
+
+        Map dataMap = new HashMap();
+        dataMap.put("downloadUrl", "/profile/download/" + msg);
+
+        return AjaxResult.success(dataMap);
 
 
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
index 8e0fec5..dccd9ee 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
@@ -1,6 +1,7 @@
 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.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -13,6 +14,7 @@
 import com.ruoyi.project.service.IServiceFunddetailService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -25,6 +27,7 @@
  * @author ruoyi
  * @date 2022-01-25
  */
+@Slf4j
 @Api("璐圭敤鐢宠鏄庣粏")
 @RestController
 @RequestMapping("/project/funddetail")
@@ -76,7 +79,7 @@
     //@PreAuthorize("@ss.hasPermi('project:funddetail:add')")
     @Log(title = "璐圭敤鐢宠鏄庣粏", businessType = BusinessType.INSERT)
     @PostMapping
-    @RepeatSubmit
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult add(@RequestBody ServiceFunddetail serviceFunddetail) {
         return toAjax(serviceFunddetailService.save(serviceFunddetail));
     }
@@ -88,8 +91,9 @@
     //@PreAuthorize("@ss.hasPermi('project:funddetail:edit')")
     @Log(title = "璐圭敤鐢宠鏄庣粏", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    @RepeatSubmit
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult edit(@RequestBody ServiceFunddetail serviceFunddetail) {
+        log.info("淇敼鐨勬暟鎹俊鎭細{}", serviceFunddetail);
         return toAjax(serviceFunddetailService.updateById(serviceFunddetail));
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
index ff622ef..9f8b375 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
@@ -3,6 +3,7 @@
 import java.util.Arrays;
 import java.util.List;
 
+import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -90,7 +91,7 @@
     //@PreAuthorize("@ss.hasPermi('project:medicalevaluation:add')")
     @Log(title = "鍖诲璇勪及", businessType = BusinessType.INSERT)
     @PostMapping
-    @RepeatSubmit
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult add(@RequestBody ServiceMedicalevaluation serviceMedicalevaluation) {
         return toAjax(serviceMedicalevaluationService.save(serviceMedicalevaluation));
     }
@@ -102,7 +103,7 @@
     //@PreAuthorize("@ss.hasPermi('project:medicalevaluation:edit')")
     @Log(title = "鍖诲璇勪及", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    @RepeatSubmit
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult edit(@RequestBody ServiceMedicalevaluation serviceMedicalevaluation) {
         List<ServiceMedicalevaluation> list = serviceMedicalevaluationService.queryList(serviceMedicalevaluation);
         if (CollectionUtils.isEmpty(list)) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceOrganallocationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceOrganallocationController.java
index bac82e9..24d25be 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceOrganallocationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceOrganallocationController.java
@@ -1,6 +1,7 @@
 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.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -75,7 +76,7 @@
     //@PreAuthorize("@ss.hasPermi('project:organallocation:add')")
     @Log(title = "鍣ㄥ畼鍒嗛厤", businessType = BusinessType.INSERT)
     @PostMapping
-    @RepeatSubmit
+    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult add(@RequestBody ServiceOrganallocation serviceOrganallocation) {
         return toAjax(serviceOrganallocationService.save(serviceOrganallocation));
     }
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 89a96cb..9d64cfc 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,6 +1,7 @@
 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;
@@ -220,7 +221,7 @@
     //@PreAuthorize("@ss.hasPermi('project:reimbursement:add')")
     @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.INSERT)
     @PostMapping
-    @RepeatSubmit
+	@RepeatSubmit
     @Options(useGeneratedKeys = true, keyProperty = "id")
     public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) {
         if (!Objects.isNull(serviceReimbursement)) {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/NotRepeatCommit.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/NotRepeatCommit.java
new file mode 100644
index 0000000..7d0a48e
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/NotRepeatCommit.java
@@ -0,0 +1,17 @@
+package com.ruoyi.common.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 褰撳墠鏁版嵁锛屾槸鍚﹂噸澶嶆彁浜�
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface NotRepeatCommit {
+    String key() default "not_repeat_commit:";
+
+    long value() default 10000;
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/IsAspectAspect.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/IsAspectAspect.java
new file mode 100644
index 0000000..a98f658
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/IsAspectAspect.java
@@ -0,0 +1,55 @@
+package com.ruoyi.common.config;
+
+import com.ruoyi.common.annotation.NotRepeatCommit;
+import com.ruoyi.common.filter.RepeatedlyRequestWrapper;
+import com.ruoyi.common.utils.http.HttpHelper;
+import org.apache.logging.log4j.util.Strings;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.concurrent.TimeUnit;
+
+@Aspect
+@Component
+public class IsAspectAspect {
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Around("@annotation(notRepeat)")
+    public Object before(ProceedingJoinPoint point, NotRepeatCommit notRepeat) {
+        String nowParams = "";
+
+        String key = getKey(notRepeat.key(), point.getArgs());
+        if (Strings.isNotBlank(key)) {
+            // 涓嶅瓨鍦� 灏辨坊鍔�  缂撳瓨 璁剧疆 鏃堕棿
+            if (!redisTemplate.opsForValue().setIfAbsent(key, "1", notRepeat.value(), TimeUnit.MILLISECONDS)) {
+                throw new RuntimeException("璇峰嬁閲嶅鎻愪氦");
+            }
+        }
+
+        try {
+            return point.proceed();
+        } catch (Throwable throwable) {
+            throw new RuntimeException("鏈嶅姟鍣ㄥ紓甯�");
+        }
+    }
+
+    /**
+     * key 鐢熸垚绛栫暐
+     *
+     * @param key  key琛ㄨ揪寮�
+     * @param args 鍙傛暟
+     * @return 鐢熸垚鐨刱ey
+     */
+    private String getKey(String key, Object[] args) {
+        for (int i = 0; i < args.length; i++) {
+            key = key.replace("arg[" + i + "]", args[i].toString());
+        }
+        return key;
+    }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java
index 846a0a0..2389e95 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java
@@ -5,6 +5,7 @@
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
+import lombok.extern.slf4j.Slf4j;
 
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
@@ -16,6 +17,7 @@
  *
  * @author ls
  */
+@Slf4j
 public class TaxtUtils {
     /**
      * 鍒嗛殧绗�
@@ -67,35 +69,39 @@
     public static String getTaxationBefore(BigDecimal money) {
         //褰揦<=800鏃讹紝涓◣T=0
         BigDecimal taxMoney = new BigDecimal(0.0);
+        if (money.doubleValue() <= 800) {
+            taxMoney = money;
+        }
 //绗竴涓弬鏁版槸闄ゆ暟锛岀浜屼釜鍙傛暟浠h〃淇濈暀鍑犱綅灏忔暟锛岀涓変釜浠h〃鐨勬槸浣跨敤鐨勬ā寮�
         if (money.doubleValue() > 800 && money.doubleValue() <= 3360) {
-            taxMoney =  money.subtract(new BigDecimal(160)).divide(new BigDecimal(0.8),2,BigDecimal.ROUND_UP);
+            taxMoney = money.subtract(new BigDecimal(160)).divide(new BigDecimal(0.8), 2, BigDecimal.ROUND_UP);
         }
 
         if (money.doubleValue() > 3360 && money.doubleValue() <= 21000) {
-            taxMoney = money.divide(new BigDecimal(0.84),2,BigDecimal.ROUND_DOWN);
+            taxMoney = money.divide(new BigDecimal(0.84), 2, BigDecimal.ROUND_DOWN);
         }
 
         if (money.doubleValue() > 21000 && money.doubleValue() <= 40000) {
             money = money.subtract(new BigDecimal(2000));
-            taxMoney = money.divide(new BigDecimal(0.76),2,BigDecimal.ROUND_DOWN);
+            taxMoney = money.divide(new BigDecimal(0.76), 2, BigDecimal.ROUND_DOWN);
         }
 
         if (money.doubleValue() > 40000) {
             money = money.subtract(new BigDecimal(7000));
-            taxMoney = money.divide(new BigDecimal(0.68),2,BigDecimal.ROUND_DOWN);
+            taxMoney = money.divide(new BigDecimal(0.68), 2, BigDecimal.ROUND_DOWN);
         }
 
 
         DecimalFormat decimalFormat = new DecimalFormat("#.00");
         String format = decimalFormat.format(taxMoney);
+        log.info("绋庡墠閲戦涓猴細{}", format);
         return format;
     }
 
 
     public static void main(String[] args) {
-        String taxation = getTaxation(new BigDecimal(21000));
-        String taxationBefore = getTaxationBefore(new BigDecimal(52000));
+        String taxation = getTaxation(new BigDecimal(400));
+        String taxationBefore = getTaxationBefore(new BigDecimal(400));
 
 
         System.out.println(taxation + "        " + taxationBefore);
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ChineseUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ChineseUtils.java
index e978d6c..cd1b79e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ChineseUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ChineseUtils.java
@@ -9,7 +9,18 @@
      * @return
      */
     public static boolean isChinese(String str) {
-        String regex = "[\\u4e00-\\u9fa5]+";
-        return str.matches(regex);
+        for (int i = 0; i < str.length(); i++) {
+            char c = str.charAt(i);
+            if (isChineseCharacter(c)) {
+                return true;
+            }
+        }
+        return false;
     }
+
+    private static boolean isChineseCharacter(char c) {
+        // 姹夊瓧鐨刄nicode缂栫爜鑼冨洿鏄�0x4E00鍒�0x9FA5
+        return c >= 0x4E00 && c <= 0x9FA5;
+    }
+
 }
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 e7a2428..adef112 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
@@ -347,5 +347,13 @@
     @ApiModelProperty("鏄惁绠楃◣锛�0鏈畻绋庯紝1宸茬畻绋�")
     private Integer istax;
 
+
+    /**
+     * 璁$畻绋庤垂鏃堕棿
+     */
+    @ApiModelProperty("璁$畻绋庤垂鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date fundtaxtime;
+
 }
 
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..83f25d9 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
@@ -11,6 +11,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.ChineseUtils;
@@ -138,8 +139,17 @@
     }
 
     @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);
+        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());
@@ -669,7 +679,6 @@
     @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();
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
index 122dc77..079fc2e 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
@@ -9,6 +9,7 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.tax.PerformanceTaxtUtils;
 import com.ruoyi.common.tax.TaxtUtils;
 import com.ruoyi.common.utils.bean.DtoConversionUtils;
@@ -16,6 +17,7 @@
 import com.ruoyi.project.domain.vo.*;
 import com.ruoyi.project.mapper.ServiceFundMapper;
 import lombok.extern.flogger.Flogger;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,6 +37,7 @@
  * @author ruoyi
  * @date 2022-01-25
  */
+@Slf4j
 @Service
 public class ServiceFunddetailServiceImpl extends ServiceImpl<ServiceFunddetailMapper, ServiceFunddetail> implements IServiceFunddetailService {
     protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -260,6 +263,15 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean calculateTax(List<ServiceFunddetail> serviceFunddetails) {
+        if (CollectionUtils.isEmpty(serviceFunddetails)) {
+            throw new BaseException("绠楃◣鏉′欢涓虹┖锛岃妫�鏌ュ悗锛屽啀杩涜璁$畻");
+        }
+        //杩欎釜鏄负浜嗚幏鍙杅und_tax_time
+        Long fundid = serviceFunddetails.get(0).getFundid();
+        log.info("绠楃◣鐨刦undid鐨勫�间负锛歿}", fundid);
+        ServiceFund serviceFund1 = serviceFundMapper.selectById(fundid);
+        log.info("fund琛ㄧ殑fundtextime鍊间负锛歿}", serviceFund1.getFundtaxtime());
+
         //鐢ㄤ簬涓存椂淇濆瓨宸茬粡绠楀ソ鐨�"璐圭敤璇︽儏鏁版嵁"
         List<ServiceFunddetail> temporarySave = new ArrayList<>();
 
@@ -283,15 +295,16 @@
 
             //鑾峰彇褰撴湀鐨勭涓�澶�
             Date firstDay = Date.from(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay(ZoneId.systemDefault()).toInstant());
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            String firstDatStr = dateFormat.format(firstDay);
+//            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            String firstDatStr = dateFormat.format(firstDay);
             TaxMoneyByItemEO taxMoneyVO = new TaxMoneyByItemEO();
-
-            taxMoneyVO.setTaxTime(new Date());
+            if (serviceFund1.getFundtaxtime() != null) {
+                taxMoneyVO.setTaxTime(serviceFund1.getFundtaxtime());
+            } else {
+                taxMoneyVO.setTaxTime(new Date());
+            }
             taxMoneyVO.setFirstDay(firstDay);
-//            taxMoneyVO.setApplyType(Long.valueOf(serviceFunddetail.getApplytype()));
             taxMoneyVO.setFundID(serviceFunddetail.getFundid());
-//            taxMoneyVO.setBeneficiaryNo(serviceFunddetail.getBeneficiaryno());
             taxMoneyVO.setIDCard(serviceFunddetail.getIdcardno());
             //鏌ュ嚭绋庡墠銆佺◣銆佺◣鍚庣殑鎬婚锛堜笉鍖呭惈鏈锛�
             TaxMoneySumEO taxSum = serviceFunddetailMapper.getTaxSum(taxMoneyVO);
@@ -338,7 +351,11 @@
                 ServiceFunddetail serviceFunddetail3 = DtoConversionUtils.sourceToTarget(serviceFunddetail, ServiceFunddetail.class);
                 serviceFunddetail3.setTaxamount(taxAmountNow.doubleValue());
                 serviceFunddetail3.setTaxedamount(texdAfterNow.doubleValue());
-                serviceFunddetail3.setTaxTime(new Date());
+                if (ObjectUtils.isEmpty(serviceFund1.getFundtaxtime())) {
+                    serviceFunddetail3.setTaxTime(new Date());
+                } else {
+                    serviceFunddetail3.setTaxTime(serviceFund1.getFundtaxtime());
+                }
                 logger.info("鎵撳嵃绋庡墠serviceFunddetail3鏁版嵁 :{}", serviceFunddetail3);
 
                 // 灏嗚鏉℃暟鎹洿鏂�
@@ -365,7 +382,11 @@
                 ServiceFunddetail serviceFunddetail3 = DtoConversionUtils.sourceToTarget(serviceFunddetail, ServiceFunddetail.class);
                 serviceFunddetail3.setAmount(amountNow.doubleValue());
                 serviceFunddetail3.setTaxamount(tax.doubleValue());
-                serviceFunddetail3.setTaxTime(new Date());
+                if (ObjectUtils.isEmpty(serviceFund1.getFundtaxtime())) {
+                    serviceFunddetail3.setTaxTime(new Date());
+                } else {
+                    serviceFunddetail3.setTaxTime(serviceFund1.getFundtaxtime());
+                }
                 logger.info("鎵撳嵃serviceFunddetail3:{}", serviceFunddetail3);
                 // 灏嗚鏉℃暟鎹洿鏂�
                 updateById(serviceFunddetail3);
@@ -377,6 +398,9 @@
         ServiceFund serviceFund = new ServiceFund();
         serviceFund.setPretaxcost(pretaxcost.doubleValue());
         serviceFund.setId(serviceFunddetails.get(0).getFundid());
+        if (ObjectUtils.isEmpty(serviceFund1.getFundtaxtime())) {
+            serviceFund.setFundtaxtime(new Date());
+        }
         // 1 宸茬畻绋�
         serviceFund.setIstax(1);
         serviceFundMapper.updateById(serviceFund);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
index 2397c4e..b91ddef 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
@@ -7,13 +7,16 @@
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
+import lombok.extern.slf4j.Slf4j;
 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.ServiceMedicalevaluationMapper;
 import com.ruoyi.project.domain.ServiceMedicalevaluation;
@@ -21,13 +24,13 @@
 
 /**
  * 鍖诲璇勪及Service涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2021-11-19
  */
+@Slf4j
 @Service
-public class ServiceMedicalevaluationServiceImpl extends ServiceImpl<ServiceMedicalevaluationMapper, ServiceMedicalevaluation> implements IServiceMedicalevaluationService 
-{
+public class ServiceMedicalevaluationServiceImpl extends ServiceImpl<ServiceMedicalevaluationMapper, ServiceMedicalevaluation> implements IServiceMedicalevaluationService {
 
     @Autowired
     ServiceMedicalevaluationMapper serviceMedicalevaluationMapper;
@@ -35,21 +38,21 @@
 
     /**
      * 鏌ヨ鍖诲璇勪及鍒楄〃
-     * 
+     *
      * @param serviceMedicalevaluation 鍖诲璇勪及
      * @return 鍖诲璇勪及
      */
     @Override
     public List<ServiceMedicalevaluation> queryList(ServiceMedicalevaluation serviceMedicalevaluation) {
         LambdaQueryWrapper<ServiceMedicalevaluation> wrappers = Wrappers.lambdaQuery();
-        if (StringUtils.isNotNull(serviceMedicalevaluation.getId())){
-            wrappers.eq(ServiceMedicalevaluation::getId ,serviceMedicalevaluation.getId());
+        if (StringUtils.isNotNull(serviceMedicalevaluation.getId())) {
+            wrappers.eq(ServiceMedicalevaluation::getId, serviceMedicalevaluation.getId());
         }
-        if (StringUtils.isNotNull(serviceMedicalevaluation.getInfoid())){
-            wrappers.eq(ServiceMedicalevaluation::getInfoid ,serviceMedicalevaluation.getInfoid());
+        if (StringUtils.isNotNull(serviceMedicalevaluation.getInfoid())) {
+            wrappers.eq(ServiceMedicalevaluation::getInfoid, serviceMedicalevaluation.getInfoid());
         }
-        if (StringUtils.isNotBlank(serviceMedicalevaluation.getDonorno())){
-            wrappers.eq(ServiceMedicalevaluation::getDonorno ,serviceMedicalevaluation.getDonorno());
+        if (StringUtils.isNotBlank(serviceMedicalevaluation.getDonorno())) {
+            wrappers.eq(ServiceMedicalevaluation::getDonorno, serviceMedicalevaluation.getDonorno());
         }
         return this.list(wrappers);
     }
@@ -58,17 +61,18 @@
     public List<MedicalEvaluationVO> selectVOList(MedicalEvaluationVO medicalEvaluationVO) {
 
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        List <SysRole> l = user.getRoles();
+        log.info("鐢ㄦ埛鐨勮鑹叉槸锛歿}", user);
+        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) {
             medicalEvaluationVO.setBasecreateby(user.getUserName());
         }
-
+        log.info("selectVOList鐨勫叆鍙傛槸锛歿}", medicalEvaluationVO);
         return serviceMedicalevaluationMapper.selectVOList(medicalEvaluationVO);
     }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
index d0be9a1..72c9c02 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
@@ -153,6 +153,16 @@
     @Transactional
     public Boolean addSharedData(Long id) {
         log.info("addSharedData鏂规硶鐨勫叆鍙俰d :{}", id);
+        //鍏堝垽鏂竴涓媠hare琛ㄦ槸鍚﹀凡缁忔彃鍏�
+        ServiceReimbursementShared reimbursementShared1 = new ServiceReimbursementShared();
+        reimbursementShared1.setReimid(id);
+        reimbursementShared1.setDelFlag(0L);
+        List<ServiceReimbursementShared> serviceReimbursementShareds = sharedService.queryList(reimbursementShared1);
+        if (!CollectionUtils.isEmpty(serviceReimbursementShareds)) {
+            return true;
+        }
+
+        //濡傛灉娌℃湁鎻掑叆锛屽垯璧颁笅闈㈢殑娴佺▼
         ServiceReimbursement serviceReimbursement = serviceReimbursementMapper.selectById(id);
         Map<String, Object> columnMap = new HashMap<>();
         columnMap.put("rbid", id);
@@ -214,8 +224,8 @@
     }
 
     @Override
-    public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE, Integer CHECKSTATUS,String donorname) {
-        return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE, CHECKSTATUS,donorname);
+    public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE, Integer CHECKSTATUS, String donorname) {
+        return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE, CHECKSTATUS, donorname);
     }
 
     @Override
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
index 6f37717..03fbb1b 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -1,65 +1,106 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.mapper.ServiceDonationwitnessMapper">
-    
+
     <resultMap type="com.ruoyi.project.domain.ServiceDonationwitness" id="ServiceDonationwitnessResult">
-        <result property="id"    column="ID"    />
-        <result property="infoid"    column="InfoID"    />
-        <result property="donorno"    column="DonorNo"    />
-        <result property="gainhospitalno"    column="GainHospitalNo"    />
-        <result property="gainhospitalname"    column="GainHospitalName"    />
-        <result property="deathtime"    column="DeathTime"    />
-        <result property="deathreason"    column="DeathReason"    />
-        <result property="deathjudgedocto"    column="DeathJudgeDoctO"    />
-        <result property="deathjudgedoctt"    column="DeathJudgeDoctT"    />
-        <result property="deathjudgeannex"    column="DeathJudgeAnnex"    />
-        <result property="operationbegtime"    column="OperationBegTime"    />
-        <result property="operationendtime"    column="OperationEndTime"    />
-        <result property="operationdoctor"    column="OperationDoctor"    />
-        <result property="isspendremember"    column="IsSpendRemember"    />
-        <result property="isrestoreremains"    column="IsRestoreRemains"    />
-        <result property="rememberannex"    column="RememberAnnex"    />
-        <result property="responsibleuserid"    column="ResponsibleUserID"    />
-        <result property="responsibleusername"    column="ResponsibleUserName"    />
-        <result property="coordinateduserido"    column="CoordinatedUserIDO"    />
-        <result property="coordinatedusernameo"    column="CoordinatedUserNameO"    />
-        <result property="coordinateduseridt"    column="CoordinatedUserIDT"    />
-        <result property="coordinatedusernamet"    column="CoordinatedUserNameT"    />
-        <result property="abdominalaortacannulatime"    column="AbdominalAortaCannulaTime"    />
-        <result property="abdominalaortaperfusiontime"    column="AbdominalAortaPerfusionTime"    />
-        <result property="portalveincannulatime"    column="PortalVeinCannulaTime"    />
-        <result property="portalveinperfusiontime"    column="PortalVeinPerfusionTime"    />
-        <result property="pulmonaryarterycannulatime"    column="PulmonaryArteryCannulaTime"    />
-        <result property="pulmonaryarteryperfusiontime"    column="PulmonaryArteryPerfusionTime"    />
-        <result property="aortacannulatime"    column="AortaCannulaTime"    />
-        <result property="aortaperfusiontime"    column="AortaPerfusionTime"    />
-        <result property="del_flag"    column="del_flag"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="organdonation"    column="OrganDonation"    />
-        <result property="organdonationOther"    column="OrganDonation_Other"    />
-        <result property="donationcategory"    column="DonationCategory"    />
+        <result property="id" column="ID"/>
+        <result property="infoid" column="InfoID"/>
+        <result property="donorno" column="DonorNo"/>
+        <result property="gainhospitalno" column="GainHospitalNo"/>
+        <result property="gainhospitalname" column="GainHospitalName"/>
+        <result property="deathtime" column="DeathTime"/>
+        <result property="deathreason" column="DeathReason"/>
+        <result property="deathjudgedocto" column="DeathJudgeDoctO"/>
+        <result property="deathjudgedoctt" column="DeathJudgeDoctT"/>
+        <result property="deathjudgeannex" column="DeathJudgeAnnex"/>
+        <result property="operationbegtime" column="OperationBegTime"/>
+        <result property="operationendtime" column="OperationEndTime"/>
+        <result property="operationdoctor" column="OperationDoctor"/>
+        <result property="isspendremember" column="IsSpendRemember"/>
+        <result property="isrestoreremains" column="IsRestoreRemains"/>
+        <result property="rememberannex" column="RememberAnnex"/>
+        <result property="responsibleuserid" column="ResponsibleUserID"/>
+        <result property="responsibleusername" column="ResponsibleUserName"/>
+        <result property="coordinateduserido" column="CoordinatedUserIDO"/>
+        <result property="coordinatedusernameo" column="CoordinatedUserNameO"/>
+        <result property="coordinateduseridt" column="CoordinatedUserIDT"/>
+        <result property="coordinatedusernamet" column="CoordinatedUserNameT"/>
+        <result property="abdominalaortacannulatime" column="AbdominalAortaCannulaTime"/>
+        <result property="abdominalaortaperfusiontime" column="AbdominalAortaPerfusionTime"/>
+        <result property="portalveincannulatime" column="PortalVeinCannulaTime"/>
+        <result property="portalveinperfusiontime" column="PortalVeinPerfusionTime"/>
+        <result property="pulmonaryarterycannulatime" column="PulmonaryArteryCannulaTime"/>
+        <result property="pulmonaryarteryperfusiontime" column="PulmonaryArteryPerfusionTime"/>
+        <result property="aortacannulatime" column="AortaCannulaTime"/>
+        <result property="aortaperfusiontime" column="AortaPerfusionTime"/>
+        <result property="del_flag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="organdonation" column="OrganDonation"/>
+        <result property="organdonationOther" column="OrganDonation_Other"/>
+        <result property="donationcategory" column="DonationCategory"/>
     </resultMap>
 
     <sql id="selectServiceDonationwitnessVo">
-        select ID, InfoID, DonorNo, GainHospitalNo, GainHospitalName, DeathTime, DeathReason, DeathJudgeDoctO, DeathJudgeDoctT, DeathJudgeAnnex, OperationBegTime, OperationEndTime, OperationDoctor, IsSpendRemember, IsRestoreRemains, RememberAnnex, ResponsibleUserID, ResponsibleUserName, CoordinatedUserIDO, CoordinatedUserNameO, CoordinatedUserIDT, CoordinatedUserNameT, AbdominalAortaCannulaTime, AbdominalAortaPerfusionTime, PortalVeinCannulaTime, PortalVeinPerfusionTime, PulmonaryArteryCannulaTime, PulmonaryArteryPerfusionTime, AortaCannulaTime, AortaPerfusionTime, del_flag, create_by, create_time, update_by, update_time, OrganDonation, OrganDonation_Other, DonationCategory from service_donationwitness
+        select ID,
+               InfoID,
+               DonorNo,
+               GainHospitalNo,
+               GainHospitalName,
+               DeathTime,
+               DeathReason,
+               DeathJudgeDoctO,
+               DeathJudgeDoctT,
+               DeathJudgeAnnex,
+               OperationBegTime,
+               OperationEndTime,
+               OperationDoctor,
+               IsSpendRemember,
+               IsRestoreRemains,
+               RememberAnnex,
+               ResponsibleUserID,
+               ResponsibleUserName,
+               CoordinatedUserIDO,
+               CoordinatedUserNameO,
+               CoordinatedUserIDT,
+               CoordinatedUserNameT,
+               AbdominalAortaCannulaTime,
+               AbdominalAortaPerfusionTime,
+               PortalVeinCannulaTime,
+               PortalVeinPerfusionTime,
+               PulmonaryArteryCannulaTime,
+               PulmonaryArteryPerfusionTime,
+               AortaCannulaTime,
+               AortaPerfusionTime,
+               del_flag,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               OrganDonation,
+               OrganDonation_Other,
+               DonationCategory
+        from service_donationwitness
     </sql>
 
-    <select id="selectServiceDonationwitnessList" parameterType="com.ruoyi.project.domain.ServiceDonationwitness" resultMap="ServiceDonationwitnessResult">
+    <select id="selectServiceDonationwitnessList" parameterType="com.ruoyi.project.domain.ServiceDonationwitness"
+            resultMap="ServiceDonationwitnessResult">
         <include refid="selectServiceDonationwitnessVo"/>
         <where>
-            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
-            <if test="gainhospitalname != null  and gainhospitalname != ''"> and GainHospitalName like concat('%', #{gainhospitalname}, '%')</if>
-            <if test="operationdoctor != null  and operationdoctor != ''"> and OperationDoctor = #{operationdoctor}</if>
+            <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
+            <if test="gainhospitalname != null  and gainhospitalname != ''">and GainHospitalName like concat('%',
+                #{gainhospitalname}, '%')
+            </if>
+            <if test="operationdoctor != null  and operationdoctor != ''">and OperationDoctor = #{operationdoctor}</if>
         </where>
     </select>
 
     <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.DonationWitnessVO">
-    SELECT
+        SELECT
         `service_donatebaseinfo`.`ID` AS `ID`,
         `service_donatebaseinfo`.`DonorNo` AS `DonorNo`,
         `service_donatebaseinfo`.`DonationCategory` AS `DonationCategory`,
@@ -116,25 +157,34 @@
         `service_donationwitness`.`create_time` AS `createtime`,
         `service_donationwitness`.`update_by` AS `updateby`,
         `service_donationwitness`.`update_time` AS `updatetime`
-    FROM
+        FROM
 
-            `service_donatebaseinfo`
-            LEFT JOIN `service_donationwitness` ON
-                `service_donatebaseinfo`.`ID` = `service_donationwitness`.`InfoID`
-            LEFT JOIN `base_organization` ON
-            `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
+        `service_donatebaseinfo`
+        LEFT JOIN `service_donationwitness` ON
+        `service_donatebaseinfo`.`ID` = `service_donationwitness`.`InfoID`
+        LEFT JOIN `base_organization` ON
+        `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
 
         <where>
-            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
-            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` like concat('%', #{name}, '%')</if>
-            <if test="idcardno != null  and idcardno != ''"> and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
-            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
-            <if test="recordstate != null  and recordstate != ''"> and `service_donatebaseinfo`.`RecordState` = #{recordstate}</if>
-            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by`  = #{basecreateby}</if>
-            <if test="starttime != null "> and `service_donationwitness`.OperationBegTime >= #{starttime} </if>
-            <if test="endtime != null ">  and `service_donationwitness`.OperationBegTime &lt;= #{endtime}</if>
-            <if test="reporterno != null  and reporterno != ''"> and `service_donatebaseinfo`.ReporterNo = #{reporterno}</if>
-            <if test="city != null and city != ''"> and `base_organization`.`City` = #{city}</if>
+            <if test="donorno != null  and donorno != ''">and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''">and `service_donatebaseinfo`.`Name` like concat('%', #{name}, '%')
+            </if>
+            <if test="idcardno != null  and idcardno != ''">and `service_donatebaseinfo`.`IDCardNo` = #{idcardno}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''">and
+                `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}
+            </if>
+            <if test="recordstate != null  and recordstate != ''">and `service_donatebaseinfo`.`RecordState` =
+                #{recordstate}
+            </if>
+            <if test="basecreateby != null  and basecreateby != ''">and `service_donatebaseinfo`.`create_by` =
+                #{basecreateby}
+            </if>
+            <if test="starttime != null ">and `service_donationwitness`.OperationBegTime >= #{starttime}</if>
+            <if test="endtime != null ">and `service_donationwitness`.OperationBegTime &lt;= #{endtime}</if>
+            <if test="reporterno != null  and reporterno != ''">and `service_donatebaseinfo`.ReporterNo =
+                #{reporterno}
+            </if>
+            <if test="city != null and city != ''">and `base_organization`.`City` = #{city}</if>
         </where>
 
         order by `service_donationwitness`.`create_time` desc
@@ -145,20 +195,20 @@
         inner join service_donatebaseinfo b on w.InfoID = b.id
         inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where w.DonationCategory = "DBD"
-        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
-        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
-        <if test="city != null and city != ''"> and o.City = #{city} </if>
-        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+        <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
+        <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''">and o.City = #{city}</if>
+        <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>
     </select>
     <select id="getDCDDonaterNumberThisYear" resultType="java.lang.Integer">
         select count(*) from service_donationwitness w
         inner join service_donatebaseinfo b on w.InfoID = b.id
         inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where w.DonationCategory = "DCD"
-        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
-        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
-        <if test="city != null and city != ''"> and o.City = #{city} </if>
-        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+        <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
+        <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''">and o.City = #{city}</if>
+        <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>
 
     </select>
     <select id="getDBCDDonaterNumberThisYear" resultType="java.lang.Integer">
@@ -166,22 +216,26 @@
         inner join service_donatebaseinfo b on w.InfoID = b.id
         inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where w.DonationCategory = "DBCD"
-        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
-        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
-        <if test="city != null and city != ''"> and o.City = #{city} </if>
-        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+        <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
+        <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
+        <if test="city != null and city != ''">and o.City = #{city}</if>
+        <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>
     </select>
     <select id="getDonationCategoryByInfoId" resultType="java.lang.String">
-        select DonationCategory from service_donationwitness
-        where InfoID = #{infoId} and del_flag = 0
+        select DonationCategory
+        from service_donationwitness
+        where InfoID = #{infoId}
+          and del_flag = 0
     </select>
     <select id="countNumber" resultType="java.lang.Integer">
-        select count(*) from service_donationwitness
-        where OperationBegTime >= #{starttime} and OperationBegTime &lt;= #{endtime}
+        select count(*)
+        from service_donationwitness
+        where OperationBegTime >= #{starttime}
+          and OperationBegTime &lt;= #{endtime}
     </select>
     <select id="selectByInfoId" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
         <include refid="selectServiceDonationwitnessVo"/>
-        where InfoID = #{infoid}
+        where InfoID = #{infoid} and del_flag!=1
     </select>
     <select id="getAllDonatePeople" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
         <include refid="selectServiceDonationwitnessVo"/>
@@ -191,10 +245,10 @@
         inner join service_donatebaseinfo b on w.InfoID = b.id
         inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         <where>
-        <if test="starttime != null "> and w.OperationBegTime >= #{starttime} </if>
-        <if test="endtime != null ">  and w.OperationBegTime &lt;= #{endtime}</if>
-        <if test="city != null and city != ''"> and o.City = #{city} </if>
-        <if test="reporterno != null and reporterno != ''"> and b.ReporterNo = #{reporterno}</if>
+            <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
+            <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
+            <if test="city != null and city != ''">and o.City = #{city}</if>
+            <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>
         </where>
     </select>
     <select id="getWitnessList" resultType="com.ruoyi.project.domain.ServiceDonationwitness">
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
index 3dc5bd9..4156250 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
@@ -58,6 +58,7 @@
         <result property="checkstatus" column="checkstatus"/>
         <result property="performancetype" column="performancetype"/>
         <result property="istax" column="istax"/>
+        <result property="fundtaxtime" column="fundtaxtime"/>
 
     </resultMap>
 
@@ -115,7 +116,8 @@
                bh,
                checkstatus,
                performancetype,
-               istax
+               istax,
+               fundtaxtime
         from service_fund
     </sql>
 
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml
index c7bbbb4..3ff8a43 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml
@@ -263,13 +263,18 @@
 
     <select id="getTaxSum" parameterType="com.ruoyi.project.domain.vo.TaxMoneyByItemEO"
             resultType="com.ruoyi.project.domain.vo.TaxMoneySumEO">
-        SELECT sum(Amount) amounts, sum(TaxAmount) taxAmounts, sum(TaxedAmount) taxedAmounts
-        FROM service_funddetail
-        where fundID &lt; #{fundID}
-          and tax_time &lt; #{taxTime}
-          and tax_time >= #{firstDay}
-          and IDCardNo = #{IDCard}
-          and ApplyType in (1, 2)
+        SELECT sum(a.Amount) amounts, sum(a.TaxAmount) taxAmounts, sum(a.TaxedAmount) taxedAmounts
+        FROM service_funddetail a,service_fund b
+        where a.FundID = b.id
+          and a.tax_time &lt; #{taxTime}
+          and a.tax_time >= #{firstDay}
+          and a.IDCardNo = #{IDCard}
+          and a.del_flag != 1
+          and b.id != #{fundID}
+          and b.fundtaxtime &lt; #{taxTime}
+          and b.fundtaxtime >= #{firstDay}
+          and b.del_flag != 1
+          and b.ApplyType in (1, 2)
     </select>
 
     <select id="totlaTax" resultType="com.ruoyi.project.domain.ServiceFunddetail">

--
Gitblit v1.9.3