BifronsV 3 лет назад
Родитель
Сommit
3f3931b95f

+ 1 - 1
src/main/java/com/ydtech/modules/ins/service/impl/InsZhongmeiServiceImpl.java

@@ -31,6 +31,7 @@ import com.ydtech.modules.ins.service.InsZhongmeiService;
 import com.ydtech.modules.ins.vo.*;
 import com.ydtech.modules.ins.vo.req.InsZmUploadImageVo;
 import com.ydtech.modules.ins.vo.res.ZmVerifyPaymentVo;
+import com.ydtech.modules.order.service.impl.ZhongMeiOrderApiServiceImpl;
 import com.ydtech.utils.idgen.IdGenerate;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -106,7 +107,6 @@ public class InsZhongmeiServiceImpl implements InsZhongmeiService {
 
     @Override
     public HttpResult modelQuery(String modelName) {
-
         Map<String, Object> map = new HashMap<>();
         map.put("modelName", modelName);
         Response<List<ZmCarModel>> model = zhongmeiRequestComponents.modelQuery(map, new ParameterizedTypeReference<Response<List<ZmCarModel>>>() {

+ 1 - 14
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderController.java

@@ -2,31 +2,18 @@ package com.ydtech.modules.order.controller;
 
 
 import com.ydtech.aop.request.RequestSingleParam;
-import com.ydtech.components.ZhongmeiRequestComponents;
 import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.ins.model.request.Response;
-import com.ydtech.modules.ins.model.request.ZhongmeiQuoteResponse;
-import com.ydtech.modules.ins.vo.CarInfoVo;
-import com.ydtech.modules.ins.vo.CustomerInfoVo;
-import com.ydtech.modules.ins.vo.QuoteInfoVo;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
-import com.ydtech.modules.order.entity.vo.zm.ZmQuoteSpiderVo;
-import com.ydtech.modules.order.entity.vo.zm.ZmQuoteVo;
 import com.ydtech.modules.order.service.ZhongMeiOrderService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestClientException;
 
 import java.io.IOException;
 
@@ -77,7 +64,7 @@ public class ZhongMeiOrderController {
 
     @PostMapping("/getPolicyPrint")
     @ApiOperation(value = "电子保单")
-    public HttpResult getPolicyPrint(@RequestSingleParam(value = "companyId") String companyId) throws IOException {
+    public HttpResult getPolicyPrint(@RequestSingleParam(value = "companyId") String companyId) {
         return this.zhongMeiOrderService.getPolicyPrint(companyId);
     }
 

+ 24 - 1
src/main/java/com/ydtech/modules/order/entity/api/zm/response/ModelsQueryResponse.java

@@ -1,8 +1,8 @@
 package com.ydtech.modules.order.entity.api.zm.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.ins.model.zm.ZmCarModel;
 import com.ydtech.modules.order.entity.api.zm.BaseResponse;
-import com.ydtech.modules.order.entity.api.zm.BaseResponseHead;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -156,6 +156,29 @@ public class ModelsQueryResponse extends BaseResponse  {
          */
         @JsonProperty("vehicleDescription")
         private String vehicleDescription;
+
+        public SimpleStadarCarDTO(ZmCarModel zmCarInfoVO) {
+            this.approvedLoad = Double.parseDouble(zmCarInfoVO.getApprovedLoad());
+            this.approvedPassengersCapacity = Integer.parseInt(zmCarInfoVO.getApprovedPassengersCapacity());
+            this.brand = zmCarInfoVO.getModelName();
+            this.brandCode = zmCarInfoVO.getBrandCode();
+            this.displacement = Double.parseDouble(zmCarInfoVO.getDisplacement()) * 0.001;
+            this.energyTypes = zmCarInfoVO.getEnergyTypes();
+            this.grossMass = Double.parseDouble(zmCarInfoVO.getGrossMass());
+            this.lfDate = zmCarInfoVO.getCarYear();
+            this.localModelCode = zmCarInfoVO.getLocalModelCode();
+            this.originalPurchasePrice = Integer.valueOf(zmCarInfoVO.getOriginalPurchasePrice());
+            this.power = Double.parseDouble(zmCarInfoVO.getPower());
+            this.priceEnd = 0;
+            this.priceStart = 0;
+            this.purchasePrice = Integer.valueOf(zmCarInfoVO.getPurchasePrice());
+            this.series = zmCarInfoVO.getSeries();
+            this.seriesCode = zmCarInfoVO.getSeriesCode();
+            this.tractionMass = Double.parseDouble(zmCarInfoVO.getTractionMass());
+            this.transmissionType = zmCarInfoVO.getTransmissionType();
+            this.unladenMass = Double.parseDouble(zmCarInfoVO.getUnladenMass());
+            this.vehicleDescription = zmCarInfoVO.getRemark();
+        }
     }
 
 }

+ 11 - 11
src/main/java/com/ydtech/modules/order/entity/api/zm/response/QuotedPriceResponse.java

@@ -51,7 +51,7 @@ public class QuotedPriceResponse extends BaseResponse {
         @JsonProperty("isRenewal")
         private Boolean isRenewal;
         @JsonProperty("sumPremium")
-        private Double sumPremium;
+        private double sumPremium;
 
         @NoArgsConstructor
         @Data
@@ -65,7 +65,7 @@ public class QuotedPriceResponse extends BaseResponse {
             @JsonProperty("maxRate")
             private Integer maxRate;
             @JsonProperty("minRate")
-            private Integer minRate;
+            private Double minRate;
         }
 
         @NoArgsConstructor
@@ -90,7 +90,7 @@ public class QuotedPriceResponse extends BaseResponse {
         @JsonProperty("adjust")
         private List<AdjustDTO> adjust;
         @JsonProperty("amount")
-        private Integer amount;
+        private double amount;
         @JsonProperty("isRenewal")
         private Boolean isRenewal;
         @JsonProperty("kindCode")
@@ -98,17 +98,17 @@ public class QuotedPriceResponse extends BaseResponse {
         @JsonProperty("kindName")
         private String kindName;
         @JsonProperty("premium")
-        private Integer premium;
+        private double premium;
 
         @NoArgsConstructor
         @Data
         public static class AdjustDTO {
             @JsonProperty("adjustRate")
-            private Integer adjustRate;
+            private double adjustRate;
             @JsonProperty("maxRate")
-            private Integer maxRate;
+            private double maxRate;
             @JsonProperty("minRate")
-            private Integer minRate;
+            private double minRate;
         }
     }
 
@@ -132,12 +132,12 @@ public class QuotedPriceResponse extends BaseResponse {
     @Data
     public static class TaxinfoDTO {
         @JsonProperty("delayPayTax")
-        private Integer delayPayTax;
+        private double delayPayTax;
         @JsonProperty("payTax")
-        private Integer payTax;
+        private double payTax;
         @JsonProperty("prePayTax")
-        private Integer prePayTax;
+        private double prePayTax;
         @JsonProperty("sumPayTax")
-        private Integer sumPayTax;
+        private double sumPayTax;
     }
 }

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

@@ -85,8 +85,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     }
 
 
-
-
     @Override
     public List<CarModelDTO> vinSearch(String vin) {
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();

+ 12 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsTaskImagesServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.dao.InsTaskImagesMapper;
 import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
@@ -31,6 +32,10 @@ public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, I
     @Override
     @Transactional
     public HttpResult uploadImages(InsTaskImagesVo insTaskImagesVo, String username) {
+        if(insTaskImagesVo.getImageIdList().isEmpty()){
+            throw new SystemException("上传影像不能为空");
+        }
+
         // 删除之前的文件
         baseMapper.delete(new LambdaQueryWrapper<InsTaskImages>()
                 .eq(InsTaskImages::getImageType, insTaskImagesVo.getImageType())
@@ -40,10 +45,16 @@ public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, I
         // 将新文件存入
         List<InsTaskImages> insTaskImagesList = new ArrayList<>();
         for (String s : insTaskImagesVo.getImageIdList()) {
+            if(StringUtils.isEmpty(s)){
+                continue;
+            }
             InsTaskImages insTaskImages = new InsTaskImages(insTaskImagesVo, username, s);
             insTaskImagesList.add(insTaskImages);
         }
-        boolean b = saveBatch(insTaskImagesList);
+        boolean b = true;
+        if (!insTaskImagesList.isEmpty()) {
+            b = saveBatch(insTaskImagesList);
+        }
         return HttpResult.error(b ? 200 : 400, b ? "上传成功" : "上传失败");
     }
 

+ 0 - 1
src/main/java/com/ydtech/modules/order/service/impl/YongAnOrderServiceImpl.java

@@ -460,7 +460,6 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
                 //------------------永安影像上传----------------------
                 //1.组装RequestBody
                 InsTaskImagesBase64 insTaskImagesBase64 = insTaskImagesBase64s.get(i);
-
                 String image = insTaskImagesBase64.getBase64String();
                 requestBodyB25.setBussNo("yx" + insAreaCompany.getId());
                 requestBodyB25.setUserCode(userCode);

+ 46 - 8
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -4,14 +4,15 @@ import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ydtech.components.ZhongmeiRequestApiComponents;
+import com.ydtech.components.ZhongmeiRequestComponents;
 import com.ydtech.constants.enums.InsOrderStatus;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.esm.model.EsmInsCompany;
-import com.ydtech.modules.esm.model.InsTaskImage;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
-import com.ydtech.modules.esm.service.InsTaskImageService;
+import com.ydtech.modules.ins.model.request.Response;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
+import com.ydtech.modules.ins.model.zm.ZmCarModel;
 import com.ydtech.modules.ins.vo.*;
 import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
 import com.ydtech.modules.order.entity.InsAreaCompany;
@@ -34,7 +35,9 @@ import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.InsTaskImagesService;
 import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
 import com.ydtech.utils.CalculateUtils;
+import com.ydtech.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
@@ -56,12 +59,35 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
     private final EsmInsCompanyService esmInsCompanyService;
 
-    public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, EsmInsCompanyService esmInsCompanyService) {
+    private final ZhongmeiRequestComponents zhongmeiRequestComponents;
+
+    public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, EsmInsCompanyService esmInsCompanyService, ZhongmeiRequestComponents zhongmeiRequestComponents) {
         this.insOrdersService = insOrdersService;
         this.insAreaCompanyService = insAreaCompanyService;
         this.insTaskImagesService = insTaskImagesService;
         this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
         this.esmInsCompanyService = esmInsCompanyService;
+        this.zhongmeiRequestComponents = zhongmeiRequestComponents;
+    }
+
+    private void modelInquiry(String modelName, List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS) {
+        if (!simpleStadarCarDTOS.isEmpty()){
+            return;
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("modelName", modelName);
+        Response<List<ZmCarModel>> model = zhongmeiRequestComponents.modelQuery(map, new ParameterizedTypeReference<Response<List<ZmCarModel>>>() {
+        });
+        List<ZmCarModel> data = model.getData();
+        if (data.isEmpty()) {
+            throw new SystemException("未查到你想要的车型");
+        }
+
+        for (ZmCarModel zmCarModel : data) {
+            simpleStadarCarDTOS.add(new ModelsQueryResponse.SimpleStadarCarDTO(zmCarModel));
+        }
+
     }
 
     @Override
@@ -69,6 +95,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
         modelsQueryResponse.setModelName(modelName);
         List<ModelsQueryResponse.SimpleStadarCarDTO> car = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
+        modelInquiry(modelName, car);
+
         List<CarModelDTO> map = SimpleStadarCarDTOConvert.INSTANCE.map(car);
         return HttpResult.ok(map);
     }
@@ -81,11 +109,21 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
         modelsQueryResponse.setModelName(carInfo.getModelcname());
         List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
-        // 1.1 过滤车型
-        List<ModelsQueryResponse.SimpleStadarCarDTO> stadarCarDTOS = simpleStadarCarDTOS.stream().filter(car -> carInfo.getCaryear().equals(car.getLfDate())).collect(Collectors.toList());
+
+        // 1.1 使用爬虫接口调用车型
+        modelInquiry(carInfo.getModelcname(), simpleStadarCarDTOS);
+
+        // 1.2 过滤车型
+        List<ModelsQueryResponse.SimpleStadarCarDTO> stadarCarDTOS = new ArrayList<>();
+
+        if(!StringUtils.isEmpty(carInfo.getCaryear())){
+             stadarCarDTOS = simpleStadarCarDTOS.stream().filter(car -> carInfo.getCaryear().equals(car.getLfDate())).collect(Collectors.toList());
+        }
+
         if (!stadarCarDTOS.isEmpty()) {
             simpleStadarCarDTOS = stadarCarDTOS;
         }
+
         simpleStadarCarDTOS = simpleStadarCarDTOS.stream()
                 .filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice())))
                 .collect(Collectors.toList());
@@ -97,7 +135,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
         QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
         // 2. 第一次提交核保 并且获取投保单号
-        SubmitResponse response = submitForUnderwriting(quotedPriceResponse.getOrderNo(), carInfo.getFrameNo(), quoteInfo.getOwnerInfo());
+        SubmitResponse response = submitForUnderwriting(quotedPriceResponse.getOrderNo(), carInfo.getFrameNo(), quoteInfo.getPolicyHolderInfo());
         return responseOrder(quotedPriceResponse, quoteRespVo, esmInsCompany, response);
     }
 
@@ -106,7 +144,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     public HttpResult audit(String companyId) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
-        JSONObject ownerinfo = insOrders.getOwnerinfo();
+        JSONObject ownerinfo = insOrders.getApplyinfo();
         CustomerInfoVo customerInfoVo = JSON.toJavaObject(ownerinfo, CustomerInfoVo.class);
         // 第二次 提交核保
         SubmitResponse response = submitForUnderwriting(insAreaCompany.getId(), insOrders.getFrameno(), customerInfoVo);
@@ -322,7 +360,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         quoteRespVo.setKindList(kindList1);
         quoteRespVo.setJqPremium(jqPremium);
         quoteRespVo.setSyPremium(syPremium);
-        Integer sumPayTax = quotedPriceResponse.getTaxinfo().getSumPayTax();
+        double sumPayTax = quotedPriceResponse.getTaxinfo().getSumPayTax();
         quoteRespVo.setCiSumPermium(CalculateUtils.add(jqPremium, sumPayTax));//交强险和车船税合计
         quoteRespVo.setSumPermium(CalculateUtils.add(jqPremium, syPremium, sumPayTax));//保费合计
         quoteRespVo.setTaxAmount(sumPayTax);//车船税