This commit is contained in:
2025-11-06 20:32:16 +08:00
parent e865220a50
commit 3bf02de147
3 changed files with 492 additions and 13 deletions

View File

@@ -1102,16 +1102,21 @@ public class TencentDocController extends BaseController {
// 订单未标记为已推送,但文档中已有值,同步状态
existingOrder.setTencentDocPushed(1);
existingOrder.setTencentDocPushTime(new java.util.Date());
jdOrderService.updateJDOrder(existingOrder);
log.info("✓ 同步订单状态 - 单号: {}, 行号: {}, 原因: 文档中已有物流链接(可能手动填写)",
orderNo, excelRow);
int syncResult = jdOrderService.updateJDOrder(existingOrder);
if (syncResult > 0) {
log.info("✓ 同步订单状态成功 - 单号: {}, 行号: {}, 原因: 文档中已有物流链接(可能手动填写)",
orderNo, excelRow);
} else {
log.warn("⚠️ 同步订单状态返回0 - 单号: {}, 行号: {}, 可能未更新",
orderNo, excelRow);
}
// 记录同步日志
logOperation(fileId, sheetId, "BATCH_SYNC", orderNo, excelRow, existingLogisticsLink,
"SKIPPED", "文档中已有物流链接,已同步订单状态");
}
} catch (Exception e) {
log.error("同步订单状态失败 - 单号: {}, 行号: {}", orderNo, excelRow, e);
log.error("同步订单状态失败 - 单号: {}, 行号: {}", orderNo, excelRow, e);
}
skippedCount++; // 已有物流链接,跳过写入
@@ -1142,13 +1147,13 @@ public class TencentDocController extends BaseController {
if (order.getLogisticsLink() != null && !order.getLogisticsLink().trim().isEmpty()) {
String logisticsLink = order.getLogisticsLink().trim();
// 构建更新请求,同时保存订单对象用于后续更新推送状态
// 构建更新请求
JSONObject update = new JSONObject();
update.put("row", excelRow);
update.put("column", logisticsLinkColumn);
update.put("orderNo", orderNo);
update.put("logisticsLink", logisticsLink);
update.put("order", order); // 保存订单对象
// 注意不再保存order对象写入成功后会重新查询以确保数据最新
updates.add(update);
filledCount++;
@@ -1255,17 +1260,23 @@ public class TencentDocController extends BaseController {
log.info("✓ 写入成功 - 行: {}, 单号: {}, 物流链接: {}", row, expectedOrderNo, logisticsLink);
// 更新订单的推送状态
// 更新订单的推送状态(重新查询订单,避免使用旧对象)
try {
JDOrder orderToUpdate = (JDOrder) update.get("order");
JDOrder orderToUpdate = jdOrderService.selectJDOrderByThirdPartyOrderNo(expectedOrderNo);
if (orderToUpdate != null) {
orderToUpdate.setTencentDocPushed(1);
orderToUpdate.setTencentDocPushTime(new java.util.Date());
jdOrderService.updateJDOrder(orderToUpdate);
log.info("✓ 订单推送状态已更新 - 单号: {}", expectedOrderNo);
int updateResult = jdOrderService.updateJDOrder(orderToUpdate);
if (updateResult > 0) {
log.info("✓ 订单推送状态已更新 - 单号: {}, updateResult: {}", expectedOrderNo, updateResult);
} else {
log.warn("⚠️ 订单推送状态更新返回0 - 单号: {}, 可能未更新", expectedOrderNo);
}
} else {
log.warn("⚠️ 重新查询订单失败 - 单号: {}", expectedOrderNo);
}
} catch (Exception e) {
log.error("更新订单推送状态失败(但写入腾讯文档已成功) - 单号: {}", expectedOrderNo, e);
log.error("更新订单推送状态失败(但写入腾讯文档已成功) - 单号: {}", expectedOrderNo, e);
// 不影响主流程,继续执行
}