Quellcode durchsuchen

update

reset-do-picking-order
CANCERYS\kw093 vor 5 Tagen
Ursprung
Commit
fc8b94c562
1 geänderte Dateien mit 30 neuen und 17 gelöschten Zeilen
  1. +30
    -17
      src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx

+ 30
- 17
src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx Datei anzeigen

@@ -2740,33 +2740,46 @@ const handleSubmitAllScanned = useCallback(async () => {
try {
// 转换为 batchSubmitList 所需的格式(与后端 QrPickBatchSubmitRequest 匹配)
const lines: batchSubmitListLineRequest[] = scannedLots.map((lot) => {
// 1. 需求数量:优先用 lot.requiredQty,没有就用 pickOrderLineRequiredQty
// 1. 需求数量
const requiredQty =
Number(lot.requiredQty || lot.pickOrderLineRequiredQty || 0);
// 2. 当前已经拣到的数量(数据库里对应 stock_out_line.qty)
// 2. 当前已经拣到的数量(数据库里的 qty)
const currentActualPickQty = Number(lot.actualPickQty || 0);

// 3. 还需要拣多少:不能为负数
const remainingQty = Math.max(0, requiredQty - currentActualPickQty);

// 4. 本次批量提交后的目标累计值 = 当前 + 剩余
const cumulativeQty = currentActualPickQty + remainingQty;

// 5. 根据“目标累计值是否达到需求”决定状态
let newStatus = "partially_completed";
if (requiredQty > 0 && cumulativeQty >= requiredQty) {
// 🔹 判断是否走“只改状态模式”
// 这里先给一个简单条件示例:如果你不想再补拣,只想把当前数量标记完成,
// 就让这个条件为 true(后面你可以根据业务加 UI 开关或别的 flag)。
const onlyComplete = lot.stockOutLineStatus === "partially_completed";
// lot.stockOutLineStatus === "partially_completed" && false === true;
let targetActual: number;
let newStatus: string;
if (onlyComplete) {
// ✅ 只改状态:目标数量 = 当前数量,不再补拣
targetActual = currentActualPickQty;
newStatus = "completed";
} else {
// ✅ 补拣模式:把剩余全部拣完
const remainingQty = Math.max(0, requiredQty - currentActualPickQty);
const cumulativeQty = currentActualPickQty + remainingQty;
targetActual = cumulativeQty;
newStatus = "partially_completed";
if (requiredQty > 0 && cumulativeQty >= requiredQty) {
newStatus = "completed";
}
}

return {
stockOutLineId: Number(lot.stockOutLineId) || 0,
pickOrderLineId: Number(lot.pickOrderLineId),
// ⚠️ 这里按你现在的写法是用 lot.lotId,当心是否真的是 inventoryLotLineId
inventoryLotLineId: lot.lotId ? Number(lot.lotId) : null,
requiredQty,
// 传“目标累计值”,后端会用它减去当前数据库里的 qty 得到增量
actualPickQty: cumulativeQty,
// 后端用 targetActual - 当前 qty 算增量,onlyComplete 时就是 0
actualPickQty: targetActual,
stockOutLineStatus: newStatus,
pickOrderConsoCode: String(lot.pickOrderConsoCode || ""),
noLot: Boolean(lot.noLot === true),


Laden…
Abbrechen
Speichern