|
|
@@ -4110,35 +4110,37 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public R importDeliveryNoteExpress(List<FsOrderDeliveryNoteDTO> dtoList, String appId,Integer shipmentType) {
|
|
|
+ public R importDeliveryNoteExpress(List<FsStoreOrderDeliveryNoteExportVO> voList, String appId,Integer shipmentType) {
|
|
|
try {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
//获取商城配置
|
|
|
String json = configService.selectConfigByKey("store.config");
|
|
|
StoreConfig config = JSONUtil.toBean(json, StoreConfig.class);
|
|
|
|
|
|
- List<FsOrderDeliveryNoteDTO> successList = new ArrayList<>(dtoList.size());
|
|
|
+ List<FsOrderDeliveryNoteDTO> successList = new ArrayList<>(voList.size());
|
|
|
//提前获取所有必要数据
|
|
|
Map<String, String> expressDeliveryMap = buildExpressDeliveryMap();
|
|
|
//提取所有有效订单号
|
|
|
- List<String> orderCodeList = new ArrayList<>(dtoList.size());
|
|
|
- for (int i = 0; i < dtoList.size(); i++) {
|
|
|
- FsOrderDeliveryNoteDTO dto = dtoList.get(i);
|
|
|
- if (StringUtils.isEmpty(dto.getOrderNumber())) {
|
|
|
+ List<String> orderCodeList = new ArrayList<>(voList.size());
|
|
|
+ for (int i = 0; i < voList.size(); i++) {
|
|
|
+ FsStoreOrderDeliveryNoteExportVO vo = voList.get(i);
|
|
|
+ FsOrderDeliveryNoteDTO dto = new FsOrderDeliveryNoteDTO();
|
|
|
+ if (StringUtils.isEmpty(vo.getOrderNumber())) {
|
|
|
builder.append("数据第").append(i + 2).append("行系统订单为空!").append(System.lineSeparator());
|
|
|
}
|
|
|
- if (StringUtils.isEmpty(dto.getLogisticsCompany())) {
|
|
|
+ if (StringUtils.isEmpty(vo.getLogisticsCompany())) {
|
|
|
builder.append("数据第").append(i + 2).append("行物流公司为空!").append(System.lineSeparator());
|
|
|
}
|
|
|
- if (StringUtils.isEmpty(dto.getDeliveryId())) {
|
|
|
+ if (StringUtils.isEmpty(vo.getLogisticsCompany())) {
|
|
|
builder.append("数据第").append(i + 2).append("行快递单号为空!").append(System.lineSeparator());
|
|
|
} else {
|
|
|
//处理订单ID信息
|
|
|
- String originalOrderNumber = dto.getOrderNumber();
|
|
|
+ String originalOrderNumber = vo.getOrderNumber();
|
|
|
String processedOrderNumber = extractNumbers(originalOrderNumber);
|
|
|
dto.setOrderNumber(processedOrderNumber);
|
|
|
- orderCodeList.add(dto.getOrderNumber());
|
|
|
+ orderCodeList.add(processedOrderNumber);
|
|
|
}
|
|
|
+ dto.setDeliveryName(vo.getLogisticsCompany());
|
|
|
successList.add(dto);
|
|
|
|
|
|
|
|
|
@@ -4147,7 +4149,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(dto.getOrderNumber());
|
|
|
//订阅物流回调
|
|
|
String lastFourNumber = "";
|
|
|
- if (dto.getDeliverySn().equals(ShipperCodeEnum.SF.getValue()) || order.getDeliverySn().equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
+ if (dto.getLogisticsCompany().equals(ShipperCodeEnum.SF.getDesc()) || order.getDeliverySn().equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
lastFourNumber = order.getUserPhone();
|
|
|
if (lastFourNumber.length() == 11) {
|
|
|
lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
@@ -4191,19 +4193,19 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
String uploadTime = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"))
|
|
|
.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
|
|
|
|
|
|
- for (int i = 0; i < dtoList.size(); i++) {
|
|
|
- FsOrderDeliveryNoteDTO dto = dtoList.get(i);
|
|
|
+ for (int i = 0; i < successList.size(); i++) {
|
|
|
+ FsOrderDeliveryNoteDTO dto = successList.get(i);
|
|
|
int rowNum = i + 2;
|
|
|
if (StringUtils.isEmpty(dto.getOrderNumber())) {
|
|
|
continue;
|
|
|
}
|
|
|
- if (StringUtils.isEmpty(dto.getDeliveryId())) {
|
|
|
- builder.append("数据第").append(rowNum).append("行快递单号为空!")
|
|
|
- .append(System.lineSeparator());
|
|
|
- continue;
|
|
|
- }
|
|
|
+// if (StringUtils.isEmpty(dto.getDeliveryId())) {
|
|
|
+// builder.append("数据第").append(rowNum).append("行快递单号为空!")
|
|
|
+// .append(System.lineSeparator());
|
|
|
+// continue;
|
|
|
+// }
|
|
|
|
|
|
- if (StringUtils.isEmpty(dto.getLogisticsCompany())) {
|
|
|
+ if (StringUtils.isEmpty(dto.getDeliveryName())) {
|
|
|
builder.append("数据第").append(rowNum).append("行快递公司编号为空!")
|
|
|
.append(System.lineSeparator());
|
|
|
continue;
|
|
|
@@ -4220,7 +4222,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
// dto.setDeliveryPayTime(parseCstToDateOnlyString(dto.getDeliveryPayTime()));
|
|
|
// }
|
|
|
// 验证快递公司
|
|
|
- String deliverySn = expressDeliveryMap.get(dto.getLogisticsCompany());
|
|
|
+ String deliverySn = expressDeliveryMap.get(dto.getDeliveryName());
|
|
|
if (deliverySn == null) {
|
|
|
builder.append("数据第").append(rowNum).append("行订单号为")
|
|
|
.append(dto.getOrderNumber()).append("物流公司名称异常")
|
|
|
@@ -5280,7 +5282,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
|
|
|
|
|
|
- private void batchUpdateDeliveryNotes(List<FsOrderDeliveryNoteDTO> list) {
|
|
|
+ private void batchUpdateDeliveryNotes(List<FsOrderDeliveryNoteDTO> list) {
|
|
|
int batchSize = 500;
|
|
|
int total = list.size();
|
|
|
int batches = (total + batchSize - 1) / batchSize;
|
|
|
@@ -5420,12 +5422,12 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
public Map<String, String> buildExpressDeliveryMap() {
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
- map.put("SF", "顺丰");
|
|
|
- map.put("EMS", "邮政");
|
|
|
- map.put("ZTO", "中通");
|
|
|
- map.put("JD", "京东");
|
|
|
- map.put("DBL", "德邦");
|
|
|
- map.put("YTO", "圆通");
|
|
|
+ map.put("顺丰", "SF");
|
|
|
+ map.put("邮政", "EMS");
|
|
|
+ map.put("中通", "ZTO");
|
|
|
+ map.put("京东", "JD");
|
|
|
+ map.put("德邦", "DBL");
|
|
|
+ map.put("圆通", "YTO");
|
|
|
return map;
|
|
|
}
|
|
|
|