Explorar el Código

保单清单查询

cuixinpeng hace 2 años
padre
commit
d3d4e5d8c2

+ 6 - 0
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -182,5 +182,11 @@ public class InsOrdersController extends BaseController {
     public HttpResult<InsOrders> verifyOrders(@RequestBody VerifyOrdersVo verifyOrdersVo) {
         return insOrdersService.verifyOrders(verifyOrdersVo);
     }
+    @PostMapping("/getPolicyInsuranceReport")
+    @ApiOperation(value = "分页获取保单清单数据")
+    public HttpResult<BasePageResult<PolicyInsuranceReportResVo>> getPolicyInsuranceReport(@RequestBody PolicyInsuranceReportReqVo policyInsuranceReportReqVo) {
+        BasePageResult<PolicyInsuranceReportResVo> quoteResult = insOrdersService.getPolicyInsuranceReport(policyInsuranceReportReqVo);
+        return HttpResult.ok("success", quoteResult);
+    }
 
 }

+ 10 - 3
src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java

@@ -5,9 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.ins.model.InsOrdersExcel;
 import com.ydtech.modules.ins.model.InsOrdersExcelVo;
 import com.ydtech.modules.order.entity.InsOrders;
-import com.ydtech.modules.order.entity.vo.OrderQueryVo;
-import com.ydtech.modules.order.entity.vo.OrderVo;
-import com.ydtech.modules.order.entity.vo.VerifyOrdersVo;
+import com.ydtech.modules.order.entity.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -30,4 +28,13 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
                                    @Param("isTeamLeader") Boolean isTeamLeader,@Param("isCdy")Boolean isCdy);
 
     List<InsOrdersExcel> queryOrderList(InsOrdersExcelVo insOrdersExcelVo);
+
+    Page<PolicyInsuranceReportResVo> getPolicyInsuranceReport(@Param("page") Page page,@Param("policyReqVo")PolicyInsuranceReportReqVo policyInsuranceReportReqVo);
+
+    //List<PolicyInsuranceReportResVo> getPolicyInsuranceReport(@Param("policyReqVo")PolicyInsuranceReportReqVo policyInsuranceReportReqVo);
+
+    Long getPolicyInsuranceReportCount(@Param("policyReqVo") PolicyInsuranceReportReqVo policyInsuranceReportReqVo);
+
+
+
 }

+ 70 - 0
src/main/java/com/ydtech/modules/order/entity/vo/PolicyInsuranceReportReqVo.java

@@ -0,0 +1,70 @@
+package com.ydtech.modules.order.entity.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 javax.validation.constraints.NotEmpty;
+import java.time.LocalDate;
+
+/**
+ * @Author: CXP
+ * @Date: 2024/1/7 21:51
+ */
+@Data
+public class PolicyInsuranceReportReqVo {
+
+    @ApiModelProperty(value = "机构ID")
+    @NotEmpty(message = "机构不能为空")
+    private String deptId;
+
+    @ApiModelProperty(value = "出单工号")
+    @NotEmpty(message = "代理人工号不能为空")
+    private String userId;
+
+    @ApiModelProperty(value = "代理人名称")
+    private String userName;
+
+    @ApiModelProperty(value = "投保人姓名")
+    private String appliName;
+
+    @ApiModelProperty(value = "被保人姓名")
+    private String insureName;
+
+    @ApiModelProperty(value = "投保险种")
+    private String productId;
+
+    @ApiModelProperty("保险公司")
+    private String insCompany;
+
+    @ApiModelProperty("受理人工号")
+    private String operatorId;
+
+    @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 = "起保日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate policyStartDate;
+
+    @ApiModelProperty(value = "终保日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate policyEndDate;
+
+    @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;
+
+}

+ 92 - 0
src/main/java/com/ydtech/modules/order/entity/vo/PolicyInsuranceReportResVo.java

@@ -0,0 +1,92 @@
+package com.ydtech.modules.order.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @Author: CXP
+ * @Date: 2024/1/7 21:51
+ */
+@Data
+@TableName(autoResultMap = true)
+public class PolicyInsuranceReportResVo {
+
+    //保险公司
+    @TableField(value = "insCompany")
+    private String insCompany;
+
+    //协议
+    @TableField(value = "agreementName")
+    private String agreementName;
+
+    //保单号
+    @TableField(value = "policyNo")
+    private String policyNo;
+
+    //代理人名称
+    @TableField(value = "userName")
+    private String userName;
+
+    //签单日期
+    @TableField(value = "quoteDate")
+    private String quoteDate;
+
+    //起保日期
+    @TableField(value = "policyStartDate")
+    private String policyStartDate;
+
+    //险种
+    @TableField(value = "riskName")
+    private String riskName;
+
+    //含税保费
+    @TableField(value = "sumPremium")
+    private String sumPremium;
+
+    //车船税
+    @TableField(value = "taxPremium")
+    private String taxPremium;
+
+    //车船税滞纳金
+    @TableField(value = "taxLaterPremium")
+    private String taxLaterPremium;
+
+    //车险分项保额
+    @TableField(value = "insuranceSubAmount")
+    private String insuranceSubAmount;
+
+    //车牌号
+    @TableField(value = "licenseNo")
+    private String licenseNo;
+
+    //车辆使用性质
+    @TableField(value = "vehicleUse")
+    private String vehicleUse;
+
+    //能源种类
+    @TableField(value = "powerType")
+    private String powerType;
+
+    //车辆种类
+    @TableField(value = "ciModelClass")
+    private String ciModelClass;
+
+    //核定吨位
+    @TableField(value = "limitLoad")
+    private String limitLoad;
+
+    //投保人姓名
+    @TableField(value = "appliName")
+    private String appliName;
+
+    //被保人姓名
+    @TableField(value = "insureName")
+    private String insureName;
+
+    //团队名称
+    @TableField(value = "deptName")
+    private String deptName;
+
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -117,4 +117,7 @@ public interface InsOrdersService extends IService<InsOrders> {
      * @return true->成功 false->失败
      */
     boolean saveAndTrajectories(InsOrders insOrders);
+
+
+    BasePageResult<PolicyInsuranceReportResVo> getPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo);
 }

+ 11 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -543,6 +543,17 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return HttpResult.ok(byUseridAndLicenseNo);
     }
 
+    @Override
+    public BasePageResult<PolicyInsuranceReportResVo> getPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo) {
+        Page<InsOrders> page = new Page<>(policyInsuranceReportReqVo.getPageNum(), policyInsuranceReportReqVo.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        Page<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage = baseMapper.getPolicyInsuranceReport(page, policyInsuranceReportReqVo );
+        Long total = baseMapper.getPolicyInsuranceReportCount(policyInsuranceReportReqVo);
+        policyInsuranceReportResVoPage.setTotal(total);
+        return new BasePageResult<>(policyInsuranceReportReqVo.getPageNum(), policyInsuranceReportReqVo.getPageSize(), policyInsuranceReportResVoPage.getTotal(), policyInsuranceReportResVoPage.getPages()
+                , policyInsuranceReportResVoPage.getRecords());
+    }
+
 
     @Override
     @Transactional

+ 123 - 0
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -383,4 +383,127 @@
         </if>
     </select>
 
+    <resultMap id="PolicyInsuranceReportMap" type="com.ydtech.modules.order.entity.vo.PolicyInsuranceReportResVo">
+        <result property="insCompany" column="insCompany" jdbcType="VARCHAR"/>
+        <result property="agreementName" column="agreementName" jdbcType="VARCHAR"/>
+        <result property="policyNo" column="policyNo" jdbcType="VARCHAR"/>
+        <result property="quoteDate" column="quoteDate" jdbcType="VARCHAR"/>
+        <result property="policyStartDate" column="policyStartDate" jdbcType="VARCHAR"/>
+        <result property="riskName" column="riskName" jdbcType="VARCHAR"/>
+        <result property="sumPremium" column="sumPremium" jdbcType="DECIMAL"/>
+        <result property="taxPremium" column="taxPremium" jdbcType="DECIMAL"/>
+        <result property="taxLaterPremium" column="taxLaterPremium" jdbcType="DECIMAL"/>
+        <result property="insuranceSubAmount" column="insuranceSubAmount" jdbcType="VARCHAR"/>
+        <result property="licenseNo" column="licenseNo" jdbcType="VARCHAR"/>
+        <result property="vehicleUse" column="vehicleUse" jdbcType="VARCHAR"/>
+        <result property="powerType" column="powerType" jdbcType="VARCHAR"/>
+        <result property="ciModelClass" column="ciModelClass" jdbcType="VARCHAR"/>
+        <result property="limitLoad" column="limitLoad" jdbcType="VARCHAR"/>
+        <result property="appliName" column="appliName" jdbcType="VARCHAR"/>
+        <result property="insureName" column="insureName" jdbcType="VARCHAR"/>
+        <result property="deptName" column="deptName" jdbcType="VARCHAR"/>
+        <result property="userName" column="username" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <select id="getPolicyInsuranceReport" parameterType="java.lang.String" resultMap="PolicyInsuranceReportMap">
+
+        /*交强数据*/
+        SELECT a.`inscompany` AS insCompany,
+        (SELECT agreement_name FROM ptl_agreement t WHERE t.`id`= a.`agreement_id`) AS agreementName,
+        a.`jqpolicyno` AS policyNo,
+        getValidDate(a.`orderno`,a.`id`) AS quoteDate,
+        a.`jq_start_date` AS policyStartDate,
+        '交强险' AS riskName,
+        a.`jqpremium` AS sumPremium,
+        a.`taxamount` AS taxPremium,
+        getCarShipLateFee(a.`id`) AS taxLaterPremium,
+        '交强险 : 200000.00,' AS insuranceSubAmount,
+        b.`licenseno` AS licenseNo,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.vehicleUse'),'"',''),'3') AS vehicleUse,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.powertype'),'"',''),'2') AS powerType,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.cimodelclass'),'"',''),'4') AS ciModelClass,
+        REPLACE(JSON_EXTRACT(b.carinfo, '$.limitLoad'),'"','') AS limitLoad,
+        REPLACE(JSON_EXTRACT(applyinfo, '$.name'),'"','') AS appliName,
+        REPLACE(JSON_EXTRACT(insureinfo, '$.name'),'"','') AS insureName,
+        b.`deptname` AS deptName,
+        b.`username` AS userName
+         FROM ins_area_company a,ins_orders b WHERE  a.`jqpolicyno` IS NOT NULL AND a.`jqpolicyno`!=''   AND a.`agreement_id` IS NOT NULL
+         AND a.`orderno`=b.`orderno`
+         UNION ALL
+        /*##商业数据*/
+        SELECT  a.`inscompany` AS insCompany,
+        (SELECT agreement_name FROM ptl_agreement t WHERE t.`id`= a.`agreement_id`) AS agreementName,
+        a.`sypolicyno` AS policyNo,
+        getValidDate(a.`orderno`,a.`id`) AS quoteDate,
+        a.`sy_start_date` AS policyStartDate,
+        '商业险' AS riskName,
+        a.`sypremium` AS sumPremium,
+        '' AS taxPremium,
+        '' AS taxLaterPremium,
+        getSyAmount(a.`orderno`) AS insuranceSubAmount,
+        b.`licenseno` AS licenseNo,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.vehicleUse'),'"',''),'3') AS vehicleUse,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.powertype'),'"',''),'2') AS powerType,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.cimodelclass'),'"',''),'4') AS ciModelClass,
+        REPLACE(JSON_EXTRACT(b.carinfo, '$.limitLoad'),'"','') AS limitLoad,
+        REPLACE(JSON_EXTRACT(applyinfo, '$.name'),'"','') AS appliName,
+        REPLACE(JSON_EXTRACT(insureinfo, '$.name'),'"','') AS insureName,
+        b.`deptname` AS deptName,
+        b.`username` AS userName
+         FROM ins_area_company a,ins_orders b WHERE  a.`sypolicyno` IS NOT NULL AND a.`syapplyno`!=''   AND a.`agreement_id` IS NOT NULL
+         AND a.`orderno`=b.`orderno`
+
+
+    </select>
+    <select id="getPolicyInsuranceReportCount" resultType="Long">
+        select
+        count(1)
+        from (
+        /*交强数据*/
+        SELECT a.`inscompany` AS insCompany,
+        (SELECT agreement_name FROM ptl_agreement t WHERE t.`id`= a.`agreement_id`) AS agreementName,
+        a.`jqpolicyno` AS policyNo,
+        getValidDate(a.`orderno`,a.`id`) AS quoteDate,
+        a.`jq_start_date` AS policyStartDate,
+        '交强险' AS riskName,
+        a.`jqpremium` AS sumPremium,
+        a.`taxamount` AS taxPremium,
+        getCarShipLateFee(a.`id`) AS taxLaterPremium,
+        '交强险 : 200000.00,' AS insuranceSubAmount,
+        b.`licenseno` AS licenseNo,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.vehicleUse'),'"',''),'3') AS vehicleUse,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.powertype'),'"',''),'2') AS powerType,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.cimodelclass'),'"',''),'4') AS ciModelClass,
+        REPLACE(JSON_EXTRACT(b.carinfo, '$.limitLoad'),'"','') AS limitLoad,
+        REPLACE(JSON_EXTRACT(applyinfo, '$.name'),'"','') AS appliName,
+        REPLACE(JSON_EXTRACT(insureinfo, '$.name'),'"','') AS insureName,
+        b.`deptname` AS deptName,
+        b.`username` AS userName
+         FROM ins_area_company a,ins_orders b WHERE  a.`jqpolicyno` IS NOT NULL AND a.`jqpolicyno`!=''   AND a.`agreement_id` IS NOT NULL
+         AND a.`orderno`=b.`orderno`
+         UNION ALL
+        /*##商业数据*/
+        SELECT  a.`inscompany` AS insCompany,
+        (SELECT agreement_name FROM ptl_agreement t WHERE t.`id`= a.`agreement_id`) AS agreementName,
+        a.`sypolicyno` AS policyNo,
+        getValidDate(a.`orderno`,a.`id`) AS quoteDate,
+        a.`sy_start_date` AS policyStartDate,
+        '商业险' AS riskName,
+        a.`sypremium` AS sumPremium,
+        '' AS taxPremium,
+        '' AS taxLaterPremium,
+        getSyAmount(a.`orderno`) AS insuranceSubAmount,
+        b.`licenseno` AS licenseNo,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.vehicleUse'),'"',''),'3') AS vehicleUse,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.powertype'),'"',''),'2') AS powerType,
+        getCodeName(REPLACE(JSON_EXTRACT(b.carinfo, '$.cimodelclass'),'"',''),'4') AS ciModelClass,
+        REPLACE(JSON_EXTRACT(b.carinfo, '$.limitLoad'),'"','') AS limitLoad,
+        REPLACE(JSON_EXTRACT(applyinfo, '$.name'),'"','') AS appliName,
+        REPLACE(JSON_EXTRACT(insureinfo, '$.name'),'"','') AS insureName,
+        b.`deptname` AS deptName,
+        b.`username` AS userName
+         FROM ins_area_company a,ins_orders b WHERE  a.`sypolicyno` IS NOT NULL AND a.`syapplyno`!=''   AND a.`agreement_id` IS NOT NULL
+         AND a.`orderno`=b.`orderno`
+        ) as s
+    </select>
 </mapper>