siemenswmssditcode/wmsService/wcftest/BussinessExtension/DeviceGeneralInfoHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
siemenswmssditcode/wmsService/wcftest/Form1.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
siemenswmssditcode/wmsService/wcftest/wmsService.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
siemenswmssditcode/wmsService/wcftest/BussinessExtension/DeviceGeneralInfoHelper.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,140 @@ using logtxtWrite; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using wcftest.orm; namespace wcftest.BussinessExtension { public class DeviceGeneralInfoHelper { /// <summary> /// å¤ç /// </summary> /// <param name="srmNo"></param> /// <param name="enterTaskCount"></param> /// <param name="outTaskCount"></param> /// <param name="stockUsingCount"></param> /// <param name="outTimeStockCount"></param> /// <param name="mod"></param> /// <param name="lastHour"></param> /// <param name="todayTime"></param> /// <param name="deviceSwForDetail"></param> /// <param name="deviceRunTime"></param> /// <param name="deviceAlarmTime"></param> /// <param name="deviceWaitTime"></param> public static void HandlerDeviceGeneralInfoForDetail( int srmNo, List<Task_Queue> enterTaskCount, List<Task_Queue> outTaskCount, List<Base_Position> stockUsingCount, List<Base_ProductPosition> outTimeStockCount, dbModel mod, int lastHour, DateTime todayTime, Stopwatch deviceSwForDetail, TimeSpan deviceRunTime, TimeSpan deviceAlarmTime, TimeSpan deviceWaitTime ) { try { //éæ°ç»ç»æ°æ® enterTaskCount = enterTaskCount.Where(x => x.DoCount == srmNo).ToList(); outTaskCount = outTaskCount.Where(x => x.DoCount == srmNo).ToList(); //æ¯éä¸å°æ¶ä¿å䏿¬¡è®¾å¤ç¶ææ¶é´ var str_srmNo = srmNo.ToString(); deviceGeneralInfoForDetail todayDeviceInfo = null; todayDeviceInfo = mod.deviceGeneralInfoForDetail.FirstOrDefault(x => x.createTime > todayTime && x.ext1 == str_srmNo); if (todayDeviceInfo == null) { todayDeviceInfo = new deviceGeneralInfoForDetail(); todayDeviceInfo.ext1 = str_srmNo;//èµå¼ æºå· todayDeviceInfo.createTime = DateTime.Now; mod.deviceGeneralInfoForDetail.Add(todayDeviceInfo); //计æ¶å¤ä½ deviceSwForDetail.Reset(); deviceAlarmTime = deviceSwForDetail.Elapsed; deviceRunTime = deviceSwForDetail.Elapsed; deviceWaitTime = deviceSwForDetail.Elapsed; } else { todayDeviceInfo.deviceRunTime = deviceRunTime.TotalMinutes > 0 ? Convert.ToDecimal(deviceRunTime.TotalMinutes) : 0M; todayDeviceInfo.deviceAlarmTime = deviceAlarmTime.TotalMinutes > 0 ? Convert.ToDecimal(deviceAlarmTime.TotalMinutes) : 0M; //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã CommonCalcWaitTime(ref todayDeviceInfo); todayDeviceInfo.taskEnterCount = enterTaskCount.Count;//å ¥åºä»»å¡æ° todayDeviceInfo.taskOutCount = outTaskCount.Count;//åºåºä»»å¡æ° //æ´æ¹æ°é ãEditby shaocx,2024-11-22ã decimal cout = stockUsingCount.Count / 1152M * 100; todayDeviceInfo.stockProportion = Convert.ToInt32(cout);//已使ç¨çåºä½ todayDeviceInfo.outDate = outTimeStockCount.Count;//è¿ææ¶é´å°äºä¸ä¸ªæçåºåæ°æ® } } catch (Exception ex) { } } public static void deviceInfoInitForDetails(int srmNo, DateTime todayTime, int lastHour, TimeSpan deviceAlarmTime, TimeSpan deviceRunTime, TimeSpan deviceWaitTime) { var str_srmNo = srmNo.ToString(); using (dbModel mod = new dbModel()) { deviceGeneralInfoForDetail todayDeviceInfo = mod.deviceGeneralInfoForDetail.FirstOrDefault(x => x.createTime > todayTime && x.ext1 == str_srmNo); if (todayDeviceInfo != null) { TimeSpan alarmTime = new TimeSpan(Convert.ToInt32(Math.Floor((decimal)todayDeviceInfo.deviceAlarmTime / 60M)), Convert.ToInt32((decimal)todayDeviceInfo.deviceAlarmTime % 60), 0); deviceAlarmTime = alarmTime; TimeSpan runTime = new TimeSpan(Convert.ToInt32(Math.Floor((decimal)todayDeviceInfo.deviceRunTime / 60M)), Convert.ToInt32((decimal)todayDeviceInfo.deviceRunTime % 60), 0); deviceRunTime = runTime; TimeSpan waitTime = new TimeSpan(Convert.ToInt32(Math.Floor((decimal)todayDeviceInfo.deviceWaitTime / 60M)), Convert.ToInt32((decimal)todayDeviceInfo.deviceWaitTime % 60), 0); deviceWaitTime = waitTime; } else { deviceGeneralInfoForDetail creatTodayDeviceInfo = new deviceGeneralInfoForDetail(); creatTodayDeviceInfo.ext1 = str_srmNo;//æºå·èµå¼ //è®¾å¤æ¥è¦æ¶é´ creatTodayDeviceInfo.deviceAlarmTime = Convert.ToDecimal(deviceAlarmTime.Hours * 60M) + deviceAlarmTime.Minutes;//åä½åé //设å¤è¿è¡æ¶é´ creatTodayDeviceInfo.deviceRunTime = Convert.ToDecimal(deviceRunTime.Hours * 60M) + deviceRunTime.Minutes;//åä½åé //设å¤çå¾ æ¶é´ //creatTodayDeviceInfo.deviceWaitTime = Convert.ToDecimal(deviceWaitTime.Hours * 60M) + deviceWaitTime.Minutes;//åä½åé //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã DeviceGeneralInfoHelper.CommonCalcWaitTime(ref todayDeviceInfo); creatTodayDeviceInfo.createTime = DateTime.Now; mod.deviceGeneralInfoForDetail.Add(creatTodayDeviceInfo); mod.SaveChanges(); //计æ¶å¤ä½ } } } public static void CommonCalcWaitTime(ref deviceGeneralInfo todayDeviceInfo) { //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã todayDeviceInfo.deviceWaitTime = 1440 - (todayDeviceInfo.deviceRunTime + todayDeviceInfo.deviceAlarmTime); } public static void CommonCalcWaitTime(ref deviceGeneralInfoForDetail todayDeviceInfo) { //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã todayDeviceInfo.deviceWaitTime = 1440 - (todayDeviceInfo.deviceRunTime + todayDeviceInfo.deviceAlarmTime); } } } 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) @@ -3223,7 +3235,7 @@ todayDeviceInfo.deviceRunTime = deviceRunTime.TotalMinutes > 0 ? Convert.ToDecimal(deviceRunTime.TotalMinutes) : 0M; todayDeviceInfo.deviceAlarmTime = deviceAlarmTime.TotalMinutes > 0 ? Convert.ToDecimal(deviceAlarmTime.TotalMinutes) : 0M; //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã CommonCalcWaitTime(ref todayDeviceInfo); DeviceGeneralInfoHelper.CommonCalcWaitTime(ref todayDeviceInfo); todayDeviceInfo.taskEnterCount = enterTaskCount.Count;//å ¥åºä»»å¡æ° todayDeviceInfo.taskOutCount = outTaskCount.Count;//åºåºä»»å¡æ° @@ -3232,6 +3244,15 @@ 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(); } @@ -3261,6 +3282,60 @@ if (lastStatus != "è¿è¡") { setDeviceStatusTime(lastStatus, "è¿è¡"); } } } #endregion #region ç»è®¡è®¾å¤è¿è¡æçï¼è¯¦ç»ï¼ ãEditby 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, "è¿è¡"); } } } @@ -3310,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>大å±ä¿¡æ¯åå§å /// 大å±ä¿¡æ¯åå§å @@ -3347,7 +3479,7 @@ //设å¤çå¾ æ¶é´ //creatTodayDeviceInfo.deviceWaitTime = Convert.ToDecimal(deviceWaitTime.Hours * 60M) + deviceWaitTime.Minutes;//åä½åé //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã CommonCalcWaitTime(ref todayDeviceInfo); DeviceGeneralInfoHelper.CommonCalcWaitTime(ref todayDeviceInfo); creatTodayDeviceInfo.createTime = DateTime.Now; mod.deviceGeneralInfo.Add(creatTodayDeviceInfo); @@ -3357,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(); } @@ -3591,16 +3727,7 @@ return resultDate; } private void CommonCalcWaitTime(ref deviceGeneralInfo todayDeviceInfo) { //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã todayDeviceInfo.deviceWaitTime = 1440 - (todayDeviceInfo.deviceRunTime + todayDeviceInfo.deviceAlarmTime); } private void CommonCalcWaitTime(ref deviceGeneralInfoForDetail todayDeviceInfo) { //éæ°è®¡ç®è®¾å¤çå¾ æ¶é´ ãEditby shaocx,2024-12-30ã todayDeviceInfo.deviceWaitTime = 1440 - (todayDeviceInfo.deviceRunTime + todayDeviceInfo.deviceAlarmTime); } #endregion siemenswmssditcode/wmsService/wcftest/wmsService.csproj
@@ -96,6 +96,7 @@ <Compile Include="BussinessExtension\SAP\SAPHelper.cs" /> <Compile Include="BussinessExtension\SystemHelper.cs" /> <Compile Include="BussinessExtension\VirtualModeHelper.cs" /> <Compile Include="BussinessExtension\DeviceGeneralInfoHelper.cs" /> <Compile Include="BussinessExtension\WcsWcfApiHelper.cs" /> <Compile Include="deviceorm\ChaiDieTransport.cs" /> <Compile Include="deviceorm\DevAlert.cs" />