Przeglądaj źródła

分销费手续费管理费报表基础架构

cuixinpeng 2 lat temu
rodzic
commit
874cefdcd4

+ 21 - 9
src/main/java/com/ydtech/modules/report/controller/ReportController.java

@@ -219,15 +219,27 @@ public class ReportController extends BaseController {
         return insPlySettleService.exportInsPlySettleReportList(insPlySettleReportReqVo);
     }
 
-   /* @PostMapping("/getInsPlySettleReport")
-    @ApiOperation(value = "分页获取应付统计清单数据")
-    public HttpResult<BasePageResult<InsPlySettleReportResVo>> getPayApplyReport(@RequestBody PayApplyReportReqVo payApplyReportReqVo) {
-        BasePageResult<InsPlySettleReportResVo> quoteResult = insPlySettleService.getInsPlySettleReport(payApplyReportReqVo);
+    @PostMapping("/getPayApplyUserReport")
+    @ApiOperation(value = "分页获取应付分销费和手续费统计清单数据")
+    public HttpResult<BasePageResult<PayApplyUserReportResVo>> getPayApplyUserReport(@RequestBody PayApplyUserReportReqVo payApplyUserReportReqVo) {
+        BasePageResult<PayApplyUserReportResVo> quoteResult = reportService.getPayApplyUserReportData(payApplyUserReportReqVo);
         return HttpResult.ok("success", quoteResult);
     }
-    @PostMapping("/exportInsPlySettleReport")
-    @ApiOperation(value = "导出应付统计清单数据")
-    public HttpResult<String> exportPayApplyReport(@RequestBody PayApplyReportReqVo payApplyReportReqVo) {
-        return insPlySettleService.exportInsPlySettleReport(payApplyReportReqVo);
-    }*/
+    @PostMapping("/exportPayApplyUserReport")
+    @ApiOperation(value = "导出应付统计分销费和手续费清单数据")
+    public HttpResult<String> exportPayApplyUserReport(@RequestBody PayApplyUserReportReqVo payApplyUserReportReqVo) {
+        return reportService.exportPayApplyUserReportData(payApplyUserReportReqVo);
+    }
+
+    @PostMapping("/getPayApplyDeptReport")
+    @ApiOperation(value = "分页获取应付管理费统计清单数据")
+    public HttpResult<BasePageResult<PayApplyDeptReportResVo>> getPayApplyDeptReport(@RequestBody PayApplyDeptReportReqVo payApplyDeptReportReqVo) {
+        BasePageResult<PayApplyDeptReportResVo> quoteResult = reportService.getPayApplyDeptReportData(payApplyDeptReportReqVo);
+        return HttpResult.ok("success", quoteResult);
+    }
+    @PostMapping("/exportPayApplyDeptReport")
+    @ApiOperation(value = "导出应付统计管理费清单数据")
+    public HttpResult<String> exportPayApplyDeptReport(@RequestBody PayApplyDeptReportReqVo payApplyDeptReportReqVo) {
+        return reportService.exportPayApplyDeptReportData(payApplyDeptReportReqVo);
+    }
 }

+ 13 - 3
src/main/java/com/ydtech/modules/report/dao/ReportInsurancePolicyMapper.java

@@ -3,9 +3,7 @@ package com.ydtech.modules.report.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.report.model.ReportInsurancePolicy;
-import com.ydtech.modules.report.model.vo.OrderVolumeAndCostStatisticsListResVo;
-import com.ydtech.modules.report.model.vo.OrderVolumeAndCostStatisticsResVo;
-import com.ydtech.modules.report.model.vo.StatisticsReportReqVo;
+import com.ydtech.modules.report.model.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -26,4 +24,16 @@ public interface ReportInsurancePolicyMapper extends BaseMapper<ReportInsuranceP
     List<OrderVolumeAndCostStatisticsListResVo> queryOrderAndCostList(@Param("reportReqVo")StatisticsReportReqVo reqVo);
 
 
+
+    Page<PayApplyUserReportResVo> queryPayApplyUserReportData(@Param("page") Page page, @Param("reportReqVo") PayApplyUserReportReqVo reqVo);
+
+    List<PayApplyUserReportResVo> queryPayApplyUserReportData(@Param("reportReqVo") PayApplyUserReportReqVo reqVo);
+
+    Long queryPayApplyUserReportDataCount(@Param("reportReqVo") PayApplyUserReportReqVo reqVo);
+
+    Page<PayApplyDeptReportResVo> queryPayApplyDeptReportData(@Param("page") Page page, @Param("reportReqVo") PayApplyDeptReportReqVo reqVo);
+
+    List<PayApplyDeptReportResVo> queryPayApplyDeptReportData(@Param("reportReqVo") PayApplyDeptReportReqVo reqVo);
+
+    Long queryPayApplyDeptReportDataCount(@Param("reportReqVo") PayApplyDeptReportReqVo reqVo);
 }

+ 47 - 0
src/main/java/com/ydtech/modules/report/model/vo/PayApplyDeptReportReqVo.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.report.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.time.LocalDate;
+
+/**
+ * @Author: CXP
+ * @Date: 2024/1/17 21:54
+ */
+@Data
+public class PayApplyDeptReportReqVo {
+
+
+    @ApiModelProperty(value = "机构ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "保险公司")
+    private String insCompany;
+
+    @ApiModelProperty(value = "签单开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate quoteStartDate;
+
+    @ApiModelProperty(value = "签单结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate quoteEndDate;
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+
+    @ApiModelProperty(value = "是否下钻查询  1 下钻 0非下钻查询")
+    private String isDrilling;
+
+    @ApiModelProperty(value = "是否返回上层  1 返回上层 0非返回上层")
+    private String isReturnBack;
+}

+ 73 - 0
src/main/java/com/ydtech/modules/report/model/vo/PayApplyDeptReportResVo.java

@@ -0,0 +1,73 @@
+package com.ydtech.modules.report.model.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author: CXP
+ * @Date: 2024/1/17 21:54
+ */
+@Data
+public class PayApplyDeptReportResVo {
+
+    @ExcelProperty(value = "机构名称")
+    @TableField(value = "institution")
+    private String institution;
+
+    @ExcelProperty(value = "团队名称")
+    @TableField(value = "deptname")
+    private String deptname;
+
+    @ExcelProperty(value = "业务员名称")
+    @TableField(value = "username")
+    private String username;
+
+    @ExcelProperty(value = "待付手续费")
+    @TableField(value = "wait_pay_costs_premiums")
+    private BigDecimal waitPayCostsPremiums;
+
+
+    @ExcelProperty(value = "已付手续费")
+    @TableField(value = "paid_costs_premiums")
+    private BigDecimal paidCostsPremiums;
+
+
+    @ExcelProperty(value = "手续费合计")
+    @TableField(value = "sum_costs_premiums")
+    private BigDecimal sumCostsPremiums;
+
+
+    @ExcelProperty(value = "待付分销费")
+    @TableField(value = "wait_pay_retail_premiums")
+    private BigDecimal waitPayRetailPremiums;
+
+    @ExcelProperty(value = "已付分销费")
+    @TableField(value = "paid_retail_premiums")
+    private BigDecimal paidRetailPremiums;
+
+
+    @ExcelProperty(value = "总分销费")
+    @TableField(value = "sum_retail_premiums")
+    private BigDecimal sumRetailPremiums;
+
+    /**
+     * 机构Id
+     */
+    @ExcelIgnore
+    private String institutionId;
+    /**
+     * 团队Id
+     */
+    @ExcelIgnore
+    private String deptId;
+    /**
+     * 人员Id
+     */
+    @ExcelIgnore
+    private String userId;
+
+}

+ 54 - 0
src/main/java/com/ydtech/modules/report/model/vo/PayApplyUserReportReqVo.java

@@ -0,0 +1,54 @@
+package com.ydtech.modules.report.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * @Author: CXP
+ * @Date: 2024/1/17 21:54
+ */
+@Data
+public class PayApplyUserReportReqVo {
+
+
+    @ApiModelProperty(value = "机构ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "团队代码")
+    private String teamCode;
+
+    @ApiModelProperty(value = "出单工号")
+    private String userId;
+
+    @ApiModelProperty(value = "保险公司")
+    private String insCompany;
+
+    @ApiModelProperty(value = "签单开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate quoteStartDate;
+
+    @ApiModelProperty(value = "签单结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate quoteEndDate;
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+
+    @ApiModelProperty(value = "是否下钻查询  1 下钻 0非下钻查询")
+    private String isDrilling;
+
+    @ApiModelProperty(value = "是否返回上层  1 返回上层 0非返回上层")
+    private String isReturnBack;
+}

+ 74 - 0
src/main/java/com/ydtech/modules/report/model/vo/PayApplyUserReportResVo.java

@@ -0,0 +1,74 @@
+package com.ydtech.modules.report.model.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author: CXP
+ * @Date: 2024/1/17 21:54
+ */
+@Data
+public class PayApplyUserReportResVo {
+
+    @ExcelProperty(value = "机构名称")
+    @TableField(value = "institution")
+    private String institution;
+
+    @ExcelProperty(value = "团队名称")
+    @TableField(value = "deptname")
+    private String deptname;
+
+    @ExcelProperty(value = "业务员名称")
+    @TableField(value = "username")
+    private String username;
+
+    @ExcelProperty(value = "待付手续费")
+    @TableField(value = "wait_pay_costs_premiums")
+    private BigDecimal waitPayCostsPremiums;
+
+
+    @ExcelProperty(value = "已付手续费")
+    @TableField(value = "paid_costs_premiums")
+    private BigDecimal paidCostsPremiums;
+
+
+    @ExcelProperty(value = "手续费合计")
+    @TableField(value = "sum_costs_premiums")
+    private BigDecimal sumCostsPremiums;
+
+
+    @ExcelProperty(value = "待付分销费")
+    @TableField(value = "wait_pay_retail_premiums")
+    private BigDecimal waitPayRetailPremiums;
+
+    @ExcelProperty(value = "已付分销费")
+    @TableField(value = "paid_retail_premiums")
+    private BigDecimal paidRetailPremiums;
+
+
+    @ExcelProperty(value = "总分销费")
+    @TableField(value = "sum_retail_premiums")
+    private BigDecimal sumRetailPremiums;
+
+    /**
+     * 机构Id
+     */
+    @ExcelIgnore
+    private String institutionId;
+    /**
+     * 团队Id
+     */
+    @ExcelIgnore
+    private String deptId;
+    /**
+     * 人员Id
+     */
+    @ExcelIgnore
+    private String userId;
+
+}

+ 28 - 0
src/main/java/com/ydtech/modules/report/service/ReportService.java

@@ -123,4 +123,32 @@ public interface ReportService {
      */
     public HttpResult<String> exportOrderAndCostListData(StatisticsReportReqVo reqDto);
 
+
+    /**
+     * 页获取应付分销费和手续费统计清单数据
+     * @param reqDto
+     * @return
+     */
+    public BasePageResult<PayApplyUserReportResVo> getPayApplyUserReportData(PayApplyUserReportReqVo reqDto);
+
+    /**
+     * 导出应付统计分销费和手续费清单数据
+     * @param reqDto
+     * @return
+     */
+    public HttpResult<String> exportPayApplyUserReportData(PayApplyUserReportReqVo reqDto);
+
+    /**
+     * 分页获取应付管理费统计清单数据
+     * @param reqDto
+     * @return
+     */
+    public BasePageResult<PayApplyDeptReportResVo> getPayApplyDeptReportData(PayApplyDeptReportReqVo reqDto);
+
+    /**
+     * 导出应付统计管理费清单数据
+     * @param reqDto
+     * @return
+     */
+    public HttpResult<String> exportPayApplyDeptReportData(PayApplyDeptReportReqVo reqDto);
 }

+ 39 - 3
src/main/java/com/ydtech/modules/report/service/impl/ReportServiceImpl.java

@@ -8,8 +8,6 @@ import com.ydtech.aop.exception.DescribeException;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.dao.SysDeptMapper;
-import com.ydtech.modules.admin.dao.SysUserMapper;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysDeptService;
@@ -20,7 +18,6 @@ import com.ydtech.modules.ins.utils.ExcelUtils2;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsOrders;
-import com.ydtech.modules.order.entity.vo.PolicyInsuranceReportResVo;
 import com.ydtech.modules.report.dao.ReportAgentBalanceSheetMapper;
 import com.ydtech.modules.report.dao.ReportAgentProfitMapper;
 import com.ydtech.modules.report.dao.ReportAgentStateMapper;
@@ -1172,4 +1169,43 @@ public class ReportServiceImpl implements ReportService {
         String s = EasyExcelUtils.downExcel(uploadFilePath, OrderVolumeAndCostStatisticsListResVo.class, orderVolumeAndCostStatisticsListResVos);
         return HttpResult.ok("", s);
     }
+
+    @Override
+    public BasePageResult<PayApplyUserReportResVo> getPayApplyUserReportData(PayApplyUserReportReqVo reqDto) {
+        Page<InsOrders> page = new Page<>(reqDto.getPageNum(), reqDto.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        Page<PayApplyUserReportResVo> payApplyReportResVoPage = reportInsurancePolicyMapper.queryPayApplyUserReportData(page,
+                reqDto);
+        Long total = reportInsurancePolicyMapper.queryPayApplyUserReportDataCount(reqDto);
+        payApplyReportResVoPage.setTotal(total);
+        return new BasePageResult<>(reqDto.getPageNum(), reqDto.getPageSize(),
+                payApplyReportResVoPage.getTotal(), payApplyReportResVoPage.getPages()
+                , payApplyReportResVoPage.getRecords());
+    }
+
+    @Override
+    public HttpResult<String> exportPayApplyUserReportData(PayApplyUserReportReqVo reqDto) {
+        List<PayApplyUserReportResVo> payApplyUserReportResVoList = reportInsurancePolicyMapper.queryPayApplyUserReportData(reqDto);
+        String s = EasyExcelUtils.downExcel(uploadFilePath, PayApplyUserReportResVo.class, payApplyUserReportResVoList);
+        return HttpResult.ok("", s);
+    }
+    @Override
+    public BasePageResult<PayApplyDeptReportResVo> getPayApplyDeptReportData(PayApplyDeptReportReqVo reqDto) {
+        Page<InsOrders> page = new Page<>(reqDto.getPageNum(), reqDto.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        Page<PayApplyDeptReportResVo> payApplyDeptReportResVoPage = reportInsurancePolicyMapper.queryPayApplyDeptReportData(page,
+                reqDto);
+        Long total = reportInsurancePolicyMapper.queryPayApplyDeptReportDataCount(reqDto);
+        payApplyDeptReportResVoPage.setTotal(total);
+        return new BasePageResult<>(reqDto.getPageNum(), reqDto.getPageSize(),
+                payApplyDeptReportResVoPage.getTotal(), payApplyDeptReportResVoPage.getPages()
+                , payApplyDeptReportResVoPage.getRecords());
+    }
+
+    @Override
+    public HttpResult<String> exportPayApplyDeptReportData(PayApplyDeptReportReqVo reqDto) {
+        List<PayApplyDeptReportResVo> payApplyUserReportResVoList = reportInsurancePolicyMapper.queryPayApplyDeptReportData(reqDto);
+        String s = EasyExcelUtils.downExcel(uploadFilePath, PayApplyUserReportResVo.class, payApplyUserReportResVoList);
+        return HttpResult.ok("", s);
+    }
 }

+ 66 - 0
src/main/resources/mapper/modules/report/ReportInsurancePolicyMapper.xml

@@ -748,4 +748,70 @@
         </if>
 
     </select>
+
+
+
+
+    <resultMap id="PayApplyUserReportDataMap" type="com.ydtech.modules.report.model.vo.PayApplyUserReportResVo">
+        <result property="institution" column="institution" jdbcType="VARCHAR"/>
+        <result property="deptname" column="deptname" jdbcType="VARCHAR"/>
+        <result property="username" column="username" jdbcType="VARCHAR"/>
+        <result property="waitPayCostsPremiums" column="wait_pay_costs_premiums" jdbcType="DECIMAL"/>
+        <result property="paidCostsPremiums" column="paid_costs_premiums" jdbcType="DECIMAL"/>
+        <result property="sumCostsPremiums" column="sum_costs_premiums" jdbcType="DECIMAL"/>
+        <result property="waitPayRetailPremiums" column="wait_pay_retail_premiums" jdbcType="DECIMAL"/>
+        <result property="paidRetailPremiums" column="paid_retail_premiums" jdbcType="DECIMAL"/>
+        <result property="sumRetailPremiums" column="sum_retail_premiums" jdbcType="DECIMAL"/>
+    </resultMap>
+
+
+    <select id="queryPayApplyUserReportData"  resultMap="PayApplyUserReportDataMap">
+        SELECT deptid,userid,
+          SUM( CASE feetype  WHEN '1'  THEN totalfee  ELSE 0  END )  AS sum_costs_premiums,
+          SUM( CASE feetype  WHEN '1'  THEN paidfee  ELSE 0  END )  AS paid_costs_premiums,
+          SUM( CASE feetype  WHEN '1'  THEN totalfee-paidfee  ELSE 0  END )  AS wait_pay_costs_premiums,
+          SUM( CASE feetype  WHEN '2'  THEN totalfee  ELSE 0  END )  AS sum_retail_premiums,
+          SUM( CASE feetype  WHEN '2'  THEN paidfee  ELSE 0  END )  AS paid_retail_premiums,
+          SUM( CASE feetype  WHEN '2'  THEN totalfee-paidfee  ELSE 0  END )  AS wait_pay_retail_premiums
+        FROM report_payable_basedata  p WHERE 1=1
+
+    </select>
+    <select id="queryPayApplyUserReportDataCount" resultType="Long">
+        select
+        count(1)
+        from (
+        SELECT
+        count(distinct policyno) policy_count,
+        SUM(p.`sumpremium`) sumpremium,
+        SUM(p.`supervise_costs_premiums`) supervise_costs_premiums,
+        SUM(p.`other_costs_premiums`) other_costs_premiums,
+        SUM(p.`sum_costs_premiums`) sum_costs_premiums
+        FROM
+        report_payable_basedata p WHERE 1=1
+        ) as s
+    </select>
+    <select id="queryPayApplyDeptReportData"  resultMap="PayApplyReportDataMap">
+        SELECT
+        count(distinct policyno) policy_count,
+        SUM(p.`sumpremium`) sumpremium,
+        SUM(p.`supervise_costs_premiums`) supervise_costs_premiums,
+        SUM(p.`other_costs_premiums`) other_costs_premiums,
+        SUM(p.`sum_costs_premiums`) sum_costs_premiums
+        FROM
+        report_payable_basedata p WHERE 1=1
+    </select>
+    <select id="queryPayApplyDeptReportDataCount" resultType="Long">
+        select
+        count(1)
+        from (
+        SELECT
+        count(distinct policyno) policy_count,
+        SUM(p.`sumpremium`) sumpremium,
+        SUM(p.`supervise_costs_premiums`) supervise_costs_premiums,
+        SUM(p.`other_costs_premiums`) other_costs_premiums,
+        SUM(p.`sum_costs_premiums`) sum_costs_premiums
+        FROM
+        report_payable_basedata p WHERE 1=1
+        ) as s
+    </select>
 </mapper>