fix: 多件档口入库码逐件回写 (#250)
This commit is contained in:
@@ -277,6 +277,17 @@ func planInnerCodeRowsWithReserved(records []model.InnerCodeRecord, stockIDsByOr
|
||||
continue
|
||||
}
|
||||
matched := matches[0]
|
||||
codes, codeErr := splitInnerCodes(record.InnerCode)
|
||||
if codeErr != nil || len(codes) != record.SourceDuplicateCount {
|
||||
plans = append(plans, innerCodeSkippedPlan(plan,
|
||||
fmt.Sprintf("单件入库码数量与 Excel 源行数不一致(入库码 %d 个,源行 %d 行)", len(codes), record.SourceDuplicateCount)))
|
||||
continue
|
||||
}
|
||||
if matched.ProductQty != len(codes) {
|
||||
plans = append(plans, innerCodeSkippedPlan(plan,
|
||||
fmt.Sprintf("顺运宝商品数量为 %d,单件入库码为 %d 个,数量不一致", matched.ProductQty, len(codes))))
|
||||
continue
|
||||
}
|
||||
used[record.OrderNumber][matched.ID] = true
|
||||
plan.StockID = stockID
|
||||
plan.DetailID = matched.ID
|
||||
@@ -286,9 +297,13 @@ func planInnerCodeRowsWithReserved(records []model.InnerCodeRecord, stockIDsByOr
|
||||
plan.PurchasePlatform = innerCodeRawText(matched.Raw["purchasePlatform"])
|
||||
plan.PurchaseCode = innerCodeRawText(matched.Raw["purchaseCode"])
|
||||
plan.RemoteInnerCode = innerCodeRawText(matched.Raw["innerExpCode"])
|
||||
if plan.RemoteInnerCode == record.InnerCode {
|
||||
_, missing, remoteErr := planInnerCodeRemoteItems(plan, stock, codes)
|
||||
if remoteErr != nil {
|
||||
plan.Status = model.InnerCodeSkipped
|
||||
plan.ResultMessage = remoteErr.Error()
|
||||
} else if len(missing) == 0 {
|
||||
plan.Status = model.InnerCodeAlreadyFilled
|
||||
plan.ResultMessage = "远端已是相同入库码,无需重复写入"
|
||||
plan.ResultMessage = fmt.Sprintf("远端已存在全部 %d 个单件入库码,无需重复写入", len(codes))
|
||||
} else {
|
||||
plan.Status = model.InnerCodeReady
|
||||
plan.ResultMessage = "唯一匹配,等待操作员确认回写"
|
||||
|
||||
Reference in New Issue
Block a user