diff --git a/WcfControlMonitorLib/CCommonFunction.cs b/WcfControlMonitorLib/CCommonFunction.cs index 1a4885b..ba950e1 100644 --- a/WcfControlMonitorLib/CCommonFunction.cs +++ b/WcfControlMonitorLib/CCommonFunction.cs @@ -7,6 +7,8 @@ using CommLayerFactory; using ICommLayer; using CommonLib; using System.Text.RegularExpressions; +using static System.Collections.Specialized.BitVector32; + namespace WcfControlMonitorLib { /// @@ -4364,5 +4366,73 @@ namespace WcfControlMonitorLib } } + /// + /// 根据任务号获取任务类型,和出库站台 + /// + /// 设备指令任务ID + /// + public int getTaskCommandFromMonitorTask(int taskIndex,string xyz,out int station) { + DataView dv = new DataView(); + DataView dv1 = new DataView(); + int taskCommand = 0; + station = 0; + try + { + + sql.Remove(0, sql.Length); + sql.Append("select F_DeviceCommandIndex from T_Monitor_Task where F_MonitorIndex=").Append(taskIndex); + dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dv.Count > 0) + { + taskCommand =Convert.ToInt32(dv[0]["F_DeviceCommandIndex"]); + } + sql.Remove(0, sql.Length); + sql.Append("select F_DeviceCommandIndex from T_Base_Lane_Gate where F_ZXY='").Append(xyz).Append("'"); + dv1 = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dv1.Count > 0) + { + station = Convert.ToInt32(dv1[0]["F_LaneGateDeviceIndex"]); + } + return taskCommand; + + } + catch (Exception ex) + {//20100108 + throw ex; + } + finally + {//20100108 + dv.Dispose(); + dv1.Dispose(); + + } + } + public int getTaskTypeFromManageTask(long Fid) { + DataView dv = new DataView(); + int taskType = 0; + try + { + + sql.Remove(0, sql.Length); + sql.Append("select FCONTROLTASKTYPE from T_Manage_Task where FID=").Append(Fid); + dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dv.Count > 0) + { + taskType = Convert.ToInt32(dv[0]["FCONTROLTASKTYPE"]); + } + + return taskType; + + } + catch (Exception ex) + {//20100108 + throw ex; + } + finally + {//20100108 + dv.Dispose(); + + } + } } } diff --git a/WcfControlMonitorLib/CGetState.cs b/WcfControlMonitorLib/CGetState.cs index 7b2b2bc..e2fe297 100644 --- a/WcfControlMonitorLib/CGetState.cs +++ b/WcfControlMonitorLib/CGetState.cs @@ -9,6 +9,8 @@ using ICommLayer; using CommLayerFactory; using System.Globalization; using System.Net; +using System.Security.Cryptography; + namespace WcfControlMonitorLib { /// @@ -438,6 +440,7 @@ namespace WcfControlMonitorLib if (TaskIdx == 0) return; devinfo=Model.CGetInfo.GetDeviceInfo(DeviceIdx); int devKind = ccf.GetDeviceKindIdx(DeviceIdx); + // int devKind = ccf.(DeviceIdx); //20100305 int[] zxy = ccf.GetCoordinatesFromMonitorTask(TaskIdx); StringBuilder zxystr = new StringBuilder(); @@ -456,15 +459,25 @@ namespace WcfControlMonitorLib return; } - if (devKind == 4)//񺽶 - { - int result = ccf.GetRepeatDeviceindex(DeviceIdx, TaskIdx); - if (result == -1) + if (devKind == 4) + #region ɽʱ ѶŻɺҪУڳ lzm 20250415 + if (devKind == 1) { + var command= ccf.getTaskCommandFromMonitorTask(TaskIdx, zxystr.ToString(),out int station); + var taskType = ccf.getTaskTypeFromManageTask(_fid); + if (command == 3&&taskType==2)//Ѷͳָҵdz { - return; + var deviceinfo= Model.CGetInfo.GetDeviceInfo(station); + if (deviceinfo.SplitByte_0 == 0) { + sql.Remove(0, sql.Length); + var msg = $"ѶŻɺվ̨{DeviceIdx}޻쳣˹"; + sql.Append("update T_Monitor_Task set F_ErrorCode='"+msg+ "' and F_Status=99 where F_MonitorIndex = ").Append(TaskIdx); + //20100108 + dbo.ExceSQL(sql.ToString()); + return; + } } } - + #endregion if (GetManage_Kind(TaskIdx) == false) return; int errrcode= ccf.GetExceptionNOFromManageTask(_fid,_mti ); int ControlType=ccf.GetFCONTROLTASKTYPEFromManageTask(_mti,_fid); @@ -518,8 +531,7 @@ namespace WcfControlMonitorLib if (((Pri == 21) || (Pri == 12)) && (devKind == 1) && (ccf.GetFCONTROLTASKTYPEFromManageTask(_mti, _fid) == 2))//ѶȲЯ { sql.Remove(0, sql.Length); - sql.Append("select * from T_Manage_Task where FTASKLEVEL=10 and FSTACK = " ).Append( DeviceIdx ).Append( " AND (FCONTROLTASKTYPE = 1) AND (FIntoStepOK = '1') "); - + sql.Append("select * from T_Manage_Task where FTASKLEVEL=10 and FSTACK = " ).Append( DeviceIdx ).Append( " AND (FCONTROLTASKTYPE = 1) AND (FIntoStepOK = '1') "); //20100108 dvman=dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView ; if (dvman.Count <= 0) @@ -529,7 +541,6 @@ namespace WcfControlMonitorLib //ûˣҸ sql.Remove(0, sql.Length); sql.Append("SELECT FID, F_ManageTaskKindIndex, FCONTROLTASKTYPE FROM T_Manage_Task WHERE (FSTACK = ").Append(DeviceIdx).Append(") AND (FCONTROLTASKTYPE = 1) AND (FIntoStepOK = '1') order by FTASKLEVEL desc, F_ManageTaskKindIndex desc,FID asc"); - dvman = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; for (int ii = 0; ii < dvman.Count; ii++) { @@ -762,20 +773,20 @@ namespace WcfControlMonitorLib break; case "SQLServerDBFactory": - #region 20210513_ϺɵּڷּǰһλñɣԹ + //#region 20210513_ϺɵּڷּǰһλñɣԹ - if (DeviceIdx == 12012 || DeviceIdx == 12018 || DeviceIdx == 12025) - { + //if (DeviceIdx == 12012 || DeviceIdx == 12018 || DeviceIdx == 12025) + //{ - } + //} - #endregion - else - { + //#endregion + //else + //{ sql.Remove(0, sql.Length); sql.Append("update IO_Control set CONTROL_END_TIME =GETDATE(), CONTROL_STATUS=").Append(Model.CGeneralFunction.TASKFINISH).Append(" where CONTROL_ID=").Append(fid); rowco = dboM.ExecuteSql(sql.ToString()); - } + //} break; case "OleDBFactory": @@ -828,13 +839,13 @@ namespace WcfControlMonitorLib #region Ϻɵбɣó 񺽶 - if (ControlType == 6) - { - sql.Remove(0, sql.Length); - sql.Append("UPDATE T_Base_Device SET F_SwitchLock = ").Append(TaskIdx) - .Append(" WHERE F_DeviceIndex = ").Append(DeviceIdx); - dbo.ExecuteSql(sql.ToString()); - } + //if (ControlType == 6) + //{ + // sql.Remove(0, sql.Length); + // sql.Append("UPDATE T_Base_Device SET F_SwitchLock = ").Append(TaskIdx) + // .Append(" WHERE F_DeviceIndex = ").Append(DeviceIdx); + // dbo.ExecuteSql(sql.ToString()); + //} #endregion @@ -862,10 +873,7 @@ namespace WcfControlMonitorLib sql.Append(string.Format("update T_Manage_Task set F_OutStatus =20 WHERE (FID = {0} and F_ManageTaskKindIndex={1} )", fid, mti)); dbo.ExecuteSql(sql.ToString()); } - } - - - + } if (ControlType == 5) { if ((devinfo.DeviceIndex == 14005|| devinfo.DeviceIndex == 14006) && ((order == 4)|| (order == 5)))// Ϊ10 񺽶 @@ -2791,7 +2799,7 @@ namespace WcfControlMonitorLib } - #endregion + #endregion } break; diff --git a/WcfControlMonitorLib/SControlMonitor.cs b/WcfControlMonitorLib/SControlMonitor.cs index 9b5c0b1..69bede3 100644 --- a/WcfControlMonitorLib/SControlMonitor.cs +++ b/WcfControlMonitorLib/SControlMonitor.cs @@ -5588,124 +5588,124 @@ namespace WcfControlMonitorLib - #region 上海晟碟,获取电池电量信息 + #region 注释上海晟碟,获取电池电量信息 - devinfo.Battery_Status = - devicestates[tempdb2addr + 11] + (devicestates[tempdb2addr + 10] << 8); - //devinfo.Battery_Status = devicestates[tempdb2addr + 13]; - sql.Remove(0, sql.Length); + //devinfo.Battery_Status = + // devicestates[tempdb2addr + 11] + (devicestates[tempdb2addr + 10] << 8); + ////devinfo.Battery_Status = devicestates[tempdb2addr + 13]; + //sql.Remove(0, sql.Length); + ////sql.Append("UPDATE SHUTTLE_POSITION SET F_BatteryStatus = ") + //// .Append(devinfo.Battery_Status).Append(", F_Postion = ").Append(yc).Append(" WHERE F_DeviceIndex = ") + //// .Append(devinfo.DeviceIndex); //sql.Append("UPDATE SHUTTLE_POSITION SET F_BatteryStatus = ") - // .Append(devinfo.Battery_Status).Append(", F_Postion = ").Append(yc).Append(" WHERE F_DeviceIndex = ") - // .Append(devinfo.DeviceIndex); - sql.Append("UPDATE SHUTTLE_POSITION SET F_BatteryStatus = ") - .Append(devinfo.Battery_Status).Append(" WHERE F_DeviceIndex = ") - .Append(devinfo.DeviceIndex).Append("and F_BatteryStatus<>").Append(devinfo.Battery_Status); - dbo.ExceSQL(sql.ToString()); + // .Append(devinfo.Battery_Status).Append(" WHERE F_DeviceIndex = ") + // .Append(devinfo.DeviceIndex).Append("and F_BatteryStatus<>").Append(devinfo.Battery_Status); + //dbo.ExceSQL(sql.ToString()); - if (yc != 0)//上海晟碟, 层信息为0不更新表 - { - sql.Remove(0, sql.Length); - sql.Append("UPDATE SHUTTLE_POSITION SET F_Postion = ") - .Append(yc).Append(" WHERE F_DeviceIndex = ") - .Append(devinfo.DeviceIndex).Append("and F_Postion<>").Append(yc); - dbo.ExceSQL(sql.ToString()); - - } - - #region 20210329_上海晟碟,如果电池电量低于40,生成充电的手工任务 民航二所 - - if((devinfo.XCoor!=0 )&& (devinfo.YCoor != 0 ))//dzf - { - if (devinfo.RunState == 0)//空闲模式才能下达任务 - { - if (devinfo.Battery_Status < 40) - { - //判断是否有该车的充电任务,是否正在充电,满足条件再生成充电任务 - sql.Remove(0, sql.Length); - sql.Append( - "SELECT * FROM T_Manage_Task WHERE FCONTROLTASKTYPE = 6 AND FSTARTDEVICE = '") - .Append(devinfo.DeviceIndex.ToString()).Append("'"); - if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) - { - - } - - else - { - sql.Remove(0, sql.Length); - sql.Append("SELECT * FROM T_Manage_Task WHERE 1<>1 and FSTACK = ") - .Append(devinfo.DeviceIndex.ToString()); - if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) - { - - } - //生成充电任务 - else//强制生成充电任务 - { - - //没有调度预约锁时候生成充电任务 - sql.Remove(0, sql.Length); - sql.Append( - "SELECT F_ManTaskReserve FROM T_Base_Device WHERE F_DeviceIndex = ") - .Append(devinfo.DeviceIndex.ToString()); - int FManTaskReserve = Convert.ToInt32( - dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView[0] - ["F_ManTaskReserve"]); - if (FManTaskReserve == 0) - { - sql.Remove(0, sql.Length); - sql.Append( - "SELECT F_SwitchLock FROM T_Base_Device WHERE F_DeviceIndex = ") - .Append(devinfo.DeviceIndex.ToString()); - int iSwitchLock = Convert.ToInt32( - dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView[0] - ["F_SwitchLock"]); - if (iSwitchLock == 0) - { - string strCell = string.Format("{0:D2}-{1:D2}-{2:D2}", 2, 2, yc); - int hidx1 = ccf.GetTempManageIdx(); - string dTime1 = DateTime.Now.ToString("u"); - dTime1 = dTime1.Substring(0, dTime1.Length - 1); - string strBarcode = DateTime.Now.ToString("yyyyMMddhhmmss"); - mysql.Remove(0, mysql.Length); - mysql.Append("INSERT INTO T_Manage_Task") - .Append( - "(FPALLETBARCODE,FID,F_ManageTaskKindIndex,F_RELATIVECONTORLID,FCONTROLTASKTYPE,FIntoStepOK,FSTARTDEVICE,FSTARTCELL,FENDDEVICE,FENDCELL,FBEGTIME,WORK_MODE,FUseAwayFork,FSTACK,FStartLayer,FEndLayer) values('") - .Append("Charge").Append(devinfo.DeviceIndex) - .Append("',") - .Append(hidx1) - .Append(",1,-1,6,0,").Append(devinfo.DeviceIndex).Append(",'").Append(strCell) - .Append("','") - .Append(18001).Append("','").Append(strCell) - .Append("','").Append(dTime1) - .Append("',0,0,11000, ").Append(yc).Append(",").Append(yc).Append(")"); - dbo.ExecuteSql(mysql.ToString()); - } - } - - } + //if (yc != 0)//上海晟碟, 层信息为0不更新表 + //{ + // sql.Remove(0, sql.Length); + // sql.Append("UPDATE SHUTTLE_POSITION SET F_Postion = ") + // .Append(yc).Append(" WHERE F_DeviceIndex = ") + // .Append(devinfo.DeviceIndex).Append("and F_Postion<>").Append(yc); + // dbo.ExceSQL(sql.ToString()); + //} + //#region 20210329_上海晟碟,如果电池电量低于40,生成充电的手工任务 民航二所 - } + //if((devinfo.XCoor!=0 )&& (devinfo.YCoor != 0 ))//dzf + //{ + // if (devinfo.RunState == 0)//空闲模式才能下达任务 + // { + // if (devinfo.Battery_Status < 40) + // { + // //判断是否有该车的充电任务,是否正在充电,满足条件再生成充电任务 + // sql.Remove(0, sql.Length); + // sql.Append( + // "SELECT * FROM T_Manage_Task WHERE FCONTROLTASKTYPE = 6 AND FSTARTDEVICE = '") + // .Append(devinfo.DeviceIndex.ToString()).Append("'"); + // if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) + // { + + // } + + // else + // { + // sql.Remove(0, sql.Length); + // sql.Append("SELECT * FROM T_Manage_Task WHERE 1<>1 and FSTACK = ") + // .Append(devinfo.DeviceIndex.ToString()); + // if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) + // { + + // } + // //生成充电任务 + // else//强制生成充电任务 + // { + + // //没有调度预约锁时候生成充电任务 + // sql.Remove(0, sql.Length); + // sql.Append( + // "SELECT F_ManTaskReserve FROM T_Base_Device WHERE F_DeviceIndex = ") + // .Append(devinfo.DeviceIndex.ToString()); + // int FManTaskReserve = Convert.ToInt32( + // dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView[0] + // ["F_ManTaskReserve"]); + // if (FManTaskReserve == 0) + // { + // sql.Remove(0, sql.Length); + // sql.Append( + // "SELECT F_SwitchLock FROM T_Base_Device WHERE F_DeviceIndex = ") + // .Append(devinfo.DeviceIndex.ToString()); + // int iSwitchLock = Convert.ToInt32( + // dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView[0] + // ["F_SwitchLock"]); + // if (iSwitchLock == 0) + // { + // string strCell = string.Format("{0:D2}-{1:D2}-{2:D2}", 2, 2, yc); + // int hidx1 = ccf.GetTempManageIdx(); + // string dTime1 = DateTime.Now.ToString("u"); + // dTime1 = dTime1.Substring(0, dTime1.Length - 1); + // string strBarcode = DateTime.Now.ToString("yyyyMMddhhmmss"); + // mysql.Remove(0, mysql.Length); + // mysql.Append("INSERT INTO T_Manage_Task") + // .Append( + // "(FPALLETBARCODE,FID,F_ManageTaskKindIndex,F_RELATIVECONTORLID,FCONTROLTASKTYPE,FIntoStepOK,FSTARTDEVICE,FSTARTCELL,FENDDEVICE,FENDCELL,FBEGTIME,WORK_MODE,FUseAwayFork,FSTACK,FStartLayer,FEndLayer) values('") + // .Append("Charge").Append(devinfo.DeviceIndex) + // .Append("',") + // .Append(hidx1) + // .Append(",1,-1,6,0,").Append(devinfo.DeviceIndex).Append(",'").Append(strCell) + // .Append("','") + // .Append(18001).Append("','").Append(strCell) + // .Append("','").Append(dTime1) + // .Append("',0,0,11000, ").Append(yc).Append(",").Append(yc).Append(")"); + // dbo.ExecuteSql(mysql.ToString()); + // } + // } + + // } + + + + // } - } - } - } + // } + // } + //} - if (devinfo.Battery_Status > 80) - { - sql.Remove(0, sql.Length); - sql.Append( - "UPDATE T_Base_Device SET F_SwitchLock = 0 WHERE F_SwitchLock <> 0 and F_DeviceIndex = ") - .Append(devinfo.DeviceIndex.ToString()); - dbo.ExecuteSql(sql.ToString()); - } + //if (devinfo.Battery_Status > 80) + //{ + // sql.Remove(0, sql.Length); + // sql.Append( + // "UPDATE T_Base_Device SET F_SwitchLock = 0 WHERE F_SwitchLock <> 0 and F_DeviceIndex = ") + // .Append(devinfo.DeviceIndex.ToString()); + // dbo.ExecuteSql(sql.ToString()); + //} - #endregion + //#endregion #endregion