|
@@ -411,14 +411,47 @@ public class RenBaoNewCrawlerRequestBuilder {
|
|
|
// 构建 prpCmainCommon 和 prpCmainChannel(需要 handler1CodeUni 和 queryArea)
|
|
// 构建 prpCmainCommon 和 prpCmainChannel(需要 handler1CodeUni 和 queryArea)
|
|
|
String queryArea = calculateQueryArea(loginInfo.getComCode());
|
|
String queryArea = calculateQueryArea(loginInfo.getComCode());
|
|
|
|
|
|
|
|
|
|
+ // =====================================================================
|
|
|
|
|
+ // 送修码处理(与 Python monopolyCode 逻辑一致)
|
|
|
|
|
+ // =====================================================================
|
|
|
|
|
+ String monopolyCode = "";
|
|
|
|
|
+ String monopolyName = "";
|
|
|
|
|
+ String configMonopolyCode = loginInfo.getParameters() != null ? loginInfo.getParameters().getMonopolyCode() : null;
|
|
|
|
|
+ if (configMonopolyCode != null && !configMonopolyCode.isEmpty()) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Map<String, Object> monopolyResult = requestComponent.getMonopoly(gscomCode, headers);
|
|
|
|
|
+ if (isResponseSuccess(monopolyResult)) {
|
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
|
|
+ List<Map<String, Object>> monopolyList = (List<Map<String, Object>>) getNestedValue(monopolyResult, "data", "data");
|
|
|
|
|
+ if (monopolyList != null) {
|
|
|
|
|
+ for (Map<String, Object> item : monopolyList) {
|
|
|
|
|
+ if (configMonopolyCode.equals(getStringValue(item, "storeCode"))) {
|
|
|
|
|
+ monopolyCode = configMonopolyCode;
|
|
|
|
|
+ monopolyName = getStringValue(item, "storeName");
|
|
|
|
|
+ log.info("匹配到送修码: code={}, name={}", monopolyCode, monopolyName);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (monopolyCode.isEmpty()) {
|
|
|
|
|
+ log.warn("送修码 [{}] 未在 PICC 系统中匹配到,将使用空值", configMonopolyCode);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("送修码验证失败,将使用空值。error=[{}]", e.getMessage(), e);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 构建核心业务数据(更新为包含完整参数)
|
|
// 构建核心业务数据(更新为包含完整参数)
|
|
|
request.setPrpCmain(buildPrpCmain(loginInfo, startDate, endDate, businessNature,
|
|
request.setPrpCmain(buildPrpCmain(loginInfo, startDate, endDate, businessNature,
|
|
|
agentCode, agentName, handler1Code, handler1CodeDes, handlerCode, handlerCodeDes,
|
|
agentCode, agentName, handler1Code, handler1CodeDes, handlerCode, handlerCodeDes,
|
|
|
carChecker, carCheckerTranslate, gscomCode, comCodeDes, jwtComCode,
|
|
carChecker, carCheckerTranslate, gscomCode, comCodeDes, jwtComCode,
|
|
|
- handlerCodeUni, handler1CodeUni, useYear, cqpCount, linkerName));
|
|
|
|
|
|
|
+ handlerCodeUni, handler1CodeUni, useYear, cqpCount, linkerName,
|
|
|
|
|
+ monopolyCode, monopolyName));
|
|
|
request.setPrpCitemCar(buildPrpCitemCar(carInfo, actualValueStr, vehicleModelCode,
|
|
request.setPrpCitemCar(buildPrpCitemCar(carInfo, actualValueStr, vehicleModelCode,
|
|
|
vehicleId, vehicleModelCode, useNatureCode, vehicleClassPicc, fuelType, clauseType, vehicleFgwCode, purchasePrice,
|
|
vehicleId, vehicleModelCode, useNatureCode, vehicleClassPicc, fuelType, clauseType, vehicleFgwCode, purchasePrice,
|
|
|
- gscomCode, loginInfo.getUserCode(), headers, username, queryArea, isEnergyCar, energyTypePlat));
|
|
|
|
|
|
|
+ gscomCode, loginInfo.getUserCode(), headers, username, queryArea, isEnergyCar, energyTypePlat,
|
|
|
|
|
+ monopolyCode));
|
|
|
request.setPrpCinsureds(buildPrpCinsureds(quoteVo,customerResponse));
|
|
request.setPrpCinsureds(buildPrpCinsureds(quoteVo,customerResponse));
|
|
|
|
|
|
|
|
// 价格系数默认使用1.0(与Python保持一致)
|
|
// 价格系数默认使用1.0(与Python保持一致)
|
|
@@ -1174,7 +1207,8 @@ public class RenBaoNewCrawlerRequestBuilder {
|
|
|
String carChecker, String carCheckerTranslate,
|
|
String carChecker, String carCheckerTranslate,
|
|
|
String gscomCode, String comCodeDes, String jwtComCode,
|
|
String gscomCode, String comCodeDes, String jwtComCode,
|
|
|
String handlerCodeUni, String handler1CodeUni,
|
|
String handlerCodeUni, String handler1CodeUni,
|
|
|
- String useYear, String cqpCount, String linkerName) {
|
|
|
|
|
|
|
+ String useYear, String cqpCount, String linkerName,
|
|
|
|
|
+ String monopolyCode, String monopolyName) {
|
|
|
Map<String, Object> prpCmain = new HashMap<>();
|
|
Map<String, Object> prpCmain = new HashMap<>();
|
|
|
|
|
|
|
|
// ========== 基础字段 ==========
|
|
// ========== 基础字段 ==========
|
|
@@ -1187,8 +1221,8 @@ public class RenBaoNewCrawlerRequestBuilder {
|
|
|
prpCmain.put("clauseFlag", "1");
|
|
prpCmain.put("clauseFlag", "1");
|
|
|
prpCmain.put("com_table", new ArrayList<>());
|
|
prpCmain.put("com_table", new ArrayList<>());
|
|
|
prpCmain.put("upperPath", "");
|
|
prpCmain.put("upperPath", "");
|
|
|
- prpCmain.put("monopolyCode", "");
|
|
|
|
|
- prpCmain.put("monopolyName", "");
|
|
|
|
|
|
|
+ prpCmain.put("monopolyCode", monopolyCode != null ? monopolyCode : "");
|
|
|
|
|
+ prpCmain.put("monopolyName", monopolyName != null ? monopolyName : "");
|
|
|
prpCmain.put("salesmanNum", "");
|
|
prpCmain.put("salesmanNum", "");
|
|
|
prpCmain.put("cqpCount", cqpCount != null ? cqpCount : "");
|
|
prpCmain.put("cqpCount", cqpCount != null ? cqpCount : "");
|
|
|
prpCmain.put("otherBase_table", new ArrayList<>());
|
|
prpCmain.put("otherBase_table", new ArrayList<>());
|
|
@@ -1598,7 +1632,8 @@ public class RenBaoNewCrawlerRequestBuilder {
|
|
|
String carKindCode, String fuelType, String clauseType,
|
|
String carKindCode, String fuelType, String clauseType,
|
|
|
String vehicleFgwCode, BigDecimal purchasePrice,
|
|
String vehicleFgwCode, BigDecimal purchasePrice,
|
|
|
String comCode, String userCode, HttpHeaders headers, String username,
|
|
String comCode, String userCode, HttpHeaders headers, String username,
|
|
|
- String queryArea, String isEnergyCar, String energyTypePlat) {
|
|
|
|
|
|
|
+ String queryArea, String isEnergyCar, String energyTypePlat,
|
|
|
|
|
+ String monopolyCode) {
|
|
|
Map<String, Object> prpCitemCar = new HashMap<>();
|
|
Map<String, Object> prpCitemCar = new HashMap<>();
|
|
|
String formattedRegisterDate = formatDateWithTimezone(carInfo.getRegisterDate());
|
|
String formattedRegisterDate = formatDateWithTimezone(carInfo.getRegisterDate());
|
|
|
|
|
|
|
@@ -1948,7 +1983,7 @@ public class RenBaoNewCrawlerRequestBuilder {
|
|
|
prpCitemCar.put("transferDate", isTransfer && transferDate != null ? transferDate : "");
|
|
prpCitemCar.put("transferDate", isTransfer && transferDate != null ? transferDate : "");
|
|
|
prpCitemCar.put("modelDemandNo", "");
|
|
prpCitemCar.put("modelDemandNo", "");
|
|
|
prpCitemCar.put("vehicleStyleUniqueId", "");
|
|
prpCitemCar.put("vehicleStyleUniqueId", "");
|
|
|
- prpCitemCar.put("monopolyCode", "");
|
|
|
|
|
|
|
+ prpCitemCar.put("monopolyCode", monopolyCode != null ? monopolyCode : "");
|
|
|
|
|
|
|
|
return prpCitemCar;
|
|
return prpCitemCar;
|
|
|
}
|
|
}
|