فهرست منبع

1.添加事中资料命中的逻辑
2.添加补传资料的接口
3.添加补传资料的类型 (上年商业保单、验车资料、机动车辆登记证书)

hxl13994548489 2 سال پیش
والد
کامیت
2e7f638f03

+ 20 - 9
src/main/java/com/ydtech/constants/InsuranceImageEnum.java

@@ -43,15 +43,26 @@ public enum InsuranceImageEnum {
     D04("D04", "被保人身份证反面"),
     Y04("Y04", "被保人营业执照"),
 
-    LZ_01("LZ_01","离职表");
-
-
-//    C0500("C0500", "验车照(车架)"),
-//    C0501("C0501", "验车照(后左)"),
-//    C0502("C0502", "验车照(后右)"),
-//    C0503("C0503", "验车照(前右)"),
-//    C0504("C0504", "验车照(前左)"),
-//    C0505("C0505", "验车照(人车合影)");
+    LZ_01("LZ_01","离职表"),
+
+    //  add by 2024-08-16  添加平安上传资料
+    //平安添加验车照上传类型
+    C0500("C0500", "验车照(车架)"),
+    C0501("C0501", "验车照(后左)"),
+    C0502("C0502", "验车照(后右)"),
+    C0503("C0503", "验车照(前右)"),
+    C0504("C0504", "验车照(前左)"),
+    C0505("C0505", "验车照(人车合影)"),
+    C0506("C0506", "验车照(正前)"),
+    C0507("C0507", "验车照(正后)"),
+    C0508("C0508", "验车照(地标合影)"),
+    C0509("C0509", "验车照(工作台)"),
+    C0510("C0510", "验车照(天窗)"),
+
+    //平安上传旧车登记证书
+    TAR05("TAR05", "机动车辆登记证书"),
+    // 平安上年保单
+    INSURANCE_POLICY("LAST_INSURANCE_POLICY", "上年商业险保单");
 
 
     private final String code;

+ 12 - 1
src/main/java/com/ydtech/modules/order/controller/PingAnOrderApiController.java

@@ -111,7 +111,18 @@ public class PingAnOrderApiController {
         return this.pingAnOrderApiService.auditStatusQuery(companyId);
     }
 
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/23 18:46
+     *  @Description: 事后资料补传
+     */
+    //@AuditVerification("核保")
+    @PostMapping(value = "/additionalInformation")
+    @ApiOperation(value = "事后资料补传")
+    public HttpResult<Object> additionalInformation(@RequestBody AdditionalInformation additionalInformation) throws Exception {
+        return this.pingAnOrderApiService.additionalInformation(additionalInformation);
+    }
 
     /**
      *  @version

+ 8 - 1
src/main/java/com/ydtech/modules/order/dao/InsTaskImagesMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
 import com.ydtech.modules.order.entity.po.InsTaskImages;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -18,7 +19,13 @@ public interface InsTaskImagesMapper extends BaseMapper<InsTaskImages> {
     List<InsTaskImagesDto> getByQuoteNoInsTaskImagesDtoList(String quoteNo);
 
     List<InsUploadImagesDto> getByOrderNoInsUploadImagesDtoList(String orderNo);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/16 20:00
+     *  @Description: 通过ids查询数据
+     */
+    List<InsUploadImagesDto> findByIds(@Param("list") List<String> imageList);
 }
 
 

+ 19 - 0
src/main/java/com/ydtech/modules/order/dao/PinganShUploafileMapper.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.po.PinganShUploafile;
+
+
+/**
+* @author Administrator
+* @description 针对表【pingan_sh_uploafile(平安事后文件上传资料)】的数据库操作Mapper
+* @createDate 2024-08-16 18:22:00
+* @Entity generator.domain.PinganShUploafile
+*/
+public interface PinganShUploafileMapper extends BaseMapper<PinganShUploafile> {
+
+}
+
+
+
+

+ 22 - 2
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/PingAnDocumentClassEnum.java

@@ -31,6 +31,7 @@ public enum PingAnDocumentClassEnum {
 
     C01("C01", "行驶证正面", "T04", "TAR04"),
     D01("D01", "行驶证反面", "T04", "TAR04"),
+    TAR05("TAR05", "机动车辆登记证书", "T04", "TAR05"),
 
     C02("C02", "车主身份证正面", "T03", "001"),
     D02("D02", "车主身份证反面", "T03", "001"),
@@ -38,8 +39,27 @@ public enum PingAnDocumentClassEnum {
     C03("C03", "投保人身份证正面", "T01", "001"),
     D03("D03", "投保人身份证反面", "T01", "001"),
 
-    C04("C04", "被保人身份证正面", "T02", "001"),
-    D04("D04", "被保人身份证反面", "T02", "001");
+    C04("C04", "被保人身份证正面", "T09", "001"),
+    D04("D04", "被保人身份证反面", "T09", "001"),
+
+    C0500("C0500", "验车照(车架)", "T09", "OT99"),
+    C0501("C0501", "验车照(后左)", "T09", "OT99"),
+
+    C0502("C0502", "验车照(后右)", "T09", "OT99"),
+    C0503("C0503", "验车照(前右)", "T09", "OT99"),
+
+    C0504("C0504", "验车照(前左)", "T09", "OT99"),
+    C0506("C0506", "验车照(正前)", "T09", "OT99"),
+
+    C0507("C0507", "验车照(正后)", "T09", "OT99"),
+    C0505("C0505", "验车照(人车合影)", "T09", "OT99"),
+
+    C0508("C0508", "验车照(地标合影)", "T09", "OT99"),
+    C0509("C0509", "验车照(工作台)", "T09", "OT99"),
+
+    C0510("C0510", "验车照(天窗)", "T09", "OT99"),
+
+    INSURANCE_POLICY("LAST_INSURANCE_POLICY", "上年商业险保单", "T09", "OT01");
 
 
     private final String code;

+ 15 - 15
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/SubmitApplyRequest.java

@@ -343,6 +343,19 @@ public class SubmitApplyRequest extends PingAnBaseRequest {
      * 文件集合
      */
     private List<DocListDTO> docList;
+    /***
+     * 车辆驾驶类型
+     * String类型 1-人工驾驶, 2-自动化驾驶
+     * o
+     */
+    private String carDriverType;
+    /***
+     * 发展阶段
+     * String类型 1-道路测试, 2-示范应用, 3-示范运营
+     * o
+     */
+    private String developmentStage;
+
     //todo
     public SubmitApplyRequest(PingAnConfigureParameters parameters, String flowid, String isApply, InsOrders insOrders,List<DocListDTO> docList,List<BizSpecialPromiseListDTO> bizSpecialPromiseList,List<BizSpecialPromiseListDTO> forceSpecialPromiseList) {
 
@@ -766,23 +779,12 @@ public class SubmitApplyRequest extends PingAnBaseRequest {
          * c
          */
         private String certificateEndDate;
-        /***
-         * 车辆驾驶类型
-         * String类型 1-人工驾驶, 2-自动化驾驶
-         * o
-         */
-        private String carDriverType;
-        /***
-         * 发展阶段
-         * String类型 1-道路测试, 2-示范应用, 3-示范运营
-         * o
-         */
-        private String developmentStage;
+
 
         public DocListDTO() {
         }
 
-        public DocListDTO(String docId, String documentClass, String documentType, String documentName, String documentFormat, String documentSize, String certificateBeginDate, String certificateEndDate, String carDriverType, String developmentStage) {
+        public DocListDTO(String docId, String documentClass, String documentType, String documentName, String documentFormat, String documentSize, String certificateBeginDate, String certificateEndDate) {
             this.docId = docId;
             this.documentClass = documentClass;
             this.documentType = documentType;
@@ -791,8 +793,6 @@ public class SubmitApplyRequest extends PingAnBaseRequest {
             this.documentSize = documentSize;
             this.certificateBeginDate = certificateBeginDate;
             this.certificateEndDate = certificateEndDate;
-            this.carDriverType = carDriverType;
-            this.developmentStage = developmentStage;
         }
 
         public DocListDTO(String docId, String documentClass, String documentType, String documentName, String documentFormat) {

+ 149 - 0
src/main/java/com/ydtech/modules/order/entity/po/PinganShUploafile.java

@@ -0,0 +1,149 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 平安事后文件上传资料
+ * @TableName pingan_sh_uploafile
+ */
+@TableName(value ="pingan_sh_uploafile")
+@Data
+public class PinganShUploafile implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 子订单id
+     */
+    private String subOrderNo;
+
+    /**
+     * 文件大类编码
+     */
+    private String documentClass;
+
+    /**
+     * 文件大类名称
+     */
+    private String documentClassName;
+
+    /**
+     * 是否以上之一均可【1-是,0-否】
+ 1表示当前大类,只需要上传其中一种小类 0表示全部上传
+     */
+    private String isAnyOne;
+
+    /**
+     * 文件小类编码
+     */
+    private String documentType;
+
+    /**
+     * 文件小类名称
+     */
+    private String documentTypeName;
+
+    /**
+     * 是否需要事中审核【1-需要,0-不需要】
+     */
+    private String isNeedDuringAudit;
+
+    /**
+     * 是否上传
+     */
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        PinganShUploafile other = (PinganShUploafile) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getSubOrderNo() == null ? other.getSubOrderNo() == null : this.getSubOrderNo().equals(other.getSubOrderNo()))
+            && (this.getDocumentClass() == null ? other.getDocumentClass() == null : this.getDocumentClass().equals(other.getDocumentClass()))
+            && (this.getDocumentClassName() == null ? other.getDocumentClassName() == null : this.getDocumentClassName().equals(other.getDocumentClassName()))
+            && (this.getIsAnyOne() == null ? other.getIsAnyOne() == null : this.getIsAnyOne().equals(other.getIsAnyOne()))
+            && (this.getDocumentType() == null ? other.getDocumentType() == null : this.getDocumentType().equals(other.getDocumentType()))
+            && (this.getDocumentTypeName() == null ? other.getDocumentTypeName() == null : this.getDocumentTypeName().equals(other.getDocumentTypeName()))
+            && (this.getIsNeedDuringAudit() == null ? other.getIsNeedDuringAudit() == null : this.getIsNeedDuringAudit().equals(other.getIsNeedDuringAudit()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getSubOrderNo() == null) ? 0 : getSubOrderNo().hashCode());
+        result = prime * result + ((getDocumentClass() == null) ? 0 : getDocumentClass().hashCode());
+        result = prime * result + ((getDocumentClassName() == null) ? 0 : getDocumentClassName().hashCode());
+        result = prime * result + ((getIsAnyOne() == null) ? 0 : getIsAnyOne().hashCode());
+        result = prime * result + ((getDocumentType() == null) ? 0 : getDocumentType().hashCode());
+        result = prime * result + ((getDocumentTypeName() == null) ? 0 : getDocumentTypeName().hashCode());
+        result = prime * result + ((getIsNeedDuringAudit() == null) ? 0 : getIsNeedDuringAudit().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", subOrderNo=").append(subOrderNo);
+        sb.append(", documentClass=").append(documentClass);
+        sb.append(", documentClassName=").append(documentClassName);
+        sb.append(", isAnyOne=").append(isAnyOne);
+        sb.append(", documentType=").append(documentType);
+        sb.append(", documentTypeName=").append(documentTypeName);
+        sb.append(", isNeedDuringAudit=").append(isNeedDuringAudit);
+        sb.append(", status=").append(status);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public PinganShUploafile() {
+    }
+
+    public PinganShUploafile(String subOrderNo, String documentClass, String documentClassName, String isAnyOne, String documentType, String documentTypeName, String isNeedDuringAudit, String status, Date createTime) {
+        this.subOrderNo = subOrderNo;
+        this.documentClass = documentClass;
+        this.documentClassName = documentClassName;
+        this.isAnyOne = isAnyOne;
+        this.documentType = documentType;
+        this.documentTypeName = documentTypeName;
+        this.isNeedDuringAudit = isNeedDuringAudit;
+        this.status = status;
+        this.createTime = createTime;
+    }
+}

+ 25 - 0
src/main/java/com/ydtech/modules/order/entity/vo/pingan/AdditionalInformation.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.order.entity.vo.pingan;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/8/16 19:42
+ *  @Description:  补传资料实体
+ */
+@Data
+@ApiModel(value = "补传资料实体")
+public class AdditionalInformation {
+
+    @ApiModelProperty("子订单id")
+    private String companyId;
+
+    @ApiModelProperty("影像集合id")
+    private List<String>  imageList=new ArrayList<String>();
+}

+ 8 - 0
src/main/java/com/ydtech/modules/order/service/PingAnOrderApiService.java

@@ -10,6 +10,7 @@ import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.InsDrivingIntentionInsuranceVo;
 import com.ydtech.modules.order.entity.vo.SpecialAuditVo;
 import com.ydtech.modules.order.entity.vo.bohai.ProductDetailsQueryVo;
+import com.ydtech.modules.order.entity.vo.pingan.AdditionalInformation;
 import com.ydtech.modules.order.entity.vo.pingan.PingAnQuoteVo;
 import com.ydtech.modules.order.entity.vo.pingan.RenewalConfirmVo;
 import com.ydtech.modules.order.entity.vo.pingan.StorefrontQueryVo;
@@ -262,4 +263,11 @@ public interface PingAnOrderApiService {
      *  @Description:  支付回调
      */
     HttpResult<Object> payReturn(PayReturnRequest payReturnRequest);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/16 19:45
+     *  @Description:  事后补传资料
+     */
+    HttpResult<Object> additionalInformation(AdditionalInformation additionalInformation);
 }

+ 15 - 0
src/main/java/com/ydtech/modules/order/service/PinganShUploafileService.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.po.PinganShUploafile;
+
+
+/**
+* @author Administrator
+* @description 针对表【pingan_sh_uploafile(平安事后文件上传资料)】的数据库操作Service
+* @createDate 2024-08-16 18:22:00
+*/
+public interface PinganShUploafileService extends IService<PinganShUploafile> {
+
+
+}

+ 382 - 99
src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java

@@ -37,14 +37,12 @@ import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
 import com.ydtech.modules.order.entity.po.InsTaskImages;
 import com.ydtech.modules.order.entity.po.InsUploadFiles;
+import com.ydtech.modules.order.entity.po.PinganShUploafile;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.InsDrivingIntentionInsuranceVo;
 import com.ydtech.modules.order.entity.vo.SpecialAuditVo;
 import com.ydtech.modules.order.entity.vo.bohai.ProductDetailsQueryVo;
-import com.ydtech.modules.order.entity.vo.pingan.InsDrivingIntentionInsuranceSonVo;
-import com.ydtech.modules.order.entity.vo.pingan.PingAnQuoteVo;
-import com.ydtech.modules.order.entity.vo.pingan.RenewalConfirmVo;
-import com.ydtech.modules.order.entity.vo.pingan.StorefrontQueryVo;
+import com.ydtech.modules.order.entity.vo.pingan.*;
 import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.order.utils.MD5Util;
 import com.ydtech.modules.order.utils.PingAnUpLoadUtils;
@@ -67,6 +65,8 @@ import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  *  @version  平安接口相关api
  *  @author: hxl
@@ -111,6 +111,8 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
 
     private final QrCodeGenerator  qrCodeGenerator;
 
+    private final PinganShUploafileService pinganShUploafileService;
+
     /**
      * @Description 获取财意险险种套餐列表  调用 4.4
      * @Author hxl
@@ -585,9 +587,11 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                 String fileName = file.getName();
                 String documentName = fileName.split("\\.")[0];
                 String documentFormat = fileName.split("\\.")[1];
-                boolean upLoadFileFlag = PingAnUpLoadUtils.getUpLoadFile(properties.getHost(), properties.getBucket(), properties.getAk(), properties.getSk(), file, key);
-                if(!upLoadFileFlag){
-                    throw new SystemException("上传影像文件失败");
+                if(StringUtils.isBlank(insUploadImagesDto.getPinganKey())){
+                    boolean upLoadFileFlag = PingAnUpLoadUtils.getUpLoadFile(properties.getHost(), properties.getBucket(), properties.getAk(), properties.getSk(), file, key);
+                    if(!upLoadFileFlag){
+                        throw new SystemException("上传影像文件失败");
+                    }
                 }
                 UploadFilesRequest.DocListDTO docListDTO = new UploadFilesRequest.DocListDTO(key, documentClass, documentType, documentName,documentFormat ,
                         null);
@@ -645,9 +649,9 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         //商业特约
         List<SubmitApplyRequest.BizSpecialPromiseListDTO> forceSpecialPromiseList=new ArrayList<SubmitApplyRequest.BizSpecialPromiseListDTO>();
         //UploadFilesResponse uploadFilesResponse = getUploadResponseByParam(insAreaCompany,pinganApiLog,parameters.getUserId());
-       // if (uploadFilesResponse != null & !"0".equals(uploadFilesResponse.getResultCode()) ) {
+        // if (uploadFilesResponse != null & !"0".equals(uploadFilesResponse.getResultCode()) ) {
         //    throw new SystemException(uploadFilesResponse.getResultMessage());
-       // }
+        // }
         //调用6.1 补充信息并核保
         SubmitApplyRequest submitApplyRequest = new SubmitApplyRequest(parameters,flowid, "true",insOrders,null,null,null);
         SubmitApplyResponse submitApplyResponse = null;
@@ -656,112 +660,298 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         } catch (Exception e) {
             throw new SystemException(e.getMessage());
         }
+        Map<String,Map<String,String>> docListMap=new HashMap<String,Map<String,String>>();
+        List<InsUploadImagesDto> imgList = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(insAreaCompany.getOrderno());
+        List<SubmitApplyRequest.DocListDTO> list = new ArrayList<>();
+        for (InsUploadImagesDto insUploadImagesDto : imgList) {
+            InsUploadFiles fiels = insUploadFilesService.getById(insUploadImagesDto.getImageId());
+            String key="";
+            File file =new File(fiels.getFilePath());
+            PingAnDocumentClassEnum fileEnum = PingAnDocumentClassEnum.getCode(insUploadImagesDto.getImageType());
+            String documentClass=fileEnum.getDocument();
+            String documentType=fileEnum.getDocumentType();
+            String fileName = file.getName();
+            String documentName = fileName.split("\\.")[0];
+            String documentFormat = fileName.split("\\.")[1];
+            if(StringUtils.isBlank(insUploadImagesDto.getPinganKey())){
+                key=parameters.getUserId()+"-"+new SimpleDateFormat("yyyyMMddhhmmss").format(new Date())+"-"+UUID.randomUUID();
+                boolean upLoadFileFlag = PingAnUpLoadUtils.getUpLoadFile(properties.getHost(), properties.getBucket(), properties.getAk(), properties.getSk(), file, key);
+                if(!upLoadFileFlag){
+                    throw new SystemException("上传影像文件失败");
+                }
+            }else{
+                key=insUploadImagesDto.getPinganKey();
+            }
+            if(!docListMap.containsKey(documentClass)){
+                Map<String,String> docMap =new HashMap<String,String>();
+                docMap.put(documentType,fileEnum.getDesc());
+                docListMap.put(fileEnum.getDocument(),docMap);
+            }else{
+                Map<String,String> docMap  =docListMap.get(documentClass);
+                docMap.put(documentType,fileEnum.getDesc());
+                docListMap.put(fileEnum.getDocument(),docMap);
+            }
+            SubmitApplyRequest.DocListDTO docListDTO = new SubmitApplyRequest.DocListDTO(key, documentClass, documentType, documentName,documentFormat);
+            list.add(docListDTO);
+        }
         if (submitApplyResponse != null) {
-            // 事中资料  15 时上传资料
-            if("15".equals(submitApplyResponse.getResultCode())){
-                submitApplyRequest.setDocList(null);
-                try {
-                    submitApplyResponse = pinganRequestApiComponents.submitApply(submitApplyRequest,pinganApiLog);
-                } catch (Exception e) {
-                    throw new SystemException(e.getMessage());
+            //验证上传图片信息
+            List<SubmitApplyResponse.BizMissFileDTO> bizMissFilelist = submitApplyResponse.getBizMissFilelist();
+            List<SubmitApplyResponse.BizMissFileDTO> forceMissFilelist = submitApplyResponse.getForceMissFilelist();
+
+            //商业险上传文件缺失集合
+            String msg="";
+            if(bizMissFilelist!=null && bizMissFilelist.size()>0){
+                for(SubmitApplyResponse.BizMissFileDTO  dto : bizMissFilelist){
+                    //验证文件是否上传
+                    msg+=checkDocList(docListMap,dto,"1");
+                }
+            }
+            //交强
+            if(forceMissFilelist!=null && forceMissFilelist.size()>0){
+                for(SubmitApplyResponse.BizMissFileDTO  dto : forceMissFilelist){
+                    //验证文件是否上传
+                    msg+=checkDocList(docListMap,dto,"1");
                 }
             }
+            if(StringUtils.isNotBlank(msg)){
+                throw  new  SystemException(msg);
+            }
+
+            //商业险上传文件缺失集合保存
+            List<PinganShUploafile> shDocList = getSHDocList(bizMissFilelist, forceMissFilelist, insAreaCompany.getId());
+            // 事中资料  15 时上传资料   5 为验证
+            if("15".equals(submitApplyResponse.getResultCode())  ||  "5".equals(submitApplyResponse.getResultCode()) ){
+                /**
+                 //更新为待核保状态
+                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
+                 insAreaCompanyService.updateById(insAreaCompany);
+                 //获取上传的事中资料
+                 submitApplyRequest.setDocList(!list.isEmpty() ?list:null);
+                 pinganApiLog.setId(null);
+                 try {
+                 submitApplyResponse = pinganRequestApiComponents.submitApply(submitApplyRequest,pinganApiLog);
+                 } catch (Exception e) {
+                 throw new SystemException(e.getMessage());
+                 }
+                 **/
+            }
             //核保成功
-            if("0".equals(submitApplyResponse.getResultCode())) {
-                //查询核保状态
-                String bizApplyNo = submitApplyResponse.getBizApplyNo()==null?"":submitApplyResponse.getBizApplyNo();
-                String forceApplyNo = submitApplyResponse.getForceApplyNo()==null?"":submitApplyResponse.getForceApplyNo();
+            if("0".equals(submitApplyResponse.getResultCode())  || (submitApplyResponse.getResultMessage().contains("商业险核保结果:申请投保完成!; 交强险核保结果:申请投保完成!"))) {
+                //保存事后上传资料
+                if(shDocList!=null &&  shDocList.size()>0){
+                    pinganShUploafileService.saveBatch(shDocList);
+                }
+                String bizApplyNo = submitApplyResponse.getBizApplyNo()==null?"": submitApplyResponse.getBizApplyNo();
+                String forceApplyNo = submitApplyResponse.getForceApplyNo()==null?"": submitApplyResponse.getForceApplyNo();
                 List<SubmitApplyResponse.AccidentApplyPolicyNoDTO> accidentApplyPolicyNoList = submitApplyResponse.getAccidentApplyPolicyNoList();
                 String accidentApplyNo =null;
                 if(accidentApplyPolicyNoList!=null && accidentApplyPolicyNoList.size()>0){
                     SubmitApplyResponse.AccidentApplyPolicyNoDTO accidentApplyPolicyNoDTO = accidentApplyPolicyNoList.get(0);
                     accidentApplyNo = accidentApplyPolicyNoDTO.getPolicyAppNumber();
                 }
-                List<String> list = new ArrayList<String>();
-                if (StringUtils.isNotBlank(bizApplyNo)) {
-                    list.add(bizApplyNo);
-                }
-                if (StringUtils.isNotBlank(forceApplyNo)) {
-                    list.add(forceApplyNo);
-                }
-                if (StringUtils.isNotBlank(accidentApplyNo)) {
-                    // list.add(accidentApplyNo);
-                }
-                pinganApiLog.setId(null);
-                DocumentStatusListRequest documentStatusListRequest = new DocumentStatusListRequest(list, parameters);
-                DocumentStatusListResponse documentStatusListResponse = null;
-                try {
-                    documentStatusListResponse = pinganRequestApiComponents.getDocumentStatusList(documentStatusListRequest,pinganApiLog);
-                } catch (Exception e) {
-                    throw new SystemException(e.getMessage());
+                submitApplyRequest.setDocList(!list.isEmpty() ?list:null);
+                //查询核保状态
+                return getObjectHttpResult(submitApplyResponse, pinganApiLog, parameters, insAreaCompany,forceApplyNo,bizApplyNo,accidentApplyNo);
+            }else{
+                Map<String, String> map = getNoByStr(submitApplyResponse.getResultMessage());
+                if(map!=null && map.size()>0) {
+                    return getObjectHttpResult(submitApplyResponse, pinganApiLog, parameters, insAreaCompany,map.get("jqpolicyno"),map.get("sypolicyno"),map.get("application"));
                 }
-                if (documentStatusListResponse != null && "0".equals(documentStatusListResponse.getResultCode())) {
-                    ArrayList<DocumentStatusListResponse.DocumentDTO> documentList = documentStatusListResponse.getDocumentList();
-                    if (documentList != null && documentList.size() > 0) {
-                        Boolean jqflag = false;
-                        Boolean sqflag = false;
-                        Boolean fcflag = false;
-                        String jyPlicyNo=null;
-                        //B2 为 未缴费
-                        for (DocumentStatusListResponse.DocumentDTO dto : documentList) {
-                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(bizApplyNo) && bizApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
-                                sqflag = true;
-                            }
-                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(forceApplyNo) && forceApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
-                                jqflag = true;
-                            }
-                            List<DocumentStatusListResponse.DocumentDTO.UnAutoListInfoDTO> unAutoListInfo = dto.getUnAutoListInfo();
-                            String applyNo=null;
-                            String policyNo=null;
-                            if(unAutoListInfo!=null && unAutoListInfo.size()>0){
-                                applyNo = unAutoListInfo.get(0).getApplyNo();
-                                policyNo = unAutoListInfo.get(0).getPolicyNo();
-                            }
-                            if (StringUtils.isNotBlank(accidentApplyNo) && accidentApplyNo.equals(applyNo == null ? "" : applyNo)) {
-                                fcflag = true;
-                                jyPlicyNo=policyNo;
-                            }
-                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(policyNo)) {
-                                fcflag = true;
-                            }
-                        }
-                        if (jqflag) {
-                            insAreaCompany.setJqapplyno(forceApplyNo);
-                        }
-                        if(sqflag){
-                            insAreaCompany.setSyapplyno(bizApplyNo);
-                        }
-                        if(fcflag){
-                            List<Map<String,String>> jyList =new ArrayList<Map<String,String>>();
-                            Map<String,String> map =new HashMap<String,String>();
-                            //投保单号
-                            map.put("application",accidentApplyNo);
-                            map.put("policy","");
-                            jyList.add(map);
-                            JSONArray objects = JSON.parseArray(JSON.toJSONString(jyList));
-                            insAreaCompany.setCrossInsurance(objects);
+                throw new SystemException(submitApplyResponse.getResultMessage());
+            }
+        }
+        return HttpResult.error("提交核保接口失败");
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/16 18:00
+     *  @Description:  获取事后资料上传文件
+     */
+    private List<PinganShUploafile> getSHDocList(List<SubmitApplyResponse.BizMissFileDTO> bizMissFilelist, List<SubmitApplyResponse.BizMissFileDTO> forceMissFilelist, String subOrderNo) {
+        List<PinganShUploafile>  list = new ArrayList<>();
+        if(bizMissFilelist!=null && bizMissFilelist.size()>0){
+            for(SubmitApplyResponse.BizMissFileDTO  dto:bizMissFilelist){
+                //文件大类
+                String documentClass = dto.getDocumentClass();
+                //文件大类名称
+                String documentClassName = dto.getDocumentClassName();
+                // 1. 其中1个  0 全部上传
+                String isAnyOne = dto.getIsAnyOne();
+                //子类集合
+                List<SubmitApplyResponse.BizMissFileDTO.DocTypeDTO> docTypeList = dto.getDocTypeList();
+                if(docTypeList!=null && docTypeList.size()>0) {
+                    for (SubmitApplyResponse.BizMissFileDTO.DocTypeDTO vo : docTypeList) {
+                        //验证核保时上传的资料
+                        if ("0".equals(vo.getIsNeedDuringAudit())) {
+                            PinganShUploafile  entity = new PinganShUploafile(subOrderNo, documentClass, documentClassName, isAnyOne, vo.getDocumentType(), vo.getDocumentTypeName(), vo.getIsNeedDuringAudit(), "0", new Date());
+                            list.add(entity);
                         }
-                        pinganApiLog.setId(null);
-                        //上传影像
+                    }
+                }
+            }
+        }
+        return list;
+    }
 
-                        //说明核保成功,更新大订单和小订单的状态为1  更新为已核保待缴费
-                        insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
-                        insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-                        UploadFilesResponse uploadFilesResponse = getUploadResponseByParam(insAreaCompany,pinganApiLog,parameters.getUserId());
-                        if (uploadFilesResponse != null & !"0".equals(uploadFilesResponse.getResultCode()) ) {
-                             throw new SystemException(uploadFilesResponse.getResultMessage());
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/16 16:23
+     *  @Description: 验证上传的资料
+     *  1需要核保时上传,0是事后资料通过uploadFiles接口上传
+     */
+    private String checkDocList(Map<String,Map<String,String>> map, SubmitApplyResponse.BizMissFileDTO dto,String type) {
+        //文件大类
+        String documentClass = dto.getDocumentClass();
+        //文件大类名称
+        String documentClassName = dto.getDocumentClassName();
+        // 1. 其中1个  0 全部上传
+        String isAnyOne = dto.getIsAnyOne();
+        //子类集合
+        List<SubmitApplyResponse.BizMissFileDTO.DocTypeDTO> docTypeList = dto.getDocTypeList();
+        int count =0;
+        String msg="";
+        if(docTypeList!=null && docTypeList.size()>0){
+            if(map!=null && map.size()>0){
+                Map<String, String> docMap= map.get(documentClass);
+                if(docMap==null || docMap.size()==0){
+                    msg+="(" +documentClassName +")";
+                    for(SubmitApplyResponse.BizMissFileDTO.DocTypeDTO vo : docTypeList){
+                        //验证核保时上传的资料
+                        if(type.equals(vo.getIsNeedDuringAudit())){
+                            msg+=vo.getDocumentTypeName()+"/";
+                        }
+                    }
+                }else{
+                    msg+="(" +documentClassName +")";
+                    for(SubmitApplyResponse.BizMissFileDTO.DocTypeDTO vo : docTypeList){
+                        //验证核保时上传的资料
+                        if(type.equals(vo.getIsNeedDuringAudit())){
+                            String val = docMap.get(vo.getDocumentType());
+                            msg+=vo.getDocumentTypeName()+"/";
+                            if(StringUtils.isNotBlank(val)){
+                                count++;
+                            }
                         }
-                        return HttpResult.ok("提交核保成功");
                     }
-                } else {
-                    throw new SystemException(documentStatusListResponse.getResultMessage());
                 }
             }else{
-                throw new SystemException(submitApplyResponse.getResultMessage());
+                msg+="(" +documentClassName +")";
+                for(SubmitApplyResponse.BizMissFileDTO.DocTypeDTO vo : docTypeList){
+                    //验证核保时上传的资料
+                    if(type.equals(vo.getIsNeedDuringAudit())){
+                        msg+=vo.getDocumentTypeName()+"/";
+                    }
+                }
+            }
+            if("1".equals(isAnyOne) && count==0){
+                msg+="中必须上传一个,请确认!!";
+            }
+            if("0".equals(isAnyOne) && count!=docTypeList.size()){
+                msg+="中必须全部上传,请确认!!";
             }
         }
-        return HttpResult.error("提交核保接口失败");
+        return msg;
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/16 11:47
+     *  @Description: 核保更新
+     */
+    private HttpResult<Object> getObjectHttpResult(SubmitApplyResponse submitApplyResponse, PinganApiLog pinganApiLog, PingAnConfigureParameters parameters, InsAreaCompany insAreaCompany,String  forceApplyNo,String bizApplyNo,String accidentApplyNo) {
+
+        List<String> list = new ArrayList<String>();
+        if (StringUtils.isNotBlank(bizApplyNo)) {
+            list.add(bizApplyNo);
+        }
+        if (StringUtils.isNotBlank(forceApplyNo)) {
+            list.add(forceApplyNo);
+        }
+        if (StringUtils.isNotBlank(accidentApplyNo)) {
+            // list.add(accidentApplyNo);
+        }
+        pinganApiLog.setId(null);
+        DocumentStatusListRequest documentStatusListRequest = new DocumentStatusListRequest(list, parameters);
+        DocumentStatusListResponse documentStatusListResponse = null;
+        try {
+            documentStatusListResponse = pinganRequestApiComponents.getDocumentStatusList(documentStatusListRequest, pinganApiLog);
+        } catch (Exception e) {
+            throw new SystemException(e.getMessage());
+        }
+        if (documentStatusListResponse != null && "0".equals(documentStatusListResponse.getResultCode())) {
+            ArrayList<DocumentStatusListResponse.DocumentDTO> documentList = documentStatusListResponse.getDocumentList();
+            if (documentList != null && documentList.size() > 0) {
+                Boolean jqflag = false;
+                Boolean sqflag = false;
+                Boolean fcflag = false;
+                String jyPlicyNo=null;
+                String status="";
+                //B2 为 未缴费
+                for (DocumentStatusListResponse.DocumentDTO dto : documentList) {
+                    status = dto.getStatus();
+                    if (StringUtils.isNotBlank(bizApplyNo) && bizApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
+                        sqflag = true;
+                    }
+                    if (StringUtils.isNotBlank(forceApplyNo) && forceApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
+                        jqflag = true;
+                    }
+                    List<DocumentStatusListResponse.DocumentDTO.UnAutoListInfoDTO> unAutoListInfo = dto.getUnAutoListInfo();
+                    String applyNo=null;
+                    String policyNo=null;
+                    if(unAutoListInfo!=null && unAutoListInfo.size()>0){
+                        applyNo = unAutoListInfo.get(0).getApplyNo();
+                        policyNo = unAutoListInfo.get(0).getPolicyNo();
+                    }
+                    if (StringUtils.isNotBlank(accidentApplyNo) && accidentApplyNo.equals(applyNo == null ? "" : applyNo)) {
+                        fcflag = true;
+                        jyPlicyNo=policyNo;
+                    }
+                    if (StringUtils.isNotBlank(policyNo)) {
+                        fcflag = true;
+                    }
+                }
+                if (jqflag) {
+                    insAreaCompany.setJqapplyno(forceApplyNo);
+                }
+                if(sqflag){
+                    insAreaCompany.setSyapplyno(bizApplyNo);
+                }
+                if(fcflag){
+                    List<Map<String,String>> jyList =new ArrayList<Map<String,String>>();
+                    Map<String,String> map =new HashMap<String,String>();
+                    //投保单号
+                    map.put("application",accidentApplyNo);
+                    map.put("policy","");
+                    jyList.add(map);
+                    JSONArray objects = JSON.parseArray(JSON.toJSONString(jyList));
+                    insAreaCompany.setCrossInsurance(objects);
+                }
+                pinganApiLog.setId(null);
+                //更新狀態
+                if((OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(status) ||   OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(status)) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()))){
+                    //说明核保成功,更新大订单和小订单的状态为2  更新为已核保待缴费
+                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
+                }else if((OrderStatusCodeEnum.ORDER_STATUS_CODE_BH.getCode().equals(status) || OrderStatusCodeEnum.ORDER_STATUS_CODE_BE.getCode().equals(status)
+                        ||  OrderStatusCodeEnum.ORDER_STATUS_CODE_B1.getCode().equals(status)  || OrderStatusCodeEnum.ORDER_STATUS_CODE_B6.getCode().equals(status) )  && ("0".equals(insAreaCompany.getOrderstatus()))){
+                    // 待验车 BH 资料人工审核-BE B1 B6
+                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
+                }
+                insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+                //UploadFilesResponse uploadFilesResponse = getUploadResponseByParam(insAreaCompany, pinganApiLog, parameters.getUserId());
+                //if (uploadFilesResponse != null & !"0".equals(uploadFilesResponse.getResultCode()) ) {
+                //    throw new SystemException(uploadFilesResponse.getResultMessage());
+                // }
+                return HttpResult.ok("提交核保成功");
+            }
+        } else {
+            throw new SystemException(documentStatusListResponse.getResultMessage());
+        }
+        return null;
+    }
+
     /**
      *  @version
      *  @author: hxl
@@ -1014,8 +1204,6 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
 
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
         //调用单证查询接口
-        String applyno = !StringUtils.isEmpty(insAreaCompany.getJqapplyno()) ? insAreaCompany.getJqapplyno() :
-                insAreaCompany.getSyapplyno();
         // 账号信息
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
         // 通过 协议id获取配置实体
@@ -1389,8 +1577,8 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                     insAreaCompany.setCrossInsurance(objects);
                 }
                 logger.info(documentStatusListResponse.toString()+"调用状态查询接口");
-                if(OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) )){
-                    //说明核保成功,更新大订单和小订单的状态为1  更新为已核保待缴费
+                if((OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(status) ||   OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(status)) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) )){
+                    //说明核保成功,更新大订单和小订单的状态为1  更新为已核保待缴费 B6  自核
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode() );
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                 }else if(OrderStatusCodeEnum.ORDER_STATUS_CODE_B5.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) || "2".equals(insAreaCompany.getOrderstatus()))) {
@@ -1399,6 +1587,10 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                     insAreaCompany.setPayDate(LocalDateTime.now());
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                     logger.info(insAreaCompany.toString()+"更新为承保状态!!!");
+                }else if(OrderStatusCodeEnum.ORDER_STATUS_CODE_BH.getCode().equals(status) || OrderStatusCodeEnum.ORDER_STATUS_CODE_BE.getCode().equals(status)
+                        ||  OrderStatusCodeEnum.ORDER_STATUS_CODE_B1.getCode().equals(status)  || OrderStatusCodeEnum.ORDER_STATUS_CODE_B6.getCode().equals(status)){
+                    // 待验车 BH 资料人工审核-BE B1 B6
+                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                 }
             }
             return HttpResult.ok(documentStatusListResponse);
@@ -2031,6 +2223,69 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             return HttpResult.error("支付失败");
         }
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/16 19:45
+     *  @Description:  事后补传资料
+     */
+    @Override
+    public HttpResult<Object> additionalInformation(AdditionalInformation additionalInformation) {
+        String companyId = additionalInformation.getCompanyId();
+        if(StringUtils.isBlank(companyId)){
+            throw new SystemException("子订单id不能为空!!!");
+        }
+        List<String> imageList = additionalInformation.getImageList();
+        if(imageList ==null  || imageList.size()==0){
+            throw new SystemException("补传资料不能为空!!!");
+        }
+        //通过子订单id查询需要补传的数据集合
+        LambdaQueryWrapper<PinganShUploafile> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PinganShUploafile::getSubOrderNo, companyId);
+        queryWrapper.eq(PinganShUploafile::getStatus, "0");
+        List<PinganShUploafile> list = pinganShUploafileService.list(queryWrapper);
+        //判断前台数据是否包含所有的回传资料
+        String msg ="";
+        String errorMsg="";
+        if(list ==null ||  list.size()==0){
+            throw new SystemException("没有事后补传资料不必上传!!!");
+        }else{
+            msg ="需要补传资料为:";
+            //判断上传的资料是否包含需要补传的信息资料不包含提示信息
+            List<InsUploadImagesDto> imgList = insTaskImagesMapper.findByIds(imageList);
+
+            if(imgList!=null && imgList.size()>0){
+
+                Map<String, String> map = new HashMap<>();
+                for(InsUploadImagesDto  dto :imgList){
+                    PingAnDocumentClassEnum fileEnum = PingAnDocumentClassEnum.getCode(dto.getImageType());
+                    String documentType = fileEnum.getDocumentType();
+                    map.put(documentType,documentType);
+                }
+                for(PinganShUploafile  dto :list){
+                    String val = map.get(dto.getDocumentType());
+                    if(StringUtils.isBlank(val)){
+                        errorMsg+=dto.getDocumentClassName()+"-"+dto.getDocumentTypeName()+";";
+                    }
+                    msg+=dto.getDocumentClassName()+"-"+dto.getDocumentTypeName()+";";
+                }
+                errorMsg+="未上传";
+            }
+            if(StringUtils.isNotBlank(errorMsg)){
+                throw  new SystemException(msg+"("+errorMsg+")");
+            }else{
+                //将补传资料的数据更新为1
+                List<PinganShUploafile> newList = list.stream()
+                        .map(item -> {
+                            item.setStatus("1");
+                            return item;
+                        })
+                        .collect(Collectors.toList());
+                pinganShUploafileService.updateBatchById(newList);
+            }
+        }
+        return HttpResult.ok("补传资料成功!!");
+    }
 
     /**
      * @version
@@ -2094,4 +2349,32 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         }
         return list;
     }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/16 11:41
+     *  @Description: 获取返回
+     */
+    public Map<String,String>  getNoByStr(String msg){
+        Map<String,String> map=new HashMap<String,String>();
+        //本次已生成商业险投保单号:53301003900251463997, 交强险投保单号:53301003900251463998, 本次不能再投保
+        if(StringUtils.isNotBlank(msg) && msg.contains("本次不能再投保")){
+            String[] strs = msg.replaceAll("本次不能再投保", "").split(",");
+            if(strs!=null && strs.length>0){
+                for(String s :strs){
+                    if(StringUtils.isNotBlank(s) && s.contains(":") && s.contains("商业险投保单号")){
+                        map.put("sypolicyno",s.split(":")[1]);
+                    }else if(StringUtils.isNotBlank(s)  && s.contains(":") && s.contains("交强险投保单号")){
+                        map.put("jqpolicyno",s.split(":")[1]);
+                    }
+                    else if(StringUtils.isNotBlank(s)  && s.contains(":") && s.contains("意险投保单号")){
+                        map.put("application",s.split(":")[1]);
+                    }
+                }
+            }
+
+        }
+        return map;
+    }
 }

+ 22 - 0
src/main/java/com/ydtech/modules/order/service/impl/PinganShUploafileServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.dao.PinganShUploafileMapper;
+import com.ydtech.modules.order.entity.po.PinganShUploafile;
+import com.ydtech.modules.order.service.PinganShUploafileService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【pingan_sh_uploafile(平安事后文件上传资料)】的数据库操作Service实现
+* @createDate 2024-08-16 18:22:00
+*/
+@Service
+public class PinganShUploafileServiceImpl extends ServiceImpl<PinganShUploafileMapper, PinganShUploafile>
+    implements PinganShUploafileService {
+
+}
+
+
+
+

+ 10 - 0
src/main/resources/mapper/modules/ins/InsTaskImagesMapper.xml

@@ -37,5 +37,15 @@
         where i.quote_no =
               (select quoteno from ins_orders where orderno = #{orderNo})
     </select>
+    <select id="findByIds" resultType="com.ydtech.modules.order.entity.dto.InsUploadImagesDto">
+        select i.quote_no, i.image_type, i.image_id, f.file_name, f.file_path,i.pingan_key,i.id
+        from ins_task_images as i
+                 left join ins_upload_files as f
+                           on i.image_id = f.id
+        where f.id in
+        <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
 
 </mapper>

+ 26 - 0
src/main/resources/mapper/modules/order/PinganShUploafileMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.order.dao.PinganShUploafileMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.po.PinganShUploafile">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="subOrderNo" column="sub_order_no" jdbcType="VARCHAR"/>
+            <result property="documentClass" column="document_class" jdbcType="VARCHAR"/>
+            <result property="documentClassName" column="document_class_name" jdbcType="VARCHAR"/>
+            <result property="isAnyOne" column="is_any_one" jdbcType="VARCHAR"/>
+            <result property="documentType" column="document_type" jdbcType="VARCHAR"/>
+            <result property="documentTypeName" column="document_type_name" jdbcType="VARCHAR"/>
+            <result property="isNeedDuringAudit" column="is_need_during_audit" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,sub_order_no,document_class,
+        document_class_name,is_any_one,document_type,
+        document_type_name,is_need_during_audit,status,
+        create_time
+    </sql>
+</mapper>