Преглед изворни кода

1.控制台小定单明细导出

wuhp пре 1 година
родитељ
комит
13630999c0

+ 22 - 0
src/main/java/com/ydtech/modules/admin/controller/quoteCount/QuoteCountController.java

@@ -57,4 +57,26 @@ public class QuoteCountController {
             return HttpResult.error("查询错误"+e.getMessage());
             return HttpResult.error("查询错误"+e.getMessage());
         }
         }
     }
     }
+
+    /**
+     * @description:   控制台-小定单报价明细
+     * @author: whp
+     **/
+    @PostMapping("/quotationDetailsExcel")
+    @ApiOperation(value = "控制台-小定单报价明细")
+    public HttpResult quotationDetailsExcel(@RequestBody CompanyQutationCountDataQueryDto companyQutationCountDataQueryDto, HttpServletRequest httpServerRequest) {
+        KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
+        KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
+        if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
+            if("1".equals(kztGetDeptUtilsDto.getType())){
+                companyQutationCountDataQueryDto.setDeptIds(kztGetDeptUtilsDto.getIds());
+            } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
+                companyQutationCountDataQueryDto.setUserIds(kztGetDeptUtilsDto.getIds());
+            }
+        }
+        return this.companyDataReportService.quotationDetailsExcel(companyQutationCountDataQueryDto);
+    }
+
+
+
 }
 }

+ 65 - 0
src/main/java/com/ydtech/modules/admin/model/dto/QuotationDetailsExcel.java

@@ -0,0 +1,65 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+@Data
+public class QuotationDetailsExcel {
+    @ExcelProperty(value = "订单号",index = 0)
+    private String orderno;
+
+    @ExcelProperty(value = "协议编码",index = 1)
+    private String agreementId;
+
+
+    @ExcelProperty(value = "订单状态",index = 2)
+    private String orderstatus;
+
+    @ExcelProperty(value = "保险公司编号",index = 3)
+    private String companyId;
+
+
+    @ExcelProperty(value = "合作公司编号",index = 4)
+    private String partnerCompaniesId;
+
+    @ExcelProperty(value = "合作公司名称",index = 5)
+    private String partnerCompaniesName;
+
+    @ExcelProperty(value = "保险名称",index = 6)
+    private String inscompany;
+
+    @ExcelProperty(value = "交强保单号",index = 7)
+    private String jqpolicyno;
+
+    @ExcelProperty(value = "商业保单号",index = 8)
+    private String sypolicyno;
+
+    @ExcelProperty(value = "总保费",index = 9)
+    private String sumpremium;
+
+    @ExcelProperty(value = "交强险费用",index = 10)
+    private String jqpremium;
+
+    @ExcelProperty(value = "商业险费用",index = 11)
+    private String sypremium;
+
+    @ExcelProperty(value = "驾意险费用",index = 12)
+    private String jypremium;
+
+    @ExcelProperty(value = "录单日期",index = 13)
+    private String createtime;
+
+    @ExcelProperty(value = "签单日期",index = 14)
+    private String signingTime;
+
+    @ExcelProperty(value = "是否是人工审核",index = 15)
+    private String auditType;
+
+    @ExcelProperty(value = "机构来源",index = 16)
+    private String managementSource;
+
+    @ExcelIgnore
+    private String auditstatus;
+
+}

+ 6 - 0
src/main/java/com/ydtech/modules/admin/service/CompanyDataReportService.java

@@ -51,6 +51,12 @@ public interface CompanyDataReportService {
      **/
      **/
     HttpResult largeOrdersExcel(OrdersDataVo ordersDataVo);
     HttpResult largeOrdersExcel(OrdersDataVo ordersDataVo);
 
 
+    /**
+     * @description:   控制台-小定单报价明细
+     * @author: whp
+     **/
+    HttpResult quotationDetailsExcel(CompanyQutationCountDataQueryDto companyQutationCountDataQueryDto);
+
 }
 }
 
 
 
 

+ 72 - 0
src/main/java/com/ydtech/modules/admin/service/impl/CompanyDataReportServiceImpl.java

@@ -7,6 +7,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.dao.CompanyDataReportMapper;
 import com.ydtech.modules.admin.dao.CompanyDataReportMapper;
 import com.ydtech.modules.admin.model.dto.OrdersDataExcel;
 import com.ydtech.modules.admin.model.dto.OrdersDataExcel;
+import com.ydtech.modules.admin.model.dto.QuotationDetailsExcel;
+import com.ydtech.modules.admin.model.dto.ReceivableExcel;
 import com.ydtech.modules.admin.model.dto.TaskStatisticsExcel;
 import com.ydtech.modules.admin.model.dto.TaskStatisticsExcel;
 import com.ydtech.modules.admin.model.report.company.*;
 import com.ydtech.modules.admin.model.report.company.*;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto;
@@ -269,6 +271,76 @@ public class CompanyDataReportServiceImpl implements CompanyDataReportService {
         return HttpResult.ok("", uploadUrl + "excel/" + fileName);
         return HttpResult.ok("", uploadUrl + "excel/" + fileName);
     }
     }
 
 
+
+    /**
+     * @description:   控制台-小定单报价明细
+     * @author: whp
+     **/
+    @Override
+    public HttpResult quotationDetailsExcel(CompanyQutationCountDataQueryDto companyQutationCountDataQueryDto) {
+        HashMap<String, String> dateMapByType = getDateMapByType(companyQutationCountDataQueryDto.getDateType(), companyQutationCountDataQueryDto.getBeginDate(), companyQutationCountDataQueryDto.getEndDate());
+        companyQutationCountDataQueryDto.setBeginDate(dateMapByType.get("startDate"));
+        companyQutationCountDataQueryDto.setEndDate(dateMapByType.get("endDate"));
+        List<QuotationDetailsExcel> resultSubOrder = insAreaCompanyMapper.quotationDetailsExcel(companyQutationCountDataQueryDto);
+        this.saveTranslate(resultSubOrder);
+        String uploadPath = this.uploadPath + "/excel/";
+        Path path = Paths.get(uploadPath);
+        if (!Files.exists(path)) {
+            try {
+                Files.createDirectories(path);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        String fileName = EasyExcelUtils.downExcel(uploadPath, "小定单明细", QuotationDetailsExcel.class, resultSubOrder);
+        return HttpResult.ok("", uploadUrl + "excel/" + fileName);
+    }
+
+    private void saveTranslate(List<QuotationDetailsExcel> resultSubOrder) {
+
+        for (QuotationDetailsExcel quotationDetailsExcel : resultSubOrder) {
+            String managementSource = quotationDetailsExcel.getManagementSource();
+            if(StringUtils.isNotEmpty(quotationDetailsExcel.getManagementSource())){
+                if("1".equals(quotationDetailsExcel.getManagementSource())){
+                    quotationDetailsExcel.setManagementSource("渠道");
+                }
+                if("2".equals(quotationDetailsExcel.getManagementSource())){
+                    quotationDetailsExcel.setManagementSource("代理人");
+                }
+                if("3".equals(quotationDetailsExcel.getManagementSource())){
+                    quotationDetailsExcel.setManagementSource("电销");
+                }
+            }
+
+            if (StringUtils.isNotEmpty(quotationDetailsExcel.getAuditType()) && StringUtils.isNotEmpty(quotationDetailsExcel.getAuditstatus())) {
+                if("1".equals(quotationDetailsExcel.getAuditType()) && "1".equals(quotationDetailsExcel.getAuditstatus()) && "3".equals(quotationDetailsExcel.getOrderstatus())){
+                    quotationDetailsExcel.setAuditType("人工审核");
+                }else {
+                    quotationDetailsExcel.setAuditType("自动审核");
+                }
+            }
+
+            if(StringUtils.isNotEmpty(quotationDetailsExcel.getOrderstatus())){
+                if("0".equals(quotationDetailsExcel.getOrderstatus())){
+                    quotationDetailsExcel.setOrderstatus("报价完成");
+                }
+                if("1".equals(quotationDetailsExcel.getOrderstatus())){
+                    quotationDetailsExcel.setOrderstatus("待核保");
+                }
+                if("2".equals(quotationDetailsExcel.getOrderstatus())){
+                    quotationDetailsExcel.setOrderstatus("已核保待缴费");
+                }
+                if("3".equals(quotationDetailsExcel.getOrderstatus())){
+                    quotationDetailsExcel.setOrderstatus("已承保");
+                }
+                if("10".equals(quotationDetailsExcel.getOrderstatus())){
+                    quotationDetailsExcel.setOrderstatus("报价失败");
+                }
+            }
+
+        }
+
+    }
 }
 }
 
 
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -428,6 +428,11 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      */
      */
     List<TaskStatisticsDto> getBusinessDataList(@Param("vo") TaskStatisticsVo taskStatisticsVo);
     List<TaskStatisticsDto> getBusinessDataList(@Param("vo") TaskStatisticsVo taskStatisticsVo);
 
 
+    /**
+     * @description:   控制台-小定单报价明细
+     * @author: whp
+     **/
+    List<QuotationDetailsExcel> quotationDetailsExcel(@Param("vo") CompanyQutationCountDataQueryDto companyQutationCountDataQueryDto);
 
 
 }
 }
 
 

+ 65 - 2
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -896,6 +896,7 @@
         LEFT JOIN ins_fee_audit ifa  on ifa.ins_order_no =iac.id
         LEFT JOIN ins_fee_audit ifa  on ifa.ins_order_no =iac.id
         WHERE
         WHERE
         agree.id IS NOT NULL
         agree.id IS NOT NULL
+        and  ( io.del_flag is null   or   io.del_flag ='1')
         <if test="vo.companyId  != null  and  vo.companyId!='' ">
         <if test="vo.companyId  != null  and  vo.companyId!='' ">
             AND agree.insurance_company_id = #{vo.companyId}
             AND agree.insurance_company_id = #{vo.companyId}
         </if>
         </if>
@@ -934,6 +935,69 @@
         order  by a.parterCompanyId
         order  by a.parterCompanyId
     </select>
     </select>
 
 
+
+    <select id="quotationDetailsExcel" resultType="com.ydtech.modules.admin.model.dto.QuotationDetailsExcel">
+        select
+            iac.orderno as "orderno",
+            iac.agreement_id as "agreementId",
+            iac.orderstatus as "orderstatus",
+            iac.company_id as "companyId",
+            agree.partner_companies_id as "partnerCompaniesId",
+            ins.namesimple as "partnerCompaniesName",
+            agree.insurance_company as "inscompany",
+            iac.jqpolicyno as "jqpolicyno",
+            iac.sypolicyno as "sypolicyno",
+            iac.sumpremium as "sumpremium",
+            iac.jqpremium as "jqpremium",
+            iac.sypremium as "sypremium",
+            iac.jypremium as "jypremium",
+            iac.createtime as "createtime",
+            iac.signing_time as "signingTime",
+            sd.management_source as "managementSource",
+            agree.audit_type as "auditType",
+            ifa.auditstatus  as "auditstatus"
+            from ins_area_company iac
+            LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
+            LEFT JOIN ins_orders io ON iac.orderno = io.orderno
+            LEFT JOIN sys_dept sd ON sd.id = io.deptid
+            LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no = iac.id
+            LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
+        <where>
+            agree.id IS NOT NULL
+            and  ( io.del_flag is null   or   io.del_flag ='1')
+            <if test="vo.companyId  != null  and  vo.companyId!='' ">
+                AND agree.insurance_company_id = #{vo.companyId}
+            </if>
+            <if test="vo.parterCompanyId  != null  and  vo.parterCompanyId!='' ">
+                AND agree.partner_companies_id = #{vo.parterCompanyId}
+            </if>
+            <if test="vo.beginDate  != null  and  vo.beginDate!=''  and vo.endDate  != null  and  vo.endDate!=''">
+                AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
+            </if>
+            <if test="vo.managementSource  != null  and  vo.managementSource!=''">
+                AND sd.management_source =#{vo.managementSource}
+            </if>
+            <if test="vo.userId  != null  and vo.userId !=''">
+                AND  io.userid  =#{vo.userId}
+            </if>
+            <if test="vo.deptId  != null  and vo.deptId !=''">
+                AND  io.deptId  like concat('%',#{vo.deptId},'%')
+            </if>
+            <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
+                AND sd.id  in
+                <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
+                AND io.userid  in
+                <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
     <select id="getInsAreaCompanyError"
     <select id="getInsAreaCompanyError"
             resultType="com.ydtech.modules.admin.model.report.company.CompanyQutationCountDataDto">
             resultType="com.ydtech.modules.admin.model.report.company.CompanyQutationCountDataDto">
         SELECT
         SELECT
@@ -1548,8 +1612,7 @@
         COUNT( CASE WHEN iot.order_status =  '1' THEN 1 END  )   as  "auditOrder"
         COUNT( CASE WHEN iot.order_status =  '1' THEN 1 END  )   as  "auditOrder"
         FROM
         FROM
         (
         (
-        select iot.suborder,iot.order_status from `ins_orders_track` iot
-        GROUP BY iot.suborder ,iot.order_status
+        select DISTINCT iot.suborder,iot.order_status from `ins_orders_track` iot
         ) iot
         ) iot
         LEFT JOIN ins_area_company iac ON iac.id = iot.suborder
         LEFT JOIN ins_area_company iac ON iac.id = iot.suborder
         left join ins_orders io on io.orderno = iac.orderno
         left join ins_orders io on io.orderno = iac.orderno