using MES.Service.DB; using MES.Service.Modes; namespace MES.Service.service.QC; public class BaseService { public string[]? getUserLineNo(string userNo) { //MesLineUser var db = SqlSugarHelper.GetInstance(); var mesLineUsers = db.Queryable() .Where(a => a.Fcode == userNo) .ToList(); return mesLineUsers.Select(s => s.LineNo).ToArray(); } public int saveImage(List entity) { var mesQsImages = entity.Where(item => item.Id == null).ToList(); mesQsImages.ForEach(s => { if (!string.IsNullOrEmpty(s.base64Date)) { //将base64转换为byte数组 s.ImageData = Convert.FromBase64String(s.base64Date); // 统一文件名格式:如果为空或UUID格式,则生成时间戳格式,后缀为png if (string.IsNullOrEmpty(s.Picturename) || (s.Picturename.Length > 30 && !s.Picturename.Contains("."))) { s.Picturename = $"{DateTimeOffset.Now.ToUnixTimeMilliseconds()}.png"; } else if (s.Picturename.Contains(".")) { // 如果文件名包含扩展名,统一改为png后缀 var nameWithoutExt = s.Picturename.Split('.')[0]; s.Picturename = $"{nameWithoutExt}.png"; } } }); return SqlSugarHelper.UseTransactionWithOracle(db => db.Insertable(mesQsImages).ExecuteCommand()); } public int removeImage(decimal? id) { return SqlSugarHelper.UseTransactionWithOracle(db => db .Deleteable(new MesQsImage { Id = id }) .ExecuteCommand()); } public List getByFid(decimal id, string qsType) { var db = SqlSugarHelper.GetInstance(); var mesQsImages = db.Queryable() .Where(s => s.Fid == id && s.QsType == qsType).ToList(); mesQsImages.ForEach(s => { if (s.ImageData is { Length: > 0 }) s.base64Date = Convert.ToBase64String(s.ImageData); }); return mesQsImages; } public List getByOqcFid(decimal id, string qsType) { var db = SqlSugarHelper.GetInstance(); var mesQsImages = db.Queryable() .Where(s => s.Fid == id && s.QsType == qsType).ToList(); var mesOqcItemsDetect02 = db.Queryable() .Where(s => s.Id == id).First(); if (mesOqcItemsDetect02?.SaleOrderNo != null) { var baseOrderNo = mesOqcItemsDetect02.SaleOrderNo.Split('-')[0]; var additionalImages = db.Queryable() .Where(s => s.OrderNo == baseOrderNo && s.QsType == qsType) .Where(s => !mesQsImages.Any(existing => existing.Id == s.Id)) .ToList(); mesQsImages.AddRange(additionalImages); if (mesQsImages.Count > 9) { mesQsImages = mesQsImages.Take(9).ToList(); } } mesQsImages.ForEach(s => { if (s.ImageData is { Length: > 0 }) s.base64Date = Convert.ToBase64String(s.ImageData); }); return mesQsImages; } /// /// 获取THJ退货检验的图片,支持根据退货单号查找额外图片 /// public List getByThjFid(decimal id, string qsType) { var db = SqlSugarHelper.GetInstance(); var mesQsImages = db.Queryable() .Where(s => s.Fid == id && s.QsType == qsType).ToList(); // 获取THJ主表信息 var qsQaItemThj = db.Queryable() .Where(s => s.Id == id).First(); if (qsQaItemThj?.BillNo != null) { // 根据退货单号查找额外的图片 var additionalImages = db.Queryable() .Where(s => s.OrderNo == qsQaItemThj.BillNo && s.QsType == qsType) .Where(s => !mesQsImages.Any(existing => existing.Id == s.Id)) .ToList(); mesQsImages.AddRange(additionalImages); // 限制最多9张图片 if (mesQsImages.Count > 9) { mesQsImages = mesQsImages.Take(9).ToList(); } } mesQsImages.ForEach(s => { if (s.ImageData is { Length: > 0 }) { s.base64Date = Convert.ToBase64String(s.ImageData); // 确保文件名格式正确,统一使用png后缀 if (string.IsNullOrEmpty(s.Picturename)) { s.Picturename = $"{DateTimeOffset.Now.ToUnixTimeMilliseconds()}.png"; } else if (s.Picturename.Contains(".")) { // 如果文件名包含扩展名,统一改为png后缀 var nameWithoutExt = s.Picturename.Split('.')[0]; s.Picturename = $"{nameWithoutExt}.png"; } } else { // 如果没有图片数据,设置空的base64 s.base64Date = string.Empty; } }); return mesQsImages; } }