Просмотр исходного кода

修改 影像重复上传到核心 问题

wks 2 лет назад
Родитель
Сommit
75d7a3ed38

+ 67 - 0
src/main/java/com/ydtech/modules/order/components/InsImagesUploadCacheComponents.java

@@ -0,0 +1,67 @@
+package com.ydtech.modules.order.components;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * @description: 保险公司影像上传缓存组件
+ * @author: wenks
+ * @date: 2023/12/4 14:08
+ **/
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class InsImagesUploadCacheComponents {
+
+    private final StringRedisTemplate redisTemplate;
+
+    private static final String IMAGE = "ins:images:";
+
+    private static final long IMAGE_TIME = 30L;
+
+
+    public JSONObject isUploadImage(String companyId) {
+        String key = IMAGE + companyId;
+        String value = redisTemplate.opsForValue().get(key);
+        return JSON.parseObject(value);
+    }
+
+    public void setUploadImageCache(String companyId, Map<String, String> map) {
+        try {
+            JSONObject uploadImage = isUploadImage(companyId);
+            if (!ObjectUtils.isEmpty(uploadImage)) {
+                uploadImage.putAll(map);
+            }
+
+            String key = IMAGE + companyId;
+            String s = JSON.toJSONString(map);
+            redisTemplate.opsForValue().set(key, s, IMAGE_TIME, TimeUnit.MINUTES);
+        } catch (Exception e) {
+            log.info(e.getMessage());
+        }
+    }
+
+    public void setUploadImageCache(String companyId, List<InsTaskImagesBase64> insTaskImagesBase64s) {
+        try {
+            Map<String, String> collect = insTaskImagesBase64s.stream().collect(Collectors.toMap(InsTaskImagesBase64::getImageType,
+                    InsTaskImagesBase64::getImageId));
+            setUploadImageCache(companyId, collect);
+        } catch (Exception e) {
+            log.info(e.getMessage());
+        }
+    }
+
+
+}

+ 21 - 10
src/main/java/com/ydtech/modules/order/components/huatai/HuiTaiUploadImageComponents.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.components.huatai;
 package com.ydtech.modules.order.components.huatai;
 
 
 import com.ydtech.exception.SystemException;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.entity.api.huatai.constants.ImageTypeCode;
 import com.ydtech.modules.order.entity.api.huatai.constants.ImageTypeCode;
 import com.ydtech.modules.order.entity.api.huatai.request.HuaTaiSaveFileIdxRequest;
 import com.ydtech.modules.order.entity.api.huatai.request.HuaTaiSaveFileIdxRequest;
 import com.ydtech.modules.order.entity.api.huatai.response.HuaTaiImageInitParamResponse;
 import com.ydtech.modules.order.entity.api.huatai.response.HuaTaiImageInitParamResponse;
@@ -19,10 +20,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URL;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 
 
 
 /**
 /**
@@ -41,13 +39,15 @@ public class HuiTaiUploadImageComponents {
     private static final String FILE_UPLOAD = "/h5img/fileupload";
     private static final String FILE_UPLOAD = "/h5img/fileupload";
     private static final String SAVE_FILE_IDX = "/h5img/app/ImgManager/saveFileIdx.cmd";
     private static final String SAVE_FILE_IDX = "/h5img/app/ImgManager/saveFileIdx.cmd";
 
 
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
     /**
     /**
      * 上传影像
      * 上传影像
      *
      *
      * @param url                 上传url
      * @param url                 上传url
      * @param insUploadImagesDtos 影像信息
      * @param insUploadImagesDtos 影像信息
      */
      */
-    public void uploadImage(String url, List<InsUploadImagesDto> insUploadImagesDtos) {
+    public void uploadImage(String companyId, String url, List<InsUploadImagesDto> insUploadImagesDtos) {
         URL u;
         URL u;
         try {
         try {
             u = new URL(url);
             u = new URL(url);
@@ -67,7 +67,8 @@ public class HuiTaiUploadImageComponents {
 
 
         HuaTaiImageInitParamResponse initParamResponse = initParam(domain, token);
         HuaTaiImageInitParamResponse initParamResponse = initParam(domain, token);
         List<HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO> childrenDTO = initParamResponse.getChildrenDTO();
         List<HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO> childrenDTO = initParamResponse.getChildrenDTO();
-
+        // 使用map 存储上传类型和图片
+        Map<String, String> map = new HashMap<>();
         for (InsUploadImagesDto insUploadImagesDto : insUploadImagesDtos) {
         for (InsUploadImagesDto insUploadImagesDto : insUploadImagesDtos) {
             String imageType = insUploadImagesDto.getImageType();
             String imageType = insUploadImagesDto.getImageType();
             String fileName = insUploadImagesDto.getFileName();
             String fileName = insUploadImagesDto.getFileName();
@@ -77,14 +78,24 @@ public class HuiTaiUploadImageComponents {
             for (ImageTypeCode fileTypeEnum : ImageTypeCode.values()) {
             for (ImageTypeCode fileTypeEnum : ImageTypeCode.values()) {
                 boolean contains = Arrays.asList(fileTypeEnum.getImagesType()).contains(imageType);
                 boolean contains = Arrays.asList(fileTypeEnum.getImagesType()).contains(imageType);
                 if (contains) {
                 if (contains) {
-                    HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO childrenDTO1 =
-                            HuaTaiImageInitParamResponse.filteringTypeCode(childrenDTO, fileTypeEnum.getCode());
-                    FileuploadResult fileupload = fileupload(domain, token, initParamResponse, insUploadImagesDto.getFilePath(), file);
-                    saveFileIdx(domain, token, initParamResponse, fileupload, fileName, childrenDTO1);
+                    try {
+                        HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO childrenDTO1 =
+                                HuaTaiImageInitParamResponse.filteringTypeCode(childrenDTO, fileTypeEnum.getCode());
+                        FileuploadResult fileupload = fileupload(domain, token, initParamResponse, insUploadImagesDto.getFilePath(), file);
+                        saveFileIdx(domain, token, initParamResponse, fileupload, fileName, childrenDTO1);
+                        map.put(insUploadImagesDto.getImageType(), insUploadImagesDto.getImageType());
+                    } catch (Exception e) {
+                        insImagesUploadCacheComponents.setUploadImageCache(companyId, map);
+                        throw new SystemException(fileTypeEnum.getName() + "上传异常, 请重试");
+                    }
+
                 }
                 }
             }
             }
         }
         }
 
 
+        insImagesUploadCacheComponents.setUploadImageCache(companyId, map);
+
+
     }
     }
 
 
     /**
     /**

+ 15 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsTaskImagesBase64.java

@@ -1,8 +1,11 @@
 package com.ydtech.modules.order.entity.po;
 package com.ydtech.modules.order.entity.po;
 
 
+import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.util.Map;
+
 /**
 /**
  * @author wenks
  * @author wenks
  * @version 0.0.2
  * @version 0.0.2
@@ -13,6 +16,10 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @NoArgsConstructor
 public class InsTaskImagesBase64 {
 public class InsTaskImagesBase64 {
 
 
+    /**
+     * 图片id
+     */
+    private String imageId;
     /**
     /**
      * 报价单号
      * 报价单号
      */
      */
@@ -31,4 +38,12 @@ public class InsTaskImagesBase64 {
     private String base64String;
     private String base64String;
 
 
 
 
+    public InsTaskImagesBase64(InsUploadImagesDto insUploadImagesDto, Map<String, String> map) {
+        this.imageId = insUploadImagesDto.getImageId();
+        this.quoteNo = insUploadImagesDto.getQuoteNo();
+        this.imageType = insUploadImagesDto.getImageType();
+        this.fileName = insUploadImagesDto.getFileName();
+        this.base64String = map.get(insUploadImagesDto.getImageId());
+    }
+
 }
 }

+ 6 - 4
src/main/java/com/ydtech/modules/order/service/InsTaskImagesService.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service;
 package com.ydtech.modules.order.service;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
@@ -27,7 +28,6 @@ public interface InsTaskImagesService extends IService<InsTaskImages> {
      */
      */
     HttpResult<Object> uploadImages(InsTaskImagesVo insTaskImagesVo, String username);
     HttpResult<Object> uploadImages(InsTaskImagesVo insTaskImagesVo, String username);
 
 
-
     /**
     /**
      * 通过报价单号查询影像
      * 通过报价单号查询影像
      *
      *
@@ -39,15 +39,17 @@ public interface InsTaskImagesService extends IService<InsTaskImages> {
     /**
     /**
      * 获取文件的 文件的Base64 编码
      * 获取文件的 文件的Base64 编码
      *
      *
-     * @param orderNo 订单号
+     * @param orderNo  订单号
+     * @param companyId 子订单好
      * @return
      * @return
      */
      */
-    List<InsTaskImagesBase64> findByOrderNo(String orderNo);
+    List<InsTaskImagesBase64> findByOrderNo(String orderNo, String companyId);
 
 
     /**
     /**
      * 获取文件路径信息
      * 获取文件路径信息
+     *
      * @param orderNo
      * @param orderNo
      * @return
      * @return
      */
      */
-    List<InsUploadImagesDto> findImageByOrderNo(String orderNo);
+    List<InsUploadImagesDto> findImageByOrderNo(String orderNo, String companyId);
 }
 }

+ 131 - 104
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -1,23 +1,19 @@
 package com.ydtech.modules.order.service.impl;
 package com.ydtech.modules.order.service.impl;
 
 
-import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 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.admin.model.SysArea;
 import com.ydtech.modules.admin.model.vo.PersonAreaVo;
 import com.ydtech.modules.admin.model.vo.PersonAreaVo;
-import com.ydtech.modules.admin.model.vo.SysAreaVo;
 import com.ydtech.modules.admin.service.SysAreaService;
 import com.ydtech.modules.admin.service.SysAreaService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 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.components.dajia.DaJiaRequestApiComponents;
-import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 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;
@@ -27,9 +23,7 @@ import com.ydtech.modules.order.entity.api.dajia.constants.CProdNo;
 import com.ydtech.modules.order.entity.api.dajia.constants.Message;
 import com.ydtech.modules.order.entity.api.dajia.constants.Message;
 import com.ydtech.modules.order.entity.api.dajia.request.*;
 import com.ydtech.modules.order.entity.api.dajia.request.*;
 import com.ydtech.modules.order.entity.api.dajia.response.*;
 import com.ydtech.modules.order.entity.api.dajia.response.*;
-import com.ydtech.modules.order.entity.api.zijin.constants.enums.BusType;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
-import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
@@ -46,8 +40,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 
 
@@ -86,6 +82,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     @Autowired
     @Autowired
     private InsAccidentalDrivingSubDaJiaService insAccidentalDrivingSubDaJiaService;
     private InsAccidentalDrivingSubDaJiaService insAccidentalDrivingSubDaJiaService;
 
 
+    @Autowired
+    private InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
     @Value("${upload.file.path}")
     @Value("${upload.file.path}")
     private String uploadFilePath;
     private String uploadFilePath;
 
 
@@ -96,45 +95,53 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     private String apiUrl;
     private String apiUrl;
 
 
     //region 报价
     //region 报价
+
     /**
     /**
      * 获取OrderNo
      * 获取OrderNo
+     *
      * @param daJiaConfigureParameters
      * @param daJiaConfigureParameters
      * @return
      * @return
      */
      */
-    private  String getOrderNo(DaJiaConfigureParameters daJiaConfigureParameters) throws Exception {
+    private String getOrderNo(DaJiaConfigureParameters daJiaConfigureParameters) throws Exception {
         ODR1007Request odr1007Request = new ODR1007Request(daJiaConfigureParameters);
         ODR1007Request odr1007Request = new ODR1007Request(daJiaConfigureParameters);
         ODR1007Response odr1007Response = daJiaRequestApiComponents.queryBusinessOrders(odr1007Request);
         ODR1007Response odr1007Response = daJiaRequestApiComponents.queryBusinessOrders(odr1007Request);
-        if(odr1007Response.getStatus().equals(Message.M0000.getCode())){
+        if (odr1007Response.getStatus().equals(Message.M0000.getCode())) {
             //接口返回 订单号
             //接口返回 订单号
             String orderNo = odr1007Response.getResult().getOrderNo();
             String orderNo = odr1007Response.getResult().getOrderNo();
             return orderNo;
             return orderNo;
-        }else{
+        } else {
             throw new Exception("获取业务订单号接口失败");
             throw new Exception("获取业务订单号接口失败");
         }
         }
     }
     }
 
 
     /**
     /**
      * 车辆与客户信息确认
      * 车辆与客户信息确认
+     *
      * @param orderNo
      * @param orderNo
      * @param quoteInfoVo
      * @param quoteInfoVo
      * @param daJiaConfigureParameters
      * @param daJiaConfigureParameters
      * @return
      * @return
      * @throws Exception
      * @throws Exception
      */
      */
-    private ODR1008Response ConfirmationVehicleCustomerInformation(String orderNo, String busiId,BaseQuoteInfoVo quoteInfoVo, DaJiaConfigureParameters daJiaConfigureParameters,ODR2009Response odr2009Request,PersonAreaVo policyHolderPersonArea,PersonAreaVo insuredPersonArea) throws Exception {
+    private ODR1008Response ConfirmationVehicleCustomerInformation(String orderNo, String busiId, BaseQuoteInfoVo quoteInfoVo,
+                                                                   DaJiaConfigureParameters daJiaConfigureParameters,
+                                                                   ODR2009Response odr2009Request, PersonAreaVo policyHolderPersonArea,
+                                                                   PersonAreaVo insuredPersonArea) throws Exception {
 
 
-        ODR1008Request odr1008Request = new ODR1008Request(orderNo,busiId,quoteInfoVo,daJiaConfigureParameters,odr2009Request,policyHolderPersonArea,insuredPersonArea);
+        ODR1008Request odr1008Request = new ODR1008Request(orderNo, busiId, quoteInfoVo, daJiaConfigureParameters, odr2009Request,
+                policyHolderPersonArea, insuredPersonArea);
         ODR1008Response odr1008Response = daJiaRequestApiComponents.carOrCustomInfoConfirm(odr1008Request);
         ODR1008Response odr1008Response = daJiaRequestApiComponents.carOrCustomInfoConfirm(odr1008Request);
-        if(odr1008Response.getStatus().equals(Message.M0000.getCode())){
+        if (odr1008Response.getStatus().equals(Message.M0000.getCode())) {
             //车辆与客户信息确认返回
             //车辆与客户信息确认返回
             return odr1008Response;
             return odr1008Response;
-        }else{
+        } else {
             throw new Exception("车辆与客户信息确认接口失败");
             throw new Exception("车辆与客户信息确认接口失败");
         }
         }
     }
     }
 
 
     /**
     /**
      * 报价
      * 报价
+     *
      * @param quoteInfoVo 报价实体
      * @param quoteInfoVo 报价实体
      * @param t
      * @param t
      * @return
      * @return
@@ -144,18 +151,20 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         try {
         try {
             //获取公司配置信息
             //获取公司配置信息
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
-            configureParametersComponents.toEntity(daJiaConfigureParameters,t.getAgreementId());
+            configureParametersComponents.toEntity(daJiaConfigureParameters, t.getAgreementId());
             PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(t.getAgreementId());
             PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(t.getAgreementId());
 
 
             //投保人区划信息
             //投保人区划信息
-            PersonAreaVo policyHolderPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getPolicyHolderInfo().getAddr(), quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber());
+            PersonAreaVo policyHolderPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getPolicyHolderInfo().getAddr(),
+                    quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber());
             PersonAreaVo insuredPersonArea;
             PersonAreaVo insuredPersonArea;
             //投保人等于被保人
             //投保人等于被保人
-            if(quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber().equals(quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber())){
+            if (quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber().equals(quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber())) {
                 insuredPersonArea = policyHolderPersonArea;
                 insuredPersonArea = policyHolderPersonArea;
-            }else{
+            } else {
                 //被保人区划信息
                 //被保人区划信息
-                insuredPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getInsuredPersonInfo().getAddr(), quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber());
+                insuredPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getInsuredPersonInfo().getAddr(),
+                        quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber());
             }
             }
 
 
             // 1.获取业务订单号接口
             // 1.获取业务订单号接口
@@ -164,18 +173,19 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             String busiId = IdGenerate.nextId();
             String busiId = IdGenerate.nextId();
 
 
             // 2.车型查询
             // 2.车型查询
-            ODR2009Request odr2009Request = new ODR2009Request(orderNo,quoteInfoVo,daJiaConfigureParameters);
+            ODR2009Request odr2009Request = new ODR2009Request(orderNo, quoteInfoVo, daJiaConfigureParameters);
             ODR2009Response odr2009Response = daJiaRequestApiComponents.queryVehicleTypes(odr2009Request);
             ODR2009Response odr2009Response = daJiaRequestApiComponents.queryVehicleTypes(odr2009Request);
 
 
             // 3.车辆与客户信息确认
             // 3.车辆与客户信息确认
-            ODR1008Response odr1008Response = ConfirmationVehicleCustomerInformation(orderNo,busiId,quoteInfoVo,daJiaConfigureParameters,odr2009Response,policyHolderPersonArea,insuredPersonArea);
-            if(!odr1008Response.getStatus().equals(Message.M0000.getCode())){
+            ODR1008Response odr1008Response = ConfirmationVehicleCustomerInformation(orderNo, busiId, quoteInfoVo,
+                    daJiaConfigureParameters, odr2009Response, policyHolderPersonArea, insuredPersonArea);
+            if (!odr1008Response.getStatus().equals(Message.M0000.getCode())) {
                 return HttpResult.error("车辆与客户信息确认接口失败");
                 return HttpResult.error("车辆与客户信息确认接口失败");
             }
             }
 
 
             String fuelType = odr1008Response.getResult().getVehicleInfo().getVehicleFuelType();
             String fuelType = odr1008Response.getResult().getVehicleInfo().getVehicleFuelType();
             boolean isEnergy = false;
             boolean isEnergy = false;
-            if("1,2,3,".contains(fuelType+",")) {//纯电动 燃料电池 插电式混合动力 归属为新能源产品
+            if ("1,2,3,".contains(fuelType + ",")) {//纯电动 燃料电池 插电式混合动力 归属为新能源产品
                 isEnergy = true;
                 isEnergy = true;
             }
             }
             //查询车辆商业起保日期
             //查询车辆商业起保日期
@@ -183,9 +193,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             String bxStartDate = Objects.isNull(insOrders.getSystartdate()) ?
             String bxStartDate = Objects.isNull(insOrders.getSystartdate()) ?
                     insOrders.getJqstartdate() : insOrders.getSystartdate();
                     insOrders.getJqstartdate() : insOrders.getSystartdate();
             //4.车辆实际价值计算接口
             //4.车辆实际价值计算接口
-            ODR1016Request odr1016Request = new ODR1016Request(orderNo,bxStartDate);
+            ODR1016Request odr1016Request = new ODR1016Request(orderNo, bxStartDate);
             ODR1016Response odr1016Response = daJiaRequestApiComponents.carValueCalculation(odr1016Request);
             ODR1016Response odr1016Response = daJiaRequestApiComponents.carValueCalculation(odr1016Request);
-            if(!odr1016Response.getStatus().equals(Message.M0000.getCode())){
+            if (!odr1016Response.getStatus().equals(Message.M0000.getCode())) {
                 return HttpResult.error("车辆实际价值计算接口失败");
                 return HttpResult.error("车辆实际价值计算接口失败");
             }
             }
 
 
@@ -196,43 +206,47 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             JSONObject accidentalDrivingVo = JSONObject.parseObject(JSONObject.toJSONString(t.getAccidentalDrivingVo()));
             JSONObject accidentalDrivingVo = JSONObject.parseObject(JSONObject.toJSONString(t.getAccidentalDrivingVo()));
             InsAccidentalDrivingDajia accidentalDriving = null;
             InsAccidentalDrivingDajia accidentalDriving = null;
             List<InsAccidentalDrivingSubDajia> listByAccId = null;
             List<InsAccidentalDrivingSubDajia> listByAccId = null;
-            if(!Objects.isNull(accidentalDrivingVo) && accidentalDrivingVo.size() > 0){
+            if (!Objects.isNull(accidentalDrivingVo) && accidentalDrivingVo.size() > 0) {
                 //驾意险
                 //驾意险
-                accidentalDriving = getAccidentalDrivingByCode(accidentalDrivingVo.getString("rideRiskCode"), accidentalDrivingVo.getInteger("quantity"));
+                accidentalDriving = getAccidentalDrivingByCode(accidentalDrivingVo.getString("rideRiskCode"),
+                        accidentalDrivingVo.getInteger("quantity"));
                 //驾意险详细信息
                 //驾意险详细信息
                 listByAccId = insAccidentalDrivingSubDaJiaService.getListByAccId(accidentalDriving.getId());
                 listByAccId = insAccidentalDrivingSubDaJiaService.getListByAccId(accidentalDriving.getId());
             }
             }
-            ODR1009Request odr1009Request = new ODR1009Request(orderNo, kindList, riskList,quoteInfoVo,odr1016Response,accidentalDriving,listByAccId,daJiaConfigureParameters,isEnergy);
+            ODR1009Request odr1009Request = new ODR1009Request(orderNo, kindList, riskList, quoteInfoVo, odr1016Response,
+                    accidentalDriving, listByAccId, daJiaConfigureParameters, isEnergy);
             ODR1009Response odr1009Response = daJiaRequestApiComponents.newPremiumXnyCalculation(odr1009Request);
             ODR1009Response odr1009Response = daJiaRequestApiComponents.newPremiumXnyCalculation(odr1009Request);
             NVHLODR1001Response nvhlodr1001Response = null;
             NVHLODR1001Response nvhlodr1001Response = null;
-            if(!Objects.isNull(accidentalDrivingVo) && !accidentalDrivingVo.isEmpty()){
+            if (!Objects.isNull(accidentalDrivingVo) && !accidentalDrivingVo.isEmpty()) {
                 //6.驾意险报价
                 //6.驾意险报价
-                NVHLODR1001Request nvhlodr1001Request = new NVHLODR1001Request(daJiaConfigureParameters,odr1009Response,
-                        quoteInfoVo,accidentalDriving,accidentalDrivingVo.getString("quantity"),policyHolderPersonArea,insuredPersonArea);
+                NVHLODR1001Request nvhlodr1001Request = new NVHLODR1001Request(daJiaConfigureParameters, odr1009Response,
+                        quoteInfoVo, accidentalDriving, accidentalDrivingVo.getString("quantity"), policyHolderPersonArea,
+                        insuredPersonArea);
                 nvhlodr1001Response = daJiaRequestApiComponents.accidentPremiumCalculation(nvhlodr1001Request);
                 nvhlodr1001Response = daJiaRequestApiComponents.accidentPremiumCalculation(nvhlodr1001Request);
-                if(!"2000".equals(nvhlodr1001Response.getStatus())){
+                if (!"2000".equals(nvhlodr1001Response.getStatus())) {
                     return HttpResult.error("驾意险报价失败");
                     return HttpResult.error("驾意险报价失败");
                 }
                 }
             }
             }
 
 
-            if(Message.M0000.getCode().equals(odr1009Response.getStatus())){
+            if (Message.M0000.getCode().equals(odr1009Response.getStatus())) {
 
 
                 //保费计算接口返回
                 //保费计算接口返回
-                QuoteRespVo quoteRespVo = getQuoteRespVo(odr1009Response, quoteInfoVo,nvhlodr1001Response);
+                QuoteRespVo quoteRespVo = getQuoteRespVo(odr1009Response, quoteInfoVo, nvhlodr1001Response);
                 //添加调用费用匹配功能
                 //添加调用费用匹配功能
 //                feeRuleSchemeService.dealFeeOrderInfo(quoteInfoVo, quoteRespVo, t.getAgreementId(),
 //                feeRuleSchemeService.dealFeeOrderInfo(quoteInfoVo, quoteRespVo, t.getAgreementId(),
 //                        odr1009Request.getBody().getOrderNo());
 //                        odr1009Request.getBody().getOrderNo());
-                HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(odr1009Response, quoteRespVo, ptlAgreementAttribution, orderNo, quoteInfoVo.getOrderNo(),busiId,nvhlodr1001Response);
+                HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(odr1009Response, quoteRespVo, ptlAgreementAttribution,
+                        orderNo, quoteInfoVo.getOrderNo(), busiId, nvhlodr1001Response);
                 return quoteRespVoHttpResult;
                 return quoteRespVoHttpResult;
-            }else{
-                if(odr1009Response.getResult().getJqAppStatus().equals("0") && odr1009Response.getStatus().equals("0002")) {
-                    return HttpResult.error("报价失败,原因:"+odr1009Response.getResult().getJqAppStatusMessage());
-                }else if(odr1009Response.getResult().getSyAppStatus().equals("0") && odr1009Response.getStatus().equals("0002")) {
+            } else {
+                if (odr1009Response.getResult().getJqAppStatus().equals("0") && odr1009Response.getStatus().equals("0002")) {
+                    return HttpResult.error("报价失败,原因:" + odr1009Response.getResult().getJqAppStatusMessage());
+                } else if (odr1009Response.getResult().getSyAppStatus().equals("0") && odr1009Response.getStatus().equals("0002")) {
                     return HttpResult.error("报价失败,原因:" + odr1009Response.getResult().getSyAppStatusMessage());
                     return HttpResult.error("报价失败,原因:" + odr1009Response.getResult().getSyAppStatusMessage());
                 }
                 }
                 return HttpResult.error("报价失败");
                 return HttpResult.error("报价失败");
             }
             }
-        }catch(Exception e){
+        } catch (Exception e) {
             throw new SystemException(e.getMessage());
             throw new SystemException(e.getMessage());
         }
         }
     }
     }
@@ -241,7 +255,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     public HttpResult<QuoteRespVo> responseOrder(ODR1009Response odr1009Response,
     public HttpResult<QuoteRespVo> responseOrder(ODR1009Response odr1009Response,
                                                  QuoteRespVo quoteRespVo,
                                                  QuoteRespVo quoteRespVo,
                                                  PtlAgreementAttribution ptlAgreementAttribution, String orderId,
                                                  PtlAgreementAttribution ptlAgreementAttribution, String orderId,
-                                                 String orderNo,String busiId,
+                                                 String orderNo, String busiId,
                                                  NVHLODR1001Response nvhlodr1001Response) {
                                                  NVHLODR1001Response nvhlodr1001Response) {
         // 保存订单信息
         // 保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
@@ -251,22 +265,20 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         insAreaCompany.setId(companyId);
         insAreaCompany.setId(companyId);
         insAreaCompany.setOrderno(orderNo);
         insAreaCompany.setOrderno(orderNo);
         JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(odr1009Response.getResult()));
         JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(odr1009Response.getResult()));
-        jsonObject.put("busiId",busiId);
+        jsonObject.put("busiId", busiId);
         insAreaCompany.setReptxt(jsonObject);
         insAreaCompany.setReptxt(jsonObject);
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
         insAreaCompany.setInsOrderNo(orderId);
         insAreaCompany.setInsOrderNo(orderId);
         //交强投保单号
         //交强投保单号
-        if(!Objects.isNull(odr1009Response.getResult().getBasePart().getJqProposalNo()))
-        {
+        if (!Objects.isNull(odr1009Response.getResult().getBasePart().getJqProposalNo())) {
             insAreaCompany.setJqapplyno(odr1009Response.getResult().getBasePart().getJqProposalNo().toString());
             insAreaCompany.setJqapplyno(odr1009Response.getResult().getBasePart().getJqProposalNo().toString());
         }
         }
         //商业投保单号
         //商业投保单号
-        if(!Objects.isNull(odr1009Response.getResult().getBasePart().getSyProposalNo()))
-        {
+        if (!Objects.isNull(odr1009Response.getResult().getBasePart().getSyProposalNo())) {
             insAreaCompany.setSyapplyno(odr1009Response.getResult().getBasePart().getSyProposalNo().toString());
             insAreaCompany.setSyapplyno(odr1009Response.getResult().getBasePart().getSyProposalNo().toString());
         }
         }
         //驾意险信息
         //驾意险信息
-        if(!Objects.isNull(nvhlodr1001Response)){
+        if (!Objects.isNull(nvhlodr1001Response)) {
             insAreaCompany.setCrossInsurance(JSONArray.parseArray(JSON.toJSONString(nvhlodr1001Response.getPolicyInfos())));
             insAreaCompany.setCrossInsurance(JSONArray.parseArray(JSON.toJSONString(nvhlodr1001Response.getPolicyInfos())));
         }
         }
         insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
         insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
@@ -274,7 +286,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         quoteRespVo.setOrderno(orderNo);
         quoteRespVo.setOrderno(orderNo);
         // 车船税
         // 车船税
         ODR1009Response.ResultDTO.VehicleTaxationDTO carShipTax = odr1009Response.getResult().getVehicleTaxation();
         ODR1009Response.ResultDTO.VehicleTaxationDTO carShipTax = odr1009Response.getResult().getVehicleTaxation();
-        if(!Objects.isNull(carShipTax)) {
+        if (!Objects.isNull(carShipTax)) {
             TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(carShipTax.getTaxableAmt()),
             TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(carShipTax.getTaxableAmt()),
                     Double.parseDouble(carShipTax.getTaxOverdueAmt()));
                     Double.parseDouble(carShipTax.getTaxOverdueAmt()));
             List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
             List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
@@ -286,13 +298,14 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
 
     /**
     /**
      * 获取CCvrgNo Code
      * 获取CCvrgNo Code
+     *
      * @param code
      * @param code
      * @return
      * @return
      */
      */
-    public CCvrgNo getCCvrgNoByCode(String code){
+    public CCvrgNo getCCvrgNoByCode(String code) {
         CCvrgNo[] values = CCvrgNo.values();
         CCvrgNo[] values = CCvrgNo.values();
         for (CCvrgNo value : values) {
         for (CCvrgNo value : values) {
-            if(value.getCode().equals(code)){
+            if (value.getCode().equals(code)) {
                 return value;
                 return value;
             }
             }
         }
         }
@@ -301,11 +314,12 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
 
     /**
     /**
      * 根据id 获取驾意险信息
      * 根据id 获取驾意险信息
+     *
      * @param id
      * @param id
      * @param quantity
      * @param quantity
      * @return
      * @return
      */
      */
-    public InsAccidentalDrivingDajia getAccidentalDrivingByCode(String id,Integer quantity){
+    public InsAccidentalDrivingDajia getAccidentalDrivingByCode(String id, Integer quantity) {
         InsAccidentalDrivingDajia byId = insAccidentalDrivingDaJiaService.getById(id);
         InsAccidentalDrivingDajia byId = insAccidentalDrivingDaJiaService.getById(id);
         byId.setQuantity(quantity);
         byId.setQuantity(quantity);
         return byId;
         return byId;
@@ -323,13 +337,13 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         QuoteRespVo quoteRespVo = new QuoteRespVo();
         QuoteRespVo quoteRespVo = new QuoteRespVo();
 
 
         // 交强
         // 交强
-        if(odr1009Response.getResult().getBasePart().getJqEffectiveDate() != null) {
+        if (odr1009Response.getResult().getBasePart().getJqEffectiveDate() != null) {
             quoteRespVo.setStartDateJq(String.valueOf(odr1009Response.getResult().getBasePart().getJqEffectiveDate()));
             quoteRespVo.setStartDateJq(String.valueOf(odr1009Response.getResult().getBasePart().getJqEffectiveDate()));
             quoteRespVo.setEndDateJq(String.valueOf(odr1009Response.getResult().getBasePart().getJqExpireDate()));
             quoteRespVo.setEndDateJq(String.valueOf(odr1009Response.getResult().getBasePart().getJqExpireDate()));
         }
         }
 
 
         // 商业
         // 商业
-        if(odr1009Response.getResult().getBasePart().getSyEffectiveDate() != null){
+        if (odr1009Response.getResult().getBasePart().getSyEffectiveDate() != null) {
             quoteRespVo.setStartDateSy(odr1009Response.getResult().getBasePart().getSyEffectiveDate());
             quoteRespVo.setStartDateSy(odr1009Response.getResult().getBasePart().getSyEffectiveDate());
             quoteRespVo.setEndDateSy(odr1009Response.getResult().getBasePart().getSyExpireDate());
             quoteRespVo.setEndDateSy(odr1009Response.getResult().getBasePart().getSyExpireDate());
         }
         }
@@ -339,22 +353,22 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         //  报价险种放入保费
         //  报价险种放入保费
         List<QuoteRiskRespVo> riskList = new ArrayList<QuoteRiskRespVo>();
         List<QuoteRiskRespVo> riskList = new ArrayList<QuoteRiskRespVo>();
         // risk列表
         // risk列表
-        if(odr1009Response.getResult().getBasePart().getJqProposalNo() != null){
+        if (odr1009Response.getResult().getBasePart().getJqProposalNo() != null) {
             QuoteRiskRespVo jqRisk = new QuoteRiskRespVo();
             QuoteRiskRespVo jqRisk = new QuoteRiskRespVo();
             jqRisk.setRiskCode(InsuranceRisk.TRAFFIC.getCode());
             jqRisk.setRiskCode(InsuranceRisk.TRAFFIC.getCode());
             jqRisk.setRiskName(InsuranceRisk.TRAFFIC.getDesc());
             jqRisk.setRiskName(InsuranceRisk.TRAFFIC.getDesc());
-            if(!Objects.isNull(odr1009Response.getResult().getBasePart().getJqPremium())) {
+            if (!Objects.isNull(odr1009Response.getResult().getBasePart().getJqPremium())) {
                 jqRisk.setPremium(Double.parseDouble(odr1009Response.getResult().getBasePart().getJqPremium().toString()));
                 jqRisk.setPremium(Double.parseDouble(odr1009Response.getResult().getBasePart().getJqPremium().toString()));
                 jqRisk.setStartDate(odr1009Response.getResult().getBasePart().getJqEffectiveDate().toString());
                 jqRisk.setStartDate(odr1009Response.getResult().getBasePart().getJqEffectiveDate().toString());
                 jqRisk.setEndDate(odr1009Response.getResult().getBasePart().getJqExpireDate().toString());
                 jqRisk.setEndDate(odr1009Response.getResult().getBasePart().getJqExpireDate().toString());
             }
             }
             riskList.add(jqRisk);
             riskList.add(jqRisk);
         }
         }
-        if(odr1009Response.getResult().getBasePart().getSyProposalNo() != null){
+        if (odr1009Response.getResult().getBasePart().getSyProposalNo() != null) {
             QuoteRiskRespVo syRisk = new QuoteRiskRespVo();
             QuoteRiskRespVo syRisk = new QuoteRiskRespVo();
             syRisk.setRiskCode(InsuranceRisk.BUSINESS.getCode());
             syRisk.setRiskCode(InsuranceRisk.BUSINESS.getCode());
             syRisk.setRiskName(InsuranceRisk.BUSINESS.getDesc());
             syRisk.setRiskName(InsuranceRisk.BUSINESS.getDesc());
-            if(!Objects.isNull(odr1009Response.getResult().getBasePart().getSyPremium())) {
+            if (!Objects.isNull(odr1009Response.getResult().getBasePart().getSyPremium())) {
                 syRisk.setPremium(Double.parseDouble(odr1009Response.getResult().getBasePart().getSyPremium().toString()));
                 syRisk.setPremium(Double.parseDouble(odr1009Response.getResult().getBasePart().getSyPremium().toString()));
                 syRisk.setStartDate(odr1009Response.getResult().getBasePart().getSyEffectiveDate().toString());
                 syRisk.setStartDate(odr1009Response.getResult().getBasePart().getSyEffectiveDate().toString());
                 syRisk.setEndDate(odr1009Response.getResult().getBasePart().getSyExpireDate().toString());
                 syRisk.setEndDate(odr1009Response.getResult().getBasePart().getSyExpireDate().toString());
@@ -373,10 +387,10 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             kind.setKindCode(cCvrgNoByCode.getInsurCode());
             kind.setKindCode(cCvrgNoByCode.getInsurCode());
             kind.setKindName(cCvrgNoByCode.getDesc());
             kind.setKindName(cCvrgNoByCode.getDesc());
             // amt里 包含座位的价格是总和  需要根据座位数 算出保费单价
             // amt里 包含座位的价格是总和  需要根据座位数 算出保费单价
-            if(cCvrgNoByCode.getInsurCode().equals("D4") || cCvrgNoByCode.getInsurCode().equals("SY_FJ_YBW2")){
+            if (cCvrgNoByCode.getInsurCode().equals("D4") || cCvrgNoByCode.getInsurCode().equals("SY_FJ_YBW2")) {
                 Integer seatCount = Integer.parseInt(yaQuoteInfoVo.getCarInfo().getSeatCount());
                 Integer seatCount = Integer.parseInt(yaQuoteInfoVo.getCarInfo().getSeatCount());
                 kind.setAmount(dto.getAmt() / (seatCount - 1));
                 kind.setAmount(dto.getAmt() / (seatCount - 1));
-            }else{
+            } else {
                 kind.setAmount(dto.getAmt());
                 kind.setAmount(dto.getAmt());
             }
             }
             kind.setCoveragePremium(dto.getPremium());
             kind.setCoveragePremium(dto.getPremium());
@@ -398,20 +412,19 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 //            jyPremium = bigDecimal.doubleValue();
 //            jyPremium = bigDecimal.doubleValue();
 //        }
 //        }
 
 
-        if(!Objects.isNull(nvhlodr1001Response)){
+        if (!Objects.isNull(nvhlodr1001Response)) {
             jyPremium = Double.parseDouble(nvhlodr1001Response.getOrderPrm());
             jyPremium = Double.parseDouble(nvhlodr1001Response.getOrderPrm());
         }
         }
 
 
         quoteRespVo.setRiskList(riskList);
         quoteRespVo.setRiskList(riskList);
         quoteRespVo.setKindList(kindList);
         quoteRespVo.setKindList(kindList);
-        if(!Objects.isNull(odr1009Response.getResult().getBasePart().getJqPremium()))
-        {
+        if (!Objects.isNull(odr1009Response.getResult().getBasePart().getJqPremium())) {
             jqPremium = Double.parseDouble(odr1009Response.getResult().getBasePart().getJqPremium().toString());
             jqPremium = Double.parseDouble(odr1009Response.getResult().getBasePart().getJqPremium().toString());
         }
         }
-        if(!Objects.isNull(odr1009Response.getResult().getBasePart().getSyPremium())){
+        if (!Objects.isNull(odr1009Response.getResult().getBasePart().getSyPremium())) {
             syPremium = Double.parseDouble(odr1009Response.getResult().getBasePart().getSyPremium().toString());
             syPremium = Double.parseDouble(odr1009Response.getResult().getBasePart().getSyPremium().toString());
         }
         }
-        if(!Objects.isNull(odr1009Response.getResult().getVehicleTaxation())){
+        if (!Objects.isNull(odr1009Response.getResult().getVehicleTaxation())) {
             sumPayTax = Double.parseDouble(odr1009Response.getResult().getVehicleTaxation().getTaxTotalAmount());
             sumPayTax = Double.parseDouble(odr1009Response.getResult().getVehicleTaxation().getTaxTotalAmount());
         }
         }
         quoteRespVo.setJqPremium(jqPremium);
         quoteRespVo.setJqPremium(jqPremium);
@@ -419,7 +432,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         quoteRespVo.setTaxAmount(sumPayTax);
         quoteRespVo.setTaxAmount(sumPayTax);
         quoteRespVo.setJyPremium(jyPremium);
         quoteRespVo.setJyPremium(jyPremium);
         quoteRespVo.setCiSumPermium(CalculateUtils.add(jqPremium, sumPayTax));//交强险和车船税合计
         quoteRespVo.setCiSumPermium(CalculateUtils.add(jqPremium, sumPayTax));//交强险和车船税合计
-        quoteRespVo.setSumPermium(CalculateUtils.add(jqPremium,syPremium,sumPayTax,jyPremium));//总保费
+        quoteRespVo.setSumPermium(CalculateUtils.add(jqPremium, syPremium, sumPayTax, jyPremium));//总保费
         quoteRespVo.setTotalAdjustRate(0);
         quoteRespVo.setTotalAdjustRate(0);
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
         return quoteRespVo;
         return quoteRespVo;
@@ -428,11 +441,12 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
 
     /**
     /**
      * 核保
      * 核保
+     *
      * @param companyId 子订单号
      * @param companyId 子订单号
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public HttpResult<Object> audit(String companyId){
+    public HttpResult<Object> audit(String companyId) {
         try {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
             InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
             InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
@@ -449,8 +463,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
 
             //驾意险 返回数据
             //驾意险 返回数据
             List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = null;
             List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = null;
-            if(!Objects.isNull(insAreaCompany.getCrossInsurance())){
-                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),NVHLODR1001Response.policyInfosDTO.class);
+            if (!Objects.isNull(insAreaCompany.getCrossInsurance())) {
+                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),
+                        NVHLODR1001Response.policyInfosDTO.class);
             }
             }
 
 
             //核保构造request
             //核保构造request
@@ -463,30 +478,32 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             ODR1010Response odr1010Response = daJiaRequestApiComponents.underwriting(odr1010Request);
             ODR1010Response odr1010Response = daJiaRequestApiComponents.underwriting(odr1010Request);
             if (odr1010Response.getStatus().equals(Message.M0000.getCode())) {
             if (odr1010Response.getStatus().equals(Message.M0000.getCode())) {
                 //核保成功  获取支付二维码
                 //核保成功  获取支付二维码
-                ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(),daJiaConfigureParameters,policyInfosDTOS);
+                ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters,
+                        policyInfosDTOS);
                 ODR1011Response payNo = daJiaRequestApiComponents.getPayNo(odr1011Request);
                 ODR1011Response payNo = daJiaRequestApiComponents.getPayNo(odr1011Request);
-                if(payNo.getStatus().equals(Message.M0000.getCode())){
+                if (payNo.getStatus().equals(Message.M0000.getCode())) {
                     //获取支付二维码成功  保存支付二维码
                     //获取支付二维码成功  保存支付二维码
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                     insAreaCompany.setPaymentLink(payNo.getResult().getSignInfoUrl());
                     insAreaCompany.setPaymentLink(payNo.getResult().getSignInfoUrl());
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                     return HttpResult.ok("核保成功");
                     return HttpResult.ok("核保成功");
                 }
                 }
-            }else{
-                if(odr1010Response.getResult().getJqAppStatus().equals("0") && odr1010Response.getStatus().equals("0003")){
-                    return HttpResult.error("核保失败,原因:"+odr1010Response.getResult().getJqAppStatusMessage());
-                }else if(odr1010Response.getResult().getSyAppStatus().equals("0") && odr1010Response.getStatus().equals("0003")){
-                    return HttpResult.error("核保失败,原因:"+odr1010Response.getResult().getSyAppStatusMessage());
+            } else {
+                if (odr1010Response.getResult().getJqAppStatus().equals("0") && odr1010Response.getStatus().equals("0003")) {
+                    return HttpResult.error("核保失败,原因:" + odr1010Response.getResult().getJqAppStatusMessage());
+                } else if (odr1010Response.getResult().getSyAppStatus().equals("0") && odr1010Response.getStatus().equals("0003")) {
+                    return HttpResult.error("核保失败,原因:" + odr1010Response.getResult().getSyAppStatusMessage());
                 }
                 }
             }
             }
             return HttpResult.error("核保失败");
             return HttpResult.error("核保失败");
-        }catch(Exception e){
+        } catch (Exception e) {
             throw new RuntimeException(e.getMessage());
             throw new RuntimeException(e.getMessage());
         }
         }
     }
     }
 
 
     /**
     /**
      * 上传影像
      * 上传影像
+     *
      * @param companyId
      * @param companyId
      * @return
      * @return
      */
      */
@@ -494,25 +511,28 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     public HttpResult<Object> submitImage(String companyId) {
     public HttpResult<Object> submitImage(String companyId) {
         try {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
-            List<InsTaskImagesBase64> byOrderNo = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno());
+            List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno(), insAreaCompany.getId());
             //获取公司配置信息
             //获取公司配置信息
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
             //构造上传图片request
             //构造上传图片request
-            ODR1013Request odr1013Request = new ODR1013Request(insAreaCompany, daJiaConfigureParameters, byOrderNo);
+            ODR1013Request odr1013Request = new ODR1013Request(insAreaCompany, daJiaConfigureParameters, insTaskImagesBase64s);
             ODR1013Response odr1013Response = daJiaRequestApiComponents.uploadImage(odr1013Request);
             ODR1013Response odr1013Response = daJiaRequestApiComponents.uploadImage(odr1013Request);
-            if(odr1013Response.getStatus().equals(Message.M0001.getCode())){
+            if (odr1013Response.getStatus().equals(Message.M0001.getCode())) {
+                // 上传的影像存入redis
+                insImagesUploadCacheComponents.setUploadImageCache(companyId, insTaskImagesBase64s);
                 //上传成功
                 //上传成功
                 return HttpResult.ok("上传影像成功");
                 return HttpResult.ok("上传影像成功");
             }
             }
             return HttpResult.error("上传影像失败");
             return HttpResult.error("上传影像失败");
-        }catch (Exception e){
+        } catch (Exception e) {
             throw new RuntimeException(e.getMessage());
             throw new RuntimeException(e.getMessage());
         }
         }
     }
     }
 
 
     /**
     /**
      * 查询订单状态
      * 查询订单状态
+     *
      * @param companyId
      * @param companyId
      * @return
      * @return
      */
      */
@@ -523,19 +543,20 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             //获取公司配置信息
             //获取公司配置信息
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
-            ODR2010Request odr2010Request = new ODR2010Request(insAreaCompany.getInsOrderNo(),daJiaConfigureParameters);
+            ODR2010Request odr2010Request = new ODR2010Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters);
             ODR2010Response odr2010Response = daJiaRequestApiComponents.verifyPayment(odr2010Request);
             ODR2010Response odr2010Response = daJiaRequestApiComponents.verifyPayment(odr2010Request);
-            if(odr2010Response.getStatus().equals(Message.M0000.getCode())){
+            if (odr2010Response.getStatus().equals(Message.M0000.getCode())) {
                 List<ODR2010Response.ResultDTO> result = odr2010Response.getResult();
                 List<ODR2010Response.ResultDTO> result = odr2010Response.getResult();
-                List<ODR2010Response.ResultDTO> collect = result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
-                if(collect.size() > 0) {
+                List<ODR2010Response.ResultDTO> collect =
+                        result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
+                if (collect.size() > 0) {
                     //更新订单状态
                     //更新订单状态
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
-                    for(int i=0,length=collect.size();i<length;i++){
+                    for (int i = 0, length = collect.size(); i < length; i++) {
                         //交强或商业 的 保单号
                         //交强或商业 的 保单号
-                        if(collect.get(i).getProdNo().equals(CProdNo.JQ.getCode())){
+                        if (collect.get(i).getProdNo().equals(CProdNo.JQ.getCode())) {
                             insAreaCompany.setJqpolicyno(collect.get(i).getPlyNo());
                             insAreaCompany.setJqpolicyno(collect.get(i).getPlyNo());
-                        }else if(collect.get(i).getProdNo().equals(CProdNo.SY.getCode())){
+                        } else if (collect.get(i).getProdNo().equals(CProdNo.SY.getCode())) {
                             insAreaCompany.setSypolicyno(collect.get(i).getPlyNo());
                             insAreaCompany.setSypolicyno(collect.get(i).getPlyNo());
                         }
                         }
                     }
                     }
@@ -544,13 +565,14 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 return HttpResult.ok("查询订单状态成功");
                 return HttpResult.ok("查询订单状态成功");
             }
             }
             return HttpResult.error("查询订单状态错误");
             return HttpResult.error("查询订单状态错误");
-        }catch (Exception e){
+        } catch (Exception e) {
             throw new RuntimeException(e.getMessage());
             throw new RuntimeException(e.getMessage());
         }
         }
     }
     }
 
 
     /**
     /**
      * 获取保单
      * 获取保单
+     *
      * @param policyPrintVo
      * @param policyPrintVo
      * @return
      * @return
      */
      */
@@ -570,7 +592,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             CustomerInfoVo customerInfoVo = ownerInfo.toJavaObject(CustomerInfoVo.class);
             CustomerInfoVo customerInfoVo = ownerInfo.toJavaObject(CustomerInfoVo.class);
             String identifyNo = customerInfoVo.getIdentifyNumber();
             String identifyNo = customerInfoVo.getIdentifyNumber();
             //交强险
             //交强险
-            if(InsuranceRisk.TRAFFIC.getCode().equals(policyPrintVo.getRiskCode())){
+            if (InsuranceRisk.TRAFFIC.getCode().equals(policyPrintVo.getRiskCode())) {
                 if (insAreaCompany.getJqpolicyno() != null) {
                 if (insAreaCompany.getJqpolicyno() != null) {
                     warrantys.add(insAreaCompany.getJqpolicyno());
                     warrantys.add(insAreaCompany.getJqpolicyno());
                 }
                 }
@@ -579,29 +601,33 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 } else {
                 } else {
                     templateName = "-交强险保单.pdf";
                     templateName = "-交强险保单.pdf";
                 }
                 }
-            }else if(InsuranceRisk.BUSINESS.getCode().equals(policyPrintVo.getRiskCode())) {
+            } else if (InsuranceRisk.BUSINESS.getCode().equals(policyPrintVo.getRiskCode())) {
                 //商业险
                 //商业险
                 if (insAreaCompany.getSypolicyno() != null) {
                 if (insAreaCompany.getSypolicyno() != null) {
                     warrantys.add(insAreaCompany.getSypolicyno());
                     warrantys.add(insAreaCompany.getSypolicyno());
                 }
                 }
                 templateName = "-商业险保单.pdf";
                 templateName = "-商业险保单.pdf";
-            }else if(InsuranceRisk.ACCIDENT.getCode().equals(policyPrintVo.getRiskCode())){
+            } else if (InsuranceRisk.ACCIDENT.getCode().equals(policyPrintVo.getRiskCode())) {
                 //驾意险
                 //驾意险
                 templateName = "-驾意险保单.pdf";
                 templateName = "-驾意险保单.pdf";
             }
             }
             String[] warrantysArray = warrantys.toArray(new String[0]);
             String[] warrantysArray = warrantys.toArray(new String[0]);
             //是否获取驾意险保单
             //是否获取驾意险保单
-            if(InsuranceRisk.ACCIDENT.getCode().equals(policyPrintVo.getRiskCode())){
-
-                if(!Objects.isNull(insAreaCompany.getCrossInsurance())){
-                    List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()), NVHLODR1001Response.policyInfosDTO.class);
-                    NVHLODR2007Request nvhlodr2007Request = new NVHLODR2007Request(policyInfosDTOS.get(0).getAppNo(),daJiaConfigureParameters);
+            if (InsuranceRisk.ACCIDENT.getCode().equals(policyPrintVo.getRiskCode())) {
+
+                if (!Objects.isNull(insAreaCompany.getCrossInsurance())) {
+                    List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS =
+                            JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),
+                                    NVHLODR1001Response.policyInfosDTO.class);
+                    NVHLODR2007Request nvhlodr2007Request = new NVHLODR2007Request(policyInfosDTOS.get(0).getAppNo(),
+                            daJiaConfigureParameters);
                     NVHLODR2007Response nvhlodr2007Response = daJiaRequestApiComponents.accidentPremiumWarranty(nvhlodr2007Request);
                     NVHLODR2007Response nvhlodr2007Response = daJiaRequestApiComponents.accidentPremiumWarranty(nvhlodr2007Request);
-                    if("2000".equals(nvhlodr2007Response.getStatus())){
-                        url = gainCarInsPolicy(nvhlodr2007Response.getPolicyInfos().get(0).getCPdfUrl(), nvhlodr2007Response.getPolicyInfos().get(0).getCAppNo() + templateName, identifyNo);
+                    if ("2000".equals(nvhlodr2007Response.getStatus())) {
+                        url = gainCarInsPolicy(nvhlodr2007Response.getPolicyInfos().get(0).getCPdfUrl(),
+                                nvhlodr2007Response.getPolicyInfos().get(0).getCAppNo() + templateName, identifyNo);
                     }
                     }
                 }
                 }
-            }else {
+            } else {
                 VHLINS2005Request vhlins2005Request = new VHLINS2005Request(warrantysArray, daJiaConfigureParameters);
                 VHLINS2005Request vhlins2005Request = new VHLINS2005Request(warrantysArray, daJiaConfigureParameters);
                 VHLINS2005Response vhlins2005Response = daJiaRequestApiComponents.obtainWarranty(vhlins2005Request);
                 VHLINS2005Response vhlins2005Response = daJiaRequestApiComponents.obtainWarranty(vhlins2005Request);
                 if (vhlins2005Response.getStatus().equals(Message.M0000.getCode())) {
                 if (vhlins2005Response.getStatus().equals(Message.M0000.getCode())) {
@@ -625,20 +651,21 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                     }
                     }
                 }
                 }
             }
             }
-            return HttpResult.ok("获取保单成功",url);
-        }catch (Exception e){
+            return HttpResult.ok("获取保单成功", url);
+        } catch (Exception e) {
             throw new RuntimeException(e.getMessage());
             throw new RuntimeException(e.getMessage());
         }
         }
     }
     }
 
 
     /**
     /**
      * 获取驾意险列表
      * 获取驾意险列表
+     *
      * @return
      * @return
      */
      */
     @Override
     @Override
     public HttpResult<Object> accidentalDrivingList() {
     public HttpResult<Object> accidentalDrivingList() {
         List<InsAccidentalDrivingDajia> list = insAccidentalDrivingDaJiaService.list();
         List<InsAccidentalDrivingDajia> list = insAccidentalDrivingDaJiaService.list();
-        return HttpResult.ok("获取驾意险列表成功",list);
+        return HttpResult.ok("获取驾意险列表成功", list);
     }
     }
 
 
     private String gainCarInsPolicy(String url, String fileName, String licensePlate) {
     private String gainCarInsPolicy(String url, String fileName, String licensePlate) {

+ 18 - 9
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -16,6 +16,7 @@ import com.ydtech.modules.ins.model.guoren.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
+import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.gouren.GuorenDuplicateInsuranceComponent;
 import com.ydtech.modules.order.components.gouren.GuorenDuplicateInsuranceComponent;
 import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
 import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
@@ -59,7 +60,6 @@ import org.springframework.util.ObjectUtils;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import java.io.File;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.*;
@@ -103,6 +103,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
 
     private final StringRedisTemplate redisTemplate;
     private final StringRedisTemplate redisTemplate;
 
 
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
     /**
     /**
      * 获取渠道信息
      * 获取渠道信息
      *
      *
@@ -433,9 +435,11 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         formMap.put("fileGroup", "DZ");
         formMap.put("fileGroup", "DZ");
 
 
         List<InsUploadImagesDto> insUploadImagesDtos = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(iac.getOrderno());
         List<InsUploadImagesDto> insUploadImagesDtos = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(iac.getOrderno());
-        insUploadImagesDtos.forEach(a -> {
+        Map<String, String> map = new HashMap<>();
+
+        for (InsUploadImagesDto insUploadImagesDto : insUploadImagesDtos) {
             try {
             try {
-                FilePart file1 = new FilePart("file", new File(a.getFilePath()));
+                FilePart file1 = new FilePart("file", new File(insUploadImagesDto.getFilePath()));
 
 
                 Part[] parts = {file1, new StringPart("businessNo", formMap.get("businessNo").toString()), new StringPart("operatorCode",
                 Part[] parts = {file1, new StringPart("businessNo", formMap.get("businessNo").toString()), new StringPart("operatorCode",
                         formMap.get("operatorCode").toString()), new StringPart("comCode", formMap.get("comCode").toString()),
                         formMap.get("operatorCode").toString()), new StringPart("comCode", formMap.get("comCode").toString()),
@@ -445,17 +449,22 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
                 if (StringUtils.isEmpty(result)) {
                 if (StringUtils.isEmpty(result)) {
                     throw new SystemException("国任,影像上传失败");
                     throw new SystemException("国任,影像上传失败");
                 }
                 }
+
                 JSONObject jsonObject = JSON.parseObject(result);
                 JSONObject jsonObject = JSON.parseObject(result);
-                if (StringUtils.toInt(jsonObject.get("resultCode")) == 0) {
-                    return;
+
+                if (StringUtils.toInt(jsonObject.get("resultCode")) != 0) {
+                    throw new SystemException("国任,影像上传失败");
                 }
                 }
-                throw new SystemException("国任,影像上传失败,类型:" + a.getImageType());
+                map.put(insUploadImagesDto.getImageType(), insUploadImagesDto.getImageId());
 
 
-            } catch (FileNotFoundException e) {
-                throw new RuntimeException(e);
+            } catch (Exception e) {
+                insImagesUploadCacheComponents.setUploadImageCache(iac.getCompanyId(), map);
+                throw new SystemException("国任,影像上传失败,类型:" + insUploadImagesDto.getImageType());
+                // 上传的影像存入redis
             }
             }
+        }
 
 
-        });
+        insImagesUploadCacheComponents.setUploadImageCache(iac.getCompanyId(), map);
 
 
     }
     }
 
 

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

@@ -314,7 +314,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
                         insAreaCompany.getAgreementId());
                         insAreaCompany.getAgreementId());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         List<InsUploadImagesDto> insUploadImagesDtoList =
         List<InsUploadImagesDto> insUploadImagesDtoList =
-                insTaskImagesService.findImageByOrderNo(insOrders.getOrderno());
+                insTaskImagesService.findImageByOrderNo(insOrders.getOrderno(), insAreaCompany.getId());
         if (insUploadImagesDtoList.isEmpty()) {
         if (insUploadImagesDtoList.isEmpty()) {
             throw new SystemException("请检查影像是否上传了");
             throw new SystemException("请检查影像是否上传了");
         }
         }
@@ -323,8 +323,9 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         //调用华泰影像接口获取上传链接地址
         //调用华泰影像接口获取上传链接地址
         HuaTaiUploadImageResponse response = huaTaiRequestApiComponents.uploadImage(request,
         HuaTaiUploadImageResponse response = huaTaiRequestApiComponents.uploadImage(request,
                 HuaTaiUploadImageResponse.class);
                 HuaTaiUploadImageResponse.class);
+
         //爬虫方式进行图片上传
         //爬虫方式进行图片上传
-        huiTaiUploadImageComponents.uploadImage(response.getUrl(), insUploadImagesDtoList);
+        huiTaiUploadImageComponents.uploadImage(companyId, response.getUrl(), insUploadImagesDtoList);
         return HttpResult.ok("上传文件成功");
         return HttpResult.ok("上传文件成功");
     }
     }
 
 

+ 54 - 14
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.service.impl;
 package com.ydtech.modules.order.service.impl;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
@@ -8,6 +9,7 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.InsCrawlerOrderComponents;
 import com.ydtech.modules.order.components.InsCrawlerOrderComponents;
+import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 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;
@@ -65,6 +67,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
 
 
     private final PtlAgreementService ptlAgreementService;
     private final PtlAgreementService ptlAgreementService;
 
 
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
     @Value("${upload.file.path}")
     @Value("${upload.file.path}")
     private String uploadFilePath;
     private String uploadFilePath;
 
 
@@ -80,7 +84,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
 
 
         String apiUrl = ptlCrawlerApiService.getByTemplateId(attribution.getTemplateId(), PtlCrawlerApiType.API_1);
         String apiUrl = ptlCrawlerApiService.getByTemplateId(attribution.getTemplateId(), PtlCrawlerApiType.API_1);
         CrawlerLoginRequest crawlerLoginRequest = new CrawlerLoginRequest(attribution);
         CrawlerLoginRequest crawlerLoginRequest = new CrawlerLoginRequest(attribution);
-        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, companyId, PtlCrawlerApiType.API_2.getDesc(), crawlerLoginRequest, CrawlerBaseResponse.class);
+        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, companyId, PtlCrawlerApiType.API_2.getDesc(),
+                crawlerLoginRequest, CrawlerBaseResponse.class);
 
 
         AssertionUtils.isSucceed(response.getCode() == 200, insCompanyName + "登录用户名和密码不正确");
         AssertionUtils.isSucceed(response.getCode() == 200, insCompanyName + "登录用户名和密码不正确");
     }
     }
@@ -101,13 +106,14 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         // 前端传入的驾意险信息
         // 前端传入的驾意险信息
         crawlerQuoteRequest.setAccidentalDriving(t.getAccidentalDrivingVo());
         crawlerQuoteRequest.setAccidentalDriving(t.getAccidentalDrivingVo());
         // 发送请求
         // 发送请求
-        CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(), PtlCrawlerApiType.API_2.getDesc(), crawlerQuoteRequest, CrawlerQuoteResponse.class);
+        CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(),
+                PtlCrawlerApiType.API_2.getDesc(), crawlerQuoteRequest, CrawlerQuoteResponse.class);
         if (response.getCode() != 200) {
         if (response.getCode() != 200) {
             throw new SystemException(response.getMessage());
             throw new SystemException(response.getMessage());
         }
         }
         QuoteRespVo quoteRespVo = getQuoteRespVo(response, quoteInfoVo);
         QuoteRespVo quoteRespVo = getQuoteRespVo(response, quoteInfoVo);
         //处理订单信息
         //处理订单信息
-        QuoteRespVo responseVo= responseOrder(response, quoteRespVo, ptlAgreementAttribution);
+        QuoteRespVo responseVo = responseOrder(response, quoteRespVo, ptlAgreementAttribution);
         //添加调用费用匹配功能
         //添加调用费用匹配功能
         String insCom = "";
         String insCom = "";
         if (ptlAgreementAttribution.getInsCompanyId() != null && ptlAgreementAttribution.getInsCompanyId().length() > 4) {
         if (ptlAgreementAttribution.getInsCompanyId() != null && ptlAgreementAttribution.getInsCompanyId().length() > 4) {
@@ -125,13 +131,24 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(subOrderNo);
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(subOrderNo);
         // 请求地址
         // 请求地址
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_3);
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_3);
-        List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno());
-        CrawlerImageRequest crawlerImageRequest = new CrawlerImageRequest(insAreaCompany.getInsOrderNo(), CrawlerImageRequest.toB64phoListDTO(insTaskImagesBase64s));
+        // 获取缓存中的影像信息
+        List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno(), insAreaCompany.getId());
+
+        if (insTaskImagesBase64s.isEmpty()) {
+            return HttpResult.ok("上传成功");
+        }
+
+        CrawlerImageRequest crawlerImageRequest = new CrawlerImageRequest(insAreaCompany.getInsOrderNo(),
+                CrawlerImageRequest.toB64phoListDTO(insTaskImagesBase64s));
         // 发送请求
         // 发送请求
-        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_3.getDesc(), crawlerImageRequest, CrawlerBaseResponse.class);
+        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(),
+                PtlCrawlerApiType.API_3.getDesc(), crawlerImageRequest, CrawlerBaseResponse.class);
         if (response.getCode() != 200) {
         if (response.getCode() != 200) {
             throw new SystemException(response.getMessage());
             throw new SystemException(response.getMessage());
         }
         }
+
+        // 上传的影像存入redis
+        insImagesUploadCacheComponents.setUploadImageCache(subOrderNo, insTaskImagesBase64s);
         return HttpResult.ok("上传成功");
         return HttpResult.ok("上传成功");
     }
     }
 
 
@@ -142,7 +159,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_4);
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_4);
         //组装参数
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerAuditResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_4.getDesc(), crawlerBaseRequest, CrawlerAuditResponse.class);
+        CrawlerAuditResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(),
+                PtlCrawlerApiType.API_4.getDesc(), crawlerBaseRequest, CrawlerAuditResponse.class);
         if (crawlerAuditResponse.getCode() != 200) {
         if (crawlerAuditResponse.getCode() != 200) {
             throw new SystemException(crawlerAuditResponse.getMessage());
             throw new SystemException(crawlerAuditResponse.getMessage());
         }
         }
@@ -168,7 +186,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_5);
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_5);
         //组装参数
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerVerifyPaymentResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_5.getDesc(), crawlerBaseRequest, CrawlerVerifyPaymentResponse.class);
+        CrawlerVerifyPaymentResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(),
+                PtlCrawlerApiType.API_5.getDesc(), crawlerBaseRequest, CrawlerVerifyPaymentResponse.class);
 
 
         // 0未缴费,1已缴费
         // 0未缴费,1已缴费
         if (crawlerAuditResponse.getState() == CrawlerVerifyPaymentConstants.PAID) {
         if (crawlerAuditResponse.getState() == CrawlerVerifyPaymentConstants.PAID) {
@@ -198,7 +217,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_6);
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_6);
         //组装参数
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerPolicyPrintResponse response = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_6.getDesc(), crawlerBaseRequest, CrawlerPolicyPrintResponse.class);
+        CrawlerPolicyPrintResponse response = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(),
+                PtlCrawlerApiType.API_6.getDesc(), crawlerBaseRequest, CrawlerPolicyPrintResponse.class);
 
 
         if (response.getCode() != 200) {
         if (response.getCode() != 200) {
             throw new SystemException(response.getMessage());
             throw new SystemException(response.getMessage());
@@ -211,7 +231,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         crawlerPolicyPrintVo.setJyxInfoList(response.getJyxInfoList().stream().map(x -> {
         crawlerPolicyPrintVo.setJyxInfoList(response.getJyxInfoList().stream().map(x -> {
             CrawlerPolicyPrintVo.JyxInfoListDTO jyxInfoListDTO = new CrawlerPolicyPrintVo.JyxInfoListDTO();
             CrawlerPolicyPrintVo.JyxInfoListDTO jyxInfoListDTO = new CrawlerPolicyPrintVo.JyxInfoListDTO();
             jyxInfoListDTO.setApplication(x.getApplication());
             jyxInfoListDTO.setApplication(x.getApplication());
-            jyxInfoListDTO.setJyxPolicyUrl(gainCarInsPolicy(x.getJyxPolicyUrl(), licensePlate + "-" + x.getApplication() + "-非车险保单.pdf", licensePlate));
+            jyxInfoListDTO.setJyxPolicyUrl(gainCarInsPolicy(x.getJyxPolicyUrl(), licensePlate + "-" + x.getApplication() + "-非车险保单.pdf",
+                    licensePlate));
             return jyxInfoListDTO;
             return jyxInfoListDTO;
         }).collect(Collectors.toList()));
         }).collect(Collectors.toList()));
         return HttpResult.ok(crawlerPolicyPrintVo);
         return HttpResult.ok(crawlerPolicyPrintVo);
@@ -263,7 +284,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         List<CrawlerQuoteResponse.DivingInsurancesDto> drivingInsurances = response.getDrivingInsurances();
         List<CrawlerQuoteResponse.DivingInsurancesDto> drivingInsurances = response.getDrivingInsurances();
 
 
         if (drivingInsurances != null && !drivingInsurances.isEmpty()) {
         if (drivingInsurances != null && !drivingInsurances.isEmpty()) {
-            List<AccidentResponseVo> accidentResponseVoList = CrawlerQuoteResponse.DivingInsurancesDto.toAccidentResponseVoList(drivingInsurances);
+            List<AccidentResponseVo> accidentResponseVoList =
+                    CrawlerQuoteResponse.DivingInsurancesDto.toAccidentResponseVoList(drivingInsurances);
             quoteRespVo.setAccident(accidentResponseVoList);
             quoteRespVo.setAccident(accidentResponseVoList);
             // 驾意险价格
             // 驾意险价格
             BigDecimal bigDecimal = CrawlerQuoteResponse.DivingInsurancesDto.sumPremium(drivingInsurances);
             BigDecimal bigDecimal = CrawlerQuoteResponse.DivingInsurancesDto.sumPremium(drivingInsurances);
@@ -308,7 +330,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         return quoteRespVo;
         return quoteRespVo;
     }
     }
 
 
-    private QuoteRespVo responseOrder(CrawlerQuoteResponse response, QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
+    private QuoteRespVo responseOrder(CrawlerQuoteResponse response, QuoteRespVo quoteRespVo,
+                                      PtlAgreementAttribution ptlAgreementAttribution) {
         //保存订单信息
         //保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
 
 
@@ -331,9 +354,26 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
     public HttpResult<Object> getDrivingInsurance(String agreementId) {
     public HttpResult<Object> getDrivingInsurance(String agreementId) {
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         String apiUrl = ptlCrawlerApiService.getApiUrl(agreementId, PtlCrawlerApiType.API_7);
         String apiUrl = ptlCrawlerApiService.getApiUrl(agreementId, PtlCrawlerApiType.API_7);
-        CrawlerDrivingInsuranceRequest crawlerDrivingInsuranceRequest = new CrawlerDrivingInsuranceRequest(ptlAgreementAttribution.getUsername());
-        CrawlerDrivingInsuranceResponse request = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(), PtlCrawlerApiType.API_7.getDesc(), crawlerDrivingInsuranceRequest, CrawlerDrivingInsuranceResponse.class);
+        CrawlerDrivingInsuranceRequest crawlerDrivingInsuranceRequest =
+                new CrawlerDrivingInsuranceRequest(ptlAgreementAttribution.getUsername());
+        CrawlerDrivingInsuranceResponse request = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(),
+                PtlCrawlerApiType.API_7.getDesc(), crawlerDrivingInsuranceRequest, CrawlerDrivingInsuranceResponse.class);
         return HttpResult.ok(request.getOverlayPlanList());
         return HttpResult.ok(request.getOverlayPlanList());
     }
     }
 
 
+
+    public static void main(String[] args) {
+        List<InsTaskImagesBase64> insTaskImagesBase64s = new ArrayList<>();
+        for (int i = 0; i < 6; i++) {
+            InsTaskImagesBase64 insTaskImagesBase64 = new InsTaskImagesBase64();
+            insTaskImagesBase64.setImageType(i + "");
+            insTaskImagesBase64.setImageId(i + "");
+        }
+
+
+        Map<String, String> collect = insTaskImagesBase64s.stream().collect(Collectors.toMap(InsTaskImagesBase64::getImageType,
+                InsTaskImagesBase64::getImageId));
+        System.out.println(collect);
+    }
+
 }
 }

+ 39 - 20
src/main/java/com/ydtech/modules/order/service/impl/InsTaskImagesServiceImpl.java

@@ -1,9 +1,12 @@
 package com.ydtech.modules.order.service.impl;
 package com.ydtech.modules.order.service.impl;
 
 
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.FileUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.InsuranceImageEnum;
 import com.ydtech.constants.InsuranceImageEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.dao.InsTaskImagesMapper;
 import com.ydtech.modules.order.dao.InsTaskImagesMapper;
 import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
@@ -11,13 +14,13 @@ import com.ydtech.modules.order.entity.po.InsTaskImages;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.InsTaskImagesVo;
 import com.ydtech.modules.order.entity.vo.InsTaskImagesVo;
 import com.ydtech.modules.order.service.InsTaskImagesService;
 import com.ydtech.modules.order.service.InsTaskImagesService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Base64Utils;
 import org.springframework.util.Base64Utils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
 
 
 import java.util.*;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -26,9 +29,12 @@ import java.util.stream.Collectors;
  * @createDate 2023-05-05 16:27:19
  * @createDate 2023-05-05 16:27:19
  */
  */
 @Service
 @Service
+@RequiredArgsConstructor
 public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, InsTaskImages>
 public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, InsTaskImages>
         implements InsTaskImagesService {
         implements InsTaskImagesService {
 
 
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
     @Override
     @Override
     @Transactional
     @Transactional
     public HttpResult<Object> uploadImages(InsTaskImagesVo insTaskImagesVo, String username) {
     public HttpResult<Object> uploadImages(InsTaskImagesVo insTaskImagesVo, String username) {
@@ -70,36 +76,49 @@ public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, I
     }
     }
 
 
     @Override
     @Override
-    public List<InsTaskImagesBase64> findByOrderNo(String orderNo) {
+    public List<InsTaskImagesBase64> findByOrderNo(String orderNo, String companyId) {
+
+        // 获取缓存中的影像信息
+        JSONObject uploadImage = insImagesUploadCacheComponents.isUploadImage(companyId);
         List<InsUploadImagesDto> insUploadImagesDtos = baseMapper.getByOrderNoInsUploadImagesDtoList(orderNo);
         List<InsUploadImagesDto> insUploadImagesDtos = baseMapper.getByOrderNoInsUploadImagesDtoList(orderNo);
+
+        if (insUploadImagesDtos.isEmpty()) {
+            throw new SystemException("请检查影像是否上传");
+        }
+
         // 使用 imagesId 去重
         // 使用 imagesId 去重
         List<InsUploadImagesDto> deduplication = insUploadImagesDtos.stream().collect(
         List<InsUploadImagesDto> deduplication = insUploadImagesDtos.stream().collect(
                 Collectors.collectingAndThen(
                 Collectors.collectingAndThen(
-                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InsUploadImagesDto::getImageId))), ArrayList::new));
+                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InsUploadImagesDto::getImageId))),
+                        ArrayList::new));
 
 
         // 图片路劲转base64
         // 图片路劲转base64
         Map<String, String> map = new HashMap<>();
         Map<String, String> map = new HashMap<>();
-        deduplication.forEach(target -> {
-                    String base64B = Base64Utils.encodeToString(FileUtil.readBytes(target.getFilePath()));
-                    map.put(target.getImageId(), base64B);
-                }
-        );
-
-        List<InsTaskImagesBase64> list = new ArrayList<>();
-        for (InsUploadImagesDto insUploadImagesDto : insUploadImagesDtos) {
-            InsTaskImagesBase64 insTaskImagesBase64 = new InsTaskImagesBase64();
-            insTaskImagesBase64.setFileName(insUploadImagesDto.getFileName());
-            insTaskImagesBase64.setImageType(insUploadImagesDto.getImageType());
-            insTaskImagesBase64.setQuoteNo(insUploadImagesDto.getQuoteNo());
-            insTaskImagesBase64.setBase64String(map.get(insUploadImagesDto.getImageId()));
-            list.add(insTaskImagesBase64);
+
+        for (InsUploadImagesDto target : deduplication) {
+            String base64B = Base64Utils.encodeToString(FileUtil.readBytes(target.getFilePath()));
+            // 文件id
+            map.put(target.getImageId(), base64B);
         }
         }
-        return list;
+
+        return insUploadImagesDtos.stream()
+                // 过滤缓存中 存在的 imageId
+                .filter(x -> x.getImageId().equals(uploadImage.get(x.getImageType())))
+                .map(x -> new InsTaskImagesBase64(x, map))
+                .collect(Collectors.toList());
     }
     }
 
 
     @Override
     @Override
-    public List<InsUploadImagesDto> findImageByOrderNo(String orderNo) {
-        return baseMapper.getByOrderNoInsUploadImagesDtoList(orderNo);
+    public List<InsUploadImagesDto> findImageByOrderNo(String orderNo, String companyId) {
+        JSONObject uploadImage = insImagesUploadCacheComponents.isUploadImage(companyId);
+        List<InsUploadImagesDto> insUploadImagesDtos = baseMapper.getByOrderNoInsUploadImagesDtoList(orderNo);
+        if (insUploadImagesDtos.isEmpty()) {
+            throw new SystemException("请检查影像是否上传");
+        }
+
+        return insUploadImagesDtos.stream()
+                .filter(x -> x.getImageId().equals(uploadImage.get(x.getImageType())))
+                .collect(Collectors.toList());
     }
     }
 
 
 
 

+ 33 - 19
src/main/java/com/ydtech/modules/order/service/impl/YongAnOrderServiceImpl.java

@@ -13,6 +13,7 @@ import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.*;
 import com.ydtech.modules.ins.model.ya.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
+import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.convert.MapToYaExtendInfoDto;
 import com.ydtech.modules.order.convert.MapToYaExtendInfoDto;
 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;
@@ -31,6 +32,7 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.utils.HMAC256Uitil;
 import com.ydtech.utils.HMAC256Uitil;
 import com.ydtech.utils.HttpXmlUtil;
 import com.ydtech.utils.HttpXmlUtil;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -43,6 +45,7 @@ import java.util.*;
 
 
 @Slf4j
 @Slf4j
 @Service
 @Service
+@RequiredArgsConstructor
 public class YongAnOrderServiceImpl implements YongAnOrderService {
 public class YongAnOrderServiceImpl implements YongAnOrderService {
 
 
     @Value("${ya.url}")
     @Value("${ya.url}")
@@ -81,14 +84,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
 
 
     private final ConfigureParametersComponents configureParametersComponents;
     private final ConfigureParametersComponents configureParametersComponents;
 
 
-    public YongAnOrderServiceImpl(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsTaskImagesService insTaskImagesService, EsmInsCompanyService esmInsCompanyService, PtlAgreementAttributionService ptlAgreementAttributionService, ConfigureParametersComponents configureParametersComponents) {
-        this.insAreaCompanyService = insAreaCompanyService;
-        this.insOrdersService = insOrdersService;
-        this.insTaskImagesService = insTaskImagesService;
-        this.esmInsCompanyService = esmInsCompanyService;
-        this.ptlAgreementAttributionService = ptlAgreementAttributionService;
-        this.configureParametersComponents = configureParametersComponents;
-    }
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
 
 
 //    @Override
 //    @Override
 //    public List<CarModelDTO> vinSearch(String vin) {
 //    public List<CarModelDTO> vinSearch(String vin) {
@@ -325,7 +322,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
 
 
             //8 扩展字段
             //8 扩展字段
             List<ExtendInfoDto> extendInfoDtos = responseBodyC2.getExtendInfo();
             List<ExtendInfoDto> extendInfoDtos = responseBodyC2.getExtendInfo();
-            Map<String, String> stringStringMap = extendInfoDtos.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()), LinkedHashMap::putAll);
+            Map<String, String> stringStringMap = extendInfoDtos.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(),
+                    v.getValue()), LinkedHashMap::putAll);
             YaExtendInfoDto yaExtendInfoDto = MapToYaExtendInfoDto.INSTANCE.mapToYaExtendInfoDto(stringStringMap);
             YaExtendInfoDto yaExtendInfoDto = MapToYaExtendInfoDto.INSTANCE.mapToYaExtendInfoDto(stringStringMap);
             String orderNo = quoteInfoVo.getOrderNo();
             String orderNo = quoteInfoVo.getOrderNo();
             QuoteRespVo quoteRespVo = getQuoteRespVo(orderNo, carDTO, responseBodyC2);
             QuoteRespVo quoteRespVo = getQuoteRespVo(orderNo, carDTO, responseBodyC2);
@@ -345,7 +343,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
 
 
         // 账号配置
         // 账号配置
-        YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class, insAreaCompany.getAgreementId());
+        YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class,
+                insAreaCompany.getAgreementId());
 
 
         InsOrders orders = insOrdersService.getById(insAreaCompany.getOrderno());
         InsOrders orders = insOrdersService.getById(insAreaCompany.getOrderno());
         RequestData requestData = new RequestData();
         RequestData requestData = new RequestData();
@@ -459,10 +458,13 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
         try {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
             InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
             // 账号配置
             // 账号配置
-            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class, insAreaCompany.getAgreementId());
+            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class,
+                    insAreaCompany.getAgreementId());
 
 
             InsOrders insOrders = insOrdersService.existOrder(insAreaCompany.getOrderno());
             InsOrders insOrders = insOrdersService.existOrder(insAreaCompany.getOrderno());
-            List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno());
+            // 获取缓存中的影像信息
+            List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno(),
+                    insAreaCompany.getId());
             if (insTaskImagesBase64s.isEmpty()) {
             if (insTaskImagesBase64s.isEmpty()) {
                 throw new SystemException("请检查影像是否上传了");
                 throw new SystemException("请检查影像是否上传了");
             }
             }
@@ -472,6 +474,7 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
             RequestBodyB25 requestBodyB25 = new RequestBodyB25();
             RequestBodyB25 requestBodyB25 = new RequestBodyB25();
             ObjectMapper mapper = new XmlMapper();
             ObjectMapper mapper = new XmlMapper();
             mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
             mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+            HashMap<String, String> map = new HashMap<>();
 
 
             for (InsTaskImagesBase64 insTaskImagesBase64 : insTaskImagesBase64s) {
             for (InsTaskImagesBase64 insTaskImagesBase64 : insTaskImagesBase64s) {
                 //------------------永安影像上传----------------------
                 //------------------永安影像上传----------------------
@@ -495,10 +498,14 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
                 requestData.setRequestBody(requestBodyB25);
                 requestData.setRequestBody(requestBodyB25);
                 String responseString = httpPost(mapper, requestData, yaConfigureParameters.getConsumerAccessKey());
                 String responseString = httpPost(mapper, requestData, yaConfigureParameters.getConsumerAccessKey());
                 ResponseDataB25 responseDataB25 = mapper.readValue(responseString, ResponseDataB25.class);
                 ResponseDataB25 responseDataB25 = mapper.readValue(responseString, ResponseDataB25.class);
+                map.put(insTaskImagesBase64.getImageType(), insTaskImagesBase64.getImageId());
                 if (!responseDataB25.getResponseHead().getStatus().equals("0")) {
                 if (!responseDataB25.getResponseHead().getStatus().equals("0")) {
+                    insImagesUploadCacheComponents.setUploadImageCache(companyId, map);
                     return HttpResult.error("永安--上传影像失败:" + responseDataB25.getResponseHead().getAppMessage());
                     return HttpResult.error("永安--上传影像失败:" + responseDataB25.getResponseHead().getAppMessage());
                 }
                 }
             }
             }
+
+            insImagesUploadCacheComponents.setUploadImageCache(companyId, map);
         } catch (SystemException e) {
         } catch (SystemException e) {
             return HttpResult.error(e.getMessage());
             return HttpResult.error(e.getMessage());
         } catch (Exception e) {
         } catch (Exception e) {
@@ -518,7 +525,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
         try {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
             // 账号配置
             // 账号配置
-            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class, insAreaCompany.getAgreementId());
+            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class,
+                    insAreaCompany.getAgreementId());
 
 
             InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
             InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
             RequestData requestData = new RequestData();
             RequestData requestData = new RequestData();
@@ -530,7 +538,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
             //1.组装RequestBody
             //1.组装RequestBody
             ResponseDataC2 responseDataC2 = JSON.parseObject(insAreaCompany.getReptxt().toJSONString(), ResponseDataC2.class);
             ResponseDataC2 responseDataC2 = JSON.parseObject(insAreaCompany.getReptxt().toJSONString(), ResponseDataC2.class);
             List<ExtendInfoDto> extendInfoList = responseDataC2.getResponseBody().getExtendInfo();
             List<ExtendInfoDto> extendInfoList = responseDataC2.getResponseBody().getExtendInfo();
-            Map<String, String> maps = extendInfoList.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()), LinkedHashMap::putAll);
+            Map<String, String> maps = extendInfoList.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()),
+                    LinkedHashMap::putAll);
             requestBodyB7.setBzQueryNo(maps.get("querySequenceBZNo"));//交强
             requestBodyB7.setBzQueryNo(maps.get("querySequenceBZNo"));//交强
             requestBodyB7.setQueryNo(maps.get("querySequenceNo"));
             requestBodyB7.setQueryNo(maps.get("querySequenceNo"));
             DispatchDTO dispatchDTO = new DispatchDTO();
             DispatchDTO dispatchDTO = new DispatchDTO();
@@ -578,7 +587,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
         try {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(yaPayUrlVo.getCompanyId());
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(yaPayUrlVo.getCompanyId());
             // 账号配置
             // 账号配置
-            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class, insAreaCompany.getAgreementId());
+            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class,
+                    insAreaCompany.getAgreementId());
             RequestData requestData = new RequestData();
             RequestData requestData = new RequestData();
             RequestHead requestHead = getRequestHead("B13", yaConfigureParameters);
             RequestHead requestHead = getRequestHead("B13", yaConfigureParameters);
             RequestBodyB13 requestBodyB13 = new RequestBodyB13();
             RequestBodyB13 requestBodyB13 = new RequestBodyB13();
@@ -651,7 +661,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
         try {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
             // 账号配置
             // 账号配置
-            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class, insAreaCompany.getAgreementId());
+            YaConfigureParameters yaConfigureParameters = configureParametersComponents.toEntity(YaConfigureParameters.class,
+                    insAreaCompany.getAgreementId());
 
 
             RequestData requestData = new RequestData();
             RequestData requestData = new RequestData();
             RequestHead requestHead = getRequestHead("B21", yaConfigureParameters);
             RequestHead requestHead = getRequestHead("B21", yaConfigureParameters);
@@ -1056,11 +1067,13 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
         quoteRespVo.setOrderno(orderNo); //订单号
         quoteRespVo.setOrderno(orderNo); //订单号
         // 往年补交
         // 往年补交
         if (!ObjectUtils.isEmpty(responseBodyC2.getCarTax())) {
         if (!ObjectUtils.isEmpty(responseBodyC2.getCarTax())) {
-            quoteRespVo.setTaxArrears(Collections.singletonList(new TaxArrears("往年应缴", responseBodyC2.getCarTax().getTaxOverdue(), responseBodyC2.getCarTax().getSurCharge())));
+            quoteRespVo.setTaxArrears(Collections.singletonList(new TaxArrears("往年应缴", responseBodyC2.getCarTax().getTaxOverdue(),
+                    responseBodyC2.getCarTax().getSurCharge())));
         }
         }
 
 
         List<ExtendInfoDto> extendInfo = responseBodyC2.getExtendInfo();
         List<ExtendInfoDto> extendInfo = responseBodyC2.getExtendInfo();
-        Map<String, String> maps = extendInfo.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()), LinkedHashMap::putAll);
+        Map<String, String> maps = extendInfo.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()),
+                LinkedHashMap::putAll);
         String relationType = maps.get("relationType");
         String relationType = maps.get("relationType");
         quoteRespVo.setIszdj("0");
         quoteRespVo.setIszdj("0");
         if ("7".equals(relationType)) {
         if ("7".equals(relationType)) {
@@ -1075,7 +1088,8 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
         return b1.add(b2).doubleValue();
         return b1.add(b2).doubleValue();
     }
     }
 
 
-    private HttpResult<QuoteRespVo> responseOrder(QuoteRespVo quoteRespVo, RequestData requestData, ResponseDataC2 responseDataC2, PtlAgreementAttribution ptlAgreementAttribution) {
+    private HttpResult<QuoteRespVo> responseOrder(QuoteRespVo quoteRespVo, RequestData requestData, ResponseDataC2 responseDataC2,
+                                                  PtlAgreementAttribution ptlAgreementAttribution) {
         //保存订单信息
         //保存订单信息
 
 
         if (responseDataC2.getResponseHead().getStatus() != null && responseDataC2.getResponseHead().getStatus().equals("0")) {
         if (responseDataC2.getResponseHead().getStatus() != null && responseDataC2.getResponseHead().getStatus().equals("0")) {

+ 23 - 16
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.ydtech.config.properties.YongchengApiConfigurationProperties;
 import com.ydtech.config.properties.YongchengApiConfigurationProperties;
@@ -41,7 +42,6 @@ import com.ydtech.modules.ins.model.yc.audit.Audit;
 import com.ydtech.modules.ins.model.yc.audit.response.AuditResponse;
 import com.ydtech.modules.ins.model.yc.audit.response.AuditResponse;
 import com.ydtech.modules.ins.model.yc.callbackAnOrder.CallbackAnOrder;
 import com.ydtech.modules.ins.model.yc.callbackAnOrder.CallbackAnOrder;
 import com.ydtech.modules.ins.model.yc.imageUp.ImageUp;
 import com.ydtech.modules.ins.model.yc.imageUp.ImageUp;
-import com.ydtech.modules.ins.model.yc.imageUp.response.ImageUpResponse;
 import com.ydtech.modules.ins.model.yc.modelsQuery.ModelsQueryResponse;
 import com.ydtech.modules.ins.model.yc.modelsQuery.ModelsQueryResponse;
 import com.ydtech.modules.ins.model.yc.modelsQuery.ModelsQueryXml;
 import com.ydtech.modules.ins.model.yc.modelsQuery.ModelsQueryXml;
 import com.ydtech.modules.ins.model.yc.pay.Pay;
 import com.ydtech.modules.ins.model.yc.pay.Pay;
@@ -54,6 +54,7 @@ import com.ydtech.modules.ins.model.yc.ruote.Ruote;
 import com.ydtech.modules.ins.model.yc.ruote.response.RuoteResponse;
 import com.ydtech.modules.ins.model.yc.ruote.response.RuoteResponse;
 import com.ydtech.modules.ins.model.yc.ruote.response.TfiWarnListResponse;
 import com.ydtech.modules.ins.model.yc.ruote.response.TfiWarnListResponse;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
+import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.VerificationCodeIdentification;
 import com.ydtech.modules.order.components.VerificationCodeIdentification;
 import com.ydtech.modules.order.components.yongcheng.YongchengRequestApiComponents;
 import com.ydtech.modules.order.components.yongcheng.YongchengRequestApiComponents;
@@ -140,8 +141,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
 
     private final SysAreaService sysAreaService;
     private final SysAreaService sysAreaService;
 
 
-    //==============================API 方式
-    //
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
     public void gainVehicleModel(YcConfigureParameters ycConfigureParameters, CarInfoVo carInfo) {
     public void gainVehicleModel(YcConfigureParameters ycConfigureParameters, CarInfoVo carInfo) {
         CarModel_Req carModelReq = new CarModel_Req();
         CarModel_Req carModelReq = new CarModel_Req();
         carModelReq.setFrameNo(carInfo.getFrameNo());
         carModelReq.setFrameNo(carInfo.getFrameNo());
@@ -647,28 +648,34 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         }
         }
 
 
         InsOrders order = insOrdersService.getById(iac.getOrderno());
         InsOrders order = insOrdersService.getById(iac.getOrderno());
-        List<InsTaskImagesBase64> insTaskImages = insTaskImagesService.findByOrderNo(iac.getOrderno());
-        if (CollUtil.isEmpty(insTaskImages)) return HttpResult.error("获取影像失败");
+        List<InsTaskImagesBase64> insTaskImages = insTaskImagesService.findByOrderNo(iac.getOrderno(), iac.getId());
+
+        if (CollUtil.isEmpty(insTaskImages)) {
+            return HttpResult.error("获取影像失败");
+        }
 
 
         //获取协议配置信息
         //获取协议配置信息
         YcConfigureParameters ycConfigureParameters = gainYcConfigParams(iac.getAgreementId());
         YcConfigureParameters ycConfigureParameters = gainYcConfigParams(iac.getAgreementId());
-
-        insTaskImages.forEach(a -> {
+        HashMap<String, String> map = new HashMap<>();
+        for (InsTaskImagesBase64 insTaskImage : insTaskImages) {
             //组装参数
             //组装参数
             //接口请求
             //接口请求
-            ImageUp iUp = ImageUp.buildImageUpParam(order, ycConfigureParameters, a.getBase64String(),
-                    a.getImageType());
+            ImageUp iUp = ImageUp.buildImageUpParam(order, ycConfigureParameters, insTaskImage.getBase64String(),
+                    insTaskImage.getImageType());
             try {
             try {
-                ImageUpResponse imageUpResponse = yongchengRequestApiComponents.newImageUp(iUp);
-            } catch (JsonProcessingException e) {
-                e.printStackTrace();
-                log.error("===永诚API方式--上传影像报错:" + e.getMessage());
-                throw new SystemException("系统错误,请联系管理员");
+                yongchengRequestApiComponents.newImageUp(iUp);
+                map.put(insTaskImage.getImageType(), insTaskImage.getImageId());
+            } catch (Exception e) {
+                log.error("===永诚API方式--上传影像报错:{}", e.getMessage());
+                String picTureName = iUp.getNewImgUpLoadInfoRequest().getRequestBase().getPicTureName();
+                insImagesUploadCacheComponents.setUploadImageCache(quoteOrderNo, map);
+                throw new SystemException(picTureName + "上传途中异常,请重新上传或截取图片上传");
             }
             }
+        }
 
 
-        });
-
+        insImagesUploadCacheComponents.setUploadImageCache(quoteOrderNo, map);
         return HttpResult.ok();
         return HttpResult.ok();
+
     }
     }
 
 
 
 

+ 63 - 50
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -14,6 +14,7 @@ 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.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
 import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
 import com.ydtech.modules.order.components.zhongmei.ZhongmeiRepeatInsuranceComponents;
 import com.ydtech.modules.order.components.zhongmei.ZhongmeiRepeatInsuranceComponents;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
@@ -42,6 +43,7 @@ import com.ydtech.modules.protocol.service.PtlAgreementNonCarProductCostsService
 import com.ydtech.modules.protocol.service.PtlNonCarProductSchemeService;
 import com.ydtech.modules.protocol.service.PtlNonCarProductSchemeService;
 import com.ydtech.utils.CalculateUtils;
 import com.ydtech.utils.CalculateUtils;
 import com.ydtech.utils.baidu.FileUtil;
 import com.ydtech.utils.baidu.FileUtil;
+import lombok.RequiredArgsConstructor;
 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.Value;
 import org.springframework.beans.factory.annotation.Value;
@@ -59,6 +61,7 @@ import static com.ydtech.modules.order.constants.OrderCacheConstant.VIN_SEARCH_K
 
 
 @Service
 @Service
 @Slf4j
 @Slf4j
+@RequiredArgsConstructor
 public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
     private final InsOrdersService insOrdersService;
     private final InsOrdersService insOrdersService;
@@ -69,7 +72,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
     private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
     private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
 
 
-
     private final ZhongmeiRequestComponents zhongmeiRequestComponents;
     private final ZhongmeiRequestComponents zhongmeiRequestComponents;
 
 
     private final PtlAgreementAttributionService ptlAgreementAttributionService;
     private final PtlAgreementAttributionService ptlAgreementAttributionService;
@@ -88,6 +90,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
     private final StringRedisTemplate redisTemplate;
     private final StringRedisTemplate redisTemplate;
 
 
+
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
     @Value("${upload.file.path}")
     @Value("${upload.file.path}")
     private String uploadFilePath;
     private String uploadFilePath;
 
 
@@ -97,25 +102,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     @Value("${api.url}")
     @Value("${api.url}")
     private String apiUrl;
     private String apiUrl;
 
 
-    public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService,
-                                       ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents,
-                                       ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService,
-                                       FeeRuleSchemeService feeRuleSchemeService, InsFeeOrderService insFeeOrderService, ZhongmeiRepeatInsuranceComponents zhongmeiRepeatInsuranceComponents,
-                                       PtlAgreementNonCarProductCostsService ptlAgreementNonCarProductCostsService, PtlNonCarProductSchemeService ptlNonCarProductSchemeService, StringRedisTemplate redisTemplate) {
-        this.insOrdersService = insOrdersService;
-        this.insAreaCompanyService = insAreaCompanyService;
-        this.insTaskImagesService = insTaskImagesService;
-        this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
-        this.zhongmeiRequestComponents = zhongmeiRequestComponents;
-        this.configureParametersComponents = configureParametersComponents;
-        this.ptlAgreementAttributionService = ptlAgreementAttributionService;
-        this.feeRuleSchemeService = feeRuleSchemeService;
-        this.insFeeOrderService = insFeeOrderService;
-        this.zhongmeiRepeatInsuranceComponents = zhongmeiRepeatInsuranceComponents;
-        this.ptlAgreementNonCarProductCostsService = ptlAgreementNonCarProductCostsService;
-        this.ptlNonCarProductSchemeService = ptlNonCarProductSchemeService;
-        this.redisTemplate = redisTemplate;
-    }
 
 
     private void modelInquiry(String modelName, List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS) {
     private void modelInquiry(String modelName, List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS) {
         if (!simpleStadarCarDTOS.isEmpty()) {
         if (!simpleStadarCarDTOS.isEmpty()) {
@@ -124,8 +110,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
         map.put("modelName", modelName);
         map.put("modelName", modelName);
-        Response<List<ZmCarModel>> model = zhongmeiRequestComponents.modelQuery(map, new ParameterizedTypeReference<Response<List<ZmCarModel>>>() {
-        });
+        Response<List<ZmCarModel>> model = zhongmeiRequestComponents.modelQuery(map,
+                new ParameterizedTypeReference<Response<List<ZmCarModel>>>() {
+                });
         List<ZmCarModel> data = model.getData();
         List<ZmCarModel> data = model.getData();
         if (data.isEmpty()) {
         if (data.isEmpty()) {
             throw new SystemException("未查到你想要的车型");
             throw new SystemException("未查到你想要的车型");
@@ -151,7 +138,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         }
         }
         ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
         ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
         modelsQueryResponse.setModelName(modelName);
         modelsQueryResponse.setModelName(modelName);
-//        List<ModelsQueryResponse.SimpleStadarCarDTO> car = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
+//        List<ModelsQueryResponse.SimpleStadarCarDTO> car = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse,
+//        ModelsQueryResponse.class);
         List<ModelsQueryResponse.SimpleStadarCarDTO> car = new ArrayList<>();
         List<ModelsQueryResponse.SimpleStadarCarDTO> car = new ArrayList<>();
         modelInquiry(modelName, car);
         modelInquiry(modelName, car);
 
 
@@ -170,7 +158,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         // 账号信息
         // 账号信息
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         // 通过 协议id获取配置实体
         // 通过 协议id获取配置实体
-        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, ptlAgreementAttribution);
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                ptlAgreementAttribution);
 
 
         BaseRequestHead baseRequestHead = new BaseRequestHead(zmConfigureParameters);
         BaseRequestHead baseRequestHead = new BaseRequestHead(zmConfigureParameters);
 
 
@@ -180,7 +169,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         modelsQueryResponse.setModelName(carInfo.getModelcname());
         modelsQueryResponse.setModelName(carInfo.getModelcname());
         modelsQueryResponse.setBrand(carInfo.getBrandName());
         modelsQueryResponse.setBrand(carInfo.getBrandName());
         modelsQueryResponse.setHead(baseRequestHead);
         modelsQueryResponse.setHead(baseRequestHead);
-        List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
+        List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse,
+                ModelsQueryResponse.class);
 
 
         // 2.1 使用爬虫接口调用车型
         // 2.1 使用爬虫接口调用车型
         modelInquiry(carInfo.getModelcname(), simpleStadarCarDTOS);
         modelInquiry(carInfo.getModelcname(), simpleStadarCarDTOS);
@@ -195,13 +185,15 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             simpleStadarCarDTO.setApprovedPassengersCapacity(seatCount);
             simpleStadarCarDTO.setApprovedPassengersCapacity(seatCount);
         }
         }
         // 3 组装参数
         // 3 组装参数
-        QuotedPriceRequest quotedPriceRequest = new QuotedPriceRequest(quoteInfo, simpleStadarCarDTO, zmQuoteVo.getAccidentalDrivingVo(), zmConfigureParameters);
+        QuotedPriceRequest quotedPriceRequest = new QuotedPriceRequest(quoteInfo, simpleStadarCarDTO, zmQuoteVo.getAccidentalDrivingVo(),
+                zmConfigureParameters);
         quotedPriceRequest.setHead(baseRequestHead);
         quotedPriceRequest.setHead(baseRequestHead);
 
 
         QuotedPriceResponse quotedPriceResponse = zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
         QuotedPriceResponse quotedPriceResponse = zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
         if ("-1".equals(quotedPriceResponse.getHead().getReturnCode())) {
         if ("-1".equals(quotedPriceResponse.getHead().getReturnCode())) {
             if (StringUtils.isNotEmpty(quotedPriceResponse.getHead().getReturnMessage()) && quotedPriceResponse.getHead().getReturnMessage().contains("商业险重复投保") && quotedPriceResponse.getHead().getReturnMessage().contains("重复投保的本公司的保单信息")) {
             if (StringUtils.isNotEmpty(quotedPriceResponse.getHead().getReturnMessage()) && quotedPriceResponse.getHead().getReturnMessage().contains("商业险重复投保") && quotedPriceResponse.getHead().getReturnMessage().contains("重复投保的本公司的保单信息")) {
-                quotedPriceResponse = zhongmeiRepeatInsuranceComponents.dealRepeatDateFormError(quotedPriceRequest, quotedPriceResponse, quoteInfo);
+                quotedPriceResponse = zhongmeiRepeatInsuranceComponents.dealRepeatDateFormError(quotedPriceRequest, quotedPriceResponse,
+                        quoteInfo);
             }
             }
         }
         }
         QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
         QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
@@ -217,7 +209,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
             quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
         }
         }
 
 
-        return responseOrder(quotedPriceResponse, quoteRespVo, ptlAgreementAttribution,quoteInfo);
+        return responseOrder(quotedPriceResponse, quoteRespVo, ptlAgreementAttribution, quoteInfo);
     }
     }
 
 
 
 
@@ -225,13 +217,15 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     public HttpResult<Object> audit(String companyId) {
     public HttpResult<Object> audit(String companyId) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
         // 1. 协议id获取配置实体
         // 1. 协议id获取配置实体
-        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, insAreaCompany.getAgreementId());
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                insAreaCompany.getAgreementId());
 
 
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         JSONObject ownerinfo = insOrders.getApplyinfo();
         JSONObject ownerinfo = insOrders.getApplyinfo();
         CustomerInfoVo customerInfoVo = ownerinfo.toJavaObject(CustomerInfoVo.class);
         CustomerInfoVo customerInfoVo = ownerinfo.toJavaObject(CustomerInfoVo.class);
         // 2. 提交核保
         // 2. 提交核保
-        SubmitResponse response = submitForUnderwriting(insAreaCompany.getId(), insOrders.getFrameno(), customerInfoVo, zmConfigureParameters);
+        SubmitResponse response = submitForUnderwriting(insAreaCompany.getId(), insOrders.getFrameno(), customerInfoVo,
+                zmConfigureParameters);
         // 3. 人工核保
         // 3. 人工核保
         if (SubmitStatus.S_3.getCode().equals(response.getSubmitStatus())) {
         if (SubmitStatus.S_3.getCode().equals(response.getSubmitStatus())) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
@@ -254,19 +248,24 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     public HttpResult<Object> submitImage(String companyId) {
     public HttpResult<Object> submitImage(String companyId) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
         // 1. 协议id获取配置实体
         // 1. 协议id获取配置实体
-        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, insAreaCompany.getAgreementId());
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                insAreaCompany.getAgreementId());
 
 
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         // 2. 投保单号(总)
         // 2. 投保单号(总)
         String insOrderNo = insAreaCompany.getId();
         String insOrderNo = insAreaCompany.getId();
 
 
-        List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno());
+        List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno(), insAreaCompany.getId());
+
         if (insTaskImagesBase64s.isEmpty()) {
         if (insTaskImagesBase64s.isEmpty()) {
-            throw new SystemException("请检查影像是否上传了");
+            return HttpResult.ok("上传文件成功");
         }
         }
+
         UploadImageRequest request = new UploadImageRequest(insTaskImagesBase64s, insOrderNo);
         UploadImageRequest request = new UploadImageRequest(insTaskImagesBase64s, insOrderNo);
         request.setHead(new BaseRequestHead(zmConfigureParameters));
         request.setHead(new BaseRequestHead(zmConfigureParameters));
         zhongmeiRequestApiComponents.uploadImage(request, UploadImageResponse.class);
         zhongmeiRequestApiComponents.uploadImage(request, UploadImageResponse.class);
+        // 将上传的数据存入缓存
+        insImagesUploadCacheComponents.setUploadImageCache(companyId, insTaskImagesBase64s);
         return HttpResult.ok("上传文件成功");
         return HttpResult.ok("上传文件成功");
     }
     }
 
 
@@ -321,7 +320,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
 
 
         // 1. 协议id获取配置实体
         // 1. 协议id获取配置实体
-        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, insAreaCompany.getAgreementId());
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                insAreaCompany.getAgreementId());
 
 
         if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) {
         if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) {
             return HttpResult.ok(InsOrderStatusEnum.ACCEPT_INSURANCE.getDesc());
             return HttpResult.ok(InsOrderStatusEnum.ACCEPT_INSURANCE.getDesc());
@@ -354,7 +354,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     public HttpResult<List<String>> getPolicyPrint(PolicyPrintVo policyPrintVo) {
     public HttpResult<List<String>> getPolicyPrint(PolicyPrintVo policyPrintVo) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(policyPrintVo.getCompanyId());
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(policyPrintVo.getCompanyId());
         // 1. 协议id获取配置实体
         // 1. 协议id获取配置实体
-        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, insAreaCompany.getAgreementId());
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                insAreaCompany.getAgreementId());
         InsOrders order = insOrdersService.getById(insAreaCompany.getOrderno());
         InsOrders order = insOrdersService.getById(insAreaCompany.getOrderno());
         String licensePlate = order.getLicenseno();
         String licensePlate = order.getLicenseno();
         String policyNo;
         String policyNo;
@@ -371,12 +372,13 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         // 2. 组装请求体
         // 2. 组装请求体
         InsurancePolicyPrintRequest request = new InsurancePolicyPrintRequest();
         InsurancePolicyPrintRequest request = new InsurancePolicyPrintRequest();
         //获取能源种类
         //获取能源种类
-        CarInfoVo carInfoVo=JSON.toJavaObject(order.getCarinfo(), CarInfoVo.class);
+        CarInfoVo carInfoVo = JSON.toJavaObject(order.getCarinfo(), CarInfoVo.class);
         request.setRiskCode(InsuranceTypeCorrespondence.getZhongMei_RISK().get(carInfoVo.getEnergyType()).get(riskCode));
         request.setRiskCode(InsuranceTypeCorrespondence.getZhongMei_RISK().get(carInfoVo.getEnergyType()).get(riskCode));
         request.setPolicyNo(policyNo);
         request.setPolicyNo(policyNo);
         request.setDocumentType(code);
         request.setDocumentType(code);
         request.setHead(new BaseRequestHead(zmConfigureParameters));
         request.setHead(new BaseRequestHead(zmConfigureParameters));
-        InsurancePolicyPrintResponse response = zhongmeiRequestApiComponents.insurancePolicyPrint(request, InsurancePolicyPrintResponse.class);
+        InsurancePolicyPrintResponse response = zhongmeiRequestApiComponents.insurancePolicyPrint(request,
+                InsurancePolicyPrintResponse.class);
         if ("1".equals(response.getStatusCode())) {
         if ("1".equals(response.getStatusCode())) {
             List<String> urlList = response.getDownloadUrl();
             List<String> urlList = response.getDownloadUrl();
 
 
@@ -415,11 +417,13 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
      * @param zmConfigureParameters 中煤配置参数
      * @param zmConfigureParameters 中煤配置参数
      * @return 核保请求参数
      * @return 核保请求参数
      */
      */
-    public SubmitResponse submitForUnderwriting(String orderNo, String frameNo, CustomerInfoVo customerInfoVo, ZmConfigureParameters zmConfigureParameters) {
+    public SubmitResponse submitForUnderwriting(String orderNo, String frameNo, CustomerInfoVo customerInfoVo,
+                                                ZmConfigureParameters zmConfigureParameters) {
         SubmitRequest submitRequest = new SubmitRequest();
         SubmitRequest submitRequest = new SubmitRequest();
         submitRequest.setBusinessNo(orderNo);
         submitRequest.setBusinessNo(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(),
                 // 市
                 // 市
@@ -470,7 +474,8 @@ 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.getZmConnectInsuranceType()[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());
@@ -510,14 +515,15 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         return quoteRespVo;
         return quoteRespVo;
     }
     }
 
 
-    public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution,BaseQuoteInfoVo quoteInfo) {
+    public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo,
+                                                 PtlAgreementAttribution ptlAgreementAttribution, BaseQuoteInfoVo quoteInfo) {
         //保存订单信息
         //保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         insAreaCompany.setId(quotedPriceResponse.getBusinessNo());
         insAreaCompany.setId(quotedPriceResponse.getBusinessNo());
         insAreaCompany.setInsOrderNo(quotedPriceResponse.getBusinessNo());
         insAreaCompany.setInsOrderNo(quotedPriceResponse.getBusinessNo());
         // 车船税
         // 车船税
-        double prePayTax=quotedPriceResponse.getTaxinfo()!=null?quotedPriceResponse.getTaxinfo().getPrePayTax():0;
-        double delayPayTax=quotedPriceResponse.getTaxinfo()!=null?quotedPriceResponse.getTaxinfo().getDelayPayTax():0;
+        double prePayTax = quotedPriceResponse.getTaxinfo() != null ? quotedPriceResponse.getTaxinfo().getPrePayTax() : 0;
+        double delayPayTax = quotedPriceResponse.getTaxinfo() != null ? quotedPriceResponse.getTaxinfo().getDelayPayTax() : 0;
         TaxArrears taxArrears = new TaxArrears("往年欠税", prePayTax, delayPayTax);
         TaxArrears taxArrears = new TaxArrears("往年欠税", prePayTax, delayPayTax);
         List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
         List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
         insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
         insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
@@ -534,7 +540,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     public HttpResult<Object> auditStatusQuery(String companyId) {
     public HttpResult<Object> auditStatusQuery(String companyId) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(companyId);
         // 1. 协议id获取配置实体
         // 1. 协议id获取配置实体
-        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, insAreaCompany.getAgreementId());
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                insAreaCompany.getAgreementId());
 
 
         if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
         if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
             return HttpResult.ok(InsOrderStatusEnum.WAIT_PAY.getDesc());
             return HttpResult.ok(InsOrderStatusEnum.WAIT_PAY.getDesc());
@@ -545,7 +552,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         submitStatusQueryRequest.setProposalNo(insAreaCompany.getInsOrderNo());
         submitStatusQueryRequest.setProposalNo(insAreaCompany.getInsOrderNo());
         submitStatusQueryRequest.setHead(new BaseRequestHead(zmConfigureParameters));
         submitStatusQueryRequest.setHead(new BaseRequestHead(zmConfigureParameters));
 
 
-        SubmitStatusQueryResponse submitStatusQueryResponse = zhongmeiRequestApiComponents.submitStatus(submitStatusQueryRequest, SubmitStatusQueryResponse.class);
+        SubmitStatusQueryResponse submitStatusQueryResponse = zhongmeiRequestApiComponents.submitStatus(submitStatusQueryRequest,
+                SubmitStatusQueryResponse.class);
         String underWriteInd = submitStatusQueryResponse.getUnderWriteInd();
         String underWriteInd = submitStatusQueryResponse.getUnderWriteInd();
 
 
         // 3. 通过返回核保状态修改状态
         // 3. 通过返回核保状态修改状态
@@ -566,14 +574,16 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     @Override
     @Override
     public HttpResult<Object> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo) {
     public HttpResult<Object> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo) {
         // 1. 协议id获取配置实体
         // 1. 协议id获取配置实体
-        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, accidentalDrivingVo.getAgreementId());
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                accidentalDrivingVo.getAgreementId());
 
 
         // 2. 组装请求体
         // 2. 组装请求体
         RideAccidentQueryRequest rideAccidentQueryRequest = new RideAccidentQueryRequest(zmConfigureParameters);
         RideAccidentQueryRequest rideAccidentQueryRequest = new RideAccidentQueryRequest(zmConfigureParameters);
         rideAccidentQueryRequest.setSeats(accidentalDrivingVo.getSeatNum());
         rideAccidentQueryRequest.setSeats(accidentalDrivingVo.getSeatNum());
         rideAccidentQueryRequest.setHead(new BaseRequestHead(zmConfigureParameters));
         rideAccidentQueryRequest.setHead(new BaseRequestHead(zmConfigureParameters));
 
 
-        RideAccidentQueryResponse rideAccidentQueryResponse = zhongmeiRequestApiComponents.rideAccidentQuery(rideAccidentQueryRequest, RideAccidentQueryResponse.class);
+        RideAccidentQueryResponse rideAccidentQueryResponse = zhongmeiRequestApiComponents.rideAccidentQuery(rideAccidentQueryRequest,
+                RideAccidentQueryResponse.class);
 
 
         return HttpResult.ok("");
         return HttpResult.ok("");
     }
     }
@@ -587,13 +597,15 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     public HttpResult<List<GeneralNonCarProductResVo>> getDrivingInsurance(GeneralNonCarProductReqVo reqVo) {
     public HttpResult<List<GeneralNonCarProductResVo>> getDrivingInsurance(GeneralNonCarProductReqVo reqVo) {
         List<GeneralNonCarProductResVo> resultList = new ArrayList<>();
         List<GeneralNonCarProductResVo> resultList = new ArrayList<>();
         if (StringUtils.isNotEmpty(reqVo.getAgreementId()) && StringUtils.isNotEmpty(reqVo.getSeatNum())) {
         if (StringUtils.isNotEmpty(reqVo.getAgreementId()) && StringUtils.isNotEmpty(reqVo.getSeatNum())) {
-            List<PtlAgreementNonCarProductCosts> productList = ptlAgreementNonCarProductCostsService.getByAgreementId(reqVo.getAgreementId());
+            List<PtlAgreementNonCarProductCosts> productList =
+                    ptlAgreementNonCarProductCostsService.getByAgreementId(reqVo.getAgreementId());
             if (productList != null && productList.size() > 0) {
             if (productList != null && productList.size() > 0) {
                 for (PtlAgreementNonCarProductCosts tempProductDto : productList) {
                 for (PtlAgreementNonCarProductCosts tempProductDto : productList) {
                     GeneralNonCarProductResVo tempGeneralNonCarProductVo = new GeneralNonCarProductResVo();
                     GeneralNonCarProductResVo tempGeneralNonCarProductVo = new GeneralNonCarProductResVo();
                     tempGeneralNonCarProductVo.setProductCode(tempProductDto.getProductId());
                     tempGeneralNonCarProductVo.setProductCode(tempProductDto.getProductId());
                     tempGeneralNonCarProductVo.setProductName(tempProductDto.getProductName());
                     tempGeneralNonCarProductVo.setProductName(tempProductDto.getProductName());
-                    List<PtlNonCarProductSchemeVo> schemeList = ptlNonCarProductSchemeService.findAllProductSchemeInfo(tempProductDto.getProductId());
+                    List<PtlNonCarProductSchemeVo> schemeList =
+                            ptlNonCarProductSchemeService.findAllProductSchemeInfo(tempProductDto.getProductId());
                     //处理保额信息
                     //处理保额信息
                     for (PtlNonCarProductSchemeVo schemeVo : schemeList) {
                     for (PtlNonCarProductSchemeVo schemeVo : schemeList) {
                         double sumAmount = 0.0;
                         double sumAmount = 0.0;
@@ -602,7 +614,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                             if ("1".equals(detailVo.getCountType())) {
                             if ("1".equals(detailVo.getCountType())) {
                                 sumAmount = sumAmount + Double.parseDouble(detailVo.getUnitAmount());
                                 sumAmount = sumAmount + Double.parseDouble(detailVo.getUnitAmount());
                             } else if ("2".equals(detailVo.getCountType())) {
                             } else if ("2".equals(detailVo.getCountType())) {
-                                sumAmount = sumAmount + (Double.parseDouble(detailVo.getUnitAmount()) * Double.parseDouble(reqVo.getSeatNum()));
+                                sumAmount =
+                                        sumAmount + (Double.parseDouble(detailVo.getUnitAmount()) * Double.parseDouble(reqVo.getSeatNum()));
                             }
                             }
                         }
                         }
                         schemeVo.setUnitAmount(String.valueOf(sumAmount));
                         schemeVo.setUnitAmount(String.valueOf(sumAmount));

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

@@ -69,7 +69,6 @@ public class ZhongMeiOrderServiceImpl implements ZhongMeiOrderService {
     private final FeeRuleSchemeService feeRuleSchemeService;
     private final FeeRuleSchemeService feeRuleSchemeService;
 
 
 
 
-
     public ZhongMeiOrderServiceImpl(InsAreaCompanyService insAreaCompanyService, ZhongmeiRequestComponents zhongmeiRequestComponents, InsOrdersService insOrdersService, InsTaskImageService insTaskImageService, EsmInsAttributionService esmInsAttributionService, SysUserService sysUserService, EsmInsCompanyService esmInsCompanyService, FeeRuleSchemeService feeRuleSchemeService) {
     public ZhongMeiOrderServiceImpl(InsAreaCompanyService insAreaCompanyService, ZhongmeiRequestComponents zhongmeiRequestComponents, InsOrdersService insOrdersService, InsTaskImageService insTaskImageService, EsmInsAttributionService esmInsAttributionService, SysUserService sysUserService, EsmInsCompanyService esmInsCompanyService, FeeRuleSchemeService feeRuleSchemeService) {
         this.insAreaCompanyService = insAreaCompanyService;
         this.insAreaCompanyService = insAreaCompanyService;
         this.zhongmeiRequestComponents = zhongmeiRequestComponents;
         this.zhongmeiRequestComponents = zhongmeiRequestComponents;

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

@@ -11,6 +11,7 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 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.components.zijin.ZijinRequestApiComponents;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
@@ -73,6 +74,9 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
 
 
     private final FeeRuleSchemeService feeRuleSchemeService;
     private final FeeRuleSchemeService feeRuleSchemeService;
 
 
+    private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
+
+
     @Value("${upload.file.path}")
     @Value("${upload.file.path}")
     private String uploadFilePath;
     private String uploadFilePath;
 
 
@@ -256,9 +260,8 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
 
 
         // 1 通过 协议id获取配置实体
         // 1 通过 协议id获取配置实体
         HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
         HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
-
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
-        List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno());
+        List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno(), insAreaCompany.getId());
         if (insTaskImagesBase64s.isEmpty()) {
         if (insTaskImagesBase64s.isEmpty()) {
             throw new SystemException("请检查影像是否上传了");
             throw new SystemException("请检查影像是否上传了");
         }
         }
@@ -283,6 +286,8 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
                 insAreaCompany.getInsOrderNo());
                 insAreaCompany.getInsOrderNo());
         BaseResponse baseResponse = zijinRequestApiComponents.uploadImageInfoList(uploadImageInfoListRequest,
         BaseResponse baseResponse = zijinRequestApiComponents.uploadImageInfoList(uploadImageInfoListRequest,
                 httpHeaders);
                 httpHeaders);
+        // 将上传的数据存入缓存
+        insImagesUploadCacheComponents.setUploadImageCache(companyId, insTaskImagesBase64s);
 
 
         return HttpResult.ok(baseResponse.getRtnMsg());
         return HttpResult.ok(baseResponse.getRtnMsg());
     }
     }