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);
}
}
}