Browse Source

Merge remote-tracking branch 'origin/test' into test

Qchen 4 months ago
parent
commit
6e8f166ee8

+ 4 - 0
src/main/java/com/ydtech/modules/ins/model/yc/audit/Audit.java

@@ -198,6 +198,9 @@ public class Audit {
         @JacksonXmlProperty(localName = "ywFlag")
         private String ywFlag;
 
+        @JacksonXmlProperty(localName = "CBodyColor")
+        private String cBodyColor;
+
         /**
          * 客户信息 customer
          */
@@ -252,6 +255,7 @@ public class Audit {
 
         condition.setCProdNoSY(condition.getSyFlag().equals("1") ? "0364" : "");
         condition.setCProdNoJQ(condition.getJqFlag().equals("1") ? "0326" : "");
+        condition.setCBodyColor("02");
 
         condition.setQuerySequenceNoSy(iac.getSyapplyno());
         condition.setQuerySequenceNoJq(iac.getJqapplyno());

+ 8 - 1
src/main/java/com/ydtech/modules/ins/model/yc/ruote/Vhl.java

@@ -327,6 +327,12 @@ public class Vhl {
      */
     @JacksonXmlProperty(localName = "CChdUbiData")
     private String CChdUbiData;
+
+    /**
+     * 车身颜色
+     */
+    @JacksonXmlProperty(localName = "CBodyColor")
+    private String CBodyColor;
 //    /**
 //     * 品牌名称
 //     */
@@ -462,7 +468,8 @@ public class Vhl {
 
         vhl.setCQryCdeJQ(cQryCdeJQ);
         vhl.setCQryCdeSY(cQryCdeSY);
-
+        //车身颜色
+        vhl.setCBodyColor("02");
 
 
         return vhl;

+ 6 - 1
src/main/java/com/ydtech/modules/order/entity/api/chengtai/request/PremiumCalculationRequest.java

@@ -623,7 +623,12 @@ public class PremiumCalculationRequest {
             this.actualValue = actualValue;
             this.loanVehicleFlag = "0";
             this.seatNum = Integer.valueOf(vehicle.getSeat());
-            this.displacement = vehicle.getVehicleDisplacement();
+            if(vehicle.getVehicleDisplacement().equals("")){
+                //诚泰要求新能源排量必须传!
+                this.displacement = "1";
+            }else {
+                this.displacement = vehicle.getVehicleDisplacement();
+            }
             this.power = (int) Double.parseDouble(carInfoVo.getPowerScale());
             if (carInfoVo.getEnergyType().equals("0")) {
                 this.energyFlag = "0";

+ 9 - 4
src/main/java/com/ydtech/modules/order/entity/api/chengtai/request/SubmitRequest.java

@@ -1,6 +1,8 @@
 package com.ydtech.modules.order.entity.api.chengtai.request;
 
 import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.json.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
@@ -9,6 +11,7 @@ import com.ydtech.modules.admin.service.SysAreaService;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.entity.InsAreaCompanyInfo;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.api.chengtai.XmlDateTimeFormatter;
 import com.ydtech.modules.order.entity.api.chengtai.constants.CtKindCodeEnum;
@@ -23,6 +26,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -94,11 +98,11 @@ public class SubmitRequest {
 //    @JacksonXmlProperty(localName = "RiskSpecialClausesList")
 //    private List<RiskSpecialClauses> RiskSpecialClausesList;
 
-    public SubmitRequest(InsOrders insOrders, BigDecimal actualValue, CarModelQueryResponse.vehicle vehicle,
+    public SubmitRequest(InsOrders insOrders, InsAreaCompanyInfo insAreaCompanyInfo, BigDecimal actualValue, CarModelQueryResponse.vehicle vehicle,
                               ChengTaiConfigureParameters parameters, InsAreaCompany insAreaCompany,CustomerInfoVo policyHolderInfo,CustomerInfoVo insuredPersonInfo) {
         this.Head = new head(parameters);
         this.BasePart = new basePart(insOrders,insAreaCompany);
-        this.ItemMotor = new itemMotor(insOrders,actualValue,vehicle);
+        this.ItemMotor = new itemMotor(insOrders,insAreaCompanyInfo,actualValue,vehicle);
         this.riskListWrapper = new RiskListWrapper();
         this.riskListWrapper.setRisks(Risk.buildRiskList(insOrders,insAreaCompany));
         this.kindListWrapper = new KindListWrapper();
@@ -556,8 +560,8 @@ public class SubmitRequest {
         @JacksonXmlProperty(localName = "runMiles")
         private Integer runMiles;
 
-        public itemMotor(InsOrders insOrders, BigDecimal actualValue,CarModelQueryResponse.vehicle vehicle) {
-            CarInfoVo carInfoVo = insOrders.getCarinfo().toJavaObject(CarInfoVo.class);
+        public itemMotor(InsOrders insOrders, InsAreaCompanyInfo insAreaCompanyInfo, BigDecimal actualValue, CarModelQueryResponse.vehicle vehicle) {
+            CarInfoVo carInfoVo = JSONObject.parseObject(insAreaCompanyInfo.getCarInfo()).toJavaObject(CarInfoVo.class);
             CustomerInfoVo customerInfoVo = insOrders.getOwnerinfo().toJavaObject(CustomerInfoVo.class);
             this.carOwner = customerInfoVo.getName();
             this.licenseNo = carInfoVo.getLicenseNo();
@@ -1232,6 +1236,7 @@ public class SubmitRequest {
                         kind.quantity = Integer.valueOf(kindInfoVo.getDeductibleRate());
                     } else if (ArrayUtil.indexOf(InsuranceTypeCorrespondence.getSpecialContractClause(), kindCode) >= 0) {
                         kind.quantity = kindInfoVo.getServiceTimes();
+                        kind.sumInsured = new BigDecimal(BigInteger.ZERO);
                     } else if (CtKindCodeEnum.A.getCode().equals(kindCode)) {
                         kind.sumInsured = actualValue;
                     } else {

+ 11 - 3
src/main/java/com/ydtech/modules/order/service/impl/ChengTaiOrderApiServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.config.properties.ChengTaiApiConfigurationProperties;
@@ -21,6 +22,7 @@ import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.chengtai.ChengTaiRequestApiComponent;
 import com.ydtech.modules.order.components.chengtai.ChengTaiRequestApiComponents;
 import com.ydtech.modules.order.constants.QuoteNumberConstant;
+import com.ydtech.modules.order.dao.InsAreaCompanyInfoMapper;
 import com.ydtech.modules.order.dao.SysQuoteRecordMapper;
 import com.ydtech.modules.order.entity.*;
 import com.ydtech.modules.order.entity.api.chengtai.SecurityUrl;
@@ -282,7 +284,7 @@ public class ChengTaiOrderApiServiceImpl implements ChengTaiOrderApiService {
                 quoteInfoVo.getRiskList().forEach(riskInfoVo -> {
                     String start, end = "";
 
-                    if (riskInfoVo.getRiskCode().equals("0507") && finalPremiumCalculationResponse.getHead().getErrorMessage().contains("交强")){
+                    if (riskInfoVo.getRiskCode().equals("0507") && finalPremiumCalculationResponse.getHead().getErrorMessage().contains("交强")) {
                         riskInfoVo.setStartDate(formatStartDate);
                         riskInfoVo.setEndDate(formatEndDate);
                     }
@@ -312,7 +314,10 @@ public class ChengTaiOrderApiServiceImpl implements ChengTaiOrderApiService {
                     sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(), quoteInfoVo.getUserid(), sysQuoteRecords);
                     throw new SystemException("报价次数限制");
                 }
+            } else if (premiumCalculationResponse.getHead().getErrorMessage().contains("重复投保")) {
+                throw new SystemException(premiumCalculationResponse.getHead().getErrorMessage());
             }
+
         }
         // 转保车处理
         String ciQuestion = premiumCalculationResponse.getCompRisk() != null
@@ -712,18 +717,21 @@ public class ChengTaiOrderApiServiceImpl implements ChengTaiOrderApiService {
 //        }
 //
 //    }
+    @Autowired
+    private InsAreaCompanyInfoMapper insAreaCompanyInfoMapper;
 
     @Override
     public HttpResult<Object> submit(String companyId) throws Exception {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
+        InsAreaCompanyInfo insAreaCompanyInfo = insAreaCompanyInfoMapper.selectById(companyId);
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
         ChengTaiConfigureParameters parameters = configureParametersComponents.toEntity(ChengTaiConfigureParameters.class,
                 ptlAgreementAttribution);
         /**
          * 诚泰车型查询
          */
-        CarInfoVo carInfo = JSON.toJavaObject(insOrders.getCarinfo(), CarInfoVo.class);
+        CarInfoVo carInfo = JSON.toJavaObject(JSONObject.parseObject(insAreaCompanyInfo.getCarInfo()), CarInfoVo.class);
         CarModelQueryRequest carModelQueryRequest = new CarModelQueryRequest(carInfo);
         CarModelQueryResponse carModelQueryResponse = chengTaiRequestApiComponent.carModelQuery(carModelQueryRequest);
         CarModelQueryResponse.vehicle vehicle =
@@ -744,7 +752,7 @@ public class ChengTaiOrderApiServiceImpl implements ChengTaiOrderApiService {
         insuredPersonInfo.setCity(insuredPersonAreaVo.getCityCode());
         insuredPersonInfo.setCounty(insuredPersonAreaVo.getCountyCode());
         // 核保
-        SubmitRequest submitRequest = new SubmitRequest(insOrders, carActualValue, vehicle,
+        SubmitRequest submitRequest = new SubmitRequest(insOrders, insAreaCompanyInfo, carActualValue, vehicle,
                 parameters, insAreaCompany, policyHolderInfo, insuredPersonInfo);
         SubmitResponse submitResponse = chengTaiRequestApiComponent.submit(submitRequest);
         // 响应失败

+ 3 - 0
src/main/java/com/ydtech/modules/order/service/impl/YangGuangOrderApiServiceImpl.java

@@ -284,6 +284,9 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
                         quoteVo.getAccidentalDrivingVo(),quoteInfoVo);
             }
         }
+        if(yangGuangAccuracyCalculateResponse.getRemarkBi() != null && !yangGuangAccuracyCalculateResponse.getRemarkBi().equals("")){
+            throw new SystemException(yangGuangAccuracyCalculateResponse.getRemarkBi());
+        }
         // 单商 交三 交商 需要获取车辆actualValue 进行二次报价
         if (insOrders.getProductid().equals("034001") || insOrders.getProductid().equals("0330034001") || insOrders.getProductid().equals("0330034002")) {
             if (yangGuangAccuracyCalculateResponse.getErrorCode().equals("0")) {