|
@@ -425,13 +425,13 @@ namespace WCS.Service.Extensions
|
|
|
/// <returns></returns>
|
|
|
public StationDeviceGroup CurrentStation()
|
|
|
{
|
|
|
- return LocationList.Where(v => v.Entity.Is(DF.涂布RGV取货设备组)|| v.Entity.Is(DF.涂布RGV放货设备组)).Where(v =>
|
|
|
- {
|
|
|
- //RGV与站台距离误差为 正负50500
|
|
|
- var max = v.Position + 500;
|
|
|
- var min = v.Position - 500;
|
|
|
- return Data2.Position < max && Data2.Position > min;
|
|
|
- }).FirstOrDefault();
|
|
|
+ return LocationList.Where(v => v.Entity.Is(DF.涂布RGV取货设备组) || v.Entity.Is(DF.涂布RGV放货设备组)).Where(v =>
|
|
|
+ {
|
|
|
+ //RGV与站台距离误差为 正负50500
|
|
|
+ var max = v.Position + 500;
|
|
|
+ var min = v.Position - 500;
|
|
|
+ return Data2.Position < max && Data2.Position > min;
|
|
|
+ }).FirstOrDefault();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -582,6 +582,7 @@ namespace WCS.Service.Extensions
|
|
|
public void FinishedTaskHandle()
|
|
|
{
|
|
|
WCS_TASK task = new WCS_TASK();
|
|
|
+
|
|
|
DB.Do(db =>
|
|
|
{
|
|
|
var taskIds = new List<int>() { Data2.FinishedTask_1, Data2.FinishedTask_2 }.ToArray();
|
|
@@ -609,11 +610,6 @@ namespace WCS.Service.Extensions
|
|
|
task.UPDATETIME = DateTime.Now;
|
|
|
db.Default.SaveChanges();
|
|
|
Uploader.Upload(db);
|
|
|
-
|
|
|
- var target = Device.Find(ELine).Create<StationDevice>();
|
|
|
- target.Data.Tasknum = task.ID;
|
|
|
- target.Data.Goodsstart = ELine.ToShort();
|
|
|
- target.Data.Goodsend = task.ADDRNEXT.ToShort();
|
|
|
}
|
|
|
else if (task.TYPE == TaskType.移库)
|
|
|
{
|
|
@@ -627,8 +623,44 @@ namespace WCS.Service.Extensions
|
|
|
}
|
|
|
else throw new Exception($"[{Entity.CODE}]任务类型错误");
|
|
|
|
|
|
- if (i == 0) Data.FinishedACK_1 = 1;
|
|
|
- else Data.FinishedACK_2 = 1;
|
|
|
+ task.CreateStatusLog(db, $"状态由[{TaskStatus.堆垛机执行}]变更为[{task.STATUS}]", this.GetType());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ DB.Do(db =>
|
|
|
+ {
|
|
|
+ var taskIds = new List<int>() { Data2.FinishedTask_1, Data2.FinishedTask_2 }.ToArray();
|
|
|
+
|
|
|
+ for (int i = 0; i < taskIds.Length; i++)
|
|
|
+ {
|
|
|
+ //判断当前工位是否有完成任务
|
|
|
+ if (taskIds[i] == 0) continue;
|
|
|
+ //获取当前工位的目标地址
|
|
|
+ var ELine = i == 0 ? Data.ELine_1.ToString() : Data.ELine_2.ToString();
|
|
|
+ task = db.Default.Set<WCS_TASK>().Single(v => taskIds[i] == v.ID);
|
|
|
+
|
|
|
+ if (task.TYPE == TaskType.入库 && task.STATUS == TaskStatus.已完成)
|
|
|
+ {
|
|
|
+ if (i == 0) Data.FinishedACK_1 = 1;
|
|
|
+ else Data.FinishedACK_2 = 1;
|
|
|
+ }
|
|
|
+ else if (task.TYPE == TaskType.出库 && task.STATUS == TaskStatus.堆垛机完成)
|
|
|
+ {
|
|
|
+ var target = Device.Find(ELine).Create<StationDevice>();
|
|
|
+ target.Data.Tasknum = task.ID;
|
|
|
+ target.Data.Goodsstart = ELine.ToShort();
|
|
|
+ target.Data.Goodsend = task.ADDRNEXT.ToShort();
|
|
|
+
|
|
|
+ if (i == 0) Data.FinishedACK_1 = 1;
|
|
|
+ else Data.FinishedACK_2 = 1;
|
|
|
+ }
|
|
|
+ else if (task.TYPE == TaskType.移库 && task.STATUS == TaskStatus.堆垛机完成)
|
|
|
+ {
|
|
|
+ if (i == 0) Data.FinishedACK_1 = 1;
|
|
|
+ else Data.FinishedACK_2 = 1;
|
|
|
+ }
|
|
|
+ else throw new Exception($"[{Entity.CODE}]任务类型错误");
|
|
|
+
|
|
|
task.CreateStatusLog(db, $"状态由[{TaskStatus.堆垛机执行}]变更为[{task.STATUS}]", this.GetType());
|
|
|
}
|
|
|
});
|