liusheng
2023-11-17 054cfdd53b732d2f60627fc9ac7cf92233d3c200
代码提交
已添加2个文件
已修改22个文件
505 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BaseAnnextypeController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceExpertexpenseController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceOrganallocationController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/annotation/NotRepeatCommit.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/config/IsAspectAspect.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/ChineseUtils.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
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;
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;
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;
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;
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));
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));
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);
    }
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));
    }
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)) {
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));
    }
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)) {
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;
}
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 ç”Ÿæˆçš„key
     */
    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;
    }
}
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) {
        //当X<=800时,个税T=0
        BigDecimal taxMoney = new BigDecimal(0.0);
        if (money.doubleValue() <= 800) {
            taxMoney = money;
        }
//第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式
        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);
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) {
        // æ±‰å­—çš„Unicode编码范围是0x4E00到0x9FA5
        return c >= 0x4E00 && c <= 0x9FA5;
    }
}
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;
}
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();
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("算税条件为空,请检查后,再进行计算");
        }
        //这个是为了获取fund_tax_time
        Long fundid = serviceFunddetails.get(0).getFundid();
        log.info("算税的fundid的值为:{}", 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);
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);
    }
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方法的入参id :{}", id);
        //先判断一下share表是否已经插入
        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
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">
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>
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">