|
@@ -3603,9 +3603,14 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
if (StringUtils.isEmpty(dto.getOrderNumber())) {
|
|
if (StringUtils.isEmpty(dto.getOrderNumber())) {
|
|
builder.append("数据第").append(i + 2).append("行系统订单为空!").append(System.lineSeparator());
|
|
builder.append("数据第").append(i + 2).append("行系统订单为空!").append(System.lineSeparator());
|
|
} else {
|
|
} else {
|
|
|
|
+ //处理订单ID信息
|
|
|
|
+ String originalOrderNumber = dto.getOrderNumber();
|
|
|
|
+ String processedOrderNumber = extractNumbers(originalOrderNumber);
|
|
|
|
+ dto.setOrderNumber(processedOrderNumber);
|
|
orderCodeList.add(dto.getOrderNumber());
|
|
orderCodeList.add(dto.getOrderNumber());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
//批量查询订单信息
|
|
//批量查询订单信息
|
|
if (orderCodeList.isEmpty()) {
|
|
if (orderCodeList.isEmpty()) {
|
|
return R.ok(builder.toString());
|
|
return R.ok(builder.toString());
|
|
@@ -3615,7 +3620,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
Map<String, List<FsStoreOrderCodeOpenIdVo>> orderDetailsMap = new HashMap<>(orderCodeOpenIdVoList.size());
|
|
Map<String, List<FsStoreOrderCodeOpenIdVo>> orderDetailsMap = new HashMap<>(orderCodeOpenIdVoList.size());
|
|
|
|
|
|
for (FsStoreOrderCodeOpenIdVo vo : orderCodeOpenIdVoList) {
|
|
for (FsStoreOrderCodeOpenIdVo vo : orderCodeOpenIdVoList) {
|
|
- orderMap.computeIfAbsent(vo.getOrderCode(), k -> {
|
|
|
|
|
|
+ orderMap.computeIfAbsent(vo.getId(), k -> {
|
|
OrderOpenIdTransDTO dto = new OrderOpenIdTransDTO();
|
|
OrderOpenIdTransDTO dto = new OrderOpenIdTransDTO();
|
|
dto.setOpenId(vo.getOpenId());
|
|
dto.setOpenId(vo.getOpenId());
|
|
dto.setTransactionId(vo.getOutTransId());
|
|
dto.setTransactionId(vo.getOutTransId());
|
|
@@ -3623,7 +3628,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
});
|
|
});
|
|
|
|
|
|
orderDetailsMap
|
|
orderDetailsMap
|
|
- .computeIfAbsent(vo.getOrderCode(), k -> new ArrayList<>())
|
|
|
|
|
|
+ .computeIfAbsent(vo.getId(), k -> new ArrayList<>())
|
|
.add(vo);
|
|
.add(vo);
|
|
}
|
|
}
|
|
final WxMaService wxService = WxMaConfiguration.getMaService(appId);
|
|
final WxMaService wxService = WxMaConfiguration.getMaService(appId);
|
|
@@ -3642,31 +3647,31 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- if (StringUtils.isEmpty(dto.getDeliverySn())) {
|
|
|
|
|
|
+ if (StringUtils.isEmpty(dto.getLogisticsCompany())) {
|
|
builder.append("数据第").append(rowNum).append("行快递公司编号为空!")
|
|
builder.append("数据第").append(rowNum).append("行快递公司编号为空!")
|
|
.append(System.lineSeparator());
|
|
.append(System.lineSeparator());
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- if (dto.getDeliveryStatus() == null) {
|
|
|
|
- dto.setDeliveryStatus(0);
|
|
|
|
- }
|
|
|
|
- if (ObjectUtil.isNotNull(dto.getDeliveryTime())) {
|
|
|
|
- dto.setDeliveryTime(parseCstToDateOnlyString(dto.getDeliveryTime()));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (ObjectUtil.isNotNull(dto.getDeliveryPayTime()) &&
|
|
|
|
- !dto.getDeliveryPayTime().isEmpty()) {
|
|
|
|
- dto.setDeliveryPayTime(parseCstToDateOnlyString(dto.getDeliveryPayTime()));
|
|
|
|
- }
|
|
|
|
|
|
+// if (dto.getDeliveryStatus() == null) {
|
|
|
|
+// dto.setDeliveryStatus(0);
|
|
|
|
+// }
|
|
|
|
+// if (ObjectUtil.isNotNull(dto.getDeliveryTime())) {
|
|
|
|
+// dto.setDeliveryTime(parseCstToDateOnlyString(dto.getDeliveryTime()));
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// if (ObjectUtil.isNotNull(dto.getDeliveryPayTime()) &&
|
|
|
|
+// !dto.getDeliveryPayTime().isEmpty()) {
|
|
|
|
+// dto.setDeliveryPayTime(parseCstToDateOnlyString(dto.getDeliveryPayTime()));
|
|
|
|
+// }
|
|
// 验证快递公司
|
|
// 验证快递公司
|
|
- String deliveryName = expressDeliveryMap.get(dto.getDeliverySn());
|
|
|
|
- if (deliveryName == null) {
|
|
|
|
|
|
+ String deliverySn = expressDeliveryMap.get(dto.getLogisticsCompany());
|
|
|
|
+ if (deliverySn == null) {
|
|
builder.append("数据第").append(rowNum).append("行订单号为")
|
|
builder.append("数据第").append(rowNum).append("行订单号为")
|
|
- .append(dto.getOrderNumber()).append("物流编码异常")
|
|
|
|
|
|
+ .append(dto.getOrderNumber()).append("物流公司名称异常")
|
|
.append(System.lineSeparator());
|
|
.append(System.lineSeparator());
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- dto.setDeliveryName(deliveryName);
|
|
|
|
|
|
+ dto.setDeliverySn(deliverySn);
|
|
|
|
|
|
// 检查订单是否存在
|
|
// 检查订单是否存在
|
|
String orderNumber = dto.getOrderNumber();
|
|
String orderNumber = dto.getOrderNumber();
|
|
@@ -3690,6 +3695,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
successList.add(dto);
|
|
successList.add(dto);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
//批量更新数据
|
|
//批量更新数据
|
|
if (!successList.isEmpty()) {
|
|
if (!successList.isEmpty()) {
|
|
batchUpdateDeliveryNotes(successList);
|
|
batchUpdateDeliveryNotes(successList);
|
|
@@ -3948,24 +3954,37 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static String parseCstToDateOnlyString(String cstDateStr) {
|
|
|
|
- LocalDateTime dateTime = parseCstToLocalDateTime(cstDateStr);
|
|
|
|
- return dateTime != null ? dateTime.format(DATE_ONLY_FORMATTER) : null;
|
|
|
|
- }
|
|
|
|
|
|
+// public static String parseCstToDateOnlyString(String cstDateStr) {
|
|
|
|
+// LocalDateTime dateTime = parseCstToLocalDateTime(cstDateStr);
|
|
|
|
+// return dateTime != null ? dateTime.format(DATE_ONLY_FORMATTER) : null;
|
|
|
|
+// }
|
|
private static final Map<String, String> EXPRESS_DELIVERY_MAP = createExpressDeliveryMap();
|
|
private static final Map<String, String> EXPRESS_DELIVERY_MAP = createExpressDeliveryMap();
|
|
|
|
|
|
private static Map<String, String> createExpressDeliveryMap() {
|
|
private static Map<String, String> createExpressDeliveryMap() {
|
|
Map<String, String> map = new HashMap<>();
|
|
Map<String, String> map = new HashMap<>();
|
|
- map.put("SF", "顺丰");
|
|
|
|
- map.put("EMS", "邮政");
|
|
|
|
- map.put("ZTO", "中通");
|
|
|
|
- map.put("JD", "京东");
|
|
|
|
- map.put("DBL", "德邦");
|
|
|
|
- map.put("YT", "圆通");
|
|
|
|
|
|
+ map.put("顺丰", "SF");
|
|
|
|
+ map.put("邮政", "EMS");
|
|
|
|
+ map.put("中通", "ZTO");
|
|
|
|
+ map.put("京东", "JD");
|
|
|
|
+ map.put("德邦", "DBL");
|
|
|
|
+ map.put("圆通", "YT");
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
|
|
public Map<String, String> buildExpressDeliveryMap() {
|
|
public Map<String, String> buildExpressDeliveryMap() {
|
|
return EXPRESS_DELIVERY_MAP;
|
|
return EXPRESS_DELIVERY_MAP;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //高性能截取订单ID
|
|
|
|
+ private static String extractNumbers(String str) {
|
|
|
|
+ if (str == null || str.isEmpty()) {
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+ int start = 0;
|
|
|
|
+ int len = str.length();
|
|
|
|
+ while (start < len && !Character.isDigit(str.charAt(start))) {
|
|
|
|
+ start++;
|
|
|
|
+ }
|
|
|
|
+ return start < len ? str.substring(start) : "";
|
|
|
|
+ }
|
|
}
|
|
}
|