Pārlūkot izejas kodu

1.控制台利润分析添加应付金额导出
2.添加字段应付金额

wuhp 1 gadu atpakaļ
vecāks
revīzija
59a7a15afa

+ 11 - 0
src/main/java/com/ydtech/modules/admin/controller/profitAnalysis/ProfitAnalysisController.java

@@ -102,6 +102,17 @@ public class ProfitAnalysisController {
     }
 
 
+    /**
+     * @description:   控制台-利润分析应付金额明细导出
+     * @author: whp
+     **/
+    @PostMapping("/payableAmountExcel")
+    @ApiOperation(value = "控制台-利润分析应付金额明细导出")
+    public HttpResult payableAmountExcel(@RequestBody ProfitAnalysisQueryDto profitAnalysisQueryDto) {
+        return this.profitAnalysisService.payableAmountExcel(profitAnalysisQueryDto);
+    }
+
+
 
 
 

+ 171 - 0
src/main/java/com/ydtech/modules/admin/model/dto/PayableAmountExcel.java

@@ -0,0 +1,171 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class PayableAmountExcel {
+    @ApiModelProperty("保险公司id")
+    @ExcelIgnore
+    private String companyId;
+
+    @ApiModelProperty("接口类型")
+    @ExcelIgnore
+    private String apiType;
+
+    @ApiModelProperty("驾意json字符串")
+    @ExcelIgnore
+    private String crossInsurance;
+
+    @ApiModelProperty("渠道")
+    @ExcelProperty("渠道")
+    private String username;
+
+    @ApiModelProperty("出单日期")
+    @ExcelProperty("出单日期")
+    private String signingTime;
+
+    @ApiModelProperty("车牌号")
+    @ExcelProperty("车牌号")
+    private String licenseno;
+
+    @ApiModelProperty("被保险人")
+    @ExcelProperty("被保险人")
+    private String applyname;
+
+    @ApiModelProperty("承保公司")
+    @ExcelProperty("承保公司")
+    private String insCompany;
+
+    @ApiModelProperty("险种")
+    @ExcelProperty("险种")
+    private String product;
+
+    @ApiModelProperty("合作公司")
+    @ExcelProperty("合作公司")
+    private String namesimple;
+
+    @ApiModelProperty("交强保单号")
+    @ExcelProperty("交强保单号")
+    private String jqapplyno;
+
+    @ApiModelProperty("商业保单号")
+    @ExcelProperty("商业保单号")
+    private String syapplyno;
+
+    @ApiModelProperty("非车保单号")
+    @ExcelProperty("非车保单号")
+    private String jyapplyno;
+
+    @ApiModelProperty("交强保费")
+    @ExcelProperty("交强保费")
+    private String jqpremium;
+
+    @ApiModelProperty("车船税")
+    @ExcelProperty("车船税")
+    private String taxamount;
+
+    @ApiModelProperty("商业保费")
+    @ExcelProperty("商业保费")
+    private String sypremium;
+
+    @ApiModelProperty("非车保费")
+    @ExcelProperty("非车保费")
+    private String jypremium;
+
+    @ExcelProperty(value = "协议号")
+    private String agreementCode;
+
+    @ExcelProperty(value = "工号描述")
+    private String jobDescription;
+
+    @ExcelProperty(value = "对接人")
+    private String dockingPerson;
+
+    @ExcelProperty(value = "联系方式")
+    private String dockingPhone;
+
+    @ApiModelProperty("交强出口比例")
+    @ExcelProperty("交强出口比例")
+    private String jqExportProportion;
+
+    @ApiModelProperty("商业出口比例")
+    @ExcelProperty("商业出口比例")
+    private String syExportProportion;
+
+    @ApiModelProperty("非车出口比例")
+    @ExcelProperty("非车出口比例")
+    private String noExportProportion;
+
+    @ApiModelProperty("结算金额")
+    @ExcelProperty("结算金额")
+    private String settlement;
+
+    @ApiModelProperty("交强入口")
+    @ExcelProperty("交强入口")
+    private String jqEntranceProportion;
+
+    @ApiModelProperty("商业入口")
+    @ExcelProperty("商业入口")
+    private String syEntranceProportion;
+
+    @ApiModelProperty("非车入口")
+    @ExcelProperty("非车入口")
+    private String noEntranceProportion;
+
+    @ApiModelProperty("应收金额")
+    @ExcelProperty("应收金额")
+    private String receivable;
+
+    @ApiModelProperty("一级机构管理费")
+    @ExcelProperty("一级机构管理费")
+    private String deptPremiumsLevel1;
+
+    @ApiModelProperty("二级机构管理费")
+    @ExcelProperty("二级机构管理费")
+    private String deptPremiumsLevel2;
+
+    @ApiModelProperty("三级机构管理费")
+    @ExcelProperty("三级机构管理费")
+    private String deptPremiumsLevel3;
+
+    @ApiModelProperty("四级机构管理费")
+    @ExcelProperty("四级机构管理费")
+    private String deptPremiumsLevel4;
+
+    @ApiModelProperty("五级机构管理费")
+    @ExcelProperty("五级机构管理费")
+    private String deptPremiumsLevel5;
+
+    @ApiModelProperty("一级分销金额")
+    @ExcelProperty("一级分销金额")
+    private String firstDetailPremiums;
+
+    @ApiModelProperty("二级分销金额")
+    @ExcelProperty("二级分销金额")
+    private String secondDetailPremiums;
+
+    @ApiModelProperty("三级分销金额")
+    @ExcelProperty("三级分销金额")
+    private String thirdDetailPremiums;
+
+    @ApiModelProperty("交强利润差值")
+    @ExcelProperty("交强利润差值")
+    private String jqProfitMarginPremiums;
+
+    @ApiModelProperty("商业利润差值")
+    @ExcelProperty("商业利润差值")
+    private String syProfitMarginPremiums;
+
+    @ApiModelProperty("非车利润差值")
+    @ExcelProperty("非车利润差值")
+    private String noProfitMarginPremiums;
+
+
+    @ApiModelProperty("是否是补录订单")
+    @ExcelProperty("补录订单")
+    private String isExternal;
+
+}

+ 5 - 0
src/main/java/com/ydtech/modules/admin/service/ProfitAnalysisService.java

@@ -43,6 +43,11 @@ public interface ProfitAnalysisService {
      **/
     HttpResult payAmountExcel(ProfitAnalysisQueryDto profitAnalysisQueryDto);
 
+    /**
+     * @description:   控制台-利润分析应付金额明细导出
+     * @author: whp
+     **/
+    HttpResult payableAmountExcel(ProfitAnalysisQueryDto profitAnalysisQueryDto);
 }
 
 

+ 38 - 0
src/main/java/com/ydtech/modules/admin/service/impl/ProfitAnalysisServiceImpl.java

@@ -2,7 +2,9 @@ package com.ydtech.modules.admin.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.dto.PayAmountExcel;
+import com.ydtech.modules.admin.model.dto.PayableAmountExcel;
 import com.ydtech.modules.admin.model.dto.ReceivableExcel;
 import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisDto;
 import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisQueryDto;
@@ -16,7 +18,12 @@ import com.ydtech.modules.inv.model.InvAccount;
 import com.ydtech.modules.inv.model.InvAccountCardVo;
 import com.ydtech.modules.inv.model.InvAccountExpenses;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
+import com.ydtech.modules.order.entity.vo.AuditExportVo;
+import com.ydtech.modules.order.entity.vo.CarBusinessDetailVo;
+import com.ydtech.modules.order.service.ExcelExportService;
 import com.ydtech.utils.BigDecimalUtils;
+import com.ydtech.utils.ExcelUtils;
+import com.ydtech.utils.OrderUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +60,12 @@ public class ProfitAnalysisServiceImpl implements ProfitAnalysisService {
     @Autowired
     private InvAccountExpensesMapper invAccountExpensesMapper;
 
+    @Autowired
+    private ExcelExportService excelExportService;
+    private String EXCEL_PATH = "excel//";
+    private String UPLOAD_PATH = "/upload//excel//";
+
+
 
     @Value("${upload.file.path}")
     private String uploadPath;
@@ -441,6 +454,31 @@ public class ProfitAnalysisServiceImpl implements ProfitAnalysisService {
         String fileName = EasyExcelUtils.downExcel(uploadPath, "实付明细", PayAmountExcel.class, list);
         return HttpResult.ok("", uploadUrl + "excel/" + fileName);
     }
+    /**
+     * @description:   控制台-利润分析应付金额明细导出
+     * @author: whp
+     **/
+    @Override
+    public HttpResult payableAmountExcel(ProfitAnalysisQueryDto profitAnalysisQueryDto) {
+        List<PayableAmountExcel> auditExportList = profitAnalysisMapper.getAuditExportList(profitAnalysisQueryDto);
+        auditExportList.forEach(item->{
+            //获取驾意险保单号
+            if(item.getCrossInsurance() != null) {
+                item.setJyapplyno(OrderUtils.getJyPolicyNo(item.getCompanyId(), item.getApiType(), item.getCrossInsurance(), item.getIsExternal()));
+            }
+            //处理补录订单
+            if(item.getIsExternal().equals("0")){
+                item.setIsExternal("否");
+            }else if(item.getIsExternal().equals("1")){
+                item.setIsExternal("是");
+            }
+
+        });
+        String uploadPath = this.uploadPath + "/excel/";
+        String fileName = EasyExcelUtils.downExcel(uploadPath, "应付明细导出", PayableAmountExcel.class, auditExportList);
+        return HttpResult.ok("", uploadUrl + "excel/" + fileName);
+
+    }
 }
 
 

+ 9 - 0
src/main/java/com/ydtech/modules/console/dao/ProfitAnalysisMapper.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.console.dao;
 
 import com.ydtech.modules.admin.model.dto.PayAmountExcel;
+import com.ydtech.modules.admin.model.dto.PayableAmountExcel;
 import com.ydtech.modules.admin.model.dto.ReceivableExcel;
 import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisDto;
 import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisQueryDto;
@@ -58,4 +59,12 @@ public interface ProfitAnalysisMapper {
      * @author: whp
      **/
     List<PayAmountExcel> payAmountExcel (@Param("vo") ProfitAnalysisQueryDto profitAnalysisQueryDto);
+
+    /**
+     *
+     * @param profitAnalysisQueryDto
+     * @return 利润分析应付导出
+     */
+    List<PayableAmountExcel> getAuditExportList(@Param("vo") ProfitAnalysisQueryDto profitAnalysisQueryDto);
+
 }

+ 126 - 3
src/main/resources/mapper/modules/console/ProfitAnalysisMapper.xml

@@ -339,9 +339,9 @@
         sum(a.sy_supervise_costs_proportion) as "sySuperviseCostsProportion",
         sum(a.no_supervise_costs_premiums) as "noSuperviseCostsPremiums",
         sum(a.no_supervise_costs_proportion) as "noSuperviseCostsProportion",
-        sum(a.jq_premium) as "jqPremium",
-        sum(a.sy_premium) as "syPremium",
-        sum(a.no_premium) as "noPremium",
+        max(a.jq_premium) as "jqPremium",
+        max(a.sy_premium) as "syPremium",
+        max(a.no_premium) as "noPremium",
         sum(a.jq_other_costs_premium) as "jqOtherCostsPremium",
         sum(a.sy_other_costs_premium) as "syOtherCostsPremium",
         sum(a.no_other_costs_premium) as "noOtherCostsPremium",
@@ -389,4 +389,127 @@
         </where>
     </select>
 
+    <select id="getAuditExportList" resultType="com.ydtech.modules.admin.model.dto.PayableAmountExcel">
+        SELECT
+        iac.company_id,
+        iac.api_type,
+        iac.cross_insurance,
+        io.username,
+        iac.signing_time,
+        io.licenseno,
+        JSON_UNQUOTE(json_extract(io.applyinfo, '$.name')) as applyname,
+        io.ins_company,
+        io.product,
+        eic.namesimple,
+        iac.jqapplyno,
+        iac.syapplyno,
+        iac.cross_insurance,
+        iac.jqpremium,
+        iac.sypremium,
+        iac.jypremium,
+        iac.taxamount,
+        ifo.jq_costs_export_proportion + ifo.jq_export_other_costs_proportion AS jq_export_proportion,
+        ifo.sy_costs_export_proportion+ifo.sy_export_other_costs_proportion as sy_export_proportion,
+        ifo.no_costs_export_proportion+ifo.no_export_other_costs_proportion as no_export_proportion,
+        ifo.jq_export_supervise_costs_premiums + ifo.sy_export_supervise_costs_premiums + ifo.no_export_supervise_costs_premiums + ifo.jq_export_other_costs_premiums + ifo.sy_export_other_costs_premiums + ifo.no_export_other_costs_premiums as settlement,
+        ifo.jq_supervise_costs_proportion + ifo.jq_other_costs_proportion as jq_entrance_proportion,
+        ifo.sy_supervise_costs_proportion + ifo.sy_other_costs_proportion as sy_entrance_proportion,
+        ifo.no_supervise_costs_proportion + ifo.no_other_costs_proportion as no_entrance_proportion,
+        ifo.jq_supervise_costs_premiums + ifo.jq_other_costs_premiums + ifo.sy_supervise_costs_premiums + ifo.sy_other_costs_premiums + ifo.no_supervise_costs_premiums + ifo.no_other_costs_premiums as receivable,
+        ifo.jq_dept_premiums_level_1 + ifo.sy_dept_premiums_level_1 + ifo.no_dept_premiums_level_1 as dept_premiums_level_1,
+        ifo.jq_dept_premiums_level_2 + ifo.sy_dept_premiums_level_2 + ifo.no_dept_premiums_level_2 as dept_premiums_level_2,
+        ifo.jq_dept_premiums_level_3 + ifo.sy_dept_premiums_level_3 + ifo.no_dept_premiums_level_3 as dept_premiums_level_3,
+        ifo.jq_dept_premiums_level_4 + ifo.sy_dept_premiums_level_4 + ifo.no_dept_premiums_level_4 as dept_premiums_level_4,
+        ifo.jq_dept_premiums_level_5 + ifo.sy_dept_premiums_level_5 + ifo.no_dept_premiums_level_5 as dept_premiums_level_5,
+        ifo.first_detail_premiums,
+        ifo.second_detail_premiums,
+        ifo.third_detail_premiums,
+        ifo.jq_profit_margin_premiums,
+        ifo.sy_profit_margin_premiums,
+        ifo.no_profit_margin_premiums,
+        io.is_external,
+        pa.agreement_code,
+        pa.job_description,
+        pa.docking_person,
+        pa.docking_phone
+        FROM
+        ins_fee_order_new ifo
+        LEFT JOIN ins_fee_audit ifa ON ifo.ins_order_no = ifa.ins_order_no
+        left join ins_area_company iac on  ifa.ins_order_no = iac.id
+        left join ins_orders io on iac.orderno = io.orderno
+        left join ptl_agreement pa on iac.agreement_id =  pa.id
+        left join esm_ins_company eic on pa.partner_companies_id =  eic.id
+        WHERE
+            ifa.auditstatus = '1'
+            AND
+            iac.orderstatus = 3
+            AND io.orderstatus = '3'
+            <if test="vo.year !=null  and  vo.year !=''">
+                and DATE_FORMAT( iac.signing_time, '%Y') =#{vo.year}
+            </if>
+            GROUP BY
+            io.orderno,
+            iac.api_type,
+            iac.cross_insurance,
+            iac.signing_time,
+            eic.namesimple,
+            iac.jqapplyno,
+            iac.syapplyno,
+            iac.jqpremium,
+            iac.company_id,
+            iac.sypremium,
+            iac.jypremium,
+            iac.taxamount,
+            ifo.jq_costs_export_proportion,
+            ifo.jq_export_other_costs_proportion,
+            ifo.sy_costs_export_proportion,
+            ifo.sy_export_other_costs_proportion,
+            ifo.no_costs_export_proportion,
+            ifo.no_export_other_costs_proportion,
+            ifo.jq_export_supervise_costs_premiums,
+            ifo.sy_export_supervise_costs_premiums,
+            ifo.no_export_supervise_costs_premiums,
+            ifo.jq_export_other_costs_premiums,
+            ifo.sy_export_other_costs_premiums,
+            ifo.no_export_other_costs_premiums,
+            ifo.jq_supervise_costs_proportion,
+            ifo.jq_other_costs_proportion,
+            ifo.sy_supervise_costs_proportion,
+            ifo.sy_other_costs_proportion,
+            ifo.no_supervise_costs_proportion,
+            ifo.no_other_costs_proportion,
+            ifo.jq_supervise_costs_premiums,
+            ifo.jq_other_costs_premiums,
+            ifo.sy_supervise_costs_premiums,
+            ifo.sy_other_costs_premiums,
+            ifo.no_supervise_costs_premiums,
+            ifo.no_other_costs_premiums,
+            ifo.jq_dept_premiums_level_1,
+            ifo.jq_dept_premiums_level_2,
+            ifo.jq_dept_premiums_level_3,
+            ifo.jq_dept_premiums_level_4,
+            ifo.jq_dept_premiums_level_5,
+            ifo.sy_dept_premiums_level_1,
+            ifo.sy_dept_premiums_level_2,
+            ifo.sy_dept_premiums_level_3,
+            ifo.sy_dept_premiums_level_4,
+            ifo.sy_dept_premiums_level_5,
+            ifo.no_dept_premiums_level_1,
+            ifo.no_dept_premiums_level_2,
+            ifo.no_dept_premiums_level_3,
+            ifo.no_dept_premiums_level_4,
+            ifo.no_dept_premiums_level_5,
+            ifo.first_detail_premiums,
+            ifo.second_detail_premiums,
+            ifo.third_detail_premiums,
+            ifo.jq_profit_margin_premiums,
+            ifo.sy_profit_margin_premiums,
+            ifo.no_profit_margin_premiums,
+            pa.agreement_code,
+            pa.job_description,
+            pa.docking_person,
+            pa.docking_phone
+
+    </select>
+
 </mapper>