namespace NewPdaSqlServer.service.@base { using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using SqlSugar; using System; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; using System.Data; using NewPdaSqlServer.DB; using System.Data; using System.Data.SqlClient; using Microsoft.EntityFrameworkCore.Metadata.Internal; public class MesPrintMangeer : Repository { public dynamic getPrintInfo(dynamic query) { // 使用参数化查询防止SQL注入 var sqlParams = new List { new("@userAccount", query.userName) }; var sql1 = @"SELECT TOP 1 ip,port fROM print_info A left join SYS_USER_BIND B on A.guid = B.aboutGuid left join SYS_USER C ON C.GUID = B.userGuid WHERE C.ACCOUNT = @userAccount AND B.fType = '打印机'"; var printInfo = Db.Ado.SqlQuery(sql1, sqlParams); if (printInfo.Count < 1 ) throw new Exception("当前用户未绑定打印机,请维护后使用拆分功能!"); return printInfo; } public dynamic getCfInfo(dynamic query) // 使用具体类型替代dynamic { // 参数校验 if (string.IsNullOrEmpty(query?.cfBarcode)) throw new ArgumentException("拆分条码不能为空"); if (string.IsNullOrEmpty(query?.barcode)) throw new ArgumentException("原始条码不能为空"); // 使用强类型参数 var sqlParams = new List { new("@cfBar", query.cfBarcode.Trim()), new("@oldBar", query.barcode.Trim()) }; var sql = @"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 A.ITEM_BARCODE = @cfBar UNION ALL SELECT TOP 1 C.ITEM_NO,C.item_name,C.item_model,A.QUANTITY 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 A.ITEM_BARCODE = @oldBar"; var mergedData = Db.Ado.SqlQuery(sql, sqlParams); if (mergedData.Count < 2) throw new Exception("条码信息存在异常,请联系管理员!"); return mergedData; } // // 现场收料展示列表 // public class PrintBarInfo // { // public List cfBarInfo { get; set; } // public List oldBarInfo { get; set; } // } } }