123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using ServiceCenter.Extensions;
- 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.Protocol.Station;
- using WCS.WorkEngineering.Extensions;
- using WCS.WorkEngineering.Worlds;
- namespace WCS.WorkEngineering.Systems.重绕区
- {
- /// <summary>
- /// 扫码位分配
- /// </summary>
- [BelongTo(typeof(RewindWorld))]
- [Description("扫码位分配")]
- public class 扫码位分配 : DeviceSystem<Device<IStation520, IStation521, IStation523>>
- {
- protected override bool ParallelDo => true;
- public override void Do(Device<IStation520, IStation521, IStation523> obj)
- {
- if (obj.Data.VoucherNo != obj.Data2.VoucherNo)
- {
- World.Log($"凭证号不一致,DB520:{obj.Data.VoucherNo}-DB521:{obj.Data2.VoucherNo}");
- return;
- }
- if (obj.Data3.Status.HasFlag(StationStatus.Run))
- {
- World.Log("设备运行中");
- return;
- }
- ;
- if (!obj.Data3.Status.HasFlag(StationStatus.OT_Status))
- {
- World.Log("站台货物信息与实际占用不一致");
- return;
- }
- if (!obj.Data3.Status.HasFlag(StationStatus.PH_Status))
- {
- World.Log("无光电");
- return;
- }
- ;
- if (obj.Data2.Request != 1)
- {
- World.Log("无请求");
- return;
- }
- List<string> stations = new List<string> {"9119","9120","9121","9122","9123","9124","9125","9130", "9131", "9132", "9133", "9134", "9135", "9136", "9141",
- "9142", "9143", "9144", "9145", "9146", "9147"};
- List<string> targetStations = new List<string> { "9125", "9136", "9147" };
- var devs = Device.All.Where(x => stations.Contains(x.Code)).Select(x =>
- new Device<IStation520, IStation521, IStation523>(x, World));
- devs = devs.Where(x => targetStations.Contains(x.Data2.GoodsEnd.ToString())).ToList();
- short next = 9125;//9147;
- var num_9125 = devs.Count(x => x.Data2.GoodsEnd.ToString() == "9125");
- var num_9136 = devs.Count(x => x.Data2.GoodsEnd.ToString() == "9136");
- var num_9147 = devs.Count(x => x.Data2.GoodsEnd.ToString() == "9147");
- //if (devs.Count() == 0)
- //{
- // next = 9136;
- //}
- //else
- //{
- // next = num_9136 <= num_9125 ? num_9136.ToShort() : num_9125.ToShort();//ComputeAddto(num_9125, num_9136, num_9147);
- //}
- obj.Data.TaskNumber = obj.Entity.Code.ToShort();
- obj.Data.TaskNumber = obj.Entity.Code.ToShort();
- obj.Data.GoodsStart = obj.Entity.Code.ToShort();
- obj.Data.GoodsStart = obj.Entity.Code.ToShort();
- obj.Data.GoodsEnd = next;
- obj.Data.GoodsEnd = next;
- obj.Data.SetVoucherNo();
- }
- public short ComputeAddto(int num_9125, int num_9136, int num_9147)
- {
- if (num_9125 < num_9136 && num_9125 < num_9147)
- {
- return num_9125.ToShort();
- }
- else if (num_9136 < num_9125 && num_9136 < num_9147)
- {
- return num_9136.ToShort();
- }
- else
- {
- return num_9147.ToShort();
- }
- }
- public override bool Select(Device dev)
- {
- return dev.Code is "9115" or "9021";
- }
- }
- }
|