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

Merge remote-tracking branch 'origin/master'

wanghao пре 3 месеци
родитељ
комит
d82da5c92d
29 измењених фајлова са 1065 додато и 1050 уклоњено
  1. 7 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementDetailExcelDto.java
  2. 5 0
      commons/src/main/java/com/jzg/commons/entity/quote/vo/base/OrderBase.java
  3. 3 0
      commons/src/main/java/com/jzg/commons/entity/vo/IncomeAndExpenseVo.java
  4. 8 2
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/service/impl/ChengTaiApiRequestImpl.java
  5. 10 1
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/build/DaDiCrawlerQuoteResultVoBuild.java
  6. 2 1
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/component/DaDiCrawlerRequestComponent.java
  7. 2 0
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiEleProposalQRCoreDataRequest.java
  8. 18 28
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiInsurancePlanRequest.java
  9. 1 1
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiQuoteRequest.java
  10. 7 1
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiEleProposalQRCoreDataResponse.java
  11. 4 0
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiJointSalesResponse.java
  12. 63 1
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiQuoteResponse.java
  13. 12 2
      tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/service/impl/DaDiCrawlerRequestImpl.java
  14. 51 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerProposalNoSaveRequest.java
  15. 12 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java
  16. 23 7
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCalculationRequest.java
  17. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java
  18. 0 0
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/utils/HengBangAESUtil.java
  19. 749 896
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/service/Impl/HuaTaiCrawlerRequestImpl.java
  20. 1 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/classifier/impl/PassengerCarClassifier.java
  21. 2 2
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/build/TkCrawlerQuoteResultsBuild.java
  22. 1 2
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKSimpleService.java
  23. 25 57
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/impl/TKQuotationBaseServiceImpl.java
  24. 1 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java
  25. 8 8
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementUndwrtRulesServiceImpl.java
  26. 4 1
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java
  27. 5 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
  28. 3 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java
  29. 37 37
      tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

+ 7 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementDetailExcelDto.java

@@ -105,4 +105,11 @@ public class ExportSuperviseSettlementDetailExcelDto {
     @ExcelProperty(value = "结算时间")
     @ExcelProperty(value = "结算时间")
     private LocalDateTime settlementTime;
     private LocalDateTime settlementTime;
 
 
+    @Schema(description = "对接人")
+    @ExcelProperty(value = "对接人")
+    private String contactPerson;
+
+    @Schema(description = "对接人手机号")
+    @ExcelProperty(value = "对接人手机号")
+    private  String contactPersonPhone;
 }
 }

+ 5 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/base/OrderBase.java

@@ -31,6 +31,11 @@ public class OrderBase implements Serializable {
      */
      */
     private String quoteNo;
     private String quoteNo;
 
 
+    /**
+     * 订单来源 0 pc  1 app
+     */
+    private String orderSource;
+
     /**
     /**
      * 保司订单号
      * 保司订单号
      */
      */

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/IncomeAndExpenseVo.java

@@ -50,5 +50,8 @@ public class IncomeAndExpenseVo {
 
 
         @Schema(description = "审核状态 0-待审核 1-审核通过 2-审核驳回")
         @Schema(description = "审核状态 0-待审核 1-审核通过 2-审核驳回")
         private String status;
         private String status;
+
+        @Schema(description = "银行名称")
+        private String bankName;
     }
     }
 }
 }

+ 8 - 2
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/service/impl/ChengTaiApiRequestImpl.java

@@ -288,9 +288,15 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
                         String ocrStr = HttpUtil.sendPost("http://39.98.41.104:8088/getres", sendBody);
                         String ocrStr = HttpUtil.sendPost("http://39.98.41.104:8088/getres", sendBody);
                         CheckCodeResp resp = JSONUtil.toBean(ocrStr, CheckCodeResp.class);
                         CheckCodeResp resp = JSONUtil.toBean(ocrStr, CheckCodeResp.class);
                         if(StringUtils.isNotEmpty(resp.getJqImageCode())){
                         if(StringUtils.isNotEmpty(resp.getJqImageCode())){
+                            if(quoteVo.getCiTransferCode() != null && !quoteVo.getCiTransferCode().equals("")){
+                                resp.setJqImageCode(quoteVo.getCiTransferCode());
+                            }
                             quoteVo.setCiTransferCode(resp.getJqImageCode().replace("0", "O"));
                             quoteVo.setCiTransferCode(resp.getJqImageCode().replace("0", "O"));
                         }
                         }
                         if(StringUtils.isNotEmpty(resp.getSyImageCode())){
                         if(StringUtils.isNotEmpty(resp.getSyImageCode())){
+                            if(quoteVo.getBiTransferCode() != null && !quoteVo.getBiTransferCode().equals("")){
+                                resp.setSyImageCode(quoteVo.getBiTransferCode());
+                            }
                             quoteVo.setBiTransferCode(resp.getSyImageCode().replace("0", "O"));
                             quoteVo.setBiTransferCode(resp.getSyImageCode().replace("0", "O"));
                         }
                         }
                         premiumCalculationRequest = new PremiumCalculationRequest(quoteVo, carActualValue, parameters, vehicle, orderNumber);
                         premiumCalculationRequest = new PremiumCalculationRequest(quoteVo, carActualValue, parameters, vehicle, orderNumber);
@@ -407,7 +413,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
         // 人工核保
         // 人工核保
         if (submitResponse.getProposal().getUnderWriteInd().equals("8")
         if (submitResponse.getProposal().getUnderWriteInd().equals("8")
                 || submitResponse.getProposal().getUnderWriteInd().equals("9")) {
                 || submitResponse.getProposal().getUnderWriteInd().equals("9")) {
-            underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.WAIT_AUDIT);
+            underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.STAFF_PROCESS);
             underwritingResultsVo.setJqApplyNo(submitResponse.getProposal().getCompProposalNo());
             underwritingResultsVo.setJqApplyNo(submitResponse.getProposal().getCompProposalNo());
             underwritingResultsVo.setSyApplyNo(submitResponse.getProposal().getCommProposalNo());
             underwritingResultsVo.setSyApplyNo(submitResponse.getProposal().getCommProposalNo());
             if (submitResponse.getProposal().getNoCarProposalNo() != null) {
             if (submitResponse.getProposal().getNoCarProposalNo() != null) {
@@ -415,7 +421,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
             }
             }
             // 获取支付链接
             // 获取支付链接
             String message = submitResponse.getHead().getErrorMessage();
             String message = submitResponse.getHead().getErrorMessage();
-            underwritingResultsVo.setUnderwritingResult(message);
+            underwritingResultsVo.setUnderwritingResult("自核转人工,原因:"+ message);
             PaymentLinkResultsVo paymentLinkResultsVo = getPaymentLink(paymentLinkVo);
             PaymentLinkResultsVo paymentLinkResultsVo = getPaymentLink(paymentLinkVo);
             underwritingResultsVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
             underwritingResultsVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
         }
         }

+ 10 - 1
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/build/DaDiCrawlerQuoteResultVoBuild.java

@@ -105,7 +105,16 @@ public class DaDiCrawlerQuoteResultVoBuild {
         int sumPayment = daDiQuoteResponse.getInsurancePlan().getTax().getSumPayment();
         int sumPayment = daDiQuoteResponse.getInsurancePlan().getTax().getSumPayment();
         quoteResultsVo.getCosts().setVvTax(String.valueOf(sumPayment));
         quoteResultsVo.getCosts().setVvTax(String.valueOf(sumPayment));
         //设置非车保费
         //设置非车保费
-//        quoteResultsVo.getCosts().setNiPremium(proposalResponse.getAccidentTotalPremium());
+        if (!daDiQuoteResponse.getInsurancePlan().getAccidentInsure().isEmpty()) {
+            int niPremium = daDiQuoteResponse.getInsurancePlan().getAccidentInsure().get(0).getWealthAccPremium();
+            quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
+        }else if (!daDiQuoteResponse.getInsurancePlan().getHealthInsurance().isEmpty()) {
+            int niPremium = daDiQuoteResponse.getInsurancePlan().getHealthInsurance().get(0).getWealthAccPremium();
+            quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
+        }else  if (!daDiQuoteResponse.getInsurancePlan().getPropertyInsurance().isEmpty()) {
+            int niPremium = daDiQuoteResponse.getInsurancePlan().getHealthInsurance().get(0).getWealthAccPremium();
+            quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
+        }
 
 
         //总保费
         //总保费
         int sumPremium = trafficDuePremium + businessDuePremium + sumPayment;
         int sumPremium = trafficDuePremium + businessDuePremium + sumPayment;

+ 2 - 1
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/component/DaDiCrawlerRequestComponent.java

@@ -3,6 +3,7 @@ package com.jzg.quotation.dadi.crawler.component;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.jzg.commons.entity.po.SysUploadFiles;
 import com.jzg.commons.entity.po.SysUploadFiles;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
@@ -440,7 +441,7 @@ public class DaDiCrawlerRequestComponent {
         String url = RequestUrl.CALCULATION_PREMIUM.getRequestUrl(daDiCrawlerProperties.getBaseUrl());
         String url = RequestUrl.CALCULATION_PREMIUM.getRequestUrl(daDiCrawlerProperties.getBaseUrl());
 
 
         DaDiQuoteRequest daDiQuoteRequest = new DaDiQuoteRequest(quoteVo, orderId, checks, daDiVehicleChannelRequest.getComCode(), daDiInsurancePlanRequest, carModelRequest, daDiVehicleChannelRequest);
         DaDiQuoteRequest daDiQuoteRequest = new DaDiQuoteRequest(quoteVo, orderId, checks, daDiVehicleChannelRequest.getComCode(), daDiInsurancePlanRequest, carModelRequest, daDiVehicleChannelRequest);
-        String requestBody = DaDiAESUtils.encryptStr(JSON.toJSONString(daDiQuoteRequest));
+        String requestBody = DaDiAESUtils.encryptStr(JSON.toJSONString(daDiQuoteRequest, SerializerFeature.DisableCircularReferenceDetect));
         String responseBody = networkRequest.doPost(url, requestBody, headers);
         String responseBody = networkRequest.doPost(url, requestBody, headers);
         log.info("\n----------------------> 获取报价信息请求成功, \n----------------------> 响应结果:[{}],", responseBody);
         log.info("\n----------------------> 获取报价信息请求成功, \n----------------------> 响应结果:[{}],", responseBody);
         DaDiBaseResponse daDiBaseResponse = JSONObject.parseObject(responseBody, DaDiBaseResponse.class);
         DaDiBaseResponse daDiBaseResponse = JSONObject.parseObject(responseBody, DaDiBaseResponse.class);

+ 2 - 0
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiEleProposalQRCoreDataRequest.java

@@ -13,6 +13,8 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @NoArgsConstructor
 public class DaDiEleProposalQRCoreDataRequest extends DaDiOrderInfoRequest {
 public class DaDiEleProposalQRCoreDataRequest extends DaDiOrderInfoRequest {
 
 
+    private String flag = "";
+
     public DaDiEleProposalQRCoreDataRequest(String orderId, String comCode, String userCode) {
     public DaDiEleProposalQRCoreDataRequest(String orderId, String comCode, String userCode) {
         this.orderId = orderId;
         this.orderId = orderId;
         this.comCode = comCode;
         this.comCode = comCode;

+ 18 - 28
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiInsurancePlanRequest.java

@@ -259,17 +259,17 @@ public class DaDiInsurancePlanRequest extends DaDiBaseRequest {
     /**
     /**
      * 意外险投保信息(可为空)
      * 意外险投保信息(可为空)
      */
      */
-    private List<DaDiJointSalesResponse.InsuranceDTO> accidentInsure;
+    private List<DaDiJointSalesResponse.InsuranceDTO.JointSalesSolutionVOSDTO> accidentInsure = new ArrayList<>();
 
 
     /**
     /**
      * 健康险投保信息(可为空)
      * 健康险投保信息(可为空)
      */
      */
-    private List<DaDiJointSalesResponse.InsuranceDTO> healthInsure;
+    private List<DaDiJointSalesResponse.InsuranceDTO.JointSalesSolutionVOSDTO> healthInsure = new ArrayList<>();
 
 
     /**
     /**
      * 财产险投保信息(可为空)
      * 财产险投保信息(可为空)
      */
      */
-    private List<DaDiJointSalesResponse.InsuranceDTO> propertyInsure;
+    private List<DaDiJointSalesResponse.InsuranceDTO.JointSalesSolutionVOSDTO> propertyInsure = new ArrayList<>();
 
 
     /**
     /**
      * 总保费
      * 总保费
@@ -279,17 +279,17 @@ public class DaDiInsurancePlanRequest extends DaDiBaseRequest {
     /**
     /**
      * 意外险方案
      * 意外险方案
      */
      */
-    private List<DaDiJointSalesResponse.InsuranceDTO> accidentInsurance;
+    private List<DaDiJointSalesResponse.InsuranceDTO.JointSalesSolutionVOSDTO> accidentInsurance = new ArrayList<>();
 
 
     /**
     /**
      * 健康险方案
      * 健康险方案
      */
      */
-    private List<DaDiJointSalesResponse.InsuranceDTO> healthInsurance;
+    private List<DaDiJointSalesResponse.InsuranceDTO.JointSalesSolutionVOSDTO> healthInsurance = new ArrayList<>();
 
 
     /**
     /**
      * 财产险方案
      * 财产险方案
      */
      */
-    private List<DaDiJointSalesResponse.InsuranceDTO> propertyInsurance;
+    private List<DaDiJointSalesResponse.InsuranceDTO.JointSalesSolutionVOSDTO> propertyInsurance = new ArrayList<>();
 
 
     /**
     /**
      * 再保险项
      * 再保险项
@@ -454,41 +454,31 @@ public class DaDiInsurancePlanRequest extends DaDiBaseRequest {
                 this.wealthAccSeatCount = quoteVo.getCarInfoVo().getSeatCount();
                 this.wealthAccSeatCount = quoteVo.getCarInfoVo().getSeatCount();
             }
             }
 
 
-            DaDiJointSalesResponse.InsuranceDTO insuranceListDTO;
-            // 按产品分类拆分到意外险/健康险/财产险
-            List<DaDiJointSalesResponse.InsuranceDTO> accidentList = new ArrayList<>();
-            List<DaDiJointSalesResponse.InsuranceDTO> healthList = new ArrayList<>();
-            List<DaDiJointSalesResponse.InsuranceDTO> propertyList = new ArrayList<>();
-
-
             for (AccidentalDrivingVo accidentalDriving : accidentalDrivings) {
             for (AccidentalDrivingVo accidentalDriving : accidentalDrivings) {
                 for (Map.Entry<String, List<DaDiJointSalesResponse.InsuranceDTO>> stringListEntry : jointSales.toMap().entrySet()) {
                 for (Map.Entry<String, List<DaDiJointSalesResponse.InsuranceDTO>> stringListEntry : jointSales.toMap().entrySet()) {
                     for (DaDiJointSalesResponse.InsuranceDTO insuranceDTO : stringListEntry.getValue()) {
                     for (DaDiJointSalesResponse.InsuranceDTO insuranceDTO : stringListEntry.getValue()) {
-                        if (accidentalDriving.getProductCode().equals(insuranceDTO.getFormulaGroupCode())) {
-                            if (accidentalDriving.getProductCode().equals(insuranceDTO.getFormulaGroupCode())) {
-                                insuranceListDTO = insuranceDTO;
-                                insuranceListDTO.setFormulaGroupCode(insuranceDTO.getFormulaGroupCode());
-                                insuranceListDTO.setFormulaGroupName(insuranceDTO.getFormulaGroupName());
-                                insuranceListDTO.setIsNingdeEraVehicleBatteryCheck(insuranceDTO.getIsNingdeEraVehicleBatteryCheck());
+                        for (DaDiJointSalesResponse.InsuranceDTO.JointSalesSolutionVOSDTO jointSalesSolutionVO : insuranceDTO.getJointSalesSolutionVOS()) {
+                            if (accidentalDriving.getProductCode().equals(jointSalesSolutionVO.getFormulaCode())) {
+                                jointSalesSolutionVO.setFormulaGroupCode(insuranceDTO.getFormulaGroupCode());
+                                jointSalesSolutionVO.setFormulaGroupName(insuranceDTO.getFormulaGroupName());
+                                jointSalesSolutionVO.setIsNingdeEraVehicleBatteryCheck(insuranceDTO.getIsNingdeEraVehicleBatteryCheck());
                                 if (stringListEntry.getKey().equals("accidentInsurance")) {
                                 if (stringListEntry.getKey().equals("accidentInsurance")) {
-                                    accidentList.add(insuranceListDTO);
+                                    accidentInsurance.add(jointSalesSolutionVO);
+                                    accidentInsure.add(jointSalesSolutionVO);
                                 } else if (stringListEntry.getKey().equals("healthInsurance")) {
                                 } else if (stringListEntry.getKey().equals("healthInsurance")) {
-                                    healthList.add(insuranceListDTO);
+                                    healthInsurance.add(jointSalesSolutionVO);
+                                    healthInsure.add(jointSalesSolutionVO);
                                 } else if (stringListEntry.getKey().equals("propertyInsurance")) {
                                 } else if (stringListEntry.getKey().equals("propertyInsurance")) {
-                                    propertyList.add(insuranceListDTO);
+                                    propertyInsurance.add(jointSalesSolutionVO);
+                                    propertyInsure.add(jointSalesSolutionVO);
                                 }
                                 }
+                                break;
                             }
                             }
                         }
                         }
                     }
                     }
                 }
                 }
             }
             }
 
 
-            this.accidentInsurance = accidentList;
-            this.healthInsurance = healthList;
-            this.propertyInsurance = propertyList;
-            this.accidentInsure = accidentList.isEmpty() ? null : accidentList;
-            this.healthInsure = healthList.isEmpty() ? null : healthList;
-            this.propertyInsure = propertyList.isEmpty() ? null : propertyList;
         } else {
         } else {
             this.wealthAccChecked = "0";
             this.wealthAccChecked = "0";
             this.accidentInsurance = new ArrayList<>();
             this.accidentInsurance = new ArrayList<>();

+ 1 - 1
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/request/DaDiQuoteRequest.java

@@ -129,7 +129,7 @@ public class DaDiQuoteRequest extends DaDiBaseRequest {
     /**
     /**
      * 投保方案
      * 投保方案
      */
      */
-    private Object insurancePlan;
+    private DaDiInsurancePlanRequest insurancePlan;
 
 
     /**
     /**
      * 车主信息
      * 车主信息

+ 7 - 1
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiEleProposalQRCoreDataResponse.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.dadi.crawler.entity.response;
 package com.jzg.quotation.dadi.crawler.entity.response;
 
 
+import com.google.gson.annotations.SerializedName;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
@@ -14,5 +15,10 @@ import lombok.NoArgsConstructor;
 public class DaDiEleProposalQRCoreDataResponse extends DaDiBaseResponse {
 public class DaDiEleProposalQRCoreDataResponse extends DaDiBaseResponse {
 
 
 
 
-
+    @SerializedName("url")
+    private String url;
+    @SerializedName("paymentNo")
+    private String paymentNo;
+    @SerializedName("checkNo")
+    private String checkNo;
 }
 }

+ 4 - 0
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiJointSalesResponse.java

@@ -57,10 +57,14 @@ public class DaDiJointSalesResponse extends DaDiBaseResponse{
             private String formulaCode;
             private String formulaCode;
             @SerializedName("scene")
             @SerializedName("scene")
             private String scene;
             private String scene;
+            @SerializedName("isNingdeEraVehicleBatteryCheck")
+            private String isNingdeEraVehicleBatteryCheck;
             @SerializedName("customElement")
             @SerializedName("customElement")
             private String customElement;
             private String customElement;
             @SerializedName("formulaName")
             @SerializedName("formulaName")
             private String formulaName;
             private String formulaName;
+            @SerializedName("formulaGroupCode")
+            private String formulaGroupCode;
             @SerializedName("formulaGroupName")
             @SerializedName("formulaGroupName")
             private String formulaGroupName;
             private String formulaGroupName;
             @SerializedName("productCode")
             @SerializedName("productCode")

+ 63 - 1
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/entity/response/DaDiQuoteResponse.java

@@ -140,8 +140,13 @@ public class DaDiQuoteResponse extends DaDiBaseResponse {
         private String trafficProductCode;
         private String trafficProductCode;
         @SerializedName("accidentInsurance")
         @SerializedName("accidentInsurance")
         private String accidentInsurance;
         private String accidentInsurance;
+        @SerializedName("accidentInsure")
+        private List<AccidentInsureDTO> accidentInsure;
         @SerializedName("healthInsurance")
         @SerializedName("healthInsurance")
-        private String healthInsurance;
+        private List<AccidentInsureDTO> healthInsurance;
+        @SerializedName("propertyInsurance")
+        private List<AccidentInsureDTO> propertyInsurance;
+
 
 
         @NoArgsConstructor
         @NoArgsConstructor
         @Data
         @Data
@@ -183,6 +188,63 @@ public class DaDiQuoteResponse extends DaDiBaseResponse {
             }
             }
 
 
         }
         }
+
+        @NoArgsConstructor
+        @Data
+        public static class AccidentInsureDTO {
+            @SerializedName("forms")
+            private List<FormsDTO> forms;
+            @SerializedName("isShowInsured")
+            private String isShowInsured;
+            @SerializedName("jointSalesSolutionItems")
+            private List<JointSalesSolutionItemsDTO> jointSalesSolutionItems;
+            @SerializedName("policyNature")
+            private String policyNature;
+            @SerializedName("wealthAccPremium")
+            private int wealthAccPremium;
+
+            @NoArgsConstructor
+            @Data
+            public static class FormsDTO {
+                @SerializedName("customformcontent")
+                private String customformcontent;
+                @SerializedName("customformtitle")
+                private String customformtitle;
+                @SerializedName("formcategory")
+                private String formcategory;
+                @SerializedName("id")
+                private int id;
+                @SerializedName("plandefid")
+                private long plandefid;
+                @SerializedName("planformid")
+                private String planformid;
+                @SerializedName("productelementcode")
+                private String productelementcode;
+                @SerializedName("productelementid")
+                private String productelementid;
+            }
+
+            @NoArgsConstructor
+            @Data
+            public static class JointSalesSolutionItemsDTO {
+                @SerializedName("defaultAmount")
+                private int defaultAmount;
+                @SerializedName("defaultValue")
+                private int defaultValue;
+                @SerializedName("insureUnit")
+                private String insureUnit;
+                @SerializedName("kindCode")
+                private String kindCode;
+                @SerializedName("kindName")
+                private String kindName;
+                @SerializedName("linkSeats")
+                private int linkSeats;
+                @SerializedName("subsidyAmount")
+                private String subsidyAmount;
+                @SerializedName("subsidyDay")
+                private String subsidyDay;
+            }
+        }
     }
     }
 
 
     @NoArgsConstructor
     @NoArgsConstructor

+ 12 - 2
tenant/insurance/quotation-dadi/src/main/java/com/jzg/quotation/dadi/crawler/service/impl/DaDiCrawlerRequestImpl.java

@@ -151,7 +151,10 @@ public class DaDiCrawlerRequestImpl implements DaDiCrawlerRequest {
 
 
             if (underwriting.getUwType().equals("3")) {
             if (underwriting.getUwType().equals("3")) {
                 DaDiPayNoDataResponse payNoDataResponse = daDiCrawlerRequestComponent.getPayNo(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
                 DaDiPayNoDataResponse payNoDataResponse = daDiCrawlerRequestComponent.getPayNo(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
-                DaDiEleProposalQRCoreDataResponse eleProposalQRCoreData = daDiCrawlerRequestComponent.getEleProposalQRCoreData(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
+                PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
+                paymentLinkVo.setOrder(underwritingVo.getOrder());
+                underwritingResultsVo.setPaymentLink(getPaymentLink(paymentLinkVo).getPaymentLink());
+                underwritingResultsVo.setCompanyOrderNo(payNoDataResponse.getPayApplyNo());
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
             } else {
             } else {
                 underwritingResultsVo.setUnderwritingResult(msg + DaDiVehicleUtils.UW_TYPE_MAP.get(underwriting.getUwType()));
                 underwritingResultsVo.setUnderwritingResult(msg + DaDiVehicleUtils.UW_TYPE_MAP.get(underwriting.getUwType()));
@@ -172,7 +175,14 @@ public class DaDiCrawlerRequestImpl implements DaDiCrawlerRequest {
 
 
     @Override
     @Override
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws Exception {
     public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws Exception {
-        return null;
+        AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
+        HttpHeaders headers = daDiCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+        DaDiCrawlerOrder daDiCrawlerOrder = daDiCrawlerOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
+        DaDiEleProposalQRCoreDataResponse eleProposalQRCoreData = daDiCrawlerRequestComponent.getEleProposalQRCoreData(headers, daDiCrawlerOrder.getPlyappno(), attributionInformationVo);
+        PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
+        paymentLinkResultsVo.setPayLinkStatus(true);
+        paymentLinkResultsVo.setPaymentLink(eleProposalQRCoreData.getUrl());
+        return paymentLinkResultsVo;
     }
     }
 
 
     @Override
     @Override

+ 51 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerProposalNoSaveRequest.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
+import org.springframework.util.StringUtils;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
@@ -43,6 +44,56 @@ public class GuoRenCrawlerProposalNoSaveRequest implements Serializable {
         }
         }
         this.bi = biDto;
         this.bi = biDto;
         this.ci = guoRenCrawlerCalculationPremiumData.getCi();
         this.ci = guoRenCrawlerCalculationPremiumData.getCi();
+        // 将试算响应中的报价ID回填到bc中
+        fillProposalNoFromResponse(guoRenCrawlerCalculationPremiumData);
+    }
+
+    /**
+     * 从试算响应中提取报价ID,回填到保存请求的bc字段中
+     * 解决保司合规规则"报价ID缺失"问题
+     */
+    private void fillProposalNoFromResponse(GuoRenCrawlerCalculationPremiumData response) {
+        if (response == null) {
+            return;
+        }
+        // 1. 从响应的BC中回填proposalNo到请求的BC
+        GuoRenCrawlerCalculationPremiumData.BcDTO responseBc = response.getBc();
+        if (responseBc != null) {
+            // 回填BC.prpTmain.proposalNo
+            if (responseBc.getPrpTmain() != null && StringUtils.hasText(responseBc.getPrpTmain().getProposalNo())) {
+                String bcProposalNo = responseBc.getPrpTmain().getProposalNo();
+                String bcDemandNo = responseBc.getPrpTmain().getDemandNo();
+                if (this.bc.getPrpTmain() != null) {
+                    this.bc.getPrpTmain().setProposalNo(bcProposalNo);
+                    this.bc.getPrpTmain().setDemandNo(bcDemandNo);
+                }
+                if (this.bc.getPrpTitemCar() != null) {
+                    this.bc.getPrpTitemCar().setProposalNo(bcProposalNo);
+                }
+            }
+        }
+        // 2. 从响应的CI中回填proposalNo到ciInsureDemand
+        GuoRenCrawlerCalculationPremiumData.CiDTO responseCi = response.getCi();
+        if (responseCi != null && responseCi.getPrpTmain() != null
+                && StringUtils.hasText(responseCi.getPrpTmain().getProposalNo())) {
+            String ciProposalNo = responseCi.getPrpTmain().getProposalNo();
+            String demandNo = responseCi.getPrpTmain().getDemandNo();
+            if (this.ci != null && this.ci.getCiInsureDemand() != null) {
+                this.ci.getCiInsureDemand().setProposalNo(ciProposalNo);
+                this.ci.getCiInsureDemand().setDemandNo(demandNo);
+            }
+        }
+        // 3. 从响应的BI中回填proposalNo到ciInsureDemand
+        GuoRenCrawlerCalculationPremiumData.BiDTO responseBi = response.getBi();
+        if (responseBi != null && responseBi.getPrpTmain() != null
+                && StringUtils.hasText(responseBi.getPrpTmain().getProposalNo())) {
+            String biProposalNo = responseBi.getPrpTmain().getProposalNo();
+            String biDemandNo = responseBi.getPrpTmain().getDemandNo();
+            if (this.bi != null && this.bi.getCiInsureDemand() != null) {
+                this.bi.getCiInsureDemand().setProposalNo(biProposalNo);
+                this.bi.getCiInsureDemand().setDemandNo(biDemandNo);
+            }
+        }
     }
     }
 
 
 }
 }

+ 12 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java

@@ -210,11 +210,23 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
         ReinsuranceCaptchaVo reinsuranceCaptchaVo1 = exteriorUtilsRequest.reinsuranceCaptchaIdentify(reinsuranceCaptchaVo);
         ReinsuranceCaptchaVo reinsuranceCaptchaVo1 = exteriorUtilsRequest.reinsuranceCaptchaIdentify(reinsuranceCaptchaVo);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setDemandNo(demandNoCi);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setDemandNo(demandNoCi);
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getCiCaptcha());
         crawlerCalculationPremiumRequest.getCi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getCiCaptcha());
+        // 回填第一次试算返回的proposalNo,避免第二次calculationPremium后丢失报价ID
+        crawlerCalculationPremiumRequest.getCi().getPrpTmain().setProposalNo(
+                calculationPremium.getCi().getPrpTmain().getProposalNo());
         crawlerCalculationPremiumRequest.getCi().setCiInsureDemand(calculationPremium.getCi().getCiInsureDemand());
         crawlerCalculationPremiumRequest.getCi().setCiInsureDemand(calculationPremium.getCi().getCiInsureDemand());
         crawlerCalculationPremiumRequest.getCi().setPrptengageList(calculationPremium.getCi().getPrptengageList());
         crawlerCalculationPremiumRequest.getCi().setPrptengageList(calculationPremium.getCi().getPrptengageList());
+        // BC也需要回填proposalNo
+        if (calculationPremium.getBc() != null && calculationPremium.getBc().getPrpTmain() != null
+                && org.springframework.util.StringUtils.hasText(calculationPremium.getBc().getPrpTmain().getProposalNo())) {
+            crawlerCalculationPremiumRequest.getBc().getPrpTmain().setProposalNo(
+                    calculationPremium.getBc().getPrpTmain().getProposalNo());
+        }
         if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
         if (crawlerCalculationPremiumRequest.getBi().getPrpTmain() != null) {
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setDemandNo(demandNoBi);
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setDemandNo(demandNoBi);
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getBiCaptcha());
             crawlerCalculationPremiumRequest.getBi().getPrpTmain().setAnswer(reinsuranceCaptchaVo1.getBiCaptcha());
+            // 回填BI的proposalNo
+            crawlerCalculationPremiumRequest.getBi().getPrpTmain().setProposalNo(
+                    calculationPremium.getBi().getPrpTmain().getProposalNo());
             crawlerCalculationPremiumRequest.getBi().setCiInsureDemand(calculationPremium.getBi().getCiInsureDemand());
             crawlerCalculationPremiumRequest.getBi().setCiInsureDemand(calculationPremium.getBi().getCiInsureDemand());
             crawlerCalculationPremiumRequest.getBi().setPrptengageList(calculationPremium.getBi().getPrptengageList());
             crawlerCalculationPremiumRequest.getBi().setPrptengageList(calculationPremium.getBi().getPrptengageList());
         }
         }

+ 23 - 7
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCalculationRequest.java

@@ -77,7 +77,7 @@ public class HbCrawlerCalculationRequest extends HbBaseRequest {
     @Serial
     @Serial
     private static final long serialVersionUID = -6130320344004620564L;
     private static final long serialVersionUID = -6130320344004620564L;
 
 
-    public HbCrawlerCalculationRequest(QuoteVo quoteVo, String plyappno) {
+    public HbCrawlerCalculationRequest(QuoteVo quoteVo, String plyappno, String depreciationPrice) {
         this.clauseType = "2";
         this.clauseType = "2";
         List<KindInfoVo> kindInfoVoList = quoteVo.getKindInfoVo();
         List<KindInfoVo> kindInfoVoList = quoteVo.getKindInfoVo();
         this.risktype = "0";
         this.risktype = "0";
@@ -88,12 +88,11 @@ public class HbCrawlerCalculationRequest extends HbBaseRequest {
             this.risktype = "1";
             this.risktype = "1";
         }
         }
         if (CollUtil.isNotEmpty(kindInfoVoList)) {
         if (CollUtil.isNotEmpty(kindInfoVoList)) {
-            this.epersonliabilityList = getEpersonliabilityList(kindInfoVoList);
+            this.epersonliabilityList = getEpersonliabilityList(kindInfoVoList, depreciationPrice);
             this.begintimeBi = DateUtil.toUtcDateTime(quoteVo.getBiRiskInfoVo().getStartDate());
             this.begintimeBi = DateUtil.toUtcDateTime(quoteVo.getBiRiskInfoVo().getStartDate());
             this.begintimeAccident = DateUtil.toUtcDateTime(quoteVo.getBiRiskInfoVo().getStartDate());
             this.begintimeAccident = DateUtil.toUtcDateTime(quoteVo.getBiRiskInfoVo().getStartDate());
             this.risktype = "2";
             this.risktype = "2";
         } else {
         } else {
-//            this.begintimeBi = DateUtil.toUtcDateTime(quoteVo.getCiRiskInfoVo().getStartDate());
             this.epersonliabilityList = new ArrayList<>();
             this.epersonliabilityList = new ArrayList<>();
         }
         }
         this.plyappno = plyappno;
         this.plyappno = plyappno;
@@ -107,18 +106,34 @@ public class HbCrawlerCalculationRequest extends HbBaseRequest {
         this.effectfLag = null;
         this.effectfLag = null;
         this.ecarChargingPosts = new ArrayList<>();
         this.ecarChargingPosts = new ArrayList<>();
         this.carInsureDevices = new ArrayList<>();
         this.carInsureDevices = new ArrayList<>();
+        this.outofwarrantytype = "N";
+        this.drivingtype = "";
+        this.endtimeAccident = "";
         this.accidentInsuranceList = getAccidentInsuranceList(quoteVo.getBiRiskInfoVo(), quoteVo.getAccidentalDrivings());
         this.accidentInsuranceList = getAccidentInsuranceList(quoteVo.getBiRiskInfoVo(), quoteVo.getAccidentalDrivings());
     }
     }
 
 
-    public List<EpersonliabilityDTO> getEpersonliabilityList(List<KindInfoVo> kindInfoVoList) {
+    public List<EpersonliabilityDTO> getEpersonliabilityList(List<KindInfoVo> kindInfoVoList, String depreciationPrice) {
         List<EpersonliabilityDTO> epersonliabilityDTOList = new ArrayList<>();
         List<EpersonliabilityDTO> epersonliabilityDTOList = new ArrayList<>();
         for (KindInfoVo kindInfoVo : kindInfoVoList) {
         for (KindInfoVo kindInfoVo : kindInfoVoList) {
             EpersonliabilityDTO epersonliabilityDTO = new EpersonliabilityDTO();
             EpersonliabilityDTO epersonliabilityDTO = new EpersonliabilityDTO();
             epersonliabilityDTO.setKindcode(kindInfoVo.getKindCode());
             epersonliabilityDTO.setKindcode(kindInfoVo.getKindCode());
             epersonliabilityDTO.setLiabname(kindInfoVo.getKindName());
             epersonliabilityDTO.setLiabname(kindInfoVo.getKindName());
-            epersonliabilityDTO.setLiabamt(kindInfoVo.getAmount());
-            epersonliabilityDTO.setQuantity(kindInfoVo.getQuantity());
-            epersonliabilityDTO.setUnitAmount(kindInfoVo.getUnitAmount());
+            // kindcode "101"(机动车损失保险)的保额必须使用车辆折旧价(实际价值),
+            // 否则保司会校验"协商价格范围建议在实际价值上下30%浮动"并拒绝
+            if ("101".equals(kindInfoVo.getKindCode()) && depreciationPrice != null) {
+                epersonliabilityDTO.setLiabamt(depreciationPrice);
+                epersonliabilityDTO.setUnitAmount(depreciationPrice);
+            } else if (!"116".equals(kindInfoVo.getKindCode())) {
+                // kindcode "116"不需要liabamt和unitAmount
+                epersonliabilityDTO.setLiabamt(kindInfoVo.getAmount());
+                epersonliabilityDTO.setUnitAmount(kindInfoVo.getUnitAmount());
+            }
+            if ("116".equals(kindInfoVo.getKindCode())) {
+                // 道路救援服务特约条款:只需要serviceTimes字段
+                epersonliabilityDTO.setServiceTimes(kindInfoVo.getServiceTimes() != null ? kindInfoVo.getServiceTimes() : "2");
+            } else {
+                epersonliabilityDTO.setQuantity(kindInfoVo.getQuantity() != null ? kindInfoVo.getQuantity() : "4");
+            }
             epersonliabilityDTOList.add(epersonliabilityDTO);
             epersonliabilityDTOList.add(epersonliabilityDTO);
         }
         }
         return epersonliabilityDTOList;
         return epersonliabilityDTOList;
@@ -300,6 +315,7 @@ public class HbCrawlerCalculationRequest extends HbBaseRequest {
         private String liabname;
         private String liabname;
         private String model = "0";
         private String model = "0";
         private String quantity;
         private String quantity;
+        private String serviceTimes;
         private String unitAmount;
         private String unitAmount;
     }
     }
 
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java

@@ -148,7 +148,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
         HbCrawlerQuoteimmediatelyRequest quoteimmediatelyRequest = new HbCrawlerQuoteimmediatelyRequest(quoteVo, salesInfo, depreciationPrice, parameters, contentDTO);
         HbCrawlerQuoteimmediatelyRequest quoteimmediatelyRequest = new HbCrawlerQuoteimmediatelyRequest(quoteVo, salesInfo, depreciationPrice, parameters, contentDTO);
         String plyappno = hbCrawlerRequestComponent.quoteImmediately(quoteimmediatelyRequest, headers);
         String plyappno = hbCrawlerRequestComponent.quoteImmediately(quoteimmediatelyRequest, headers);
         // 5.1 报价第二步,提交报价数据,返回是否重复投保,脱保等提示信息,用于页面展示
         // 5.1 报价第二步,提交报价数据,返回是否重复投保,脱保等提示信息,用于页面展示
-        HbCrawlerCalculationRequest calculationRequest = new HbCrawlerCalculationRequest(quoteVo, plyappno);
+        HbCrawlerCalculationRequest calculationRequest = new HbCrawlerCalculationRequest(quoteVo, plyappno, depreciationPrice);
         // 非车信息匹配核心
         // 非车信息匹配核心
         matchingAccident(quoteVo, headers, plyappno, calculationRequest);
         matchingAccident(quoteVo, headers, plyappno, calculationRequest);
         String resJson = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
         String resJson = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/utils/HengBangAESUtil.java


Разлика између датотеке није приказан због своје велике величине
+ 749 - 896
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/service/Impl/HuaTaiCrawlerRequestImpl.java


+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/classifier/impl/PassengerCarClassifier.java

@@ -22,7 +22,7 @@ public class PassengerCarClassifier implements CarKindClassifier {
     @Override
     @Override
     public CarKindDetailIdCode getKind(CarInfoVo car) {
     public CarKindDetailIdCode getKind(CarInfoVo car) {
         int seats = Integer.parseInt(car.getSeatCount());
         int seats = Integer.parseInt(car.getSeatCount());
-        if (seats <= 6) {
+        if (seats < 6) {
             return CarKindDetailIdCode.K01;
             return CarKindDetailIdCode.K01;
         }
         }
         if (seats <= 10) {
         if (seats <= 10) {

+ 2 - 2
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/build/TkCrawlerQuoteResultsBuild.java

@@ -125,7 +125,7 @@ public class TkCrawlerQuoteResultsBuild {
         // 设置商业险保费
         // 设置商业险保费
         quoteResultsVo.getCosts().setBiPremium(premium.getSyPremium().toString());
         quoteResultsVo.getCosts().setBiPremium(premium.getSyPremium().toString());
         // 设置车船税
         // 设置车船税
-        quoteResultsVo.getCosts().setVvTax(premium.getTax().toString());
+        quoteResultsVo.getCosts().setVvTax(preciseInitResult.getCarTax().getSumPayment().toString());
         // 设置非车险(驾意险)保费
         // 设置非车险(驾意险)保费
         quoteResultsVo.getCosts().setNiPremium(premium.getJyxPremium().toString());
         quoteResultsVo.getCosts().setNiPremium(premium.getJyxPremium().toString());
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
@@ -143,7 +143,7 @@ public class TkCrawlerQuoteResultsBuild {
                 .fluentPut("score", preciseInitResult.getRiskScore()));
                 .fluentPut("score", preciseInitResult.getRiskScore()));
         quoteResultsVo.getScoreVo().setScoreJson(scoreJson);
         quoteResultsVo.getScoreVo().setScoreJson(scoreJson);
         // 欠税信息
         // 欠税信息
-        if (null != preciseInitResult.getCarTax()) {
+        if (preciseInitResult.getCarTax() != null) {
             List<TaxInfoVo> taxArrearsList = new ArrayList<>();
             List<TaxInfoVo> taxArrearsList = new ArrayList<>();
             TaxInfoVo taxArrear = new TaxInfoVo();
             TaxInfoVo taxArrear = new TaxInfoVo();
             taxArrear.setYears(preciseInitResult.getCarTax().getRepaymentYear());
             taxArrear.setYears(preciseInitResult.getCarTax().getRepaymentYear());

+ 1 - 2
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKSimpleService.java

@@ -293,8 +293,7 @@ public class TKSimpleService {
     public AreaUserResult areaUser(TKLoginSession session, String mainOrderId, AgentFuzzyResult agentFuzzyResult, String agentCode) {
     public AreaUserResult areaUser(TKLoginSession session, String mainOrderId, AgentFuzzyResult agentFuzzyResult, String agentCode) {
         List<AreaUserResult> areaUserResults = httpService.areaUser(session.getToken(), session.getTplatformId(), mainOrderId, agentFuzzyResult, agentCode);
         List<AreaUserResult> areaUserResults = httpService.areaUser(session.getToken(), session.getTplatformId(), mainOrderId, agentFuzzyResult, agentCode);
         // todo 先暂时取第1个省第1个城市
         // todo 先暂时取第1个省第1个城市
-        AreaUserResult province = areaUserResults.get(0);
-        return province;
+        return areaUserResults.get(0);
     }
     }
 
 
     /**
     /**

Разлика између датотеке није приказан због своје велике величине
+ 25 - 57
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/impl/TKQuotationBaseServiceImpl.java


+ 1 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java

@@ -198,7 +198,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
                 quotedPriceResponse = zmCrawlerRequestComponent.quotedPrice(quotedPriceRequest);
                 quotedPriceResponse = zmCrawlerRequestComponent.quotedPrice(quotedPriceRequest);
             }
             }
         }
         }
-        if (!quotedPriceResponse.getHead().getReturnCode().equals("0") ) {
+        if (quotedPriceResponse.getHead().getReturnCode().equals("0") ) {
             // 商业险重复投保提示
             // 商业险重复投保提示
             ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO contract =
             ZmCrawlerQuotedPriceResponse.BussinessMainDTO.ContractDTO contract =
                     quotedPriceResponse.getBussinessMain().getContract().stream()
                     quotedPriceResponse.getBussinessMain().getContract().stream()

+ 8 - 8
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementUndwrtRulesServiceImpl.java

@@ -8,20 +8,14 @@ import com.jzg.commons.entity.dto.AgreementRulesAddParam;
 import com.jzg.commons.entity.dto.AgreementRulesEditParam;
 import com.jzg.commons.entity.dto.AgreementRulesEditParam;
 import com.jzg.commons.entity.dto.CostAgreementParam;
 import com.jzg.commons.entity.dto.CostAgreementParam;
 import com.jzg.commons.entity.dto.RulesGroupParam;
 import com.jzg.commons.entity.dto.RulesGroupParam;
-import com.jzg.commons.entity.po.PtlAgreementUndwrtRules;
-import com.jzg.commons.entity.po.PtlAgreementUndwrtRulesAttr;
-import com.jzg.commons.entity.po.PtlAgreementUndwrtRulesAttrLink;
-import com.jzg.commons.entity.po.PtlAgreementUndwrtRulesDictLabal;
+import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.vo.AgreementRulesVo;
 import com.jzg.commons.entity.vo.AgreementRulesVo;
 import com.jzg.commons.entity.vo.CostListVo;
 import com.jzg.commons.entity.vo.CostListVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrLinkMapper;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrLinkMapper;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesMapper;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesMapper;
-import com.jzg.organization.service.PtlAgreementCostService;
-import com.jzg.organization.service.PtlAgreementUndwrtRulesAttrLinkService;
-import com.jzg.organization.service.PtlAgreementUndwrtRulesAttrService;
-import com.jzg.organization.service.PtlAgreementUndwrtRulesService;
+import com.jzg.organization.service.*;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
@@ -62,6 +56,9 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
     @Autowired
     @Autowired
     private PtlAgreementCostService ptlAgreementCostService;
     private PtlAgreementCostService ptlAgreementCostService;
 
 
+    @Autowired
+    private PtlAgreementService ptlAgreementService;
+
     /**
     /**
      * 协议规则列表
      * 协议规则列表
      *
      *
@@ -352,12 +349,15 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
     @Override
     @Override
     public AgreementRulesVo rulesGet(String ruleId) {
     public AgreementRulesVo rulesGet(String ruleId) {
         PtlAgreementUndwrtRules rules = baseMapper.selectById(ruleId);
         PtlAgreementUndwrtRules rules = baseMapper.selectById(ruleId);
+        PtlAgreement agreement = ptlAgreementService.getById(rules.getAgreementId());
         AgreementRulesVo rulesVo = new AgreementRulesVo();
         AgreementRulesVo rulesVo = new AgreementRulesVo();
         BeanUtils.copyProperties(rules, rulesVo);
         BeanUtils.copyProperties(rules, rulesVo);
 
 
         // 获取费用因子属性(公共逻辑,仅查询一次)
         // 获取费用因子属性(公共逻辑,仅查询一次)
         List<PtlAgreementUndwrtRulesAttr> attrList = agreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
         List<PtlAgreementUndwrtRulesAttr> attrList = agreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
         Map<String, PtlAgreementUndwrtRulesAttr> attrMap = attrList.stream()
         Map<String, PtlAgreementUndwrtRulesAttr> attrMap = attrList.stream()
+                .filter(attr -> attr.getCompanyIds().equals("all"))
+                .filter(attr -> attr.getCompanyIds().equals(agreement.getCompanyId()))
                 .collect(Collectors.toMap(PtlAgreementUndwrtRulesAttr::getAttrCode, attr -> attr));
                 .collect(Collectors.toMap(PtlAgreementUndwrtRulesAttr::getAttrCode, attr -> attr));
 
 
         // 确定需要处理的规则ID列表
         // 确定需要处理的规则ID列表

+ 4 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -301,7 +301,10 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
         List<PtlSchemeRulesAttrLink> linkList = ptlSchemeRulesAttrLinkMapper.selectList(new LambdaQueryWrapper<PtlSchemeRulesAttrLink>().eq(PtlSchemeRulesAttrLink::getSchemeId, schemeId));
         List<PtlSchemeRulesAttrLink> linkList = ptlSchemeRulesAttrLinkMapper.selectList(new LambdaQueryWrapper<PtlSchemeRulesAttrLink>().eq(PtlSchemeRulesAttrLink::getSchemeId, schemeId));
         // 获取费用因子属性
         // 获取费用因子属性
         List<PtlAgreementUndwrtRulesAttr> attrList = agreementUndwrtRulesAttrService.getUndwrtRulesAttrList(companyId);
         List<PtlAgreementUndwrtRulesAttr> attrList = agreementUndwrtRulesAttrService.getUndwrtRulesAttrList(companyId);
-        Map<String, PtlAgreementUndwrtRulesAttr> attrMap = attrList.stream().collect(Collectors.toMap(PtlAgreementUndwrtRulesAttr::getAttrCode, attr -> attr));
+        Map<String, PtlAgreementUndwrtRulesAttr> attrMap = attrList.stream()
+                .filter(attr -> attr.getCompanyIds().equals("all"))
+                .filter(attr -> attr.getCompanyIds().equals(companyId))
+                .collect(Collectors.toMap(PtlAgreementUndwrtRulesAttr::getAttrCode, attr -> attr));
         List<PtlAgreementUndwrtRulesAttr> newAttrList = new ArrayList<>();
         List<PtlAgreementUndwrtRulesAttr> newAttrList = new ArrayList<>();
         linkList.forEach(link -> {
         linkList.forEach(link -> {
             if (attrMap.containsKey(link.getAttrCode())) {
             if (attrMap.containsKey(link.getAttrCode())) {

+ 5 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -3104,6 +3104,11 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             log.info(msg);
             log.info(msg);
             return HttpResult.error(msg, Collections.emptyList());
             return HttpResult.error(msg, Collections.emptyList());
         }
         }
+        // add by lipf, 前端保险公司的查询条件未生效,进行bug修复
+        if(StrUtil.isNotEmpty(queryVo.getCompanyId())){
+            allCompaniesIncomeDatas = allCompaniesIncomeDatas.stream()
+                    .filter(action-> queryVo.getCompanyId().equals(action.getCompanyId())).toList();
+        }
         // 2. 汇总后,计算得到已开票,未开票,已结算,未结算的数据
         // 2. 汇总后,计算得到已开票,未开票,已结算,未结算的数据
         allCompaniesIncomeDatas = this.calStatisAmount(allCompaniesIncomeDatas, queryVo, systemCode);
         allCompaniesIncomeDatas = this.calStatisAmount(allCompaniesIncomeDatas, queryVo, systemCode);
         // 3. 填充保险公司的父级保险公司
         // 3. 填充保险公司的父级保险公司

+ 3 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java

@@ -294,6 +294,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             item.setCreateTime(auditing.getCreateTime());
             item.setCreateTime(auditing.getCreateTime());
             item.setStatus(auditing.getAuditingStatus().toString());
             item.setStatus(auditing.getAuditingStatus().toString());
             item.setRemark("提现支出");
             item.setRemark("提现支出");
+            item.setBankName(auditing.getBankName());
             allRecords.add(item);
             allRecords.add(item);
         }
         }
         // 处理收入记录
         // 处理收入记录
@@ -305,6 +306,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             item.setStatus(null);
             item.setStatus(null);
             item.setRemark("车险收入");
             item.setRemark("车险收入");
             item.setLicenseNo(insFeeOrders.getLicenseNo());
             item.setLicenseNo(insFeeOrders.getLicenseNo());
+            item.setBankName(null);
             allRecords.add(item);
             allRecords.add(item);
         }
         }
         // 处理分销收入记录
         // 处理分销收入记录
@@ -322,6 +324,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             item.setStatus(null);
             item.setStatus(null);
             item.setRemark("分销收入");
             item.setRemark("分销收入");
             item.setLicenseNo(insFeeOrders.getLicenseNo());
             item.setLicenseNo(insFeeOrders.getLicenseNo());
+            item.setBankName(null);
             allRecords.add(item);
             allRecords.add(item);
         }
         }
         // 排序
         // 排序

+ 37 - 37
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -462,7 +462,7 @@
         ipi.agreement_name as agreementName,
         ipi.agreement_name as agreementName,
         io.entry_status as entryStatus,
         io.entry_status as entryStatus,
         ipi.license_no as licenseNo,
         ipi.license_no as licenseNo,
-        (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount,
+        (COALESCE(ipi.jq_receivable_premium,0)  + COALESCE(ipi.sy_receivable_premium,0)  + COALESCE(ipi.jy_receivable_premium,0) ) as receivableAmount,
         io.product_name as productName,
         io.product_name as productName,
         iocui.name AS insuredPerson,
         iocui.name AS insuredPerson,
         ipi.jy_premium as jqPremium,
         ipi.jy_premium as jqPremium,
@@ -728,7 +728,7 @@
     </select>
     </select>
 
 
     <select id="getSuperviseSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
     <select id="getSuperviseSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
-        select
+        select ipi.contact_person, ipi.contact_person_phone,
         ipiis.id as settlementId,
         ipiis.id as settlementId,
         ipiis.invoice_id as invoiceId,
         ipiis.invoice_id as invoiceId,
         io.company_name as companyName,
         io.company_name as companyName,
@@ -739,7 +739,7 @@
         ipii.invoice_type as invoiceType,
         ipii.invoice_type as invoiceType,
         ipii.invoice_party as invoiceParty,
         ipii.invoice_party as invoiceParty,
         ipii.tax_point as taxPoint,
         ipii.tax_point as taxPoint,
-        (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts,
+        (COALESCE(ipi.jq_supervise_costs_premiums,0)  + COALESCE(ipi.sy_supervise_costs_premiums,0)  + COALESCE(ipi.jy_supervise_costs_premiums,0) ) as receivableSuperviseCosts,
         ipi.jq_premium as jqPremium,
         ipi.jq_premium as jqPremium,
         ipi.jq_supervise_costs_proportion as jqSuperviseCostsProportion,
         ipi.jq_supervise_costs_proportion as jqSuperviseCostsProportion,
         ipi.jq_policy_no as jqPolicyNo,
         ipi.jq_policy_no as jqPolicyNo,
@@ -810,7 +810,7 @@
         ipii.invoice_type as invoiceType,
         ipii.invoice_type as invoiceType,
         ipii.invoice_party as invoiceParty,
         ipii.invoice_party as invoiceParty,
         ipii.tax_point as taxPoint,
         ipii.tax_point as taxPoint,
-        (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts,
+        (COALESCE(ipi.jq_supervise_costs_premiums,0) + COALESCE(ipi.sy_supervise_costs_premiums,0) + COALESCE(ipi.jy_supervise_costs_premiums,0)) as receivableSuperviseCosts,
         ipi.jy_premium as jqPremium,
         ipi.jy_premium as jqPremium,
         ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion,
         ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion,
         ipi.jy_policy_no as jqPolicyNo,
         ipi.jy_policy_no as jqPolicyNo,
@@ -870,7 +870,7 @@
         ipi.agreement_name as agreementName,
         ipi.agreement_name as agreementName,
         io.entry_status as entryStatus,
         io.entry_status as entryStatus,
         ipi.license_no as licenseNo,
         ipi.license_no as licenseNo,
-        (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
+        (COALESCE(ipi.jq_other_costs_premiums,0)  + COALESCE(ipi.sy_other_costs_premiums,0)  + COALESCE(ipi.jy_other_costs_premiums,0) ) as receivableAmount,
         io.product_name as productName,
         io.product_name as productName,
         iocui.name AS insuredPerson,
         iocui.name AS insuredPerson,
         ipi.jq_premium as jqPremium,
         ipi.jq_premium as jqPremium,
@@ -931,7 +931,7 @@
         ipi.agreement_name as agreementName,
         ipi.agreement_name as agreementName,
         io.entry_status as entryStatus,
         io.entry_status as entryStatus,
         ipi.license_no as licenseNo,
         ipi.license_no as licenseNo,
-        (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
+        (COALESCE(ipi.jq_other_costs_premiums,0)  + COALESCE(ipi.sy_other_costs_premiums,0)  + COALESCE(ipi.jy_other_costs_premiums,0) ) as receivableAmount,
         ipi.product_name as productName,
         ipi.product_name as productName,
         iocui.name AS insuredPerson,
         iocui.name AS insuredPerson,
         ipi.jy_premium as jyPremium,
         ipi.jy_premium as jyPremium,
@@ -1027,7 +1027,7 @@
         ipii.invoice_type as invoiceType,
         ipii.invoice_type as invoiceType,
         ipii.invoice_party as invoiceParty,
         ipii.invoice_party as invoiceParty,
         ipii.tax_point as taxPoint,
         ipii.tax_point as taxPoint,
-        (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableOtherCosts,
+        (COALESCE(ipi.jq_other_costs_premiums,0)  + COALESCE(ipi.sy_other_costs_premiums,0)  + COALESCE(ipi.jy_other_costs_premiums,0) ) as receivableOtherCosts,
         ipi.jq_premium as jqPremium,
         ipi.jq_premium as jqPremium,
         ipi.jq_other_costs_proportion as jqOtherCostsProportion,
         ipi.jq_other_costs_proportion as jqOtherCostsProportion,
         ipi.jq_policy_no as jqPolicyNo,
         ipi.jq_policy_no as jqPolicyNo,
@@ -1092,7 +1092,7 @@
         ipii.invoice_type as invoiceType,
         ipii.invoice_type as invoiceType,
         ipii.invoice_party as invoiceParty,
         ipii.invoice_party as invoiceParty,
         ipii.tax_point as taxPoint,
         ipii.tax_point as taxPoint,
-        (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableSuperviseCosts,
+        (COALESCE(ipi.jq_other_costs_premiums,0)  + COALESCE(ipi.sy_other_costs_premiums,0)  + COALESCE(ipi.jy_other_costs_premiums,0) ) as receivableSuperviseCosts,
         ipi.jy_premium as jqPremium,
         ipi.jy_premium as jqPremium,
         ipi.jy_other_costs_proportion as jqOtherCostsProportion,
         ipi.jy_other_costs_proportion as jqOtherCostsProportion,
         ipi.jy_policy_no as jqPolicyNo,
         ipi.jy_policy_no as jqPolicyNo,
@@ -1308,9 +1308,9 @@
         eic.id as company_id,
         eic.id as company_id,
         eic.parent_id,
         eic.parent_id,
         eic.name as company_name,
         eic.name as company_name,
-        COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
-        COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
-        COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
+        COALESCE(SUM(COALESCE(ipi.jq_receivable_premium,0)  + COALESCE(ipi.sy_receivable_premium,0)  + COALESCE(ipi.jy_receivable_premium,0) ), 0) as total_receivable,
+        COALESCE(SUM(COALESCE(ipi.jq_supervise_costs_premiums,0)  + COALESCE(ipi.sy_supervise_costs_premiums,0)  + COALESCE(ipi.jy_supervise_costs_premiums,0) ), 0) as supervise_fee,
+        COALESCE(SUM(COALESCE(ipi.jq_other_costs_premiums,0)  + COALESCE(ipi.sy_other_costs_premiums,0)  +COALESCE(ipi.jy_other_costs_premiums,0) ), 0) as follow_fee,
         COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
         COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
         COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
         COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
         COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
         COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
@@ -1343,7 +1343,7 @@
         LEFT JOIN (
         LEFT JOIN (
         SELECT
         SELECT
         ifo.order_no,
         ifo.order_no,
-        SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
+        SUM(DISTINCT (COALESCE(ifo.jq_commission_premium,0)  + COALESCE(ifo.sy_commission_premium,0)  + COALESCE(ifo.jy_commission_premium,0) )) as total_commission
         FROM ins_fee_orders ifo
         FROM ins_fee_orders ifo
         WHERE ifo.is_delete = 0
         WHERE ifo.is_delete = 0
         GROUP BY ifo.order_no
         GROUP BY ifo.order_no
@@ -1361,7 +1361,7 @@
                 )
                 )
             </if>
             </if>
         </where>
         </where>
-        GROUP BY eic.id, eic.name, eic.parent_id;
+        GROUP BY eic.id, eic.name, eic.parent_id
     </select>
     </select>
 
 
 
 
@@ -1370,9 +1370,9 @@
         eic.id AS company_id,
         eic.id AS company_id,
         eic.parent_id AS parent_id,
         eic.parent_id AS parent_id,
         eic.NAME AS company_name,
         eic.NAME AS company_name,
-        COALESCE ( SUM( ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium ), 0 ) AS total_receivable,
-        COALESCE ( SUM( ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums ), 0 ) AS supervise_fee,
-        COALESCE ( SUM( ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums ), 0 ) AS follow_fee,
+        COALESCE ( SUM( COALESCE(ipi.jq_receivable_premium,0)  + COALESCE(ipi.sy_receivable_premium,0)  +  COALESCE(ipi.jy_receivable_premium,0)  ), 0 ) AS total_receivable,
+        COALESCE ( SUM( COALESCE(ipi.jq_supervise_costs_premiums,0)  + COALESCE(ipi.sy_supervise_costs_premiums,0)  + COALESCE(ipi.jy_supervise_costs_premiums,0)  ), 0 ) AS supervise_fee,
+        COALESCE ( SUM( COALESCE(ipi.jq_other_costs_premiums,0)  + COALESCE(ipi.sy_other_costs_premiums,0)  + COALESCE(ipi.jy_other_costs_premiums,0)  ), 0 ) AS follow_fee,
         COALESCE ( SUM( invoice_summary.total_invoice ), 0 ) AS invoiced_amount,
         COALESCE ( SUM( invoice_summary.total_invoice ), 0 ) AS invoiced_amount,
         COALESCE ( SUM( invoice_summary.settled_invoice ), 0 ) AS settled_amount,
         COALESCE ( SUM( invoice_summary.settled_invoice ), 0 ) AS settled_amount,
         COALESCE ( SUM( invoice_summary.unsettled_invoice ), 0 ) AS un_settled_amount
         COALESCE ( SUM( invoice_summary.unsettled_invoice ), 0 ) AS un_settled_amount
@@ -1417,9 +1417,9 @@
         SELECT
         SELECT
         eic.id as company_id,
         eic.id as company_id,
         eic.name as company_name,
         eic.name as company_name,
-        COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
-        COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
-        COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
+        COALESCE(SUM(COALESCE(ipi.jq_receivable_premium,0)  + COALESCE(ipi.sy_receivable_premium,0)  + COALESCE(ipi.jy_receivable_premium,0) ), 0) as total_receivable,
+        COALESCE(SUM(COALESCE(ipi.jq_supervise_costs_premiums,0)  +COALESCE(ipi.sy_supervise_costs_premiums,0)  +COALESCE(ipi.jy_supervise_costs_premiums,0) ), 0) as supervise_fee,
+        COALESCE(SUM(COALESCE(ipi.jq_other_costs_premiums,0) + COALESCE(ipi.sy_other_costs_premiums,0) + COALESCE(ipi.jy_other_costs_premiums,0)), 0) as follow_fee,
         COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
         COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
         COALESCE(SUM(fee_summary.total_commission) - SUM(invoice_summary.total_invoice), 0) as un_invoiced_amount,
         COALESCE(SUM(fee_summary.total_commission) - SUM(invoice_summary.total_invoice), 0) as un_invoiced_amount,
         COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
         COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
@@ -1453,7 +1453,7 @@
         LEFT JOIN (
         LEFT JOIN (
         SELECT
         SELECT
         ifo.order_no,
         ifo.order_no,
-        SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
+        SUM(DISTINCT (COALESCE(ifo.jq_commission_premium,0)  + COALESCE(ifo.sy_commission_premium,0)  + COALESCE(ifo.jy_commission_premium,0) )) as total_commission
         FROM ins_fee_orders ifo
         FROM ins_fee_orders ifo
         WHERE ifo.is_delete = 0
         WHERE ifo.is_delete = 0
         GROUP BY ifo.order_no
         GROUP BY ifo.order_no
@@ -1474,7 +1474,7 @@
         </where>
         </where>
         GROUP BY
         GROUP BY
         eic.id,
         eic.id,
-        eic.name;
+        eic.name
     </select>
     </select>
 
 
     <!-- 获取子公司 -->
     <!-- 获取子公司 -->
@@ -1482,8 +1482,8 @@
         SELECT
         SELECT
         eic.id as company_id,
         eic.id as company_id,
         eic.name as company_name,
         eic.name as company_name,
-        COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
-        COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
+        COALESCE(SUM(COALESCE(ipi.jq_receivable_premium,0)  + COALESCE(ipi.sy_receivable_premium,0)  + COALESCE(ipi.jy_receivable_premium,0) ), 0) as total_receivable,
+        COALESCE(SUM(COALESCE(ipi.jq_supervise_costs_premiums,0) +COALESCE(ipi.sy_supervise_costs_premiums,0) + COALESCE(ipi.jy_supervise_costs_premiums,0) ), 0) as supervise_fee,
         COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
         COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
         COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
         COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
         COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
         COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
@@ -1529,7 +1529,7 @@
         </where>
         </where>
         GROUP BY
         GROUP BY
         eic.id,
         eic.id,
-        eic.name;
+        eic.name
     </select>
     </select>
 
 
 
 
@@ -1552,18 +1552,18 @@
         SELECT
         SELECT
         ipi.contact_person AS receiver,
         ipi.contact_person AS receiver,
         ipi.company_id,
         ipi.company_id,
-        SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) AS superviseFee,
-        SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) AS followFee,
+        SUM(COALESCE(ipi.jq_supervise_costs_premiums,0)  +COALESCE(ipi.sy_supervise_costs_premiums,0)  +COALESCE(ipi.jy_supervise_costs_premiums,0) ) AS superviseFee,
+        SUM(COALESCE(ipi.jq_other_costs_premiums,0) + COALESCE(ipi.sy_other_costs_premiums,0) +COALESCE(ipi.jy_other_costs_premiums,0) ) AS followFee,
         SUM(
         SUM(
-        (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) +
-        (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums)
+        (COALESCE(ipi.jq_supervise_costs_premiums,0) + COALESCE(ipi.sy_supervise_costs_premiums,0) + COALESCE(ipi.jy_supervise_costs_premiums,0)) +
+        (COALESCE(ipi.jq_other_costs_premiums,0) + COALESCE(ipi.sy_other_costs_premiums,0) + COALESCE(ipi.jy_other_costs_premiums,0))
         ) AS totalReceivable,
         ) AS totalReceivable,
-        SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledSuperviseFee,
-        SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledFollowFee,
-        SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledAmount,
-        SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledSuperviseFee,
-        SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledFollowFee,
-        SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledAmount
+        --SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledSuperviseFee,
+        -- SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledFollowFee,
+        SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type IN (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledAmount,
+        --SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledSuperviseFee
+        -- ,SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledFollowFee,
+        SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type IN (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledAmount
         FROM
         FROM
         ins_ply_income ipi
         ins_ply_income ipi
         LEFT JOIN ins_ply_income_invoice_link ipil ON ipi.id = ipil.income_id AND ipil.is_delete = 0
         LEFT JOIN ins_ply_income_invoice_link ipil ON ipi.id = ipil.income_id AND ipil.is_delete = 0
@@ -1602,9 +1602,9 @@
         eic.parent_id,
         eic.parent_id,
         ipi.company_id,
         ipi.company_id,
         ipi.system_code,
         ipi.system_code,
-        sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_proportion,0 )+COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as totalReceivable ,
-        sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_proportion,0 )+COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as totalFollowFee,
-        sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_proportion,0 )) as superviseFee,
+        sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_premiums,0 )+COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as totalReceivable ,
+        sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_premiums,0 )+COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as totalFollowFee,
+        sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_premiums,0 )) as superviseFee,
         sum(COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as followFee
         sum(COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as followFee
         from
         from
         ins_ply_income ipi
         ins_ply_income ipi

Неке датотеке нису приказане због велике количине промена