فهرست منبع

人保爬虫报价相关参数

Qchen 1 سال پیش
والد
کامیت
d81f1eda13

+ 2 - 0
src/main/java/com/ydtech/modules/order/dao/InsTaskImagesMapper.java

@@ -18,6 +18,8 @@ public interface InsTaskImagesMapper extends BaseMapper<InsTaskImages> {
 
     List<InsTaskImagesDto> getByQuoteNoInsTaskImagesDtoList(String quoteNo);
 
+    List<InsUploadImagesDto> getByQuoteNoToBase64List(String quoteNo);
+
     List<InsUploadImagesDto> getByOrderNoInsUploadImagesDtoList(String orderNo);
     /**
      *  @version

+ 6 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerQuoteRequest.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
@@ -55,4 +56,9 @@ public class CrawlerQuoteRequest extends BaseQuoteInfoVo {
      */
     private Integer maxQuoteNum;
 
+    /**
+     * 人保图片信息
+     */
+    List<CrawlerImageRequest.B64phoListDTO> b64pho_list;
+
 }

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

@@ -36,6 +36,8 @@ public interface InsTaskImagesService extends IService<InsTaskImages> {
      */
     HttpResult<Map<String, InsTaskImagesDto>> findByQuoteNo(String quoteNo);
 
+    List<InsTaskImagesBase64> findByQuoteNoToBase64(String orderNo, String companyId);
+
 
 
     List<InsTaskImagesBase64> findByOrderNo(String orderNo, String companyId, boolean b);

+ 5 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -160,6 +160,11 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             String value = ptlAttributionTemplateDto.getValue();
             crawlerQuoteRequest.setForm(value);
         }
+        if (ptlAgreementAttribution.getInsCompanyId().equals("PICC1000000")) {
+            String quoteNo = order.getQuoteno();
+            List<InsTaskImagesBase64> insTaskImagesBase64List = insTaskImagesService.findByQuoteNoToBase64(quoteNo, ptlAgreementAttribution.getInsCompanyId());
+            crawlerQuoteRequest.setB64pho_list(CrawlerImageRequest.toB64phoListDTO(insTaskImagesBase64List));
+        }
 
         // 发送请求
         CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(),

+ 38 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsTaskImagesServiceImpl.java

@@ -100,6 +100,44 @@ public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, I
         return HttpResult.ok(collect);
     }
 
+    @Override
+    public List<InsTaskImagesBase64> findByQuoteNoToBase64(String quoteNo, String companyId) {
+        // 获取缓存中的影像信息
+        JSONObject uploadImage = insImagesUploadCacheComponents.isUploadImage(companyId);
+        List<InsUploadImagesDto> insUploadImagesDtos = baseMapper.getByQuoteNoToBase64List(quoteNo);
+        if (insUploadImagesDtos.isEmpty()) {
+            throw new SystemException("请检查影像是否上传");
+        }
+        // 使用 imagesId 去重
+        List<InsUploadImagesDto> deduplication = insUploadImagesDtos.stream().collect(
+                Collectors.collectingAndThen(
+                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InsUploadImagesDto::getImageId))),
+                        ArrayList::new));
+
+        // 图片路劲转base64
+        Map<String, String> map = new HashMap<>();
+
+        for (InsUploadImagesDto target : deduplication) {
+            String base64B = Base64Utils.encodeToString(FileUtil.readBytes(target.getFilePath()));
+            // 文件id
+            map.put(target.getImageId(), base64B);
+        }
+
+        List<InsTaskImagesBase64> collect = insUploadImagesDtos.stream()
+                // 过滤缓存中 存在的 imageId
+                .filter(x -> !x.getImageId().equals(uploadImage.get(x.getImageType())))
+                .map(x -> new InsTaskImagesBase64(x, map))
+                .collect(Collectors.toList());
+
+        // 核心逻辑是否是覆盖
+        if (!collect.isEmpty()) {
+            return insUploadImagesDtos.stream()
+                    .map(x -> new InsTaskImagesBase64(x, map))
+                    .collect(Collectors.toList());
+        }
+        return collect;
+    }
+
     @Override
     public List<InsTaskImagesBase64> findByOrderNo(String orderNo, String companyId, boolean b) {
 

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

@@ -28,6 +28,15 @@
         where i.quote_no = #{quoteNo};
     </select>
 
+    <select id="getByQuoteNoToBase64List"
+            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 i.quote_no =#{quoteNo}
+    </select>
+
     <select id="getByOrderNoInsUploadImagesDtoList"
             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