12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using NPOI.SS.Formula.PTG;
- using PlcSiemens.Core.Extension;
- using ServiceCenter.Redis;
- using ServiceCenter.SqlSugars;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using WCS.Core;
- using WCS.Entity;
- using WCS.WorkEngineering.Worlds;
- namespace WCS.WorkEngineering.Systems
- {
- /// <summary>
- /// 获取出库任务
- /// </summary>
- [BelongTo(typeof(MainWorld))]
- [Description("获取出库任务")]
- [Order(order: OrderType.Before, typeof(堆垛机))]
- public class 获取出库任务 : DeviceSystem<EntityEx<Device>>
- {
- protected override bool ParallelDo => true;
- public override void Do(EntityEx<Device> obj)
- {
- SqlSugarHelper.Do(db =>
- {
- //每5fenzhong重置出库缓存位数量,防止异常导致数量不对影响出库效率
- if (DateTime.Now.Minute % 5== 0 && DateTime.Now.Second == 0)
- {
- var tasks = db.Default.Queryable<WCS_TaskInfo>().Where(w => w.BusType == "装箱码垛"
- && w.Type == TaskType.OutDepot && w.Status > Entity.TaskStatus.NewBuild
- && w.Status < Entity.TaskStatus.码垛缓存放行
- && !SqlFunc.IsNullOrEmpty(w.AddrTo)
- ).ToList();
- tasks.GroupBy(g => g.AddrTo).Select(s => new { addTo = s.Key, cnt = s.Count() }).ForEach(task =>
- {
- if (!string.IsNullOrEmpty(task.addTo)&& MainWorld.Redis.Exists($"stockOperateNum{task.addTo}"))
- {
- MainWorld.Redis.Del($"stockOperateNum{task.addTo}");
- MainWorld.Redis.IncrBy($"stockOperateNum{task.addTo}", task.cnt);
- }
- });
- }
- var srmStockTasks = db.Default.SqlQueryable<V_TaskOut>("select * from V_TaskOut").ToList();
- if (srmStockTasks == null || !srmStockTasks.Any())
- return;
- MainWorld.Redis.Del("StockTasks");
- srmStockTasks.ForEach(item =>
- {
- MainWorld.Redis.HSet("StockTasks", item.SRM, item);
- });
- });
- }
- public override bool Select(Device dev)
- {
- return dev.Code == "SXOut";
- }
- }
- }
|