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.

125 lines
3.7 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Model.domain;
using SlnMesnac.Model.dto;
using SlnMesnac.Repository.service.@base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* LAPTOP-E0N2L34V
* SlnMesnac.Repository.service.Impl
* 8293a517-9203-40d4-b4f2-49ebfad4e381
*
* WenJY
* wenjy@mesnac.com
* 2024-04-09 17:33:10
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Repository.service.Impl
{
public class RealPalletTaskServiceImpl : BaseServiceImpl<RealPalletTask>, IRealPalletTaskService
{
private IServiceProvider _serviceProvider;
public RealPalletTaskServiceImpl(Repository<RealPalletTask> rep, IServiceProvider serviceProvider) : base(rep)
{
_serviceProvider = serviceProvider;
}
public void InsertPalletTask(RealPalletTask task)
{
try
{
if (task == null)
{
throw new ArgumentNullException($"保存托盘队列信息异常:参数为空");
}
var taskInfos = Query(x => x.PalletCode == task.PalletCode).ToList();
//if(taskInfos.Count > 0)
//{
// Deletes(taskInfos);
//}
Insert(task);
RefreshLocalTask();
}
catch (Exception e)
{
throw new InvalidOperationException($"保存托盘队列信息异常:{e.Message}");
}
}
/// <summary>
/// 移除托盘队列
/// </summary>
/// <param name="palletCode"></param>
/// <exception cref="InvalidOperationException"></exception>
public void RemovePalletTask(string palletCode)
{
try
{
if (string.IsNullOrEmpty(palletCode))
{
throw new ArgumentNullException($"移除托盘队列信息异常:参数为空");
}
var taskInfos = Query(x=>x.PalletCode == palletCode).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<RealPalletTask>>();
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}");
}
}
}
}