Browse Source

2026-03-30

标签变动记录增加【异常重试】功能
master
fengyuan_yang 2 weeks ago
parent
commit
e5e93a4487
  1. 4
      src/main/java/com/gaotao/modules/warehouse/controller/LabelTransactionLogController.java
  2. 2
      src/main/java/com/gaotao/modules/warehouse/service/LabelTransactionLogService.java
  3. 30
      src/main/java/com/gaotao/modules/warehouse/service/impl/LabelTransactionLogServiceImpl.java

4
src/main/java/com/gaotao/modules/warehouse/controller/LabelTransactionLogController.java

@ -67,11 +67,13 @@ public class LabelTransactionLogController extends AbstractController {
public R retry(@RequestBody Map<String, Object> params) {
try {
List<Map<String, Object>> retryList = (List<Map<String, Object>>) params.get("retryList");
boolean isExceptionRetry = params.get("isExceptionRetry") != null && (Boolean) params.get("isExceptionRetry");
if (retryList == null || retryList.isEmpty()) {
return R.error("请选择要重试的记录");
}
Map<String, Object> result = labelTransactionLogService.batchRetry(retryList);
Map<String, Object> result = labelTransactionLogService.batchRetry(retryList, isExceptionRetry);
return R.ok().put("code", 0).put("result", result);
} catch (Exception e) {
logger.error("批量手动重试失败", e);

2
src/main/java/com/gaotao/modules/warehouse/service/LabelTransactionLogService.java

@ -21,6 +21,6 @@ public interface LabelTransactionLogService {
/**
* 批量手动重试
*/
Map<String, Object> batchRetry(List<Map<String, Object>> retryList);
Map<String, Object> batchRetry(List<Map<String, Object>> retryList, boolean isExceptionRetry);
}

30
src/main/java/com/gaotao/modules/warehouse/service/impl/LabelTransactionLogServiceImpl.java

@ -42,8 +42,8 @@ public class LabelTransactionLogServiceImpl implements LabelTransactionLogServic
}
@Override
public Map<String, Object> batchRetry(List<Map<String, Object>> retryList) {
logger.info("批量手动重试开始,记录数: {}", retryList.size());
public Map<String, Object> batchRetry(List<Map<String, Object>> retryList, boolean isExceptionRetry) {
logger.info("批量手动重试开始,记录数: {}, 是否异常重试: {}", retryList.size(), isExceptionRetry);
int successCount = 0;
int failureCount = 0;
@ -59,18 +59,20 @@ public class LabelTransactionLogServiceImpl implements LabelTransactionLogServic
try {
// 1. 校验StockTransactionLog的传输状态
Map<String, Object> syncStatus = stockTransactionLogDao.getSyncStatus(site, buNo, transactionId);
if (syncStatus != null) {
String syncedFlag = syncStatus.get("syncedFlag") != null ? syncStatus.get("syncedFlag").toString() : "";
// 传输状态必须是"待传输"即synced_flag不为Y
if ("Y".equalsIgnoreCase(syncedFlag)) {
logger.warn("该记录已传输成功,不允许重试,transactionId: {}", transactionId);
detail.put("status", "failure");
detail.put("message", "该记录已传输成功,不允许重试");
details.add(detail);
failureCount++;
continue;
if (!isExceptionRetry) {
Map<String, Object> syncStatus = stockTransactionLogDao.getSyncStatus(site, buNo, transactionId);
if (syncStatus != null) {
String syncedFlag = syncStatus.get("syncedFlag") != null ? syncStatus.get("syncedFlag").toString() : "";
// 传输状态必须是"待传输"即synced_flag不为Y
if ("Y".equalsIgnoreCase(syncedFlag)) {
logger.warn("该记录已传输成功,不允许重试,transactionId: {}", transactionId);
detail.put("status", "failure");
detail.put("message", "该记录已传输成功,不允许重试");
details.add(detail);
failureCount++;
continue;
}
}
}

Loading…
Cancel
Save