package com.vincent.rsf.server.manager.service;
|
|
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.vincent.rsf.framework.common.R;
|
import com.vincent.rsf.server.api.controller.erp.params.InOutResultReportParam;
|
import com.vincent.rsf.server.manager.entity.CloudWmsNotifyLog;
|
|
import java.io.IOException;
|
import java.util.List;
|
|
/** 云仓上报待办 */
|
public interface CloudWmsNotifyLogService extends IService<CloudWmsNotifyLog> {
|
|
List<CloudWmsNotifyLog> listPending(int limit, int maxRetry);
|
|
void fillFromConfig(CloudWmsNotifyLog log);
|
|
/** 上报类型:入出库结果(系统配置优先,缺省 IN_OUT_RESULT) */
|
String getReportTypeInOutResult();
|
|
/** 上报类型:库存调整(系统配置优先,缺省 INVENTORY_ADJUST) */
|
String getReportTypeInventoryAdjust();
|
|
/** 通知状态:待通知(系统配置优先,缺省 0) */
|
int getNotifyStatusPending();
|
|
/** 通知状态:已成功(系统配置优先,缺省 1) */
|
int getNotifyStatusSuccess();
|
|
/** 通知状态:失败(系统配置优先,缺省 2) */
|
int getNotifyStatusFail();
|
|
/** 入出库同单分组键(orderNo+入库/出库+仓),与调度内存合并一致 */
|
String inOutMergeKeyFromRequestBody(String requestBody);
|
|
/** 解析请求体为入出库行列表(单行 JSON 或 lines 数组) */
|
List<InOutResultReportParam> parseInOutLinesFromRequestBody(String requestBody) throws IOException;
|
|
/** 发送前占位,避免与合并并发;返回 false 表示已有实例在处理 */
|
boolean tryClaimSending(Long id);
|
|
void clearSending(Long id);
|
|
/** sending=1 且 update_time 超时:补偿清零;启用 Redis 时还要求占位已失 */
|
void recoverStaleSendingWhenRedisMiss();
|
|
/** manual 模式:按单号放行暂缓的入出库待办(send_hold=1→0) */
|
R manualFlushToNotifyByOrderCode(String orderCode, boolean inbound);
|
}
|