using Furion.DependencyInjection; using Furion.DistributedIDGenerator; using Nirvana.Common; using Nirvana.Common.ApiBase; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using YBDevice.Entity; namespace YBDevice.NApi.Application.PrintInfo { /// /// 打印编号处理 /// public class PrintService : IPrintService, ITransient { private readonly ISqlSugarRepository repository; private readonly SqlSugarClient dbClient; public PrintService(ISqlSugarRepository sqlSugarRepository) { repository = sqlSugarRepository; dbClient = repository.Context; } /// /// 生成打印编号并记录 /// /// /// public async Task GetCodeAsync(PrintCodeC2SDto data) { if(data.codes == null || data.codes.Count == 0) { return new ResultInfo(ResultState.FAIL, "请先扫描设备编号"); } //生成编号 var printcode = new YB_PrintCode { Id = IDGen.NextID(), CreateTime = DateTime.Now }; await dbClient.Insertable(printcode).ExecuteCommandAsync(); //保存设备序列号 List list = new List(); foreach (var item in data.codes) { list.Add(new YB_PrintCodeEqu { FacEcode = item.ToStr(), PrintId = printcode.Id }); } await dbClient.Insertable(list).ExecuteCommandAsync(); return new ResultInfo(ResultState.SUCCESS, "success", printcode.Id); } /// /// 根据ID获取设备列表 /// /// 打印记录ID /// public async Task GetDevCodeListByIdAsync(Guid id) { if(!await dbClient.Queryable().AnyAsync(x => x.Id == id)) { return new ResultInfo(ResultState.FAIL, "记录未找到"); } var list = await dbClient.Queryable().Where(x => x.PrintId == id).Select(x => x.FacEcode).ToListAsync(); return new ResultInfo(ResultState.SUCCESS, "success", list); } } }