|
@@ -46,7 +46,7 @@ public class UpLoadSystems : DeviceSystem<Device<IStation520>>
|
|
|
taskIdList.Add(task); //更新成功
|
|
|
isEnd = true;
|
|
|
}
|
|
|
- World.Log($"出库放货完成状态同步失败:{task.ID}[{res.ResMsg}]");
|
|
|
+ World.Log($"入库任务完成同步:出库放货完成状态同步失败:{task.ID}[{res.ResMsg}]");
|
|
|
}
|
|
|
|
|
|
//拆分防止锁表
|
|
@@ -66,26 +66,41 @@ public class UpLoadSystems : DeviceSystem<Device<IStation520>>
|
|
|
var taskIdList = new List<WCS_TaskOld>();
|
|
|
var nowTime = DateTime.Now;
|
|
|
var db = _db.Default;
|
|
|
- var taskList = db.Queryable<WCS_TaskOld>().UpdLock()
|
|
|
+ var taskList = db.Queryable<WCS_TaskOld>().NoLock()
|
|
|
.Where(x => ((x.Type == TaskType.SetPlate && x.WarehouseCode.Contains("R"))
|
|
|
|| ((x.Type == TaskType.EnterDepot || x.Type == TaskType.OutDepot) && !x.WarehouseCode.Contains("R"))
|
|
|
- || (x.Type == TaskType.EnterDepot && x.WarehouseCode.Contains("CRZP"))
|
|
|
+ || (x.Type == TaskType.EnterDepot && x.WarehouseCode.Contains("CRZP"))
|
|
|
|| (x.Type == TaskType.OutDepot && x.Device == "CR")
|
|
|
|| (x.Type == TaskType.OutDepot && x.AddrFrom.Contains("NSTJ") && x.AddrTo.Contains("NSTJ")))
|
|
|
&& x.Status == TaskStatus.Finish && x.Uploaded != TaskStatus.Finish)
|
|
|
.SplitTable(x => x.Take(2)).ToList();
|
|
|
|
|
|
var isEnd = false;
|
|
|
- foreach (var task in taskList)
|
|
|
+ foreach (var taskId in taskList.Select(x=>x.Id))
|
|
|
{
|
|
|
if (isEnd) continue;
|
|
|
- var res = WmsApi.CompleteTask(task.Id);
|
|
|
+ var task=db.Queryable<WCS_TaskOld>().UpdLock().Where(x => x.Id == taskId).SplitTable(x=>x.Take(2)).First();
|
|
|
+ if (task==null)
|
|
|
+ {
|
|
|
+ World.Log($"入库任务完成同步:没有找到对应的任务:[{taskId}]");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (task is { Status: TaskStatus.Finish, Uploaded: TaskStatus.Finish })
|
|
|
+ {
|
|
|
+ World.Log($"入库任务完成同步:任务状态不符合条件:任务号[{task.Id}]状态[{task.Status.GetDescription()}]同步状态[{task.Uploaded.GetDescription()}]");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ var res = WmsApi.CompleteTask(taskId);
|
|
|
if (res.ResCode == ResponseStatusCodeEnum.Sucess)
|
|
|
{
|
|
|
taskIdList.Add(task);
|
|
|
isEnd = true;
|
|
|
}
|
|
|
- World.Log($"入库完成状态同步失败:{task.Id}[{res.ResMsg}]");
|
|
|
+ else
|
|
|
+ {
|
|
|
+ World.Log($"入库任务完成同步:入库完成状态同步失败:{taskId}[{res.ResMsg}]");
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//拆分防止锁表
|