| | |
| | | |
| | | // 优化点1: 使用原生SQL ROW_NUMBER()在数据库端完成去重和排序 |
| | | var rackingTaskSql = @" |
| | | SELECT ITEM_BARCODE AS ItemBarcode, PALLETCODE AS PalletCode, CODE AS Code |
| | | SELECT ITEM_BARCODE AS ItemBarcode, PALLETCODE AS PalletCode, CODE AS Code, TASKTYPE AS TaskType |
| | | FROM ( |
| | | SELECT ITEM_BARCODE, PALLETCODE, CODE, |
| | | SELECT ITEM_BARCODE, PALLETCODE, CODE, TASKTYPE, |
| | | ROW_NUMBER() OVER (PARTITION BY ITEM_BARCODE ORDER BY ID DESC) AS RN |
| | | FROM XB_RACKING_TASK_SYXT_LOG |
| | | WHERE ITEM_BARCODE IS NOT NULL AND (CODE IS NULL OR CODE != '500') |
| | |
| | | |
| | | rackingTaskDict.TryGetValue(barcodeToMatch, out var rackingTask); |
| | | |
| | | string stockStatus = "进入立库的路上"; |
| | | if (rackingTask?.Code != null) |
| | | string stockStatus; |
| | | if (rackingTask?.TaskType == "立库出库请求") |
| | | { |
| | | stockStatus = rackingTask.Code == "200" ? "已在立库中" : "进入立库的路上"; |
| | | // 出库请求:Code=200表示已出库,Code=null表示出库路上 |
| | | stockStatus = rackingTask.Code == "200" ? "已出立库" : "出立库路上"; |
| | | } |
| | | else |
| | | { |
| | | // 回库请求(默认):Code=200表示已在立库中,Code=null表示进入立库的路上 |
| | | stockStatus = rackingTask?.Code == "200" ? "已在立库中" : "进入立库的路上"; |
| | | } |
| | | |
| | | return new |
| | |
| | | public string ItemBarcode { get; set; } |
| | | public string PalletCode { get; set; } |
| | | public string Code { get; set; } |
| | | public string TaskType { get; set; } |
| | | } |
| | | |
| | | /// <summary> |