| | |
| | | using NewPdaSqlServer.util; |
| | | using SqlSugar; |
| | | using System.Text; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Dynamic; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory; |
| | | |
| | | namespace NewPdaSqlServer.service.Warehouse; |
| | | |
| | |
| | | |
| | | return XcslItem; |
| | | } |
| | | |
| | | public List<dynamic> ExecuteBeginBar(dynamic query) |
| | | { |
| | | if (query == null) |
| | | throw new ArgumentNullException(nameof(query), "参数对象不能为null"); |
| | | |
| | | // 增强参数校验 |
| | | if (string.IsNullOrEmpty(query.userName?.ToString())) |
| | | throw new ArgumentException("用户账号不能为空", nameof(query.userName)); |
| | | |
| | | if (string.IsNullOrEmpty(query.itemid?.ToString())) |
| | | throw new ArgumentException("物料ID不能为空", nameof(query.itemid)); |
| | | |
| | | var resultList = new List<dynamic>(); |
| | | |
| | | using (var conn = new SqlConnection(DbHelperSQL.strConn)) |
| | | using (var cmd = new SqlCommand("rpt_BeginBar", conn)) |
| | | { |
| | | cmd.CommandType = CommandType.StoredProcedure; |
| | | cmd.Parameters.AddRange(new[] |
| | | { |
| | | new SqlParameter("@inUser", SqlDbType.NVarChar, 50) { Value = query.userName }, |
| | | new SqlParameter("@inItemId", SqlDbType.NVarChar, 50) { Value = query.itemid }, |
| | | new SqlParameter("@isDesign", SqlDbType.Int) { Value = 0 }, |
| | | new SqlParameter("@in4", SqlDbType.NVarChar, 20) { Value = query.in4 ?? DBNull.Value }, |
| | | new SqlParameter("@in5", SqlDbType.NVarChar, 20) { Value = query.num ?? DBNull.Value } |
| | | }); |
| | | |
| | | try |
| | | { |
| | | conn.Open(); |
| | | using (var reader = cmd.ExecuteReader()) |
| | | { |
| | | while (reader.Read()) |
| | | { |
| | | var barcode = reader.GetString(0); |
| | | |
| | | // 构建符合方法签名的参数对象 |
| | | var scanQuery = new WarehouseQuery |
| | | { |
| | | barcode = barcode, |
| | | DepotCode = query.sectionCode, // 从原始query获取库位编码 |
| | | userName = query.userName // 从原始query获取用户账号 |
| | | }; |
| | | |
| | | try |
| | | { |
| | | // 调用正式签名方法 |
| | | ScanBarcode(scanQuery); |
| | | var printData = GetPrintBar(barcode); |
| | | resultList.Add(printData); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"期初条码打印入库存在异常{ex.Message},请重新打印!"); |
| | | } |
| | | } |
| | | } |
| | | return resultList; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"生成期初条码失败:{ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public dynamic GetPrintBar(string barcode) |
| | | { |
| | | var sqlParams = new List<SugarParameter> { new("@barcode", barcode) }; |
| | | |
| | | var sql1 = @" SELECT TOP 1 C.ITEM_NO,C.item_name,C.item_model,B.OLDQTY as QUANTITY,B.CREATE_DATE, '期初条码' AS BarType,A.ITEM_BARCODE,GETDATE() as print_date |
| | | FROM MES_INV_ITEM_STOCKS A |
| | | LEFT JOIN MES_INV_ITEM_BARCODES B ON A.ITEM_BARCODE = B.ITEM_BARCODE |
| | | LEFT JOIN MES_ITEMS C ON C.item_id = B.ITEM_ID |
| | | WHERE B.ITEM_BARCODE = @barcode"; |
| | | |
| | | var XcslItem = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams).First(); |
| | | |
| | | return XcslItem; |
| | | } |
| | | } |