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<MesLineUser>()
|
.Where(a => a.Fcode == userNo)
|
.ToList();
|
return mesLineUsers.Select(s => s.LineNo).ToArray();
|
}
|
|
public int saveImage(List<MesQsImage> 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<MesQsImage> getByFid(decimal id, string qsType)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
var mesQsImages = db.Queryable<MesQsImage>()
|
.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<MesQsImage> getByOqcFid(decimal id, string qsType)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
var mesQsImages = db.Queryable<MesQsImage>()
|
.Where(s => s.Fid == id && s.QsType == qsType).ToList();
|
|
var mesOqcItemsDetect02 = db.Queryable<MesOqcItemsDetect02>()
|
.Where(s => s.Id == id).First();
|
|
if (mesOqcItemsDetect02?.SaleOrderNo != null)
|
{
|
var baseOrderNo = mesOqcItemsDetect02.SaleOrderNo.Split('-')[0];
|
|
var additionalImages = db.Queryable<MesQsImage>()
|
.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;
|
}
|
|
/// <summary>
|
/// 获取THJ退货检验的图片,支持根据退货单号查找额外图片
|
/// </summary>
|
public List<MesQsImage> getByThjFid(decimal id, string qsType)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
var mesQsImages = db.Queryable<MesQsImage>()
|
.Where(s => s.Fid == id && s.QsType == qsType).ToList();
|
|
// 获取THJ主表信息
|
var qsQaItemThj = db.Queryable<QsQaItemThj>()
|
.Where(s => s.Id == id).First();
|
|
if (qsQaItemThj?.BillNo != null)
|
{
|
// 根据退货单号查找额外的图片
|
var additionalImages = db.Queryable<MesQsImage>()
|
.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;
|
}
|
|
}
|