From fe3167683576e5dd943fd5acc52e713652365def Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期一, 09 六月 2025 17:13:06 +0800 Subject: [PATCH] 优化ERP下发库存/取货信息流程,添加记录表和header判断逻辑备用 --- api/ApiHelper.cs | 102 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 84 insertions(+), 18 deletions(-) diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index 8fe1e34..5bf38d4 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -686,34 +686,67 @@ } public static ErpResult InboundDataSync(InboundDataSyncInfo model) { + //return BuildErpResult(1, "娴嬭瘯"); + var db = new SqlHelper<object>().GetInstance(); try { var err = ""; var cgDetailList = new List<TN_CG_Detail>(); - foreach (var inboundData in model.stockTransactions) { + var recordList = new List<TN_Inbound_DataRecord>(); + + foreach (var transaction in model.stockTransactions) { + // 鍐欏叆璁板綍琛�+ var record = new TN_Inbound_DataRecord { + S_LOCATION_CODE = transaction.locationCode, + S_STOCK_TRANS = transaction.stockTransactionId, + S_ITEM_CODE = transaction.itemCode, + S_ITEM_NAME = transaction.itemName, + S_ITEM_SHORT_DESC = transaction.itemShortDesc, + S_STOCK_QUANTITY = transaction.stockQuantity, + S_IN_QUANTITY = transaction.inQuantity, + S_TOTAL_PRICE = transaction.totalPrice, + S_STOCK_IN_TIME = transaction.stockInTime, + S_STORE_KEEPER = transaction.storeKeeper, + S_LINE_CODE = transaction.lineCode, + S_DELIVERY_ITEM_NO = transaction.deliveryItemNo, + S_SUPPLIER_NAME = transaction.supplierName, + S_INVENTORY_MAN = transaction.inventoryManager + }; + recordList.Add(record); + + // 鏌ヨ瀵瑰簲鐗╂枡 var cgDetail = db.Queryable<TN_Location, TN_Loc_Container, TN_CG_Detail> ((l, c, d) => l.S_CODE == c.S_LOC_CODE && c.S_CNTR_CODE == d.S_CNTR_CODE) - .Where(l => l.S_CODE == inboundData.locationCode) + .Where(l => l.S_CODE == transaction.locationCode) .Select((l, c, d) => d) .First(); - + if (cgDetail == null) { - err += $"鍌ㄤ綅鐮亄inboundData.locationCode}瀵瑰簲鐨勮揣浣嶇墿鏂欎笉瀛樺湪锛�; + err += $"鍌ㄤ綅鐮亄transaction.locationCode}瀵瑰簲鐨勮揣浣嶇墿鏂欎笉瀛樺湪锛�; continue; } + cgDetail.S_ITEM_CODE = transaction.itemCode; + cgDetail.S_ITEM_NAME = transaction.itemName; - cgDetail.S_ITEM_CODE = inboundData.itemCode; - cgDetail.S_ITEM_NAME = inboundData.itemName; - cgDetailList.Add(cgDetail); } - if (db.Updateable<TN_CG_Detail>(cgDetailList).ExecuteCommand() <= 0) { - return BuildErpResult(500, $"鏇存敼鐗╂枡淇℃伅澶辫触"); + using (var tran = db.Ado.UseTran()) { + if (db.Insertable<TN_Inbound_DataRecord>(recordList).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildErpResult(500, $"鍐欏叆鍏ュ簱璁板綍琛ㄥけ璐�); + } + + if (db.Updateable<TN_CG_Detail>(cgDetailList).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildErpResult(500, $"鏇存敼鐗╂枡淇℃伅澶辫触"); + } + + tran.CommitTran(); } if (err != "") { - return BuildErpResult(2, err); + return BuildErpResult(2, err + "鍏朵粬淇℃伅姝e父宸插啓鍏�); } return BuildErpResult(0, $"鏇存敼鐗╂枡淇℃伅鎴愬姛"); @@ -724,34 +757,67 @@ } public static ErpResult OutboundDataSync(OutboundDataSyncInfo model) { + //return BuildErpResult(1, "娴嬭瘯"); + var db = new SqlHelper<object>().GetInstance(); try { var err = ""; var cgDetailList = new List<TN_CG_Detail>(); - foreach (var inboundData in model.materialIssues) { + var recordList = new List<TN_Outbound_DataRecord>(); + + foreach (var issue in model.materialIssues) { + // 鍐欏叆璁板綍琛�+ var record = new TN_Outbound_DataRecord { + S_LOCATION_CODE = issue.locationCode, + S_ORDER_NO = issue.withdrawalOrderNo, + S_ITEM_CODE = issue.itemCode, + S_ITEM_NAME = issue.itemName, + S_SHORT_DESC = issue.itemShortDesc, + S_ACTUAL_QTY = issue.actualIssuedQty, + S_ISSUED_AMOUNT = issue.issuedAmount, + S_SUPPLIER_NAME = issue.supplierName, + S_ISSUER = issue.issuer, + S_ISSUE_DATE = issue.issueDate, + S_STORE_KEEPER = issue.storeKeeper, + S_LINE_CODE = issue.lineCode, + S_BATCH_NO = issue.batchNo + }; + recordList.Add(record); + + // 鏌ヨ瀵瑰簲鐗╂枡 var cgDetail = db.Queryable<TN_Location, TN_Loc_Container, TN_CG_Detail> ((l, c, d) => l.S_CODE == c.S_LOC_CODE && c.S_CNTR_CODE == d.S_CNTR_CODE) - .Where(l => l.S_CODE == inboundData.locationCode) + .Where(l => l.S_CODE == issue.locationCode) .Select((l, c, d) => d) .First(); if (cgDetail == null) { - err += $"鍌ㄤ綅鐮亄inboundData.locationCode}瀵瑰簲鐨勮揣浣嶇墿鏂欎笉瀛樺湪锛�; + err += $"鍌ㄤ綅鐮亄issue.locationCode}瀵瑰簲鐨勮揣浣嶇墿鏂欎笉瀛樺湪锛�; continue; } - cgDetail.S_ITEM_CODE = inboundData.itemCode; - cgDetail.S_ITEM_NAME = inboundData.itemName; + cgDetail.S_ITEM_CODE = issue.itemCode; + cgDetail.S_ITEM_NAME = issue.itemName; cgDetailList.Add(cgDetail); } - if (db.Updateable<TN_CG_Detail>(cgDetailList).ExecuteCommand() <= 0) { - return BuildErpResult(500, $"鏇存敼鐗╂枡淇℃伅澶辫触"); + using (var tran = db.Ado.UseTran()) { + if (db.Insertable<TN_Outbound_DataRecord>(recordList).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildErpResult(500, $"鍐欏叆鍑哄簱璁板綍琛ㄥけ璐�); + } + + if (db.Updateable<TN_CG_Detail>(cgDetailList).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildErpResult(500, $"鏇存敼鐗╂枡淇℃伅澶辫触"); + } + + tran.CommitTran(); } if (err != "") { - return BuildErpResult(2, err); + return BuildErpResult(2, err + "鍏朵粬淇℃伅姝e父宸插啓鍏�); } return BuildErpResult(0, $"鏇存敼鐗╂枡淇℃伅鎴愬姛"); -- Gitblit v1.9.1