Selaa lähdekoodia

财务管理大中型评估人员提成计算

wucl 1 vuosi sitten
vanhempi
commit
1a86fe48c8

+ 44 - 4
biz-base/src/main/java/com/dayou/controller/FinanceRealFundController.java

@@ -1,9 +1,6 @@
 package com.dayou.controller;
 
-import com.dayou.vo.FinanceRealFundVO;
-import com.dayou.vo.MajorProdOverdueVO;
-import com.dayou.vo.RealFundMajorStatVO;
-import com.dayou.vo.SettleMajorProductionVO;
+import com.dayou.vo.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -123,6 +120,17 @@ public class FinanceRealFundController extends BaseController {
     }
 
     /**
+     * 大中型评估人员结算产品导出
+     * @param production
+     * @return
+     */
+    @GetMapping("/major/evaluator/settle/export")
+    public void majorEvaluatorSettleExport(SettleMajorProductionVO production, HttpServletResponse response)throws IOException {
+        List<SettleMajorProductionVO> result = financeRealFundService.majorEvaluatorSettleExport(production);
+        exportPlus(response,"大中型评估人员结算项目",result, SettleMajorProductionVO.class);
+    }
+
+    /**
      * 大中型市场人员结算产品
      * @param settleVO
      * @param page
@@ -134,5 +142,37 @@ public class FinanceRealFundController extends BaseController {
         return RestResponse.data(result);
     }
 
+    /**
+     * 大中型市场人员结算产品导出
+     * @param production
+     * @return
+     */
+    @GetMapping("/major/market/settle/export")
+    public void majorMarketSettleExport(SettleMajorProductionVO production, HttpServletResponse response)throws IOException {
+        List<SettleMajorProductionVO> result = financeRealFundService.majorMarketSettleExport(production);
+        exportPlus(response,"大中型市场人员结算项目",result, SettleMajorProductionVO.class);
+    }
+
+    /**
+     * 大中型评估人员总提成列表
+     * @param vo
+     * @return
+     */
+    @GetMapping("/commission/major/evaluator")
+    public RestResponse<List<UserCommissionTotalAmountVO>> majorEvaluatorCommission(UserCommissionTotalAmountVO vo){
+        List<UserCommissionTotalAmountVO> ret = financeRealFundService.majorEvaluatorCommission(vo);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 大中型评估人员总提成列表
+     * @param vo
+     * @return
+     */
+    @GetMapping("/commission/major/evaluator/detail")
+    public RestResponse<List<UserCommissionProdVO>> majorEvaluatorCommissionDetail(UserCommissionProdVO vo){
+        List<UserCommissionProdVO> ret = financeRealFundService.majorEvaluatorCommissionDetail(vo);
+        return RestResponse.data(ret);
+    }
 }
 

+ 9 - 3
dao/src/main/java/com/dayou/mapper/FinanceRealFundMapper.java

@@ -3,9 +3,7 @@ package com.dayou.mapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.FinanceRealFund;
 import com.dayou.dao.CustomBaseMapper;
-import com.dayou.vo.FinanceRealFundVO;
-import com.dayou.vo.MajorProdOverdueVO;
-import com.dayou.vo.SettleMajorProductionVO;
+import com.dayou.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -32,4 +30,12 @@ public interface FinanceRealFundMapper extends CustomBaseMapper<FinanceRealFund>
     Page<SettleMajorProductionVO> majorEvaluatorSettleProd(Page page, @Param("settleVO") SettleMajorProductionVO settleVO);
 
     Page<SettleMajorProductionVO> majorMarketerSettleProd(Page page, @Param("settleVO") SettleMajorProductionVO settleVO);
+
+    List<SettleMajorProductionVO> majorEvaluatorSettleExport(@Param("settleVO") SettleMajorProductionVO settleVO);
+
+    List<SettleMajorProductionVO> majorMarketSettleExport(@Param("settleVO") SettleMajorProductionVO settleVO);
+
+    List<UserCommissionTotalAmountVO> majorEvaluatorCommission(@Param("vo") UserCommissionTotalAmountVO vo);
+
+    List<UserCommissionProdVO> majorEvaluatorCommissionDetail(@Param("vo") UserCommissionProdVO vo);
 }

+ 247 - 104
dao/src/main/resources/mapper/FinanceRealFundMapper.xml

@@ -146,119 +146,262 @@
         <include refid="majorOverdueSql" />
     </select>
 
-    <select id="majorEvaluatorSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
-        SELECT
-        mp.id,
-        fc.claim_amount,
-        m.order_id,
-        mp.report_no,
-        fc.claim_datetime as claimDate,
-        mp.save_file_date,
-        IF
-        ( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
-        mp.NAME,
-        m.bailor,
-        mp.evaluate_amount,
-        u.NAME AS principal,
-        u1.NAME AS clientManager,
-        cc.NAME AS clientName,
-        cc1.NAME AS clientSubName,
-        d.NAME AS evaluateDepartmentName,
-        (
-        SELECT
-        GROUP_CONCAT( NAME )
-        FROM
-        department
-        WHERE
-        id IN (
+    <sql id="majorEvaluatorSettleSql">
         SELECT
-        department_id
+            mp.id,
+            fc.claim_amount,
+            m.order_id,
+            mp.report_no,
+            fc.claim_datetime as claimDate,
+            mp.save_file_date,
+            IF
+                ( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
+            mp.NAME,
+            m.bailor,
+            mp.evaluate_amount,
+            u.NAME AS principal,
+            u1.NAME AS clientManager,
+            cc.NAME AS clientName,
+            cc1.NAME AS clientSubName,
+            d.NAME AS evaluateDepartmentName,
+            (
+                SELECT
+                    GROUP_CONCAT( NAME )
+                FROM
+                    department
+                WHERE
+                        id IN (
+                        SELECT
+                            department_id
+                        FROM
+                            post
+                        WHERE
+                            id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
         FROM
-        post
-        WHERE
-        id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
-        FROM
-        (
-        SELECT
-        claim_amount,
-        order_fund_id,
-        production_fund_id,
-        claim_datetime
-        FROM
-        finance_claim
-        WHERE
-        deleted = 0
-        AND production_fund_id IS NOT NULL
-        AND claim_datetime &gt;= #{settleVO.startDate}
-        AND claim_datetime  &lt;= #{settleVO.endDate} UNION ALL SELECT allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime FROM order_fund_allot WHERE deleted = 0
-        AND created &gt;= #{settleVO.startDate}
-        AND created &lt;= #{settleVO.endDate}
-        ) fc
-        INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
-        INNER JOIN ( SELECT id, major_id, NAME, report_no, production, evaluate_amount, save_file_date FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
-        LEFT JOIN major m ON m.id = mp.major_id
-        LEFT JOIN user u ON u.id = m.principal_id
-        LEFT JOIN user u1 ON u1.id = m.client_manager_id
-        LEFT JOIN customer_company cc ON cc.id = m.clientele_id
-        LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
-        LEFT JOIN department d ON d.id = m.department_id
+            (
+                SELECT
+                    claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    claim_datetime
+                FROM
+                    finance_claim
+                WHERE
+                    deleted = 0
+                  AND production_fund_id IS NOT NULL
+                  AND claim_datetime &gt;= #{settleVO.startDate}
+                  AND claim_datetime  &lt;= #{settleVO.endDate} UNION ALL SELECT allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime FROM order_fund_allot WHERE deleted = 0
+                                                                                                                                                                                                    AND created &gt;= #{settleVO.startDate}
+                                                                                                                                                                                                    AND created &lt;= #{settleVO.endDate}
+            ) fc
+                INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
+                INNER JOIN ( SELECT id, major_id, NAME, report_no, production, evaluate_amount, save_file_date FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
+                LEFT JOIN major m ON m.id = mp.major_id
+                LEFT JOIN user u ON u.id = m.principal_id
+                LEFT JOIN user u1 ON u1.id = m.client_manager_id
+                LEFT JOIN customer_company cc ON cc.id = m.clientele_id
+                LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
+                LEFT JOIN department d ON d.id = m.department_id
+                <where>
+                    <if test="settleVO!=null and settleVO.orderId!=null and settleVO.orderId!='' ">
+                            and m.order_id = #{settleVO.orderId}
+                    </if>
+                    <if test="settleVO!=null and settleVO.reportNo!=null and settleVO.reportNo!='' ">
+                        and mp.report_no like concat ('%',#{settleVO.reportNo},'%')
+                    </if>
+                    <if test="settleVO!=null and settleVO.principal!=null and settleVO.principal!='' ">
+                        and u.name like concat ('%',#{settleVO.principal},'%')
+                    </if>
+                    <if test="settleVO!=null and settleVO.clientManager!=null and settleVO.clientManager!='' ">
+                        and u1.name like concat ('%',#{settleVO.clientManager},'%')
+                    </if>
+                </where>
+        order by settleDate DESC
+    </sql>
+    <select id="majorEvaluatorSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
+       <include refid="majorEvaluatorSettleSql" />
     </select>
 
-    <select id="majorMarketerSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
-        SELECT
-        mp.id,
-        fc.claim_amount,
-        m.order_id,
-        mp.report_no,
-        fc.claim_datetime,
-        mp.delivery_date,
-        IF
-        ( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date ) AS settleDate,
-        mp.NAME,
-        m.bailor,
-        mp.evaluate_amount,
-        u.NAME AS principal,
-        u1.NAME AS clientManager,
-        cc.NAME AS clientName,
-        cc1.NAME AS clientSubName,
-        d.NAME AS evaluateDepartmentName,
-        (
-        SELECT
-        GROUP_CONCAT( NAME )
-        FROM
-        department
-        WHERE
-        id IN (
+    <select id="majorEvaluatorSettleExport" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
+        <include refid="majorEvaluatorSettleSql" />
+    </select>
+
+    <sql id="majorMarketerSettleSql">
         SELECT
-        department_id
+            mp.id,
+            fc.claim_amount,
+            m.order_id,
+            mp.report_no,
+            fc.claim_datetime,
+            mp.delivery_date,
+            IF
+                ( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date ) AS settleDate,
+            mp.NAME,
+            m.bailor,
+            mp.evaluate_amount,
+            u.NAME AS principal,
+            u1.NAME AS clientManager,
+            cc.NAME AS clientName,
+            cc1.NAME AS clientSubName,
+            d.NAME AS evaluateDepartmentName,
+            (
+                SELECT
+                    GROUP_CONCAT( NAME )
+                FROM
+                    department
+                WHERE
+                        id IN (
+                        SELECT
+                            department_id
+                        FROM
+                            post
+                        WHERE
+                            id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
         FROM
-        post
-        WHERE
-        id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
+            (
+                SELECT
+                    claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    claim_datetime
+                FROM
+                    finance_claim
+                WHERE
+                    deleted = 0
+                  AND production_fund_id IS NOT NULL
+                  AND claim_datetime  &gt;= #{settleVO.startDate}
+                  AND claim_datetime &lt;= #{settleVO.endDate} UNION ALL SELECT allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime FROM order_fund_allot WHERE deleted = 0
+                                                                                                                                                                                                   AND created  &gt;= #{settleVO.startDate}
+                                                                                                                                                                                                   AND created &lt;= #{settleVO.endDate}
+            ) fc
+                INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
+                INNER JOIN ( SELECT id, major_id, NAME, report_no, production, evaluate_amount, delivery_date FROM major_production WHERE deleted = 0 AND delivery_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
+                LEFT JOIN major m ON m.id = mp.major_id
+                LEFT JOIN user u ON u.id = m.principal_id
+                LEFT JOIN user u1 ON u1.id = m.client_manager_id
+                LEFT JOIN customer_company cc ON cc.id = m.clientele_id
+                LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
+                LEFT JOIN department d ON d.id = m.department_id
+        <where>
+            <if test="settleVO!=null and settleVO.orderId!=null and settleVO.orderId!='' ">
+                and m.order_id = #{settleVO.orderId}
+            </if>
+            <if test="settleVO!=null and settleVO.reportNo!=null and settleVO.reportNo!='' ">
+                and mp.report_no like concat ('%',#{settleVO.reportNo},'%')
+            </if>
+            <if test="settleVO!=null and settleVO.principal!=null and settleVO.principal!='' ">
+                and u.name like concat ('%',#{settleVO.principal},'%')
+            </if>
+            <if test="settleVO!=null and settleVO.clientManager!=null and settleVO.clientManager!='' ">
+                and u1.name like concat ('%',#{settleVO.clientManager},'%')
+            </if>
+        </where>
+            order by settleDate DESC
+    </sql>
+    <select id="majorMarketerSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
+        <include refid="majorMarketerSettleSql" />
+    </select>
+
+    <select id="majorMarketSettleExport" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
+        <include refid="majorMarketerSettleSql" />
+    </select>
+
+    <select id="majorEvaluatorCommission" parameterType="com.dayou.vo.UserCommissionTotalAmountVO" resultType="com.dayou.vo.UserCommissionTotalAmountVO">
+        SELECT mpa.user_id as id, u.name as userName, sum(( fc.claim_amount * ( bcr.min_ratio / 100 )* mpa.ratio )) AS commissionTotalAmount
         FROM
-        (
+            (
+                SELECT
+                    claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    claim_datetime
+                FROM
+                    finance_claim
+                WHERE
+                    deleted = 0
+                  AND production_fund_id IS NOT NULL
+                  AND claim_datetime &gt;= #{vo.startDate}
+                  AND claim_datetime  &lt;= #{vo.endDate}
+                UNION ALL
+                SELECT
+                    allot_amount AS claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    created AS claim_datetime
+                FROM
+                    order_fund_allot
+                WHERE
+                    deleted = 0
+                  AND created  &gt;= #{vo.startDate}
+                  AND created &lt;= #{vo.endDate}
+            ) fc
+                INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
+                INNER JOIN ( SELECT id, major_id, NAME, report_no, production, save_file_date, created FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
+                LEFT JOIN major m ON m.id = mp.major_id
+                INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_MAJOR_EVALUATE' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
+                        cd.business_id = m.id
+                    AND ( cd.production_id IS NULL OR cd.production_id = mp.id ))
+                LEFT JOIN business_commission_rate bcr ON bcr.id = cd.commission_rate_id
+                LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
+                LEFT JOIN ( SELECT major_id, major_production_id, user_id, ratio FROM major_production_allot WHERE deleted = 0 AND user_type = 'EVALUATE' ) mpa ON ( mpa.major_id = m.id AND mpa.major_production_id = mp.id )
+                LEFT JOIN user u ON u.id = mpa.user_id
+        GROUP BY
+            mpa.user_id
+    </select>
+
+    <select id="majorEvaluatorCommissionDetail" parameterType="com.dayou.vo.UserCommissionProdVO" resultType="com.dayou.vo.UserCommissionProdVO">
         SELECT
-        claim_amount,
-        order_fund_id,
-        production_fund_id,
-        claim_datetime
+            mp.id,
+            fc.claim_amount as realAmount,
+            mp.report_no,
+            IF
+                ( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
+            mp.NAME,
+            mp.created,
+            dd.NAME AS businessCate,
+            bcr.min_ratio AS ratio,
+            mpa.user_id,
+            mpa.ratio AS allotRatio,
+            ( fc.claim_amount * ( bcr.min_ratio / 100 )* mpa.ratio ) AS commissionAmount,
+            ( fc.claim_amount * ( bcr.min_ratio / 100 ) ) AS totalAmount
         FROM
-        finance_claim
+            (
+                SELECT
+                    claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    claim_datetime
+                FROM
+                    finance_claim
+                WHERE
+                    deleted = 0
+                  AND production_fund_id IS NOT NULL
+                  AND claim_datetime &gt;= #{vo.startDate}
+                  AND claim_datetime  &lt;= #{vo.endDate}
+                UNION ALL
+                SELECT
+                    allot_amount AS claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    created AS claim_datetime
+                FROM
+                    order_fund_allot
+                WHERE
+                    deleted = 0
+                  AND created  &gt;= #{vo.startDate}
+                  AND created &lt;= #{vo.endDate}
+            ) fc
+                INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
+                INNER JOIN ( SELECT id, major_id, NAME, report_no, production, save_file_date, created FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
+                LEFT JOIN major m ON m.id = mp.major_id
+                INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_MAJOR_EVALUATE' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
+                        cd.business_id = m.id
+                    AND ( cd.production_id IS NULL OR cd.production_id = mp.id ))
+                LEFT JOIN business_commission_rate bcr ON bcr.id = cd.commission_rate_id
+                LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
+                LEFT JOIN ( SELECT major_id, major_production_id, user_id, ratio FROM major_production_allot WHERE deleted = 0 AND user_type = 'EVALUATE' ) mpa ON ( mpa.major_id = m.id AND mpa.major_production_id = mp.id )
         WHERE
-        deleted = 0
-        AND production_fund_id IS NOT NULL
-        AND claim_datetime  &gt;= #{settleVO.startDate}
-        AND claim_datetime &lt;= #{settleVO.endDate} UNION ALL SELECT allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime FROM order_fund_allot WHERE deleted = 0
-        AND created  &gt;= #{settleVO.startDate}
-        AND created &lt;= #{settleVO.endDate}
-        ) fc
-        INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
-        INNER JOIN ( SELECT id, major_id, NAME, report_no, production, evaluate_amount, delivery_date FROM major_production WHERE deleted = 0 AND delivery_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
-        LEFT JOIN major m ON m.id = mp.major_id
-        LEFT JOIN user u ON u.id = m.principal_id
-        LEFT JOIN user u1 ON u1.id = m.client_manager_id
-        LEFT JOIN customer_company cc ON cc.id = m.clientele_id
-        LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
-        LEFT JOIN department d ON d.id = m.department_id
+            mpa.user_id = #{vo.userId}
+        order by settleDate DESC
     </select>
 </mapper>

+ 20 - 0
domain/src/main/java/com/dayou/vo/SettleMajorProductionVO.java

@@ -1,5 +1,6 @@
 package com.dayou.vo;
 
+import com.dayou.annotation.Excel;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -18,42 +19,61 @@ public class SettleMajorProductionVO {
 
     private Long id;
 
+    @Excel(name = "项目编号")
     private String orderId;
 
+    @Excel(name = "产品号")
     private String reportNo;
 
+    @Excel(name = "结算日期")
     private LocalDate settleDate;
 
+    @Excel(name = "认领日期")
     private LocalDate claimDate;
 
+    @Excel(name = "归档日期")
     private LocalDate saveFileDate;
 
+    @Excel(name = "送达日期")
     private LocalDate deliveryDate;
 
+    @Excel(name = "项目名称")
     private String name;
 
+    @Excel(name = "客户名称")
     private String clientName;
 
+    @Excel(name = "业务来源")
     private String clientSubName;
 
+    @Excel(name = "委托方")
     private String bailor;
 
+    @Excel(name = "市场部")
     private String marketDepartmentName;
 
+    @Excel(name = "评估部")
     private String evaluateDepartmentName;
 
+    @Excel(name = "客户经理")
     private String clientManager;
 
+    @Excel(name = "负责人")
     private String principal;
 
+    @Excel(name = "结算金额(元)")
     private BigDecimal claimAmount;
 
+    @Excel(name = "评估价值(元)")
     private BigDecimal evaluateAmount;
 
+    @Excel(name = "开票日期")
     private Date invoiceDate;
 
+    @Excel(name = "开票人")
     private String invoiceUser;
 
+    @Excel(name = "发票号")
     private String invoiceNo;
 
     private String startDate;

+ 48 - 0
domain/src/main/java/com/dayou/vo/UserCommissionProdVO.java

@@ -0,0 +1,48 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2024/5/30
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class UserCommissionProdVO {
+
+    /**
+     * 产品id (大中型,资产,个贷 产品id)
+     */
+    private Long id;
+
+    private String reportNo;
+
+    private String name;
+
+    private String businessCate;
+
+    private BigDecimal ratio;
+
+    private BigDecimal totalAmount;
+
+    private BigDecimal allotRatio;
+
+    private BigDecimal commissionAmount;
+
+    private LocalDate created;
+
+    private BigDecimal realAmount;
+
+    private LocalDate settleDate;
+
+    private Long userId;
+
+    private String startDate;
+
+    private String endDate;
+}

+ 29 - 0
domain/src/main/java/com/dayou/vo/UserCommissionTotalAmountVO.java

@@ -0,0 +1,29 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2024/5/30
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class UserCommissionTotalAmountVO {
+
+    /**
+     * userId
+     */
+    private Long id;
+
+    private String userName;
+
+    private BigDecimal commissionTotalAmount;
+
+    private String startDate;
+
+    private String endDate;
+}

+ 9 - 3
service/src/main/java/com/dayou/service/IFinanceRealFundService.java

@@ -3,9 +3,7 @@ import com.dayou.entity.FinanceRealFund;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.dayou.vo.FinanceRealFundVO;
-import com.dayou.vo.MajorProdOverdueVO;
-import com.dayou.vo.SettleMajorProductionVO;
+import com.dayou.vo.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -41,4 +39,12 @@ public interface IFinanceRealFundService extends IService<FinanceRealFund> {
     Page<SettleMajorProductionVO> majorEvaluatorSettleProd(SettleMajorProductionVO settleVO, Page page);
 
     Page<SettleMajorProductionVO> majorMarketSettleProd(SettleMajorProductionVO settleVO, Page page);
+
+    List<SettleMajorProductionVO> majorMarketSettleExport(SettleMajorProductionVO production);
+
+    List<SettleMajorProductionVO> majorEvaluatorSettleExport(SettleMajorProductionVO production);
+
+    List<UserCommissionTotalAmountVO> majorEvaluatorCommission(UserCommissionTotalAmountVO vo);
+
+    List<UserCommissionProdVO> majorEvaluatorCommissionDetail(UserCommissionProdVO vo);
 }

+ 21 - 3
service/src/main/java/com/dayou/service/impl/FinanceRealFundServiceImpl.java

@@ -10,9 +10,7 @@ import com.dayou.service.IFinanceClaimService;
 import com.dayou.service.IFinanceRealFundService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.LoginContext;
-import com.dayou.vo.FinanceRealFundVO;
-import com.dayou.vo.MajorProdOverdueVO;
-import com.dayou.vo.SettleMajorProductionVO;
+import com.dayou.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -121,4 +119,24 @@ public class FinanceRealFundServiceImpl extends ServiceImpl<FinanceRealFundMappe
         Page<SettleMajorProductionVO> result = financeRealFundMapper.majorMarketerSettleProd(page,settleVO);
         return result;
     }
+
+    @Override
+    public List<SettleMajorProductionVO> majorMarketSettleExport(SettleMajorProductionVO production) {
+        return financeRealFundMapper.majorMarketSettleExport(production);
+    }
+
+    @Override
+    public List<SettleMajorProductionVO> majorEvaluatorSettleExport(SettleMajorProductionVO production) {
+        return financeRealFundMapper.majorEvaluatorSettleExport(production);
+    }
+
+    @Override
+    public List<UserCommissionTotalAmountVO> majorEvaluatorCommission(UserCommissionTotalAmountVO vo) {
+        return financeRealFundMapper.majorEvaluatorCommission(vo);
+    }
+
+    @Override
+    public List<UserCommissionProdVO> majorEvaluatorCommissionDetail(UserCommissionProdVO vo) {
+        return financeRealFundMapper.majorEvaluatorCommissionDetail(vo);
+    }
 }