From 65a231315d1dcc35d2996106d36e9cca9aba6ce6 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 06 三月 2026 09:06:44 +0800
Subject: [PATCH] 更新码垛分配工位优化,老厂退库称重上报设定差异范围

---
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/码垛/MDJob_CP.cs |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
index 6209a7d..2fb32e2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
@@ -74,7 +74,7 @@
                 if (flag && value != null)
                 {
                     OtherDevice device = (OtherDevice)value;
-                    List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt() && x.IsOccupied == 0);
+                    List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt());
                     //鑾峰彇鍗忚
                     DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(R_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
                     DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(W_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
@@ -82,7 +82,6 @@
                     {
                         foreach (var item in stationMangers)
                         {
-
                             short Allow = device.GetValue<R_MDDB, short>(R_MDDB.R_MDAllow, item.StackerCraneCode);
                             #region 璇诲彇宸ヤ綅鐘舵��
                             short R_MDStatus1 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus1, item.StackerCraneCode);
@@ -93,6 +92,7 @@
                             #endregion
                             //鐮佸灈鐘舵��
                             short PackState = device.GetValue<R_MDDB, short>(GetPackStateEnum(item.StackerCraneStationCode), item.StackerCraneCode);
+                            short PackSendState = device.GetValue<W_MDDB, short>(GetPackSendEnum(item.StackerCraneStationCode), item.StackerCraneCode);
                             //鐮佸灈鏁伴噺
                             short PackNum = device.GetValue<R_MDDB, short>(GetPackNumEnum(item.StackerCraneStationCode), item.StackerCraneCode);
                             if ((R_MDStatus1 == 1 || R_MDStatus2 == 1 || R_MDStatus3 == 1 || R_MDStatus4 == 1) && Allow == 4)
@@ -105,11 +105,18 @@
                                 }
                                 continue;
                             }
-                            if (PackState == 2)
+                            if (PackState == 2 && PackSendState == 2)
                             {
                                 Thread.Sleep(200);
-                                device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 0);
-                                WriteInfo(item.StationName, $"{item.StationName}娓呴櫎宸ヤ綅缁撴墭淇″彿");
+                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 4);
+                                WriteInfo(item.StationName, $"{item.StationName}鍐欏叆娓呮墭淇″彿");
+                                continue;
+                            }
+                            if (PackState == 4 && PackSendState == 4)
+                            {
+                                Thread.Sleep(200);
+                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 0);
+                                WriteInfo(item.StationName, $"{item.StationName}娓呮墭淇″彿澶嶄綅");
                                 continue;
                             }
                             //鑾峰彇褰撳墠宸ヤ綅鐮佸灈鎵ц涓暟鎹�

--
Gitblit v1.9.3