You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
4.7 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Model.domain;
using SlnMesnac.Repository.service.@base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* LAPTOP-E0N2L34V
* SlnMesnac.Repository.service.Impl
* 052967bb-62b3-4a80-b2b9-135493fa7a73
*
* WenJY
* wenjy@mesnac.com
* 2024-04-10 16:46:27
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Repository.service.Impl
{
public class MesPrdBarCodeServiceImpl : BaseServiceImpl<MesPrdBarcodeInfo>, IMesPrdBarCodeService
{
private IServiceProvider _serviceProvider;
public MesPrdBarCodeServiceImpl(Repository<MesPrdBarcodeInfo> rep, IServiceProvider serviceProvider) : base(rep)
{
_serviceProvider = serviceProvider;
}
/// <summary>
/// 保存条码队列信息
/// </summary>
/// <param name="task"></param>
/// <param name="barCodeTasks"></param>
/// <exception cref="InvalidOperationException"></exception>
public void InsertBarCodeTask(MesPrdBarcodeInfo mesPrdBarcodeInfo)
{
try
{
if (mesPrdBarcodeInfo == null)
{
throw new ArgumentNullException($"保存条码队列信息异常:参数为空");
}
var taskInfos = Query(x => x.PrdBarcodeInfo == mesPrdBarcodeInfo.PrdBarcodeInfo).ToList();
if (taskInfos.Count > 0)
{
Deletes(taskInfos);
}
Insert(mesPrdBarcodeInfo);
}
catch (Exception e)
{
throw new InvalidOperationException($"保存条码队列信息异常:{e.Message}");
}
}
/// <summary>
/// 查询前四十条已经喷印未绑定条码
/// </summary>
/// <param name="task"></param>
/// <param name="barCodeTasks"></param>
/// <exception cref="InvalidOperationException"></exception>
public List<MesPrdBarcodeInfo> GetUseBarCodeList()
{
List<MesPrdBarcodeInfo> list = null;
try
{
string sql = "select * from mes_prd_barcode_info where print_flag ='1' and pallet_info_code is null order by print_time limit 40;";
list = _rep.Context.Ado.SqlQuery<MesPrdBarcodeInfo>(sql);
return list;
}catch (Exception e)
{
throw new InvalidOperationException($"查询小条码队列信息异常:{e.Message}");
}
}
/// <summary>
/// 移除条码队列
/// </summary>
/// <param name="barCode"></param>
/// <exception cref="InvalidOperationException"></exception>
//public void RemoveBarCodeTask(string barCode)
//{
// try
// {
// if (string.IsNullOrEmpty(barCode))
// {
// throw new ArgumentNullException($"移除条码队列信息异常:参数为空");
// }
// var taskInfos = Query(x => x.BarCode == barCode).ToList();
// Deletes(taskInfos);
// RefreshLocalTask();
// }
// catch (Exception e)
// {
// throw new InvalidOperationException($"移除条码队列信息异常:{e.Message}");
// }
//}
///// <summary>
/// 刷新条码队列缓存信息
/// </summary>
/// <param name="palletTasks"></param>
/// <exception cref="InvalidOperationException"></exception>
//private void RefreshLocalTask()
//{
// try
// {
// using (var scope = _serviceProvider.CreateScope())
// {
// var info = scope.ServiceProvider.GetRequiredService<List<RealBarCodeTask>>();
// var infos = base.Query(x => 1 == 1, y => y.RecordTime, true).ToList();
// info.Clear();
// info.AddRange(infos);
// }
// }
// catch (Exception e)
// {
// throw new InvalidOperationException($"刷新条码队列缓存信息异常:{e.Message}");
// }
//}
}
}