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 保留所有权利。 * CLR版本:4.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, IRealPalletTaskService { private IServiceProvider _serviceProvider; public RealPalletTaskServiceImpl(Repository 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}"); } } /// /// 移除托盘队列 /// /// /// 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}"); } } /// /// 刷新托盘队列缓存信息 /// /// /// private void RefreshLocalTask() { try { using (var scope = _serviceProvider.CreateScope()) { var info = scope.ServiceProvider.GetRequiredService>(); 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}"); } } } }