Переглянути джерело

修改表格的导出添加自适应宽度,表头不遮挡

hxl13994548489 2 роки тому
батько
коміт
f8d7287b92

+ 68 - 20
src/main/java/com/ydtech/modules/admin/model/dto/ExportExpenditureTypeDetalsDto.java

@@ -1,6 +1,8 @@
 package com.ydtech.modules.admin.model.dto;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,62 +17,76 @@ import java.math.BigDecimal;
  */
 @Data
 @ApiModel("预收车险导出对象")
+@ColumnWidth(15)
 public class ExportExpenditureTypeDetalsDto {
 
     /***
-     * 订单
+     * 任务
      */
-    @ExcelProperty("任务号")
+    //@ExcelProperty("任务号")
+    @ExcelIgnore
     @ApiModelProperty(value = "任务号")
     private String  orderNo;
 
     /***
      * 订单号
      */
-    @ExcelProperty("订单号")
+    //@ExcelProperty("订单号")
+    @ExcelIgnore
     @ApiModelProperty(value = "订单号")
     private String  subOrderNo;
 
     /***
-     * 承保时间
+     * 签单时间
      */
-    @ExcelProperty("签单时间")
+    //@ExcelProperty("签单时间")
+    @ExcelIgnore
     @ApiModelProperty(value = "签单时间")
     private String  signingTime;
 
+    /***
+     * 承保时间
+     */
+    @ExcelProperty(value="签单日期",index = 1)
+    //@ExcelProperty("签单时间")
+    private String  signingTimeDay;
     /***
      * 代理人工号
      */
-    @ExcelProperty("代理人工号")
+    //@ExcelProperty("代理人工号")
+    @ExcelIgnore
     @ApiModelProperty(value = "代理人工号")
     private String  userId;
     /***
      * 承保时间
      */
-    @ExcelProperty("代理人姓名")
+    @ExcelProperty(value="业务员",index = 0)
     @ApiModelProperty(value = "代理人姓名")
     private String  userName;
 
     /***
      * 车牌
      */
-    @ExcelProperty("车牌")
+    @ExcelProperty(value="车牌",index=2)
     @ApiModelProperty(value = "车牌")
     private String licenseNo;
 
-    @ExcelProperty("交强保单号")
+    //@ExcelProperty("交强保单号")
+    @ExcelIgnore
     @ApiModelProperty(value = "交强保单号")
     private String jqapplyno;
 
 
-    @ExcelProperty("商业保单号")
+    //@ExcelProperty("商业保单号")
+    @ExcelIgnore
     @ApiModelProperty(value = "商业保单号")
     private String syapplyno;
 
     /***
      * 车架号
      */
-    @ExcelProperty("车架号")
+    //@ExcelProperty("车架号")
+    @ExcelIgnore
     @ApiModelProperty(value = "车架号")
     private String frameNo;
 
@@ -78,40 +94,72 @@ public class ExportExpenditureTypeDetalsDto {
     /***
      * 发动机号
      */
-    @ExcelProperty("发动机号")
+    //@ExcelProperty("发动机号")
+    @ExcelIgnore
     @ApiModelProperty(value = "发动机号")
     private String engineNo;
 
-    @ExcelProperty("投保险种")
+    @ExcelProperty(value="投保险种",index=5)
     @ApiModelProperty(value = "投保险种")
     private String productId;
 
 
-    @ExcelProperty("投保人姓名")
-    @ApiModelProperty(value = "投保人姓名")
+    @ExcelProperty(value="被保险人",index=3)
+    @ApiModelProperty(value = "被保险人")
     private String insuredName;
 
-    @ExcelProperty("保险公司")
+    @ExcelProperty(value="保险公司",index=4)
     @ApiModelProperty(value = "保险公司")
     private String companyName;
 
+    @ExcelProperty(value="交强保费",index=6)
+    @ApiModelProperty(value = "交强保费")
+    private BigDecimal jqPremium;
+
+    @ExcelProperty(value="车船税",index=7)
+    @ApiModelProperty(value = "车船税")
+    private BigDecimal taxamount;
+
+    @ExcelProperty(value="商业保费",index=8)
+    @ApiModelProperty(value = "商业保费")
+    private BigDecimal syPremium;
+
+    @ExcelProperty(value="非车保费",index=9)
+    @ApiModelProperty(value = "非车保费")
+    private BigDecimal jypremium;
+
+    @ExcelProperty(value="交强比例",index=10)
+    @ApiModelProperty(value = "交强比例")
+    private BigDecimal jqExportProportion;
+
+    @ExcelProperty(value="商业比例",index=11)
+    @ApiModelProperty(value = "商业比例")
+    private BigDecimal syExportProportion;
+
+    @ExcelProperty(value="非车比例",index=12)
+    @ApiModelProperty(value = "非车比例")
+    private BigDecimal noExportProportion;
     /***
      * 金额
      */
-    @ExcelProperty("交易金额")
-    @ApiModelProperty(value = "交易金额")
+    @ExcelProperty(value="结算金额",index=13)
+    @ApiModelProperty(value = "结算金额")
     private BigDecimal amount;
 
     /***
      *   未审核 0 已审核 1
      */
-    @ExcelProperty("审核状态")
+    @ExcelProperty(value="审核状态",index=14)
     @ApiModelProperty(value = "审核状态")
     private String auditstatus;
 
-    @ExcelProperty("审核时间")
+    @ExcelIgnore
+    //@ExcelProperty(value="审核时间",index=15)
     @ApiModelProperty(value = "审核时间")
     private String auditTime;
 
+    @ExcelProperty(value="审核时间",index=15)
+    private String auditTimeDay;
+
 
 }

+ 15 - 10
src/main/java/com/ydtech/modules/admin/model/dto/ExportExpenditureTypeDetalsSZDto.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.model.dto;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -16,38 +17,42 @@ import java.math.BigDecimal;
  */
 @Data
 @ApiModel("收支导出对象")
+@ColumnWidth(15)
 public class ExportExpenditureTypeDetalsSZDto {
 
     /***
      * 订单号
      */
-    @ExcelProperty("订单号")
+    @ExcelIgnore
+    //@ExcelProperty("订单号")
     @ApiModelProperty(value = "订单号")
     private String  subOrderNo;
 
     /***
      * 创建时间
      */
-    @ExcelProperty("交易时间")
+    @ColumnWidth(20)
+    @ExcelProperty(value="交易时间",index=0)
     @ApiModelProperty(value = "交易时间")
     private String   createTime;
 
     /***
      * 交易号
      */
-    @ExcelProperty("交易号")
+    @ExcelIgnore
+    //@ExcelProperty("交易号")
     @ApiModelProperty(value = "交易号")
     private String  auditiingId;
 
-    @ExcelProperty("车牌")
-    @ApiModelProperty(value = "车牌")
+    @ExcelProperty(value="车牌",index=1)
+    @ApiModelProperty(value = "车牌")
     private String licenseNo;
 
-    @ExcelProperty("业务板块")
+    @ExcelProperty(value="业务板块",index=2)
     @ApiModelProperty(value = "业务板块")
     private String businessSegmentsType;
 
-    @ExcelProperty(value = "交易类型")
+    @ExcelProperty(value = "交易类型",index=4)
     @ApiModelProperty(value = "交易类型")
     private String  transactionType;
 
@@ -55,17 +60,17 @@ public class ExportExpenditureTypeDetalsSZDto {
     /***
      * 金额
      */
-    @ExcelProperty("交易金额")
+    @ExcelProperty(value="交易金额",index=5)
     @ApiModelProperty(value = "交易金额")
     private BigDecimal amount;
 
 
 
-    @ExcelProperty("提现状态")
+    @ExcelProperty(value="提现状态",index=6)
     @ApiModelProperty(value = "提现状态  1 提现申请  2.处理中 3.提现失败  4.提现成功")
     private String auditingStatus;
 
-    @ExcelProperty("收支类型")
+    @ExcelProperty(value="收支类型",index=3)
     @ApiModelProperty(value = "收支类型")
     private String  incomeAndExpensesType;
     /***

+ 2 - 0
src/main/java/com/ydtech/modules/admin/model/dto/ExportExpenditureTypeDetalsTGDto.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.admin.model.dto;
 
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,6 +16,7 @@ import java.math.BigDecimal;
  */
 @Data
 @ApiModel("推广导出对象")
+@ColumnWidth(20)
 public class ExportExpenditureTypeDetalsTGDto {
 
     /***

+ 18 - 0
src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewMapper.java

@@ -3,6 +3,10 @@ package com.ydtech.modules.protocols.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDataDto;
+import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDeptDataDto;
+import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDeptQueryDto;
+import com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualQueryDto;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.apache.ibatis.annotations.Param;
 
@@ -144,6 +148,20 @@ public interface InsFeeOrderNewMapper extends BaseMapper<InsFeeOrderNew> {
      *  @Description:  查询可提现的金额
      */
     BigDecimal findMyAmountYTXmount(@Param("userId") String userId,@Param("status") String status);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 18:09
+     *  @Description: 查询渠道、代理人的预收、实收数据
+     */
+    Page<AdvanceAndActualDataDto> queryAdvanceAndActualDataPage(@Param("vo") AdvanceAndActualQueryDto advanceAndActualQueryDto, @Param("page") Page<AdvanceAndActualDataDto> page);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/4 9:26
+     *  @Description: 五级机构
+     */
+    Page<AdvanceAndActualDeptDataDto> queryAdvanceAndActualDeptDataPage(@Param("vo") AdvanceAndActualDeptQueryDto advanceAndActualDeptQueryDto, @Param("page") Page<AdvanceAndActualDeptDataDto> page);
 }
 
 

+ 1 - 4
src/main/java/com/ydtech/utils/ExcelUtils.java

@@ -1,10 +1,7 @@
 package com.ydtech.utils;
 
 import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.write.metadata.WriteSheet;
 
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
 import java.util.List;
 
 /**
@@ -43,7 +40,7 @@ public class ExcelUtils<T> {
      */
     public boolean writeExcel(String saveFileName, String sheetName,List<T> data) {
         try {
-            EasyExcel.write(saveFileName, clazz).sheet(sheetName).doWrite(data);
+            EasyExcel.write(saveFileName, clazz).sheet(sheetName).registerWriteHandler(new CustomCellWriteHandler()).doWrite(data);
             return true;
         }catch(Exception e){
             return false;

+ 146 - 2
src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml

@@ -843,7 +843,9 @@
         SELECT
         a.ins_order_no AS "subOrderNo",
         DATE_FORMAT(iac.signing_time, '%Y-%m-%d %H:%i:%s')  AS "signingTime",
+        DATE_FORMAT(iac.signing_time, '%Y-%m-%d')  AS "signingTimeDay",
         DATE_FORMAT(iff.audittime, '%Y-%m-%d %H:%i:%s')   AS "auditTime",
+        DATE_FORMAT(iff.audittime, '%Y-%m-%d')   AS "auditTimeDay",
         CASE iff.auditstatus WHEN '0' THEN '未审核' WHEN '1' THEN '已审核' ELSE '' END AS auditstatus,
         o.licenseno AS "licenseno",
         (
@@ -853,13 +855,20 @@
         iac.jqapplyno AS jqapplyno,
         iac.syapplyno AS syapplyno,
         iac.inscompany AS companyName,
-        o.insuredname AS insuredName,
+        JSON_UNQUOTE(json_extract(o.applyinfo, '$.name')) as insuredName,
         ins.NAME AS partnerCompaniesName,
         o.username as userName,
         o.orderno as orderno,
         o.frameno as frameNo,
         JSON_EXTRACT( o.carinfo, '$.engineNo' ) as engineNo,
-        iac.product as productId
+        iac.product as productId,
+        iac.jqpremium,
+        iac.sypremium,
+        iac.jypremium,
+        iac.taxamount,
+        a.jq_costs_export_proportion+a.jq_export_other_costs_proportion as jq_export_proportion,
+        a.sy_costs_export_proportion+a.sy_export_other_costs_proportion as sy_export_proportion,
+        a.no_costs_export_proportion+a.no_export_other_costs_proportion as no_export_proportion
         FROM
         ins_fee_audit iff
         LEFT JOIN ins_fee_order_new a ON a.ins_order_no = iff.ins_order_no
@@ -1163,4 +1172,139 @@
             au.user_id = #{userId}
           AND auditing_status = #{status}
     </select>
+
+    <select id="queryAdvanceAndActualDataPage"
+            resultType="com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDataDto">
+        SELECT
+            a.ins_order_no AS subOrderNo,
+            iac.signing_time AS signingTime,
+            o.licenseno AS licenseNo,
+            CASE
+                iff.auditstatus
+                WHEN '0' THEN
+                    '未审核'
+                WHEN '1' THEN
+                    '已审核' ELSE ''
+                END AS auditstatus,
+            o.username AS userName,
+            o.userid AS userId,
+            ifnull( a.jq_export_supervise_costs_premiums, 0 )+ ifnull( a.sy_export_supervise_costs_premiums, 0 )+ ifnull( a.no_export_supervise_costs_premiums, 0 ) AS haldingAmount,
+            ifnull( a.jq_export_other_costs_premiums, 0 )+ ifnull( a.sy_export_other_costs_premiums, 0 )+ ifnull( a.no_export_other_costs_premiums, 0 ) AS documentaryAmount,
+            ifnull( a.first_detail_premiums, 0 )+ ifnull( a.second_detail_premiums, 0 )+ ifnull( a.third_detail_premiums, 0 ) AS promotionAmount,
+            ifnull( a.jq_export_supervise_costs_premiums, 0 )+ ifnull( a.sy_export_supervise_costs_premiums, 0 )+ ifnull( a.no_export_supervise_costs_premiums, 0 ) + ifnull( a.jq_export_other_costs_premiums, 0 )+ ifnull( a.sy_export_other_costs_premiums, 0 )+ ifnull( a.no_export_other_costs_premiums, 0 ) + ifnull( a.first_detail_premiums, 0 )+ ifnull( a.second_detail_premiums, 0 )+ ifnull( a.third_detail_premiums, 0 ) AS sumAmount,
+            CASE
+                dept.management_source
+                WHEN '1' THEN
+                    '渠道'
+                WHEN '2' THEN
+                    '代理人' ELSE ''
+                END deptType
+        FROM
+            ins_fee_audit iff
+                LEFT JOIN ins_fee_order_new a ON a.ins_order_no = iff.ins_order_no
+                LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+                LEFT JOIN ins_orders o ON o.orderno = iac.orderno
+                LEFT JOIN sys_dept dept ON o.deptid = dept.id
+        WHERE
+            iac.orderstatus = '3'
+          AND (
+            dept.management_source = 1
+                OR dept.management_source = 2)
+        <if test="vo.subOrderNo!=null and  vo.subOrderNo!= ''">
+            AND iac.id =  #{vo.subOrderNo}
+        </if>
+        <if test="vo.userId!=null and  vo.userId!= ''">
+            AND  o.userid =  #{vo.userId}
+        </if>
+        <if test="vo.userName!=null and  vo.userName!= ''">
+            AND  o.username=  #{vo.userName}
+        </if>
+        <if test="vo.licenseNo!=null and  vo.licenseNo!= ''">
+            AND o.licenseno =  #{vo.licenseNo}
+        </if>
+        <if test="vo.startDate!=null and  vo.startDate!= '' and vo.endDate!=null and  vo.endDate!= ''">
+            AND iac.signing_time  BETWEEN #{vo.startDate} AND #{vo.endDate}
+        </if>
+        <if test="vo.auditstatus!=null and  vo.auditstatus!= ''">
+            AND iff.auditstatus =  #{vo.auditstatus}
+        </if>
+        <if test="vo.deptType!=null and  vo.deptType!= ''">
+            AND dept.management_source =  #{vo.deptType}
+        </if>
+           order by  iac.signing_time desc
+    </select>
+    <select id="queryAdvanceAndActualDeptDataPage"
+            resultType="com.ydtech.modules.admin.model.report.financeData.AdvanceAndActualDeptDataDto">
+        SELECT
+            b.suborder AS subOrderNo,
+            iac.signing_time AS signingTime,
+            o.licenseno AS licenseNo,
+            CASE
+                iff.auditstatus
+                WHEN '0' THEN
+                    '未审核'
+                WHEN '1' THEN
+                    '已审核' ELSE ''
+                END AS auditstatus,
+            o.username AS userName,
+            o.userid AS userId,
+            b.deptId AS deptId,
+            b.sumAmount AS sumAmount,
+            dept.NAME AS deptName
+        FROM
+            ins_fee_audit iff
+                LEFT JOIN (
+                SELECT
+                    ins_order_no AS suborder,
+                    LEFT ( dept_id, 2 ) AS deptId,
+                    ( jq_dept_premiums_level_1 + sy_dept_premiums_level_1 + no_dept_premiums_level_1 ) AS sumAmount
+                FROM
+                    ins_fee_order_new UNION ALL
+                SELECT
+                    ins_order_no AS suborder,
+                    LEFT ( dept_id, 4 ) AS deptId,
+                    ( jq_dept_premiums_level_2 + sy_dept_premiums_level_2 + no_dept_premiums_level_2 ) AS sumAmount
+                FROM
+                    ins_fee_order_new UNION ALL
+                SELECT
+                    ins_order_no AS suborder,
+                    LEFT ( dept_id, 6 ) AS deptId,
+                    ( jq_dept_premiums_level_3 + sy_dept_premiums_level_3 + no_dept_premiums_level_3 ) AS sumAmount
+                FROM
+                    ins_fee_order_new UNION ALL
+                SELECT
+                    ins_order_no AS suborder,
+                    LEFT ( dept_id, 8 ) AS deptId,
+                    ( jq_dept_premiums_level_4 + sy_dept_premiums_level_4 + no_dept_premiums_level_4 ) AS sumAmount
+                FROM
+                    ins_fee_order_new UNION ALL
+                SELECT
+                    ins_order_no AS suborder,
+                    LEFT ( dept_id, 11 ) AS deptId,
+                    ( jq_dept_premiums_level_5 + sy_dept_premiums_level_5 + no_dept_premiums_level_5 ) AS sumAmount
+                FROM
+                    ins_fee_order_new
+            ) b ON iff.ins_order_no = b.suborder
+                LEFT JOIN ins_area_company iac ON iac.id = b.suborder
+                LEFT JOIN ins_orders o ON o.orderno = iac.orderno
+                LEFT JOIN sys_dept dept ON b.deptid = dept.id
+        WHERE
+            iac.orderstatus = '3'
+        <if test="vo.subOrderNo!=null and  vo.subOrderNo!= ''">
+            AND iac.id =  #{vo.subOrderNo}
+        </if>
+        <if test="vo.licenseNo!=null and  vo.licenseNo!= ''">
+            AND o.licenseno =  #{vo.licenseNo}
+        </if>
+        <if test="vo.startDate!=null and  vo.startDate!= '' and vo.endDate!=null and  vo.endDate!= ''">
+            AND iac.signing_time  BETWEEN #{vo.startDate} AND #{vo.endDate}
+        </if>
+        <if test="vo.auditstatus!=null and  vo.auditstatus!= ''">
+            AND iff.auditstatus =  #{vo.auditstatus}
+        </if>
+        <if test="vo.deptId!=null and  vo.deptId!= ''">
+            AND  dept.id =  #{vo.deptId}
+        </if>
+        order by  iac.signing_time desc
+    </select>
 </mapper>