From 4f5b5db0ce7f143bfc82a3302e45d3bfb3f3eda9 Mon Sep 17 00:00:00 2001 From: kyy <3283105747@qq.com> Date: 星期三, 13 八月 2025 17:56:12 +0800 Subject: [PATCH] 1、采购入库提示语音修改 --- service/Wom/MesWorkProdManager.cs | 729 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 459 insertions(+), 270 deletions(-) diff --git a/service/Wom/MesWorkProdManager.cs b/service/Wom/MesWorkProdManager.cs index 07d18e1..1f39ae2 100644 --- a/service/Wom/MesWorkProdManager.cs +++ b/service/Wom/MesWorkProdManager.cs @@ -1,8 +1,12 @@ 锘縰sing NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; +using NewPdaSqlServer.entity.Base; using NewPdaSqlServer.util; using SqlSugar; +using System.Data; +using System.Data.SqlClient; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace NewPdaSqlServer.service.Wom; @@ -42,10 +46,212 @@ /// </exception> public ScanWorkResult ScanWorkAsync(ScanWorkRequest request) { - // 1. 楠岃瘉鍛樺伐淇℃伅 - var staff = Db.Queryable<MesStaff>() - .Where(x => x.StaffNo == request.StaffNo) - .First(); + // // 1. 楠岃瘉鍛樺伐淇℃伅 + // var staff = Db.Queryable<MesStaff>() + // .Where(x => x.StaffNo == request.StaffNo) + // .First(); + // if (staff == null) + // throw new Exception("璇峰厛閫夋嫨浜哄憳"); + + // // 2. 楠岃瘉鏉$爜淇℃伅 + // var barcode = Db.Queryable<MesInvItemBarcodes>() + // .Where(x => x.ItemBarcode == request.ItemBarcode) + // .First(); + // if (barcode == null) + // throw new Exception($"鏃犳鏉$爜锛岃鏍稿锛亄request.ItemBarcode}"); + + // // 3. 楠岃瘉鐗╂枡淇℃伅 + // var item = Db.Queryable<MesItems>() + // .Where(x => x.Id == barcode.ItemId) + // .First(); + // if (item == null) + // throw new Exception($"鏃犳鐗╂枡锛岃鏍稿锛亄request.ItemBarcode}"); + + // // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿 + // var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷 + // var transactionNo = 902; // 榛樿浜ゆ槗鍙� + // switch (barcode.Memo?.Trim() ?? "0") + // { + // case "涓濆嵃": + // transactionNo = 901; // 涓濆嵃宸ュ簭 + // break; + // case "鍗婃垚鍝�": + // transactionNo = 902; // 鍗婃垚鍝佸伐搴� + // break; + // case "鍖呰": + // case "鎴愬搧": + // transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭 + // break; + // } + + // // 5. 妫�鏌ユ潯鐮佹槸鍚﹂噸澶嶆壂鎻� + // var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>( + // (a, b) => + // new JoinQueryInfos(JoinType.Inner, + // a.Id == b.MesWorkProdId)) + // .Where((a, b) => b.ItemBarcode == request.ItemBarcode + // && a.BillTypeId == billTypeId + // && a.TransactionNo == transactionNo) + // .Any(); + + // if (exists) + // throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�"); + + // // 6. 鑾峰彇宸叉姤宸ユ暟閲� + // var reportedQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>( + // (a, b) => + // new JoinQueryInfos(JoinType.Inner, + // a.BillNo == b.BillNo)) + // .Where((a, b) => a.BillTypeId == billTypeId + // && a.TransactionNo == transactionNo + // && a.TaskNo == barcode.BillNo) + // .Sum((a, b) => b.Quantity); + + // // 7. 鑾峰彇宸ュ崟璁″垝鏁伴噺鍜屽瀷鍙� + // var workOrder = Db.Queryable<Womdaa>() + // .Where(x => x.Daa001 == barcode.BillNo) + // .First(); + // if (workOrder == null) + // throw new Exception($"鏃犲伐鍗曟槑缁嗭紝璇锋牳瀵癸紒{request.ItemBarcode}"); + + // var planQty = workOrder.Daa008; + // var itemModel = workOrder.Daa004; + + // // 8. 浣跨敤浜嬪姟澶勭悊鎶ュ伐鏁版嵁 + // UseTransaction(db => + // { + // // 9. 澶勭悊鏈夋暟閲忔潯鐮佺殑鑷姩鎶ュ伐 + // if (barcode.Quantity > 0) + // { + // var reportQty = barcode.Quantity; + // if (reportQty <= 0) + // throw new Exception( + // $"鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬0锛岃鏍稿锛亄request.ItemBarcode}"); + + // var totalQty = (reportedQty ?? 0) + reportQty; + // if (totalQty > workOrder.Daa008) + // throw new Exception( + // $"鏈鎶ュ伐鏁伴噺锛歿reportQty} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿workOrder.Daa008 - reportedQty ?? 0}锛岃鏍稿锛�"); + + // // 10. 鏇存柊鏉$爜鐘舵�� + // db.Updateable<MesInvItemBarcodes>() + // .SetColumns(x => new MesInvItemBarcodes + // { + // WorkFlg = true + // //Quantity = reportQty + // }) + // .Where(x => x.Guid == barcode.Guid) + // .ExecuteCommand(); + + // // 11. 鑾峰彇鎴栧垱寤烘姤宸ュ崟 + // var workProd = db.Queryable<MesWorkProd>() + // .Where(x => x.TaskNo == barcode.BillNo + // && x.CreateDate.Value.Date.ToString( + // "yyyy-MM-dd") == + // DateTime.Now.Date.ToString("yyyy-MM-dd") + // && x.BillTypeId == billTypeId + // && x.TransactionNo == transactionNo + // && x.ReportBy == request.StaffNo) + // .First(); + + // var id = Guid.Empty; + // var billNo = ""; + // if (workProd == null) + // { + // id = Guid.NewGuid(); + // billNo = BillNo.GetBillNo("BG(鎶ュ伐)"); + + // workProd = new MesWorkProd + // { + // Id = id, + // BillNo = billNo, + // LineNo = barcode.LineNo, + // Company = barcode.Company, + // Factory = barcode.Factory, + // CreateBy = request.UserNo, + // CreateDate = DateTime.Now, + // LastupdateBy = request.UserNo, + // LastupdateDate = DateTime.Now, + // BillTypeId = billTypeId, + // TransactionNo = transactionNo, + // TaskNo = barcode.BillNo, + // ReportBy = request.StaffNo, + // ReportDate = DateTime.Now + // }; + + // db.Insertable(workProd).IgnoreColumns(true) + // .ExecuteCommand(); + // } + // else + // { + // id = workProd.Id; + // billNo = workProd.BillNo; + // } + + // // 12. 鎻掑叆鎶ュ伐鏄庣粏 + // var detailId = Guid.NewGuid(); + // db.Insertable(new MesWorkProdCDetails + // { + // Id = detailId, + // MesWorkProdId = id, + // BillNo = billNo, + // ItemBarcode = request.ItemBarcode, + // Quantity = (int)reportQty, + // Company = barcode.Company, + // Factory = barcode.Factory, + // CreateBy = request.UserNo, + // CreateDate = DateTime.Now, + // LastupdateBy = request.UserNo, + // LastupdateDate = DateTime.Now, + // ItemNo = item.ItemNo, + // WorkLast = barcode.WorkLast, + // SilkPqty = barcode.SilkPqty, + // SilkId = barcode.SilkId, + // Silk = barcode.Silk, + // BgYg = request.StaffNo + // }).IgnoreColumns(true).ExecuteCommand(); + + // // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲� + // db.Updateable<Womdaa>() + // .SetColumns(x => new Womdaa + // { + // Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity + // }) + // .Where(x => x.Daa001 == barcode.BillNo) + // .ExecuteCommand(); + + // // 14. 閲嶆柊鑾峰彇鏈�鏂板凡鎶ュ伐鏁伴噺 + // reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>( + // (a, b) => + // new JoinQueryInfos(JoinType.Inner, + // a.BillNo == b.BillNo)) + // .Where((a, b) => a.BillTypeId == billTypeId + // && a.TransactionNo == transactionNo + // && a.TaskNo == barcode.BillNo) + // .Sum((a, b) => b.Quantity); + // } + + // return 1; + // }); + + // // 15. 杩斿洖澶勭悊缁撴灉 + // return new ScanWorkResult + // { + // TaskNo = barcode.BillNo, + // ItemNo = item.ItemNo, + // PlanQty = planQty ?? 0, + // ReportedQty = reportedQty ?? 0, + // CurrentQty = barcode.Quantity.Value, + // BarcodeQty = barcode.Quantity.Value, + // ItemName = item.ItemName, + // ItemModel = itemModel, + // Message = "鎵爜鎴愬姛锛�" + // }; + + //1.楠岃瘉鍛樺伐淇℃伅 + var staff = Db.Queryable<MesStaff>() + .Where(x => x.StaffNo == request.StaffNo) + .First(); if (staff == null) throw new Exception("璇峰厛閫夋嫨浜哄憳"); @@ -63,46 +269,6 @@ if (item == null) throw new Exception($"鏃犳鐗╂枡锛岃鏍稿锛亄request.ItemBarcode}"); - // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿 - var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷 - var transactionNo = 902; // 榛樿浜ゆ槗鍙� - switch (barcode.Memo?.Trim() ?? "0") - { - case "涓濆嵃": - transactionNo = 901; // 涓濆嵃宸ュ簭 - break; - case "鍗婃垚鍝�": - transactionNo = 902; // 鍗婃垚鍝佸伐搴� - break; - case "鍖呰": - case "鎴愬搧": - transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭 - break; - } - - // 5. 妫�鏌ユ潯鐮佹槸鍚﹂噸澶嶆壂鎻� - var exists = Db.Queryable<MesWorkProd, MesWorkProdCDetails>( - (a, b) => - new JoinQueryInfos(JoinType.Inner, - a.Id == b.MesWorkProdId)) - .Where((a, b) => b.ItemBarcode == request.ItemBarcode - && a.BillTypeId == billTypeId - && a.TransactionNo == transactionNo) - .Any(); - - if (exists) - throw new Exception("鏉$爜閲嶅鎵弿锛岃鏍稿锛�"); - - // 6. 鑾峰彇宸叉姤宸ユ暟閲� - var reportedQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>( - (a, b) => - new JoinQueryInfos(JoinType.Inner, - a.BillNo == b.BillNo)) - .Where((a, b) => a.BillTypeId == billTypeId - && a.TransactionNo == transactionNo - && a.TaskNo == barcode.BillNo) - .Sum((a, b) => b.Quantity); - // 7. 鑾峰彇宸ュ崟璁″垝鏁伴噺鍜屽瀷鍙� var workOrder = Db.Queryable<Womdaa>() .Where(x => x.Daa001 == barcode.BillNo) @@ -110,139 +276,66 @@ if (workOrder == null) throw new Exception($"鏃犲伐鍗曟槑缁嗭紝璇锋牳瀵癸紒{request.ItemBarcode}"); - var planQty = workOrder.Daa008; - var itemModel = workOrder.Daa004; - - // 8. 浣跨敤浜嬪姟澶勭悊鎶ュ伐鏁版嵁 - UseTransaction(db => + // 浣跨敤瀛樺偍杩囩▼澶勭悊鐢熶骇鎶ュ伐 + var parameters = new SqlParameter[] { - // 9. 澶勭悊鏈夋暟閲忔潯鐮佺殑鑷姩鎶ュ伐 - if (barcode.Quantity > 0) - { - var reportQty = barcode.Quantity; - if (reportQty <= 0) - throw new Exception( - $"鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬0锛岃鏍稿锛亄request.ItemBarcode}"); + new SqlParameter("@pi_user", request.StaffNo), + new SqlParameter("@pi_barcode", request.ItemBarcode), + new SqlParameter("@po_outMsg", SqlDbType.NVarChar, 200) { Direction = ParameterDirection.Output }, + new SqlParameter("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }, + new SqlParameter("@po_womInBarSum", SqlDbType.Decimal) { Direction = ParameterDirection.Output } + }; - var totalQty = (reportedQty ?? 0) + reportQty; - if (totalQty > workOrder.Daa008) - throw new Exception( - $"鏈鎶ュ伐鏁伴噺锛歿reportQty} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿workOrder.Daa008 - reportedQty ?? 0}锛岃鏍稿锛�"); + string procedureName = "prc_pda_scbg"; + int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters); - // 10. 鏇存柊鏉$爜鐘舵�� - db.Updateable<MesInvItemBarcodes>() - .SetColumns(x => new MesInvItemBarcodes - { - WorkFlg = true - //Quantity = reportQty - }) - .Where(x => x.Guid == barcode.Guid) - .ExecuteCommand(); + // Retrieve output parameters with proper type conversion + var po_outMsg = parameters[2].Value?.ToString() ?? string.Empty; + var po_outSum = parameters[3].Value != DBNull.Value ? Convert.ToInt32(parameters[3].Value) : -1; + var po_womInBarSum = parameters[4].Value != DBNull.Value ? Convert.ToDecimal(parameters[4].Value) : 0m; - // 11. 鑾峰彇鎴栧垱寤烘姤宸ュ崟 - var workProd = db.Queryable<MesWorkProd>() - .Where(x => x.TaskNo == barcode.BillNo - && x.CreateDate.Value.Date.ToString( - "yyyy-MM-dd") == - DateTime.Now.Date.ToString("yyyy-MM-dd") - && x.BillTypeId == billTypeId - && x.TransactionNo == transactionNo - && x.ReportBy == request.StaffNo) - .First(); + var rksqOrder = Db.Queryable<MesInvItemIns>() + .Where(x => x.RbillNo == barcode.BillNo && x.TransctionNo=="181" && x.CreateBy==request.StaffNo) + .First(); - var id = Guid.Empty; - var billNo = ""; - if (workProd == null) - { - id = Guid.NewGuid(); - billNo = BillNo.GetBillNo("BG(鎶ュ伐)"); + var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel + FROM MES_INV_ITEM_IN_RKSQ_DETAILS A + LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE + LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id + WHERE A.bill_no= '{0}' ORDER BY A.create_date DESC", rksqOrder.BillNo); - workProd = new MesWorkProd - { - Id = id, - BillNo = billNo, - LineNo = barcode.LineNo, - Company = barcode.Company, - Factory = barcode.Factory, - CreateBy = request.UserNo, - CreateDate = DateTime.Now, - LastupdateBy = request.UserNo, - LastupdateDate = DateTime.Now, - BillTypeId = billTypeId, - TransactionNo = transactionNo, - TaskNo = barcode.BillNo, - ReportBy = request.StaffNo, - ReportDate = DateTime.Now - }; + var RKSQ = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql); - db.Insertable(workProd).IgnoreColumns(true) - .ExecuteCommand(); - } - else - { - id = workProd.Id; - billNo = workProd.BillNo; - } - // 12. 鎻掑叆鎶ュ伐鏄庣粏 - var detailId = Guid.NewGuid(); - db.Insertable(new MesWorkProdCDetails - { - Id = detailId, - MesWorkProdId = id, - BillNo = billNo, - ItemBarcode = request.ItemBarcode, - Quantity = (int)reportQty, - Company = barcode.Company, - Factory = barcode.Factory, - CreateBy = request.UserNo, - CreateDate = DateTime.Now, - LastupdateBy = request.UserNo, - LastupdateDate = DateTime.Now, - ItemNo = item.ItemNo, - WorkLast = barcode.WorkLast, - SilkPqty = barcode.SilkPqty, - SilkId = barcode.SilkId, - Silk = barcode.Silk, - BgYg = request.StaffNo - }).IgnoreColumns(true).ExecuteCommand(); + var rksqDetails = RKSQ.ToList(); - // 13. 鏇存柊宸ュ崟宸叉姤宸ユ暟閲� - db.Updateable<Womdaa>() - .SetColumns(x => new Womdaa - { - Daa011 = (x.Daa011 ?? 0) + (int)barcode.Quantity - }) - .Where(x => x.Daa001 == barcode.BillNo) - .ExecuteCommand(); - // 14. 閲嶆柊鑾峰彇鏈�鏂板凡鎶ュ伐鏁伴噺 - reportedQty = db.Queryable<MesWorkProd, MesWorkProdCDetails>( - (a, b) => - new JoinQueryInfos(JoinType.Inner, - a.BillNo == b.BillNo)) - .Where((a, b) => a.BillTypeId == billTypeId - && a.TransactionNo == transactionNo - && a.TaskNo == barcode.BillNo) - .Sum((a, b) => b.Quantity); - } + //var rksqDetails = Db.Queryable<MesInvItemInRksqDetails>() + // .Where(x => x.BillNo == ) + // .ToList(); - return 1; - }); + // Check if the procedure failed + if (po_outSum == -1) + { + throw new Exception(po_outMsg); + } - // 15. 杩斿洖澶勭悊缁撴灉 + // 15. Return processing result return new ScanWorkResult { TaskNo = barcode.BillNo, ItemNo = item.ItemNo, - PlanQty = planQty ?? 0, - ReportedQty = reportedQty ?? 0, + PlanQty = workOrder.Daa008 ?? 0, + ReportedQty = po_womInBarSum, CurrentQty = barcode.Quantity.Value, BarcodeQty = barcode.Quantity.Value, ItemName = item.ItemName, - ItemModel = itemModel, - Message = "鎵爜鎴愬姛锛�" + ItemModel = workOrder.Daa004, + Message = po_outMsg, + sjBillNo = rksqOrder.BillNo, + BarcodesDetail = rksqDetails, }; + } @@ -264,124 +357,220 @@ /// </exception> public bool ScanWorkProdAsync(ScanWorkRequest request) { - // 1. 楠岃瘉鎶ュ伐鏁伴噺鏄惁澶т簬0 - if (request.Quantity <= 0) - throw new Exception("鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬 0锛岃鏍稿锛�"); + //// 1. 楠岃瘉鎶ュ伐鏁伴噺鏄惁澶т簬0 + //if (request.Quantity <= 0) + // throw new Exception("鎶ュ伐鏁伴噺涓嶈兘灏忎簬绛変簬 0锛岃鏍稿锛�"); - // 2. 鏌ヨ鏉$爜淇℃伅锛岄獙璇佹潯鐮佹槸鍚﹀瓨鍦� - var barcode = Db.Queryable<MesInvItemBarcodes>() - .Where(x => x.ItemBarcode == request.ItemBarcode) - .First(); - if (barcode == null) - throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{request.ItemBarcode}"); + //// 2. 鏌ヨ鏉$爜淇℃伅锛岄獙璇佹潯鐮佹槸鍚﹀瓨鍦� + //var barcode = Db.Queryable<MesInvItemBarcodes>() + // .Where(x => x.ItemBarcode == request.ItemBarcode) + // .First(); + //if (barcode == null) + // throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{request.ItemBarcode}"); - // 3. 鏌ヨ宸ュ崟淇℃伅锛岄獙璇佸伐鍗曟槸鍚﹀瓨鍦� - var womdaa = Db.Queryable<Womdaa>() - .Where(x => x.Daa001 == barcode.BillNo) - .First(); - if (womdaa == null) - throw new Exception($"鏉$爜涓嶆槸鎶ュ伐鏉$爜/鏃犲搴斿伐鍗曪紝璇锋牳瀵癸紒{request.ItemBarcode}"); + //// 3. 鏌ヨ宸ュ崟淇℃伅锛岄獙璇佸伐鍗曟槸鍚﹀瓨鍦� + //var womdaa = Db.Queryable<Womdaa>() + // .Where(x => x.Daa001 == barcode.BillNo) + // .First(); + //if (womdaa == null) + // throw new Exception($"鏉$爜涓嶆槸鎶ュ伐鏉$爜/鏃犲搴斿伐鍗曪紝璇锋牳瀵癸紒{request.ItemBarcode}"); - // 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿 - var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷 - var transactionNo = 902; // 榛樿浜ゆ槗鍙�(鍗婃垚鍝佸伐搴�) - switch (barcode.Memo?.Trim() ?? "0") + //// 4. 鏍规嵁鏉$爜澶囨敞纭畾鍗曟嵁绫诲瀷鍜屼氦鏄撳彿 + //var billTypeId = 900; // 榛樿鍗曟嵁绫诲瀷 + //var transactionNo = 902; // 榛樿浜ゆ槗鍙�(鍗婃垚鍝佸伐搴�) + //switch (barcode.Memo?.Trim() ?? "0") + //{ + // case "涓濆嵃": + // transactionNo = 901; // 涓濆嵃宸ュ簭 + // break; + // case "鍗婃垚鍝�": + // transactionNo = 902; // 鍗婃垚鍝佸伐搴� + // break; + // case "鎴愬搧": + // case "鍖呰": + // transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭 + // break; + //} + + //// 5. 姹囨�诲凡鎵潯鐮佹暟閲忥紝楠岃瘉鏄惁瓒呭嚭璁″垝鏁伴噺 + //var sumQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>((a, b) => + // new JoinQueryInfos(JoinType.Inner, a.BillNo == b.BillNo)) + // .Where((a, b) => a.BillTypeId == billTypeId + // && a.TransactionNo == transactionNo + // && b.SilkId == barcode.SilkId + // && a.TaskNo == barcode.BillNo) + // .Sum((a, b) => b.Quantity); + + //sumQty = (sumQty ?? 0) + (int)request.Quantity; + + //if (sumQty > womdaa.Daa008) + // throw new Exception( + // $"鏈鎶ュ伐鏁伴噺锛歿request.Quantity} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿womdaa.Daa008 - (sumQty - request.Quantity)}锛岃鏍稿锛�"); + + //// 6. 寮�鍚簨鍔″鐞嗘姤宸ユ暟鎹� + //return UseTransaction(db => + //{ + // // 6.1 鏇存柊鏉$爜淇℃伅锛岃缃凡鎶ュ伐鏍囪鍜屾暟閲� + // db.Updateable<MesInvItemBarcodes>() + // .SetColumns(x => x.WorkFlg == true) + // .SetColumns(x => x.Quantity == request.Quantity) + // .Where(x => x.Guid == barcode.Guid) + // .ExecuteCommand(); + + // // 6.2 鑾峰彇鎴栧垱寤烘姤宸ュ崟 + // var workProd = db.Queryable<MesWorkProd>() + // .Where(x => x.TaskNo == barcode.BillNo + // && x.CreateDate.Value.Date.ToString("yyyy-MM-dd") == + // DateTime.Now.Date.ToString("yyyy-MM-dd") + // && x.BillTypeId == billTypeId + // && x.TransactionNo == transactionNo + // && x.Status == 0) + // .First(); + + // // 6.3 濡傛灉鎶ュ伐鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勬姤宸ュ崟 + // if (workProd == null) + // { + // var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)"); + // workProd = new MesWorkProd + // { + // Id = Guid.NewGuid(), + // BillNo = billNo, + // LineNo = barcode.LineNo, + // Company = barcode.Company, + // Factory = barcode.Factory, + // CreateBy = request.UserNo, + // CreateDate = DateTime.Now, + // LastupdateBy = request.UserNo, + // LastupdateDate = DateTime.Now, + // PbillNo = barcode.BillNo, + // BillTypeId = billTypeId, + // TransactionNo = transactionNo, + // TaskNo = barcode.BillNo + // }; + + // db.Insertable(workProd).IgnoreColumns(true).ExecuteCommand(); + // } + + // // 6.4 鎻掑叆鎶ュ伐鏄庣粏璁板綍 + // var detail = new MesWorkProdCDetails + // { + // Id = Guid.NewGuid(), + // BillNo = workProd.BillNo, + // ItemBarcode = request.ItemBarcode, + // Quantity = (int)request.Quantity, + // Company = barcode.Company, + // Factory = barcode.Factory, + // CreateBy = request.UserNo, + // CreateDate = DateTime.Now, + // LastupdateBy = request.UserNo, + // LastupdateDate = DateTime.Now, + // ItemNo = barcode.ItemNo, + // PbillNo = barcode.BillNo, + // WorkLast = barcode.WorkLast, + // SilkPqty = barcode.SilkPqty, + // SilkId = barcode.SilkId, + // Silk = barcode.Silk + // }; + + // db.Insertable(detail).IgnoreColumns(true).ExecuteCommand(); + + // return 1; + //}) > 0; + + // 璋冪敤瀛樺偍杩囩▼澶勭悊鐢熶骇鎶ュ伐瀹℃牳 + var parameters = new SqlParameter[] { - case "涓濆嵃": - transactionNo = 901; // 涓濆嵃宸ュ簭 - break; - case "鍗婃垚鍝�": - transactionNo = 902; // 鍗婃垚鍝佸伐搴� - break; - case "鎴愬搧": - case "鍖呰": - transactionNo = 903; // 鎴愬搧/鍖呰宸ュ簭 - break; + // 杈撳嚭鍙傛暟锛氳繑鍥炴秷鎭紙鏈�澶ч暱搴�2500瀛楃锛� + new SqlParameter("@outMsg", SqlDbType.NVarChar, 2500) { Direction = ParameterDirection.Output }, + // 杈撳嚭鍙傛暟锛氳繑鍥炲奖鍝嶈鏁� + new SqlParameter("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }, + // 杈撳叆鍙傛暟锛氭搷浣滀汉宸ュ彿 + new SqlParameter("@userno", request.UserNo), + // 杈撳叆鍙傛暟锛氬崟鎹紪鍙凤紙杩欓噷浼犲叆浜嗘潯鐮佸�硷級 + new SqlParameter("@inorder", request.sjBillNo), + // 杈撳叆鍙傛暟锛氭搷浣滅被鍨嬶紙1涓哄鏍革紝0涓哄弽瀹℃牳锛� + new SqlParameter("@inFieldValue", 1) + // 娉細浠ヤ笅鍙傛暟鍦ㄥ瓨鍌ㄨ繃绋嬩腑鏈夐粯璁ゅ�硷紝鍙牴鎹渶瑕佹坊鍔� + // @inFieldName nvarchar(20)=null, // 鎵╁睍瀛楁鍚� + // @in1 nvarchar(20)=null, // 鎵╁睍瀛楁1 + // @in2 nvarchar(20)=null // 鎵╁睍瀛楁2 + }; + + // 瀛樺偍杩囩▼鍚嶇О + string procedureName = "prc_pda_scbg_submit"; + // 鎵ц瀛樺偍杩囩▼ + int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters); + + // 鑾峰彇杈撳嚭鍙傛暟鍊硷紙甯︾被鍨嬭浆鎹級 + var outMsg = parameters[0].Value?.ToString() ?? string.Empty; // 杩斿洖娑堟伅 + var outSum = parameters[1].Value != DBNull.Value ? Convert.ToInt32(parameters[1].Value) : -1; // 褰卞搷琛屾暟 + + if (outSum == -1) + { + throw new Exception(outMsg); } - - // 5. 姹囨�诲凡鎵潯鐮佹暟閲忥紝楠岃瘉鏄惁瓒呭嚭璁″垝鏁伴噺 - var sumQty = Db.Queryable<MesWorkProd, MesWorkProdCDetails>((a, b) => - new JoinQueryInfos(JoinType.Inner, a.BillNo == b.BillNo)) - .Where((a, b) => a.BillTypeId == billTypeId - && a.TransactionNo == transactionNo - && b.SilkId == barcode.SilkId - && a.TaskNo == barcode.BillNo) - .Sum((a, b) => b.Quantity); - - sumQty = (sumQty ?? 0) + (int)request.Quantity; - - if (sumQty > womdaa.Daa008) - throw new Exception( - $"鏈鎶ュ伐鏁伴噺锛歿request.Quantity} 澶т簬鍓╀綑鎶ュ伐鏁伴噺锛歿womdaa.Daa008 - (sumQty - request.Quantity)}锛岃鏍稿锛�"); - - // 6. 寮�鍚簨鍔″鐞嗘姤宸ユ暟鎹� - return UseTransaction(db => + else { - // 6.1 鏇存柊鏉$爜淇℃伅锛岃缃凡鎶ュ伐鏍囪鍜屾暟閲� - db.Updateable<MesInvItemBarcodes>() - .SetColumns(x => x.WorkFlg == true) - .SetColumns(x => x.Quantity == request.Quantity) - .Where(x => x.Guid == barcode.Guid) - .ExecuteCommand(); - - // 6.2 鑾峰彇鎴栧垱寤烘姤宸ュ崟 - var workProd = db.Queryable<MesWorkProd>() - .Where(x => x.TaskNo == barcode.BillNo - && x.CreateDate.Value.Date.ToString("yyyy-MM-dd") == - DateTime.Now.Date.ToString("yyyy-MM-dd") - && x.BillTypeId == billTypeId - && x.TransactionNo == transactionNo - && x.Status == 0) - .First(); - - // 6.3 濡傛灉鎶ュ伐鍗曚笉瀛樺湪鍒欏垱寤烘柊鐨勬姤宸ュ崟 - if (workProd == null) - { - var billNo = BillNo.GetBillNo("BG(鎶ュ伐缂栧彿)"); - workProd = new MesWorkProd - { - Id = Guid.NewGuid(), - BillNo = billNo, - LineNo = barcode.LineNo, - Company = barcode.Company, - Factory = barcode.Factory, - CreateBy = request.UserNo, - CreateDate = DateTime.Now, - LastupdateBy = request.UserNo, - LastupdateDate = DateTime.Now, - PbillNo = barcode.BillNo, - BillTypeId = billTypeId, - TransactionNo = transactionNo, - TaskNo = barcode.BillNo - }; - - db.Insertable(workProd).IgnoreColumns(true).ExecuteCommand(); - } - - // 6.4 鎻掑叆鎶ュ伐鏄庣粏璁板綍 - var detail = new MesWorkProdCDetails - { - Id = Guid.NewGuid(), - BillNo = workProd.BillNo, - ItemBarcode = request.ItemBarcode, - Quantity = (int)request.Quantity, - Company = barcode.Company, - Factory = barcode.Factory, - CreateBy = request.UserNo, - CreateDate = DateTime.Now, - LastupdateBy = request.UserNo, - LastupdateDate = DateTime.Now, - ItemNo = barcode.ItemNo, - PbillNo = barcode.BillNo, - WorkLast = barcode.WorkLast, - SilkPqty = barcode.SilkPqty, - SilkId = barcode.SilkId, - Silk = barcode.Silk - }; - - db.Insertable(detail).IgnoreColumns(true).ExecuteCommand(); - - return 1; - }) > 0; + return true; + } } + + public ScanWorkResult GetRksqList(ScanWorkRequest request) + { + + //1.楠岃瘉鍛樺伐淇℃伅 + var staff = Db.Queryable<MesStaff>() + .Where(x => x.StaffNo == request.StaffNo) + .First(); + if (staff == null) + throw new Exception("璇峰厛閫夋嫨浜哄憳"); + + var rksqOrder = Db.Queryable<MesInvItemIns>() + .Where(x => x.BillNo == request.sjBillNo && x.Status == 0) + .First(); + if (rksqOrder == null) + throw new Exception("璇ユ楠屽崟宸叉彁浜ら�佹"); + + var sql = string.Format(@"SELECT A.item_barcode ItemBarcode,B.QUANTITY BgQuantity,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel + FROM MES_INV_ITEM_IN_RKSQ_DETAILS A + LEFT JOIN MES_INV_ITEM_BARCODES B ON A.item_barcode = B.ITEM_BARCODE + LEFT JOIN MES_ITEMS C ON B.ITEM_ID = C.item_id + WHERE A.bill_no= '{0}'ORDER BY A.create_date DESC", rksqOrder.BillNo); + + var RKSQ = Db.Ado.SqlQuery<MesInvItemInRksqDetails>(sql); + + + var rksqDetails = RKSQ.ToList(); + + + //var rksqDetails = Db.Queryable<MesInvItemInRksqDetails>() + // .Where(x => x.BillNo == ) + // .ToList(); + + // 15. Return processing result + return new ScanWorkResult + { + BarcodesDetail = rksqDetails, + }; + } + + public ScanWorkResult GetRksqSelect(ScanWorkRequest request) + { + //1.楠岃瘉鍛樺伐淇℃伅 + var staff = Db.Queryable<MesStaff>() + .Where(x => x.StaffNo == request.StaffNo) + .First(); + if (staff == null) + throw new Exception("璇峰厛閫夋嫨浜哄憳"); + + var rksqOrder = Db.Queryable<MesInvItemIns>() + .Where(x => x.TransctionNo=="181"&& x.Status == 0 && x.CreateBy== request.StaffNo) + .ToList(); + + return new ScanWorkResult + { + rksqOrderList = rksqOrder, + }; + } + } \ No newline at end of file -- Gitblit v1.9.3