From 4c42cd3d556ea72d70ea43a734cc38acd6b81e74 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 15 三月 2024 18:26:43 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundtaxController.java  |  103 +++++++---
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundtaxMapper.java            |   14 +
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java               |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java     |   19 +
 ruoyi-project/src/main/resources/mapper/project/ServiceFundtaxMapper.xml                  |    6 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundTaxVO.java                    |   26 ++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java                     |    7 
 ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml                     |   11 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundtaxService.java         |   14 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpSelectExpertfee.java            |   49 ++++
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java            |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java    |    8 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java |  184 +++++++++++------
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundtax.java                  |  142 ++++++++++---
 14 files changed, 436 insertions(+), 151 deletions(-)

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 01c66f3..897976f 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
@@ -1,8 +1,6 @@
 package com.ruoyi.web.controller.project;
 
-import com.alibaba.fastjson.JSONObject;
 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;
@@ -10,14 +8,12 @@
 import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.tax.TaxtUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.DtoConversionUtils;
@@ -26,7 +22,6 @@
 import com.ruoyi.project.domain.vo.*;
 import com.ruoyi.project.mapper.ServiceFunddetailMapper;
 import com.ruoyi.project.service.*;
-import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysUserService;
 import freemarker.template.Configuration;
@@ -36,12 +31,9 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.annotations.Options;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
 import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -202,6 +194,17 @@
         return getCustomDataTable(list, pageNum, pageSize);
     }
 
+    /**
+     * 鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃
+     */
+    @ApiOperation("鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃")
+    @Log(title = "鏍规嵁鏉冮檺鏄剧ず瀹℃牳鍒楄〃", businessType = BusinessType.OTHER)
+    @PostMapping("/getExpertfeeList")
+    public TableDataInfo getExpertfeeList(@RequestBody SpSelectExpertfee spSelectExpertfee) {
+        List<SpFinancialExpensesFundOut> expertfeeList = serviceFundService.getExpertfeeList(spSelectExpertfee);
+        return getCustomDataTable(expertfeeList, spSelectExpertfee.getPageNum(), spSelectExpertfee.getPageSize());
+    }
+
     @ApiOperation("鏌ヨ璐圭敤鐢宠涓诲垪琛�")
     //@PreAuthorize("@ss.hasPermi('project:fund:list')")
     @GetMapping(value = "/getInfo/{infoid}")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundtaxController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundtaxController.java
index 40d4b46..8cb1ee2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundtaxController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundtaxController.java
@@ -7,7 +7,12 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.project.domain.ServiceFund;
 import com.ruoyi.project.domain.ServiceFundtax;
+import com.ruoyi.project.domain.vo.FundTaxVO;
+import com.ruoyi.project.domain.vo.TotalTaxVO;
+import com.ruoyi.project.service.IServiceFundService;
+import com.ruoyi.project.service.IServiceFunddetailService;
 import com.ruoyi.project.service.IServiceFundtaxService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -16,21 +21,26 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 /**
  * 涓撳璐圭敤绠楃◣鐢宠涓籆ontroller
- * 
+ *
  * @author ruoyi
  * @date 2024-03-13
  */
 @Api("涓撳璐圭敤绠楃◣鐢宠涓�")
 @RestController
-@RequestMapping("/system/fundtax")
-public class ServiceFundtaxController extends BaseController
-{
+@RequestMapping("/project/fundtax")
+public class ServiceFundtaxController extends BaseController {
     @Autowired
     private IServiceFundtaxService serviceFundtaxService;
+
+    @Autowired
+    private IServiceFundService serviceFundService;
+
 
     /**
      * 鏌ヨ涓撳璐圭敤绠楃◣鐢宠涓诲垪琛�
@@ -38,8 +48,7 @@
     @ApiOperation("鏌ヨ涓撳璐圭敤绠楃◣鐢宠涓诲垪琛�")
     @PreAuthorize("@ss.hasPermi('system:fundtax:list')")
     @GetMapping("/list")
-    public TableDataInfo list(ServiceFundtax serviceFundtax)
-    {
+    public TableDataInfo list(ServiceFundtax serviceFundtax) {
         startPage();
         List<ServiceFundtax> list = serviceFundtaxService.queryList(serviceFundtax);
         return getDataTable(list);
@@ -52,8 +61,7 @@
     @PreAuthorize("@ss.hasPermi('system:fundtax:export')")
     @Log(title = "涓撳璐圭敤绠楃◣鐢宠涓�", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
-    public AjaxResult export(ServiceFundtax serviceFundtax)
-    {
+    public AjaxResult export(ServiceFundtax serviceFundtax) {
         List<ServiceFundtax> list = serviceFundtaxService.queryList(serviceFundtax);
         ExcelUtil<ServiceFundtax> util = new ExcelUtil<ServiceFundtax>(ServiceFundtax.class);
         return util.exportExcel(list, "涓撳璐圭敤绠楃◣鐢宠涓绘暟鎹�");
@@ -64,23 +72,9 @@
      */
     @ApiOperation("鑾峰彇涓撳璐圭敤绠楃◣鐢宠涓昏缁嗕俊鎭�")
     @PreAuthorize("@ss.hasPermi('system:fundtax:query')")
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return AjaxResult.success(serviceFundtaxService.getById(id));
-    }
-
-    /**
-     * 鏂板涓撳璐圭敤绠楃◣鐢宠涓�
-     */
-    @ApiOperation("鏂板涓撳璐圭敤绠楃◣鐢宠涓�")
-    @PreAuthorize("@ss.hasPermi('system:fundtax:add')")
-    @Log(title = "涓撳璐圭敤绠楃◣鐢宠涓�", businessType = BusinessType.INSERT)
-    @PostMapping
-    @RepeatSubmit
-    public AjaxResult add(@RequestBody ServiceFundtax serviceFundtax)
-    {
-        return toAjax(serviceFundtaxService.save(serviceFundtax));
     }
 
     /**
@@ -89,10 +83,9 @@
     @ApiOperation("淇敼涓撳璐圭敤绠楃◣鐢宠涓�")
     @PreAuthorize("@ss.hasPermi('system:fundtax:edit')")
     @Log(title = "涓撳璐圭敤绠楃◣鐢宠涓�", businessType = BusinessType.UPDATE)
-    @PutMapping
-    @RepeatSubmit    
-    public AjaxResult edit(@RequestBody ServiceFundtax serviceFundtax)
-    {
+    @PostMapping("/edit")
+    @RepeatSubmit
+    public AjaxResult edit(@RequestBody ServiceFundtax serviceFundtax) {
         return toAjax(serviceFundtaxService.updateById(serviceFundtax));
     }
 
@@ -102,9 +95,55 @@
     @ApiOperation("鍒犻櫎涓撳璐圭敤绠楃◣鐢宠涓�")
     @PreAuthorize("@ss.hasPermi('system:fundtax:remove')")
     @Log(title = "涓撳璐圭敤绠楃◣鐢宠涓�", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(serviceFundtaxService.removeByIds(Arrays.asList(ids)));
+    @GetMapping("/remove/id")
+    public AjaxResult remove(@PathVariable Long id) {
+        ServiceFundtax serviceFundtax = new ServiceFundtax();
+        serviceFundtax.setDel_flag(1);
+        serviceFundtax.setId(id);
+        return toAjax(serviceFundtaxService.updateById(serviceFundtax));
+    }
+
+
+    /**
+     * 鏂板涓撳璐圭敤绠楃◣鐢宠涓�
+     */
+    @ApiOperation("鏂板涓撳璐圭敤绠楃◣鐢宠涓�")
+    @PreAuthorize("@ss.hasPermi('system:fundtax:add')")
+    @Log(title = "涓撳璐圭敤绠楃◣鐢宠涓�", businessType = BusinessType.INSERT)
+    @PostMapping("/addFundTax")
+    public AjaxResult addFundTax(@RequestBody List<ServiceFund> fundList) {
+        ServiceFundtax serviceFundtax = new ServiceFundtax();
+        serviceFundtax.setTaxedtime(new Date());
+        serviceFundtax.setApplyno(UUID.randomUUID().toString());
+        boolean save = serviceFundtaxService.save(serviceFundtax);
+        for (ServiceFund serviceFund : fundList) {
+            serviceFund.setFundTaxId(serviceFundtax.getId());
+            serviceFundService.updateById(serviceFund);
+        }
+        return toAjax(save);
+    }
+
+    /**
+     * 鑾峰彇fundTaxid鐨勬渶澶у��
+     *
+     * @return
+     */
+    @ApiOperation("鑾峰彇fundTaxid鐨勬渶澶у��")
+    @GetMapping(value = "/getMaxFundTaxId")
+    public AjaxResult getMaxFundTaxId() {
+        Integer maxFundTaxId = serviceFundtaxService.getMaxFundTaxId();
+        return success(maxFundTaxId.toString());
+    }
+
+    /**
+     * 鎵归噺绠楃◣
+     *
+     * @param fundTaxVO
+     * @return
+     */
+    @ApiOperation("鎵归噺绠楃◣")
+    @PostMapping(value = "/batchFundTax")
+    public AjaxResult batchFundTax(@RequestBody FundTaxVO fundTaxVO) {
+        return toAjax(serviceFundtaxService.batchFundTax(fundTaxVO));
     }
 }
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 1ce2c4d..a352611 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
@@ -380,6 +380,13 @@
     @Excel(name = "缁╂晥锛�1銆佹湀搴︺��2瀛e害銆�3骞村害")
     private Integer performancetype;
 
+    /**
+     * 涓撳璐圭敤绠楃◣鐢宠涓昏〃ID
+     */
+    @ApiModelProperty("涓撳璐圭敤绠楃◣鐢宠涓昏〃ID")
+    @Excel(name = "涓撳璐圭敤绠楃◣鐢宠涓昏〃ID")
+    private Long fundTaxId;
+
 
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundtax.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundtax.java
index 8211f58..b6058a4 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundtax.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundtax.java
@@ -1,6 +1,7 @@
 package com.ruoyi.project.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
@@ -11,181 +12,252 @@
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 涓撳璐圭敤绠楃◣鐢宠涓诲璞� service_fundtax
- * 
+ *
  * @author ruoyi
  * @date 2024-03-13
  */
 @Data
 @ApiModel("涓撳璐圭敤绠楃◣鐢宠涓�")
-public class ServiceFundtax extends BaseEntity
-{
+public class ServiceFundtax extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 涓婚敭id */
+    /**
+     * 涓婚敭id
+     */
     @ApiModelProperty("涓婚敭id")
     //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
     @TableId(type = IdType.AUTO)
     private Long id;
 
-    /** 鐢宠缂栧彿 */
+    /**
+     * 鐢宠缂栧彿
+     */
     @ApiModelProperty("鐢宠缂栧彿")
     @Excel(name = "鐢宠缂栧彿")
     private String applyno;
 
-    /** 绠楃◣鏃堕棿 */
+    /**
+     * 绠楃◣鏃堕棿
+     */
     @ApiModelProperty("绠楃◣鏃堕棿")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "绠楃◣鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date taxedtime;
 
-    /** 鐢宠浜虹紪鍙� */
+    /**
+     * 鐢宠浜虹紪鍙�
+     */
     @ApiModelProperty("鐢宠浜虹紪鍙�")
     @Excel(name = "鐢宠浜虹紪鍙�")
     private String userno;
 
-    /** 鐢宠浜哄鍚� */
+    /**
+     * 鐢宠浜哄鍚�
+     */
     @ApiModelProperty("鐢宠浜哄鍚�")
     @Excel(name = "鐢宠浜哄鍚�")
     private String username;
 
-    /** 閮ㄩ棬缂栧彿 */
+    /**
+     * 閮ㄩ棬缂栧彿
+     */
     @ApiModelProperty("閮ㄩ棬缂栧彿")
     @Excel(name = "閮ㄩ棬缂栧彿")
     private String deptmentno;
 
-    /** 閮ㄩ棬鍚嶇О */
+    /**
+     * 閮ㄩ棬鍚嶇О
+     */
     @ApiModelProperty("閮ㄩ棬鍚嶇О")
     @Excel(name = "閮ㄩ棬鍚嶇О")
     private String deptmentname;
 
-    /** 閮ㄩ棬涓荤宸ュ彿 */
+    /**
+     * 閮ㄩ棬涓荤宸ュ彿
+     */
     @ApiModelProperty("閮ㄩ棬涓荤宸ュ彿")
     @Excel(name = "閮ㄩ棬涓荤宸ュ彿")
     private String managerno;
 
-    /** 閮ㄩ棬涓荤鍚嶅瓧 */
+    /**
+     * 閮ㄩ棬涓荤鍚嶅瓧
+     */
     @ApiModelProperty("閮ㄩ棬涓荤鍚嶅瓧")
     @Excel(name = "閮ㄩ棬涓荤鍚嶅瓧")
     private String managername;
 
-    /** 绋庡墠閲戦鍚堣 */
+    /**
+     * 绋庡墠閲戦鍚堣
+     */
     @ApiModelProperty("绋庡墠閲戦鍚堣")
     @Excel(name = "绋庡墠閲戦鍚堣")
     private BigDecimal pretaxamount;
 
-    /** 绋庡悗閲戦鍚堣 */
+    /**
+     * 绋庡悗閲戦鍚堣
+     */
     @ApiModelProperty("绋庡悗閲戦鍚堣")
     @Excel(name = "绋庡悗閲戦鍚堣")
     private BigDecimal taxedamount;
 
-    /** 璐圭敤鎬婚噾棰� */
+    /**
+     * 璐圭敤鎬婚噾棰�
+     */
     @ApiModelProperty("璐圭敤鎬婚噾棰�")
     @Excel(name = "璐圭敤鎬婚噾棰�")
     private BigDecimal taxamount;
 
-    /** 鍖诲鎴愭湰鍚堣 */
+    /**
+     * 鍖诲鎴愭湰鍚堣
+     */
     @ApiModelProperty("鍖诲鎴愭湰鍚堣")
     @Excel(name = "鍖诲鎴愭湰鍚堣")
     private BigDecimal medicalcost;
 
-    /** 閬椾綋淇鏀寔鎴愭湰鍚堣 */
+    /**
+     * 閬椾綋淇鏀寔鎴愭湰鍚堣
+     */
     @ApiModelProperty("閬椾綋淇鏀寔鎴愭湰鍚堣")
     @Excel(name = "閬椾綋淇鏀寔鎴愭湰鍚堣")
     private BigDecimal bodymaintaincost;
 
-    /** 鍣ㄥ畼鑾峰彇鎴愭湰鍚堣 */
+    /**
+     * 鍣ㄥ畼鑾峰彇鎴愭湰鍚堣
+     */
     @ApiModelProperty("鍣ㄥ畼鑾峰彇鎴愭湰鍚堣")
     @Excel(name = "鍣ㄥ畼鑾峰彇鎴愭湰鍚堣")
     private BigDecimal organgaincost;
 
-    /** 鍣ㄥ畼鍖诲鏀寔鎴愭湰 */
+    /**
+     * 鍣ㄥ畼鍖诲鏀寔鎴愭湰
+     */
     @ApiModelProperty("鍣ㄥ畼鍖诲鏀寔鎴愭湰")
     @Excel(name = "鍣ㄥ畼鍖诲鏀寔鎴愭湰")
     private BigDecimal organmaintaincost;
 
-    /** 璁板綍鐘舵�� */
+    /**
+     * 璁板綍鐘舵��
+     */
     @ApiModelProperty("璁板綍鐘舵��")
     @Excel(name = "璁板綍鐘舵��")
     private Long recordstatus;
 
-    /** 棰勫鐘舵�侊細1銆佸緟棰勫锛�2銆侀绠楅�氳繃锛岀瓑寰呯焊璐ㄦ姤閿�鏉愭枡锛�3銆佹敹鍒扮焊璐ㄦ姤閿�鏉愭枡 */
+    /**
+     * 棰勫鐘舵�侊細1銆佸緟棰勫锛�2銆侀绠楅�氳繃锛岀瓑寰呯焊璐ㄦ姤閿�鏉愭枡锛�3銆佹敹鍒扮焊璐ㄦ姤閿�鏉愭枡
+     */
     @ApiModelProperty("棰勫鐘舵�侊細1銆佸緟棰勫锛�2銆侀绠楅�氳繃锛岀瓑寰呯焊璐ㄦ姤閿�鏉愭枡锛�3銆佹敹鍒扮焊璐ㄦ姤閿�鏉愭枡")
     @Excel(name = "棰勫鐘舵�侊細1銆佸緟棰勫锛�2銆侀绠楅�氳繃锛岀瓑寰呯焊璐ㄦ姤閿�鏉愭枡锛�3銆佹敹鍒扮焊璐ㄦ姤閿�鏉愭枡")
     private Long checkstatus;
 
-    /** 褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑 */
+    /**
+     * 褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑
+     */
     @ApiModelProperty("褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑")
     @Excel(name = "褰撳墠瀹℃牳绾у埆 澶勪簬鍝釜闃舵 0锛氱敵璇凤紱1锛氫竴绾у鏍革紱2锛氫簩绾у鏍革紱3锛氫笁绾у鏍哥瓑")
     private Long flowlevel;
 
-    /** 璐㈠姟閫�鍥�199锛涗笂浼犲尰闄�100锛� */
+    /**
+     * 璐㈠姟閫�鍥�199锛涗笂浼犲尰闄�100锛�
+     */
     @ApiModelProperty("璐㈠姟閫�鍥�199锛涗笂浼犲尰闄�100锛�")
     @Excel(name = "璐㈠姟閫�鍥�199锛涗笂浼犲尰闄�100锛�")
     private Long backflowlevel;
 
-    /** 鍙戞斁鐘舵�� */
+    /**
+     * 鍙戞斁鐘舵��
+     */
     @ApiModelProperty("鍙戞斁鐘舵��")
     @Excel(name = "鍙戞斁鐘舵��")
     private String isdistribute;
 
-    /** 浠樻鏃ユ湡 */
+    /**
+     * 浠樻鏃ユ湡
+     */
     @ApiModelProperty("浠樻鏃ユ湡")
     @Excel(name = "浠樻鏃ユ湡")
     private String riqi;
 
-    /** 涓績绛惧瓧 */
+    /**
+     * 涓績绛惧瓧
+     */
     @ApiModelProperty("涓績绛惧瓧")
     @Excel(name = "涓績绛惧瓧")
     private String opochecker;
 
-    /** 璐㈠姟鍓櫌闀跨瀛� */
+    /**
+     * 璐㈠姟鍓櫌闀跨瀛�
+     */
     @ApiModelProperty("璐㈠姟鍓櫌闀跨瀛�")
     @Excel(name = "璐㈠姟鍓櫌闀跨瀛�")
     private String finvicepresident;
 
-    /** 涓氬姟鍓櫌闀跨瀛� */
+    /**
+     * 涓氬姟鍓櫌闀跨瀛�
+     */
     @ApiModelProperty("涓氬姟鍓櫌闀跨瀛�")
     @Excel(name = "涓氬姟鍓櫌闀跨瀛�")
     private String busvicepresident;
 
-    /** 闄㈤暱瀹℃壒 */
+    /**
+     * 闄㈤暱瀹℃壒
+     */
     @ApiModelProperty("闄㈤暱瀹℃壒")
     @Excel(name = "闄㈤暱瀹℃壒")
     private String president;
 
-    /** 鍔炲叕瀹や富浠荤瀛� */
+    /**
+     * 鍔炲叕瀹や富浠荤瀛�
+     */
     @ApiModelProperty("鍔炲叕瀹や富浠荤瀛�")
     @Excel(name = "鍔炲叕瀹や富浠荤瀛�")
     private String officedirector;
 
-    /** 璐㈠姟瀹や富浠荤瀛� */
+    /**
+     * 璐㈠姟瀹や富浠荤瀛�
+     */
     @ApiModelProperty("璐㈠姟瀹や富浠荤瀛�")
     @Excel(name = "璐㈠姟瀹や富浠荤瀛�")
     private String financedirector;
 
-    /** 璐㈠姟瀹℃牳 */
+    /**
+     * 璐㈠姟瀹℃牳
+     */
     @ApiModelProperty("璐㈠姟瀹℃牳")
     @Excel(name = "璐㈠姟瀹℃牳")
     private String financechecher;
 
-    /** 鏁版嵁鏄惁鍏佽杩涘叆shared琛�   0锛氬惁     1锛氭槸锛�2锛氬凡杩涘叆 */
+    /**
+     * 鏁版嵁鏄惁鍏佽杩涘叆shared琛�   0锛氬惁     1锛氭槸锛�2锛氬凡杩涘叆
+     */
     @ApiModelProperty("鏁版嵁鏄惁鍏佽杩涘叆shared琛�   0锛氬惁     1锛氭槸锛�2锛氬凡杩涘叆")
     @Excel(name = "鏁版嵁鏄惁鍏佽杩涘叆shared琛�   0锛氬惁     1锛氭槸锛�2锛氬凡杩涘叆")
     private String uploadflag;
 
-    /** 涓婁紶鏃堕棿 */
+    /**
+     * 涓婁紶鏃堕棿
+     */
     @ApiModelProperty("涓婁紶鏃堕棿")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date uploadtime;
 
-    /** 鏉ョ敤璁板綍鎻掑叆鍒嗕韩琛ㄥけ璐� */
+    /**
+     * 鏉ョ敤璁板綍鎻掑叆鍒嗕韩琛ㄥけ璐�
+     */
     @ApiModelProperty("鏉ョ敤璁板綍鎻掑叆鍒嗕韩琛ㄥけ璐�")
     @Excel(name = "鏉ョ敤璁板綍鎻掑叆鍒嗕韩琛ㄥけ璐�")
     private String updownremark;
 
+    /**
+     * serviceFunds闆嗗悎
+     */
+    @ApiModelProperty("serviceFunds闆嗗悎")
+    @TableField(exist = false)
+    private List<ServiceFund> serviceFunds;
+
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundTaxVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundTaxVO.java
new file mode 100644
index 0000000..3b1dde1
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/FundTaxVO.java
@@ -0,0 +1,26 @@
+package com.ruoyi.project.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍚堣涓◣
+ *
+ * @author ls
+ */
+@Data
+public class FundTaxVO {
+    /**
+     * fundTaxid
+     */
+    @ApiModelProperty("fundTaxid")
+    Long fundTaxId;
+
+    /**
+     * 鏂板锛�0   淇敼锛�1
+     */
+    @ApiModelProperty("鎿嶄綔 :鏂板锛�0   淇敼锛�1")
+    Integer addOrupdate;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpSelectExpertfee.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpSelectExpertfee.java
new file mode 100644
index 0000000..3a92831
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/SpSelectExpertfee.java
@@ -0,0 +1,49 @@
+package com.ruoyi.project.domain.vo;
+
+
+import com.ruoyi.common.core.page.PageDomain;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SpSelectExpertfee extends PageDomain {
+
+    /**
+     * 涓氬姟绫诲瀷锛屽彇鍊�1-5锛�1鏄笓瀹惰垂
+     */
+    @ApiModelProperty("涓氬姟绫诲瀷锛屽彇鍊�1-5锛�1鏄笓瀹惰垂")
+    private Integer paApplyType;
+
+    /**
+     * 鎹愮尞鑰咃紝鍙互妯$硦鎼滅储
+     */
+    @ApiModelProperty("鎹愮尞鑰咃紝鍙互妯$硦鎼滅储")
+    private String donorname = "";
+
+
+    /**
+     * 瀹℃牳浜猴紝047鏄檲鎱曞崕
+     */
+    @ApiModelProperty("瀹℃牳浜猴紝047鏄檲鎱曞崕")
+    private String pacheckno = "";
+
+    /**
+     * 瀹℃牳鐘舵�侊細0鏄湭瀹℃牳
+     */
+    @ApiModelProperty("瀹℃牳鐘舵�侊細0鏄湭瀹℃牳")
+    private Integer checkstatus = null;
+
+    /**
+     * 閮ㄩ棬缂栧彿
+     */
+    @ApiModelProperty("閮ㄩ棬缂栧彿")
+    private String padepartno = "";
+
+    /**
+     * 缁忓姙浜猴紝鏀寔妯$硦鎼滅储
+     */
+    @ApiModelProperty("缁忓姙浜猴紝鏀寔妯$硦鎼滅储")
+    private String pausername = "";
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java
index e8ce673..588efef 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundMapper.java
@@ -36,4 +36,6 @@
 
     List<SpFinancialExpensesFundOut> getListBypower(@Param("PAUSERNO") String PAUSERNO, @Param("PAFUNDTYPE") Integer PAFUNDTYPE, @Param("PAAPPLICANT") String PAAPPLICANT, @Param("PAAPPLICATIONBEGTIME") String PAAPPLICATIONBEGTIME, @Param("PAAPPLICATIONENDTIME") String PAAPPLICATIONENDTIME, @Param("PADEPARTMENT") String PADEPARTMENT, @Param("CHECKFLAG") Integer CHECKFLAG, @Param("APPLYTYPE") Integer APPLYTYPE, @Param("CHECKSTATUS") Integer CHECKSTATUS,@Param("donorname")String donorname);
 
+    List<SpFinancialExpensesFundOut> getExpertfeeList(@Param("PAAPPLYTYPE") Integer PAAPPLYTYPE, @Param("DONORNAME") String DONORNAME, @Param("PACHECKNO") String PACHECKNO, @Param("CHECKSTATUS") Integer CHECKSTATUS, @Param("PADEPARTNO") String PADEPARTNO, @Param("PAUSERNAME") String PAUSERNAME);
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundtaxMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundtaxMapper.java
index f4b5b12..3d36dee 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundtaxMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundtaxMapper.java
@@ -3,17 +3,18 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.project.domain.ServiceFundtax;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
 /**
  * 涓撳璐圭敤绠楃◣鐢宠涓籑apper鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2024-03-13
  */
-public interface ServiceFundtaxMapper extends BaseMapper<ServiceFundtax>
-{
+@Mapper
+public interface ServiceFundtaxMapper extends BaseMapper<ServiceFundtax> {
     /**
      * 鏌ヨ涓撳璐圭敤绠楃◣鐢宠涓诲垪琛�
      *
@@ -21,4 +22,11 @@
      * @return 涓撳璐圭敤绠楃◣鐢宠涓婚泦鍚�
      */
     public List<ServiceFundtax> selectServiceFundtaxList(ServiceFundtax serviceFundtax);
+
+    /**
+     * 鑾峰彇ID鏈�澶у��
+     *
+     * @return
+     */
+    public Integer getMaxFundTaxId();
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java
index fd78af6..ce3201d 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundService.java
@@ -53,6 +53,8 @@
 
     List<SpFinancialExpensesFundOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE, Integer CHECKSTATUS, String donorname);
 
+    List<SpFinancialExpensesFundOut> getExpertfeeList(SpSelectExpertfee spSelectExpertfee);
+
     int countItem(Long infoid, Long itemid);
 
     Long addOrUpdateNew(ServiceFundVO serviceFundVO);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundtaxService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundtaxService.java
index 4a6741b..8e8f4fd 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundtaxService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundtaxService.java
@@ -2,23 +2,29 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.project.domain.ServiceFundtax;
+import com.ruoyi.project.domain.vo.FundTaxVO;
+import com.ruoyi.project.domain.vo.TotalTaxVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
 /**
  * 涓撳璐圭敤绠楃◣鐢宠涓籗ervice鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2024-03-13
  */
-public interface IServiceFundtaxService extends IService<ServiceFundtax>
-{
+public interface IServiceFundtaxService extends IService<ServiceFundtax> {
 
     /**
      * 鏌ヨ涓撳璐圭敤绠楃◣鐢宠涓诲垪琛�
-     * 
+     *
      * @param serviceFundtax 涓撳璐圭敤绠楃◣鐢宠涓�
      * @return 涓撳璐圭敤绠楃◣鐢宠涓婚泦鍚�
      */
     public List<ServiceFundtax> queryList(ServiceFundtax serviceFundtax);
+
+    public Integer getMaxFundTaxId();
+
+    public Boolean batchFundTax(FundTaxVO fundTaxVO);
 }
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 3778291..1734a45 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
@@ -88,6 +88,9 @@
         if (serviceFund.getId() != null) {
             wrappers.eq(ServiceFund::getId, serviceFund.getId());
         }
+        if (serviceFund.getFundTaxId() != null) {
+            wrappers.eq(ServiceFund::getFundTaxId, serviceFund.getFundTaxId());
+        }
         if (StringUtils.isNotBlank(serviceFund.getUserno())) {
             wrappers.eq(ServiceFund::getUserno, serviceFund.getUserno());
         }
@@ -684,6 +687,11 @@
     }
 
     @Override
+    public List<SpFinancialExpensesFundOut> getExpertfeeList(SpSelectExpertfee spSelectExpertfee) {
+        return serviceFundMapper.getExpertfeeList(spSelectExpertfee.getPaApplyType(), spSelectExpertfee.getDonorname(), spSelectExpertfee.getPacheckno(), spSelectExpertfee.getCheckstatus(), spSelectExpertfee.getPadepartno(), spSelectExpertfee.getPausername());
+    }
+
+    @Override
     public int countItem(Long infoid, Long itemid) {
         List<ServiceFund> serviceFunds = serviceFundMapper.getInfoByInfoId(infoid);
         int count = 0;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java
index fe98469..bda8b14 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundtaxServiceImpl.java
@@ -3,131 +3,179 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.ServiceFund;
+import com.ruoyi.project.domain.ServiceFunddetail;
 import com.ruoyi.project.domain.ServiceFundtax;
+import com.ruoyi.project.domain.vo.FundTaxVO;
+import com.ruoyi.project.mapper.ServiceFunddetailMapper;
 import com.ruoyi.project.mapper.ServiceFundtaxMapper;
+import com.ruoyi.project.service.IServiceFundService;
+import com.ruoyi.project.service.IServiceFunddetailService;
 import com.ruoyi.project.service.IServiceFundtaxService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
 /**
  * 涓撳璐圭敤绠楃◣鐢宠涓籗ervice涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2024-03-13
  */
 @Service
-public class ServiceFundtaxServiceImpl extends ServiceImpl<ServiceFundtaxMapper, ServiceFundtax> implements IServiceFundtaxService
-{
+public class ServiceFundtaxServiceImpl extends ServiceImpl<ServiceFundtaxMapper, ServiceFundtax> implements IServiceFundtaxService {
+
+    @Autowired
+    private ServiceFunddetailMapper serviceFunddetailMapper;
+    @Autowired
+    private IServiceFunddetailService serviceFunddetailService;
+    @Autowired
+    private IServiceFundService serviceFundService;
+    @Autowired
+    private ServiceFundtaxMapper serviceFundtaxMapper;
 
 
     /**
      * 鏌ヨ涓撳璐圭敤绠楃◣鐢宠涓诲垪琛�
-     * 
+     *
      * @param serviceFundtax 涓撳璐圭敤绠楃◣鐢宠涓�
      * @return 涓撳璐圭敤绠楃◣鐢宠涓�
      */
     @Override
     public List<ServiceFundtax> queryList(ServiceFundtax serviceFundtax) {
         LambdaQueryWrapper<ServiceFundtax> wrappers = Wrappers.lambdaQuery();
-        if (StringUtils.isNotBlank(serviceFundtax.getApplyno())){
-            wrappers.eq(ServiceFundtax::getApplyno ,serviceFundtax.getApplyno());
+        if (StringUtils.isNotBlank(serviceFundtax.getApplyno())) {
+            wrappers.eq(ServiceFundtax::getApplyno, serviceFundtax.getApplyno());
         }
-        if (serviceFundtax.getTaxedtime() != null){
-            wrappers.eq(ServiceFundtax::getTaxedtime ,serviceFundtax.getTaxedtime());
+        if (serviceFundtax.getTaxedtime() != null) {
+            wrappers.eq(ServiceFundtax::getTaxedtime, serviceFundtax.getTaxedtime());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getUserno())){
-            wrappers.eq(ServiceFundtax::getUserno ,serviceFundtax.getUserno());
+        if (StringUtils.isNotBlank(serviceFundtax.getUserno())) {
+            wrappers.eq(ServiceFundtax::getUserno, serviceFundtax.getUserno());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getUsername())){
-            wrappers.like(ServiceFundtax::getUsername ,serviceFundtax.getUsername());
+        if (StringUtils.isNotBlank(serviceFundtax.getUsername())) {
+            wrappers.like(ServiceFundtax::getUsername, serviceFundtax.getUsername());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getDeptmentno())){
-            wrappers.eq(ServiceFundtax::getDeptmentno ,serviceFundtax.getDeptmentno());
+        if (StringUtils.isNotBlank(serviceFundtax.getDeptmentno())) {
+            wrappers.eq(ServiceFundtax::getDeptmentno, serviceFundtax.getDeptmentno());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getDeptmentname())){
-            wrappers.like(ServiceFundtax::getDeptmentname ,serviceFundtax.getDeptmentname());
+        if (StringUtils.isNotBlank(serviceFundtax.getDeptmentname())) {
+            wrappers.like(ServiceFundtax::getDeptmentname, serviceFundtax.getDeptmentname());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getManagerno())){
-            wrappers.eq(ServiceFundtax::getManagerno ,serviceFundtax.getManagerno());
+        if (StringUtils.isNotBlank(serviceFundtax.getManagerno())) {
+            wrappers.eq(ServiceFundtax::getManagerno, serviceFundtax.getManagerno());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getManagername())){
-            wrappers.like(ServiceFundtax::getManagername ,serviceFundtax.getManagername());
+        if (StringUtils.isNotBlank(serviceFundtax.getManagername())) {
+            wrappers.like(ServiceFundtax::getManagername, serviceFundtax.getManagername());
         }
-        if (serviceFundtax.getPretaxamount() != null){
-            wrappers.eq(ServiceFundtax::getPretaxamount ,serviceFundtax.getPretaxamount());
+        if (serviceFundtax.getPretaxamount() != null) {
+            wrappers.eq(ServiceFundtax::getPretaxamount, serviceFundtax.getPretaxamount());
         }
-        if (serviceFundtax.getTaxedamount() != null){
-            wrappers.eq(ServiceFundtax::getTaxedamount ,serviceFundtax.getTaxedamount());
+        if (serviceFundtax.getTaxedamount() != null) {
+            wrappers.eq(ServiceFundtax::getTaxedamount, serviceFundtax.getTaxedamount());
         }
-        if (serviceFundtax.getTaxamount() != null){
-            wrappers.eq(ServiceFundtax::getTaxamount ,serviceFundtax.getTaxamount());
+        if (serviceFundtax.getTaxamount() != null) {
+            wrappers.eq(ServiceFundtax::getTaxamount, serviceFundtax.getTaxamount());
         }
-        if (serviceFundtax.getMedicalcost() != null){
-            wrappers.eq(ServiceFundtax::getMedicalcost ,serviceFundtax.getMedicalcost());
+        if (serviceFundtax.getMedicalcost() != null) {
+            wrappers.eq(ServiceFundtax::getMedicalcost, serviceFundtax.getMedicalcost());
         }
-        if (serviceFundtax.getBodymaintaincost() != null){
-            wrappers.eq(ServiceFundtax::getBodymaintaincost ,serviceFundtax.getBodymaintaincost());
+        if (serviceFundtax.getBodymaintaincost() != null) {
+            wrappers.eq(ServiceFundtax::getBodymaintaincost, serviceFundtax.getBodymaintaincost());
         }
-        if (serviceFundtax.getOrgangaincost() != null){
-            wrappers.eq(ServiceFundtax::getOrgangaincost ,serviceFundtax.getOrgangaincost());
+        if (serviceFundtax.getOrgangaincost() != null) {
+            wrappers.eq(ServiceFundtax::getOrgangaincost, serviceFundtax.getOrgangaincost());
         }
-        if (serviceFundtax.getOrganmaintaincost() != null){
-            wrappers.eq(ServiceFundtax::getOrganmaintaincost ,serviceFundtax.getOrganmaintaincost());
+        if (serviceFundtax.getOrganmaintaincost() != null) {
+            wrappers.eq(ServiceFundtax::getOrganmaintaincost, serviceFundtax.getOrganmaintaincost());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getRemark())){
-            wrappers.eq(ServiceFundtax::getRemark ,serviceFundtax.getRemark());
+        if (StringUtils.isNotBlank(serviceFundtax.getRemark())) {
+            wrappers.eq(ServiceFundtax::getRemark, serviceFundtax.getRemark());
         }
-        if (serviceFundtax.getRecordstatus() != null){
-            wrappers.eq(ServiceFundtax::getRecordstatus ,serviceFundtax.getRecordstatus());
+        if (serviceFundtax.getRecordstatus() != null) {
+            wrappers.eq(ServiceFundtax::getRecordstatus, serviceFundtax.getRecordstatus());
         }
-        if (serviceFundtax.getCheckstatus() != null){
-            wrappers.eq(ServiceFundtax::getCheckstatus ,serviceFundtax.getCheckstatus());
+        if (serviceFundtax.getCheckstatus() != null) {
+            wrappers.eq(ServiceFundtax::getCheckstatus, serviceFundtax.getCheckstatus());
         }
-        if (serviceFundtax.getFlowlevel() != null){
-            wrappers.eq(ServiceFundtax::getFlowlevel ,serviceFundtax.getFlowlevel());
+        if (serviceFundtax.getFlowlevel() != null) {
+            wrappers.eq(ServiceFundtax::getFlowlevel, serviceFundtax.getFlowlevel());
         }
-        if (serviceFundtax.getBackflowlevel() != null){
-            wrappers.eq(ServiceFundtax::getBackflowlevel ,serviceFundtax.getBackflowlevel());
+        if (serviceFundtax.getBackflowlevel() != null) {
+            wrappers.eq(ServiceFundtax::getBackflowlevel, serviceFundtax.getBackflowlevel());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getIsdistribute())){
-            wrappers.eq(ServiceFundtax::getIsdistribute ,serviceFundtax.getIsdistribute());
+        if (StringUtils.isNotBlank(serviceFundtax.getIsdistribute())) {
+            wrappers.eq(ServiceFundtax::getIsdistribute, serviceFundtax.getIsdistribute());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getRiqi())){
-            wrappers.eq(ServiceFundtax::getRiqi ,serviceFundtax.getRiqi());
+        if (StringUtils.isNotBlank(serviceFundtax.getRiqi())) {
+            wrappers.eq(ServiceFundtax::getRiqi, serviceFundtax.getRiqi());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getOpochecker())){
-            wrappers.eq(ServiceFundtax::getOpochecker ,serviceFundtax.getOpochecker());
+        if (StringUtils.isNotBlank(serviceFundtax.getOpochecker())) {
+            wrappers.eq(ServiceFundtax::getOpochecker, serviceFundtax.getOpochecker());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getFinvicepresident())){
-            wrappers.eq(ServiceFundtax::getFinvicepresident ,serviceFundtax.getFinvicepresident());
+        if (StringUtils.isNotBlank(serviceFundtax.getFinvicepresident())) {
+            wrappers.eq(ServiceFundtax::getFinvicepresident, serviceFundtax.getFinvicepresident());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getBusvicepresident())){
-            wrappers.eq(ServiceFundtax::getBusvicepresident ,serviceFundtax.getBusvicepresident());
+        if (StringUtils.isNotBlank(serviceFundtax.getBusvicepresident())) {
+            wrappers.eq(ServiceFundtax::getBusvicepresident, serviceFundtax.getBusvicepresident());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getPresident())){
-            wrappers.eq(ServiceFundtax::getPresident ,serviceFundtax.getPresident());
+        if (StringUtils.isNotBlank(serviceFundtax.getPresident())) {
+            wrappers.eq(ServiceFundtax::getPresident, serviceFundtax.getPresident());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getOfficedirector())){
-            wrappers.eq(ServiceFundtax::getOfficedirector ,serviceFundtax.getOfficedirector());
+        if (StringUtils.isNotBlank(serviceFundtax.getOfficedirector())) {
+            wrappers.eq(ServiceFundtax::getOfficedirector, serviceFundtax.getOfficedirector());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getFinancedirector())){
-            wrappers.eq(ServiceFundtax::getFinancedirector ,serviceFundtax.getFinancedirector());
+        if (StringUtils.isNotBlank(serviceFundtax.getFinancedirector())) {
+            wrappers.eq(ServiceFundtax::getFinancedirector, serviceFundtax.getFinancedirector());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getFinancechecher())){
-            wrappers.eq(ServiceFundtax::getFinancechecher ,serviceFundtax.getFinancechecher());
+        if (StringUtils.isNotBlank(serviceFundtax.getFinancechecher())) {
+            wrappers.eq(ServiceFundtax::getFinancechecher, serviceFundtax.getFinancechecher());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getUploadflag())){
-            wrappers.eq(ServiceFundtax::getUploadflag ,serviceFundtax.getUploadflag());
+        if (StringUtils.isNotBlank(serviceFundtax.getUploadflag())) {
+            wrappers.eq(ServiceFundtax::getUploadflag, serviceFundtax.getUploadflag());
         }
-        if (serviceFundtax.getUploadtime() != null){
-            wrappers.eq(ServiceFundtax::getUploadtime ,serviceFundtax.getUploadtime());
+        if (serviceFundtax.getUploadtime() != null) {
+            wrappers.eq(ServiceFundtax::getUploadtime, serviceFundtax.getUploadtime());
         }
-        if (StringUtils.isNotBlank(serviceFundtax.getUpdownremark())){
-            wrappers.eq(ServiceFundtax::getUpdownremark ,serviceFundtax.getUpdownremark());
+        if (StringUtils.isNotBlank(serviceFundtax.getUpdownremark())) {
+            wrappers.eq(ServiceFundtax::getUpdownremark, serviceFundtax.getUpdownremark());
         }
         return this.list(wrappers);
     }
 
+    @Override
+    public Integer getMaxFundTaxId() {
+        return serviceFundtaxMapper.getMaxFundTaxId();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean batchFundTax(FundTaxVO fundTaxVO) {
+        if (fundTaxVO.getFundTaxId() == null) {
+            throw new BaseException("鍒嗘壒绠楃◣鍑洪棶棰樹簡,璇锋鏌ュ悗鍐嶈繘琛岃绠�");
+        }
+        if (fundTaxVO.getAddOrupdate() == 1) {
+            Integer maxFundTaxId = serviceFundtaxMapper.getMaxFundTaxId();
+            if (fundTaxVO.getFundTaxId() != maxFundTaxId.longValue()) {
+                throw new BaseException("璇ユ壒鏁版嵁涓嶈兘绠楃◣");
+            }
+        }
+
+        ServiceFund serviceFund = new ServiceFund();
+        serviceFund.setFundTaxId(fundTaxVO.getFundTaxId());
+        serviceFund.setDel_flag(0);
+        List<ServiceFund> serviceFunds = serviceFundService.selectServiceFundList(serviceFund);
+        for (ServiceFund serviceFund1 : serviceFunds) {
+            ServiceFunddetail serviceFunddetail = new ServiceFunddetail();
+            serviceFunddetail.setFundid(serviceFund1.getId());
+            List<ServiceFunddetail> serviceFunddetails = serviceFunddetailMapper.selectServiceFunddetailList(serviceFunddetail);
+            serviceFunddetailService.calculateTax(serviceFunddetails);
+        }
+        return true;
+    }
+
 }
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
index 955a7b7..8ff32ae 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
@@ -64,6 +64,7 @@
         <result property="uploadStates" column="upload_states"/>
         <result property="notes" column="notes"/>
         <result property="jxrq" column="jxrq"/>
+        <result property="fundTaxId" column="fund_tax_id"/>
     </resultMap>
 
     <sql id="selectServiceFundVo">
@@ -125,7 +126,8 @@
                fundtaxtime,
                upload_states,
                jxrq,
-               notes
+               notes,
+               fund_tax_id
         from service_fund
     </sql>
 
@@ -135,6 +137,7 @@
 
         where del_flag = '0'
         <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
+        <if test="fundTaxId != null ">and fund_tax_id = #{fundTaxId}</if>
         <if test="userno != null  and userno != ''">and UserNo = #{userno}</if>
         <if test="username != null  and username != ''">and UserName like concat('%', #{username}, '%')</if>
         <if test="applytype != null  and applytype != ''">and ApplyType = #{applytype}</if>
@@ -207,6 +210,7 @@
         `service_fund`.`PretaxCost` AS `pretaxcost`,
         `service_fund`.`TaxedCost` AS `taxedcost`,
         `service_fund`.`jxrq` AS `jxrq`,
+        `service_fund`.`fund_tax_id` AS `fundTaxId`,
         `service_funddetail`.`ID` AS `fdid`,
         `service_funddetail`.`fundID` AS `fundid`,
         `service_funddetail`.`BeneficiaryName` AS `beneficiaryname`,
@@ -261,4 +265,9 @@
             resultType="com.ruoyi.project.domain.vo.SpFinancialExpensesFundOut">
         call SP_FINANCIAL_EXPENSES(#{PAUSERNO,mode=IN,jdbcType=VARCHAR},#{PAFUNDTYPE,mode=IN,jdbcType=INTEGER},#{PAAPPLICANT,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONBEGTIME,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONENDTIME,mode=IN,jdbcType=VARCHAR},#{PADEPARTMENT,mode=IN,jdbcType=VARCHAR},#{CHECKFLAG,mode=IN,jdbcType=INTEGER},#{APPLYTYPE,mode=IN,jdbcType=INTEGER},#{CHECKSTATUS,mode=IN,jdbcType=INTEGER},#{donorname,mode=IN,jdbcType=VARCHAR})
     </select>
+
+    <select id="getExpertfeeList" statementType="CALLABLE"
+            resultType="com.ruoyi.project.domain.vo.SpFinancialExpensesFundOut">
+        call SP_SELECT_EXPERTFEE(#{PAAPPLYTYPE,mode=IN,jdbcType=INTEGER},#{DONORNAME,mode=IN,jdbcType=VARCHAR},#{PACHECKNO,mode=IN,jdbcType=VARCHAR},#{CHECKSTATUS,mode=IN,jdbcType=INTEGER},#{PADEPARTNO,mode=IN,jdbcType=VARCHAR},#{PAUSERNAME,mode=IN,jdbcType=VARCHAR})
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceFundtaxMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceFundtaxMapper.xml
index ba62d6f..7648ac3 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceFundtaxMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceFundtaxMapper.xml
@@ -132,4 +132,10 @@
         </where>
     </select>
 
+    <select id="getMaxFundTaxId" resultType="integer">
+        select max(id) maxid
+        from service_fund
+        where del_flag = 0;
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3