|
|
@@ -68,9 +68,9 @@ namespace WCS.Service.Works.Station
|
|
|
db.Default.Set<WCS_TASK>().Add(task);
|
|
|
finishTaskList.Add(new FinishTaskList<int>(task.WMSTASK, item.Station));
|
|
|
|
|
|
- var msg = $"下达从{dev.Entity.CODE}移动至{next}的PLC指令。";
|
|
|
- msg += $"[{dev.Data.Tasknum}][{dev.Data.Goodsstart}][{dev.Data.Goodsend}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]";
|
|
|
- task.CreateStatusLogAsync(msg, this.GetType());
|
|
|
+ var msg = $"下达从{dev.Entity.CODE}";
|
|
|
+
|
|
|
+ task.CreateStatusLogAsync($"{dev.Entity.CODE}创建入库任务", this.GetType());
|
|
|
}
|
|
|
//两个任务一起创建
|
|
|
db.Default.SaveChanges();
|
|
|
@@ -93,9 +93,11 @@ namespace WCS.Service.Works.Station
|
|
|
finishTask.Station.Data.VoucherNo++;
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
- timer.Stop();
|
|
|
- InfoLog.INFO_TIMING($"{obj.Entity.CODE}--扫码入库,耗时{timer.ElapsedMilliseconds}");
|
|
|
+ if (finishTaskList.Any())
|
|
|
+ {
|
|
|
+ timer.Stop();
|
|
|
+ InfoLog.INFO_TIMING($"{obj.Entity.CODE}--扫码入库,耗时{timer.ElapsedMilliseconds}");
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
@@ -185,9 +187,7 @@ namespace WCS.Service.Works.Station
|
|
|
task.ADDRNEXT = tunnelInfo.taskIN.CODE;
|
|
|
task.TaskGroupKey = res.WMSTaskGroupKey;
|
|
|
task.ADDRTO = task.DEVICE;
|
|
|
- var msg = $"下达从G1030移动至{dev.Data.Goodsend}的PLC指令。同时将任务分配至[{task.TUNNEL}]-[{task.DEVICE}]";
|
|
|
- msg += $"[{dev.Data.Tasknum}][G1030][{dev.Data.Goodsend}][{tunnelInfo.SRM.Entity.CODE}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]";
|
|
|
- task.CreateStatusLogAsync(msg, this.GetType());
|
|
|
+ task.CreateStatusLogAsync($"一次分配至堆垛机{task.DEVICE}", this.GetType());
|
|
|
finishTaskList.Add(new FinishTaskList<int>(task.ID, item.Entity.Create<StationDevice>()));
|
|
|
}
|
|
|
|
|
|
@@ -286,9 +286,7 @@ namespace WCS.Service.Works.Station
|
|
|
task.ADDRNEXT = tunnelInfo.taskIN.CODE;
|
|
|
task.TaskGroupKey = res.WMSTaskGroupKey;
|
|
|
task.ADDRTO = task.DEVICE;
|
|
|
- var msg = $"下达从{obj.Entity.CODE}移动至{dev.Data.Goodsend}的PLC指令。同时将任务分配至[{task.TUNNEL}]-[{task.DEVICE}]";
|
|
|
- msg += $"[{dev.Data.Tasknum}][{obj.Entity.CODE}][{dev.Data.Goodsend}][{tunnelInfo.SRM.Entity.CODE}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]";
|
|
|
- task.CreateStatusLogAsync(msg, this.GetType());
|
|
|
+ task.CreateStatusLogAsync($"二次分配至堆垛机{task.TUNNEL}", this.GetType());
|
|
|
finishTaskList.Add(new FinishTaskList<int>(task.ID, dev));
|
|
|
}
|
|
|
db.Default.SaveChanges();
|
|
|
@@ -320,70 +318,4 @@ namespace WCS.Service.Works.Station
|
|
|
|
|
|
private List<string> devCodes = new List<string>() { "G1038", "G1047", "G1056", "G1065" };
|
|
|
}
|
|
|
-
|
|
|
- //[WorkTitle(typeof(ProductHandler), "一楼RGV放货结束分配目标地址")]
|
|
|
- internal class 一楼RGV放货结束分配目标地址 : Work<StationDeviceGroup>
|
|
|
- {
|
|
|
- protected override void Do(StationDeviceGroup obj)
|
|
|
- {
|
|
|
- obj.EX(obj =>
|
|
|
- {
|
|
|
- if (obj.Items.Any(v => v.Data.VoucherNo != v.Data2.VoucherNo)) throw new WarnException($"等待执行任务,凭证号不一致");
|
|
|
- if (obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new DoException("运行中");
|
|
|
- var finishTaskList = new List<FinishTaskList<int>>();
|
|
|
- var devs = new List<FinishTaskList<string>>();
|
|
|
- foreach (var dev in obj.Items)
|
|
|
- {
|
|
|
- if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
- {
|
|
|
- InfoLog.INFO_INFO($"{obj.Entity.CODE}无请求-分配目标地址--2");
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
- {
|
|
|
- InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
|
|
|
- continue;
|
|
|
- }
|
|
|
- devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
|
|
|
- }
|
|
|
-
|
|
|
- DB.Do(db =>
|
|
|
- {
|
|
|
- foreach (var dev in devs)
|
|
|
- {
|
|
|
- var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum);
|
|
|
- var next = dev.Station.Entity.GetPath(task.ADDRTO);
|
|
|
- task.ADDRNEXT = next.CODE;
|
|
|
-
|
|
|
- var msg = $"下达从{dev.Station.Data.Goodsstart}移动至{dev.Station.Data.Goodsend}的PLC指令";
|
|
|
- msg += $"[{dev.Station.Data.Tasknum}][{dev.Station.Data.Goodsstart}][{dev.Station.Data.Goodsend}][{dev.Station.Data.VoucherNo}[{dev.Station.Data2.VoucherNo}]";
|
|
|
- task.CreateStatusLogAsync(msg, this.GetType());
|
|
|
- finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Station));
|
|
|
- }
|
|
|
- db.Default.SaveChanges();
|
|
|
- });
|
|
|
-
|
|
|
- DB.Do(db =>
|
|
|
- {
|
|
|
- foreach (var finish in finishTaskList)
|
|
|
- {
|
|
|
- var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == finish.FinishCode);
|
|
|
- if (task == null) continue;
|
|
|
- finish.Station.Data.Tasknum = task.ID;
|
|
|
- finish.Station.Data.Goodsstart = finish.Station.Entity.CODE.ToShort();
|
|
|
- finish.Station.Data.Goodsend = task.ADDRNEXT.ToShort();
|
|
|
- finish.Station.Data.CmdType = IstationCmdType.分配目标地址;
|
|
|
- finish.Station.Data.VoucherNo++;
|
|
|
- }
|
|
|
- });
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- protected override bool SelectDevice(WCS_DEVICE dev)
|
|
|
- {
|
|
|
- return devCodes.Contains(dev.CODE);
|
|
|
- }
|
|
|
-
|
|
|
- private List<string> devCodes = new List<string>() { "G1035", "G1044", "G1053", "G1062" };
|
|
|
- }
|
|
|
}
|