/// <summary> /// 添加工艺子流程步骤日志表 /// </summary> /// <param name="log"></param> /// <returns></returns> public bool AddExProcessStepLog(ProcessData.ExProcessStepLog log) { try { bool isAdd = false; if (log != null) { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { //获取已经执行的步骤数量 string strSQL = "select count(*) from l_exprocesssteplog where ExProcessLogId=?ExProcessLogId"; List <MySqlParameter> sqlParameters = new List <MySqlParameter>(); sqlParameters.Add(new MySqlParameter("?ExProcessLogId", log.ExProcessLogId)); int iNowSum = Convert.ToInt32(MySqlHelper.ExecuteScalar(CommandType.Text, strSQL, sqlParameters.ToArray())); //{工艺子流程日志编号}-{2位流水号} string strNewLogCode = string.Format("{0}-{1:00}", log.ExProcessLogId, iNowSum); log.ExProcessStepLogId = strNewLogCode; DataModels.LExprocesssteplog data = log.ToData(); dataContext.Insert <DataModels.LExprocesssteplog>(data); isAdd = true; } } return(isAdd); } catch { throw; } }
/// <summary> /// 更新工艺主流程日志 /// </summary> /// <param name="log">日志对象</param> /// <returns></returns> public bool UpdateMainProcessLog(ProcessData.ProcessLog log) { try { bool isUpdate = false; if (log != null) { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { DataModels.LProcesslog data = dataContext.LProcesslogs.SingleOrDefault(c => c.ProcessLogId == log.ProcessLogId); data.FinishTime = log.FinishTime; data.ProcessStatus = log.ProcessStatus.ToString(); data.ProduceMaterialType = log.ProduceMaterialType.ToString(); data.Production = log.Production; data.TakeTime = log.TakeTime; dataContext.Update <DataModels.LProcesslog>(data); isUpdate = true; } } return(isUpdate); } catch { throw; } }
/// <summary> /// 添加设备操作日志记录 /// </summary> /// <param name="log">日志对象</param> /// <returns></returns> public bool AddDeviceActionLog(DeviceActionLog log) { try { bool isAdd = false; if (log != null) { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { //日志流水编号{设备编号}-{年月日时分秒} string strNewLogCode = string.Format("Log-{0}-{1:yyMMddHHmmss}", log.SensorId, DateTime.Now); log.DeviceActionLogId = strNewLogCode; DataModels.LDeviceactionlog data = log.ToData(); dataContext.Insert <DataModels.LDeviceactionlog>(data); isAdd = true; } } return(isAdd); } catch { throw; } }
/// <summary> /// 获取设备指定参数最近的日志数据 /// </summary> /// <param name="strDeviceId">设备编号</param> /// <param name="parType">参数类型</param> /// <returns></returns> public DeviceProduceLog GetDeviceProduceLog(string strDeviceId, SysHelper.Enums.DeviceParameterType parType) { try { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { DataModels.LDeviceproducelog data = (from d in dataContext.LDeviceproducelogs where d.DeviceId == strDeviceId & d.ParType == parType.ToString() orderby d.Created descending select d).FirstOrDefault(); if (data != null) { return(new DeviceProduceLog(data)); } else { return(null); } } } catch { throw; } }
/// <summary> /// 获取生产线所有设备传感器当前状态 /// </summary> /// <param name="strAssemblyLineId">生产线编号</param> /// <returns></returns> public DeviceProduceLogCollection GetDeviceProduceLogCollection(string strAssemblyLineId) { try { DeviceProduceLogCollection items = new DeviceProduceLogCollection(); using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { var datas = (from c in dataContext.VDeviceproducelogs where c.AssemblyLineId == strAssemblyLineId select c ).ToList(); foreach (DataModels.VDeviceproducelog data in datas) { DeviceProduceLog item = new DeviceProduceLog(data); items.Add(item); } } return(items); } catch (Exception ex) { throw ex; } }
/// <summary> /// 更新传感器的设备关联关系 /// </summary> /// <param name="strSensorId">传感器编号</param> /// <param name="strDeviceId">所属设备编号</param> /// <param name="strToDeviceId">连接的设备编号</param> /// <returns></returns> public bool UpdateSensorJoinInfo(string strSensorId, string strDeviceId, string strToDeviceId) { try { bool isUpdate = false; using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { DataModels.FSensorinfo sensor = dataContext.FSensorinfoes.SingleOrDefault(c => c.SensorId == strSensorId); if (sensor != null) { sensor.DeviceId = strDeviceId; sensor.ToDeviceId = strToDeviceId; dataContext.Update <DataModels.FSensorinfo>(sensor); isUpdate = true; } } return(isUpdate); } catch (Exception ex) { throw ex; } }
/// <summary> /// 按指定顺序编号获取对应的工艺子流程数据 /// </summary> /// <param name="strProcessId"></param> /// <param name="iOrderIndex"></param> /// <returns></returns> public TeExProcess GetTeExProcess(string strProcessId, int iOrderIndex) { try { DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB(); //获取数据 DataModels.PExprocess data = dataContext.PExprocesses.SingleOrDefault(c => c.ProcessId == strProcessId & c.ProcessOrderId == iOrderIndex); if (data != null) { TeExProcess item = new TeExProcess(data); //提取对应的子集合 string strExProcessId = item.ExProcessId; ExProcessStepCollection steps = GetExProcessSteps(strExProcessId); foreach (ExProcessStep step in steps) { ExProcessStepParsCollection pars = GetExProcessStepPars(step.StepId); step.StepPars = pars; } item.Steps = steps; return(item); } else { return(null); } } catch (Exception ex) { throw ex; } }
/// <summary> /// /// </summary> /// <param name="log"></param> /// <param name="strDeviceId"></param> /// <returns></returns> public bool AddDeviceProduceLogPar(DeviceProduceLogPar log, string strDeviceId) { try { bool isAdd = false; if (log != null) { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { //日志流水编号{设备编号}-{年月日时分秒} string strNewLogCode = string.Format("{0}-{1}-{2:yyMMddHHmmss}", strDeviceId, log.ParType.ToString(), DateTime.Now); log.LogParId = strNewLogCode; DataModels.LDeviceproducelogpar data = log.ToData(); dataContext.Insert <DataModels.LDeviceproducelogpar>(data); isAdd = true; } } return(isAdd); } catch { throw; } }
/// <summary> /// 添加设备状态日志记录 /// </summary> /// <param name="log"></param> /// <returns></returns> public bool AddDeviceProduceLog(DeviceProduceLog log) { try { bool isAdd = false; if (log != null) { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { //日志流水编号{设备编号}-{年月日时分秒} string strNewLogCode = string.Format("{0}-{1:yyMMddHHmmss}", log.DeviceId, DateTime.Now); log.DeviceProduceLogId = strNewLogCode; //DataModels.LDeviceproducelog data = log.ToData(); //dataContext.Insert<DataModels.LDeviceproducelog>(data); #region 调用存储过程方式来添加日志 string strProName = "proc_AddDeviceProduceLog"; List <MySqlParameter> sqlParameters = new List <MySqlParameter> { new MySqlParameter("?mDeviceProduceLogId", log.DeviceProduceLogId) , new MySqlParameter("?mDeviceId", log.DeviceId) , new MySqlParameter("?mCreated", log.Created) , new MySqlParameter("?mDeviceStatus", Enum.GetName(log.DeviceStatus.GetType(), log.DeviceStatus)) , new MySqlParameter("?mSensorId", log.SensorId) , new MySqlParameter("?mValueType", log.ValueType) , new MySqlParameter("?mSensorStatusValue", log.SensorStatusValue) , new MySqlParameter("?mSensorStatus", Enum.GetName(log.SensorStatus.GetType(), log.SensorStatus)) , new MySqlParameter("?mParType", log.ParType) , new MySqlParameter("?mParUnit", log.ParUnit) , new MySqlParameter("?mParValue", log.ParValue) }; MySqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, strProName, sqlParameters.ToArray()); #endregion isAdd = true; } } return(isAdd); } catch { throw; } }
/// <summary> /// 获取子流程步骤的参数需求集合 /// </summary> /// <param name="strStepId"></param> /// <returns></returns> public ExProcessStepParsCollection GetExProcessStepPars(string strStepId) { try { ExProcessStepParsCollection items = new ExProcessStepParsCollection(); using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { var datas = (from c in dataContext.PExprocesssteppars where c.StepId == strStepId select c ).ToList(); foreach (DataModels.PExprocesssteppar data in datas) { ExProcessStepPars item = new ExProcessStepPars(data); items.Add(item); } } return(items); //ExProcessStepParsCollection infos = new ExProcessStepParsCollection(); //string strSQL = "select *from p_exprocesssteppars where StepId=?StepId "; //List<MySqlParameter> sqlParameters = new List<MySqlParameter> //{ // new MySqlParameter("?StepId", strStepId) //}; //ExProcessStepPars info = new ExProcessStepPars(); //Dictionary<string, Type> dEnum = new Dictionary<string, Type>(); //dEnum.Add("ActionType", typeof(SysHelper.Enums.SenserStatusType)); //dEnum.Add("ParType", typeof(SysHelper.Enums.DeviceParameterType)); ////获取主数据 //CreateDataList<ExProcessStepPars>(infos, strSQL, sqlParameters, info, dEnum); //return infos; } catch (Exception ex) { throw ex; } }
/// <summary> /// 获取子流程的步骤顺序集合 /// </summary> /// <param name="strExProcessId"></param> /// <returns></returns> public ExProcessStepCollection GetExProcessSteps(string strExProcessId) { try { ExProcessStepCollection items = new ExProcessStepCollection(); using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { var datas = (from c in dataContext.VExprocesssteps where c.ExProcessId == strExProcessId orderby c.OrderIndex select c ).ToList(); foreach (DataModels.VExprocessstep data in datas) { ExProcessStep item = new ExProcessStep(data); items.Add(item); } } return(items); //ProcessStepCollection infos = new ProcessStepCollection(); //string strSQL = "select *from p_exprocessstep where ExProcessId=?ExProcessId order by orderindex"; //List<MySqlParameter> sqlParameters = new List<MySqlParameter> //{ // new MySqlParameter("?ExProcessId", strExProcessId) //}; //ProcessStep info = new ProcessStep(); //Dictionary<string, Type> dEnum = new Dictionary<string, Type>(); //dEnum.Add("ActionType", typeof(SysHelper.Enums.DeviceActionType)); //dEnum.Add("FinishParType", typeof(SysHelper.Enums.DeviceParameterType)); ////获取主数据 //CreateDataList<ProcessStep>(infos, strSQL, sqlParameters, info, dEnum); //return infos; } catch (Exception ex) { throw ex; } }
/// <summary> /// 获取工厂的生产线信息 /// </summary> /// <param name="strAssemblyLineId">生产线编号</param> /// <returns></returns> public AssemblyLineInfo GetAssemblyLine(string strAssemblyLineId) { try { DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB(); DataModels.FAssemblylineinfo data = dataContext.FAssemblylineinfoes.SingleOrDefault(c => c.AssemblyLineId == strAssemblyLineId); if (data != null) { return(new AssemblyLineInfo(data)); } else { return(null); } } catch { throw; } }
/// <summary> /// 获取工艺主流程 /// </summary> /// <param name="strProcessId">主流程编号</param> /// <returns></returns> public TechnologicalProcess GetTechnologicalProcess(string strProcessId) { try { DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB(); DataModels.PMainprocess data = dataContext.PMainprocesses.SingleOrDefault(c => c.ProcessId == strProcessId); if (data != null) { return(new TechnologicalProcess(data)); } else { return(null); } } catch { throw; } }
/// <summary> /// 通过传感器得到对应的设备编号 /// </summary> /// <param name="strSensorId">传感器编号</param> /// <returns></returns> public string GetDeviceIdBySensor(string strSensorId) { try { string strDeviceId = string.Empty; DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB(); DataModels.FSensorinfo data = dataContext.FSensorinfoes.SingleOrDefault(c => c.SensorId == strSensorId); if (data != null) { strDeviceId = data.DeviceId; } return(strDeviceId); } catch { throw; } }
/// <summary> /// 获取传感器信息 /// </summary> /// <param name="strSensorId">传感器编号</param> /// <returns></returns> public SensorInfo GetSensorInfo(string strSensorId) { try { DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB(); DataModels.FSensorinfo data = dataContext.FSensorinfoes.SingleOrDefault(c => c.SensorId == strSensorId); if (data != null) { SensorInfo info = new SensorInfo(data); return(info); } else { return(null); } } catch (Exception ex) { throw ex; } }
/// <summary> /// 添加工艺主流程日志 /// </summary> /// <param name="log">日志对象</param> /// <returns></returns> public bool AddMainProcessLog(ProcessData.ProcessLog log) { try { bool isAdd = false; if (log != null) { //提取得到新的流水号 //{生产线编号}-{年月日}-{2位流水号} //string strYMD = DateTime.Now.ToString("yyMMdd"); using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { //先查询日志集合 string strSQL = "select count(*) from l_processlog where AssemblyLineId=?AssemblyLineId and DATE_FORMAT(created,'%Y%m%d') = ?NowDate"; List <MySqlParameter> sqlParameters = new List <MySqlParameter> { new MySqlParameter("?AssemblyLineId", log.AssemblyLineId) , new MySqlParameter("?NowDate", log.Created) }; int iNowSum = Convert.ToInt32(MySqlHelper.ExecuteScalar(CommandType.Text, strSQL, sqlParameters.ToArray())); string strNewLogCode = string.Format("{0}-{1:yyMMdd}-{2:00}", log.AssemblyLineId, log.Created, iNowSum); log.ProcessLogId = strNewLogCode; DataModels.LProcesslog data = log.ToData(); dataContext.Insert <DataModels.LProcesslog>(data); isAdd = true; } } return(isAdd); } catch { throw; } }
/// <summary> /// 添加工艺子流程步骤参数日志数据 /// </summary> /// <param name="log"></param> /// <returns></returns> public bool AddExProcessStepParLog(ProcessData.ExProcessStepParsLog log) { try { bool isAdd = false; if (log != null) { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { DataModels.LExprocessstepparslog data = log.ToData(); dataContext.Insert <DataModels.LExprocessstepparslog>(data); isAdd = true; } } return(isAdd); } catch { throw; } }
/// <summary> /// 添加新传感器状态日志记录 /// </summary> /// <param name="log"></param> /// <returns></returns> public bool AddNewSensorLog(NewSensorLog log) { try { bool isAdd = false; if (log != null) { using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { #region 调用存储过程方式来添加日志 string strProName = "proc_AddSensorLog"; List <MySqlParameter> sqlParameters = new List <MySqlParameter> { new MySqlParameter("?mCreated", log.Created) , new MySqlParameter("?mSensorId", log.SensorId) , new MySqlParameter("?mValueType", log.ValueType) , new MySqlParameter("?mSensorStatusValue", log.SensorStatusValue) , new MySqlParameter("?mSensorStatus", Enum.GetName(log.SensorStatus.GetType(), log.SensorStatus)) , new MySqlParameter("?mParValue", log.ParValue) }; MySqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, strProName, sqlParameters.ToArray()); #endregion isAdd = true; } } return(isAdd); } catch { throw; } }
/// <summary> /// 更新设备信息 /// </summary> /// <param name="device">设备内容</param> /// <returns></returns> public bool UpdateDeviceInfo(DeviceInfo device) { try { bool isUpdate = false; using (DataModels.HnfactoryautodbDB dataContext = new DataModels.HnfactoryautodbDB()) { DataModels.FDeviceinfo deviceinfo = dataContext.FDeviceinfoes.SingleOrDefault(c => c.DeviceId == device.DeviceId); if (deviceinfo != null) { deviceinfo.DeviceName = device.DeviceName; dataContext.Update <DataModels.FDeviceinfo>(deviceinfo); isUpdate = true; } } return(isUpdate); } catch (Exception ex) { throw ex; } }