Răsfoiți Sursa

1.紫金修改

wks 2 ani în urmă
părinte
comite
8a5174c1f4

+ 10 - 3
src/main/java/com/ydtech/modules/order/components/zijin/ZijinRequestApiComponents.java

@@ -248,7 +248,7 @@ public class ZijinRequestApiComponents {
      */
     public CalculatePremiumResponse calculatePremium(CalculatePremiumRequest calculatePremiumRequest, HttpHeaders httpHeaders,
                                                      ModelQueryRequest modelQueryRequest, String message,
-                                                     QueryActualValueRequest queryActualValueRequest,int repeatNumber, int retryNumber) {
+                                                     QueryActualValueRequest queryActualValueRequest, int repeatNumber, int retryNumber) {
         CalculatePremiumResponse calculatePremiumResponse = requestQuotation(RequestUrl.CALCULATE_PREMIUM, calculatePremiumRequest,
                 CalculatePremiumResponse.class, httpHeaders);
         // 清空转保业务码
@@ -261,11 +261,18 @@ public class ZijinRequestApiComponents {
             baseInfo.setDemandNo(null);
         }
 
-        // 处理紫金重复投保
-      if (calculatePremiumResponse.getRtnMsg().contains(HOUR_RULE) && calculatePremiumResponse.getRtnMsg().contains(MINUTE_RULE) ) {
+        String reinsureMessage =
+                Optional.ofNullable(calculatePremiumResponse.getBasePart()).map(CalculatePremiumResponse.BasePartDTO::getReinsureMessage).orElse("");
+
+        if (calculatePremiumResponse.getRtnMsg().contains(HOUR_RULE) && calculatePremiumResponse.getRtnMsg().contains(MINUTE_RULE)) {
             throw new SystemException(calculatePremiumResponse.getRtnMsg());
         }
 
+        if (StringUtils.isNotEmpty(reinsureMessage) && !(reinsureMessage.contains(HOUR_RULE) && reinsureMessage.contains(MINUTE_RULE))) {
+            calculatePremiumResponse.setRtnCode(ResultEnum.C_4001);
+            calculatePremiumResponse.setRtnMsg(reinsureMessage);
+        }
+
         // 通过状态码获取处理器处理
         ResponseMessageAbstractHandler responseMessageAbstractHandler =
                 handlerMap.get(ResponseMessageAbstractHandler.CALCULATE_PREMIUM_COMPONENTS + calculatePremiumResponse.getRtnCode());

+ 7 - 0
src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.idgen.IdGenerate;
@@ -497,6 +498,12 @@ public class InsAreaCompany implements Serializable {
     @TableField(value = "entry_status")
     private Integer entryStatus;
 
+    /**
+     * @see com.ydtech.modules.order.constants.UnderwritingStatus
+     * 核保状态
+     */
+    @TableField("underwriting_status")
+    private Integer underwritingStatus;
 
     public InsAreaCompany(QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
         this.id = IdGenerate.nextId();

+ 21 - 17
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -303,6 +303,10 @@ public class InsOrders implements Serializable {
     @TableField(exist = false)
     private BigDecimal noCostsProportion;
 
+    @ApiModelProperty("核保状态")
+    @TableField(exist = false)
+    private Integer underwritingStatus;
+
 
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
         // 2. 组装订单
@@ -343,12 +347,12 @@ public class InsOrders implements Serializable {
         this.setVehicleAndVesselTax(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getVehicleAndVesselTax())));
     }
 
-    public void setUpEntryStatus(boolean daikeFlag){
+    public void setUpEntryStatus(boolean daikeFlag) {
         if (this.isExternal == 1) {
             this.entryStatus = OrderEntryStatus.OES_3.getCode();
-        }else if(daikeFlag){
+        } else if (daikeFlag) {
             this.entryStatus = OrderEntryStatus.OES_2.getCode();
-        }else {
+        } else {
             this.entryStatus = OrderEntryStatus.OES_1.getCode();
         }
     }
@@ -402,26 +406,26 @@ public class InsOrders implements Serializable {
         this.setProduct(productsType.getDesc());
     }
 
-   /**
-    *  @version
-    *  @author: hxl
-    *  @Date: 2024/7/17 17:15
-    *  @Description:  判断是否投保交强和商业险
-    */
-   public HashMap<String,Boolean> insuranceInformationFlag(List<RiskInfoVo> risks) {
-        HashMap<String,Boolean> map=new HashMap<String,Boolean>();
-        Boolean jqFlag=false;
-        Boolean syFlag=false;
+    /**
+     * @version
+     * @author: hxl
+     * @Date: 2024/7/17 17:15
+     * @Description: 判断是否投保交强和商业险
+     */
+    public HashMap<String, Boolean> insuranceInformationFlag(List<RiskInfoVo> risks) {
+        HashMap<String, Boolean> map = new HashMap<String, Boolean>();
+        Boolean jqFlag = false;
+        Boolean syFlag = false;
         for (RiskInfoVo riskInfoVo : risks) {
             if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
-                jqFlag=true;
+                jqFlag = true;
             }
             if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) {
-                syFlag=true;
+                syFlag = true;
             }
         }
-        map.put("jqFlag",jqFlag);
-        map.put("syFlag",syFlag);
+        map.put("jqFlag", jqFlag);
+        map.put("syFlag", syFlag);
         return map;
     }
 }

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.FileComponents;
 import com.ydtech.modules.order.components.bohai.BoHaiRequestApiComponent;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -371,6 +372,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             return HttpResult.ok("核保通过");
         } else if (i == 2) {
+            insAreaCompany.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
         } else {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -17,6 +17,7 @@ import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.dajia.DaJiaRequestApiComponents;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -582,6 +583,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 }
                 if ("1".equals(odr1010Response.getResult().getJqAppStatus()) || "1".equals(odr1010Response.getResult().getSyAppStatus())) {
                     //修改状态 转人工
+                    insAreaCompany.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                     String message = "";
                     String jqAppStatusMessage = odr1010Response.getResult().getJqAppStatusMessage();

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -21,6 +21,7 @@ import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.gouren.GuorenDuplicateInsuranceComponent;
 import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.dao.InsTaskImagesMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
@@ -329,6 +330,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         }
 
         if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_AUDIT.getCode())) {
+            iac.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
             insAreaCompanyService.updateCompanyAndOrdersMessage(iac, message);
             return HttpResult.error(message);
         }

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java

@@ -16,6 +16,7 @@ import com.ydtech.modules.order.components.huatai.HuaTaiQuotationProcessorCompon
 import com.ydtech.modules.order.components.huatai.HuaTaiRequestApiComponents;
 import com.ydtech.modules.order.components.huatai.HuiTaiUploadImageComponents;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.TaxArrears;
@@ -263,6 +264,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
                 //再调用缴费接口获取缴费链接
                 return getPayURL(insAreaCompany, huaTaiConfigureParameters);
             } else if ("9".equals(huaTaiSubmitCommon.getTotalUnderWriteInd())) {//待核保
+                insAreaCompany.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                 insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                 return HttpResult.ok("已转人工核保");

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -9,6 +9,7 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.InsCrawlerOrderComponents;
 import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -197,6 +198,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
 
         // 是否人工核保
         if (StringUtils.isNotEmpty(crawlerAuditResponse.getManual())) {
+            insAreaCompany.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
             String message = crawlerAuditResponse.getMessage();
             insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java

@@ -14,6 +14,7 @@ import com.ydtech.modules.ins.model.pingan.respose.PingAnQuoteRespVo;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.pingan.PinganRequestApiComponents;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.dao.InsTaskImagesMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsDrivingIntentionInsuranceSon;
@@ -1032,6 +1033,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                 }else if((OrderStatusCodeEnum.ORDER_STATUS_CODE_BH.getCode().equals(status) || OrderStatusCodeEnum.ORDER_STATUS_CODE_BE.getCode().equals(status)
                         ||  OrderStatusCodeEnum.ORDER_STATUS_CODE_B1.getCode().equals(status)  || OrderStatusCodeEnum.ORDER_STATUS_CODE_B6.getCode().equals(status) )  && ("0".equals(insAreaCompany.getOrderstatus()))){
                     // 待验车 BH 资料人工审核-BE B1 B6
+                    insAreaCompany.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                 }else if(OrderStatusCodeEnum.ORDER_STATUS_CODE_B4.getCode().equals(status)){
                     //变为核保退回

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -55,6 +55,7 @@ import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.VerificationCodeIdentification;
 import com.ydtech.modules.order.components.gouren.GuorenDuplicateInsuranceComponent;
 import com.ydtech.modules.order.components.yongcheng.YongchengRequestApiComponents;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -705,6 +706,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                 String statusJq = rd.getStatusJq();
                 String statusSy = rd.getStatusSY();
                 if ("0".equals(statusJq) || "0".equals(statusSy)) {
+                    iac.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
                     iac.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                 } else if ("3".equals(statusJq) || "3".equals(statusSy)) {
                     iac.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -18,6 +18,7 @@ import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
 import com.ydtech.modules.order.components.vehicle.QueryVehicleComponents;
 import com.ydtech.modules.order.components.zhongmei.ZhongmeiRepeatInsuranceComponents;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -238,6 +239,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                 zmConfigureParameters);
         // 3. 人工核保
         if (SubmitStatus.S_3.getCode().equals(response.getSubmitStatus())) {
+            insAreaCompany.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
             String message = response.getSubmitNotion();
             insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -14,6 +14,7 @@ import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.zijin.ZijinRequestApiComponents;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
+import com.ydtech.modules.order.constants.UnderwritingStatus;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -236,6 +237,7 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
                 return HttpResult.error(OrderStatusEnum.O_3.getName() + ":" + uwMsg);
                 // 人工核保
             } else if (OrderStatusEnum.O_1.getCode().equals(resultObj.getOrderStatus())) {
+                insAreaCompany.setUnderwritingStatus(UnderwritingStatus.US_1.getCode());
                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                 insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, uwMsg);
                 return HttpResult.error("人工核保" + ":" + uwMsg);

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

@@ -50,6 +50,7 @@
         <result property="agreementName" column="agreementName" jdbcType="VARCHAR"/>
         <result property="partnerCompaniesName" column="partnerCompaniesName" jdbcType="VARCHAR"/>
         <result property="managementSource" column="managementSource" jdbcType="VARCHAR"/>
+        <result property="underwritingStatus" column="underwritingStatus" jdbcType="INTEGER"/>
 
     </resultMap>
     <resultMap id="OrderResultMap" type="com.ydtech.modules.order.entity.vo.OrderVo">
@@ -891,6 +892,7 @@
         io.king as king,
         io.vehicle_and_vessel_tax as vehicleAndVesselTax,
         iac.id as subOrderId,
+        iac.underwriting_status as underwritingStatus,
         iac.company_id as company_id,
         iac.inscompany as ins_company,
         agree.agreement_code as agreementCode,