瀏覽代碼

1.新增资产评估人员与市场人员提成计算、导出及其他相关接口开发
2.资产收款预警查询与导出接口开发
3.资产结算项目查询与导出接口开发

GouGengquan 1 年之前
父節點
當前提交
fb4c93ee92

+ 167 - 0
biz-base/src/main/java/com/dayou/controller/FinanceRealFundController.java

@@ -318,5 +318,172 @@ public class FinanceRealFundController extends BaseController {
     public RestResponse<List<UserCommissionProdVO>> assetsEvaluatorCommissionDetail(UserCommissionProdVO vo) {
         return RestResponse.data(financeRealFundService.assetsEvaluatorCommissionDetail(vo));
     }
+
+    /**
+     * 资产评估人员合计导出
+     * @param vo vo
+     */
+    @GetMapping("/assets/evaluator/commission/total/export")
+    public void assetsEvaluatorTotalAmountExport(@Valid UserCommissionTotalAmountVO vo, HttpServletResponse response)throws IOException {
+        List<UserCommissionTotalAmountVO> result = financeRealFundService.assetsEvaluatorTotalAmountExport(vo);
+        String startDate = vo.getStartDate().split(" ")[0];
+        String endDate = vo.getEndDate().split(" ")[0];
+        exportPlus(response,"资产评估人员总提成金额"+ startDate +"至"+ endDate,result, UserCommissionTotalAmountVO.class);
+    }
+
+    /**
+     * 资产单个评估人员提成信息导出
+     * @param vo vo
+     */
+    @GetMapping("/assets/evaluator/commission/current/export")
+    public void assetsEvaluatorCurUserDetailExport(@Valid UserCommissionProdVO vo, HttpServletResponse response)throws IOException {
+        List<UserCommissionProdVO> result = financeRealFundService.assetsEvaluatorCurUserDetailExport(vo);
+        String startDate = vo.getStartDate().split(" ")[0];
+        String endDate = vo.getEndDate().split(" ")[0];
+        String userName = "";
+        if (CollectionUtil.isNotEmpty(result)){
+            userName = result.get(0).getUserName();
+        }
+        exportPlus(response,userName+"_资产评估人员提成详情"+ startDate +"至"+ endDate,result, UserCommissionProdVO.class);
+    }
+
+    /**
+     * 资产所有评估人员提成信息导出
+     * @param vo vo
+     */
+    @GetMapping("/assets/evaluator/commission/all/export")
+    public void assetsEvaluatorAllUserDetailExport(@Valid UserCommissionProdVO vo, HttpServletResponse response)throws IOException {
+        List<UserCommissionProdVO> result = financeRealFundService.assetsEvaluatorAllUserDetailExport(vo);
+        String startDate = vo.getStartDate().split(" ")[0];
+        String endDate = vo.getEndDate().split(" ")[0];
+        exportPlus(response,"资产评估人员提成详情"+ startDate +"至"+ endDate,result, UserCommissionProdVO.class);
+    }
+
+    /**
+     * 资产市场人员提成计算
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    @GetMapping("/commission/assets/market")
+    public RestResponse<List<UserCommissionTotalAmountVO>> assetsMarketCommission(UserCommissionTotalAmountVO vo){
+        List<UserCommissionTotalAmountVO> ret = financeRealFundService.assetsMarketCommission(vo);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 资产市场人员提成详情
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    @GetMapping("/commission/assets/market/detail")
+    public RestResponse<List<UserCommissionProdVO>> assetsMarketCommissionDetail(UserCommissionProdVO vo) {
+        return RestResponse.data(financeRealFundService.assetsMarketCommissionDetail(vo));
+    }
+
+    /**
+     * 资产市场人员提成合计导出
+     * @param vo vo
+     */
+    @GetMapping("/assets/market/commission/total/export")
+    public void assetsMarketTotalAmountExport(@Valid UserCommissionTotalAmountVO vo, HttpServletResponse response)throws IOException {
+        List<UserCommissionTotalAmountVO> result = financeRealFundService.assetsMarketTotalAmountExport(vo);
+        String startDate = vo.getStartDate().split(" ")[0];
+        String endDate = vo.getEndDate().split(" ")[0];
+        exportPlus(response,"资产市场人员总提成金额"+ startDate +"至"+ endDate,result, UserCommissionTotalAmountVO.class);
+    }
+
+    /**
+     * 资产单个市场人员提成信息导出
+     * @param vo vo
+     */
+    @GetMapping("/assets/market/commission/current/export")
+    public void assetsMarketCurUserDetailExport(@Valid UserCommissionProdVO vo, HttpServletResponse response)throws IOException {
+        List<UserCommissionProdVO> result = financeRealFundService.assetsMarketCurUserDetailExport(vo);
+        String startDate = vo.getStartDate().split(" ")[0];
+        String endDate = vo.getEndDate().split(" ")[0];
+        String userName = "";
+        if (CollectionUtil.isNotEmpty(result)){
+            userName = result.get(0).getUserName();
+        }
+        exportPlus(response,userName+"_资产市场人员提成详情"+ startDate +"至"+ endDate,result, UserCommissionProdVO.class);
+    }
+
+    /**
+     * 资产所有市场人员提成信息导出
+     * @param vo vo
+     */
+    @GetMapping("/assets/market/commission/all/export")
+    public void assetsMarketAllUserDetailExport(@Valid UserCommissionProdVO vo, HttpServletResponse response)throws IOException {
+        List<UserCommissionProdVO> result = financeRealFundService.assetsMarketAllUserDetailExport(vo);
+        String startDate = vo.getStartDate().split(" ")[0];
+        String endDate = vo.getEndDate().split(" ")[0];
+        exportPlus(response,"资产市场人员提成详情"+ startDate +"至"+ endDate,result, UserCommissionProdVO.class);
+    }
+
+    /**
+     * 资产产品逾期未收款列表
+     * @param overdueVO vo
+     * @param page 分页信息
+     * @return RestResponse<Page<AssetsProdOverdueVO>>
+     */
+    @GetMapping("/overdue/assets")
+    public RestResponse<Page<AssetsProdOverdueVO>> overdueAssets(AssetsProdOverdueVO overdueVO, Page page){
+        Page<AssetsProdOverdueVO> result = financeRealFundService.overdueAssets(overdueVO,page);
+        return RestResponse.data(result);
+    }
+
+    /**
+     * 资产产品逾期未收款列表导出
+     * @param overdueVO vo
+     */
+    @GetMapping("/overdue/assets/export")
+    public void overdueAssetsExport(AssetsProdOverdueVO overdueVO, HttpServletResponse response) throws IOException {
+        List<AssetsProdOverdueVO> result = financeRealFundService.overdueAssetsExport(overdueVO);
+        exportPlus(response,"资产产品逾期未收款列表",result, AssetsProdOverdueVO.class);
+    }
+
+    /**
+     * 资产市场人员结算产品
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return RestResponse<Page<SettleAssetsProductionVO>>
+     */
+    @GetMapping("/assets/market/settle/prod")
+    public RestResponse<Page<SettleAssetsProductionVO>> assetsMarketSettleProd(SettleAssetsProductionVO settleVO, Page page){
+        Page<SettleAssetsProductionVO> result = financeRealFundService.assetsMarketSettleProd(settleVO,page);
+        return RestResponse.data(result);
+    }
+
+    /**
+     * 资产市场人员结算产品导出
+     * @param settleVO vo
+     */
+    @GetMapping("/assets/market/settle/export")
+    public void assetsMarketSettleExport(SettleAssetsProductionVO settleVO, HttpServletResponse response)throws IOException {
+        List<SettleAssetsProductionVO> result = financeRealFundService.assetsMarketSettleExport(settleVO);
+        exportPlus(response,"资产市场人员结算项目",result, SettleMajorProductionVO.class);
+    }
+
+    /**
+     * 资产评估人员结算产品
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return RestResponse<Page<SettleAssetsProductionVO>>
+     */
+    @GetMapping("/assets/evaluator/settle/prod")
+    public RestResponse<Page<SettleAssetsProductionVO>> assetsEvaluatorSettleProd(SettleAssetsProductionVO settleVO, Page page){
+        Page<SettleAssetsProductionVO> result = financeRealFundService.assetsEvaluatorSettleProd(settleVO,page);
+        return RestResponse.data(result);
+    }
+
+    /**
+     * 资产评估人员结算产品导出
+     * @param settleVO vo
+     */
+    @GetMapping("/assets/evaluator/settle/export")
+    public void assetsEvaluatorSettleExport(SettleAssetsProductionVO settleVO, HttpServletResponse response)throws IOException {
+        List<SettleAssetsProductionVO> result = financeRealFundService.assetsEvaluatorSettleExport(settleVO);
+        exportPlus(response,"资产评估人员结算项目",result, SettleMajorProductionVO.class);
+    }
 }
 

+ 87 - 0
dao/src/main/java/com/dayou/mapper/FinanceRealFundMapper.java

@@ -65,4 +65,91 @@ public interface FinanceRealFundMapper extends CustomBaseMapper<FinanceRealFund>
      * @return List<UserCommissionTotalAmountVO>
      */
     List<UserCommissionProdVO> assetsEvaluatorCommissionDetail(@Param("vo") UserCommissionProdVO vo);
+
+    /**
+     * 资产评估人员合计导出
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    List<UserCommissionTotalAmountVO> assetsEvaluatorTotalAmountExport(@Param("vo")UserCommissionTotalAmountVO vo);
+
+    /**
+     * 资产评估人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsEvaluatorUserDetailExport(@Param("vo")UserCommissionProdVO vo);
+
+    /**
+     * 资产市场人员提成计算
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    List<UserCommissionTotalAmountVO> assetsMarketCommission(@Param("vo") UserCommissionTotalAmountVO vo);
+
+    /**
+     * 资产市场人员提成计算详情
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsMarketCommissionDetail(@Param("vo")UserCommissionProdVO vo);
+
+    /**
+     * 资产市场人员提成合计导出
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    List<UserCommissionTotalAmountVO> assetsMarketTotalAmountExport(@Param("vo")UserCommissionTotalAmountVO vo);
+
+    /**
+     * 资产市场人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsMarketUserDetailExport(@Param("vo")UserCommissionProdVO vo);
+
+    /**
+     * 资产收款逾期列表
+     * @param overdueVO vo
+     * @param page 分页参数
+     * @return Page<MajorProdOverdueVO>
+     */
+    Page<AssetsProdOverdueVO> overdueAssets(Page page, @Param("overdueVO")AssetsProdOverdueVO overdueVO);
+
+    /**
+     * 资产收款逾期列表导出
+     * @param overdueVO vo
+     * @return Page<MajorProdOverdueVO>
+     */
+    List<AssetsProdOverdueVO> overdueAssetsExport(@Param("overdueVO")AssetsProdOverdueVO overdueVO);
+
+    /**
+     * 资产市场人员结算项目查询
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return Page<SettleAssetsProductionVO>
+     */
+    Page<SettleAssetsProductionVO> assetsMarketSettleProd(@Param("settleVO")SettleAssetsProductionVO settleVO, Page page);
+
+    /**
+     * 资产市场人员结算项目导出
+     * @param settleVO vo
+     * @return List<SettleAssetsProductionVO>
+     */
+    List<SettleAssetsProductionVO> assetsMarketSettleExport(@Param("settleVO")SettleAssetsProductionVO settleVO);
+
+    /**
+     * 资产评估人员结算项目查询
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return Page<SettleAssetsProductionVO>
+     */
+    Page<SettleAssetsProductionVO> assetsEvaluatorSettleProd(@Param("settleVO")SettleAssetsProductionVO settleVO, Page page);
+
+    /**
+     * 资产评估人员结算项目导出
+     * @param settleVO vo
+     * @return List<SettleAssetsProductionVO>
+     */
+    List<SettleAssetsProductionVO> assetsEvaluatorSettleExport(@Param("settleVO")SettleAssetsProductionVO settleVO);
 }

+ 625 - 4
dao/src/main/resources/mapper/FinanceRealFundMapper.xml

@@ -799,7 +799,7 @@
 #                  ,
 #         u.name,
 #         commissionTotalAmount
-#         having 1=1
+        having 1=1
         <if test="vo!=null and vo.userName!=null and vo.userName!=''">
             and u.name like concat ('%',#{vo.userName},'%')
         </if>
@@ -820,8 +820,14 @@
             bcr.min_ratio AS ratio,
             bpd.member_id,
             bpd.performance_distribution AS allotRatio,
-            ( fc.claim_amount * ( bcr.min_ratio / 100 )* bpd.performance_distribution ) AS commissionAmount,
-            ( fc.claim_amount * ( bcr.min_ratio / 100 ) ) AS totalAmount,
+            IF(cd.defined_low_limit_amount &lt; fc.claim_amount,
+               fc.claim_amount * (cd.ratio / 100) * (bpd.performance_distribution / 100),
+               cd.defined_low_limit_amount * (cd.ratio / 100) * (bpd.performance_distribution / 100)
+            ) AS commissionAmount,
+            IF(cd.defined_low_limit_amount &lt; fc.claim_amount,
+               fc.claim_amount * (cd.ratio / 100),
+               cd.defined_low_limit_amount * (cd.ratio / 100)
+            ) AS totalAmount,
             u.name as userName
         FROM
             (
@@ -853,7 +859,7 @@
                 INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'ASSET_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, business_id, project_name, production_no, production_type, save_file_date, created FROM assets_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) ap ON ap.production_no = pf.production_no
                 LEFT JOIN assets a ON a.id = ap.business_id
-                INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_ASSET_EVALUATE' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
+                INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id, ratio,defined_low_limit_amount FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_ASSET_EVALUATE' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
                 cd.business_id = a.id
                     AND ( cd.production_id IS NULL OR cd.production_id = ap.id ))
                 LEFT JOIN business_commission_rate bcr ON bcr.id = cd.commission_rate_id
@@ -864,4 +870,619 @@
             bpd.member_id = #{vo.userId}
         order by settleDate DESC
     </select>
+
+    <!--资产评估人员合计导出-->
+    <select id="assetsEvaluatorTotalAmountExport" resultType="com.dayou.vo.UserCommissionTotalAmountVO">
+        SELECT bpd.member_id    as id,
+               u.name           as userName,
+               ROUND(SUM(IF(cd.defined_low_limit_amount &lt; fc.claim_amount,
+                            fc.claim_amount * (cd.ratio / 100) * (bpd.performance_distribution / 100),
+                            cd.defined_low_limit_amount * (cd.ratio / 100) * (bpd.performance_distribution / 100)
+                         )), 2) AS commissionTotalAmount,
+               '评估人员'       as userType,
+               '资产业务'       as businessType,
+               #{vo.startDate}  as startDate,
+               #{vo.endDate}    as endDate
+        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 = 'ASSET_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,
+                                    business_id,
+                                    project_name,
+                                    production_no,
+                                    production_type,
+                                    save_file_date,
+                                    created
+                             FROM assets_production
+                             WHERE deleted = 0
+                               AND save_file_date IS NOT NULL) ap ON ap.production_no = pf.production_no
+                 LEFT JOIN assets a ON a.id = ap.business_id
+                 INNER JOIN (SELECT id, business_id, production_id, commission_rate_id, defined_low_limit_amount, ratio
+                             FROM commission_declare
+                             WHERE business_type = 'COMMISSION_DECLARE_ASSET_EVALUATE'
+                               AND deleted = 0
+                               AND declare_result = '审核通过') cd ON (
+            cd.business_id = a.id
+                AND (cd.production_id IS NULL OR cd.production_id = ap.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 business_id, report_no, member_id, performance_distribution
+                            FROM business_performance_distribution
+                            WHERE deleted = 0
+                              AND user_type = '评估人员') bpd
+                           ON (bpd.business_id = a.id AND bpd.report_no = ap.production_no)
+                 LEFT JOIN user u ON u.id = bpd.member_id
+        GROUP BY bpd.member_id
+    </select>
+
+    <!--资产评估人员提成信息导出-->
+    <select id="assetsEvaluatorUserDetailExport" resultType="com.dayou.vo.UserCommissionProdVO">
+        SELECT
+        ap.id,
+        ROUND(fc.claim_amount,2) as realAmount,
+        ap.production_no AS reportNo,
+        IF
+        ( fc.claim_datetime > ap.save_file_date, fc.claim_datetime, ap.save_file_date ) AS settleDate,
+        ap.project_name AS name,
+        ap.created,
+        dd.NAME AS businessCate,
+        ROUND(bcr.min_ratio,2) AS ratio,
+        bpd.member_id AS userId,
+        ROUND(bpd.performance_distribution,2) AS allotRatio,
+        ROUND(IF(cd.defined_low_limit_amount &lt; fc.claim_amount,
+        fc.claim_amount * (cd.ratio / 100) * (bpd.performance_distribution / 100),
+        cd.defined_low_limit_amount * (cd.ratio / 100) * (bpd.performance_distribution / 100)
+        ),2) AS commissionAmount,
+        ROUND(IF(cd.defined_low_limit_amount &lt; fc.claim_amount,
+        fc.claim_amount * (cd.ratio / 100),
+        cd.defined_low_limit_amount * (cd.ratio / 100)
+        ),2) AS totalAmount,
+        u.name as userName
+        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 = 'ASSET_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, business_id, project_name, production_no, production_type, save_file_date, created FROM assets_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) ap ON ap.production_no = pf.production_no
+        LEFT JOIN assets a ON a.id = ap.business_id
+        INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id, ratio, defined_low_limit_amount FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_ASSET_EVALUATE' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
+        cd.business_id = a.id
+        AND ( cd.production_id IS NULL OR cd.production_id = ap.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 business_id, report_no, member_id, performance_distribution FROM business_performance_distribution WHERE deleted = 0 AND user_type = '评估人员' ) bpd ON ( bpd.business_id = a.id AND bpd.report_no = ap.production_no)
+        LEFT JOIN user u on u.id = bpd.member_id
+        <where>
+            <if test="vo!=null and vo.userId!=null">
+                and bpd.member_id = #{vo.userId}
+            </if>
+        </where>
+        order by bpd.member_id
+    </select>
+
+    <!--资产市场人员提成计算-->
+    <select id="assetsMarketCommission" resultType="com.dayou.vo.UserCommissionTotalAmountVO">
+        SELECT bpd.member_id as id,
+               u.name as userName,
+               SUM(( fc.claim_amount * ( bcr.min_ratio / 100 ) * (bpd.performance_distribution / 100))) 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 = 'ASSET_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, business_id, project_name, production_no, production_type, save_file_date, created FROM assets_production WHERE deleted = 0 AND delivery = TRUE ) ap ON ap.production_no = pf.production_no
+        LEFT JOIN assets a ON a.id = ap.business_id
+        INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_ASSET_MARKET' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
+        cd.business_id = a.id
+        AND ( cd.production_id IS NULL OR cd.production_id = ap.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 business_id, report_no,declare_id, member_id, performance_distribution FROM business_performance_distribution WHERE deleted = 0 AND user_type = '市场人员'
+
+        ) bpd ON ( bpd.business_id = a.id AND cd.id = bpd.declare_id AND (bpd.report_no is null or bpd.report_no = ap.production_no ))
+        LEFT JOIN user u ON u.id = bpd.member_id
+
+        GROUP BY
+        bpd.member_id
+        having 1=1
+        <if test="vo!=null and vo.userName!=null and vo.userName!=''">
+            and u.name like concat ('%',#{vo.userName},'%')
+        </if>
+        order by commissionTotalAmount DESC
+    </select>
+
+    <!--资产市场人员提成计算详情-->
+    <select id="assetsMarketCommissionDetail" resultType="com.dayou.vo.UserCommissionProdVO">
+        SELECT
+            ap.id,
+            fc.claim_amount as realAmount,
+            ap.production_no AS reportNo,
+            IF
+            ( fc.claim_datetime > ap.save_file_date, fc.claim_datetime, ap.save_file_date ) AS settleDate,
+            ap.project_name AS name,
+            ap.created,
+            dd.NAME AS businessCate,
+            bcr.min_ratio AS ratio,
+            bpd.member_id AS userId,
+            bpd.performance_distribution AS allotRatio,
+            ( fc.claim_amount * ( bcr.min_ratio / 100 ) * (bpd.performance_distribution / 100) ) AS commissionAmount,
+            ( fc.claim_amount * ( bcr.min_ratio / 100 ) ) AS totalAmount,
+            u.name as userName
+        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 = 'ASSET_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, business_id, project_name, production_no, production_type, save_file_date, created FROM assets_production WHERE deleted = 0 AND delivery = TRUE ) ap ON ap.production_no = pf.production_no
+                LEFT JOIN assets a ON a.id = ap.business_id
+                INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_ASSET_MARKET' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
+                cd.business_id = a.id
+                    AND ( cd.production_id IS NULL OR cd.production_id = ap.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 business_id, report_no, member_id, performance_distribution,declare_id FROM business_performance_distribution WHERE deleted = 0 AND user_type = '市场人员' ) bpd
+                    ON ( bpd.business_id = a.id AND cd.id = bpd.declare_id AND (bpd.report_no is null or bpd.report_no = ap.production_no ))
+                LEFT JOIN user u on u.id = bpd.member_id
+        WHERE
+            bpd.member_id = #{vo.userId}
+        order by settleDate DESC
+    </select>
+
+    <!--资产市场人员提成合计导出-->
+    <select id="assetsMarketTotalAmountExport" resultType="com.dayou.vo.UserCommissionTotalAmountVO">
+        SELECT bpd.member_id   as id,
+               u.name          as userName,
+               ROUND(SUM((fc.claim_amount * (bcr.min_ratio / 100) * (bpd.performance_distribution / 100))),
+                     2)        AS commissionTotalAmount,
+               '市场人员'      as userType,
+               '资产业务'      as businessType,
+               #{vo.startDate} as startDate,
+               #{vo.endDate}   as endDate
+        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 = 'ASSET_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,
+                                    business_id,
+                                    project_name,
+                                    production_no,
+                                    production_type,
+                                    save_file_date,
+                                    created
+                             FROM assets_production
+                             WHERE deleted = 0
+                               AND delivery = true) ap ON ap.production_no = pf.production_no
+                 LEFT JOIN assets a ON a.id = ap.business_id
+                 INNER JOIN (SELECT id, business_id, production_id, commission_rate_id
+                             FROM commission_declare
+                             WHERE business_type = 'COMMISSION_DECLARE_ASSET_MARKET'
+                               AND deleted = 0
+                               AND declare_result = '审核通过') cd ON (
+            cd.business_id = a.id
+                AND (cd.production_id IS NULL OR cd.production_id = ap.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 business_id, report_no, declare_id, member_id, performance_distribution
+                            FROM business_performance_distribution
+                            WHERE deleted = 0
+                              AND user_type = '市场人员') bpd ON (bpd.business_id = a.id AND cd.id = bpd.declare_id AND
+                                                                  (bpd.report_no is null or bpd.report_no = ap.production_no))
+                 LEFT JOIN user u ON u.id = bpd.member_id
+        GROUP BY bpd.member_id
+        ORDER BY commissionTotalAmount DESC
+    </select>
+
+    <!--资产市场人员提成信息导出-->
+    <select id="assetsMarketUserDetailExport" resultType="com.dayou.vo.UserCommissionProdVO">
+        SELECT
+        ap.id,
+        ROUND(fc.claim_amount,2) as realAmount,
+        ap.production_no AS reportNo,
+        IF
+        ( fc.claim_datetime > ap.save_file_date, fc.claim_datetime, ap.save_file_date ) AS settleDate,
+        ap.project_name AS name,
+        ap.created,
+        dd.`name` AS businessCate,
+        ROUND(bcr.min_ratio,2) AS ratio,
+        bpd.member_id AS userId,
+        ROUND(bpd.performance_distribution,2) AS allotRatio,
+        ROUND(( fc.claim_amount * ( bcr.min_ratio / 100 ) * (bpd.performance_distribution / 100) ),2) AS
+        commissionAmount,
+        ROUND(( fc.claim_amount * ( bcr.min_ratio / 100 ) ),2) AS totalAmount,
+        u.name as userName
+        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 =
+        'ASSET_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, business_id, project_name, production_no, production_type, save_file_date, created FROM
+        assets_production WHERE deleted = 0 AND delivery = true ) ap ON ap.production_no = pf.production_no
+        LEFT JOIN assets a ON a.id = ap.business_id
+        INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE
+        business_type = 'COMMISSION_DECLARE_ASSET_MARKET' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
+        cd.business_id = a.id
+        AND ( cd.production_id IS NULL OR cd.production_id = ap.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 business_id, report_no, member_id, performance_distribution, declare_id FROM
+        business_performance_distribution WHERE deleted = 0 AND user_type = '市场人员' ) bpd
+        ON ( bpd.business_id = a.id AND cd.id = bpd.declare_id AND (bpd.report_no is null or bpd.report_no =
+        ap.production_no ))
+        LEFT JOIN user u on u.id = bpd.member_id
+        <where>
+            <if test="vo!=null and vo.userId!=null">
+                and bpd.member_id = #{vo.userId}
+            </if>
+        </where>
+        order by bpd.member_id
+    </select>
+
+    <!--资产收款逾期查询Sql-->
+    <sql id="assetsOverdueSql">
+        SELECT
+        DATEDIFF(CURDATE(), DATE( ap.repertory_out_time )) AS overdueDay,
+        a.allot_type,
+        a.order_id,
+        a.assets_business_gener,
+        u.name AS clientManager,
+        u1.name AS principal,
+        cc1.name AS clientName,
+        cc2.name AS clientSubName,
+        pf.production_should_amount,
+        `of`.should_amount,
+        pf.standard_amount,
+        ap.*
+        FROM
+        (
+        SELECT
+        id,
+        business_id,
+        production_no,
+        ( CASE production_type WHEN 'STATEMENT' THEN '意见书' WHEN 'REPORT' THEN '评估报告' WHEN 'LETTER' THEN '意见函' WHEN 'CONSULT' THEN '咨询报告' ELSE '' END ) productionType,
+        project_name,
+        evaluate_amount,
+        repertory_out_time
+        FROM
+        assets_production ap
+        WHERE
+        deleted = 0
+        AND repertory_out_time IS NOT NULL
+        AND production_type != 'STATEMENT'
+        ) ap
+        LEFT JOIN ( SELECT business_id, production_no, production_should_amount, real_amount, standard_amount FROM production_fund WHERE business_type = 'ASSET_BUSINESS' AND deleted = 0 ) pf
+            ON ( ap.business_id = pf.business_id AND ap.production_no = pf.production_no )
+        LEFT JOIN ( SELECT business_id,should_amount FROM order_fund WHERE business_type = 'ASSET_BUSINESS' AND deleted = 0 ) `of` ON `of`.business_id = ap.business_id
+        LEFT JOIN assets a ON a.id = ap.business_id
+        LEFT JOIN user u ON u.id = a.client_manager_id
+        LEFT JOIN user u1 ON u1.id = a.principal_id
+        LEFT JOIN customer_company cc1 ON cc1.id = a.clientele_id
+        LEFT JOIN customer_company cc2 ON cc2.id = a.clientele_sub_id
+        WHERE
+        ap.productionType != 'STATEMENT'
+        AND ( pf.production_no IS NULL OR pf.real_amount IS NULL )
+        AND DATEDIFF(CURDATE(),DATE( ap.repertory_out_time )) &gt;= #{overdueVO.overdueMin}
+        <if test="overdueVO!=null and overdueVO.overdueMax!=null">
+            AND DATEDIFF(CURDATE(),DATE( ap.repertory_out_time )) &lt;= #{overdueVO.overdueMax}
+        </if>
+        <if test="overdueVO!=null and overdueVO.orderId!=null and overdueVO.orderId!=''">
+            and a.order_id = #{overdueVO.orderId}
+        </if>
+        <if test="overdueVO!=null and overdueVO.productionNo!=null and overdueVO.productionNo!=''">
+            and ap.production_no like concat ('%',#{overdueVO.productionNo},'%')
+        </if>
+        <if test="overdueVO!=null and overdueVO.principal!=null and overdueVO.principal!=''">
+            and u1.name like concat ('%',#{overdueVO.principal},'%')
+        </if>
+        order by overdueDay desc
+    </sql>
+
+    <!--资产收款逾期列表-->
+    <select id="overdueAssets" resultType="com.dayou.vo.AssetsProdOverdueVO">
+        <include refid="assetsOverdueSql" />
+    </select>
+
+    <!--资产收款逾期列表导出-->
+    <select id="overdueAssetsExport" resultType="com.dayou.vo.AssetsProdOverdueVO">
+        <include refid="assetsOverdueSql" />
+    </select>
+
+    <!--资产市场人员结算项目Sql-->
+    <sql id="assetsMarketerSettleSql">
+        SELECT
+        ap.id,
+        fc.claim_amount,
+        a.order_id,
+        ap.production_no,
+        fc.claim_datetime as claimDate,
+        ap.delivery_date,
+        ap.save_file_date,
+        IF
+        ( fc.claim_datetime > ap.delivery_date, fc.claim_datetime, ap.delivery_date ) AS settleDate,
+        ap.project_name,
+        a.bailor,
+        ap.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( department.name )
+        FROM
+        department
+        WHERE
+        id IN (
+        SELECT
+        department_id
+        FROM
+        post
+        WHERE
+        id IN ( SELECT post_id FROM user_post WHERE user_id = a.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 =
+        'ASSET_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, business_id, project_name, production_no, production_type, evaluate_amount,
+        delivery_date, save_file_date FROM assets_production WHERE deleted = 0 AND delivery = true ) ap ON ap.production_no =
+        pf.production_no
+        LEFT JOIN assets a ON a.id = ap.business_id
+        LEFT JOIN user u ON u.id = a.principal_id
+        LEFT JOIN user u1 ON u1.id = a.client_manager_id
+        LEFT JOIN customer_company cc ON cc.id = a.clientele_id
+        LEFT JOIN customer_company cc1 ON cc1.id = a.clientele_sub_id
+        LEFT JOIN department d ON d.id = a.department_id
+        <where>
+            <if test="settleVO!=null and settleVO.orderId!=null and settleVO.orderId!='' ">
+                and a.order_id = #{settleVO.orderId}
+            </if>
+            <if test="settleVO!=null and settleVO.productionNo!=null and settleVO.productionNo!='' ">
+                and ap.report_no like concat ('%',#{settleVO.productionNo},'%')
+            </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="assetsMarketSettleProd" resultType="com.dayou.vo.SettleAssetsProductionVO">
+        <include refid="assetsMarketerSettleSql" />
+    </select>
+
+    <!--资产结算项目导出-->
+    <select id="assetsMarketSettleExport" resultType="com.dayou.vo.SettleAssetsProductionVO">
+        <include refid="assetsMarketerSettleSql" />
+    </select>
+
+    <!--资产评估人员结算项目Sql-->
+    <sql id="assetsEvaluatorSettleSql">
+        SELECT
+        ap.id,
+        fc.claim_amount,
+        a.order_id,
+        ap.production_no,
+        fc.claim_datetime as claimDate,
+        ap.save_file_date,
+        IF
+        ( fc.claim_datetime > ap.save_file_date, fc.claim_datetime, ap.save_file_date ) AS settleDate,
+        ap.project_name,
+        a.bailor,
+        ap.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 = a.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 = 'ASSET_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, business_id, project_name, production_no, production_type, evaluate_amount, save_file_date FROM assets_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) ap ON ap.production_no = pf.production_no
+        LEFT JOIN assets a ON a.id = ap.business_id
+        LEFT JOIN user u ON u.id = a.principal_id
+        LEFT JOIN user u1 ON u1.id = a.client_manager_id
+        LEFT JOIN customer_company cc ON cc.id = a.clientele_id
+        LEFT JOIN customer_company cc1 ON cc1.id = a.clientele_sub_id
+        LEFT JOIN department d ON d.id = a.department_id
+        <where>
+            <if test="settleVO!=null and settleVO.orderId!=null and settleVO.orderId!='' ">
+                and a.order_id = #{settleVO.orderId}
+            </if>
+            <if test="settleVO!=null and settleVO.productionNo!=null and settleVO.productionNo!='' ">
+                and ap.production_no like concat ('%',#{settleVO.productionNo},'%')
+            </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="assetsEvaluatorSettleProd" resultType="com.dayou.vo.SettleAssetsProductionVO">
+        <include refid="assetsEvaluatorSettleSql" />
+    </select>
+
+    <!--资产评估人员结算项目导出-->
+    <select id="assetsEvaluatorSettleExport" resultType="com.dayou.vo.SettleAssetsProductionVO">
+        <include refid="assetsEvaluatorSettleSql" />
+    </select>
+
 </mapper>

+ 12 - 0
domain/src/main/java/com/dayou/entity/AssetsProduction.java

@@ -171,6 +171,18 @@ public class AssetsProduction extends BaseEntity {
     private String qrCode;
 
     /**
+     * 项目名称_产品
+     */
+    private String projectName;
+
+    /**
+     * 送达日期
+     */
+    @ImportCell
+    @ExportCell(columnName = "送达日期")
+    private LocalDateTime deliveryDate;
+
+    /**
      * 项目名称
      */
     private String assetsName;

+ 61 - 0
domain/src/main/java/com/dayou/vo/AssetsProdOverdueVO.java

@@ -0,0 +1,61 @@
+package com.dayou.vo;
+
+import com.dayou.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class AssetsProdOverdueVO {
+
+    @Excel(name = "超期天数")
+    private Integer overdueDay;
+
+    @Excel(name = "分单类型")
+    private String allotType;
+
+    @Excel(name = "项目编号")
+    private String orderId;
+
+    @Excel(name = "产品号")
+    private String productionNo;
+
+    @Excel(name = "产品类型")
+    private String productionType;
+
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @Excel(name = "客户名称")
+    private String clientName;
+
+    @Excel(name = "业务来源")
+    private String clientSubName;
+
+    @Excel(name = "资产业务类型")
+    private String assetsBusinessGener;
+
+    @Excel(name = "客户经理")
+    private String clientManager;
+
+    @Excel(name = "负责人")
+    private String principal;
+
+    @Excel(name = "评估价值")
+    private BigDecimal evaluateAmount;
+
+    @Excel(name = "订单应收款")
+    private BigDecimal shouldAmount;
+
+    @Excel(name = "标准收费")
+    private BigDecimal standardAmount;
+
+    @Excel(name = "出库时间" ,dateFormat="yyyy-MM-dd HH:mm:ss")
+    private Date repertoryOutTime;
+
+
+    private Integer overdueMin;
+
+    private Integer overdueMax;
+}

+ 76 - 0
domain/src/main/java/com/dayou/vo/SettleAssetsProductionVO.java

@@ -0,0 +1,76 @@
+package com.dayou.vo;
+
+import com.dayou.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+public class SettleAssetsProductionVO {
+
+    private Long id;
+
+    @Excel(name = "项目编号")
+    private String orderId;
+
+    @Excel(name = "产品号")
+    private String productionNo;
+
+    @Excel(name = "结算日期")
+    private LocalDate settleDate;
+
+    @Excel(name = "认领日期")
+    private LocalDate claimDate;
+
+    @Excel(name = "归档日期")
+    private LocalDate saveFileDate;
+
+    @Excel(name = "送达日期")
+    private LocalDate deliveryDate;
+
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    @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;
+
+    private String endDate;
+
+}

+ 101 - 0
service/src/main/java/com/dayou/service/IFinanceRealFundService.java

@@ -79,4 +79,105 @@ public interface IFinanceRealFundService extends IService<FinanceRealFund> {
      * @return List<UserCommissionTotalAmountVO>
      */
     List<UserCommissionProdVO> assetsEvaluatorCommissionDetail(UserCommissionProdVO vo);
+
+    /**
+     * 资产评估人员提成合计导出
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    List<UserCommissionTotalAmountVO> assetsEvaluatorTotalAmountExport(UserCommissionTotalAmountVO vo);
+
+    /**
+     * 资产单个评估人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsEvaluatorCurUserDetailExport(UserCommissionProdVO vo);
+
+    /**
+     * 资产所有评估人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsEvaluatorAllUserDetailExport(UserCommissionProdVO vo);
+
+    /**
+     * 资产市场人员提成计算
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    List<UserCommissionTotalAmountVO> assetsMarketCommission(UserCommissionTotalAmountVO vo);
+
+    /**
+     * 资产市场人员提成计算详情
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsMarketCommissionDetail(UserCommissionProdVO vo);
+
+    /**
+     * 资产市场人员提成合计导出
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    List<UserCommissionTotalAmountVO> assetsMarketTotalAmountExport(UserCommissionTotalAmountVO vo);
+
+    /**
+     * 资产单个市场人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsMarketCurUserDetailExport(UserCommissionProdVO vo);
+
+    /**
+     * 资产所有市场人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    List<UserCommissionProdVO> assetsMarketAllUserDetailExport(UserCommissionProdVO vo);
+
+    /**
+     * 资产收款逾期列表
+     * @param overdueVO vo
+     * @param page 分页参数
+     * @return Page<MajorProdOverdueVO>
+     */
+    Page<AssetsProdOverdueVO> overdueAssets(AssetsProdOverdueVO overdueVO, Page page);
+
+    /**
+     * 资产收款逾期列表导出
+     * @param overdueVO vo
+     * @return Page<MajorProdOverdueVO>
+     */
+    List<AssetsProdOverdueVO> overdueAssetsExport(AssetsProdOverdueVO overdueVO);
+
+    /**
+     * 资产市场人员结算项目查询
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return Page<SettleAssetsProductionVO>
+     */
+    Page<SettleAssetsProductionVO> assetsMarketSettleProd(SettleAssetsProductionVO settleVO, Page page);
+
+    /**
+     * 资产市场人员结算项目导出
+     * @param settleVO vo
+     * @return List<SettleAssetsProductionVO>
+     */
+    List<SettleAssetsProductionVO> assetsMarketSettleExport(SettleAssetsProductionVO settleVO);
+
+    /**
+     * 资产评估人员结算项目查询
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return Page<SettleAssetsProductionVO>
+     */
+    Page<SettleAssetsProductionVO> assetsEvaluatorSettleProd(SettleAssetsProductionVO settleVO, Page page);
+
+    /**
+     * 资产评估人员结算项目导出
+     * @param settleVO vo
+     * @return List<SettleAssetsProductionVO>
+     */
+    List<SettleAssetsProductionVO> assetsEvaluatorSettleExport(SettleAssetsProductionVO settleVO);
 }

+ 145 - 0
service/src/main/java/com/dayou/service/impl/FinanceRealFundServiceImpl.java

@@ -207,4 +207,149 @@ public class FinanceRealFundServiceImpl extends ServiceImpl<FinanceRealFundMappe
     public List<UserCommissionProdVO> assetsEvaluatorCommissionDetail(UserCommissionProdVO vo) {
         return financeRealFundMapper.assetsEvaluatorCommissionDetail(vo);
     }
+
+    /**
+     * 资产评估人员合计导出
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    @Override
+    public List<UserCommissionTotalAmountVO> assetsEvaluatorTotalAmountExport(UserCommissionTotalAmountVO vo) {
+        return financeRealFundMapper.assetsEvaluatorTotalAmountExport(vo);
+    }
+
+    /**
+     * 资产单个评估人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    @Override
+    public List<UserCommissionProdVO> assetsEvaluatorCurUserDetailExport(UserCommissionProdVO vo) {
+        return financeRealFundMapper.assetsEvaluatorUserDetailExport(vo);
+    }
+
+    /**
+     * 资产所有评估人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    @Override
+    public List<UserCommissionProdVO> assetsEvaluatorAllUserDetailExport(UserCommissionProdVO vo) {
+        vo.setUserId(null);
+        return financeRealFundMapper.assetsEvaluatorUserDetailExport(vo);
+    }
+
+    /**
+     * 资产市场人员提成计算
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    @Override
+    public List<UserCommissionTotalAmountVO> assetsMarketCommission(UserCommissionTotalAmountVO vo) {
+        return financeRealFundMapper.assetsMarketCommission(vo);
+    }
+
+    /**
+     * 资产市场人员提成计算详情
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    @Override
+    public List<UserCommissionProdVO> assetsMarketCommissionDetail(UserCommissionProdVO vo) {
+        return financeRealFundMapper.assetsMarketCommissionDetail(vo);
+    }
+
+    /**
+     * 资产市场人员提成合计导出
+     * @param vo vo
+     * @return List<UserCommissionTotalAmountVO>
+     */
+    @Override
+    public List<UserCommissionTotalAmountVO> assetsMarketTotalAmountExport(UserCommissionTotalAmountVO vo) {
+        return financeRealFundMapper.assetsMarketTotalAmountExport(vo);
+    }
+
+    /**
+     * 资产单个市场人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    @Override
+    public List<UserCommissionProdVO> assetsMarketCurUserDetailExport(UserCommissionProdVO vo) {
+        return financeRealFundMapper.assetsMarketUserDetailExport(vo);
+    }
+
+    /**
+     * 资产所有市场人员提成信息导出
+     * @param vo vo
+     * @return List<UserCommissionProdVO>
+     */
+    @Override
+    public List<UserCommissionProdVO> assetsMarketAllUserDetailExport(UserCommissionProdVO vo) {
+        vo.setUserId(null);
+        return financeRealFundMapper.assetsMarketUserDetailExport(vo);
+    }
+
+    /**
+     * 资产收款逾期列表
+     * @param overdueVO vo
+     * @param page 分页参数
+     * @return Page<MajorProdOverdueVO>
+     */
+    @Override
+    public Page<AssetsProdOverdueVO> overdueAssets(AssetsProdOverdueVO overdueVO, Page page) {
+        return financeRealFundMapper.overdueAssets(page, overdueVO);
+    }
+
+    /**
+     * 资产收款逾期列表导出
+     * @param overdueVO vo
+     * @return Page<MajorProdOverdueVO>
+     */
+    @Override
+    public List<AssetsProdOverdueVO> overdueAssetsExport(AssetsProdOverdueVO overdueVO) {
+        return financeRealFundMapper.overdueAssetsExport(overdueVO);
+    }
+
+    /**
+     * 资产市场人员结算项目查询
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return Page<SettleAssetsProductionVO>
+     */
+    @Override
+    public Page<SettleAssetsProductionVO> assetsMarketSettleProd(SettleAssetsProductionVO settleVO, Page page) {
+        return financeRealFundMapper.assetsMarketSettleProd(settleVO, page);
+    }
+
+    /**
+     * 资产市场人员结算项目导出
+     * @param settleVO vo
+     * @return List<SettleAssetsProductionVO>
+     */
+    @Override
+    public List<SettleAssetsProductionVO> assetsMarketSettleExport(SettleAssetsProductionVO settleVO) {
+        return financeRealFundMapper.assetsMarketSettleExport(settleVO);
+    }
+
+    /**
+     * 资产评估人员结算项目查询
+     * @param settleVO vo
+     * @param page 分页参数
+     * @return Page<SettleAssetsProductionVO>
+     */
+    @Override
+    public Page<SettleAssetsProductionVO> assetsEvaluatorSettleProd(SettleAssetsProductionVO settleVO, Page page) {
+        return financeRealFundMapper.assetsEvaluatorSettleProd(settleVO, page);
+    }
+
+    /**
+     * 资产评估人员结算项目导出
+     * @param settleVO vo
+     * @return List<SettleAssetsProductionVO>
+     */
+    @Override
+    public List<SettleAssetsProductionVO> assetsEvaluatorSettleExport(SettleAssetsProductionVO settleVO) {
+        return financeRealFundMapper.assetsEvaluatorSettleExport(settleVO);
+    }
 }

+ 8 - 1
sql/update_sql.sql

@@ -520,4 +520,11 @@ ALTER TABLE commission_declare ADD COLUMN defined_low_limit_amount DECIMAL(16,2)
   修改人:苟耕铨
  */
 # 表assets_production新增字段project_name
-ALTER TABLE assets_production ADD COLUMN project_name VARCHAR(255) NULL COMMENT '项目名称_产品';
+ALTER TABLE assets_production ADD COLUMN project_name VARCHAR(255) NULL COMMENT '项目名称_产品';
+
+/**
+  日期:2024-06-17
+  修改人:苟耕铨
+ */
+# 表assets_production新增字段delivery_date
+ALTER TABLE assets_production ADD COLUMN delivery_date DATETIME NULL COMMENT '送达日期';