From 4606665e0e359aa54483283c042934c644a45434 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期一, 28 四月 2025 17:26:15 +0800
Subject: [PATCH] 修改冲突问题
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 42 +++++++++++++++++++++---------------------
1 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 670f1e5..f62f828 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -34,7 +34,7 @@
AGV(mod); // AGV璋冨害
break;
case PLCTypeEnum.ShuttleCar: //绌挎杞�
- ShuttleCar(mod);
+ //ShuttleCar(mod);
break;
case PLCTypeEnum.RobotPalletizer:
RobotPalletizer(mod);//鐮佸灈鏈哄櫒浜�
@@ -159,8 +159,8 @@
var (resultTaskStatus, valueTaskStatus) = plcConn.GetDBValue(modPosTaskStatus.PosType, modPosTaskStatus.PlcPos);
//鍒ゆ柇璇诲彇浠诲姟鐘舵�佹槸鍚︽垚鍔� 骞朵笖浠诲姟鐘舵�佹槸1 0:鏃犱换鍔�,1:浠诲姟瀹屾垚,2:浠诲姟鍙栨秷,3:浠诲姟鏆傚仠锛�4锛氫换鍔″紓甯� 5锛氫换鍔℃墽琛屼腑
- WcsCarTasks carTask2 = null;//null 鏂颁换鍔� not null 璺緞2浠诲姟
-
+ WcsCarTasks carTaskNext = null;//null 鏂颁换鍔� not null 褰撳墠灏忚溅&&褰撳墠浠诲姟 涓嬩竴鑺備换鍔�
+
if (resultTaskStatus.IsSucceed && valueTaskStatus == 1)
{
var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
@@ -182,7 +182,7 @@
break;//娌℃湁鏌ヨ鍒版�讳换鍔�
}
//鑾峰彇璺緞2鐨勪换鍔� 涓嬪彂
- carTask2 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.PreId.Contains(carTask.Id.ToString())).OrderBy(m=>m.CreateTime).First();
+ carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing).OrderBy(m=>m.CreateTime).First();
if (carTask != null && carTask.Status != TaskStatusEnum.Complete)
{
@@ -201,8 +201,8 @@
HubUtil.PublicTaskMonitor(taskMonitor.Adapt<WcsTaskMonitorOutput>());
}
- //娌℃湁璺緞2鐨勪换鍔� 鍙樻洿鎬讳换鍔′俊鎭�
- if (carTask2 == null && modFinshTask != null && modFinshTask.Status != TaskStatusEnum.Complete)
+ //鎬讳换鍔′笅娌℃湁鍏朵粬鏈墽琛屽皬杞︾殑浠诲姟 鍙樻洿鎬讳换鍔′俊鎭�
+ if (carTaskNext == null && modFinshTask != null && modFinshTask.Status != TaskStatusEnum.Complete)
{
modFinshTask.Status = TaskStatusEnum.Complete;
modFinshTask.FinishDate = DateTime.Now;
@@ -233,40 +233,40 @@
var modStationZ = modDevice.listStation.FirstOrDefault(s => s.Text == "鍥涘悜杞︿綅缃�(Z)");
var (resultz, valuez) = plcConn.GetDBValue(modStationZ.PosType, modStationZ.PlcPos);
-
+
WcsTask modTask;
//瑕佷笅鍙戣矾寰�2浠诲姟
- if (carTask2 != null)
+ if (carTaskNext != null)
{
- modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.TaskNo == carTask2.TaskNo && s.Status <= TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar);
+ modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.TaskNo == carTaskNext.TaskNo && s.Status <= TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.CarIp == modDevice.PlcIdIP);
- carTask2= _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == modTask.TaskNo && m.CarNo == modDevice.PlcIdIP).OrderBy(m => m.CreateTime).First();
+ carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == modTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status == TaskStatusEnum.Wait).OrderBy(m => m.CreateTime).First();
}
else
{
// 鑾峰彇浠诲姟淇℃伅
- modTask = _db.Queryable<WcsTask>().Where(s => s.Status <= TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar).OrderBy(m => m.Levels, OrderByType.Asc).OrderBy(m => m.CreateTime).First();
+ modTask = _db.Queryable<WcsTask>().Where(s => s.Status <= TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.CarIp == modDevice.PlcIdIP).OrderBy(m => m.Levels).OrderBy(m => m.CreateTime).First();
if (modTask == null)
{
return;
}
- carTask2 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == modTask.TaskNo && m.CarNo == modDevice.PlcIdIP).OrderBy(m => m.CreateTime).First();
+ carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == modTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status == TaskStatusEnum.Wait).OrderBy(m => m.CreateTime).First();
}
//return;
- if (modTask == null || carTask2 == null)
+ if (modTask == null || carTaskNext == null)
{
//鍒ゆ柇灏忚溅鏄惁鏈夌┖闂叉椂闂磋褰� 娌℃湁锛氭坊鍔� 鏈夛細鍒ゆ柇褰撳墠鏃堕棿涓庤褰曟椂闂存槸鍚︽弧瓒�5鍒嗛挓 婊¤冻锛氭坊鍔犺灏忚溅鍘诲厖鐢典换鍔�
return;
}
- if (carTask2.Status == TaskStatusEnum.Doing)
+ if (carTaskNext.Status == TaskStatusEnum.Doing)
{
Thread.Sleep(3000);
return;
}
//鍒ゆ柇褰撳墠浠诲姟鏄惁杩樻湁鍓嶇疆浠诲姟鏈畬鎴�
- var preStrs = carTask2.PreId.Split(';');
+ var preStrs = carTaskNext.PreId.Split(';');
foreach (var preStr in preStrs)
{
if (string.IsNullOrWhiteSpace(preStr))
@@ -301,7 +301,7 @@
int posStatus = Convert.ToInt32(modNodeStatus.PlcPos);
//浜や簰璺緞
- var execuPath = carTask2.ExecutionPath.Split(';');
+ var execuPath = carTaskNext.ExecutionPath.Split(';');
if (Convert.ToInt32(valuex) != Convert.ToInt32(execuPath[0].Substring(0, 2)) || Convert.ToInt32(valuey) != Convert.ToInt32(execuPath[0].Substring(2, 2)) || Convert.ToInt32(valuez) != Convert.ToInt32(execuPath[0].Substring(4, 2)))
{
return; //灏忚溅浣嶇疆涓庤矾寰勮捣濮嬩綅缃笉鍚�
@@ -343,15 +343,15 @@
var result = plcConn.SetDBValue(modStart.PosType, modStart.PlcPos, "1");
if (result.IsSucceed)
{
- carTask2.Status = TaskStatusEnum.Doing;
- carTask2.CarTaskNo = carTaskNo;
- _db.Updateable(carTask2).ExecuteCommand();
+ carTaskNext.Status = TaskStatusEnum.Doing;
+ carTaskNext.CarTaskNo = carTaskNo;
+ _db.Updateable(carTaskNext).ExecuteCommand();
//娓呴櫎灏忚溅绌洪棽鏃堕棿
var taskMonitor = new WcsTaskMonitor()
{
- TaskNo = carTask2.TaskNo,
+ TaskNo = carTaskNext.TaskNo,
PlcName = modDevice.Text,
- InteractiveMsg = $"鍚戠┛姊溅涓嬪彂浠诲姟{carTask2.TaskNo}"
+ InteractiveMsg = $"鍚戠┛姊溅涓嬪彂浠诲姟{carTaskNext.TaskNo}"
};
_db.Insertable(taskMonitor).ExecuteCommand();
//涓嬪彂浠诲姟鏃ュ織
--
Gitblit v1.8.0