| | |
| | | using 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; |
| | | |
| | |
| | | /// </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("请å
éæ©äººå"); |
| | | |
| | |
| | | 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) |
| | |
| | | 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, |
| | | }; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | /// </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, |
| | | }; |
| | | } |
| | | |
| | | } |