Quellcode durchsuchen

update
华农财险
1. 上传影像修改

wks vor 1 Jahr
Ursprung
Commit
690b3b3439

+ 6 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerCacheComponent.java

@@ -30,6 +30,10 @@ public class HuaNongCrawlerCacheComponent {
 
     public static final String TOKEN = "TOKEN";
 
+    public static final String USER_CODE = "USER_CODE";
+
+    public static final String USER_NAME = "USER_NAME";
+
     // 账号锁定
     public static final String ACCOUNT_LOCKOUT = "huanong:account:lockout";
 
@@ -56,10 +60,11 @@ public class HuaNongCrawlerCacheComponent {
                 .stream()
                 .collect(Collectors.toMap(HuaNongCrawlerLoginResponse.LoginComDTO::getComName, HuaNongCrawlerLoginResponse.LoginComDTO::getComCode));
         collect.put(TOKEN, token);
-
         // 3.1 存入redis中
         RMap<String, Object> rMap = redissonClient.getMap(AUTHORIZATION + username);
         rMap.putAll(collect);
+        collect.put(USER_CODE, login.getUserCode());
+        collect.put(USER_NAME, login.getUserName());
         rMap.expire(Duration.ofHours(AUTHORIZATION_TIME));
     }
 

+ 16 - 18
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerRequestComponent.java

@@ -21,11 +21,11 @@ import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
 
 import java.io.File;
+import java.io.IOException;
 import java.net.URI;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.*;
 
 import static com.jzg.quotation.huanong.crawler.constant.enums.RequestUrl.*;
 
@@ -236,12 +236,18 @@ public class HuaNongCrawlerRequestComponent {
      * @param headers 请求头
      * @return 上传影像响应
      */
-    public HuaNongCrawlerFileUploadResponse fileUpload(String accessToken, File file, HttpHeaders headers) {
-        MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
-        parts.add("file", new FileSystemResource(file));
-        String url = properties.getUploadUrl() + String.format(FILE_UPLOAD.getUri(), accessToken, "");
-        ResponseEntity<HuaNongCrawlerFileUploadResponse> responseEntity = requestComponent.formData(url, parts, HuaNongCrawlerFileUploadResponse.class, headers);
-        return responseEntity.getBody();
+    public HuaNongCrawlerFileUploadResponse fileUpload(String accessToken, String uuidFileName, String suffix,  byte[] imageByte, HttpHeaders headers){
+        try {
+            MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
+            Path tempPath = Files.createTempFile(uuidFileName, suffix);
+            Files.write(tempPath, imageByte);
+            parts.add("file", new FileSystemResource(tempPath.toFile()));
+            String url = properties.getUploadUrl() + String.format(FILE_UPLOAD.getUri(), accessToken, "");
+            ResponseEntity<HuaNongCrawlerFileUploadResponse> responseEntity = requestComponent.formData(url, parts, HuaNongCrawlerFileUploadResponse.class, headers);
+            return responseEntity.getBody();
+        }catch (IOException e){
+            throw new SystemException("文件读取异常");
+        }
     }
 
     /**
@@ -350,12 +356,4 @@ public class HuaNongCrawlerRequestComponent {
         return String.format("%s?proposalNo=%s&operatorCode=%s&poaType=&time={time}", payUrl, proposalNo, username);
     }
 
-    public static void main(String[] args) {
-       String proposalNo = "UTE0MDQwNTA3MjAyNTA1NzkxMg==";
-       String payUrl = "https://mobileshare.chinahuanong.com.cn/index.html#/home";
-        String username = "MTQwNDAwMDQwMDAy";
-        String format = String.format("%s?proposalNo=%s&operatorCode=%s&poaType=&time={time}", payUrl, proposalNo, username);
-        System.out.println(format);
-    }
-
 }

+ 28 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/bo/LoginInfoBO.java

@@ -0,0 +1,28 @@
+package com.jzg.quotation.huanong.crawler.entity.bo;
+
+import com.jzg.quotation.huanong.crawler.entity.HuaNongCrawlerConfigureParameters;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @description: 登陆信息对象
+ * @author: wenks
+ * @date: 2025/7/10 11:26
+ **/
+@AllArgsConstructor
+@Data
+public class LoginInfoBO {
+
+    private String token;
+
+    private String loginCom;
+
+    private String loginComCode;
+
+    private String userCode;
+
+    private String userName;
+
+    private HuaNongCrawlerConfigureParameters parameters;
+
+}

+ 22 - 0
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/entity/response/HuaNongCrawlerCatalogQueryResponse.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.huanong.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.utils.TimeProcessing;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -117,6 +118,24 @@ public class HuaNongCrawlerCatalogQueryResponse {
                 @JsonProperty("sortNo")
                 private Integer sortNo;
 
+                public PagesDTO(HuaNongCrawlerFileUploadResponse.DataDTO data, String createUserName, String createUser, String uploadOrg) {
+                    this.thumbUrl = data.getThumbUrl();
+                    this.imageUrl = data.getImageUrl();
+                    this.progressStatl = 0;
+                    this.originalName = "";
+                    this.pageFormat = "image/jpeg";
+                    this.newFileFlag = 1;
+                    this.noSubmitFileFlag = 0;
+                    this.type = "image/jpeg";
+                    this.createUserName = createUserName;
+                    this.createUser = createUser;
+                    this.uploadOrg = uploadOrg;
+                    this.createTime = TimeProcessing.nowDateTime();
+                    this.pageName = data.getPageName();
+                    this.tempId = data.getTempId();
+                    this.exif = "{}";
+                    this.sortNo = 0;
+                }
             }
 
             @NoArgsConstructor
@@ -150,6 +169,9 @@ public class HuaNongCrawlerCatalogQueryResponse {
                 @JsonProperty("pages")
                 private List<PagesDTO> pages;
 
+                @JsonProperty("pagesNew")
+                private List<PagesDTO> pagesNew;
+
                 @JsonProperty("resize")
                 private String resize;
 

+ 4 - 3
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/HuaNongCrawlerQuoteProcessService.java

@@ -2,7 +2,9 @@ package com.jzg.quotation.huanong.crawler.service;
 
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.quotation.huanong.crawler.entity.HuaNongCrawlerConfigureParameters;
+import com.jzg.quotation.huanong.crawler.entity.bo.LoginInfoBO;
 import com.jzg.quotation.huanong.crawler.entity.request.HuaNongCrawlerQuotedPriceRequestRequest;
+import com.jzg.quotation.huanong.crawler.service.impl.HuaNongCrawlerRequestImpl;
 
 import java.util.List;
 
@@ -32,12 +34,11 @@ public interface HuaNongCrawlerQuoteProcessService {
     /**
      * 上传影像
      *
-     * @param username    用户名
+     * @param loginInfoBO 登录信息
      * @param agreementId 协议号
      * @param contractNo  华农订单号
      * @param imageVoList 影像列表
-     * @param loginCom    登陆机构
      */
-    void uploadImage(String username, String agreementId, String contractNo, List<InsuranceImageVo> imageVoList, String loginCom);
+    void uploadImage(LoginInfoBO loginInfoBO, String agreementId, String contractNo, List<InsuranceImageVo> imageVoList);
 
 }

+ 60 - 22
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java

@@ -9,20 +9,17 @@ import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerCacheComponent;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerRequestComponent;
 import com.jzg.quotation.huanong.crawler.constant.enums.ReturnCode;
 import com.jzg.quotation.huanong.crawler.entity.HuaNongCrawlerConfigureParameters;
+import com.jzg.quotation.huanong.crawler.entity.bo.LoginInfoBO;
 import com.jzg.quotation.huanong.crawler.entity.request.*;
 import com.jzg.quotation.huanong.crawler.entity.response.*;
 import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerQuoteProcessService;
+import com.jzg.quotation.huanong.crawler.utils.ImageIdGenerate;
 import lombok.RequiredArgsConstructor;
-import org.redisson.api.RMap;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.time.Duration;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -42,9 +39,6 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
     // 登录循环次数
     private final static int LOGIN_RETRY_COUNT = 3;
 
-    private static void accept(HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO x) {
-        propagateProperties(x.getNodes(), x);
-    }
 
     @Override
     public void login(String username, String password, boolean isFirst) {
@@ -149,17 +143,14 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
     }
 
     @Override
-    public void uploadImage(String username, String agreementId, String contractNo, List<InsuranceImageVo> imageVoList, String loginCom) {
-        RMap<String, Object> authorization = huaNongCrawlerCacheComponent.getAuthorization(username);
+    public void uploadImage(LoginInfoBO loginInfoBO, String agreementId, String contractNo, List<InsuranceImageVo> imageVoList) {
+        // 获取归属信息
         HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO = huaNongCrawlerCacheComponent.getSaleInfoDTO(agreementId);
-        // 登录信息
-        String token = (String) authorization.get(HuaNongCrawlerCacheComponent.TOKEN);
-        // 登录机构
-        String loginComCode = (String) authorization.get(loginCom);
-
         // 跳转上传影像页面
         HuaNongCrawlerNewImageQueryRequestRequest huaNongCrawlerNewImageQueryRequest
-                = new HuaNongCrawlerNewImageQueryRequestRequest(loginCom, loginComCode, contractNo, token, saleInfoDTO.getSalesman().get(0).getHandlerCode(), saleInfoDTO.getSalesman().get(0).getHandlerName());
+                = new HuaNongCrawlerNewImageQueryRequestRequest(loginInfoBO.getLoginCom(), loginInfoBO.getLoginComCode(), contractNo, loginInfoBO.getToken(), saleInfoDTO.getSalesman()
+                .get(0)
+                .getHandlerCode(), saleInfoDTO.getSalesman().get(0).getHandlerName());
         String data = huaNongCrawlerRequestComponent.newImageQuery(huaNongCrawlerNewImageQueryRequest, new HttpHeaders());
         // 获取accessToken
         HttpHeaders httpHeaders = new HttpHeaders();
@@ -169,10 +160,24 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
 
         List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO> treeData = huaNongCrawlerCatalogQueryResponse.getData()
                 .getTreeData();
-        treeData.forEach(HuaNongCrawlerQuoteProcessServiceImpl::accept);
 
-        // 上传影像
-        HuaNongCrawlerFileUploadResponse huaNongCrawlerFileUploadResponse = huaNongCrawlerRequestComponent.fileUpload(accessToken, new File(""), httpHeaders);
+        Map<String, List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO>> uploadDataMap = new HashMap<>();
+
+        imageVoList.forEach(insuranceImageVo -> {
+            uploadDataMap.put(insuranceImageVo.getInsuranceImageCode(), new ArrayList<>());
+            insuranceImageVo.getImageBase64List().forEach(imageDTO -> {
+                // 上传影像
+                String uuidFileName = UUID.randomUUID().toString();
+                String[] split = imageDTO.getImageName().split("\\.");
+                HuaNongCrawlerFileUploadResponse fileUpload = huaNongCrawlerRequestComponent.fileUpload(accessToken, uuidFileName, split[1], imageDTO.getImageByte(), httpHeaders);
+                HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO pagesDTO = new HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO(fileUpload.getData(), loginInfoBO.getUserName(), loginInfoBO.getUserCode(), loginInfoBO.getLoginCom());
+                uploadDataMap.get(insuranceImageVo.getInsuranceImageCode()).add(pagesDTO);
+            });
+        });
+
+        treeData.forEach(treeDataDTO -> {
+            accept(treeDataDTO, uploadDataMap);
+        });
 
         // 提交影像
         HuaNongCrawlerFileSubmitRequest huaNongCrawlerFileSubmitRequest = new HuaNongCrawlerFileSubmitRequest(treeData);
@@ -180,7 +185,19 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
 
     }
 
-    public static void propagateProperties(List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.NodesDTO> nodes, HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO treeDataDTO) {
+
+    private static void accept(HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO treeDataDTO, Map<String, List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO>> uploadDataMap) {
+        propagateProperties(treeDataDTO.getNodes(), treeDataDTO, uploadDataMap);
+    }
+
+    /**
+     * 递归赋值
+     *
+     * @param nodes       子节点
+     * @param treeDataDTO 树实体
+     */
+    private static void propagateProperties(List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.NodesDTO> nodes, HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO treeDataDTO,
+                                            Map<String, List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO>> uploadDataMap) {
         nodes.forEach(node -> {
             // 处理当前节点的直接子节点
             Optional.ofNullable(node.getChildren())
@@ -191,12 +208,33 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
                         child.setIcon("iconwj-wj-2");
                         child.setBizNo(treeDataDTO.getBizNo());
                         child.setLabel(child.getNodeName() + "(0)");
+                        setUpPagesDTO(child, uploadDataMap);
                         // 递归处理所有子孙节点
                         if (child.getChildren() != null && !child.getChildren().isEmpty()) {
-                            propagateProperties(child.getChildren(), treeDataDTO);
+                            propagateProperties(child.getChildren(), treeDataDTO, uploadDataMap);
                         }
                     }));
         });
     }
 
+    /**
+     * 设置 Pages
+     *
+     * @param child         子节点
+     * @param uploadDataMap 上传的文件
+     */
+    private static void setUpPagesDTO(HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.NodesDTO child, Map<String, List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO>> uploadDataMap) {
+        List<HuaNongCrawlerCatalogQueryResponse.DataDTO.TreeDataDTO.PagesDTO> pagesDTOS = uploadDataMap.get(child.getNodeCode());
+        String id = ImageIdGenerate.getId(18);
+        pagesDTOS.forEach(pagesDTO -> {
+            pagesDTO.setNodeId(id);
+            pagesDTO.setAppCode(child.getAppCode());
+            pagesDTO.setBizNo(child.getBizNo());
+            pagesDTO.setId(ImageIdGenerate.getId(18));
+            pagesDTO.setPageDesc(child.getNodeName());
+        });
+        child.setPages(pagesDTOS);
+        child.setPagesNew(pagesDTOS);
+    }
+
 }

+ 56 - 61
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerRequestImpl.java

@@ -15,6 +15,7 @@ import com.jzg.quotation.huanong.crawler.build.HuaNongCrawlerQuoteResultsVoBuild
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerCacheComponent;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerRequestComponent;
 import com.jzg.quotation.huanong.crawler.entity.HuaNongCrawlerConfigureParameters;
+import com.jzg.quotation.huanong.crawler.entity.bo.LoginInfoBO;
 import com.jzg.quotation.huanong.crawler.entity.po.HuaNongCrawlerOrder;
 import com.jzg.quotation.huanong.crawler.entity.request.*;
 import com.jzg.quotation.huanong.crawler.entity.response.*;
@@ -23,8 +24,6 @@ import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerOrderService;
 import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerQuoteProcessService;
 import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerRequest;
 import com.jzg.quotation.huanong.enums.dictionary.Risk;
-import lombok.AllArgsConstructor;
-import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import org.jetbrains.annotations.NotNull;
 import org.redisson.api.RMap;
@@ -55,18 +54,18 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         HttpHeaders httpHeaders = new HttpHeaders();
         AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
-        LoginInfoDto loginInfoDto = getLoginInfoDto(attributionInformationVo);
+        LoginInfoBO loginInfoDto = getLoginInfoDto(attributionInformationVo);
 
         // 1 归属信息
-        HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO =
-                huaNongCrawlerQuoteProcessService.attributionInformation(quoteVo.getOrder()
-                        .getAgreementId(), loginInfoDto.getParameters(), attributionInformationVo.getUsername(), loginInfoDto.getToken(), loginInfoDto.getLoginComCode());
+        HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO = huaNongCrawlerQuoteProcessService.attributionInformation(quoteVo.getOrder()
+                .getAgreementId(), loginInfoDto.getParameters(), attributionInformationVo.getUsername(), loginInfoDto.getToken(), loginInfoDto.getLoginComCode());
 
         // 2 车型查询
         CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
         HuaNongCrawlerModelsQueryRequestRequest huaNongCrawlerModelsQueryRequest = new HuaNongCrawlerModelsQueryRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carInfoVo);
         HuaNongCrawlerModelsQueryResponse huaNongCrawlerModelsQueryResponse = huaNongCrawlerRequestComponent.modelsQuery(huaNongCrawlerModelsQueryRequest, httpHeaders);
         HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO = CarModelsFilterUtils.to(huaNongCrawlerModelsQueryResponse.getCarModel(), carInfoVo);
+
         // 3 精确查询
         HuaNongCrawlerPrecisionServiceSearchRequest precisionServiceSearchRequest = new HuaNongCrawlerPrecisionServiceSearchRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carInfoVo, carModelDTO);
         HuaNongCrawlerPrecisionServiceSearchResponse precisionServiceSearchResponse = huaNongCrawlerRequestComponent.precisionServiceSearch(precisionServiceSearchRequest, httpHeaders);
@@ -77,8 +76,7 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
         String actualValue = huaNongCrawlerRequestComponent.actualValue(huaNongCrawlerActualValueRequest, httpHeaders);
 
         // 5 保费计算
-        HuaNongCrawlerQuotedPriceRequestRequest huaNongCrawlerQuotedPriceRequest
-                = new HuaNongCrawlerQuotedPriceRequestRequest(loginInfoDto.getToken(), attributionInformationVo.getUsername(), quoteVo, loginInfoDto.getLoginComCode(), actualValue, loginInfoDto.getParameters(), carModel, saleInfoDTO);
+        HuaNongCrawlerQuotedPriceRequestRequest huaNongCrawlerQuotedPriceRequest = new HuaNongCrawlerQuotedPriceRequestRequest(loginInfoDto.getToken(), attributionInformationVo.getUsername(), quoteVo, loginInfoDto.getLoginComCode(), actualValue, loginInfoDto.getParameters(), carModel, saleInfoDTO);
 
         HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse = huaNongCrawlerRequestComponent.quotedPrice(huaNongCrawlerQuotedPriceRequest, httpHeaders);
 
@@ -98,9 +96,8 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
     private static HuaNongCrawlerSaveRequestRequest getHuaNongCrawlerSaveRequestRequest(HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse, String token, String loginComCode) {
         List<HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractDTO> contract = huaNongCrawlerQuotedPriceResponse.getBusinessData()
                 .getContract();
-        List<HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractAccidentDTO> contractAccident =
-                Optional.ofNullable(huaNongCrawlerQuotedPriceResponse.getBusinessData().getContractAccident())
-                        .orElse(new ArrayList<>());
+        List<HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractAccidentDTO> contractAccident = Optional.ofNullable(huaNongCrawlerQuotedPriceResponse.getBusinessData()
+                .getContractAccident()).orElse(new ArrayList<>());
 
         return new HuaNongCrawlerSaveRequestRequest(contract, contractAccident, token, loginComCode);
     }
@@ -144,20 +141,19 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
         HuaNongCrawlerOrder huaNongCrawlerOrder = huaNongCrawlerOrderService.getById(insuranceUploadImageVo.getOrder()
                 .getOrdersNo());
         String contractNo = huaNongCrawlerOrder.getOrdersNo();
-
         AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder()
                 .getAttributionInformationVo();
-        HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-
-        huaNongCrawlerQuoteProcessService.uploadImage(attributionInformationVo.getUsername(), insuranceUploadImageVo.getOrder()
-                .getAgreementId(), contractNo, insuranceUploadImageVo.getImageVoList(), huaNongCrawlerConfigureParameters.getLoginCom());
+        LoginInfoBO loginInfoDto = getLoginInfoDto(attributionInformationVo);
+        // 上传影像 封装
+        huaNongCrawlerQuoteProcessService.uploadImage(loginInfoDto, insuranceUploadImageVo.getOrder()
+                .getAgreementId(), contractNo, insuranceUploadImageVo.getImageVoList());
     }
 
     @Override
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
-        LoginInfoDto loginInfoDto = getLoginInfoDto(attributionInformationVo);
+        LoginInfoBO loginInfoDto = getLoginInfoDto(attributionInformationVo);
         // 获取订单信息
         HuaNongCrawlerOrder order = huaNongCrawlerOrderService.getById(downloadPolicyVo.getOrder().getOrdersNo());
         HttpHeaders httpHeaders = new HttpHeaders();
@@ -165,37 +161,39 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
         HuaNongCrawlerFtpDownloadRequestRequest.FtpDowloadListDTO ftpDowloadListDTO = new HuaNongCrawlerFtpDownloadRequestRequest.FtpDowloadListDTO();
         huaNongCrawlerFtpDownloadRequest.setFtpDowloadList(List.of(ftpDowloadListDTO));
         // 交强保单 标志
-        Optional.ofNullable(order.getCiPolicyNo()).ifPresent(ciPolicyNo -> {
-            // 交强保单
-            ftpDowloadListDTO.setBiztype("4");
-            ftpDowloadListDTO.setBusinessNo(ciPolicyNo);
-            ftpDowloadListDTO.setRiskCode(Risk.RISK_0507.getRiskCode());
-            String ciPolicyUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
-            downloadPolicyResultVo.setJqUrl(ciPolicyUrl);
-            ftpDowloadListDTO.setIsBZDown("1");
-            // 商业标志
-            String ciSignUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
-            downloadPolicyResultVo.setJqFlagUrl(ciSignUrl);
-
-        });
+        Optional.ofNullable(order.getCiPolicyNo())
+                .filter(s -> !s.isEmpty())
+                .ifPresent(ciPolicyNo -> {
+                    // 交强保单
+                    ftpDowloadListDTO.setBiztype("4");
+                    ftpDowloadListDTO.setBusinessNo(ciPolicyNo);
+                    ftpDowloadListDTO.setRiskCode(Risk.RISK_0507.getRiskCode());
+                    String ciPolicyUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
+                    downloadPolicyResultVo.setJqUrl(ciPolicyUrl);
+                    ftpDowloadListDTO.setIsBZDown("1");
+                    // 商业标志
+                    String ciSignUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
+                    downloadPolicyResultVo.setJqFlagUrl(ciSignUrl);
+
+                });
         // 商业保单
-        Optional.ofNullable(order.getBiPolicyNo()).ifPresent(biPolicyNo -> {
-            // 商业保单
-            ftpDowloadListDTO.setIsBZDown("0");
-            ftpDowloadListDTO.setBusinessNo(biPolicyNo);
-            String biPolicyUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
-            downloadPolicyResultVo.setSyUrl(biPolicyUrl);
-        });
+        Optional.ofNullable(order.getBiPolicyNo())
+                .filter(s -> !s.isEmpty())
+                .ifPresent(biPolicyNo -> {
+                    // 商业保单
+                    ftpDowloadListDTO.setIsBZDown("0");
+                    ftpDowloadListDTO.setBusinessNo(biPolicyNo);
+                    String biPolicyUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
+                    downloadPolicyResultVo.setSyUrl(biPolicyUrl);
+                });
 
         // 非车险
         order.getNiInfos().forEach(niInfo -> {
-            Optional.ofNullable(niInfo.getNiPolicyNo())
-                    .ifPresent(niPolicyNo -> {
-                                HuaNongCrawlerDocumentsPrintRequestRequest huaNongCrawlerDocumentsPrintRequest = new HuaNongCrawlerDocumentsPrintRequestRequest(loginInfoDto.getToken(), niPolicyNo, attributionInformationVo.getUsername(), loginInfoDto.getLoginComCode());
-                                String niPolicyUrl = huaNongCrawlerRequestComponent.documentsPrint(huaNongCrawlerDocumentsPrintRequest, httpHeaders);
-                                downloadPolicyResultVo.setJyUrl(niPolicyUrl);
-                            }
-                    );
+            Optional.ofNullable(niInfo.getNiPolicyNo()).ifPresent(niPolicyNo -> {
+                HuaNongCrawlerDocumentsPrintRequestRequest huaNongCrawlerDocumentsPrintRequest = new HuaNongCrawlerDocumentsPrintRequestRequest(loginInfoDto.getToken(), niPolicyNo, attributionInformationVo.getUsername(), loginInfoDto.getLoginComCode());
+                String niPolicyUrl = huaNongCrawlerRequestComponent.documentsPrint(huaNongCrawlerDocumentsPrintRequest, httpHeaders);
+                downloadPolicyResultVo.setJyUrl(niPolicyUrl);
+            });
         });
 
         return downloadPolicyResultVo;
@@ -203,35 +201,32 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
 
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
-        LoginInfoDto loginInfoDto = getLoginInfoDto(orderStatusVo.getOrder().getAttributionInformationVo());
+        LoginInfoBO loginInfoDto = getLoginInfoDto(orderStatusVo.getOrder().getAttributionInformationVo());
         HttpHeaders httpHeaders = new HttpHeaders();
         HuaNongCrawlerOrder order = huaNongCrawlerOrderService.getById(orderStatusVo.getOrder().getOrdersNo());
         String policyNo = StringUtils.hasText(order.getBiPolicyNumber()) ? order.getBiPolicyNumber() : order.getCiPolicyNumber();
-        HuaNongCrawlerFindBusinessesRequestRequest huaNongCrawlerFindBusinessesRequest = new HuaNongCrawlerFindBusinessesRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), policyNo, order.getRecordingTime());
+        HuaNongCrawlerFindBusinessesRequestRequest huaNongCrawlerFindBusinessesRequest
+                = new HuaNongCrawlerFindBusinessesRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), policyNo, order.getRecordingTime());
         HuaNongCrawlerFindBusinessesResponse businesses = huaNongCrawlerRequestComponent.findBusinesses(huaNongCrawlerFindBusinessesRequest, httpHeaders);
         return new OrderStatusResultVo();
     }
 
-    @Data
-    @AllArgsConstructor
-    private static class LoginInfoDto {
-
-        private String token;
-
-        private String loginCom;
-
-        private String loginComCode;
-
-        private HuaNongCrawlerConfigureParameters parameters;
-    }
-
-    private LoginInfoDto getLoginInfoDto(AttributionInformationVo attributionInformationVo) {
+    /**
+     * 抽取公共配置
+     *
+     * @param attributionInformationVo 归属信息
+     * @return 登录信息
+     */
+    private LoginInfoBO getLoginInfoDto(AttributionInformationVo attributionInformationVo) {
         HuaNongCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         RMap<String, Object> authorization = huaNongCrawlerGetToken.getAuthorization(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
         String token = (String) authorization.get(HuaNongCrawlerCacheComponent.TOKEN);
+        String userCode = (String) authorization.get(HuaNongCrawlerCacheComponent.USER_CODE);
+        String userName = (String) authorization.get(HuaNongCrawlerCacheComponent.USER_NAME);
         String loginCom = parameters.getLoginCom();
         String loginComCode = (String) authorization.get(loginCom);
-        return new LoginInfoDto(token, loginCom, loginComCode, parameters);
+        return new LoginInfoBO(token, loginCom, loginComCode, userCode, userName, parameters);
     }
 
+
 }

+ 14 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/utils/ImageIdGenerate.java

@@ -1,7 +1,20 @@
 package com.jzg.quotation.huanong.crawler.utils;
 
-public final class ImageIdGenerate{
+import java.util.Random;
 
+/**
+ * @description: 影响上传id生成
+ * @author: wenks
+ * @date: 2025/7/10 17:17
+ **/
+public final class ImageIdGenerate {
 
+    private static final Random random = new Random();
+
+    public static String getId(int e) {
+        return random.ints(e, 0, 10)  // 生成e个0-9的随机数
+                .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
+                .toString();
+    }
 
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
tenant/insurance/quotation-summary/src/test/java/com/jzg/quotation/taikang/crawler/service/TKQuotationBaseServiceImplTest.java


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.