订单批量审核提交

This commit is contained in:
2026-08-07 15:32:59 +08:00
parent 77dc32a69a
commit 7c17b1a76a
14 changed files with 290 additions and 5 deletions
@@ -4,9 +4,13 @@ import java.util.List;
/** 入库列表页签及其流程状态映射。 */
public enum InboundListTab {
/** 待测量:包含待测量、测量中和测量审核驳回的入库单。 */
WAIT_MEASURE(List.of("WAIT_MEASURE", "MEASURING", "MEASURE_REJECTED")),
/** 待审核:测量数据已经提交,等待审核结论。 */
WAIT_REVIEW(List.of("MEASURE_PENDING")),
/** 待发送费用:等待计费、费用确认或正在完成入库。 */
WAIT_FEE_SEND(List.of("WAIT_PRICING", "FEE_CONFIRMING", "INBOUNDING")),
/** 已入库:费用已发送且入库完成。 */
INBOUNDED(List.of("INBOUNDED"));
private final List<String> processStatuses;
@@ -4,10 +4,37 @@ import java.util.Set;
/** 二期入库主流程状态,不包含原型中的“待客户确认”。 */
public final class InboundProcessStatus {
/** 等待录入或接收测量数据。 */
public static final String WAIT_MEASURE = "WAIT_MEASURE";
/** 已存在测量草稿、重量 OCR 或人工修正,尚未提交审核。 */
public static final String MEASURING = "MEASURING";
/** 测量已提交,等待平台审核。 */
public static final String MEASURE_PENDING = "MEASURE_PENDING";
/** 测量审核被驳回,等待修正或异常放行。 */
public static final String MEASURE_REJECTED = "MEASURE_REJECTED";
/** 测量已通过或异常放行,等待计费。 */
public static final String WAIT_PRICING = "WAIT_PRICING";
/** 已生成费用,等待费用确认和发送。 */
public static final String FEE_CONFIRMING = "FEE_CONFIRMING";
/** 费用已确认,正在执行托盘、库位占用和入库收口。 */
public static final String INBOUNDING = "INBOUNDING";
/** 已入库完成,费用已发送给客户。 */
public static final String INBOUNDED = "INBOUNDED";
/** 等待智能装柜或预装确认。 */
public static final String WAIT_SPLIT = "WAIT_SPLIT";
/** 已进入装柜作业,PDA 可执行拣货。 */
public static final String LOADING = "LOADING";
/** 装柜完成,等待派送完成。 */
public static final String LOADED = "LOADED";
/** 已完成派送。 */
public static final String DELIVERED = "DELIVERED";
/** 已作废,不再允许继续处理。 */
public static final String VOIDED = "VOIDED";
public static final Set<String> VALUES = Set.of(
"WAIT_MEASURE", "MEASURING", "MEASURE_PENDING", "MEASURE_REJECTED",
"WAIT_PRICING", "FEE_CONFIRMING", "INBOUNDING", "INBOUNDED",
"WAIT_SPLIT", "LOADING", "LOADED", "DELIVERED", "VOIDED"
WAIT_MEASURE, MEASURING, MEASURE_PENDING, MEASURE_REJECTED,
WAIT_PRICING, FEE_CONFIRMING, INBOUNDING, INBOUNDED,
WAIT_SPLIT, LOADING, LOADED, DELIVERED, VOIDED
);
private InboundProcessStatus() {
@@ -2,8 +2,11 @@ package com.baiyue.firstleg.domain;
/** 智能装柜状态,只允许沿此方向推进。 */
public enum SmartLoadingStatus {
/** 编辑中:可以维护货柜信息并增删未拣货明细。 */
EDITING,
/** 装柜中:已生成 PDA 拣货任务,仍可追加或调整未拣货明细。 */
LOADING,
/** 装柜完成:PDA 拣货完成后自动完成,计划、明细和货柜信息只读。 */
COMPLETED;
/** 装柜完成前可维护集装箱号和航次。 */
@@ -6,10 +6,15 @@ import java.util.Set;
* 装柜证据类型。照片语义尚待产品确认,当前只固定四个步骤和一个铅封证据槽位。
*/
public final class LoadingEvidenceType {
/** 装柜过程第 1 步照片。 */
public static final String PHOTO_STEP_1 = "PHOTO_STEP_1";
/** 装柜过程第 2 步照片。 */
public static final String PHOTO_STEP_2 = "PHOTO_STEP_2";
/** 装柜过程第 3 步照片。 */
public static final String PHOTO_STEP_3 = "PHOTO_STEP_3";
/** 装柜过程第 4 步照片。 */
public static final String PHOTO_STEP_4 = "PHOTO_STEP_4";
/** 柜门铅封或封条证据。 */
public static final String SEAL = "SEAL";
public static final Set<String> VALUES = Set.of(PHOTO_STEP_1, PHOTO_STEP_2, PHOTO_STEP_3, PHOTO_STEP_4, SEAL);
@@ -1,8 +1,11 @@
package com.baiyue.firstleg.loading.domain;
public final class PickingStatus {
/** PDA 拣货尚未开始。 */
public static final String PENDING = "PENDING";
/** PDA 正在执行拣货。 */
public static final String IN_PROGRESS = "IN_PROGRESS";
/** PDA 拣货已完成。 */
public static final String COMPLETED = "COMPLETED";
private PickingStatus() {}
}
@@ -28,9 +28,13 @@ import java.util.Set;
/** 平台端入库测量、OCR 修正、重量确认和提交审核应用服务。 */
@Service
public class InboundMeasurementService {
/** 测量批次已提交,等待测量审核。 */
private static final String STATUS_SUBMITTED = "SUBMITTED";
/** OCR 或人工修正的重量已确认,可参与计费。 */
private static final String WEIGHT_CONFIRMED = "CONFIRMED";
/** OCR 已识别到有效重量,等待人工确认。 */
private static final String WEIGHT_PENDING_CONFIRM = "PENDING_CONFIRM";
/** OCR 结果无效或不完整,必须人工录入或修正。 */
private static final String WEIGHT_NEEDS_MANUAL = "NEEDS_MANUAL";
/** 测量完成后的默认普通托盘类型;实际拆托和库位占用由提交编排服务执行。 */
private static final String RECOMMENDED_PALLET_TYPE = "STANDARD";
@@ -26,9 +26,13 @@ import java.util.Set;
*/
@Service
public class MeasurementBatchService {
/** 后台人工录入的测量来源。 */
static final String SOURCE_MANUAL = "MANUAL";
/** 第三方设备或开放接口回传的测量来源。 */
static final String SOURCE_THIRD_PARTY = "THIRD_PARTY";
/** 测量草稿,可继续编辑。 */
static final String STATUS_DRAFT = "DRAFT";
/** 已接收第三方测量数据,待平台提交审核。 */
static final String STATUS_RECEIVED = "RECEIVED";
static final BigDecimal VOLUME_WEIGHT_FACTOR = new BigDecimal("167");
static final String CALCULATION_RULE_VERSION = "V1_CBM_CEILING_4_GIRTH_L2WH";
@@ -4,8 +4,11 @@ import java.util.Set;
/** 预装清单子状态,固定为三态。 */
public final class PreloadStatus {
/** 预装清单草稿,尚未开始确认。 */
public static final String PENDING = "PENDING";
/** 正在确认预装明细。 */
public static final String CONFIRMING = "CONFIRMING";
/** 预装清单已确认,可进入装柜作业。 */
public static final String CONFIRMED = "CONFIRMED";
public static final Set<String> VALUES = Set.of(PENDING, CONFIRMING, CONFIRMED);
private PreloadStatus() {}