From df5675b4e548eff2dbab6c780b173c346551f508 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 19 9月 2025 11:38:33 +0800
Subject: [PATCH] 修复bug

---
 siemenswmssditcode/wmsService/wcftest/Form1.cs |  164 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 141 insertions(+), 23 deletions(-)

diff --git a/siemenswmssditcode/wmsService/wcftest/Form1.cs b/siemenswmssditcode/wmsService/wcftest/Form1.cs
index 92306f0..fd307a2 100644
--- a/siemenswmssditcode/wmsService/wcftest/Form1.cs
+++ b/siemenswmssditcode/wmsService/wcftest/Form1.cs
@@ -66,14 +66,20 @@
         /// 璁惧杩愯鏃堕棿
         /// </summary>
         public static TimeSpan deviceRunTime;
+        public static TimeSpan deviceRunTime_Srm1;
+        public static TimeSpan deviceRunTime_Srm2;
         /// <summary>璁惧绛夊緟鏃堕棿
         /// 璁惧绛夊緟鏃堕棿
         /// </summary>
         public static TimeSpan deviceWaitTime;
+        public static TimeSpan deviceWaitTime_Srm1;
+        public static TimeSpan deviceWaitTime_Srm2;
         /// <summary>璁惧鎶ヨ鏃堕棿
         /// 璁惧鎶ヨ鏃堕棿
         /// </summary>
         public static TimeSpan deviceAlarmTime;
+        public static TimeSpan deviceAlarmTime_Srm1;
+        public static TimeSpan deviceAlarmTime_Srm2;
         /// <summary>璁惧浣跨敤鐜�
         /// 璁惧浣跨敤鐜�
         /// </summary>
@@ -82,10 +88,14 @@
         /// 璁惧杩愯璁℃椂鍣�
         /// </summary>
         Stopwatch deviceSw = new Stopwatch();
+        Stopwatch deviceSw_Srm1 = new Stopwatch();
+        Stopwatch deviceSw_Srm2 = new Stopwatch();
         /// <summary>涓婁竴娆¤澶囪繍琛岀姸鎬�
         /// 涓婁竴娆¤澶囪繍琛岀姸鎬�
         /// </summary>
         public string lastStatus = "绛夊緟";
+        public string lastStatus_Srm1 = "绛夊緟";
+        public string lastStatus_Srm2 = "绛夊緟";
         /// <summary>涓婁竴娆″皬鏃舵暟--姣忛殧涓�灏忔椂淇濆瓨涓�娆¤澶囩姸鎬佹椂闂�
         /// 涓婁竴娆″皬鏃舵暟--姣忛殧涓�灏忔椂淇濆瓨涓�娆¤澶囩姸鎬佹椂闂�
         /// </summary>
@@ -3122,6 +3132,8 @@
 
                     string[] containers = new string[19];
                     deviceSw.Start();// 璁惧杩愯璁$畻鍣ㄥ紑濮嬭鏃�
+                    deviceSw_Srm1.Start();// 璁惧杩愯璁$畻鍣ㄥ紑濮嬭鏃�
+                    deviceSw_Srm2.Start();// 璁惧杩愯璁$畻鍣ㄥ紑濮嬭鏃�
                     #region 鑾峰彇璁惧淇℃伅
 
                     if (allowGetDeviceInfo == true)
@@ -3195,24 +3207,11 @@
                             totalInfo.list11[1] = outTaskCount.Count;
                         }
 
-                        //鏇存敼鏁伴噺 銆怑ditby shaocx,2024-11-22銆�
-                        /*
-                        if (stockUsingCount != null)
-                        {
-                            decimal cout = stockUsingCount.Count / 1140M * 100;
-                            totalInfo.list11[2] = Convert.ToInt32(cout);
-                        }
-                        if (outTimeStockCount != null)
-                        {
-                            totalInfo.list11[3] = outTimeStockCount.Count;
-                        }
-                        //*/
+
                         totalInfo.list11[2] = 1152;
                         totalInfo.list11[3] = 1152 - stockUsingCount.Count();
 
                         if (lastHour != today.Hour)
-                        //int aaaa = 1;
-                        //if (aaaa == 2)
                         {
                             //姣忛殧涓�灏忔椂淇濆瓨涓�娆¤澶囩姸鎬佹椂闂�
                             lastHour = today.Hour;
@@ -3232,20 +3231,28 @@
                             }
                             else
                             {
-                                //todayDeviceInfo.deviceWaitTime = deviceWaitTime.TotalMinutes > 0 ? Convert.ToDecimal(deviceWaitTime.TotalMinutes) : 0M;// deviceWaitTime.Hours * 60M + deviceWaitTime.Minutes;
+
                                 todayDeviceInfo.deviceRunTime = deviceRunTime.TotalMinutes > 0 ? Convert.ToDecimal(deviceRunTime.TotalMinutes) : 0M;
                                 todayDeviceInfo.deviceAlarmTime = deviceAlarmTime.TotalMinutes > 0 ? Convert.ToDecimal(deviceAlarmTime.TotalMinutes) : 0M;
                                 //閲嶆柊璁$畻璁惧绛夊緟鏃堕棿 銆怑ditby shaocx,2024-12-30銆�
-                                CommonCalcWaitTime(ref todayDeviceInfo);
+                                DeviceGeneralInfoHelper.CommonCalcWaitTime(ref todayDeviceInfo);
 
                                 todayDeviceInfo.taskEnterCount = enterTaskCount.Count;//鍏ュ簱浠诲姟鏁�
                                 todayDeviceInfo.taskOutCount = outTaskCount.Count;//鍑哄簱浠诲姟鏁�
                                 //鏇存敼鏁伴噺 銆怑ditby shaocx,2024-11-22銆�
-                                //decimal cout = stockUsingCount.Count / 1140M * 100;
                                 decimal cout = stockUsingCount.Count / 1152M * 100;
                                 todayDeviceInfo.stockProportion = Convert.ToInt32(cout);//宸蹭娇鐢ㄧ殑搴撲綅
                                 todayDeviceInfo.outDate = outTimeStockCount.Count;//杩囨湡鏃堕棿灏忎簬涓�涓湀鐨勫簱瀛樻暟鎹�
                             }
+
+                            DeviceGeneralInfoHelper.HandlerDeviceGeneralInfoForDetail(1, enterTaskCount, outTaskCount, stockUsingCount, outTimeStockCount,
+                                mod, lastHour, todayTime,
+                                deviceSw_Srm1, deviceRunTime_Srm1, deviceAlarmTime_Srm1, deviceWaitTime_Srm1
+                                );
+                            DeviceGeneralInfoHelper.HandlerDeviceGeneralInfoForDetail(2, enterTaskCount, outTaskCount, stockUsingCount, outTimeStockCount,
+                             mod, lastHour, todayTime,
+                             deviceSw_Srm2, deviceRunTime_Srm2, deviceAlarmTime_Srm2, deviceWaitTime_Srm2
+                             );
 
                             int chang = mod.SaveChanges();
                         }
@@ -3275,6 +3282,60 @@
                             if (lastStatus != "杩愯")
                             {
                                 setDeviceStatusTime(lastStatus, "杩愯");
+                            }
+                        }
+                    }
+                    #endregion
+
+                    #region 缁熻璁惧杩愯鏁堢巼锛堣缁嗭級 銆怑ditby shaocx,2025-09-19銆�
+                    //1鍙峰爢鍨涙満
+                    if (deviceListInfo.srm1.isAlarm == true)
+                    {
+                        if (lastStatus_Srm1 != "鎶ヨ")
+                        {
+                            setDeviceStatusTimeForDetail(1, lastStatus_Srm1, "鎶ヨ");
+                        }
+                    }
+                    else
+                    {
+                        if (deviceListInfo.srm1.status == "绌洪棽")
+                        {
+                            if (lastStatus_Srm1 != "绛夊緟")
+                            {
+                                setDeviceStatusTimeForDetail(1, lastStatus_Srm1, "绛夊緟");
+                            }
+                        }
+                        else
+                        {
+                            if (lastStatus_Srm1 != "杩愯")
+                            {
+                                setDeviceStatusTimeForDetail(1, lastStatus_Srm1, "杩愯");
+                            }
+                        }
+                    }
+                    //2鍙峰爢鍨涙満
+                    if (deviceListInfo.srm2.isAlarm == true)
+                    {
+                        if (lastStatus_Srm2 != "鎶ヨ")
+                        {
+                            setDeviceStatusTimeForDetail(2, lastStatus_Srm2, "鎶ヨ");
+                        }
+
+                    }
+                    else
+                    {
+                        if (deviceListInfo.srm2.status == "绌洪棽")
+                        {
+                            if (lastStatus_Srm2 != "绛夊緟")
+                            {
+                                setDeviceStatusTimeForDetail(2, lastStatus_Srm2, "绛夊緟");
+                            }
+                        }
+                        else
+                        {
+                            if (lastStatus_Srm2 != "杩愯")
+                            {
+                                setDeviceStatusTimeForDetail(2, lastStatus_Srm2, "杩愯");
                             }
                         }
                     }
@@ -3324,9 +3385,66 @@
             {
 
             }
+        }
+        /// <summary>璁惧鐘舵�佸彉鍖栫殑鏃跺�� 淇濆瓨鐘舵�佹椂闂达紙鏄庣粏锛�
+        /// 璁惧鐘舵�佸彉鍖栫殑鏃跺�� 淇濆瓨鐘舵�佹椂闂�
+        /// </summary>
+        /// <param name="status"></param>
+        private void setDeviceStatusTimeForDetail(int srmNo, string lastStatuss, string nowStatus)
+        {
+            try
+            {
+                switch (lastStatuss)
+                {
+                    case "绛夊緟":
+                        if (srmNo == 1)
+                        {
+                            deviceWaitTime_Srm1 += deviceSw_Srm1.Elapsed;
+                        }
+                        else
+                        {
+                            deviceWaitTime_Srm2 += deviceSw_Srm2.Elapsed;
+                        }
+                        break;
+                    case "杩愯":
+                        if (srmNo == 1)
+                        {
+                            deviceRunTime_Srm1 += deviceSw_Srm1.Elapsed;
+                        }
+                        else
+                        {
+                            deviceRunTime_Srm2 += deviceSw_Srm2.Elapsed;
+                        }
+                        break;
+                    case "鎶ヨ":
+                        if (srmNo == 1)
+                        {
+                            deviceAlarmTime_Srm1 += deviceSw_Srm1.Elapsed;
+                        }
+                        else
+                        {
+                            deviceAlarmTime_Srm2 += deviceSw_Srm2.Elapsed;
+                        }
+                        break;
+                }
 
+                if (srmNo == 1)
+                {
+                    deviceSw_Srm1.Restart();
 
+                    lastStatus_Srm1 = nowStatus;
+                }
+                else
+                {
+                    deviceSw_Srm2.Restart();
 
+                    lastStatus_Srm2 = nowStatus;
+                }
+            }
+            catch (Exception)
+            {
+
+            }
         }
         /// <summary>澶у睆淇℃伅鍒濆鍖�
         /// 澶у睆淇℃伅鍒濆鍖�
@@ -3361,7 +3479,7 @@
                         //璁惧绛夊緟鏃堕棿
                         //creatTodayDeviceInfo.deviceWaitTime = Convert.ToDecimal(deviceWaitTime.Hours * 60M) + deviceWaitTime.Minutes;//鍗曚綅鍒嗛挓
                         //閲嶆柊璁$畻璁惧绛夊緟鏃堕棿 銆怑ditby shaocx,2024-12-30銆�
-                        CommonCalcWaitTime(ref todayDeviceInfo);
+                        DeviceGeneralInfoHelper.CommonCalcWaitTime(ref creatTodayDeviceInfo);
 
                         creatTodayDeviceInfo.createTime = DateTime.Now;
                         mod.deviceGeneralInfo.Add(creatTodayDeviceInfo);
@@ -3371,6 +3489,10 @@
                     }
 
                 }
+
+                DeviceGeneralInfoHelper.deviceInfoInitForDetails(1, todayTime, lastHour, deviceAlarmTime_Srm1, deviceRunTime_Srm1, deviceWaitTime_Srm1);
+                DeviceGeneralInfoHelper.deviceInfoInitForDetails(2, todayTime, lastHour, deviceAlarmTime_Srm2, deviceRunTime_Srm2, deviceWaitTime_Srm2);
+
                 deviceInfos = new Thread(deviceInfo);
                 deviceInfos.Start();
             }
@@ -3605,11 +3727,7 @@
             return resultDate;
         }
 
-        private void CommonCalcWaitTime(ref deviceGeneralInfo todayDeviceInfo)
-        {
-            //閲嶆柊璁$畻璁惧绛夊緟鏃堕棿 銆怑ditby shaocx,2024-12-30銆�
-            todayDeviceInfo.deviceWaitTime = 1440 - (todayDeviceInfo.deviceRunTime + todayDeviceInfo.deviceAlarmTime);
-        }
+
 
         #endregion
 

--
Gitblit v1.9.3