瀏覽代碼

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	gateway/src/main/resources/application-dev.yml
Qchen 1 年之前
父節點
當前提交
9ef26de374
共有 90 個文件被更改,包括 1625 次插入434 次删除
  1. 1 1
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountAddParam.java
  2. 1 1
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardAddParam.java
  3. 1 1
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardEditParam.java
  4. 2 2
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardParam.java
  5. 1 1
      commons/src/main/java/com/jzg/commons/entity/account/po/InvAccount.java
  6. 2 2
      commons/src/main/java/com/jzg/commons/entity/account/po/InvAccountCard.java
  7. 2 2
      commons/src/main/java/com/jzg/commons/entity/account/vo/AccountCardVo.java
  8. 3 3
      commons/src/main/java/com/jzg/commons/entity/account/vo/AccountVo.java
  9. 2 0
      gateway/src/main/resources/application-dev.yml
  10. 9 4
      platform/src/main/java/com/jzg/controller/FileUploadController.java
  11. 1 1
      tenant/insurance/quotation-commons/pom.xml
  12. 1 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java
  13. 10 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java
  14. 2 2
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/build/HbCrawlerQuoteResultVoBuild.java
  15. 11 50
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/component/HengBangCrawlerRequestComponent.java
  16. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/constant/RequestConstant.java
  17. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/constant/enums/RequestUrl.java
  18. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/HengBangCrawlerConfigureParameters.java
  19. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/dto/HbEncDTO.java
  20. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/po/HbCrawlerOrder.java
  21. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbBaseRequest.java
  22. 2 2
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerAuthenticateRequest.java
  23. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCalculationRequest.java
  24. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCaptchaRequest.java
  25. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCoreProposalRequest.java
  26. 2 2
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerDepreciationRequest.java
  27. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerFileUploadRequest.java
  28. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerGetPolicyRequest.java
  29. 4 4
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerQueryCarRequest.java
  30. 4 4
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerQuoteimmediatelyRequest.java
  31. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerSaleInfoRequest.java
  32. 14 0
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbBaseResponse.java
  33. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerAuthenticateResponse.java
  34. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerCalculationResponse.java
  35. 6 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerCaptchaResponse.java
  36. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerCoreProposalResponse.java
  37. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerDepreciationResponse.java
  38. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerGetPolicyResponse.java
  39. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerOrderStateResponse.java
  40. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerPayUrlResponse.java
  41. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerProposalResponse.java
  42. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerQueryCarResponse.java
  43. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerSaleInfoResponse.java
  44. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/properties/HengBangCrawlerProperties.java
  45. 2 2
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/repository/HbCrawlerOrderReposiroty.java
  46. 2 2
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/HbCrawlerOrderService.java
  47. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/HengBangCrawlerRequest.java
  48. 4 4
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HbCrawlerOrderServiceImpl.java
  49. 32 24
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java
  50. 1 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/utils/HengBangAESUtil.java
  51. 0 11
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbBaseResponse.java
  52. 5 1
      tenant/insurance/quotation-summary/pom.xml
  53. 99 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/cache/RedisCacheUtil.java
  54. 2 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/CarModelinfoQueryResult.java
  55. 3 1
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000012Param.java
  56. 19 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000021Param.java
  57. 226 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000021Result.java
  58. 47 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000052Param.java
  59. 58 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000052Result.java
  60. 1 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000086Param.java
  61. 41 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKReceiveParam.java
  62. 36 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKReceiveParam2.java
  63. 20 0
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKReceiveResult.java
  64. 81 1
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKHttpAPIService.java
  65. 6 1
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKSimpleService.java
  66. 242 144
      tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/impl/TKQuotationBaseServiceImpl.java
  67. 31 0
      tenant/insurance/quotation-taikang/src/test/http/AA.http
  68. 7 1
      tenant/insurance/quotation-zhongmei/pom.xml
  69. 7 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/build/ZmCrawlerQuoteResultVoBuild.java
  70. 122 58
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/component/ZmCrawlerRequestComponent.java
  71. 1 2
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerCheckPaymentRequest.java
  72. 24 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerImageCookieRequest.java
  73. 11 2
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerImageImportRequest.java
  74. 21 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerSubmitRequest.java
  75. 8 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerImageImportResponse.java
  76. 1 1
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerQuotedPriceResponse.java
  77. 225 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerQuoteProcessServiceImpl.java
  78. 24 53
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java
  79. 17 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/ZhongMeiCrawlerQuoteProcessService.java
  80. 0 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/util/Base64Tool.java
  81. 1 1
      tenant/organization/src/main/java/com/jzg/organization/client/EsmInsCompanyClient.java
  82. 13 1
      tenant/organization/src/main/java/com/jzg/organization/controller/AccountCardController.java
  83. 30 2
      tenant/organization/src/main/java/com/jzg/organization/controller/AccountController.java
  84. 0 7
      tenant/organization/src/main/java/com/jzg/organization/controller/UserAccountController.java
  85. 9 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/InvAccountMapper.java
  86. 11 0
      tenant/organization/src/main/java/com/jzg/organization/service/InvAccountService.java
  87. 8 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/InvAccountServiceImpl.java
  88. 3 3
      tenant/organization/src/main/resources/mapper/InvAccountCardMapper.xml
  89. 17 0
      tenant/organization/src/main/resources/mapper/InvAccountMapper.xml
  90. 2 2
      tenant/organization/src/main/resources/mapper/SysAmountAuditingMapper.xml

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountAddParam.java

@@ -49,7 +49,7 @@ public class AccountAddParam {
      * 成立日期
      */
     @Schema(description = "成立日期")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+//    @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate establishTime;
 
     /**

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardAddParam.java

@@ -33,7 +33,7 @@ public class AccountCardAddParam {
      */
     @Schema(description = "所属企业id")
     @NotNull(message = "请选择所属企业")
-    private Long accountId;
+    private String accountId;
 
     /**
      * 账户类型(0公户 1私户)

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardEditParam.java

@@ -36,7 +36,7 @@ public class AccountCardEditParam {
      */
     @Schema(description = "所属企业id")
     @NotNull(message = "请选择所属企业")
-    private Long accountId;
+    private String accountId;
 
     /**
      * 账户类型(0公户 1私户)

+ 2 - 2
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardParam.java

@@ -9,8 +9,8 @@ import lombok.Data;
 public class AccountCardParam extends PageRequest {
 
     /** 所属企业id */
-    @Schema(description = "所属企业id")
-    private String accountId;
+    @Schema(description = "所属企业名称")
+    private String accountName;
 
     /** 账户简称 */
     @Schema(description = "账户简称")

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/account/po/InvAccount.java

@@ -20,7 +20,7 @@ public class InvAccount extends BaseModel {
      * 账户id
      */
     @Schema(description = "主键")
-    private Long id;
+    private String id;
 
     /**
      * 户名

+ 2 - 2
commons/src/main/java/com/jzg/commons/entity/account/po/InvAccountCard.java

@@ -20,7 +20,7 @@ public class InvAccountCard extends BaseModel {
      * 账户id
      */
     @Schema(description = "主键")
-    private Long id;
+    private String id;
 
     /**
      * 账户简称
@@ -38,7 +38,7 @@ public class InvAccountCard extends BaseModel {
      * 账户id
      */
     @Schema(description = "账户id")
-    private Long accountId;
+    private String accountId;
 
     /**
      * 账户性质(0公户 1私户)

+ 2 - 2
commons/src/main/java/com/jzg/commons/entity/account/vo/AccountCardVo.java

@@ -15,7 +15,7 @@ public class AccountCardVo extends BaseModel {
      * 账户id
      */
     @Schema(description = "主键")
-    private Long id;
+    private String id;
 
     /**
      * 账户简称
@@ -33,7 +33,7 @@ public class AccountCardVo extends BaseModel {
      * 账户id
      */
     @Schema(description = "账户id")
-    private Long accountId;
+    private String accountId;
 
     /**
      * 账户性质(0公户 1私户)

+ 3 - 3
commons/src/main/java/com/jzg/commons/entity/account/vo/AccountVo.java

@@ -15,7 +15,7 @@ public class AccountVo extends BaseModel {
      * 企业id
      */
     @Schema(description = "主键")
-    private Long id;
+    private String id;
 
     /**
      * 户名
@@ -27,13 +27,13 @@ public class AccountVo extends BaseModel {
      * 企业类型(0内部企业 1外部企业)
      */
     @Schema(description = "企业类型(0内部企业 1外部企业)")
-    private Integer outerFlag;
+    private String outerFlag;
 
     /**
      * 营业性质(3一般纳税 2小规模 1个体户)
      */
     @Schema(description = "营业性质(3一般纳税 2小规模 1个体户)")
-    private Integer businessQuality;
+    private String businessQuality;
 
     /**
      * 所属地

+ 2 - 0
gateway/src/main/resources/application-dev.yml

@@ -33,6 +33,8 @@ spring:
         - id: tenant_route
           uri: http://localhost:8084/
           predicates:
+            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,/poster/**,/agreement/**,/pltAgreement/**,/agreementRules/**,/plt/areaLicense/**,/scheme/**,/schemeRules/**,/schemeRulesAttrLink/**,/schemeRulesAttr/**,/schemeRulesDictLable/**,/schemeRulesUndwrt/**,/schemeRulesUndwrtAttrLink/**,/schemeRulesUndwrtAttr/**,/schemeRulesUndwrtDictLable/**,/schemeRulesUndwrtRules/**,/schemeRulesUndwrtRulesAttrLink/**,/schemeRules,/ptlAgreementCost/**,/ptlAgreementCost/**,/ptlAgreementCostExternal/**,/operatorTrajectory/**,/messageTemplate/**,/message/**,/appUser/**,/userBankCard/**,/accountCard/**,/account/**,/amountAuditing/**,/userAccount/**
+
             - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,
              /poster/**,/agreement/**,/pltAgreement/**,/agreementRules/**,/plt/areaLicense/**,/scheme/**,/schemeRules/**,/schemeRulesAttrLink/**,
              /schemeRulesAttr/**,/schemeRulesDictLable/**,/schemeRulesUndwrt/**,/schemeRulesUndwrtAttrLink/**,/schemeRulesUndwrtAttr/**,

+ 9 - 4
platform/src/main/java/com/jzg/controller/FileUploadController.java

@@ -14,10 +14,7 @@ import io.minio.*;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -197,4 +194,12 @@ public class FileUploadController extends BaseController {
         sysUploadFilesMapper.insert(sysUploadFiles);
         return sysUploadFiles;
     }
+
+    @GetMapping("/getUploadFile")
+    @Operation(summary = "根据Id获取上传信息", description = "根据Id获取上传信息")
+    public SysUploadFiles getUploadFile(String id) {
+        return sysUploadFilesMapper.selectById(id);
+    }
+
+
 }

+ 1 - 1
tenant/insurance/quotation-commons/pom.xml

@@ -56,4 +56,4 @@
         </plugins>
     </build>
 
-</project>
+</project>

+ 1 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java

@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
-@FeignClient(name="jzg-organization",url = "http://192.168.0.19:8084/")
+@FeignClient(name="jzg-organization",url = "http://192.168.0.250:8084/")
 public interface OrgClient {
 
     /**

+ 10 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java

@@ -7,6 +7,7 @@ import com.jzg.commons.entity.po.EsmInsCompany;
 import com.jzg.commons.entity.po.InsCompanyClause;
 import com.jzg.commons.entity.po.QrBarcodeConfig;
 import com.jzg.commons.entity.po.SysUploadFiles;
+import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
@@ -87,4 +88,13 @@ public interface PlatformClient {
     @GetMapping("/manager/clause/getById")
     public InsCompanyClause getClause(@RequestParam String id);
 
+    /**
+     * 根据Id获取上传信息
+     * @param id
+     * @return
+     */
+    @GetMapping("/file/getUploadFile")
+    @Operation(summary = "根据Id获取上传信息", description = "根据Id获取上传信息")
+    public SysUploadFiles getUploadFile(String id);
+
 }

+ 2 - 2
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/build/HbCrawlerQuoteResultVoBuild.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/build/HbCrawlerQuoteResultVoBuild.java

@@ -1,10 +1,10 @@
-package com.jzg.quote.hengbang.crawler.build;
+package com.jzg.quotation.hengbang.crawler.build;
 
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.quote.hengbang.crawler.entity.response.HbCrawlerProposalResponse;
+import com.jzg.quotation.hengbang.crawler.entity.response.HbCrawlerProposalResponse;
 
 import java.util.List;
 import java.util.Map;

+ 11 - 50
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/component/HengBangCrawlerRequestComponent.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/component/HengBangCrawlerRequestComponent.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.component;
+package com.jzg.quotation.hengbang.crawler.component;
 
 import com.alibaba.fastjson.JSONObject;
 import com.jzg.commons.exception.SystemException;
@@ -7,13 +7,13 @@ import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.constant.CacheConstant;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import com.jzg.quotation.commons.utils.RequestObjectConversion;
-import com.jzg.quote.hengbang.crawler.constant.RequestConstant;
-import com.jzg.quote.hengbang.crawler.constant.enums.RequestUrl;
-import com.jzg.quote.hengbang.crawler.entity.dto.HbEncDTO;
-import com.jzg.quote.hengbang.crawler.entity.request.*;
-import com.jzg.quote.hengbang.crawler.entity.response.*;
-import com.jzg.quote.hengbang.crawler.properties.HengBangCrawlerProperties;
-import com.jzg.quote.hengbang.crawler.utils.HengBangAESUtil;
+import com.jzg.quotation.hengbang.crawler.constant.RequestConstant;
+import com.jzg.quotation.hengbang.crawler.constant.enums.RequestUrl;
+import com.jzg.quotation.hengbang.crawler.entity.dto.HbEncDTO;
+import com.jzg.quotation.hengbang.crawler.entity.request.*;
+import com.jzg.quotation.hengbang.crawler.entity.response.*;
+import com.jzg.quotation.hengbang.crawler.properties.HengBangCrawlerProperties;
+import com.jzg.quotation.hengbang.crawler.utils.HengBangAESUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RMap;
@@ -57,53 +57,14 @@ public class HengBangCrawlerRequestComponent {
         if (frequency <= 0) {
             throw new SystemException("验证码异常");
         }
-        HbCrawlerCaptchaRequest captchaRequest = new HbCrawlerCaptchaRequest();
         // 请求
-        HbCrawlerCaptchaResponse HbCrawlerCaptchaResponse = requestComponent.objectPost(RequestUrl.VERIFY_CODE.getRequestUrl(hbCrawlerProperties.getBaseUrl()), JSONObject.toJSONString(captchaRequest), "", HbCrawlerCaptchaResponse.class);
+        HbCrawlerCaptchaResponse HbCrawlerCaptchaResponse = requestComponent.objectPost(RequestUrl.VERIFY_CODE.getRequestUrl(hbCrawlerProperties.getBaseUrl()), new HbCrawlerCaptchaRequest(), "", HbCrawlerCaptchaResponse.class);
         // 识别验证码
         String s = exteriorUtilsRequest.captchaIdentify(HbCrawlerCaptchaResponse.getVerifyImg());
-        try {
-            int i = processCaptcha(s);
-            s = String.valueOf(i);
-        } catch (Exception e) {
-            frequency = frequency - 1;
-            return captcha(frequency);
-        }
         HbCrawlerCaptchaResponse.setVerifyCode(s);
         return HbCrawlerCaptchaResponse;
     }
 
-    public int processCaptcha(String res) {
-        // 检查字符串长度是否足够,并且第三个字符不是'='
-        if (res.length() >= 3 && res.charAt(2) != '=') {
-            char operator = res.charAt(1);
-            try {
-                int operand1 = Integer.parseInt(res.substring(0, 1));
-                int operand2 = Integer.parseInt(res.substring(2, 3));
-                // 注意:这里假设操作符和操作数都是有效的,实际应用中应该添加更多的错误处理
-
-                switch (operator) {
-                    case '+':
-                    case 'f': // 通常'f'不是加法运算符,但根据原代码保留
-                        return operand1 + operand2;
-                    case 'x':
-                    case 'X':
-                    case '4': // 通常'4'不是乘法运算符,但保留以匹配原代码
-                    case '9': // 通常'9'也不是乘法运算符,但保留以匹配原代码
-                        return operand1 * operand2;
-                    case '-':
-                    case 'e': // 通常'e'不是减法运算符,但根据原代码保留
-                    case '=': // 通常'='不是减法运算符,但根据原代码保留
-                    case '2': // 通常'2'也不是减法运算符,但根据原代码保留
-                        return operand1 - operand2;
-                    // 如果操作符不匹配,则获取新的验证码图片(模拟)
-                }
-            } catch (NumberFormatException ignored) {
-            }
-        }
-        throw new SystemException("");
-    }
-
     /**
      * 登录次数
      *
@@ -112,12 +73,12 @@ public class HengBangCrawlerRequestComponent {
      * @param loginsNumber 登录次数
      * @return token
      */
-    public String authenticate(String username, String password, int loginsNumber) {
+    public String  authenticate(String username, String password, int loginsNumber) {
         // 登录验证码获取
         HbCrawlerCaptchaResponse captchaResponse = captcha(RequestConstant.REQUEST_NUMBER);
         // 登录存入缓存当中
         HbCrawlerAuthenticateRequest authenticateRequest = new HbCrawlerAuthenticateRequest(captchaResponse, username, password);
-        ResponseEntity<HbCrawlerAuthenticateResponse> responseEntity = requestComponent.objectPost(RequestUrl.AUTHENTICATE.getRequestUrl(hbCrawlerProperties.getBaseUrl()), JSONObject.toJSONString(authenticateRequest), HbCrawlerAuthenticateResponse.class);
+        ResponseEntity<HbCrawlerAuthenticateResponse> responseEntity = requestComponent.objectPost(RequestUrl.AUTHENTICATE.getRequestUrl(hbCrawlerProperties.getBaseUrl()), authenticateRequest, HbCrawlerAuthenticateResponse.class);
         HbCrawlerAuthenticateResponse authenticateResponse = Optional.of(responseEntity)
                 .map(ResponseEntity::getBody)
                 .orElseThrow();

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/constant/RequestConstant.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/constant/RequestConstant.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.constant;
+package com.jzg.quotation.hengbang.crawler.constant;
 
 /**
  * @description: 常量

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/constant/enums/RequestUrl.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/constant/enums/RequestUrl.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.constant.enums;
+package com.jzg.quotation.hengbang.crawler.constant.enums;
 
 import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
 import lombok.AllArgsConstructor;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/HengBangCrawlerConfigureParameters.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/HengBangCrawlerConfigureParameters.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity;
+package com.jzg.quotation.hengbang.crawler.entity;
 
 import com.jzg.quotation.commons.standard.ConfigureParameters;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/dto/HbEncDTO.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/dto/HbEncDTO.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.dto;
+package com.jzg.quotation.hengbang.crawler.entity.dto;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/po/HbCrawlerOrder.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/po/HbCrawlerOrder.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.po;
+package com.jzg.quotation.hengbang.crawler.entity.po;
 
 import lombok.Data;
 import org.springframework.data.annotation.Id;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbBaseRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbBaseRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import java.io.Serializable;
 

+ 2 - 2
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerAuthenticateRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerAuthenticateRequest.java

@@ -1,8 +1,8 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import cn.hutool.crypto.digest.DigestUtil;
 import com.jzg.commons.text.CharsetKit;
-import com.jzg.quote.hengbang.crawler.entity.response.HbCrawlerCaptchaResponse;
+import com.jzg.quotation.hengbang.crawler.entity.response.HbCrawlerCaptchaResponse;
 import lombok.Data;
 
 import java.io.Serial;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerCalculationRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCalculationRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerCaptchaRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCaptchaRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerCoreProposalRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCoreProposalRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import lombok.Data;
 

+ 2 - 2
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerDepreciationRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerDepreciationRequest.java

@@ -1,7 +1,7 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
-import com.jzg.quote.hengbang.crawler.entity.response.HbCrawlerQueryCarResponse;
+import com.jzg.quotation.hengbang.crawler.entity.response.HbCrawlerQueryCarResponse;
 import lombok.Data;
 
 import java.io.Serial;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerFileUploadRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerFileUploadRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerGetPolicyRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerGetPolicyRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import lombok.Data;
 

+ 4 - 4
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerQueryCarRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerQueryCarRequest.java

@@ -1,5 +1,6 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -29,9 +30,7 @@ public class HbCrawlerQueryCarRequest extends HbBaseRequest {
     private static final long serialVersionUID = 2573166312583296895L;
 
     public HbCrawlerQueryCarRequest(String brand, String modelCode, Integer VehicleStyleUniqueId) {
-        this.cbitData.Brand = brand;
-        this.cbitData.ModelCode = modelCode;
-        this.cbitData.VehicleStyleUniqueId = VehicleStyleUniqueId;
+        this.cbitData = new CbitDataDTO(brand, modelCode, VehicleStyleUniqueId);
         this.pageNo = 0;
         this.pageSize = 5;
     }
@@ -43,6 +42,7 @@ public class HbCrawlerQueryCarRequest extends HbBaseRequest {
     private Integer pageSize;
 
     @Data
+    @AllArgsConstructor
     @NoArgsConstructor
     public static class CbitDataDTO implements Serializable {
         @Serial

+ 4 - 4
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerQuoteimmediatelyRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerQuoteimmediatelyRequest.java

@@ -1,11 +1,11 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.quote.hengbang.crawler.entity.HengBangCrawlerConfigureParameters;
-import com.jzg.quote.hengbang.crawler.entity.dto.HbEncDTO;
-import com.jzg.quote.hengbang.crawler.entity.response.HbCrawlerQueryCarResponse;
+import com.jzg.quotation.hengbang.crawler.entity.HengBangCrawlerConfigureParameters;
+import com.jzg.quotation.hengbang.crawler.entity.dto.HbEncDTO;
+import com.jzg.quotation.hengbang.crawler.entity.response.HbCrawlerQueryCarResponse;
 import lombok.Data;
 
 import java.io.Serial;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/request/HbCrawlerSaleInfoRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerSaleInfoRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.request;
+package com.jzg.quotation.hengbang.crawler.entity.request;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 14 - 0
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbBaseResponse.java

@@ -0,0 +1,14 @@
+package com.jzg.quotation.hengbang.crawler.entity.response;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: shenwd
+ * @date: 2025/4/7 15:45
+ **/
+public class HbBaseResponse implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 8468085174218499877L;
+}

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerAuthenticateResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerAuthenticateResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerCalculationResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerCalculationResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 6 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerCaptchaResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerCaptchaResponse.java

@@ -1,7 +1,9 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
 
 import java.io.Serial;
 
@@ -10,9 +12,12 @@ import java.io.Serial;
  * @author: shenwd
  * @date: 2025/4/7 15:45
  **/
+@EqualsAndHashCode(callSuper = true)
 @Data
 @AllArgsConstructor
+@NoArgsConstructor
 public class HbCrawlerCaptchaResponse extends HbBaseResponse{
+
     @Serial
     private static final long serialVersionUID = -8992172251538749662L;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerCoreProposalResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerCoreProposalResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerDepreciationResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerDepreciationResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerGetPolicyResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerGetPolicyResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerOrderStateResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerOrderStateResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerPayUrlResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerPayUrlResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerProposalResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerProposalResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import lombok.Data;
 

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerQueryCarResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerQueryCarResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import com.jzg.quotation.commons.filter.CarModelsFilter;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbCrawlerSaleInfoResponse.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/response/HbCrawlerSaleInfoResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
+package com.jzg.quotation.hengbang.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/properties/HengBangCrawlerProperties.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/properties/HengBangCrawlerProperties.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.properties;
+package com.jzg.quotation.hengbang.crawler.properties;
 
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;

+ 2 - 2
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/repository/HbCrawlerOrderReposiroty.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/repository/HbCrawlerOrderReposiroty.java

@@ -1,6 +1,6 @@
-package com.jzg.quote.hengbang.crawler.repository;
+package com.jzg.quotation.hengbang.crawler.repository;
 
-import com.jzg.quote.hengbang.crawler.entity.po.HbCrawlerOrder;
+import com.jzg.quotation.hengbang.crawler.entity.po.HbCrawlerOrder;
 import org.springframework.data.mongodb.repository.MongoRepository;
 import org.springframework.data.mongodb.repository.Query;
 

+ 2 - 2
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/service/HbCrawlerOrderService.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/HbCrawlerOrderService.java

@@ -1,6 +1,6 @@
-package com.jzg.quote.hengbang.crawler.service;
+package com.jzg.quotation.hengbang.crawler.service;
 
-import com.jzg.quote.hengbang.crawler.entity.po.HbCrawlerOrder;
+import com.jzg.quotation.hengbang.crawler.entity.po.HbCrawlerOrder;
 
 /**
  * @description: 恒邦财险 mongodb中操作数据

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/service/HengBangCrawlerRequest.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/HengBangCrawlerRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.service;
+package com.jzg.quotation.hengbang.crawler.service;
 
 import com.jzg.quotation.commons.service.QuotationCrawlerBaseService;
 

+ 4 - 4
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/service/Impl/HbCrawlerOrderServiceImpl.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HbCrawlerOrderServiceImpl.java

@@ -1,8 +1,8 @@
-package com.jzg.quote.hengbang.crawler.service.Impl;
+package com.jzg.quotation.hengbang.crawler.service.Impl;
 
-import com.jzg.quote.hengbang.crawler.entity.po.HbCrawlerOrder;
-import com.jzg.quote.hengbang.crawler.repository.HbCrawlerOrderReposiroty;
-import com.jzg.quote.hengbang.crawler.service.HbCrawlerOrderService;
+import com.jzg.quotation.hengbang.crawler.entity.po.HbCrawlerOrder;
+import com.jzg.quotation.hengbang.crawler.repository.HbCrawlerOrderReposiroty;
+import com.jzg.quotation.hengbang.crawler.service.HbCrawlerOrderService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;

+ 32 - 24
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.service.Impl;
+package com.jzg.quotation.hengbang.crawler.service.Impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.crypto.digest.DigestUtil;
@@ -8,25 +8,25 @@ import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
+import com.jzg.commons.entity.quote.vo.base.LoginBase;
+import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
 import com.jzg.quotation.commons.constant.InsuranceCode;
-import com.jzg.commons.entity.quote.vo.base.LoginBase;
-import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
-import com.jzg.quote.hengbang.crawler.build.HbCrawlerQuoteResultVoBuild;
-import com.jzg.quote.hengbang.crawler.component.HengBangCrawlerRequestComponent;
-import com.jzg.quote.hengbang.crawler.constant.RequestConstant;
-import com.jzg.quote.hengbang.crawler.constant.enums.RequestUrl;
-import com.jzg.quote.hengbang.crawler.entity.HengBangCrawlerConfigureParameters;
-import com.jzg.quote.hengbang.crawler.entity.dto.HbEncDTO;
-import com.jzg.quote.hengbang.crawler.entity.po.HbCrawlerOrder;
-import com.jzg.quote.hengbang.crawler.entity.request.*;
-import com.jzg.quote.hengbang.crawler.entity.response.*;
-import com.jzg.quote.hengbang.crawler.properties.HengBangCrawlerProperties;
-import com.jzg.quote.hengbang.crawler.service.HbCrawlerOrderService;
-import com.jzg.quote.hengbang.crawler.service.HengBangCrawlerRequest;
+import com.jzg.quotation.hengbang.crawler.build.HbCrawlerQuoteResultVoBuild;
+import com.jzg.quotation.hengbang.crawler.component.HengBangCrawlerRequestComponent;
+import com.jzg.quotation.hengbang.crawler.constant.RequestConstant;
+import com.jzg.quotation.hengbang.crawler.constant.enums.RequestUrl;
+import com.jzg.quotation.hengbang.crawler.entity.HengBangCrawlerConfigureParameters;
+import com.jzg.quotation.hengbang.crawler.entity.dto.HbEncDTO;
+import com.jzg.quotation.hengbang.crawler.entity.po.HbCrawlerOrder;
+import com.jzg.quotation.hengbang.crawler.entity.request.*;
+import com.jzg.quotation.hengbang.crawler.entity.response.*;
+import com.jzg.quotation.hengbang.crawler.properties.HengBangCrawlerProperties;
+import com.jzg.quotation.hengbang.crawler.service.HbCrawlerOrderService;
+import com.jzg.quotation.hengbang.crawler.service.HengBangCrawlerRequest;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
 
@@ -48,6 +48,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
     private final HbCrawlerOrderService hbCrawlerOrderService;
 
     private final HengBangCrawlerProperties hbCrawlerProperties;
+
     /**
      * 登录
      * @param loginBase 登录信息
@@ -136,7 +137,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
 
         HbCrawlerPayUrlResponse payUrlResponse = hbCrawlerRequestComponent.getPayUrl(hbCrawlerOrder.getPlyappno(), headers);
         PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
-        paymentLinkResultsVo.setPayLinkStatus("0".equals(payUrlResponse.getShowSms()) ? true : false);
+        paymentLinkResultsVo.setPayLinkStatus("0".equals(payUrlResponse.getShowSms()));
         paymentLinkResultsVo.setPaymentLink(payUrlResponse.getPayUrl());
 
         return paymentLinkResultsVo;
@@ -148,9 +149,11 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
      */
     @Override
     public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
-        AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder().getAttributionInformationVo();
+        AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder()
+                .getAttributionInformationVo();
         HttpHeaders headers = hbCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
-        HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(insuranceUploadImageVo.getOrder().getOrdersNo());
+        HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(insuranceUploadImageVo.getOrder()
+                .getOrdersNo());
         //暂时将图片默认为01,06,09,投保业务-旧车-其他资料
         Integer fileNum = 0;
         StringBuilder fileBuff = new StringBuilder();
@@ -163,19 +166,19 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
                 List<InsuranceImageVo.ImageDTO> imageBase64List = insuranceImageVo.getImageBase64List();
                 if (imageBase64List != null && !imageBase64List.isEmpty()) {
                     for (InsuranceImageVo.ImageDTO imageBase64 : imageBase64List) {
-                        if (fileBuff.length() > 0) {
+                        if (!fileBuff.isEmpty()) {
                             fileBuff.append("||");
                         }
                         fileBuff.append(imageBase64.getImageBase64Str());
-                        if (fileType.length() > 0) {
+                        if (!fileType.isEmpty()) {
                             fileType.append("||");
                         }
                         fileType.append(RequestConstant.IMAGE_TYPE);
-                        if (mark3.length() > 0) {
+                        if (!mark3.isEmpty()) {
                             mark3.append(",");
                         }
                         mark3.append(mark3Num++);
-                        fileNum+=1;
+                        fileNum += 1;
                     }
                 }
             }
@@ -204,13 +207,18 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
         getPolicyRequest.setCarMark(parameters.getLicenseNo());
         HbCrawlerGetPolicyResponse policyResponse = hbCrawlerRequestComponent.getPolicy(getPolicyRequest, headers);
         List<String> downloadUrls = new ArrayList<>();
-        List<HbCrawlerGetPolicyResponse.ResponseBodyDTO.ContentDTO> contentDTOList = policyResponse.getResponseBody().getContent();
+        List<HbCrawlerGetPolicyResponse.ResponseBodyDTO.ContentDTO> contentDTOList = policyResponse.getResponseBody()
+                .getContent();
         if (contentDTOList != null && !contentDTOList.isEmpty()) {
             contentDTOList.forEach(contentDTO -> {
                 //获取参数sign的值
                 String sign = getSign(contentDTO.getPOLICY_CATEGORY(), contentDTO.getBUSINESS_NO());
                 StringBuilder downloadUrl = new StringBuilder(RequestUrl.DOWNLOAD_POLICY.getRequestUrl(hbCrawlerProperties.getBaseUrl()));
-                downloadUrl.append(contentDTO.getPOLICY_CATEGORY()).append("/").append(contentDTO.getBUSINESS_NO()).append("?sign=").append(sign);
+                downloadUrl.append(contentDTO.getPOLICY_CATEGORY())
+                        .append("/")
+                        .append(contentDTO.getBUSINESS_NO())
+                        .append("?sign=")
+                        .append(sign);
                 downloadUrls.add(downloadUrl.toString());
             });
         }

+ 1 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/utils/HengBangAESUtil.java → tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/utils/HengBangAESUtil.java

@@ -1,4 +1,4 @@
-package com.jzg.quote.hengbang.crawler.utils;
+package com.jzg.quotation.hengbang.crawler.utils;
 
 import com.jzg.commons.text.CharsetKit;
 

+ 0 - 11
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quote/hengbang/crawler/entity/response/HbBaseResponse.java

@@ -1,11 +0,0 @@
-package com.jzg.quote.hengbang.crawler.entity.response;
-
-import java.io.Serializable;
-
-/**
- * @description:
- * @author: shenwd
- * @date: 2025/4/7 15:45
- **/
-public class HbBaseResponse implements Serializable {
-}

+ 5 - 1
tenant/insurance/quotation-summary/pom.xml

@@ -101,7 +101,11 @@
             <version>1.0-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
-
+        <dependency>
+            <groupId>com.jzg</groupId>
+            <artifactId>quotation-hengbang</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
         <dependency>
             <groupId>com.jzg</groupId>
             <artifactId>quotation-ansheng</artifactId>

+ 99 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/cache/RedisCacheUtil.java

@@ -0,0 +1,99 @@
+package com.jzg.quotation.taikang.crawler.cache;
+
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.jzg.quotation.taikang.crawler.model.TKLoginSession;
+import com.jzg.quotation.taikang.crawler.model.api.PreciseInitResult;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.redisson.api.RBucket;
+import org.redisson.api.RMap;
+import org.redisson.api.RedissonClient;
+import org.springframework.stereotype.Component;
+
+import java.time.Duration;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+@Slf4j
+@Component
+public class RedisCacheUtil {
+
+
+    @Resource
+    private RedissonClient redissonClient;
+    private static final String SESSION = "SESSION";
+
+
+    /**
+     * 泰康session缓存
+     *
+     * @param session
+     * @param userName
+     */
+    public void setSessionCache(TKLoginSession session, String userName) {
+
+        String response = JSONObject.toJSONString(session);
+        RBucket<String> bucket = redissonClient.getBucket(SESSION + userName);
+        bucket.set(response, Duration.ofHours(3L));
+
+    }
+
+    /**
+     * 获取缓存中的session
+     *
+     * @param userName
+     * @return
+     */
+    public TKLoginSession getSessionCache(String userName) {
+
+        RBucket<String> bucket1 = redissonClient.getBucket(SESSION + userName);
+        return JSON.parseObject(bucket1.get(), TKLoginSession.class);
+
+    }
+
+    /**
+     * 缓存泰康报价返回数据
+     *
+     * @param preciseInitResult
+     * @param ordersNo
+     */
+    public void setPreciseInitResult(PreciseInitResult preciseInitResult, String ordersNo) {
+        String response = JSONObject.toJSONString(preciseInitResult);
+        RBucket<String> bucket = redissonClient.getBucket(ordersNo);
+        bucket.set(response, Duration.ofHours(6L));
+    }
+
+    /**
+     * 获取泰康报价返回数据
+     *
+     * @param ordersNo
+     * @return
+     */
+    public PreciseInitResult getPreciseInitResult(String ordersNo) {
+        RBucket<String> bucket1 = redissonClient.getBucket(ordersNo);
+        return JSON.parseObject(bucket1.get(), PreciseInitResult.class);
+    }
+
+    /**
+     * 缓存数据
+     *
+     * @param cacheInfo
+     * @param key
+     * @param sign
+     */
+    public void setCache(String cacheInfo, String key, String sign) {
+        String response = JSONObject.toJSONString(cacheInfo);
+        RBucket<String> bucket = redissonClient.getBucket(key + sign);
+        bucket.set(response, Duration.ofHours(3L));
+    }
+
+    public String getCache(String key, String sign) {
+        RBucket<String> bucket1 = redissonClient.getBucket(key + sign);
+        return bucket1.get();
+    }
+
+
+}

+ 2 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/CarModelinfoQueryResult.java

@@ -137,6 +137,8 @@ public class CarModelinfoQueryResult extends UnknownFieldEntity {
         private String autoQueryCarFlag;
 
         private String transferDate;
+
+        private String engineModel;
     }
 
     @Setter

+ 3 - 1
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000012Param.java

@@ -5,13 +5,15 @@ import com.jzg.quotation.taikang.crawler.model.entity.TKInsureInfo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 @Setter
 @Getter
 public class TKEntranceFor000012Param extends OrderRequest {
     /**
      * 渠道特约列表(此处为空)
      */
-    //private List<Object> channelEngages;
+    private List<Object> channelEngages;
 
     /**
      * 潜在客户ID(此处为空)

+ 19 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000021Param.java

@@ -0,0 +1,19 @@
+package com.jzg.quotation.taikang.crawler.model.api;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class TKEntranceFor000021Param {
+
+    @JSONField(name = "orderID")
+    private String orderID;
+    @JSONField(name = "fromId")
+    private String fromId;
+    @JSONField(name = "channelCode")
+    private String channelCode;
+    @JSONField(name = "previousStep")
+    private String previousStep;
+}

+ 226 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000021Result.java

@@ -0,0 +1,226 @@
+package com.jzg.quotation.taikang.crawler.model.api;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.taikang.crawler.client.BaseResponse;
+import com.jzg.quotation.taikang.crawler.client.UnknownFieldEntity;
+import lombok.Data;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.apache.poi.ss.formula.functions.T;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class TKEntranceFor000021Result extends UnknownFieldEntity {
+
+    @Setter
+    @Getter
+    public static class Response extends BaseResponse<TKEntranceFor000021Result> {
+
+    }
+
+
+    @JsonProperty("proxyFlag")
+    private String proxyFlag;
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+    @JsonProperty("brandName")
+    private String brandName;
+    @JsonProperty("underWriteFlag")
+    private String underWriteFlag;
+    @JsonProperty("appliName")
+    private String appliName;
+    @JsonProperty("ruleMessage")
+    private List<String> ruleMessage;
+    @JsonProperty("appliNature")
+    private String appliNature;
+    @JsonProperty("lifeAgentPhone")
+    private String lifeAgentPhone;
+    @JsonProperty("fromID")
+    private String fromID;
+    @JsonProperty("fromId")
+    private String fromId;
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+    @JsonProperty("lifeAgentName")
+    private String lifeAgentName;
+    @JsonProperty("proposalNoEnc")
+    private String proposalNoEnc;
+    @JsonProperty("appliIdentifyType")
+    private String appliIdentifyType;
+    @JsonProperty("underwriteReason")
+    private List<?> underwriteReason;
+    @JsonProperty("messageCode")
+    private String messageCode;
+    @JsonProperty("insurerInfoVo")
+    private InsurerInfoVoDTO insurerInfoVo;
+    @JsonProperty("carAccident")
+    private CarAccidentDTO carAccident;
+    @JsonProperty("comCode")
+    private String comCode;
+    @JsonProperty("proposalNoCI")
+    private String proposalNoCI;
+    @JsonProperty("carCheckStatus")
+    private String carCheckStatus;
+    @JsonProperty("channelCode")
+    private String channelCode;
+
+    @NoArgsConstructor
+    @Data
+    public static class InsurerInfoVoDTO {
+        @JsonProperty("channelEngages")
+        private List<?> channelEngages;
+        @JsonProperty("messageSendFlag")
+        private String messageSendFlag;
+        @JsonProperty("policyType")
+        private String policyType;
+        @JsonProperty("comCode")
+        private String comCode;
+        @JsonProperty("appliInfo")
+        private AppliInfoDTO appliInfo;
+        @JsonProperty("carOwnerVo")
+        private CarOwnerVoDTO carOwnerVo;
+        @JsonProperty("contacts")
+        private ContactsDTO contacts;
+        @JsonProperty("insuredInfo")
+        private InsuredInfoDTO insuredInfo;
+
+        @NoArgsConstructor
+        @Data
+        public static class AppliInfoDTO {
+            @JsonProperty("birthday")
+            private String birthday;
+            @JsonProperty("invoiceFlag")
+            private String invoiceFlag;
+            @JsonProperty("sex")
+            private String sex;
+            @JsonProperty("taxNumber")
+            private String taxNumber;
+            @JsonProperty("taxRegistAddress")
+            private String taxRegistAddress;
+            @JsonProperty("appliName")
+            private String appliName;
+            @JsonProperty("withOwner")
+            private String withOwner;
+            @JsonProperty("identifyType")
+            private String identifyType;
+            @JsonProperty("serialno")
+            private String serialno;
+            @JsonProperty("bank")
+            private String bank;
+            @JsonProperty("phoneNumber")
+            private String phoneNumber;
+            @JsonProperty("identifyNumber")
+            private String identifyNumber;
+            @JsonProperty("taxpayerType")
+            private String taxpayerType;
+            @JsonProperty("taxPayer")
+            private String taxPayer;
+            @JsonProperty("insuredNature")
+            private String insuredNature;
+            @JsonProperty("authResult")
+            private String authResult;
+            @JsonProperty("taxesPhone")
+            private String taxesPhone;
+            @JsonProperty("invoiceType")
+            private String invoiceType;
+            @JsonProperty("insuredAddress")
+            private String insuredAddress;
+            @JsonProperty("account")
+            private String account;
+            @JsonProperty("email")
+            private String email;
+            @JsonProperty("isSelf")
+            private String isSelf;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class CarOwnerVoDTO {
+            @JsonProperty("insuredProvinceCname")
+            private String insuredProvinceCname;
+            @JsonProperty("insuredCityCname")
+            private String insuredCityCname;
+            @JsonProperty("sex")
+            private String sex;
+            @JsonProperty("birthDate")
+            private String birthDate;
+            @JsonProperty("phoneNo")
+            private String phoneNo;
+            @JsonProperty("carOwnerNature")
+            private String carOwnerNature;
+            @JsonProperty("insuredProvinceCode")
+            private String insuredProvinceCode;
+            @JsonProperty("authResult")
+            private String authResult;
+            @JsonProperty("name")
+            private String name;
+            @JsonProperty("id")
+            private String id;
+            @JsonProperty("insuredAddress")
+            private String insuredAddress;
+            @JsonProperty("insuredCityCode")
+            private String insuredCityCode;
+            @JsonProperty("certificateType")
+            private String certificateType;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ContactsDTO {
+            @JsonProperty("phoneNumber")
+            private String phoneNumber;
+            @JsonProperty("identifyNumber")
+            private String identifyNumber;
+            @JsonProperty("name")
+            private String name;
+            @JsonProperty("identifyType")
+            private String identifyType;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class InsuredInfoDTO {
+            @JsonProperty("birthday")
+            private String birthday;
+            @JsonProperty("sex")
+            private String sex;
+            @JsonProperty("withApplyer")
+            private String withApplyer;
+            @JsonProperty("withOwner")
+            private String withOwner;
+            @JsonProperty("identifyType")
+            private String identifyType;
+            @JsonProperty("serialno")
+            private String serialno;
+            @JsonProperty("phoneNumber")
+            private String phoneNumber;
+            @JsonProperty("identifyNumber")
+            private String identifyNumber;
+            @JsonProperty("insuredNature")
+            private String insuredNature;
+            @JsonProperty("authResult")
+            private String authResult;
+            @JsonProperty("insuredAddress")
+            private String insuredAddress;
+            @JsonProperty("insuredName")
+            private String insuredName;
+            @JsonProperty("email")
+            private String email;
+            @JsonProperty("isSelf")
+            private String isSelf;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CarAccidentDTO {
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+        @JsonProperty("insureCounts")
+        private Integer insureCounts;
+    }
+}

+ 47 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000052Param.java

@@ -0,0 +1,47 @@
+package com.jzg.quotation.taikang.crawler.model.api;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class TKEntranceFor000052Param {
+    @JsonProperty("channelCode")
+    private String channelCode;
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+    @JsonProperty("payFee")
+    private String payFee;
+    @JsonProperty("businessType")
+    private String businessType;
+    @JsonProperty("isGetIssueCode")
+    private String isGetIssueCode;
+    @JsonProperty("isElectronInsure")
+    private String isElectronInsure;
+    @JsonProperty("applicantNature")
+    private String applicantNature;
+    @JsonProperty("identifyType")
+    private Object identifyType;
+    @JsonProperty("insuredNature")
+    private String insuredNature;
+    @JsonProperty("userNatureCode")
+    private String userNatureCode;
+    @JsonProperty("seatCount")
+    private String seatCount;
+    @JsonProperty("fromId")
+    private String fromId;
+    @JsonProperty("acceptDate")
+    private Object acceptDate;
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+    @JsonProperty("nonCarProposalNo")
+    private String nonCarProposalNo;
+    @JsonProperty("contactidentifytype")
+    private String contactidentifytype;
+    @JsonProperty("proposalNoCI")
+    private String proposalNoCI;
+    @JsonProperty("companyCode")
+    private String companyCode;
+}

+ 58 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000052Result.java

@@ -0,0 +1,58 @@
+package com.jzg.quotation.taikang.crawler.model.api;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.taikang.crawler.client.BaseResponse;
+import com.jzg.quotation.taikang.crawler.client.UnknownFieldEntity;
+import lombok.Data;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@NoArgsConstructor
+@Data
+public class TKEntranceFor000052Result extends UnknownFieldEntity {
+
+    @Setter
+    @Getter
+    public static class Response extends BaseResponse<TKEntranceFor000052Result> {
+
+    }
+
+
+    @JsonProperty("familyUserFlag")
+    private String familyUserFlag;
+    @JsonProperty("signProposalFlag")
+    private String signProposalFlag;
+    @JsonProperty("proposalButtonFlag")
+    private String proposalButtonFlag;
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+    @JsonProperty("licenseNoMask")
+    private String licenseNoMask;
+    @JsonProperty("isElectronInsure")
+    private String isElectronInsure;
+    @JsonProperty("verificationCodeFlag")
+    private String verificationCodeFlag;
+    @JsonProperty("seatCount")
+    private String seatCount;
+    @JsonProperty("fromId")
+    private String fromId;
+    @JsonProperty("proposalNo")
+    private String proposalNo;
+    @JsonProperty("userNatureCode")
+    private String userNatureCode;
+    @JsonProperty("realName")
+    private String realName;
+    @JsonProperty("isGetIssueCode")
+    private String isGetIssueCode;
+    @JsonProperty("insuredNature")
+    private String insuredNature;
+    @JsonProperty("businessType")
+    private String businessType;
+    @JsonProperty("AppliNature")
+    private String appliNature;
+    @JsonProperty("proposalNoCI")
+    private String proposalNoCI;
+    @JsonProperty("issueCode")
+    private String issueCode;
+}

+ 1 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKEntranceFor000086Param.java

@@ -13,4 +13,5 @@ public class TKEntranceFor000086Param extends OrderRequest {
     private String initFlag;
     private String isAgentFlag;
     private String proposalNo;
+    private String userType;
 }

+ 41 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKReceiveParam.java

@@ -0,0 +1,41 @@
+package com.jzg.quotation.taikang.crawler.model.api;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class TKReceiveParam {
+    @JsonProperty("businessId")
+    private String businessId;
+    @JsonProperty("orderNo")
+    private String orderNo;
+    @JsonProperty("policyNo")
+    private String policyNo;
+    @JsonProperty("tradeNo")
+    private String tradeNo;
+    @JsonProperty("productCode")
+    private String productCode;
+    @JsonProperty("productName")
+    private String productName;
+    @JsonProperty("applyCode")
+    private String applyCode;
+    @JsonProperty("applyName")
+    private String applyName;
+    @JsonProperty("certifyType")
+    private String certifyType;
+    @JsonProperty("certifyCode")
+    private String certifyCode;
+    @JsonProperty("source")
+    private String source;
+    @JsonProperty("status")
+    private String status;
+    @JsonProperty("fromId")
+    private String fromId;
+    @JsonProperty("reservation1")
+    private String reservation1;
+    @JsonProperty("reservation2")
+    private String reservation2;
+}

+ 36 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKReceiveParam2.java

@@ -0,0 +1,36 @@
+package com.jzg.quotation.taikang.crawler.model.api;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class TKReceiveParam2 {
+    @JSONField(name = "businessId")
+    private String businessId;
+    @JSONField(name = "orderNo")
+    private String orderNo;
+    @JSONField(name = "policyNo")
+    private String policyNo;
+    @JSONField(name = "tradeNo")
+    private String tradeNo;
+    @JSONField(name = "productCode")
+    private String productCode;
+    @JSONField(name = "productName")
+    private String productName;
+    @JSONField(name = "applyCode")
+    private String applyCode;
+    @JSONField(name = "applyName")
+    private String applyName;
+    @JSONField(name = "certifyType")
+    private String certifyType;
+    @JSONField(name = "certifyCode")
+    private String certifyCode;
+    @JSONField(name = "source")
+    private String source;
+    @JSONField(name = "status")
+    private Integer status;
+    @JSONField(name = "token")
+    private String token;
+}

+ 20 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/model/api/TKReceiveResult.java

@@ -0,0 +1,20 @@
+package com.jzg.quotation.taikang.crawler.model.api;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class TKReceiveResult {
+
+    @JsonProperty("status")
+    private Integer status;
+    @JsonProperty("statusText")
+    private String statusText;
+    @JsonProperty("data")
+    private Object data;
+    @JsonProperty("extra")
+    private Object extra;
+}

+ 81 - 1
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKHttpAPIService.java

@@ -977,6 +977,8 @@ public class TKHttpAPIService {
         param.setFromID(fromId);
         param.setOrderID(orderId);
         param.setInsureInfo(insureInfo);
+        param.setAuthFailContinueFlag("");
+        param.setChannelEngages(new ArrayList<>());
 
         EntranceResult.Response response = entranceForJson(token, param, "000012", EntranceResult.Response.class);
 
@@ -1021,7 +1023,6 @@ public class TKHttpAPIService {
         param.setCollectFlag("");
         param.setRetrospectId(UUID.randomUUID().toString());
         param.setReadTime("");
-        param.setProposalType(2);
         param.setLeadsid("");
         param.setChannelEngages(new ArrayList<>());
 
@@ -1046,6 +1047,7 @@ public class TKHttpAPIService {
         param.setFullProposalNo(fullProposalNo);
         param.setInitFlag("3");
         param.setIsAgentFlag("1");
+        param.setUserType("渠道");
 
         TKEntranceFor000086Result.Response response = entranceForDecrypt(token, param, "000086", TKEntranceFor000086Result.Response.class);
 
@@ -1248,4 +1250,82 @@ public class TKHttpAPIService {
 
         client.uploadFileWithParams(HttpURL.carCheckUploadFile, formData, file);
     }
+
+    public TKEntranceFor000021Result entranceFor000021(String token, String fromId, String mainOrderId) {
+        TKEntranceFor000021Param param = new TKEntranceFor000021Param();
+        param.setChannelCode("OffWeb");
+        param.setFromId(fromId);
+        param.setOrderID(mainOrderId);
+        param.setPreviousStep("080000");
+
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.add("tkCarRequestToken", token);
+        httpHeaders.add("Actiontype", "000021");
+
+        StringResponse response = client.request(HttpURL.entrance, param, httpHeaders, StringResponse.class);
+        TKEntranceFor000021Result.Response decrypt = decrypt(response, TKEntranceFor000021Result.Response.class);
+
+
+        return decrypt.getData();
+    }
+
+    public TKEntranceFor000052Result entranceFor000052(String token, TKEntranceFor000038Result tkEntranceFor000038Result) {
+
+        TKEntranceFor000052Param param = new TKEntranceFor000052Param();
+        param.setApplicantNature(tkEntranceFor000038Result.getApplicantNature());
+        param.setAcceptDate(null);
+        param.setBusinessType(tkEntranceFor000038Result.getBusinessType());
+        param.setCompanyCode(tkEntranceFor000038Result.getComCode());
+        param.setIdentifyType(null);
+        param.setChannelCode("OffWeb");
+        param.setContactidentifytype("01");
+        param.setFromId(tkEntranceFor000038Result.getFromId());
+        param.setInsuredNature(tkEntranceFor000038Result.getInsuredNature());
+        param.setIsElectronInsure(tkEntranceFor000038Result.getIsElectronInsure());
+        param.setIsGetIssueCode(tkEntranceFor000038Result.getIsGetIssueCode());
+        param.setLicenseNo(tkEntranceFor000038Result.getLicenseNoEn());
+        param.setNonCarProposalNo(tkEntranceFor000038Result.getNonCarProposalNo());
+        param.setPayFee(tkEntranceFor000038Result.getPayFee());
+        param.setProposalNo(tkEntranceFor000038Result.getProposalNo());
+        param.setProposalNoCI(tkEntranceFor000038Result.getProposalNoCI());
+        param.setSeatCount(tkEntranceFor000038Result.getSeatCount());
+        param.setUserNatureCode(tkEntranceFor000038Result.getUserNatureCode());
+
+
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.add("tkCarRequestToken", token);
+        httpHeaders.add("Actiontype", "000052");
+        httpHeaders.add("grayFlag", "pro");
+
+        StringResponse response = client.request(HttpURL.entrance, param, httpHeaders, StringResponse.class);
+        TKEntranceFor000052Result.Response decrypt = decrypt(response, TKEntranceFor000052Result.Response.class);
+
+        return decrypt.getData();
+    }
+
+    public TKReceiveResult receiveInfo(String token, String mainOrderId, String fromId, TKEntranceFor000038Result tkEntranceFor000038Result) {
+        TKReceiveParam tkReceiveParam = new TKReceiveParam();
+        tkReceiveParam.setBusinessId(UUID.randomUUID().toString());
+        tkReceiveParam.setOrderNo("TK000013_"+ mainOrderId);
+        tkReceiveParam.setPolicyNo(tkEntranceFor000038Result.getData().getProposalNo());
+        tkReceiveParam.setTradeNo("");
+        tkReceiveParam.setProductCode("");
+        tkReceiveParam.setProductName("");
+        tkReceiveParam.setApplyCode("");
+        tkReceiveParam.setApplyName("");
+        tkReceiveParam.setCertifyCode("");
+        tkReceiveParam.setCertifyType("");
+        tkReceiveParam.setSource("PC出单");
+        tkReceiveParam.setStatus("0");
+        tkReceiveParam.setFromId(fromId);
+        tkReceiveParam.setReservation1("2021-10-28");
+        tkReceiveParam.setReservation2(tkEntranceFor000038Result.getLicenseNo());
+
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.add("token", token);
+
+        StringResponse response = client.request(HttpURL.receive, tkReceiveParam, httpHeaders, StringResponse.class);
+
+        return null;
+    }
 }

+ 6 - 1
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKSimpleService.java

@@ -1148,8 +1148,13 @@ public class TKSimpleService {
         if (preciseQuoteResult == null) {
             throw new RuntimeException("HttpService#preciseInitToQuote (核保)失败!");
         }
+        TKEntranceFor000038Result tkEntranceFor000038Result = httpService.entranceFor000038(token, tplatformId, fromId, mainOrderId);
+        //为获取支付链接预处理 TODO
+        TKEntranceFor000021Result tkEntranceFor000021Result = httpService.entranceFor000021(token, fromId, mainOrderId);
 
-        return httpService.entranceFor000038(token, tplatformId, fromId, mainOrderId);
+        TKEntranceFor000052Result tkEntranceFor000052Result = httpService.entranceFor000052(token, tkEntranceFor000038Result);
+
+        return tkEntranceFor000038Result;
     }
 
     public InitProposalResult queryCarOwner(TKLoginSession session, String mainOrderId) {

文件差異過大導致無法顯示
+ 242 - 144
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/impl/TKQuotationBaseServiceImpl.java


+ 31 - 0
tenant/insurance/quotation-taikang/src/test/http/AA.http

@@ -61,7 +61,38 @@ tkCarRequestToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXFNYXAiOiJ7XCJjYXJS
 
 {"tplatformId":"feda77e829d4dedbbd8b4e236bacfac5","agencyKeyword":"","lifeAgencyCode":"J","property":"2","orderID":"WBPC202503041644465390000","fromId":"64827","agentCode":"R35016546"}
 
+###
+
+
 
+POST https://tbonline.tk.cn/backtrack/call/uatuadmin/retrospect/receive
+token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXFNYXAiOiJ7XCJjYXJSZXF1ZXN0SWRcIjpcIlRPS0UyMDI1MDgwNjA4NTMyMjE5MTAwMDBcIn0iLCJpc3MiOiJ0ay5jbiIsImV4cCI6MTc1NDUyODAwMn0.G9VR0lh0-nd2DqN8avxdSF8A5c4YcYgZqHACbI_Tc4o
+Content-Type: application/json
 
+{"businessId":"91b3d0f8-ce30-4887-85d9-52268dffb3c9","orderNo":"TK000013_WBPC202508061119463220000","policyNo":"00671070807142500000030883","tradeNo":"","productCode":"","productName":"","applyCode":"","applyName":"","certifyType":"","certifyCode":"","source":"PC出单","status":"0","fromId":"67107","reservation1":"2021-10-28","reservation2":""}
+
+### 获取状态
+POST https://car.tk.cn/carSelfService/rest/groupOrder/getNewNoticeStatus
+Content-Type: application/json
+tkCarRequestToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXFNYXAiOiJ7XCJjYXJSZXF1ZXN0SWRcIjpcIlRPS0UyMDI1MDgwNjE0NTcyNjE4OTAwMDBcIn0iLCJpc3MiOiJ0ay5jbiIsImV4cCI6MTc1NDU0OTg0Nn0.Jg_VNBughntuGv8mLQiIW4Ndruh6nhKDHdm45EU55U4
+
+{"channelCode":"OffWeb","tplatformId":"feda77e829d4dedbbd8b4e236bacfac5"}
 
 
+### 支付链接
+
+POST https://car.tk.cn/carSelfService/rest/pay/forward
+Content-Type: application/json
+tkCarRequestToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXFNYXAiOiJ7XCJjYXJSZXF1ZXN0SWRcIjpcIlRPS0UyMDI1MDgwNzE0MTQwNjgxNzAwMDBcIn0iLCJpc3MiOiJ0ay5jbiIsImV4cCI6MTc1NDYzMzY0Nn0.WmzS0QIpNRvavWNaeuypGLAgl_fBMgwAmL2Hbp6juxg
+
+{"channelCode":"OffWeb","tplatformId":"feda77e829d4dedbbd8b4e236bacfac5","proposalNo":"00671070807142500000031398"}
+
+
+### 订单状态
+
+POST https://car.tk.cn/carSelfService/rest/controller/entrance
+Content-Type: application/json
+tkCarRequestToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXFNYXAiOiJ7XCJjYXJSZXF1ZXN0SWRcIjpcIlRPS0UyMDI1MDgwNDEwMjkzMDY5ODAwMDBcIn0iLCJpc3MiOiJ0ay5jbiIsImV4cCI6MTc1NDM2MDk3MH0.t1KbbKHDugELWQkEJSQC39I-SAaRuSfeVXOrJj4PFXw
+actionType: 000086
+
+{"channelCode":"OffWeb","orderID":"WBPC202508071701165140000","initFlag":3,"userType":"渠道 ","tplatformId":"feda77e829d4dedbbd8b4e236bacfac5","isAgentFlag":"1","fromId":"67107","proposalNo":"","fullProposalNo":""}

+ 7 - 1
tenant/insurance/quotation-zhongmei/pom.xml

@@ -23,6 +23,12 @@
             <version>1.0-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
+        <!-- HTML 解析 -->
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.16.1</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
@@ -37,4 +43,4 @@
         </plugins>
     </build>
 
-</project>
+</project>

+ 7 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/build/ZmCrawlerQuoteResultVoBuild.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.zhongmei.crawler.build;
 
 import com.jzg.commons.constants.ProductsType;
+import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
@@ -22,6 +23,12 @@ public final class ZmCrawlerQuoteResultVoBuild {
     public static QuoteResultsVo build(QuoteVo quoteVo, ZmCrawlerQuotedPriceResponse quotedPriceResponse) {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(quoteVo.getOrder().getOrdersNo());
+        quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
+        if(!"0".equals(quotedPriceResponse.getHead().getReturnCode())){
+            quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
+            quoteResultsVo.setErrorMessage(quotedPriceResponse.getHead().getReturnMessage());
+            return quoteResultsVo;
+        }
         //交强险
         quoteResultsVo.setCiRiskInfoVo(buildCiInfo(quotedPriceResponse));
         //商业险

+ 122 - 58
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/component/ZmCrawlerRequestComponent.java

@@ -3,6 +3,7 @@ package com.jzg.quotation.zhongmei.crawler.component;
 import cn.hutool.core.util.XmlUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.RequestComponent;
 import com.jzg.quotation.commons.constant.CacheConstant;
@@ -10,6 +11,7 @@ import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
 import com.jzg.quotation.commons.utils.DateUtil;
+import com.jzg.quotation.commons.utils.RequestObjectConversion;
 import com.jzg.quotation.zhongmei.api.constant.enums.ImageTypeEnum;
 import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quotation.zhongmei.api.entity.request.BaseRequest;
@@ -27,11 +29,14 @@ import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RBucket;
 import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
+import org.springframework.http.MediaType;
+import org.springframework.http.client.MultipartBodyBuilder;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.reactive.function.BodyInserters;
 import org.springframework.web.reactive.function.client.WebClient;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -39,9 +44,14 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import reactor.core.publisher.Mono;
 
+import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Scanner;
 
 /**
  * @description:
@@ -56,6 +66,7 @@ public class ZmCrawlerRequestComponent {
     private final WebClient webClient;
 
     private final RequestComponent requestComponent;
+    private final RestTemplate restTemplate;
 
     private final RedissonClient redissonClient;
 
@@ -186,11 +197,17 @@ public class ZmCrawlerRequestComponent {
     /**
      * 获取授权信息
      *
-     * @param username 用户名
+     * @param attributionInformationVo 用户名
      * @return 授权token
      */
-    public String getAuthorization(String username) {
-        return (String) redissonClient.getMap(CacheConstant.ZHONGMEI_AUTHORIZATION + username).get(AUTHORIZATION);
+    public String getAuthorization(AttributionInformationVo attributionInformationVo) {
+        String authorization = (String) redissonClient.getMap(CacheConstant.ZHONGMEI_AUTHORIZATION + attributionInformationVo.getUsername()).get(AUTHORIZATION);
+        if (!org.springframework.util.StringUtils.hasLength(authorization)) {
+            authorization = authenticate(attributionInformationVo.getUsername(),
+                    attributionInformationVo.getPassword(),
+                    ZmCrawlerRequestComponent.REQUEST_NUMBER);
+        }
+        return authorization;
     }
 
     /**
@@ -298,27 +315,39 @@ public class ZmCrawlerRequestComponent {
 
     /**
      * 导入影像
+     *
      * @param importRequest
+     * @param cookies
      * @return
      */
-    public ZmCrawlerImageImportResponse importImage(ZmCrawlerImageImportRequest importRequest, List<InsuranceImageVo.ImageDTO> imageDTOS) {
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.put("batchId", Collections.singletonList(importRequest.getBatchId()));
-        params.put("batchVer", Collections.singletonList(importRequest.getBatchVer()));
-        params.put("busiNo", Collections.singletonList(importRequest.getBusiNo()));
-        params.put("appCode", Collections.singletonList(importRequest.getAppCode()));
-
-        AtomicInteger index = new AtomicInteger(0);//标记数量
-        imageDTOS.forEach(image -> {
-            Map<String, Object> imageMap = new HashMap<>();
-            imageMap.put("base64", image.getImageBase64Str());
-            imageMap.put("size", image.getImageSize());
-            imageMap.put("orginalName", image.getImageName());
-            params.put("image" + (index.getAndAdd(1)), Collections.singletonList(imageMap));
-        });
-
-        return requestComponent.formData(RequestUrl.IMPORT_IMAGE.getRequestUrl(zmCrawlerProperties.getImageUrl()),
-                params, ZmCrawlerImageImportResponse.class, null).getBody();
+    public ZmCrawlerImageImportResponse importImage(ZmCrawlerImageImportRequest importRequest, List<InsuranceImageVo.ImageDTO> imageDTOS, List<String> cookies) {
+
+        MultiValueMap<String, Object> formData = RequestObjectConversion.convertMultiValueMap(importRequest);
+        JSONObject imageMap = new JSONObject();
+        String base64Str = "data:image/jpeg;base64," + imageDTOS.get(0).getImageBase64Str();
+        imageMap.put("base64", base64Str);
+        imageMap.put("size", base64Str.length());
+        imageMap.put("orginalName", imageDTOS.get(0).getImageName());
+        imageMap.put("exif", "");
+        formData.add("image0", imageMap.toJSONString());
+
+        // 构建 WebClient 实例
+        WebClient webClient = WebClient.builder()
+                .baseUrl("https://image.chinacoal-ins.com")
+                .defaultHeader(HttpHeaders.COOKIE, cookies.get(1) + ";" + cookies.get(0))
+                .defaultHeader(HttpHeaders.USER_AGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
+                .defaultHeader(HttpHeaders.REFERER, "https://image.chinacoal-ins.com/SunICMS/ecm-nview/image/webScan/webScanMain.jsp")
+                .build();
+        // 发送 POST 请求
+        String response  = webClient.post()
+                .uri("/SunICMS/image/upload.action")
+                .contentType(MediaType.MULTIPART_FORM_DATA)
+                .body(BodyInserters.fromValue(formData))
+                .retrieve()
+                .bodyToMono(String.class)
+                .block();
+        ZmCrawlerImageImportResponse res = JSON.parseObject(response).getJSONObject("0").toJavaObject(ZmCrawlerImageImportResponse.class);
+        return res;
     }
 
     /**
@@ -791,7 +820,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerOrderStatusResponse orderStatusQuery(ZmCrawlerOrderStatusRequest orderStatusRequest) {
-        return request(RequestUrl.ORDER_STATUS_QUERY, orderStatusRequest, ZmCrawlerOrderStatusResponse.class);
+        Mono<ZmCrawlerOrderStatusResponse> responseMono = requestComponent.postGbk(RequestUrl.ORDER_STATUS_QUERY.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(orderStatusRequest)), ZmCrawlerOrderStatusResponse.class,new HttpHeaders());
+        ZmCrawlerOrderStatusResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -800,7 +832,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerSubmitResponse submit(ZmCrawlerSubmitRequest submitRequest) {
-        return request(RequestUrl.SUBMIT, submitRequest, ZmCrawlerSubmitResponse.class);
+        Mono<ZmCrawlerSubmitResponse> responseMono = requestComponent.postGbk(RequestUrl.SUBMIT.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(submitRequest)), ZmCrawlerSubmitResponse.class,new HttpHeaders());
+        ZmCrawlerSubmitResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -809,7 +844,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerCheckPaymentResponse checkPayment(ZmCrawlerCheckPaymentRequest checkPaymentRequest) {
-        return request(RequestUrl.CHECK_PAYMENT, checkPaymentRequest, ZmCrawlerCheckPaymentResponse.class);
+        Mono<ZmCrawlerCheckPaymentResponse> responseMono = requestComponent.postGbk(RequestUrl.CHECK_PAYMENT.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(checkPaymentRequest)), ZmCrawlerCheckPaymentResponse.class,new HttpHeaders());
+        ZmCrawlerCheckPaymentResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -818,7 +856,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerFindZfTaskResponse findZfTask(ZmCrawlerFindZfTaskRequest findZfTaskRequest) {
-        return request(RequestUrl.FIND_ZF_TASK, findZfTaskRequest, ZmCrawlerFindZfTaskResponse.class);
+        Mono<ZmCrawlerFindZfTaskResponse> responseMono = requestComponent.postGbk(RequestUrl.FIND_ZF_TASK.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(findZfTaskRequest)), ZmCrawlerFindZfTaskResponse.class,new HttpHeaders());
+        ZmCrawlerFindZfTaskResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -827,7 +868,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerOrderApplyResponse orderApply(ZmCrawlerOrderApplyRequest orderApplyRequest) {
-        return request(RequestUrl.ORDER_APPLY, orderApplyRequest, ZmCrawlerOrderApplyResponse.class);
+        Mono<ZmCrawlerOrderApplyResponse> responseMono = requestComponent.postGbk(RequestUrl.ORDER_APPLY.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(orderApplyRequest)), ZmCrawlerOrderApplyResponse.class,new HttpHeaders());
+        ZmCrawlerOrderApplyResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -836,7 +880,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerOrderUpdateResponse orderUpdate(ZmCrawlerOrderUpdateRequest orderApplyRequest) {
-        return request(RequestUrl.ORDER_UPDATE, orderApplyRequest, ZmCrawlerOrderUpdateResponse.class);
+        Mono<ZmCrawlerOrderUpdateResponse> responseMono = requestComponent.postGbk(RequestUrl.ORDER_UPDATE.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(orderApplyRequest)), ZmCrawlerOrderUpdateResponse.class,new HttpHeaders());
+        ZmCrawlerOrderUpdateResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -845,7 +892,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerGetQrCodeResponse getQrCode(ZmCrawlerGetQrCodeRequest qrCodeRequest) {
-        return request(RequestUrl.ACHIEVE_QR_CODE, qrCodeRequest, ZmCrawlerGetQrCodeResponse.class );
+        Mono<ZmCrawlerGetQrCodeResponse> responseMono = requestComponent.postGbk(RequestUrl.ACHIEVE_QR_CODE.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(qrCodeRequest)), ZmCrawlerGetQrCodeResponse.class,new HttpHeaders());
+        ZmCrawlerGetQrCodeResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -854,7 +904,10 @@ public class ZmCrawlerRequestComponent {
      * @return
      */
     public ZmCrawlerPolicyPrintResponse policyPrint(ZmCrawlerPolicyPrintRequest printRequest) {
-        return request(RequestUrl.POLICY_PRINT, printRequest, ZmCrawlerPolicyPrintResponse.class );
+        Mono<ZmCrawlerPolicyPrintResponse> responseMono = requestComponent.postGbk(RequestUrl.POLICY_PRINT.getRequestUrl(zmCrawlerProperties.getBaseUrl()),
+                Base64Tool.encode(JSONObject.toJSONString(printRequest)), ZmCrawlerPolicyPrintResponse.class,new HttpHeaders());
+        ZmCrawlerPolicyPrintResponse response = responseMono.block();
+        return response;
     }
 
     /**
@@ -869,31 +922,42 @@ public class ZmCrawlerRequestComponent {
     }
 
 
-    public static void main(String[] args) {
-        System.out.println(Base64Tool.encode(JSONObject.toJSONString("{\n" +
-                "            \"head\": {\n" +
-                "                \"token\": \"sinhRNuIos20250624155233333oftJ29pr\",\n" +
-                "                \"transType\": \"Req\",\n" +
-                "                \"transCode\": \"ModelsQuery\",\n" +
-                "                \"source\": \"2\"\n" +
-                "            },\n" +
-                "            \"loginCom\": \"14091100\",\n" +
-                "            \"modelName\": \"宝马BMW7201AN轿车\",\n" +
-                "            \"brand\": \"\",\n" +
-                "            \"carYear\": \"\",\n" +
-                "            \"carType\": \"\",\n" +
-                "            \"deptcode\": \"\",\n" +
-                "            \"displacement\": \"\",\n" +
-                "            \"factory\": \"\",\n" +
-                "            \"purchasepricenottaxMin\": \"\",\n" +
-                "            \"purchasepricenottaxMax\": \"\",\n" +
-                "            \"motorMainType\": \"100\",\n" +
-                "            \"modelCode\": \"\",\n" +
-                "            \"planCode\": \"1379\",\n" +
-                "            \"vin\": \"LBVKY1105LSS79828\",\n" +
-                "            \"platModelCode\": \"\"\n" +
-                "        }")));
+    public void main(String[] args) throws IOException {
+        URL url = new URL("https://image.chinacoal-ins.com/SunICMS/image/upload.action");
+        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
+        httpConn.setRequestMethod("POST");
+
+        httpConn.setRequestProperty("Accept", "*/*");
+        httpConn.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.9");
+        httpConn.setRequestProperty("Connection", "keep-alive");
+        httpConn.setRequestProperty("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundarysPT9lJRCIggU9p9g");
+        httpConn.setRequestProperty("Cookie", "lockMark=7949163776655031; skin-color=skin-db; initLeftWidth=257; JSESSIONID=TKmDo0fOt1Px11jeS2Wrn3-8w0rf9OFh_kSRI10VRfPWGTF9v-06!-1777400058");
+        httpConn.setRequestProperty("Origin", "https://image.chinacoal-ins.com");
+        httpConn.setRequestProperty("Referer", "https://image.chinacoal-ins.com/SunICMS/ecm-nview/image/webScan/webScanMain.jsp");
+        httpConn.setRequestProperty("Sec-Fetch-Dest", "empty");
+        httpConn.setRequestProperty("Sec-Fetch-Mode", "cors");
+        httpConn.setRequestProperty("Sec-Fetch-Site", "same-origin");
+        httpConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
+        httpConn.setRequestProperty("sec-ch-ua", "\"Not=A?Brand\";v=\"99\", \"Chromium\";v=\"118\"");
+        httpConn.setRequestProperty("sec-ch-ua-mobile", "?0");
+        httpConn.setRequestProperty("sec-ch-ua-platform", "\"Windows\"");
+
+        httpConn.setDoOutput(true);
+        OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
+        String template = new String(
+                getClass().getClassLoader().getResourceAsStream("template.txt").readAllBytes(),
+                StandardCharsets.UTF_8
+        );
+        writer.write(template);
+        writer.flush();
+        writer.close();
+        httpConn.getOutputStream().close();
+
+        InputStream responseStream = httpConn.getResponseCode() / 100 == 2
+                ? httpConn.getInputStream()
+                : httpConn.getErrorStream();
+        Scanner s = new Scanner(responseStream).useDelimiter("A");
+        String response = s.hasNext() ? s.next() : "";
+        System.out.println(response);
     }
-
-
 }

+ 1 - 2
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerCheckPaymentRequest.java

@@ -25,8 +25,7 @@ public class ZmCrawlerCheckPaymentRequest extends BaseRequest {
         super.getHead().setTransCode(ZmCrawlerTransCode.CHECK_PAYMENT_PROCESS);
     }
 
-    public ZmCrawlerCheckPaymentRequest(String businessNo, BaseRequestHead head) {
+    public ZmCrawlerCheckPaymentRequest(String businessNo) {
         this.businessNo = businessNo;
-        this.setHead(head);
     }
 }

+ 24 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerImageCookieRequest.java

@@ -0,0 +1,24 @@
+package com.jzg.quotation.zhongmei.crawler.entity.Request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode()
+public class ZmCrawlerImageCookieRequest {
+
+    private String proposalNo;
+    private String sessionId;
+    private String source;
+    private String isEdit;
+    private String isOuter;
+
+    public ZmCrawlerImageCookieRequest(String bussinessNo, String authorization){
+        this.proposalNo = bussinessNo;
+        this.sessionId = authorization;
+        this.source = "2";
+        this.isEdit = "1";
+        this.isOuter = "Yes";
+
+    }
+}

+ 11 - 2
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerImageImportRequest.java

@@ -1,10 +1,13 @@
 package com.jzg.quotation.zhongmei.crawler.entity.Request;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.quotation.zhongmei.crawler.constant.ZmCrawlerImageConstant;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @description: 中煤财险 影像系统导入图片 请求参数
@@ -20,21 +23,25 @@ public class ZmCrawlerImageImportRequest implements Serializable {
      * 影像上传批次号
      * UW_03@ + 投保单号,MD5加密后的字符串
      */
+    @JsonProperty("batchId")
     private String batchId;
 
     /**
      * 图片数量
      */
+    @JsonProperty("batchVer")
     private String batchVer;
 
     /**
      * 编码
      */
+    @JsonProperty("appCode")
     private String appCode = ZmCrawlerImageConstant.ZM_IMAGE_APP_CODE;
 
     /**
      * 投保单号
      */
+    @JsonProperty("busiNo")
     private String busiNo;
 
     /**
@@ -42,13 +49,15 @@ public class ZmCrawlerImageImportRequest implements Serializable {
      * 中煤真实数据 UW_0301,UW_0302...UW_0311
      * 中煤内部照片类型编码不一样,则该字段为空
      */
+    @JsonProperty("docCode")
     private String docCode;
 
-    public ZmCrawlerImageImportRequest(Integer batchVer, String busiNo, String imageCode, String batchId) {
+    public ZmCrawlerImageImportRequest(List<InsuranceImageVo.ImageDTO> imageBase64List, String busiNo, String imageCode, String batchId) {
         this.batchId = batchId;
-        this.batchVer = String.valueOf(batchVer);
+        this.batchVer = String.valueOf(imageBase64List.size());
         this.busiNo = busiNo;
         this.docCode = generateDocCode(imageCode);
+
     }
 
     private String generateDocCode(String imageCode) {

+ 21 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Request/ZmCrawlerSubmitRequest.java

@@ -3,10 +3,13 @@ package com.jzg.quotation.zhongmei.crawler.entity.Request;
 import com.jzg.quotation.zhongmei.api.constant.TransCode;
 import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quotation.zhongmei.api.entity.request.BaseRequest;
+import com.jzg.quotation.zhongmei.crawler.entity.ZmCrawlerConfigureParameters;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @description: 中煤财险 提交核保 请求参数
@@ -33,6 +36,18 @@ public class ZmCrawlerSubmitRequest extends BaseRequest {
 
     private String loginCom;
 
+    private List<ContractMainDTO> contractMain;
+
+    public ZmCrawlerSubmitRequest(String orderNo, ZmCrawlerConfigureParameters zmCrawlerConfigureParameters){
+        this.appliType = "-1";
+        this.operateType = "1";
+        this.loginCom = zmCrawlerConfigureParameters.getComCode();
+        List<ContractMainDTO> contractMains = new ArrayList<>();
+        ContractMainDTO contractMain = new ContractMainDTO(orderNo);
+        contractMains.add(contractMain);
+        this.contractMain = contractMains;
+    }
+
     @Data
     public static class ContractMainDTO implements Serializable {
         @Serial
@@ -43,6 +58,12 @@ public class ZmCrawlerSubmitRequest extends BaseRequest {
         private String contractNo;
 
         private String remark;
+
+        public ContractMainDTO(String contractNo) {
+            this.contractNo = contractNo;
+            this.businessType = "T-1";
+            this.remark = "submit";
+        }
     }
 
     /**

+ 8 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerImageImportResponse.java

@@ -16,7 +16,14 @@ public class ZmCrawlerImageImportResponse extends BaseResponse {
     @Serial
     private static final long serialVersionUID = 2521368903956758850L;
 
-    private Map<String, Object> result;
+    private String exif;
+    private String thumPath;
+    private String filePath;
+    private String pageId;
+    private String fileName;
+    private String md5;
+    private String orginalName;
+    private String size;
 
     /**数据示例
      * {

+ 1 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/entity/Response/ZmCrawlerQuotedPriceResponse.java

@@ -21,7 +21,7 @@ public class ZmCrawlerQuotedPriceResponse extends BaseResponse {
     @Serial
     private static final long serialVersionUID = 5929122714197549712L;
 
-    @JsonProperty("bussinessMain")
+    @JsonProperty("businessData")
     private BussinessMainDTO bussinessMain;
 
     @Data

+ 225 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerQuoteProcessServiceImpl.java

@@ -0,0 +1,225 @@
+package com.jzg.quotation.zhongmei.crawler.service.Impl;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.unit.DataUnit;
+import cn.hutool.crypto.digest.DigestUtil;
+import cn.hutool.crypto.digest.MD5;
+import com.alibaba.fastjson2.JSON;
+import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.quotation.commons.component.RequestComponent;
+import com.jzg.quotation.commons.utils.RequestObjectConversion;
+import com.jzg.quotation.zhongmei.crawler.component.ZmCrawlerRequestComponent;
+import com.jzg.quotation.zhongmei.crawler.constant.ZmCrawlerImageConstant;
+import com.jzg.quotation.zhongmei.crawler.constant.enums.RequestUrl;
+import com.jzg.quotation.zhongmei.crawler.entity.Request.ZmCrawlerImageCookieRequest;
+import com.jzg.quotation.zhongmei.crawler.entity.Request.ZmCrawlerImageImportRequest;
+import com.jzg.quotation.zhongmei.crawler.entity.Response.ZmCrawlerImageImportResponse;
+import com.jzg.quotation.zhongmei.crawler.entity.po.ZmCrawlerOrder;
+import com.jzg.quotation.zhongmei.crawler.service.ZhongMeiCrawlerQuoteProcessService;
+import jodd.util.StringUtil;
+import lombok.Data;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
+import org.springframework.util.StringUtils;
+import org.springframework.web.reactive.function.client.WebClient;
+
+@Service
+@RequiredArgsConstructor
+public class ZhongMeiCrawlerQuoteProcessServiceImpl implements ZhongMeiCrawlerQuoteProcessService {
+
+    private final RequestComponent requestComponent;
+
+    private final ZmCrawlerRequestComponent zmCrawlerRequestComponent;
+
+
+    @Override
+    public void uploadImage(String authorization, ZmCrawlerOrder crawlerOrder, List<InsuranceImageVo> imageVoList) {
+
+        // 1. 获取上传页面的cookie
+        ZmCrawlerImageCookieRequest request = new ZmCrawlerImageCookieRequest(crawlerOrder.getBussinessNo(), authorization);
+        MultiValueMap<String, String> param = RequestObjectConversion.convertMultiValueStringMap(request);
+        ResponseEntity<String> response = requestComponent.baseGet(ZmCrawlerImageConstant.IMAGE_SYSTEM_URL, param, String.class,null);
+        System.out.println(response.getBody());
+        // 2. 使用 Jsoup 解析 HTML
+        Document doc = Jsoup.parse(response.getBody());
+        String actionUrl = doc.selectFirst("form[action][method]").attr("action");
+        Elements inputs = doc.select("input[value]");
+        String xml = inputs.get(0).attr("value");
+        String code = inputs.get(1).attr("value");
+        String format = inputs.get(2).attr("value");
+        System.out.println(actionUrl);
+
+        // 3. 准备 POST 请求数据
+        MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
+        parts.add("xml", xml);
+        parts.add("code", code);
+        parts.add("format", format);
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Host", "image.chinacoal-ins.com");
+        headers.set("Connection", "keep-alive");
+        headers.set("Cache-Control", "max-age=0");
+        headers.set("sec-ch-ua", "\"Chromium\";v=\"104\", \" Not A;Brand\";v=\"99\", \"Google Chrome\";v=\"104\"");
+        headers.set("sec-ch-ua-mobile", "?0");
+        headers.set("sec-ch-ua-platform", "\"Windows\"");
+        headers.set("Upgrade-Insecure-Requests", "1");
+        headers.set("Origin", "https://hxkscd.chinacoal-ins.com");
+        headers.set("Content-Type", "application/x-www-form-urlencoded");
+        headers.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36");
+        headers.set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");
+        headers.set("Sec-Fetch-Site", "same-site");
+        headers.set("Sec-Fetch-Mode", "navigate");
+        headers.set("Sec-Fetch-Dest", "document");
+        headers.set("Referer", "https://hxkscd.chinacoal-ins.com/");
+        headers.set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
+        ResponseEntity<String> res = requestComponent.formData(actionUrl,parts,String.class,headers);
+        System.out.println(res.getBody());
+        String responseText = res.getBody();
+        // 5. 提取 XML 返回内容
+        String userCode = extract(responseText, "<USER_CODE>(.*?)</USER_CODE>");
+        String userName = extract(responseText, "<USER_NAME>(.*?)</USER_NAME>");
+        String orgName = extract(responseText, "<ORG_NAME>(.*?)</ORG_NAME>");
+        String orgCode = extract(responseText, "<ORG_CODE>(.*?)</ORG_CODE>");
+        List<String> cookies = res.getHeaders().get("Set-Cookie");
+        if (StringUtil.isEmpty(userCode)) {
+            throw new SystemException("获取上传图片cookie失败!");
+        }
+        System.out.println("CREATE_USER = " + userCode);
+        System.out.println("CREATE_USERNAME = " + userName);
+        System.out.println("UPLOAD_ORG = " + orgName);
+        System.out.println("BIZ_ORG = " + orgCode);
+        StringBuffer sbAppend = new StringBuffer();
+        StringBuffer UW_0301 = new StringBuffer();
+        StringBuffer UW_0305 = new StringBuffer();
+        StringBuffer UW_0302 = new StringBuffer();
+        // 6.导入图片并组装提交入参
+        String batchId = MD5.create().digestHex(ZmCrawlerImageConstant.ZM_IMAGE_BATCHID_PRE + crawlerOrder.getBussinessNo());
+        //导入影像
+        String now = DateUtil.now();
+        for (InsuranceImageVo image : imageVoList) {
+            List<InsuranceImageVo.ImageDTO> imageBase64List = image.getImageBase64List();
+            if (imageBase64List != null && !imageBase64List.isEmpty()) {
+                //判断照片类型是否属于中煤影像类型,不属于则默认为01
+                String codeStr = Arrays.stream(ZmCrawlerImageConstant.ZM_IMAGE_TYPE).collect(Collectors.toList()).contains(image.getImageCode()) ? image.getImageCode() : "01";
+                ZmCrawlerImageImportRequest imageImportRequest = new ZmCrawlerImageImportRequest(imageBase64List, crawlerOrder.getBussinessNo(), codeStr, batchId);
+                ZmCrawlerImageImportResponse importResponse = zmCrawlerRequestComponent.importImage(imageImportRequest, imageBase64List,cookies);
+                if(Objects.isNull(importResponse)){
+                    throw new SystemException("上传图片失败!");
+                }
+                sbAppend.append(String.format(
+                        "<PAGE PAGEID=\"%s\">\n" +
+                                "  <CREATE_USER>%s</CREATE_USER>\n" +
+                                "  <CREATE_USERNAME>%s</CREATE_USERNAME>\n" +
+                                "  <CREATE_TIME>%s</CREATE_TIME>\n" +
+                                "  <MODIFY_USER>%s</MODIFY_USER>\n" +
+                                "  <MODIFY_TIME>%s</MODIFY_TIME>\n" +
+                                "  <PAGE_URL>%s</PAGE_URL>\n" +
+                                "  <THUM_URL>%s</THUM_URL>\n" +
+                                "  <IS_LOCAL>0</IS_LOCAL>\n" +
+                                "  <PAGE_VER>1</PAGE_VER>\n" +
+                                "  <PAGE_DESC>%s</PAGE_DESC>\n" +
+                                "  <UPLOAD_ORG>%s</UPLOAD_ORG>\n" +
+                                "  <PAGE_CRC/>\n" +
+                                "  <PAGE_SIZE>%s</PAGE_SIZE>\n" +
+                                "  <PAGE_FORMAT>image/jpeg</PAGE_FORMAT>\n" +
+                                "  <PAGE_ENCRYPT>0</PAGE_ENCRYPT>\n" +
+                                "  <ORIGINAL_NAME>%s.jpg</ORIGINAL_NAME>\n" +
+                                "  <PAGE_DESCS/>\n" +
+                                "  <PAGE_EXT/>\n" +
+                                "</PAGE>",
+                        importResponse.getPageId(), userCode, userName, now,
+                        userCode, now, importResponse.getFilePath(), importResponse.getThumPath(),
+                        importResponse.getOrginalName(), orgName, importResponse.getSize(), importResponse.getOrginalName())
+                );
+                String imgtype = image.getImageCode();
+                if ("C05".equals(imgtype)) {
+                    UW_0301.append("<LEAF>" + importResponse.getPageId() + "</LEAF>");
+                } else if ("C01".equals(imgtype) || "D01".equals(imgtype)) {
+                    UW_0305.append("<LEAF>" + importResponse.getPageId() + "</LEAF>");
+                } else {
+                    UW_0302.append("<LEAF>" + importResponse.getPageId() + "</LEAF>");
+                }
+            }
+        }
+
+        // 拼接 XML
+        String data = "xmlStr=" +
+                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+                "<doc version=\"1.2\">" +
+                "<DocInfo>" +
+                "<BATCH_ID>" + DigestUtil.md5Hex("UW_03@" + crawlerOrder.getBussinessNo()) + "</BATCH_ID>" +
+                "<BUSI_NUM>" + crawlerOrder.getBussinessNo() + "</BUSI_NUM>" +
+                "<BIZ_ORG>" + orgCode + "</BIZ_ORG>" +
+                "<APP_CODE>UW_03</APP_CODE>" +
+                "<APP_NAME>承保车险</APP_NAME>" +
+                "<BATCH_VER>1</BATCH_VER>" +
+                "<INTER_VER>1</INTER_VER>" +
+                "<STATUS>1</STATUS>" +
+                "<CREATE_USER>" + userCode + "</CREATE_USER>" +
+                "<CREATE_DATE>" + now + "</CREATE_DATE>" +
+                "<MODIFY_USER>" + userCode + "</MODIFY_USER>" +
+                "<MODIFY_DATE>" + now + "</MODIFY_DATE>" +
+                "<DOC_EXT>" +
+                "<EXT_ATTR ID=\"BUSI_NO\" NAME=\"业务编号\" IS_SHOW=\"1\" IS_KEY=\"1\" IS_NULL=\"0\" INPUT_TYPE=\"1\">" + crawlerOrder.getBussinessNo() + "</EXT_ATTR>" +
+                "</DOC_EXT>" +
+                "</DocInfo>" +
+                "<PageInfo>" + sbAppend + "</PageInfo>" +
+                "<VTREE APP_CODE=\"UW_03\" APP_NAME=\"承保车险\">" +
+                "<NODE ID=\"UW_0302\" NAME=\"个人客户资料\">" + UW_0302 + "</NODE>" +
+                "<NODE ID=\"UW_0305\" NAME=\"车辆资料\">" + UW_0305 + "</NODE>" +
+                // 如果 UW_0301 要加,取消注释
+                // "<NODE ID=\"UW_0301\" NAME=\"验车资料\">" +
+                // UW_0301 +
+                // "</NODE>" +
+                "</VTREE>" +
+                "</doc>&svrIp=10.1.16.132&svrPort=8025";
+
+        // 去掉换行、制表符
+        data = data.replace("\n", "").replace("\r", "").replace("\t", "");
+        // URL 编码
+        String dataEncoded = URLEncoder.encode(data, StandardCharsets.UTF_8);
+        WebClient client = WebClient.builder()
+                .baseUrl("https://image.chinacoal-ins.com")
+                .defaultHeader("Cookie", cookies.get(1) + ";" + cookies.get(0))
+                .defaultHeader("Referer", "https://image.chinacoal-ins.com/SunICMS/ecm-nview/image/webScan/webScanMain.jsp")
+                .defaultHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36")
+                .build();
+
+        String result = client.post()
+                .uri("/SunICMS/image/upload2trm.action")
+                .contentType(MediaType.valueOf("text/plain;charset=UTF-8"))
+                .bodyValue(dataEncoded)
+                .retrieve()
+                .bodyToMono(String.class)
+                .block();
+        System.out.println(result);
+
+    }
+
+    private static String extract(String text, String pattern) {
+        Matcher matcher = Pattern.compile(pattern).matcher(text);
+        return matcher.find() ? matcher.group(1) : "";
+    }
+
+    public static void main(String[] args) {
+        System.out.println(DateUtil.now());
+    }
+}

+ 24 - 53
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java

@@ -7,6 +7,7 @@ import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
 import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
+import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
 import com.jzg.quotation.commons.constant.InsuranceCode;
@@ -24,6 +25,7 @@ import com.jzg.quotation.zhongmei.crawler.entity.Response.*;
 import com.jzg.quotation.zhongmei.crawler.entity.ZmCrawlerConfigureParameters;
 import com.jzg.quotation.zhongmei.crawler.entity.dto.SaleInfoDTO;
 import com.jzg.quotation.zhongmei.crawler.entity.po.ZmCrawlerOrder;
+import com.jzg.quotation.zhongmei.crawler.service.ZhongMeiCrawlerQuoteProcessService;
 import com.jzg.quotation.zhongmei.crawler.service.ZhongMeiCrawlerRequest;
 import com.jzg.quotation.zhongmei.crawler.service.ZmCrawlerOrderService;
 import lombok.RequiredArgsConstructor;
@@ -45,6 +47,10 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
 
     private final ZmCrawlerOrderService zmCrawlerOrderService;
 
+    private final ZhongMeiCrawlerQuoteProcessService zhongMeiCrawlerQuoteProcessService;
+
+
+
     /**
      * 登录
      * @param loginBase 登录信息
@@ -66,7 +72,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
                 .getOrder()
                 .getAttributionInformationVo();
         String userCode = zmCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
-        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
+        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo);
         // 1.1 配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead head = new BaseRequestHead(authorization, "2");
@@ -86,11 +92,11 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         ZmCrawlerQuotedPriceRequest quotedPriceRequest = new ZmCrawlerQuotedPriceRequest(zmCrawlerConfigureParameters, quoteVo, saleInfoDTO, fullCarDataDTO, actualValueResponse, userCode, head);
         ZmCrawlerQuotedPriceResponse quotedPriceResponse = zmCrawlerRequestComponent.quotedPrice(quotedPriceRequest);
         // 3.1 缓存数据
-        zmCrawlerRequestComponent.cacheZmCrawlerSaveResponse(quotedPriceResponse, quotedPriceResponse.getBussinessMain().getContractMainNo());
-
-        // 4.0 保存数据
-        zmCrawlerOrderService.save(quoteVo,quotedPriceResponse);
-
+        if(quotedPriceResponse.getHead().getReturnCode().equals("0")){
+            zmCrawlerRequestComponent.cacheZmCrawlerSaveResponse(quotedPriceResponse, quotedPriceResponse.getBussinessMain().getContractMainNo());
+            // 4.0 保存数据
+            zmCrawlerOrderService.save(quoteVo,quotedPriceResponse);
+        }
         return ZmCrawlerQuoteResultVoBuild.build(quoteVo, quotedPriceResponse);
     }
 
@@ -106,16 +112,17 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         AttributionInformationVo attributionInformationVo = underwritingVo
                 .getOrder()
                 .getAttributionInformationVo();
+        ZmCrawlerOrder zmCrawlerOrder = zmCrawlerOrderService.findByOrdersNo(underwritingVo.getOrder().getOrdersNo());
         String userCode = zmCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
-        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
+        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo);
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead head = new BaseRequestHead(authorization, "2");
 
-        ZmCrawlerSubmitRequest submitRequest = new ZmCrawlerSubmitRequest();
+        ZmCrawlerSubmitRequest submitRequest = new ZmCrawlerSubmitRequest(zmCrawlerOrder.getBussinessNo(),zmCrawlerConfigureParameters);
         submitRequest.setHead(head);
         ZmCrawlerSubmitResponse submit = zmCrawlerRequestComponent.submit(submitRequest);
-        return null;
+        return new UnderwritingResultsVo();
     }
 
     /**
@@ -128,14 +135,15 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         // 1.0获取token的请求头
         AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
         String userCode = zmCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
-        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
+        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo);
         ZmCrawlerOrder crawlerOrder = zmCrawlerOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead head = new BaseRequestHead(authorization, "2");
 
         //调用检查支付状态接口
-        ZmCrawlerCheckPaymentRequest checkPaymentRequest = new ZmCrawlerCheckPaymentRequest("businessNo", head);
+        ZmCrawlerCheckPaymentRequest checkPaymentRequest = new ZmCrawlerCheckPaymentRequest("businessNo");
+        checkPaymentRequest.setHead(head);
         ZmCrawlerCheckPaymentResponse checkPaymentResponse = zmCrawlerRequestComponent.checkPayment(checkPaymentRequest);
         //调用是否存在支付订单接口
         ZmCrawlerFindZfTaskRequest findZfTaskRequest = new ZmCrawlerFindZfTaskRequest(crawlerOrder.getProposalName(), zmCrawlerConfigureParameters.getComCode(), userCode);
@@ -177,47 +185,10 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
         AttributionInformationVo attributionInformationVo = insuranceUploadImageVo
                 .getOrder()
                 .getAttributionInformationVo();
-        String userCode = zmCrawlerRequestComponent.getUserCode(attributionInformationVo.getUsername());
-        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
-        //获取配置信息
-        ZmCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
-
+        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo);
         ZmCrawlerOrder crawlerOrder = zmCrawlerOrderService.findByOrdersNo(insuranceUploadImageVo.getOrder().getOrdersNo());
-        //打开影像系统
-        zmCrawlerRequestComponent.startUploadImage(userCode.substring(0,2), authorization, crawlerOrder.getBussinessNo());
-        //生成影像批次号,如果存在多次上传该字段需保存
-        String batchId = MD5.create().digestHex(ZmCrawlerImageConstant.ZM_IMAGE_BATCHID_PRE + crawlerOrder.getBussinessNo());
-
-        //导入影像
-        ZmCrawlerImageImportResponse importResponse = null;
-        Map<String, List<Map<String, String>>> docCodeAndImage = new HashMap<>();
-        for (InsuranceImageVo image : insuranceUploadImageVo.getImageVoList()) {
-            List<InsuranceImageVo.ImageDTO> imageBase64List = image.getImageBase64List();
-            if (imageBase64List != null && !imageBase64List.isEmpty()) {
-                //判断照片类型是否属于中煤影像类型,不属于则默认为01
-                String code = Arrays.stream(ZmCrawlerImageConstant.ZM_IMAGE_TYPE).collect(Collectors.toList()).contains(image.getImageCode()) ? image.getImageCode() : "01";
-                ZmCrawlerImageImportRequest imageImportRequest = new ZmCrawlerImageImportRequest(imageBase64List.size(), crawlerOrder.getBussinessNo(), code, batchId);
-                importResponse = zmCrawlerRequestComponent.importImage(imageImportRequest, imageBase64List);
-                if (importResponse != null) {
-                    Map<String, Object> result = importResponse.getResult();
-                    List<Map<String, String>> maps = docCodeAndImage.get(imageImportRequest.getDocCode());
-                    List<Map<String, String>> imageResList = new ArrayList<>();
-                    //先判断是否存在一样的图片类型
-                    if (maps != null) {
-                        imageResList = maps;
-                    }
-                    for (int i = 0; i < result.size()-1; i++) {
-                        imageResList.add((Map<String, String>)result.get(String.valueOf(i)));
-                    }
-                    docCodeAndImage.put(imageImportRequest.getDocCode(), imageResList);
-                }
-            }
-        }
-
-        //上传影像
-        //获取已上传的影像
-        String uploadedXml = zmCrawlerRequestComponent.getUploadedImages(userCode, batchId);
-        String uploadedImages = zmCrawlerRequestComponent.submitImage(parameters, userCode, docCodeAndImage, uploadedXml, crawlerOrder);
+        // 上传影像 封装
+        zhongMeiCrawlerQuoteProcessService.uploadImage(authorization, crawlerOrder, insuranceUploadImageVo.getImageVoList());
     }
 
     /**
@@ -229,7 +200,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
     public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
         // 1.0获取token的请求头
         AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
-        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
+        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo);
         //获取配置信息
         ZmCrawlerConfigureParameters zmCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead head = new BaseRequestHead(authorization, "2");
@@ -250,7 +221,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
         OrderBase orderBase = orderStatusVo.getOrder();
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
-        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo.getUsername());
+        String authorization = zmCrawlerRequestComponent.getAuthorization(attributionInformationVo);
         //获取配置信息
         ZmCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
         BaseRequestHead requestHead = new BaseRequestHead(authorization, "2");

+ 17 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/service/ZhongMeiCrawlerQuoteProcessService.java

@@ -0,0 +1,17 @@
+package com.jzg.quotation.zhongmei.crawler.service;
+
+import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
+import com.jzg.quotation.zhongmei.crawler.entity.po.ZmCrawlerOrder;
+
+import java.util.List;
+
+public interface ZhongMeiCrawlerQuoteProcessService {
+
+    /**
+     * 上传影像
+     * @param authorization
+     * @param crawlerOrder
+     * @param imageVoList
+     */
+    void uploadImage(String authorization, ZmCrawlerOrder crawlerOrder, List<InsuranceImageVo> imageVoList);
+}

文件差異過大導致無法顯示
+ 0 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/crawler/util/Base64Tool.java


+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/client/EsmInsCompanyClient.java

@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
-@FeignClient(name="jzg-platform",url = "http://192.168.0.250:8001/")
+@FeignClient(name="jzg-platform",url = "http://localhost:8001/")
 public interface EsmInsCompanyClient {
 
 

+ 13 - 1
tenant/organization/src/main/java/com/jzg/organization/controller/AccountCardController.java

@@ -35,7 +35,7 @@ public class AccountCardController extends BaseController {
      * @return
      */
     @PostMapping("/cardList")
-    @Operation(summary = "协议列表分页")
+    @Operation(summary = "账户列表分页")
     public HttpResult cardList(@RequestBody AccountCardParam param){
         Page<AccountCardVo> result = accountCardService.queryPage(param);
         return HttpResult.ok(result);
@@ -91,4 +91,16 @@ public class AccountCardController extends BaseController {
         accountCardService.cardEdit(param);
         return HttpResult.ok("修改成功");
     }
+
+    /**
+     * 批量删除协议
+     *
+     * @param id 主键id
+     */
+    @Operation(summary = "删除账户")
+    @DeleteMapping("/cardDelete")
+    public HttpResult cardDelete(String id) {
+        boolean b = accountCardService.removeById(id);
+        return HttpResult.ok(b ? "删除成功":"删除失败");
+    }
 }

+ 30 - 2
tenant/organization/src/main/java/com/jzg/organization/controller/AccountController.java

@@ -1,11 +1,15 @@
 package com.jzg.organization.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.aop.OperatorTrajectory;
+import com.jzg.commons.constants.OperationTypeEnum;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.account.dto.*;
 import com.jzg.commons.entity.account.vo.AccountVo;
+import com.jzg.commons.entity.dto.AgreementAddParam;
 import com.jzg.commons.util.AssertionUtils;
+import com.jzg.organization.mapper.PtlAgreementMapper;
 import com.jzg.organization.service.InvAccountService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -14,6 +18,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Tag(name="来往企业管理接口")
 @RestController
@@ -27,13 +32,24 @@ public class AccountController extends BaseController {
      * 企业管理列表分页
      * @return
      */
-    @PostMapping("/accountList")
+    @PostMapping("/accountPage")
     @Operation(summary = "企业管理列表分页")
-    public HttpResult accountList(@RequestBody AccountParam param){
+    public HttpResult accountPage(@RequestBody AccountParam param){
         Page<AccountVo> result = accountService.queryPage(param);
         return HttpResult.ok(result);
     }
 
+    /**
+     * 企业管理列表分页
+     * @return
+     */
+    @PostMapping("/accountList")
+    @Operation(summary = "企业管理列表")
+    public HttpResult accountList(@RequestBody AccountParam param){
+        List<AccountVo> result = accountService.queryList(param);
+        return HttpResult.ok(result);
+    }
+
     /**
      * 来往企业信息查询
      * @param id
@@ -69,4 +85,16 @@ public class AccountController extends BaseController {
         accountService.accountEdit(param);
         return HttpResult.ok("修改成功");
     }
+
+    /**
+     * 批量删除协议
+     *
+     * @param id 主键串
+     */
+    @Operation(summary = "删除来往企业")
+    @DeleteMapping("/accountDelete")
+    public HttpResult accountDelete(String id) {
+        boolean b = accountService.removeById(id);
+        return HttpResult.ok(b ? "删除成功":"删除失败");
+    }
 }

+ 0 - 7
tenant/organization/src/main/java/com/jzg/organization/controller/UserAccountController.java

@@ -3,22 +3,15 @@ package com.jzg.organization.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
-import com.jzg.commons.entity.dto.AgreementAddParam;
-import com.jzg.commons.entity.dto.AmountAuditParam;
 import com.jzg.commons.entity.dto.SysUserAccountPageParam;
 import com.jzg.commons.entity.dto.SysUserAccountParam;
-import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
 import com.jzg.commons.entity.po.SysUserAccount;
-import com.jzg.commons.entity.vo.AmountAuditVo;
 import com.jzg.commons.entity.vo.SysUserAccountVo;
 import com.jzg.commons.entity.vo.UserAccountStatisVo;
 import com.jzg.organization.service.SysUserAccountService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import jakarta.annotation.Resource;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 @Tag(name="用户账户接口")

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/InvAccountMapper.java

@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.commons.entity.account.vo.AccountVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @author dongxin
 * @description 针对表【inv_account(来往企业表)】的数据库操作Mapper
@@ -23,6 +25,13 @@ public interface InvAccountMapper extends BaseMapper<InvAccount> {
      */
     Page<AccountVo> queryPage( Page page, @Param("param") AccountParam param);
 
+    /**
+     * 企业管理列表
+     * @param param
+     * @return
+     */
+    List<AccountVo> queryList(@Param("param")AccountParam param);
+
     /**
      * 根据id获取企业信息
      * @param id

+ 11 - 0
tenant/organization/src/main/java/com/jzg/organization/service/InvAccountService.java

@@ -8,6 +8,8 @@ import com.jzg.commons.entity.account.po.InvAccount;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.commons.entity.account.vo.AccountVo;
 
+import java.util.List;
+
 /**
 * @author dongxin
 * @description 针对表【inv_account(来往企业表)】的数据库操作Service
@@ -22,6 +24,13 @@ public interface InvAccountService extends IService<InvAccount> {
      */
     Page<AccountVo> queryPage(AccountParam param);
 
+    /**
+     * 企业管理列表
+     * @param param
+     * @return
+     */
+    List<AccountVo> queryList(AccountParam param);
+
     /**
      * 来往企业信息查询
      * @param id
@@ -47,4 +56,6 @@ public interface InvAccountService extends IService<InvAccount> {
      * @param param
      */
     void accountEdit(AccountEditParam param);
+
+
 }

+ 8 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/InvAccountServiceImpl.java

@@ -14,6 +14,8 @@ import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
 * @author dongxin
 * @description 针对表【inv_account(来往企业表)】的数据库操作Service实现
@@ -29,6 +31,12 @@ public class InvAccountServiceImpl extends ServiceImpl<InvAccountMapper, InvAcco
         return page;
     }
 
+    @Override
+    public List<AccountVo> queryList(AccountParam param) {
+        List<AccountVo> list = baseMapper.queryList(param);
+        return list;
+    }
+
     @Override
     public AccountVo queryById(String id) {
         AccountVo accountVo = this.isExistById(id);

+ 3 - 3
tenant/organization/src/main/resources/mapper/InvAccountCardMapper.xml

@@ -54,8 +54,8 @@
         LEFT JOIN inv_account ia on ia.id = iac.account_id
         <where>
             iac.is_delete = 0
-            <if test="param.accountId != null and param.accountId != ''">
-                and iac.account_id = #{param.accountId}
+            <if test="param.accountName != null and param.accountName != ''">
+                and ia.account_name like CONCAT('%',#{param.accountName}, '%')
             </if>
             <if test="param.cardName != null and param.cardName != ''">
                 and iac.card_name = #{param.cardName}
@@ -76,7 +76,7 @@
         <where>
             iac.is_delete = 0
             <if test="id != null and id != ''">
-                and pa.id = #{id}
+                and iac.id = #{id}
             </if>
         </where>
     </select>

+ 17 - 0
tenant/organization/src/main/resources/mapper/InvAccountMapper.xml

@@ -34,6 +34,21 @@
         update_by,update_time,is_delete
     </sql>
     <select id="queryPage" resultType="com.jzg.commons.entity.account.vo.AccountVo">
+        select <include refid="Base_Column_List"/>
+        FROM inv_account ia
+        <where>
+            ia.is_delete = 0
+            <if test="param.outerFlag != null ">
+                and ia.outer_flag = #{param.outerFlag}
+            </if>
+            <if test="param.accountName != null and param.accountName != ''">
+                and ia.account_name like CONCAT('%',#{param.accountName}, '%')
+            </if>
+        </where>
+        ORDER BY ia.create_time DESC
+    </select>
+
+    <select id="queryList" resultType="com.jzg.commons.entity.account.vo.AccountVo">
         select <include refid="Base_Column_List"/>
         FROM inv_account ia
         <where>
@@ -47,6 +62,7 @@
         </where>
         ORDER BY ia.create_time DESC
     </select>
+
     <select id="queryById" resultType="com.jzg.commons.entity.account.vo.AccountVo">
         select <include refid="Base_Column_List"/>
         FROM inv_account ia
@@ -57,4 +73,5 @@
             </if>
         </where>
     </select>
+
 </mapper>

+ 2 - 2
tenant/organization/src/main/resources/mapper/SysAmountAuditingMapper.xml

@@ -80,10 +80,10 @@
                     and saa.receive_user = #{param.receiveUser}
                 </when>
                 <otherwise>
-                    and saa.receive_user = null
+                    and saa.receive_user is null
                 </otherwise>
             </choose>
         </where>
-        ORDER BY create_time desc
+        ORDER BY saa.create_time desc
     </select>
 </mapper>

部分文件因文件數量過多而無法顯示