From 18675524096643ce5cb3f53f134f2982dd0fd6d7 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期五, 31 十月 2025 16:42:15 +0800
Subject: [PATCH] 修改任务页面
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 169 ++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 108 insertions(+), 61 deletions(-)
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 1e2f8f8..2775a0f 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -29,6 +29,7 @@
private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
private static int fendao = 1;
+
public static void OnChangeEvent(object sender, EventArgs e)
{
@@ -218,11 +219,16 @@
//淇敼led灞忎俊鎭�
var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == taskInfo.EndStation && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
- ledText += $"浠诲姟绫诲瀷:{modTask.TaskType.GetDescription()}\n\n";
- ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+ //ledText += $"浠诲姟绫诲瀷:{modTask.TaskType.GetDescription()}\n\n";
+ //ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+ //ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
+ //ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
+ //ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+ ledText += $"鍚嶇О:{modTask.SkuName}\n";
+ ledText += $"鎵瑰彿:{modTask.LotNo}\n";
+ ledText += $"鍏ュ簱鏁伴噺:{modTask.Qty}\n";
ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
- ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
- ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+
LedDisplay(ledDevice.LedIP, ledText);
}
}
@@ -453,13 +459,18 @@
// led鏄剧ず鍐呭
var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modTask.StartLocate && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
- ledText += $"鍏ュ簱瀹屾垚\n\n";
+ //ledText += $"鍏ュ簱瀹屾垚\n\n";
- ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+ //ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+ //ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
+
+ //ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
+ //ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+
+ ledText += $"鍚嶇О:{modTask.SkuName}\n";
+ ledText += $"鎵瑰彿:{modTask.LotNo}\n";
+ ledText += $"鍏ュ簱鏁伴噺:{modTask.Qty}\n";
ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
-
- ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
- ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
LedDisplay(ledDevice.LedIP, ledText);
// 姝ゅ娣诲姞涓嶇┖璺戜笟鍔�
@@ -704,9 +715,9 @@
//listResult.Add(plcConn.SetPlcDBValue(modPosEndStorey.PosType, modDevice.DbNumber, modPosEndStorey.PlcPos, storey));
PlcTaskInfo taskInfo = new PlcTaskInfo();
- taskInfo = PLCCommon.GetEndPai(modTask.EndRoadway.Substring(1, 2), modTask.EndLocate.Substring(2, 2),
- modTask.EndLocate.Substring(0, 2), modTask.EndLocate.Substring(4, 2),
- modTask.EndLocate.Substring(6, 2));
+ taskInfo = PLCCommon.GetEndPai(endLocat.Substring(1, 2), endLocat.Substring(2, 2),
+ endLocat.Substring(0, 2), endLocat.Substring(4, 2),
+ endLocat.Substring(6, 2));
// 缁橮LC鍐欏叆浠诲姟鏁版嵁
var listResult = new List<Result>();
@@ -727,7 +738,7 @@
if (listResult.All(s => s.IsSucceed))
{
// 鍚戣泛鏈哄啓鍏ユ帶鍒舵祦绋嬪瓧
- var res = modDevice.PLCUtil.SetPlcDBValue(modDevice.PosType, modDevice.WcsPos, "862");
+ var res = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "862");//鍐欏叆寮�濮嬫斁璐т俊鍙�
var modcTaskMonitor = new WcsTaskMonitor()
{
TaskNo = modTask.TaskNo,
@@ -924,6 +935,7 @@
private static void ConveyorLine(WcsDeviceDto modDevice)
{
var plcConn = modDevice.PLCUtil;
+
// 鑾峰彇妤煎眰鏁癱eshi
var louCeng = PLCCommon.GetRoadwayByStationNew(modDevice.StationNum);
if (louCeng == "")
@@ -1069,13 +1081,18 @@
// led鏄剧ず鍐呭
try
{
- ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
+ //ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
- ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+ //ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+ //ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
+
+ //ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
+ //ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
+ ledText += $"鍚嶇О:{taskInfo.SkuName}\n";
+ ledText += $"鎵瑰彿:{taskInfo.LotNo}\n";
+ ledText += $"鍏ュ簱鏁伴噺:{taskInfo.Qty}\n";
ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
- ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
- ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
LedDisplay(modDevice.LedIP, ledText);
}
@@ -1251,11 +1268,15 @@
HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>());
var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business);
- ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
- ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+ //ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n";
+ //ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+ //ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
+ //ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
+ //ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
+ ledText += $"鍚嶇О:{taskInfo.SkuName}\n\n";
+ ledText += $"鎵瑰彿:{taskInfo.LotNo}\n";
+ ledText += $"鍏ュ簱鏁伴噺:{taskInfo.Qty}\n";
ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
- ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
- ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
LedDisplay(modDevice.LedIP, ledText);
}
}
@@ -1280,16 +1301,16 @@
var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
// 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭�
- var modPosTaskNo = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
- var (taskRes, taskNoVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTaskNo.PlcPos);
- if (!res.IsSucceed || !taskRes.IsSucceed)
- {
- break;
- }
+ //var modPosTaskNo = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
+ //var (taskRes, taskNoVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTaskNo.PlcPos);
+ //if (!res.IsSucceed || !taskRes.IsSucceed)
+ //{
+ // break;
+ //}
string pallet = palletVal.ToString();
- string taskNo = taskNoVal.ToString();
+ //string taskNo = taskNoVal.ToString();
// 鑾峰彇浠诲姟淇℃伅
- var modTask = _db.Queryable<WcsTask>().First(s => s.IsDelete == false && s.PalletNo == pallet && s.Status == TaskStatusEnum.Doing && s.TaskType == TaskTypeEnum.In && s.TaskNo == taskNo);
+ var modTask = _db.Queryable<WcsTask>().OrderByDescending(s=>s.CreateTime).First(s => s.IsDelete == false && s.PalletNo == pallet && s.Status == TaskStatusEnum.Doing && s.TaskType == TaskTypeEnum.In );//&& s.TaskNo == taskNo
if (modTask == null)
{
// 姝ゆ墭鐩樻病鏈夊搴旂殑杞Щ浠诲姟 led鏄剧ず
@@ -1458,14 +1479,19 @@
// led鏄剧ず鍐呭
// 鏍规嵁鐩爣宸ヤ綅鍙疯幏鍙栧搴旂殑LEDIP鍦板潃
- var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId);
+ //var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId);
- ledText += $"鍑哄簱瀹屾垚\n\n";
- ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
- ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
- ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
- ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
- LedDisplay(ledDevice.LedIP, ledText);
+ //ledText += $"鍑哄簱瀹屾垚\n\n";
+ ////ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n";
+ ////ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
+ ////ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n";
+ ////ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}";
+ //ledText += $"鍚嶇О:{taskInfo.SkuName}\n";
+ //ledText += $"鎵瑰彿:{taskInfo.LotNo}\n";
+ //ledText += $"鍑哄簱鏁伴噺:{taskInfo.Qty}\n";
+ //ledText += $"鍒嗛厤鏁伴噺:{taskInfo.CompleteQty}\n";
+ //ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n";
+ //LedDisplay(ledDevice.LedIP, ledText);
}
// 鍙嶉WMS鍑哄簱瀹屾垚
//TaskReques taskReques = new TaskReques();
@@ -1545,11 +1571,17 @@
// led鏄剧ず鍐呭
var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId);
- ledText += $"鍑哄簱瀹屾垚\n\n";
- ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+ ledText += $"鍑哄簱瀹屾垚\n";
+ //ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
+ //ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
+ //ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
+ //ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+ ledText += $"鍚嶇О:{modTask.SkuName}\n";
+ ledText += $"鎵瑰彿:{modTask.LotNo}\n";
+ ledText += $"鍑哄簱鏁伴噺:{modTask.Qty}\n";
+ ledText += $"鍒嗛厤鏁伴噺:{modTask.CompleteQty}\n";
ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
- ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
- ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
+
LedDisplay(ledDevice.LedIP, ledText);
}
#endregion
@@ -2489,6 +2521,7 @@
{
lock (OLock)
{
+ Thread.Sleep(2000);
// 鏍规嵁宸ヤ綅鍙凤紝鑾峰彇鎵樼洏鍙�
var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false);
// 鏍规嵁宸ヤ綅鍙疯幏鍙� 鎵樼洏绾胯宸ヤ綅鍙风殑閰嶇疆淇℃伅
@@ -2587,6 +2620,10 @@
}
else
{
+ if (string.IsNullOrEmpty(palletNo))
+ {
+ break;
+ }
// 鏍规嵁鎵樼洏鍙凤紝灏嗙粍鎵樹俊鎭彃鍏oxinfolog琛� 骞跺垹闄oxinfo琛ㄦ暟鎹�
var boxInfoList = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.PalletNo == palletNo).ToList();
if (boxInfoList.Count <= 0)
@@ -2597,29 +2634,30 @@
var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
if (retVal.IsSucceed)
{
+ //鏇存柊浠诲姟琛ㄦ暟閲忎俊鎭�
+ checkTaskMedel.Qty = 0;
+ _db.Updateable(checkTaskMedel).ExecuteCommand();
// 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
}
break;
}
+ #region
//鍒ゆ柇鎵樼洏涓婄殑绠辩爜鏄惁宸茬粍鐩�
- foreach (var item in boxInfoList)
- {
- var groupBoxno = _db.Queryable<WcsBoxInfoLog>().Where(w => w.BoxNo == item.BoxNo).ToList();
- if (groupBoxno.Count>0)
- {
- Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0}锛岀鐮佷俊鎭笉瀛樺湪", modDevice.StationNum));
- // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
- var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
- if (retVal.IsSucceed)
- {
- // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
- retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
- }
- break;
- }
- }
-
+ //var groupBoxno = _db.Queryable<WcsBoxInfoLog>().Where(w => w.BoxNo == item.BoxNo).ToList();
+ //if (groupBoxno.Count>0)
+ //{
+ // Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0}锛岀鐮佷俊鎭笉瀛樺湪", modDevice.StationNum));
+ // // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
+ // var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
+ // if (retVal.IsSucceed)
+ // {
+ // // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
+ // retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
+ // }
+ // break;
+ //}
+ #endregion
// 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛�
string sqlStr = $"insert into WCSBoxInfoLog select * from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'";
int insertCount = _db.Ado.ExecuteCommand(sqlStr);
@@ -2628,10 +2666,6 @@
string sqlStr2 = $"delete from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'";
_db.Ado.ExecuteCommand(sqlStr2);
}
- //缁勭洏鎴愬姛鍚庢竻绌哄垎鎷h〃褰撳墠鎵樼洏涓婄墿鏂欐暟閲�
- checkTaskMedel.Qty = 0;
- _db.Updateable(checkTaskMedel).ExecuteCommand();
-
// 鍚慦MS鐢宠宸烽亾
var http = new HttpService();
string TaskNo = "", EndLocate = "";
@@ -2640,10 +2674,23 @@
if (strMsg.Contains("-1"))
{
Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0};鍘熷洜{1}", modDevice.StationNum, strMsg));
+ // 鍐欏叆浜や簰宸ヤ綅鐩爣鍦板潃
+ var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, "234");
+ if (retVal.IsSucceed)
+ {
+ //鏇存柊浠诲姟琛ㄦ暟閲忎俊鎭�
+ checkTaskMedel.Qty = 0;
+ _db.Updateable(checkTaskMedel).ExecuteCommand();
+ // 鍐欏叆缁勬墭鍥炲娴佺▼瀛�
+ retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50");
+ }
break;
}
else
{
+ //缁勭洏鎴愬姛鍚庢竻绌哄垎鎷h〃褰撳墠鎵樼洏涓婄墿鏂欐暟閲�
+ checkTaskMedel.Qty = 0;
+ _db.Updateable(checkTaskMedel).ExecuteCommand();
//鍒ゆ柇鏄惁缁撴壒涓�
var (res, jiepi) = plcConn.GetPlcDBValue(checkTaskMedel.PosType, modDevice.DbNumber, checkTaskMedel.PosLot);
if (jiepi == 2)//缁撴壒涓�
--
Gitblit v1.8.0