Ver código fonte

1.中煤核保,报价字段修改

wks 3 anos atrás
pai
commit
b2179e6303

+ 15 - 71
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -5,22 +5,21 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.ydtech.components.ZhongmeiRequestComponents;
 import com.ydtech.components.ZhongmeiRequestComponents;
 import com.ydtech.constants.enums.InsOrderStatus;
 import com.ydtech.constants.enums.InsOrderStatus;
+import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.esm.model.EsmInsCompany;
-import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.ins.model.request.Response;
 import com.ydtech.modules.ins.model.request.Response;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.ins.model.zm.ZmCarModel;
 import com.ydtech.modules.ins.model.zm.ZmCarModel;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
 import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
+import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
 import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
 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.TaxArrears;
 import com.ydtech.modules.order.entity.TaxArrears;
 import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
 import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
-import com.ydtech.modules.order.entity.api.zm.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.entity.api.zm.constants.enums.AuditStatusEnum;
 import com.ydtech.modules.order.entity.api.zm.constants.enums.AuditStatusEnum;
 import com.ydtech.modules.order.entity.api.zm.constants.enums.DocumentTypeEnum;
 import com.ydtech.modules.order.entity.api.zm.constants.enums.DocumentTypeEnum;
 import com.ydtech.modules.order.entity.api.zm.constants.enums.PaymentStatusEnum;
 import com.ydtech.modules.order.entity.api.zm.constants.enums.PaymentStatusEnum;
@@ -41,13 +40,11 @@ import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.utils.CalculateUtils;
 import com.ydtech.utils.CalculateUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
 
 
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -67,7 +64,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
     private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
     private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
 
 
-    private final EsmInsCompanyService esmInsCompanyService;
 
 
     private final ZhongmeiRequestComponents zhongmeiRequestComponents;
     private final ZhongmeiRequestComponents zhongmeiRequestComponents;
 
 
@@ -77,12 +73,11 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
     private final ConfigureParametersComponents configureParametersComponents;
     private final ConfigureParametersComponents configureParametersComponents;
 
 
-    public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, EsmInsCompanyService esmInsCompanyService, ZhongmeiRequestComponents zhongmeiRequestComponents, StringRedisTemplate redisTemplate, ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService) {
+    public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents, StringRedisTemplate redisTemplate, ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService) {
         this.insOrdersService = insOrdersService;
         this.insOrdersService = insOrdersService;
         this.insAreaCompanyService = insAreaCompanyService;
         this.insAreaCompanyService = insAreaCompanyService;
         this.insTaskImagesService = insTaskImagesService;
         this.insTaskImagesService = insTaskImagesService;
         this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
         this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
-        this.esmInsCompanyService = esmInsCompanyService;
         this.zhongmeiRequestComponents = zhongmeiRequestComponents;
         this.zhongmeiRequestComponents = zhongmeiRequestComponents;
         this.redisTemplate = redisTemplate;
         this.redisTemplate = redisTemplate;
 
 
@@ -130,9 +125,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         ZmConfigureParameters zmConfigureParameters = new ZmConfigureParameters();
         ZmConfigureParameters zmConfigureParameters = new ZmConfigureParameters();
         configureParametersComponents.toEntity(zmConfigureParameters, ptlAgreementAttribution);
         configureParametersComponents.toEntity(zmConfigureParameters, ptlAgreementAttribution);
-
         BaseRequestHead baseRequestHead = new BaseRequestHead(zmConfigureParameters);
         BaseRequestHead baseRequestHead = new BaseRequestHead(zmConfigureParameters);
-        EsmInsCompany esmInsCompany = esmInsCompanyService.getById(zmQuoteVo.getCompanyId());
 
 
         CarInfoVo carInfo = quoteInfo.getCarInfo();
         CarInfoVo carInfo = quoteInfo.getCarInfo();
         // 2. 查询车型
         // 2. 查询车型
@@ -155,9 +148,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             simpleStadarCarDTOS = stadarCarDTOS;
             simpleStadarCarDTOS = stadarCarDTOS;
         }
         }
 
 
-        simpleStadarCarDTOS = simpleStadarCarDTOS.stream()
-                .filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice())))
-                .collect(Collectors.toList());
+        simpleStadarCarDTOS = simpleStadarCarDTOS.stream().filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice()))).collect(Collectors.toList());
 
 
         if (simpleStadarCarDTOS.isEmpty()) {
         if (simpleStadarCarDTOS.isEmpty()) {
             simpleStadarCarDTOS = stadarCarDTOS;
             simpleStadarCarDTOS = stadarCarDTOS;
@@ -177,7 +168,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         if (StringUtils.isEmpty(response.getProposalNo())) {
         if (StringUtils.isEmpty(response.getProposalNo())) {
             redisTemplate.opsForValue().set(ZM_AUDIT_RETURN_MESSAGE + quoteRespVo.getCompanyId(), response.getHead().getReturnMessage(), ZM_AUDIT_RETURN_MESSAGE_TIME, TimeUnit.MINUTES);
             redisTemplate.opsForValue().set(ZM_AUDIT_RETURN_MESSAGE + quoteRespVo.getCompanyId(), response.getHead().getReturnMessage(), ZM_AUDIT_RETURN_MESSAGE_TIME, TimeUnit.MINUTES);
         }
         }
-        return responseOrder(quotedPriceResponse, quoteRespVo, esmInsCompany, response, agreementId, ptlAgreementAttribution.getApiType());
+        return responseOrder(quotedPriceResponse, quoteRespVo, response, ptlAgreementAttribution);
     }
     }
 
 
 
 
@@ -323,9 +314,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         String policyNo;
         String policyNo;
         String code = DocumentTypeEnum.code(policyPrintVo.getType());
         String code = DocumentTypeEnum.code(policyPrintVo.getType());
         String riskCode = policyPrintVo.getRiskCode();
         String riskCode = policyPrintVo.getRiskCode();
-        if (InsuranceTypeCorrespondence.TRAFFIC.equals(riskCode)) {
+        if (InsuranceRisk.TRAFFIC.getCode().equals(riskCode)) {
             policyNo = insAreaCompany.getJqpolicyno();
             policyNo = insAreaCompany.getJqpolicyno();
-        } else if (InsuranceTypeCorrespondence.BUSINESS.equals(riskCode)) {
+        } else if (InsuranceRisk.BUSINESS.getCode().equals(riskCode)) {
             policyNo = insAreaCompany.getJqpolicyno();
             policyNo = insAreaCompany.getJqpolicyno();
         } else {
         } else {
             throw new SystemException("险种代码不存在");
             throw new SystemException("险种代码不存在");
@@ -352,17 +343,13 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         SubmitRequest submitRequest = new SubmitRequest();
         SubmitRequest submitRequest = new SubmitRequest();
         submitRequest.setOrderNo(orderNo);
         submitRequest.setOrderNo(orderNo);
         submitRequest.setVin(frameNo);
         submitRequest.setVin(frameNo);
-        SubmitRequest.DeliveryInfoDTO deliveryInfoDTO = new SubmitRequest.DeliveryInfoDTO(
-                customerInfoVo.getName(),
-                customerInfoVo.getMobile(),
+        SubmitRequest.DeliveryInfoDTO deliveryInfoDTO = new SubmitRequest.DeliveryInfoDTO(customerInfoVo.getName(), customerInfoVo.getMobile(),
                 // 省
                 // 省
                 zmConfigureParameters.getProvince(),
                 zmConfigureParameters.getProvince(),
                 // 市
                 // 市
                 zmConfigureParameters.getCity(),
                 zmConfigureParameters.getCity(),
                 // 县
                 // 县
-                zmConfigureParameters.getDistrict(),
-                customerInfoVo.getAddr()
-        );
+                zmConfigureParameters.getDistrict(), customerInfoVo.getAddr());
         submitRequest.setDeliveryInfo(deliveryInfoDTO);
         submitRequest.setDeliveryInfo(deliveryInfoDTO);
         submitRequest.setHead(new BaseRequestHead(zmConfigureParameters));
         submitRequest.setHead(new BaseRequestHead(zmConfigureParameters));
         return zhongmeiRequestApiComponents.submit(submitRequest, SubmitResponse.class);
         return zhongmeiRequestApiComponents.submit(submitRequest, SubmitResponse.class);
@@ -380,33 +367,13 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         }
         }
 
 
         QuoteRespVo quoteRespVo = new QuoteRespVo();
         QuoteRespVo quoteRespVo = new QuoteRespVo();
-        List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
-        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
+
         List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
         List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
-        for (RiskInfoVo riskInfoVo : riskList) {
-            if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0507");
-                risk.setRiskName("机动车交通事故责任强制保险");
-                risk.setPremium(jqPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-            if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0510");
-                risk.setRiskName("机动车商业保险");
-                risk.setPremium(syPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-        }
+        List<QuoteRiskRespVo> riskList1 = QuoteRiskRespVo.toQuoteRiskRespVoList(riskList, jqPremium, syPremium);
 
 
+        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
         QuoteKindRespVo kind;
         QuoteKindRespVo kind;
         List<QuotedPriceResponse.BizPremiumDTO.CoverageListDTO> coverageList;
         List<QuotedPriceResponse.BizPremiumDTO.CoverageListDTO> coverageList;
-
         if (!ObjectUtils.isEmpty(quotedPriceResponse.getBizPremium())) {
         if (!ObjectUtils.isEmpty(quotedPriceResponse.getBizPremium())) {
             coverageList = quotedPriceResponse.getBizPremium().getCoverageList();
             coverageList = quotedPriceResponse.getBizPremium().getCoverageList();
             List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
             List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
@@ -417,9 +384,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                 kind.setAmount(kindInfoVo.getAmount());
                 kind.setAmount(kindInfoVo.getAmount());
                 int i = ArrayUtil.indexOf(InsuranceTypeCorrespondence.getJinZhangGuiType(), kindInfoVo.getKindCode());
                 int i = ArrayUtil.indexOf(InsuranceTypeCorrespondence.getJinZhangGuiType(), kindInfoVo.getKindCode());
 
 
-                QuotedPriceResponse.BizPremiumDTO.CoverageListDTO coverageListDTOS = coverageList.stream().filter(
-                                a -> a.getKindCode().equals(InsuranceTypeCorrespondence.getConnectInsuranceType()[i]))
-                        .collect(Collectors.toList()).get(0);
+                QuotedPriceResponse.BizPremiumDTO.CoverageListDTO coverageListDTOS = coverageList.stream().filter(a -> a.getKindCode().equals(InsuranceTypeCorrespondence.getZmConnectInsuranceType()[i])).collect(Collectors.toList()).get(0);
 
 
                 kind.setCoveragePremium(coverageListDTOS.getPremium());
                 kind.setCoveragePremium(coverageListDTOS.getPremium());
                 kind.setUnitAmount(kindInfoVo.getUnitAmount());
                 kind.setUnitAmount(kindInfoVo.getUnitAmount());
@@ -445,30 +410,14 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         return quoteRespVo;
         return quoteRespVo;
     }
     }
 
 
-    public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo, EsmInsCompany esmInsCompanies, SubmitResponse submitResponse, String agreementId, Integer apiType) {
+    public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo, SubmitResponse submitResponse, PtlAgreementAttribution ptlAgreementAttribution) {
         //保存订单信息
         //保存订单信息
-        String orderNo = quoteRespVo.getOrderno();
-        InsAreaCompany insAreaCompany = new InsAreaCompany();
-
+        InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         insAreaCompany.setId(quotedPriceResponse.getOrderNo());
         insAreaCompany.setId(quotedPriceResponse.getOrderNo());
-        insAreaCompany.setOrderno(orderNo);
 
 
         // 协议id
         // 协议id
-        insAreaCompany.setAgreementId(agreementId);
-        insAreaCompany.setApiType(apiType);
-
-        insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(quotedPriceResponse)));
-        insAreaCompany.setJqpremium(BigDecimal.valueOf(quoteRespVo.getJqPremium()));
-        insAreaCompany.setSypremium(BigDecimal.valueOf(quoteRespVo.getSyPremium()));
-        insAreaCompany.setTaxamount(BigDecimal.valueOf(quoteRespVo.getTaxAmount()));
-        insAreaCompany.setSumpremium(BigDecimal.valueOf(quoteRespVo.getSumPermium()));
-        insAreaCompany.setOrderstatus(InsOrderStatus.S_0.getCode()); // "1"
-        insAreaCompany.setRiskinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getRiskList())));
-        insAreaCompany.setKindinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getKindList())));
         insAreaCompany.setJqapplyno(submitResponse.getForceProposalNo());
         insAreaCompany.setJqapplyno(submitResponse.getForceProposalNo());
         insAreaCompany.setSyapplyno(submitResponse.getBizProposalNo());
         insAreaCompany.setSyapplyno(submitResponse.getBizProposalNo());
-        insAreaCompany.setCompanyId(esmInsCompanies.getId());
-        insAreaCompany.setInscompany(esmInsCompanies.getNamesimple());
         insAreaCompany.setInsOrderNo(submitResponse.getProposalNo());
         insAreaCompany.setInsOrderNo(submitResponse.getProposalNo());
         // 车船税
         // 车船税
         TaxArrears taxArrears = new TaxArrears("往年欠税", quotedPriceResponse.getTaxinfo().getPrePayTax(), quotedPriceResponse.getTaxinfo().getDelayPayTax());
         TaxArrears taxArrears = new TaxArrears("往年欠税", quotedPriceResponse.getTaxinfo().getPrePayTax(), quotedPriceResponse.getTaxinfo().getDelayPayTax());
@@ -483,11 +432,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     }
     }
 
 
 
 
-
-
-
-
-
 }
 }