Explorar o código

1.修改紫金重复投保信息
2.增加出险次数,续保信息

wks %!s(int64=2) %!d(string=hai) anos
pai
achega
21d83e968a

+ 7 - 0
sql/Online.sql

@@ -0,0 +1,7 @@
+# 2024-05-15 wks
+alter table ins_area_company
+    add jq_claims tinyint null comment '交强出险次数', ALGORITHM=INSTANT;
+
+alter table ins_area_company
+    add sy_claims tinyint null comment '商业出险次数', ALGORITHM=INSTANT;
+

+ 26 - 30
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -1,27 +1,22 @@
 package com.ydtech.modules.fee.dto.vo;
 package com.ydtech.modules.fee.dto.vo;
 
 
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.constants.enums.dict.insurance.VehicleType;
 import com.ydtech.constants.enums.dict.insurance.VehicleType;
-import com.ydtech.modules.ins.model.vo.*;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.api.dajia.constants.TypeVehicleMapping;
 import com.ydtech.modules.order.entity.api.dajia.constants.TypeVehicleMapping;
-import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
-import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocol.entity.po.PtlNewCarJudgeRules;
 import com.ydtech.modules.protocol.entity.po.PtlNewCarJudgeRules;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
-import org.springframework.beans.factory.annotation.Autowired;
 
 
 import java.time.LocalDate;
 import java.time.LocalDate;
-import java.time.Period;
 import java.time.temporal.ChronoUnit;
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
-import java.util.Objects;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
 
 
 /**
 /**
@@ -43,7 +38,8 @@ public class RuleAttrMappingVo {
     }
     }
 
 
     public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(InsAreaCompany insAreaCompany, InsOrders insOrders,
     public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(InsAreaCompany insAreaCompany, InsOrders insOrders,
-                                                                   List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList, PtlNewCarJudgeRules carJudgeRule) {
+                                                                   List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList,
+                                                                   PtlNewCarJudgeRules carJudgeRule) {
         List<RuleAttrMappingVo> ruleAttrMappingVoList = new ArrayList<>();
         List<RuleAttrMappingVo> ruleAttrMappingVoList = new ArrayList<>();
         CarInfoVo carInfo = insOrders.getCarinfo().toJavaObject(CarInfoVo.class);
         CarInfoVo carInfo = insOrders.getCarinfo().toJavaObject(CarInfoVo.class);
         //车牌号
         //车牌号
@@ -72,21 +68,18 @@ public class RuleAttrMappingVo {
         //使用注册日期算出自然月 然后判断是否是新旧车
         //使用注册日期算出自然月 然后判断是否是新旧车
         LocalDate registrationDate = LocalDate.parse(carInfo.getRegisterDate());
         LocalDate registrationDate = LocalDate.parse(carInfo.getRegisterDate());
         LocalDate currentDate = LocalDate.now();
         LocalDate currentDate = LocalDate.now();
-        PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream().filter(x -> x.getAttrCode().equals("NewAndOldCars")).findFirst().get();
+
         boolean isNoLicenseFlag = false;
         boolean isNoLicenseFlag = false;
-        if(carJudgeRule != null)
-        {
-            if(carJudgeRule.getUnitTypeCode().equals("天")){
+        if (carJudgeRule != null) {
+            if (carJudgeRule.getUnitTypeCode().equals("天")) {
                 long days = ChronoUnit.DAYS.between(registrationDate, currentDate);
                 long days = ChronoUnit.DAYS.between(registrationDate, currentDate);
-                if(days < Integer.parseInt(carJudgeRule.getUnitTypeValue()))
-                {
+                if (days < Integer.parseInt(carJudgeRule.getUnitTypeValue())) {
                     isNoLicenseFlag = true;
                     isNoLicenseFlag = true;
                 }
                 }
             }
             }
-            if(carJudgeRule.getUnitTypeCode().equals("月")){
+            if (carJudgeRule.getUnitTypeCode().equals("月")) {
                 long months = ChronoUnit.MONTHS.between(registrationDate, currentDate);
                 long months = ChronoUnit.MONTHS.between(registrationDate, currentDate);
-                if(months < Integer.parseInt(carJudgeRule.getUnitTypeValue()))
-                {
+                if (months < Integer.parseInt(carJudgeRule.getUnitTypeValue())) {
                     isNoLicenseFlag = true;
                     isNoLicenseFlag = true;
                 }
                 }
             }
             }
@@ -138,7 +131,8 @@ public class RuleAttrMappingVo {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("MotorVehicleDamageInsurance", String.valueOf(kindInfoVo.getAmount())));
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("MotorVehicleDamageInsurance", String.valueOf(kindInfoVo.getAmount())));
             //第三者责任险
             //第三者责任险
             if (InsurKind.B.getCode().equals(kindInfoVo.getKindCode()))
             if (InsurKind.B.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyLiabilityInsurance", String.valueOf(Double.valueOf(kindInfoVo.getAmount()).intValue())));
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyLiabilityInsurance",
+                        String.valueOf(Double.valueOf(kindInfoVo.getAmount()).intValue())));
             //司机责任险
             //司机责任险
             if (InsurKind.D3.getCode().equals(kindInfoVo.getKindCode()))
             if (InsurKind.D3.getCode().equals(kindInfoVo.getKindCode()))
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
@@ -251,25 +245,27 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialPayoutRate", String.valueOf(insAreaCompany.getSyLossRation())));
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialPayoutRate", String.valueOf(insAreaCompany.getSyLossRation())));
         //总赔付率
         //总赔付率
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("TotalPayoutRate", String.valueOf(insAreaCompany.getLossRation())));
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("TotalPayoutRate", String.valueOf(insAreaCompany.getLossRation())));
-        //真假单交
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("AuthenticAndFakeOrdersExchange", insAreaCompany.getIszdj()));
-        //出险次数
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NumberOfClaims", insAreaCompany.getAccidentInfoStr()));
-        //太平的分区
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PeacefulDistrict", quoteRespVo.getExtendInfo()));
         //太平绿黄红区
         //太平绿黄红区
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("GreenYellowAndRedAreas", insAreaCompany.getTpColorScore()));
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("GreenYellowAndRedAreas", insAreaCompany.getTpColorScore()));
-        if(insAreaCompany.getAccidentalDriving() != null) {
+        if (insAreaCompany.getAccidentalDriving() != null) {
             //非车名称
             //非车名称
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonCarName", insAreaCompany.getAccidentalDriving().getRideRiskName()));
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonCarName", insAreaCompany.getAccidentalDriving().getRideRiskName()));
             //非车份数
             //非车份数
-            ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonCarQuantity", String.valueOf(insAreaCompany.getAccidentalDriving().getQuantity())));
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonCarQuantity",
+                    String.valueOf(insAreaCompany.getAccidentalDriving().getQuantity())));
         }
         }
         //真假单交
         //真假单交
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("IsDJQ",insAreaCompany.getIsDjq()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("IsDJQ", insAreaCompany.getIsDjq()));
         //紫金鼎然评分
         //紫金鼎然评分
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("UbiPredictedInfoScore",insAreaCompany.getUbiPredictedInfoScore()));
-
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("UbiPredictedInfoScore", insAreaCompany.getUbiPredictedInfoScore()));
+        //交强续保
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqRenewal", insAreaCompany.getJqRenewal()));
+        //商业续保
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyRenewal", insAreaCompany.getSyRenewal()));
+        // 交强出险次数
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqNumberOfClaims", insAreaCompany.getJqClaims()));
+        // 商业出险次数
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyNumberOfClaims", insAreaCompany.getSyClaims()));
         return ruleAttrMappingVoList;
         return ruleAttrMappingVoList;
     }
     }
 }
 }

+ 1 - 1
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -69,7 +69,7 @@ public class CarSettleController extends BaseController {
 //                .eq("orderno", orderNo)
 //                .eq("orderno", orderNo)
 //                .and(wrapper -> wrapper.eq("orderstatus", "3").or().eq("orderstatus", "2"))
 //                .and(wrapper -> wrapper.eq("orderstatus", "3").or().eq("orderstatus", "2"))
 //                .list();//3已承保
 //                .list();//3已承保
-        if(areaList!=null && areaList.size()>0){
+        if(areaList!=null && !areaList.isEmpty()){
             return insOrdersService.getByCompanyId(areaList.get(0).getId(),"accountingUser");
             return insOrdersService.getByCompanyId(areaList.get(0).getId(),"accountingUser");
         }else{
         }else{
             return HttpResult.error("订单号有误-未承保");
             return HttpResult.error("订单号有误-未承保");

+ 6 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -162,6 +162,12 @@ public class QuoteRespVo {
     @ApiModelProperty("费用不符合描述")
     @ApiModelProperty("费用不符合描述")
     private String feeNoDescription;
     private String feeNoDescription;
 
 
+    @ApiModelProperty("交强出险次数")
+    private String jqClaims;
+
+    @ApiModelProperty("商业出险次数")
+    private String syClaims;
+
     public List<AccidentResponseVo> getAccidentInfo() {
     public List<AccidentResponseVo> getAccidentInfo() {
         return accident == null ? Collections.emptyList() : accident;
         return accident == null ? Collections.emptyList() : accident;
     }
     }

+ 1 - 26
src/main/java/com/ydtech/modules/ins/model/yc/YcBuildData.java

@@ -190,34 +190,11 @@ public class YcBuildData {
         quoteRespVo.setStartDateSy(StringUtils.toString(rd.getBase().getTInsrncBgnTmSY()));
         quoteRespVo.setStartDateSy(StringUtils.toString(rd.getBase().getTInsrncBgnTmSY()));
         quoteRespVo.setEndDateSy(StringUtils.toString(rd.getBase().getTInsrncEndTmSY()));
         quoteRespVo.setEndDateSy(StringUtils.toString(rd.getBase().getTInsrncEndTmSY()));
 
 
-
-        //交强险出险字符串
-        StringBuffer ciSB = new StringBuffer("交强险-【无法获取】");
-        //商业险出险字符串
-        StringBuffer biSB = new StringBuffer();
-//        if (null != rd.getVehicleAdjust()) {
-//            //交强险过往出险记录
-//            String jQRecordDanger = StringUtils.toString(rd.getVehicleAdjust().getJQRecordDanger(),"");
-//            ciSB.append("交强险过往出险记录:");
-//            ciSB.append(jQRecordDanger);
-//        }
-
         if (null != rd.getPrmCoef()) {
         if (null != rd.getPrmCoef()) {
             //商业险   连续承保期间出险次数
             //商业险   连续承保期间出险次数
-            int nClaimTimes = StringUtils.toInt(rd.getPrmCoef().getNClaimTimes());
-            biSB.append(",商业险-");
-            biSB.append("连续承保期间出险次数:");
-            biSB.append(nClaimTimes);
-
-//            //连续承保年数
-//            int nInsureYears = StringUtils.toInt(rd.getPrmCoef().getNInsureYears());
-            //        String.format("连续承保期间出险次数 %s ,连续承保年数 %s",nClaimTimes,nInsureYears);
+            quoteRespVo.setJqClaims(rd.getPrmCoef().getNClaimTimes());
         }
         }
 
 
-        //出险信息
-        quoteRespVo.setAccidentInfoStr(String.format("%s%s", ciSB, biSB));
-
-
         //欠税信息
         //欠税信息
         if (null != rd.getTax()) {
         if (null != rd.getTax()) {
             List<TaxArrears> taxArrearsList = new ArrayList<>();
             List<TaxArrears> taxArrearsList = new ArrayList<>();
@@ -230,7 +207,6 @@ public class YcBuildData {
             quoteRespVo.setTaxArrears(taxArrearsList);
             quoteRespVo.setTaxArrears(taxArrearsList);
         }
         }
 
 
-
         //平台返回信息
         //平台返回信息
         if (null != rd.getTfiWarnList()) {
         if (null != rd.getTfiWarnList()) {
             //排空
             //排空
@@ -241,7 +217,6 @@ public class YcBuildData {
             quoteRespVo.setWarnMessageList(warnMessageList);
             quoteRespVo.setWarnMessageList(warnMessageList);
         }
         }
 
 
-
         return quoteRespVo;
         return quoteRespVo;
     }
     }
 
 

+ 1 - 1
src/main/java/com/ydtech/modules/order/components/gouren/GuorenDuplicateInsuranceComponent.java

@@ -89,7 +89,7 @@ public class GuorenDuplicateInsuranceComponent {
                 throw new SystemException(message);
                 throw new SystemException(message);
             }
             }
         }
         }
-        throw new SystemException(message);
+        return "";
     }
     }
 
 
     /**
     /**

+ 15 - 58
src/main/java/com/ydtech/modules/order/components/zijin/ZijinDuplicateInsuranceComponents.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.components.zijin;
 
 
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.order.components.gouren.GuorenDuplicateInsuranceComponent;
 import com.ydtech.modules.order.entity.api.zijin.constants.enums.CalculateFlagEnum;
 import com.ydtech.modules.order.entity.api.zijin.constants.enums.CalculateFlagEnum;
 import com.ydtech.modules.order.entity.api.zijin.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zijin.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zijin.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zijin.request.CalculatePremiumRequest;
@@ -35,61 +36,17 @@ public class ZijinDuplicateInsuranceComponents extends ResponseMessageAbstractHa
 
 
     public static final String JQ = "交强险";
     public static final String JQ = "交强险";
 
 
-    public static final String SY_REGEX = "商业险.+?终保日期(:?)(\\d+)";
-
-    public static final String DAN_SY_REGEX = "商业险.+?终保日期 (.+?);";
+    protected static final String[] SY_REGEX = {"商业险.+?终保日期 (.+?);", "\"商业险.+?终保日期(:?)(.+?)", "商业险.+?终保日期(:?)(\\d+)"};
 
 
     public static final String SY = "商业险";
     public static final String SY = "商业险";
 
 
     private final ZijinRequestApiComponents zijinRequestApiComponents;
     private final ZijinRequestApiComponents zijinRequestApiComponents;
 
 
+
     public ZijinDuplicateInsuranceComponents(@Lazy ZijinRequestApiComponents zijinRequestApiComponents) {
     public ZijinDuplicateInsuranceComponents(@Lazy ZijinRequestApiComponents zijinRequestApiComponents) {
         this.zijinRequestApiComponents = zijinRequestApiComponents;
         this.zijinRequestApiComponents = zijinRequestApiComponents;
     }
     }
 
 
-    /**
-     * 获取终保日期
-     *
-     * @param message 重复投保返回信息
-     * @param regex   正则内容
-     * @return
-     */
-    public static String getTheExpiryDate(String message, String regex) {
-        Pattern pattern = Pattern.compile(regex);
-        Matcher m = pattern.matcher(message.replace("\n", ";"));
-        boolean b = m.find();
-        if (b) {
-            String group = m.group(1);
-            if (group.contains("-")) {
-                return m.group(1) + ":00";
-            } else {
-                try {
-                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
-                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    return simpleDateFormat.format(dateFormat.parse(m.group(1)));
-                } catch (Exception e) {
-                    throw new SystemException(message);
-                }
-            }
-        }
-        throw new SystemException(message);
-    }
-
-    /**
-     * 获取终保日期
-     *
-     * @param rtnMsg 返回信息
-     * @param regex  正则
-     * @return 终保日期
-     */
-    public static String getEndDate(String rtnMsg, String regex) {
-        String endDate = getTheExpiryDate(rtnMsg, regex);
-        if (!endDate.isEmpty()) {
-            return endDate;
-        }
-        return "";
-    }
-
 
 
     @Override
     @Override
     public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest,
     public CalculatePremiumResponse messageHandler(CalculatePremiumRequest calculatePremiumRequest,
@@ -99,7 +56,8 @@ public class ZijinDuplicateInsuranceComponents extends ResponseMessageAbstractHa
                                                    String message,
                                                    String message,
                                                    QueryActualValueRequest queryActualValueRequest,
                                                    QueryActualValueRequest queryActualValueRequest,
                                                    boolean retry) {
                                                    boolean retry) {
-        InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), "\n\t---------> {}\n\t---------> {}", "紫金财险重复投保处理", calculatePremiumResponse.getRtnMsg());
+        InsuranceLog.infoLog(InsuranceEnum.ZKIC.getPinyin(), "\n\t---------> {}\n\t---------> {}", "紫金财险重复投保处理",
+                calculatePremiumResponse.getRtnMsg());
         String rtnMsg = calculatePremiumResponse.getRtnMsg();
         String rtnMsg = calculatePremiumResponse.getRtnMsg();
         CalculatePremiumRequest.BaseInfoDTO baseInfo = calculatePremiumRequest.getBaseInfo();
         CalculatePremiumRequest.BaseInfoDTO baseInfo = calculatePremiumRequest.getBaseInfo();
         message = rtnMsg;
         message = rtnMsg;
@@ -112,33 +70,32 @@ public class ZijinDuplicateInsuranceComponents extends ResponseMessageAbstractHa
 
 
         // 单交强
         // 单交强
         if (CalculateFlagEnum.CF_2.getCode().equals(calculateFlag)) {
         if (CalculateFlagEnum.CF_2.getCode().equals(calculateFlag)) {
-            jqEndDate = getEndDate(rtnMsg, DAN_JQ_REGEX);
+            jqEndDate = GuorenDuplicateInsuranceComponent.getEndDate(rtnMsg, DAN_JQ_REGEX);
         }
         }
         // 交强险
         // 交强险
         else if (rtnMsg.contains(JQ)) {
         else if (rtnMsg.contains(JQ)) {
-            jqEndDate = getEndDate(rtnMsg, JQ_REGEX);
-        }
-
-        // 商业险
-        if (rtnMsg.contains(SY)) {
-            syEndDate = getEndDate(rtnMsg, SY_REGEX);
+            jqEndDate = GuorenDuplicateInsuranceComponent.getEndDate(rtnMsg, JQ_REGEX);
         }
         }
 
 
         // 商业险
         // 商业险
         if (rtnMsg.contains(SY)) {
         if (rtnMsg.contains(SY)) {
-            syEndDate = getEndDate(rtnMsg, DAN_SY_REGEX);
+            for (String syRegex : SY_REGEX) {
+                syEndDate = GuorenDuplicateInsuranceComponent.getEndDate(rtnMsg, syRegex);
+                if (!syEndDate.isEmpty()) {
+                    break;
+                }
+            }
         }
         }
 
 
-
         if (jqEndDate.isEmpty() && syEndDate.isEmpty()) {
         if (jqEndDate.isEmpty() && syEndDate.isEmpty()) {
             throw new SystemException(rtnMsg);
             throw new SystemException(rtnMsg);
         }
         }
 
 
         baseInfo.setTrafficTime(jqEndDate);
         baseInfo.setTrafficTime(jqEndDate);
         baseInfo.setBusinessTime(syEndDate);
         baseInfo.setBusinessTime(syEndDate);
-        calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message, queryActualValueRequest, retry);
+        calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest,
+                message, queryActualValueRequest, retry);
         return calculatePremiumResponse;
         return calculatePremiumResponse;
     }
     }
 
 
-
 }
 }

+ 12 - 0
src/main/java/com/ydtech/modules/order/components/zijin/ZijinRequestApiComponents.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.order.entity.api.zijin.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zijin.request.*;
 import com.ydtech.modules.order.entity.api.zijin.request.*;
 import com.ydtech.modules.order.entity.api.zijin.response.*;
 import com.ydtech.modules.order.entity.api.zijin.response.*;
 import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
 import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
+import com.ydtech.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.redisson.api.RedissonClient;
@@ -22,6 +23,7 @@ import org.springframework.util.ObjectUtils;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
 
 
 /**
 /**
@@ -255,6 +257,16 @@ public class ZijinRequestApiComponents {
             baseInfo.setDemandNo(null);
             baseInfo.setDemandNo(null);
         }
         }
 
 
+        // 处理紫金重复投保
+        String reinsureMessage = Optional.ofNullable(calculatePremiumResponse.getBasePart())
+                .map(CalculatePremiumResponse.BasePartDTO::getReinsureMessage)
+                .orElse("");
+
+        if (StringUtils.isNotEmpty(reinsureMessage)) {
+            calculatePremiumResponse.setRtnCode(ResultEnum.C_4001);
+            calculatePremiumResponse.setRtnMsg(reinsureMessage);
+        }
+
         // 通过状态码获取处理器处理
         // 通过状态码获取处理器处理
         ResponseMessageAbstractHandler responseMessageAbstractHandler =
         ResponseMessageAbstractHandler responseMessageAbstractHandler =
                 handlerMap.get(ResponseMessageAbstractHandler.CALCULATE_PREMIUM_COMPONENTS + calculatePremiumResponse.getRtnCode());
                 handlerMap.get(ResponseMessageAbstractHandler.CALCULATE_PREMIUM_COMPONENTS + calculatePremiumResponse.getRtnCode());

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

@@ -453,6 +453,18 @@ public class InsAreaCompany implements Serializable {
     @ApiModelProperty(value = "sy_renewal")
     @ApiModelProperty(value = "sy_renewal")
     private String syRenewal;
     private String syRenewal;
 
 
+    /**
+     * 交强出险次数
+     */
+    @ApiModelProperty(value = "jq_claims")
+    private String jqClaims;
+
+    /**
+     * 商业出险次数
+     */
+    @ApiModelProperty("sy_claims")
+    private String syClaims;
+
 
 
     public InsAreaCompany(QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
     public InsAreaCompany(QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
         this.id = IdGenerate.nextId();
         this.id = IdGenerate.nextId();

+ 12 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerQuoteResponse.java

@@ -258,6 +258,18 @@ public class CrawlerQuoteResponse extends CrawlerBaseResponse {
         @JsonProperty("sy_renewalflag")
         @JsonProperty("sy_renewalflag")
         private String syRenewalFlag;
         private String syRenewalFlag;
 
 
+        /**
+         * 交强出险次数
+         */
+        @JsonProperty("jq_accident")
+        private String jqAccident;
+
+        /**
+         * 商业出险次数
+         */
+        @JsonProperty("sy_accident")
+        private String syAccident;
+
         /**
         /**
          * 返回1需要验车,返回0不验车。
          * 返回1需要验车,返回0不验车。
          * 是否需要验车
          * 是否需要验车

+ 12 - 1
src/main/java/com/ydtech/modules/order/entity/vo/ya/YaExtendInfoDto.java

@@ -1,6 +1,5 @@
 package com.ydtech.modules.order.entity.vo.ya;
 package com.ydtech.modules.order.entity.vo.ya;
 
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
@@ -67,6 +66,18 @@ public class YaExtendInfoDto implements Serializable {
     @ApiModelProperty("商业险折扣")
     @ApiModelProperty("商业险折扣")
     private double syAdjustRate;
     private double syAdjustRate;
 
 
+    @ApiModelProperty("交强续保")
+    private String jqRenewal;
+
+    @ApiModelProperty("商业续保")
+    private String syRenewal;
+
+    @ApiModelProperty("交强出险次数")
+    private String jqClaims;
+
+    @ApiModelProperty("商业出险次数")
+    private String syClaims;
+
     /**
     /**
      *  临时增加
      *  临时增加
      *
      *

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

@@ -369,6 +369,10 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         quoteRespVo.setJqRenewal(other.getJqRenewalFlag());
         quoteRespVo.setJqRenewal(other.getJqRenewalFlag());
         // 商业是否续保
         // 商业是否续保
         quoteRespVo.setSyRenewal(other.getSyRenewalFlag());
         quoteRespVo.setSyRenewal(other.getSyRenewalFlag());
+        // 交强出险次数
+        quoteRespVo.setJqClaims(other.getJqAccident());
+        // 商业出险次数
+        quoteRespVo.setSyApplyNo(other.getSyAccident());
         return quoteRespVo;
         return quoteRespVo;
     }
     }
 
 

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

@@ -703,6 +703,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         yaExtendInfoDto.setTotalAdjustRate(iac.getTotalAdjustRate());
         yaExtendInfoDto.setTotalAdjustRate(iac.getTotalAdjustRate());
         yaExtendInfoDto.setJqAdjustRate(iac.getJqAdjustRate());
         yaExtendInfoDto.setJqAdjustRate(iac.getJqAdjustRate());
         yaExtendInfoDto.setSyAdjustRate(iac.getSyAdjustRate());
         yaExtendInfoDto.setSyAdjustRate(iac.getSyAdjustRate());
+        // 续保
+        yaExtendInfoDto.setJqRenewal(iac.getJqRenewal());
+        yaExtendInfoDto.setSyRenewal(iac.getSyRenewal());
+        // 出险次数
+        yaExtendInfoDto.setJqClaims(iac.getJqClaims());
+        yaExtendInfoDto.setSyClaims(iac.getSyClaims());
 
 
         orderAndAreaCompany.setExtendInfo(yaExtendInfoDto);
         orderAndAreaCompany.setExtendInfo(yaExtendInfoDto);
 
 

+ 4 - 0
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -67,6 +67,10 @@
         <result property="insideOrderStatus" column="inside_order_status" jdbcType="TINYINT"/>
         <result property="insideOrderStatus" column="inside_order_status" jdbcType="TINYINT"/>
         <result property="insidePayTime" column="inside_pay_time" jdbcType="TIMESTAMP"/>
         <result property="insidePayTime" column="inside_pay_time" jdbcType="TIMESTAMP"/>
         <result property="signingTime" column="signing_time" jdbcType="TIMESTAMP"/>
         <result property="signingTime" column="signing_time" jdbcType="TIMESTAMP"/>
+        <result property="jqRenewal" column="jq_renewal" jdbcType="VARCHAR"/>
+        <result property="syRenewal" column="sy_renewal" jdbcType="VARCHAR"/>
+        <result property="jqClaims" column="jq_claims" jdbcType="VARCHAR"/>
+        <result property="syClaims" column="sy_claims" jdbcType="VARCHAR"/>
 
 
     </resultMap>
     </resultMap>