fix: 档口入库码按货运单号直查顺运宝 (#245)
This commit is contained in:
@@ -21,12 +21,6 @@ var ErrInnerCodeRestoreConflict = errors.New("已回写或需核对的删除记
|
||||
// ErrInnerCodeDeleteConflict 表示批量删除时记录已经不可见或不存在,整批不会部分删除。
|
||||
var ErrInnerCodeDeleteConflict = errors.New("部分档口入库码记录已删除或不存在")
|
||||
|
||||
// InnerCodeSybSnapshot 是本地顺运宝明细用于解析货运单 stock id 的最小快照。
|
||||
type InnerCodeSybSnapshot struct {
|
||||
OrderNumber string
|
||||
SybData string
|
||||
}
|
||||
|
||||
// InnerCodeListFilter 是独立页面可组合的查询条件。
|
||||
type InnerCodeListFilter struct {
|
||||
BusinessDate string
|
||||
@@ -265,37 +259,6 @@ func ListInnerCodePlanningContext(q Execer, businessDate string, orderNumbers []
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// ListInnerCodeSybSnapshots 查询订单号对应的本地 SYB 原始快照。
|
||||
func ListInnerCodeSybSnapshots(q Execer, orderNumbers []string) ([]InnerCodeSybSnapshot, error) {
|
||||
if len(orderNumbers) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
placeholders := make([]string, len(orderNumbers))
|
||||
args := make([]any, len(orderNumbers))
|
||||
for index, orderNumber := range orderNumbers {
|
||||
placeholders[index] = "?"
|
||||
args[index] = orderNumber
|
||||
}
|
||||
rows, err := q.Query(`SELECT order_no,syb_data FROM syb_orders WHERE order_no IN (`+
|
||||
strings.Join(placeholders, ",")+`) ORDER BY order_no,syb_id`, args...)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("查询档口入库码对应顺运宝快照失败: %w", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
result := make([]InnerCodeSybSnapshot, 0)
|
||||
for rows.Next() {
|
||||
var row InnerCodeSybSnapshot
|
||||
if err := rows.Scan(&row.OrderNumber, &row.SybData); err != nil {
|
||||
return nil, fmt.Errorf("读取顺运宝快照失败: %w", err)
|
||||
}
|
||||
result = append(result, row)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, fmt.Errorf("遍历顺运宝快照失败: %w", err)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// SaveInnerCodePlans 在同一事务中保存一批只读规划结果。
|
||||
func SaveInnerCodePlans(db *sql.DB, plans []model.InnerCodeRecord, plannedAt string) error {
|
||||
tx, err := db.Begin()
|
||||
|
||||
Reference in New Issue
Block a user