Junjie
1 天以前 641bf75f1b6684ee5b6d13497ad1106b82c59043
src/main/java/com/zy/core/plugin/store/StoreInTaskPolicy.java
@@ -7,6 +7,7 @@
import com.zy.common.model.StartupDto;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.model.StationObjModel;
import com.zy.core.model.protocol.StationProtocol;
import java.util.List;
@@ -37,10 +38,6 @@
        return RedisKeyType.GENERATE_IN_TASK_LIMIT.key + context.getStationObjModel().getStationId();
    }
    default int getSubmitLockSeconds(StoreInTaskContext context) {
        return 2;
    }
    default int getRetryLockSeconds(StoreInTaskContext context) {
        return 2;
    }
@@ -66,19 +63,49 @@
    default void afterTaskCreated(StoreInTaskContext context, WrkMast wrkMast) {
    }
    default void onApplySubmitted(StoreInTaskContext context) {
        context.getStationProtocol().setSystemWarning("请求入库中");
    default void onApplyFailed(StoreInTaskContext context, InTaskApplyResult result) {
        String warning = "请求入库失败,WMS返回=" + buildFailureMessage(result);
        context.getStationProtocol().setSystemWarning(warning);
        syncWarningToBackStation(context, warning);
    }
    default void onApplyFailed(StoreInTaskContext context, AsyncInTaskResult result) {
        context.getStationProtocol().setSystemWarning("请求入库失败,WMS返回=" + buildFailureMessage(result));
    }
    default String buildFailureMessage(AsyncInTaskResult result) {
    default String buildFailureMessage(InTaskApplyResult result) {
        if (!Cools.isEmpty(result.getResponse())) {
            return result.getResponse();
        }
        return result.getMessage();
    }
    default void syncWarningToBackStation(StoreInTaskContext context, String warning) {
        if (context == null || context.getStationObjModel() == null || context.getStationThread() == null) {
            return;
        }
        StationObjModel backStation = context.getStationObjModel().getBackStation();
        if (backStation == null || backStation.getStationId() == null) {
            return;
        }
        if (backStation.getStationId().equals(context.getStationProtocol().getStationId())) {
            return;
        }
        List<StationProtocol> stations = context.getStationThread().getStatus();
        if (stations != null) {
            for (StationProtocol station : stations) {
                if (station != null && backStation.getStationId().equals(station.getStationId())) {
                    station.setSystemWarning(warning);
                    return;
                }
            }
        }
        java.util.Map<Integer, StationProtocol> stationMap = context.getStationThread().getStatusMap();
        if (stationMap == null) {
            return;
        }
        StationProtocol backStationProtocol = stationMap.get(backStation.getStationId());
        if (backStationProtocol != null) {
            backStationProtocol.setSystemWarning(warning);
        }
    }
}