From c06382f1b619e1dc7f37be36a0cee126239abdee Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期三, 30 十月 2024 11:35:22 +0800
Subject: [PATCH] Merge branch 'master' into csc
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 101 +++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 86 insertions(+), 15 deletions(-)
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index c946757..0d50872 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -85,7 +85,7 @@
PlcTaskInfo taskInfo = new PlcTaskInfo();
if (modTask.TaskType == TaskTypeEnum.Move)
{
- taskInfo = PLCCommon.GetEndPai(modTask.EndLocate.Substring(1, 2), modTask.EndLocate.Substring(2, 2),
+ 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));
@@ -1437,7 +1437,7 @@
TaskNo = modTask.TaskNo,
PlcId = modDevice.Id,
PlcName = modDevice.Text,
- InteractiveMsg = $"鍐欏叆鎸囦护450锛歿modDevice.StationNum}鎷i�夊畬鎴�,鎵樼洏绂诲紑宸ヤ綅",
+ InteractiveMsg = $"鍐欏叆鎸囦护450锛歿modDevice.StationNum}鍑哄簱瀹屾垚",
PalletNo = palletVal,
Status = TaskStatusEnum.Complete,
StartLocat = starVal.ToString(),
@@ -1473,7 +1473,7 @@
// led鏄剧ず鍐呭
var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId);
- ledText += $"鎷i�夊畬鎴愶紝鎵樼洏绂诲紑宸ヤ綅\n\n";
+ ledText += $"鍑哄簱瀹屾垚\n\n";
ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
@@ -1723,7 +1723,7 @@
else
{
// 涓巔lc浜や簰鍐欏叆鍒嗛亾鍙峰拰娴佺▼鎺у埗瀛�
- var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, checkTaskInfo.RoboatNo);
+ var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, checkTaskInfo.LineNo);
if (ret.IsSucceed)
{
// 鍐欏叆娴佺▼鎺у埗瀛� 2
@@ -1802,16 +1802,17 @@
string boxNo = boxVal.ToString();
if (string.IsNullOrEmpty(boxNo))
{
- Log.Error(string.Format("鐮佸灈宸ヤ綅{0}锛岀鐮佷负null鎻掔爜澶辫触!璇蜂汉宸ュ己鍒剁粨鎵广��"), modDevice.StationNum);
+ Log.Error($"鐮佸灈宸ヤ綅{modDevice.StationNum}锛岀鐮佷负null鎻掔爜澶辫触!璇蜂汉宸ュ己鍒剁粨鎵广��" );
// 鍐欏叆鎻掑叆缁撴灉 2锛氭彃鐮佸け璐�
var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
+
break;
}
// 楠岃瘉绠辩爜琛ㄦ槸鍚﹀瓨鍦ㄦ绠辩爜
- var boxInfo = _db.Queryable<WcsBoxInfo>().First(w => w.IsDelete == false && w.BoxNo == boxNo);
- if (boxInfo == null)
+ var boxInfo = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.BoxNo == boxNo).ToList();
+ if (boxInfo.Count == 0)
{
- Log.Error(string.Format("鐮佸灈宸ヤ綅{0}锛岀鐮亄1}涓嶅瓨鍦�!璇蜂汉宸ュ己鍒剁粨鎵广��"), modDevice.StationNum,boxNo);
+ Log.Error($"鐮佸灈宸ヤ綅{modDevice.StationNum}锛岀鐮亄boxNo}涓嶅瓨鍦�!璇蜂汉宸ュ己鍒剁粨鎵广��");
// 鍐欏叆鎻掑叆缁撴灉 2锛氭彃鐮佸け璐�
var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
break;
@@ -1830,26 +1831,42 @@
break;
}
// 淇敼鎻掔爜琛�
- boxInfo.PalletNo = palletNo;
- boxInfo.UpdateTime = DateTime.Now;
+ foreach (WcsBoxInfo item in boxInfo)
+ {
+ item.PalletNo = palletNo;
+ item.UpdateTime = DateTime.Now;
+ }
+
var rowCount = _db.Updateable(boxInfo).ExecuteCommand();
if (rowCount > 0)
{
// 鎻掔爜鎴愬姛
var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "1");
+
+ //鏄惁缁撴壒绠�
+ if (boxInfo[0].EndLotFlag == "1" && retVal.IsSucceed)
+ {
+ // 瑙﹀彂缁撴壒 瑙g粦鍒嗛亾
+ AutoEndLot(boxInfo[0].LotNo, plcConn, "0");
+ }
}
else
{
// 鎻掔爜澶辫触
- Log.Error(string.Format("绠辩爜{0};鐮佸灈宸ヤ綅{1}锛屾彃鐮佸け璐ワ紝璇峰己鍒剁粨鎵�"),boxNo,modDevice.StationNum);
+ Log.Error($"绠辩爜{boxNo};鐮佸灈宸ヤ綅{modDevice.StationNum}锛屾彃鐮佸け璐ワ紝璇峰己鍒剁粨鎵�");
var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
+ if (retVal.IsSucceed)
+ {
+ // 瑙﹀彂缁撴壒 涓嶈В缁戝垎閬�
+ AutoEndLot(boxInfo[0].LotNo, plcConn, "1");
+ }
}
}
}
break;
case "40":
// 璇锋眰缁勬墭锛岀敵璇峰叆搴�
- {
+ {
// 鏍规嵁宸ヤ綅鍙凤紝鑾峰彇鎵樼洏鍙�
var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false);
// 鏍规嵁宸ヤ綅鍙疯幏鍙� 鎵樼洏绾胯宸ヤ綅鍙风殑閰嶇疆淇℃伅
@@ -1967,7 +1984,8 @@
int insertCount = _db.Ado.ExecuteCommand(sqlStr);
if (insertCount > 0)
{
- string sqlStr2 = $"delete from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'";
+ // 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛�
+ string sqlStr2 = $"delete from WCSBoxInfoLog where IsDelete=0 and PalletNo='{palletNo}'";
_db.Ado.ExecuteCommand(sqlStr2);
}
// 鍚慦MS鐢宠宸烽亾
@@ -1975,7 +1993,7 @@
string TaskNo = "", EndLocate = "";
string strMsg = http.BindRequestRoadWay(checkTaskMedel.OrderNo,palletNo, checkTaskMedel.BoxCount.ToDecimal(),"0", checkTaskMedel.SkuNo, checkTaskMedel.LotNo, "","", boxInfoList,
modDevice.StationNum, "1", "2", ref EndLocate, ref TaskNo);
- if (!strMsg.Contains("-1"))
+ if (strMsg.Contains("-1"))
{
Log.Error(string.Format("鐢宠宸烽亾澶辫触锛岀爜鍨涘伐浣峽0};鍘熷洜{1}", modDevice.StationNum, strMsg));
break;
@@ -2074,7 +2092,11 @@
Log.Error(ex.Message);
}
}
-
+ /// <summary>
+ /// LED淇℃伅灞曠ず
+ /// </summary>
+ /// <param name="ip"></param>
+ /// <param name="text"></param>
private static void LedDisplay(string ip,string text)
{
try
@@ -2090,6 +2112,55 @@
}
}
+ /// <summary>
+ /// 鑷姩缁撴壒
+ /// </summary>
+ /// <param name="lotNo">鎵规鍙�</param>
+ /// <param name="plcConn">Plc杩炴帴</param>
+ /// <param name="status">鏄惁瑙g粦鍒嗛亾 0锛氳В缁� 1锛氱粦瀹�</param>
+ private static void AutoEndLot(string lotNo,PLCUtil plcConn,string status)
+ {
+ try
+ {
+ if (string.IsNullOrWhiteSpace(lotNo))
+ {
+ Console.WriteLine("鎵规鍙蜂负nul");
+ }
+ var checkTaskList = _db.Queryable<WcsCheckTask>().Where(w => w.LotNo == lotNo && w.Status == "1").ToList();
+ if (checkTaskList.Count <= 0)
+ {
+ Console.WriteLine("鏈壘鍒板垎閬撶粦瀹氫俊鎭�");
+ }
+ foreach (var item in checkTaskList)
+ {
+ #region#缁橮LC鍐欏叆缁撴壒鎵规鍙�
+ var ret = plcConn.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PosLot, "1");
+ if (ret.IsSucceed)
+ {
+ //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟 liudl 鏈�鍚庝竴鎵樼洏鐢宠瀹屽叆搴撴墠鍙竻绌�
+ //item.OrderNo = "";
+ //item.TaskNo = "";
+ //item.LotNo = "";
+ //item.SkuNo = "";
+ //item.SkuName = "";
+ //item.BoxType = "";
+ //item.Qty = 0;
+ //item.PZNo = "";
+ item.Status = status; // 缁戝畾鍒嗛亾 0锛氳В缁� 1锛氱粦瀹�
+
+ //鏇存柊鍒嗘嫞浠诲姟
+ _db.Updateable(item).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+ }
+ #endregion
+ }
+ }
+ catch (Exception ex)
+ {
+ Log.Error(ex.Message);
+ throw;
+ }
+ }
+
private static void Test(WcsDeviceDto modDevice)
{
//鍐欐娴嬭瘯璇籹tring
--
Gitblit v1.8.0