public JsonResult GetSelParamIds(int layoutId) { var retData = new VM_Result_Data(); try { var layout = bllLayout.GetModel(layoutId); var bllParamCode_Sensor = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); var bllSensor = new MesWeb.BLL.T_SensorModule(); var sensor = bllSensor.GetModel((int)layout.TableRowID); var paramCode_SensorList = bllParamCode_Sensor.GetModelList("SensorModuleID = " + sensor.SensorModuleID); var paramCodeIds = new List <int?>(); foreach (var item in paramCode_SensorList) { paramCodeIds.Add(item.ParameterCodeID); } if (paramCodeIds.Count > 0) { retData.Code = RESULT_CODE.OK; retData.Appendix = paramCodeIds; } } catch (Exception e) { log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name); log.Error("获取模块参数失败!", e); retData.Content = "获取模块参数失败!"; } return(Json(retData)); }
public JsonResult DeleteSensorLayoutAction(int Id) { log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name); var retData = new VM_Result_Data(); var layout = bllLayout.GetModel(Id); try { if (deleteLayout(layout)) { var bllSensor = new MesWeb.BLL.T_SensorModule(); var bllSensorParamCode = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); var sensorParamCodeList = bllSensorParamCode.GetModelList("SensorModuleID=" + layout.TableRowID); var deleteList = new StringBuilder(); for (int i = 0; i < sensorParamCodeList.Count; i++) { deleteList.Append(sensorParamCodeList[i].SensorModule_PARCODEID.ToString()); if (i != sensorParamCodeList.Count - 1) { deleteList.Append(","); } } if (bllSensorParamCode.DeleteList(deleteList.ToString())) { if (bllSensor.Delete((int)layout.TableRowID)) { retData.Code = RESULT_CODE.OK; retData.Content = "删除成功"; } else { log.Error("删除传感器失败"); retData.Content = "删除传感器失败"; } } else { log.Error("删除关系失败"); retData.Content = "删除传感器失败"; } } else { log.Error("删除传感器布局失败"); retData.Content = "删除失败!"; } } catch (Exception e) { retData.Content = "系统错误"; log.Fatal("系统错误", e); } return(Json(retData)); }
protected List <VM_Fusioncharts_Line> getParamsChartList(int machineID, params MesWeb.Model.T_ParameterCode[] paramCodeIDList) { List <VM_Fusioncharts_Line> vmChartsList = new List <VM_Fusioncharts_Line>(); var bllParamData = new MesWeb.BLL.T_CollectedDataParameters(); var bllSensorParamCode = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); var bllParamUnit = new MesWeb.BLL.T_ParameterUnit(); var bllParamSet = new MesWeb.BLL.T_ParametersCol(); foreach (var code in paramCodeIDList) { var dataList = bllParamData.GetModelList("MachineID = " + machineID + "and ParameterCodeID = " + code.ParameterCodeID); var paramSetting = bllParamSet.GetModelList("ParameterCodeID = " + (int)code.ParameterCodeID).FirstOrDefault(); var paramUnit = bllParamUnit.GetModel((int)code.ParameterUnitID); var vmFusion = new VM_Fusioncharts_Line(); var chart = new FusionChart { caption = code.ParameterName, numberSuffix = paramUnit.ParameterUnitSymbol, yAxisName = paramUnit.ParameterUnitName, xAxisName = "时间" }; var maxLine = new FusionLine { startvalue = paramSetting.ParametersColMaxiumValue, displayvalue = "最大值" }; var minLine = new FusionLine { startvalue = paramSetting.ParametersColMiniumValue, displayvalue = "最小值" }; var trendline = new FusionTrendLine(); trendline.line.Add(maxLine); trendline.line.Add(minLine); vmFusion.chart = chart; vmFusion.trendlines.Add(trendline); for (int i = 0; i < dataList.Count; i++) { vmFusion.data.Add(new FusionData { // label = ((DateTime)dataList[i].CollectedTime).ToUniversalTime().Subtract( // // new DateTime(1969,12,30,16,0,0,DateTimeKind.Utc) label = dataList[i].CollectedTime.ToString(), value = dataList[i].CollectedValue.ToString() }); } ; vmChartsList.Add(vmFusion); } return(vmChartsList); }
/// <summary> /// 初始化模块状态缓存字典 /// </summary> private void initCurModuelStateDic() { var bllMachine = new MesWeb.BLL.T_Machine(); var machList = bllMachine.GetModelList(""); var bllSensor = new MesWeb.BLL.T_SensorModule(); var bllParam = new MesWeb.BLL.T_ParameterCode(); var bllSensor_Param = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); //遍历所有机台 foreach (var machine in machList) { var machineId = machine.MachineID; //为每个机台的所有模块生成一个字典 var moduleDic = new ConcurrentDictionary <string, List <Param> >(); //添加机台 if (curModuleStateDic.TryAdd(machineId, moduleDic)) { var sensors = bllSensor.GetModelList("MachineID = " + machineId); //遍历模块 foreach (var sensor in sensors) { //初始化每个模块的参数列表 var paramList = new List <Param>(); //添加模块 if (moduleDic.TryAdd(sensor.SerialNum, paramList)) { var sensor_param = bllSensor_Param.GetModelList("SensorModuleID = " + sensor.SensorModuleID); //遍历模块对应的参数 foreach (var sp in sensor_param) { //获得参数 var param = bllParam.GetModel(sp.ParameterCodeID.Value); //添加参数 paramList.Add(new Param { ParamCodeID = param.ParameterCodeID.ToString(), ParamCode = param.ParameterCode.ToString(), ParamName = param.ParameterName }); } } } } } }
public JsonResult AddSensorAction(VM_AddSensorAdmin sensorAdmin) { log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name); var retData = new VM_Result_Data(); var sensorModule = sensorAdmin.SensorModule; var sensorLayout = sensorAdmin.SensorLayout; if (sensorModule.SerialNum != null && sensorAdmin.ParentLayoutPictureID != null && sensorAdmin.ParameterCodeIDs.Count > 0) { try { var bllMachine = new MesWeb.BLL.T_Machine(); var machineLayout = bllLayout.GetModel((int)sensorLayout.ParentLayoutPictureID); var bllSensor = new MesWeb.BLL.T_SensorModule(); var bllSensorParamCode = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); sensorModule.MachineID = bllMachine.GetModel((int)machineLayout.TableRowID).MachineID; sensorLayout.LayoutTypeID = (int)LAYOUT_TPYE.SENSOR_MODULE; //add sensor sensorLayout.TableRowID = bllSensor.Add(sensorModule); //build sensor and parametercode relationship foreach (var param in sensorAdmin.ParameterCodeIDs) { bllSensorParamCode.Add(new MesWeb.Model.T_SensorModule_T_ParameterCode { SensorModuleID = sensorLayout.TableRowID, ParameterCodeID = int.Parse(param) }); } //add sensor layout bllLayout.Add(sensorLayout); retData.Code = RESULT_CODE.OK; retData.Content = "添加模块成功!"; } catch (Exception e) { log.Fatal("往数据库写入数据失败", e); } } else { log.Warning("字段校验失败"); retData.Content = "字段校验失败"; } return(Json(retData)); }
protected List <VM_Fusioncharts_Line> getSensorLineChartList(int sensorModuleID, int machineID, int size = -1) { List <VM_Fusioncharts_Line> vmChartsList = new List <VM_Fusioncharts_Line>(); var bllSensor = new MesWeb.BLL.T_SensorModule(); var sensor = bllSensor.GetModel(sensorModuleID); if (sensor != null) { var bllSensorParamCode = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); var bllParamCode = new MesWeb.BLL.T_ParameterCode(); var sensorParamCodeList = bllSensorParamCode.GetModelList("SensorModuleID = " + sensor.SensorModuleID); var codeList = new List <MesWeb.Model.T_ParameterCode>(); foreach (var sensorCode in sensorParamCodeList) { var paramCode = bllParamCode.GetModel((int)sensorCode.ParameterCodeID); codeList.Add(paramCode); } vmChartsList = getParamsChartList(machineID, codeList.ToArray()); } return(vmChartsList); }
public ActionResult Machine() { var bllMachine = new MesWeb.BLL.T_Machine(); var machineList = bllMachine.GetModelList(""); var bllParam = new MesWeb.BLL.T_ParameterCode(); var bllSensor = new MesWeb.BLL.T_SensorModule(); var bllSensor_Param = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); //机台参数树状结构 var vmJSTree = new List <VM_JSTree>(); //遍历机台 foreach (var machine in machineList) { var machineTreeId = "mach_" + machine.MachineID.ToString(); var machTree = new VM_JSTree { text = machine.MachineName, id = machineTreeId }; var sensorList = bllSensor.GetModelList("MachineID = " + machine.MachineID); machTree.children = new List <VM_JSTree>(); foreach (var sensor in sensorList) { var spList = bllSensor_Param.GetModelList("SensorModuleID = " + sensor.SensorModuleID); //遍历参数 foreach (var sp in spList) { var param = bllParam.GetModel(sp.ParameterCodeID.Value); machTree.children.Add( new VM_JSTree { text = param.ParameterName, id = machineTreeId + "_param_" + param.ParameterCodeID.ToString() }); } } vmJSTree.Add(machTree); } return(View(vmJSTree)); }
protected VM_Fusioncharts_MSLine getMachineCPKMSLineData(int machineID, MesWeb.Model.T_ParameterCode code, int dataCount = 12) { var msLine = new VM_Fusioncharts_MSLine(); var bllParamData = new MesWeb.BLL.T_CollectedDataParameters(); var bllSensorParamCode = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); var bllParamUnit = new MesWeb.BLL.T_ParameterUnit(); var bllParamSet = new MesWeb.BLL.T_ParametersCol(); var dataList = bllParamData.GetModelList("MachineID = " + machineID + "and ParameterCodeID = " + code.ParameterCodeID); var paramSetting = bllParamSet.GetModelList("ParameterCodeID = " + (int)code.ParameterCodeID).FirstOrDefault(); var paramUnit = bllParamUnit.GetModel((int)code.ParameterUnitID); var chart = new FusionChart { caption = code.ParameterName, numberSuffix = paramUnit.ParameterUnitSymbol, yAxisName = paramUnit.ParameterUnitName, xAxisName = "时间" }; var maxLine = new FusionLine { startvalue = paramSetting.ParametersColMaxiumValue, displayvalue = "最大值", }; var minLine = new FusionLine { startvalue = paramSetting.ParametersColMiniumValue, displayvalue = "最小值", }; var maxCPKLine = new FusionLine { startvalue = "2.0", displayvalue = "CPK最大值" }; var minCPKLine = new FusionLine { startvalue = "0.2", displayvalue = "CPK最小值" }; var trendline = new FusionTrendLine(); trendline.line.Add(maxLine); trendline.line.Add(minLine); trendline.line.Add(maxCPKLine); trendline.line.Add(minCPKLine); var cpkDataSet = new FusionMSDataset(); var sensorDataSet = new FusionMSDataset(); cpkDataSet.seriesname = "CPK"; sensorDataSet.seriesname = code.ParameterName; var categories = new FusionMSCategories(); for (int i = 0; i < dataList.Count; i++) { var data = dataList[i]; categories.category.Add(new FusionMSCategorie { label = data.CollectedTime.ToString().Split(' ')[1] }); sensorDataSet.data.Add(new MSlineValue { value = float.Parse(data.CollectedValue).ToString("0.00") }); cpkDataSet.data.Add(new MSlineValue { value = GetCPKValue(code.ParameterCodeID, machineID).ToString("0.00") }); } msLine.categories.Add(categories); msLine.chart = chart; msLine.trendlines.Add(trendline); msLine.dataset.Add(sensorDataSet); msLine.dataset.Add(cpkDataSet); return(msLine); }
public JsonResult GetSensorChartAction(int Id) { log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name); var retData = new VM_Result_Data(); var vmLineChart = new List <VM_Fusioncharts_Line>(); var vmMSLineChart = new List <VM_Fusioncharts_MSLine>(); var vmChartList = new List <Object>(); var bllParamCode = new MesWeb.BLL.T_ParameterCode(); var bllSensor_ParamCode = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); if (bllLayout.GetModel(Id).LayoutTypeID != (int)LAYOUT_TPYE.SENSOR_MODULE) { log.Error("施工数据出错,误请求!"); retData.Content = "施工数据出错,误请求!"; return(Json(retData)); } try { var sensorID = getTableRowID(Id); var machineID = getTableRowID(GetParentLayout(Id).LayoutPictureID); var paramCodeIDList = bllSensor_ParamCode.GetModelList("SensorModuleID = " + sensorID); foreach (var code in paramCodeIDList) { var paramCode = bllParamCode.GetModel((int)code.ParameterCodeID); if (paramCode == null) { log.Error("施工数据出错,误请求!"); retData.Content = "施工数据出错,误请求!"; return(Json(retData)); } //获取多曲线视图 //带 CPK if (Enum.IsDefined(typeof(SPEC_PARAM_CODE), paramCode.ParameterCodeID)) { vmMSLineChart.Add(getMachineCPKMSLineData(machineID, paramCode.ParameterCodeID)); //获取单曲线视图 } else if (paramCode.ParameterType == (int)PARAM_TYPE.CHART_MACHINE || paramCode.ParameterType == (int)PARAM_TYPE.CHART_SITE) { vmLineChart.Add(getSensorLineChart <MesWeb.BLL.T_CollectedDataParameters>(machineID, (int)code.ParameterCodeID)); } } } catch (Exception e) { log.Error("获取实时曲线数据失败!", e); retData.Content = "获取曲线数据失败!"; } retData.Content = 0; if (vmLineChart.Count > 0) { vmChartList.Add(vmLineChart); retData.Code = RESULT_CODE.OK; retData.Content = RESULT_CHART_TYPE.LINE; } if (vmMSLineChart.Count > 0) { vmChartList.Add(vmMSLineChart); retData.Code = RESULT_CODE.OK; retData.Content = RESULT_CHART_TYPE.MSLINE + (int)retData.Content; } retData.Appendix = vmChartList; return(Json(retData)); }
public JsonResult GetParamChartProperties(int layoutId) { var retData = new VM_Result_Data(); log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name); var properties = new List <VM_Highcharts_Property>(); var bllParamCode = new MesWeb.BLL.T_ParameterCode(); var bllSensor_ParamCode = new MesWeb.BLL.T_SensorModule_T_ParameterCode(); var bllSensor = new MesWeb.BLL.T_SensorModule(); var bllUnit = new MesWeb.BLL.T_ParameterUnit(); var bllParamCol = new MesWeb.BLL.T_ParametersCol(); try { var sensroLayout = bllLayout.GetModel(layoutId); if (sensroLayout.LayoutTypeID != (int)LAYOUT_TPYE.SENSOR_MODULE) { retData.Content = "施工有误,请联系管理员"; log.Error("传感器模块参数错误"); return(Json(retData)); } var machLayout = GetParentLayout(layoutId); var machineId = machLayout.TableRowID.Value; var sensor = bllSensor.GetModel(sensroLayout.TableRowID.Value); var sensor_codes = bllSensor_ParamCode.GetModelList("SensorModuleID = " + sensor.SensorModuleID); foreach (var sc in sensor_codes) { var property = new VM_Highcharts_Property(); //获取参数 var code = bllParamCode.GetModel(sc.ParameterCodeID.Value); //是否能够画曲线 property.CanDrawChart = canDrawChart(code.ParameterCodeID); //曲线类型,将drawType为一样的曲线画在同一图上 property.drawType = code.ParameterType; property.Title = code.ParameterName; property.ParamCodeId = code.ParameterCodeID; //获取参数单位 if (code.ParameterUnitID.HasValue) { var unit = bllUnit.GetModel(code.ParameterUnitID.Value); if (unit != null) { property.Symbol = unit.ParameterUnitSymbol; } } else { property.Symbol = "未设置"; } //获取参数最值 var paramCol = bllParamCol.GetModelList("ParameterCodeID = " + code.ParameterCodeID + "AND MachineID = " + machineId).FirstOrDefault(); if (paramCol != null) { property.MaxValue = float.Parse(paramCol.ParametersColMaxiumValue); property.MinValue = float.Parse(paramCol.ParametersColMiniumValue); } //是否带有 CPK if (Enum.IsDefined(typeof(CPK_PARAM_CODE), sc.ParameterCodeID)) { property.IsCPK = true; } else { property.IsCPK = false; } properties.Add(property); } if (properties.Count > 0) { retData.Code = RESULT_CODE.OK; //每参数曲线基本值(最值,标题,单位等等) //每个模块有多个参数,所以这里是一个properties集合 retData.Appendix = properties; //给每个模块绑定传感器编号,便于接受485报警 retData.Content = sensor.SerialNum; } } catch (Exception e) { log.Error("获取模块参数失败", e); retData.Content = "获取模块参数失败"; } return(Json(retData)); }