示例#1
0
        private bool deleteProcLayout(int layoutID)
        {
            return(bllLayout.Delete(layoutID));

            bool isDel          = false;
            var  procLayout     = bllLayout.GetModel(layoutID);
            var  procLayoutInfo = GetLayoutInfo(procLayout);

            try {
                var bllMachine = new MesWeb.BLL.T_Machine();
                foreach (var machineItem in procLayoutInfo.SubSpotItems)
                {
                    if (machineItem.LayoutTypeID == (int)LAYOUT_TPYE.MACHINE)
                    {
                        foreach (var sensorItem in GetLayoutInfo(machineItem.LayoutPictureID).SubSpotItems)
                        {
                            if (sensorItem.LayoutTypeID == (int?)LAYOUT_TPYE.SENSOR_MODULE)
                            {
                                isDel = deleteSensorOnly(sensorItem.LayoutPictureID);
                            }
                        }
                        isDel = deleteMachineOnly(machineItem.LayoutPictureID);
                    }

                    isDel = deleteProcOnly(layoutID);
                }
            } catch (Exception e) {
                isDel = false;
                throw e;
            }
            return(isDel);
        }
示例#2
0
        public JsonResult AddMachineLayoutAction(VM_AddMachineAdmin machineAdmin)
        {
            log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name);
            var retData = new VM_Result_Data();

            var machine       = machineAdmin.Machine;
            var machineLayout = machineAdmin.MachineLayout;

            if (machine.MachineName != null)
            {
                try {
                    var bllLayoutType = new MesWeb.BLL.T_LayoutType();
                    var layoutType    = bllLayoutType.GetModelList("TableName = 'T_Machine'").FirstOrDefault();
                    if (layoutType.LayoutTtypeID > 0)
                    {
                        var bllMachine = new MesWeb.BLL.T_Machine();
                        var machindID  = bllMachine.Add(machine);

                        //若工序有几台图片,则共用
                        var sameProcMach = bllLayout.GetModelList("ParentLayoutPictureID = " + machineLayout.ParentLayoutPictureID);
                        if (sameProcMach != null)
                        {
                            var containPicMach = (from m in sameProcMach where m.PicUrl != null select m).FirstOrDefault();
                            if (containPicMach != null)
                            {
                                machineLayout.PicUrl    = containPicMach.PicUrl;
                                machineLayout.PicHeight = containPicMach.PicHeight;
                                machineLayout.PicWidth  = containPicMach.PicWidth;
                            }
                        }

                        machineLayout.LayoutTypeID = layoutType.LayoutTtypeID;
                        machineLayout.TableRowID   = machindID;



                        bllLayout.Add(machineLayout);
                        retData.Code    = RESULT_CODE.OK;
                        retData.Content = "添加机台成功!";
                    }
                    else
                    {
                        log.Error("未找到布局关系 T_Machine ");
                    }
                } catch (Exception e) {
                    log.Fatal("数据库发生错误!", e);
                }
            }
            else
            {
                log.Warning("添加机台名称不能为空");
                retData.Content = "添加机台名称不能为空";
            }


            return(Json(retData));
        }
示例#3
0
        /// <summary>
        /// 更新工序状态
        /// </summary>
        private void updateProcState()
        {
            var procLayoutList = bllLayout.GetModelList("LayoutTypeID = " + (int)LAYOUT_TPYE.WORK_AREA);
            var bllMachine     = new MesWeb.BLL.T_Machine();

            foreach (var procLayout in procLayoutList)
            {
                var machLayoutList = bllLayout.GetModelList("ParentLayoutPictureID = " + procLayout.LayoutPictureID + " AND " + "LayoutTypeID = " + (int)LAYOUT_TPYE.MACHINE);
                procLayout.Message = "";
                foreach (var machLayout in machLayoutList)
                {
                    var machine = bllMachine.GetModel(machLayout.TableRowID.Value);
                    procLayout.Message += machine.MachineName + ":" + mapStateMeaning(machLayout.State.Value) + "<br/>";

                    if (machine == null)
                    {
                        continue;
                    }
                    //procLayout.Message += machine.MachineName + ":" + machLayout.State;
                    //有机台错误状态
                    if (machLayout.State == (int)LAYOUT_STATE.ERROR)
                    {
                        procLayout.State = (int)LAYOUT_STATE.ERROR;

                        break;
                    }
                    //有机台离线状态
                    else if (machLayout.State == (int)LAYOUT_STATE.OFFLINE)
                    {
                        procLayout.State = (int)LAYOUT_STATE.OFFLINE;
                        continue;
                    }
                    //有机台警告状态
                    else if (machLayout.State == (int)LAYOUT_STATE.WARNING && procLayout.State != (int)LAYOUT_STATE.OFFLINE)
                    {
                        procLayout.State = (int)LAYOUT_STATE.WARNING;
                        continue;
                        //正常状态
                    }
                    else if (procLayout.State != (int)LAYOUT_STATE.WARNING)
                    {
                        procLayout.State = (int)LAYOUT_STATE.NORMAL;
                    }
                }
                bllLayout.Update(procLayout);
            }
        }
示例#4
0
        /// <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
                                });
                            }
                        }
                    }
                }
            }
        }
示例#5
0
        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));
        }
示例#6
0
        public ActionResult MachineLayout(int Id)
        {
            log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name);
            var bllMachine = new MesWeb.BLL.T_Machine();
            var machine    = bllMachine.GetModel(Id);

            try {
                if (machine != null)
                {
                    var machineLayout = bllLayout.GetModelList("LayoutTypeID = " + (int)LAYOUT_TPYE.MACHINE + " AND " + " TableRowID = " + Id).FirstOrDefault();
                    if (machineLayout != null)
                    {
                        //取出轴号
                        string axisNumStr = (string)TempData[QualityTraceController.SERACH_ASIX];
                        TempData[QualityTraceController.SERACH_ASIX] = axisNumStr;
                        //TODO 临时将备注替换为轴号
                        machineLayout.Remark = axisNumStr;
                        var layoutInfo = new VM_LayoutPicture(machineLayout);
                        if (!string.IsNullOrEmpty(machineLayout.PicUrl))
                        {
                            layoutInfo = new VM_LayoutPicture(machineLayout);
                            layoutInfo = GetLayoutInfo(machineLayout);
                        }
                        else
                        {
                            log.Error("机台信息为空");
                            VM_Error_Info info = new VM_Error_Info {
                                Title = "施工错误", ErrorMessage = "机台信息为空,请联系管理人员", ReturnUrl = "/Admin/Home", ReturnName = "主页"
                            };
                            return(RedirectToAction(ErrorManager.SystemError, ErrorManager.ErrorController, info));
                        }
                        return(View(layoutInfo));
                    }
                }
            } catch (Exception e) {
                log.Error("车间未施工,请联系施工人员", e);
            }
            log.Error("车间未施工,请联系施工人员");
            var errorInfo = new VM_Error_Info {
                Title = "施工错误", ErrorMessage = "车间未施工,请联系施工人员"
            };

            return(RedirectToAction(ErrorManager.SystemError, ErrorManager.ErrorController, errorInfo));
        }
示例#7
0
        public string InitAllSensors(int machineId, string connectionId)
        {
            // 保存连接信息
            if (!AddClient(machineId, connectionId))
            {
                return("connected server faild");
            }
            string curAxisNum = "";
            string curMeters  = "";

            try {
                initDicCache(machineId, out curAxisNum, out curMeters);
            } catch (Exception e) {
                Debug.Write(e.ToString());
            }
            var bllMach            = new MesWeb.BLL.T_Machine();
            var machine            = bllMach.GetModel(machineId);
            VM_MachineProperty pty = null;

            try {
                //缓存中数据存在,则从缓存中读取
                if (curMachPtyDic.TryGetValue(machineId, out pty))
                {
                }
                else
                {
                    pty               = new VM_MachineProperty();
                    pty.MachineName   = machine.MachineName;
                    pty.CurrentMeters = curMeters;
                    pty.AxisNum       = curAxisNum;
                    pty.ODMax         = decimal.MinValue;
                    pty.ODMin         = decimal.MaxValue;
                    //添加到缓存中去
                    curMachPtyDic.TryAdd(machineId, pty);
                }
            } catch (Exception e) {
                log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name);
                log.Error("获取机台属性失败", e);
            }


            return("axis: " + curAxisNum + " meters: " + curMeters);
        }
示例#8
0
        public JsonResult GetMachineStats()
        {
            var machStats     = new VM_MachineStats();
            var bllColData    = new MesWeb.BLL.T_CollectedDataParameters();
            var bllMachine    = new MesWeb.BLL.T_Machine();
            var speedDataList = bllColData.GetModelList("ParameterCodeID " + (int)MACHINE_PARAM_CODE.SCREW_SPEED);

            foreach (var machine in speedDataList)
            {
                if (int.Parse(machine.CollectedValue) > 0)
                {
                    ++machStats.BootStats;
                }
                else
                {
                    ++machStats.CloseStats;
                }
            }
            return(Json(machStats));
        }
示例#9
0
        public JsonResult GetTraceDataAction(string axisNumStr)
        {
            var       retData        = new VM_Result_Data();
            var       vmJSMind       = new VM_JSMind();
            var       bllCodeUsed    = new MesWeb.BLL.T_CodeUsed();
            var       bllMachine     = new MesWeb.BLL.T_Machine();
            var       bllMachineType = new MesWeb.BLL.T_MachineType();
            VM_JSMind vmJsMind       = new VM_JSMind();

            retData.Appendix = genMindStruct(axisNumStr.Trim(), "root", ref vmJsMind, isRoot: true);
            if (vmJsMind.data.Count > 0)
            {
                retData.Code    = RESULT_CODE.OK;
                retData.Content = "查询成功";
            }
            else
            {
                retData.Content = "查询失败";
            }

            return(Json(retData));
        }
示例#10
0
        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));
        }
示例#11
0
        /////////////////////
        protected VM_MachineProperty GetMachineProperty(int Id)
        {
            log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name);

            var machLayout = bllLayout.GetModel(Id);
            var machPty    = new VM_MachineProperty();

            if (machLayout != null)
            {
                if (machLayout.LayoutTypeID == (int)LAYOUT_TPYE.MACHINE)
                {
                    try {
                        var bllMach     = new MesWeb.BLL.T_Machine();
                        var bllCurData  = new MesWeb.BLL.T_CurrentData();
                        var bllEmployee = new MesWeb.BLL.T_Employee();
                        var bllSpec     = new MesWeb.BLL.T_Specification();
                        var bllColData  = new MesWeb.BLL.T_CollectedDataParameters();

                        var mach = bllMach.GetModel((int)machLayout.TableRowID);
                        if (mach == null)
                        {
                            return(null);
                        }
                        var curData = bllCurData.GetModelList("MachineID = " + mach.MachineID).FirstOrDefault();
                        if (curData == null)
                        {
                            return(null);
                        }
                        ///  var emmployee = bllEmployee.GetModel((int)curData.EmployeeID_Main);
                        var spec         = bllSpec.GetModel((int)curData.SpecificationID);
                        var curMeters    = bllColData.GetModelList("MachineID = " + mach.MachineID + " AND  ParameterCodeID = " + (int)SPEC_PARAM_CODE.METERS_COUNT_FACT).FirstOrDefault().CollectedValue;
                        var materialRFID = bllColData.GetModelList("MachineID = " + mach.MachineID + " AND  ParameterCodeID = " + (int)SPEC_PARAM_CODE.MATERIAL_RFID).FirstOrDefault().CollectedValue;
                        var linearSpeed  = bllColData.GetModelList("MachineID = " + mach.MachineID + " AND  ParameterCodeID = " + (int)SPEC_PARAM_CODE.LINEAR_SPEED).FirstOrDefault().CollectedValue;

                        machPty.MachineName = mach.MachineName;
                        machPty.TaskNum     = "4000";
                        machPty.AxisNum     = curData.Axis_No;
                        //   machPty.ManuMan = emmployee.EmployeeName;
                        machPty.ManuMan       = "张三";
                        machPty.SpecNum       = spec.SpecificationName;
                        machPty.ODMax         = spec.ODMax;
                        machPty.ODMin         = spec.ODMin;
                        machPty.SpecColor     = spec.SpecificationColor;
                        machPty.UnitPrice     = spec.SpecificationPrice;
                        machPty.MaterialRFID  = materialRFID;
                        machPty.CurrentMeters = curMeters;
                        machPty.BatchNum      = "Na";
                        machPty.ContUnit      = "Na";
                        machPty.JobNum        = "Na";
                        machPty.EstTime       = ((40000 - double.Parse(curMeters)) / double.Parse(linearSpeed) / 60).ToString("0.00") + "分钟";
                        machPty.ReachedNum    = (double.Parse(curMeters) * 100 / 4000 + "%").ToString();
                    } catch (Exception e) {
                        log.Error("数据库操作失败", e);
                        return(null);
                    }
                }
                else
                {
                    log.Error("该标志不属于机台");
                    return(null);
                }
            }
            else
            {
                log.Error("查找机台失败!");
                return(null);
            }
            return(machPty);
        }
示例#12
0
        public VM_JSMind genMindStruct(string axisNumStr, string id, ref VM_JSMind mind, string parentId = "", bool isRoot = false)
        {
            if (string.IsNullOrEmpty(axisNumStr) || !HisMain.IsAxisNum(axisNumStr))
            {
                return(null);
            }
            var     bllMachine     = new MesWeb.BLL.T_Machine();
            var     bllMachineType = new MesWeb.BLL.T_MachineType();
            var     bllEmployee    = new MesWeb.BLL.T_Employee();
            var     bllMaterial    = new MesWeb.BLL.T_MaterialOutput();
            HisMain axisNum        = new HisMain();

            if (axisNumStr.StartsWith("ZD"))
            {
                axisNum.Year          = axisNumStr.Substring(2, 4);
                axisNum.Month         = axisNumStr.Substring(6, 2);
                axisNum.MachineTypeID = "5";
            }
            else if (axisNumStr.StartsWith("CP"))
            {
                axisNum = new HisMain(axisNumStr);
            }
            var hisTabName = "HISMAIN" + axisNum.Year + axisNum.Month + axisNum.MachineTypeID.Trim();
            var bllHisMain = new MesWeb.BLL.T_HisMain(hisTabName);
            var hisMain    = bllHisMain.GetModelList("Axis_No like '%" + axisNumStr + "%'").FirstOrDefault();

            if (hisMain == null)
            {
                return(null);
            }
            var machineType = bllMachineType.GetModel(int.Parse(axisNum.MachineTypeID));

            MesWeb.Model.T_MaterialOutput material = null;
            if (hisMain != null)
            {
                material = bllMaterial.GetModelList("MaterialRFID = '" + hisMain.MaterialRFID + "'").FirstOrDefault();
            }
            if (material != null)
            {
                hisMain.SpecColor = material.Color;
                hisMain.SpecName  = material.MaterialType;
                hisMain.Supplier  = material.SupplyCompany;
                hisMain.BatchNo   = material.BatchNo;
            }


            var employeeCode = hisMain.EmployeeID_Main;
            var employee     = bllEmployee.GetModelList("EmployeeCode = '" + employeeCode + "'").FirstOrDefault();

            if (employee != null)
            {
                hisMain.EmployeeID_Main = employee.EmployeeName;
            }
            var machine = bllMachine.GetModel(hisMain.MachineID.Value);

            var node = new JSMind_Data();


            node.topic    = machineType.MachineType + machine.MachineName;
            node.id       = id;
            node.parentid = parentId;
            node.isroot   = isRoot;
            node.data     = hisMain;
            mind.data.Add(node);
            if (hisMain != null)
            {
                var startAxisNums = ("" + hisMain.Start_Axis_No).Split(',');
                foreach (var stNum in startAxisNums)
                {
                    genMindStruct(stNum, stNum, ref mind, id);
                }
            }

            return(mind);
        }
示例#13
0
        public JsonResult GetProcDetail(VM_ProcDetail procDetail)
        {
            var retData = new VM_Result_Data();

            if (procDetail == null)
            {
                procDetail = new VM_ProcDetail();
            }
            //procDetail.CertProduct = "<a href='javascript:void(0)' onclick='showCertProduct()'>成品证书</a> <a href='javascript:void(0)' onclick='showCertPlastic()'>塑料证书</a>";

            var procDetailList = new List <VM_ProcDetail>();
            var bllMachine     = new MesWeb.BLL.T_Machine();
            var bllEmp         = new MesWeb.BLL.T_Employee();
            var bllSpec        = new MesWeb.BLL.T_Specification();
            var bllAxis        = new MesWeb.BLL.T_Axis();

            try
            {
                if (!string.IsNullOrEmpty(procDetail.BatchNo))
                {
                    var searchCond = new List <string>();
                    searchCond.Add(procDetail.BatchNo);
                    try
                    {
                        var gumId = MaterialController.SearchReportId(searchCond, MaterialController.gumReportType);
                        procDetail.CertPlastic = "<a  href='javascript: void(0)' onclick='showReportPlastic(this)' id='" + gumId + "'>胶料表</a>";
                    }
                    catch
                    {
                    }
                }


                try
                {
                    //找到历史数据表
                    HisData hisData = new HisData(procDetail.Axis_No);
                    //查询OD的最值
                    var hisDs = DbHelperSQL.Query("SELECT MAX(CollectedValue) AS Max,MIN(CollectedValue) AS Min" +
                                                  " FROM  " + hisData.TableName +
                                                  " WHERE(ParameterCodeID = " + (int)SPEC_PARAM_CODE.OUTTER_OD + ") AND(Axis_No = '" + hisData.AxisNumStr + "')" +
                                                  " GROUP BY Axis_No");

                    var hisRow = hisDs.Tables[0].Rows[0];
                    var odMax  = hisRow["max"].ToString();
                    var odMin  = hisRow["min"].ToString();
                    procDetail.ODMax = odMax;
                    procDetail.ODMin = odMin;
                    var axis = new HisMain(procDetail.Axis_No);

                    procDetail.GeneratorTime = axis.Year + "-" + axis.Month + "-" + axis.Day;
                }
                catch
                {
                }

                //获取回溯信息
                var axisInfo = bllAxis.GetModelList("Axis_No = '" + procDetail.Axis_No + "'").FirstOrDefault();
                if (axisInfo != null)
                {
                    procDetail.Comment = axisInfo.comment;
                }
                //机台
                var machine = bllMachine.GetModel((int)procDetail.MachineID);


                if (machine != null)
                {
                    //只有挤绝缘和挤护套有数据
                    if (machine.MachineTypeID == 2 || machine.MachineTypeID == 5)
                    {
                        var machineName = machine.MachineName ?? "";
                        var axisColor   = procDetail.SpecColor ?? "";
                        var printCode   = procDetail.Printcode ?? "";
                        procDetail.MachineName = "<a  href='javascript: void(0)' machineType='" + machine.MachineTypeID + "'  employee='" + procDetail.EmployeeName + "'  printCode='" + printCode + "' axisColor='" + axisColor + "'  machineName='" + machineName + "'   axisNum='" + procDetail.Axis_No + "'  onclick='viewHisMachine(this)' machineId='" + machine.MachineID + "'>" + machine.MachineName + "</a>";
                    }
                    else
                    {
                        procDetail.MachineName = machine.MachineName;
                    }
                }
                retData.Code          = RESULT_CODE.OK;
                TempData[SERACH_ASIX] = procDetail.Axis_No;
            }
            catch (Exception e)
            {
                retData.Content  = "查询失败,请联系管理员";
                retData.Code     = RESULT_CODE.OK;
                retData.Appendix = procDetail;
            }
            procDetailList.Add(procDetail);
            retData.Appendix = procDetailList;

            return(Json(retData));
        }
示例#14
0
        public JsonResult GetAxisDetailAction(string axisNumStr)
        {
            log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name);

            var retData        = new VM_Result_Data();
            var procDetailList = new List <VM_ProcDetail>();
            var hisData        = new VM_ProcDetail();

            axisNumStr = axisNumStr.Trim();
            HisMain axisNum = new HisMain(axisNumStr);
            var     tabName = axisNum.GetHisDataTableName();

            if (string.IsNullOrEmpty(tabName))
            {
                retData.Content = "轴号有误";
                return(Json(retData));
            }
            try {
                var bllHisData = new MesWeb.BLL.T_HisMain(tabName);
                var findData   = bllHisData.GetModelList("Axis_No = '" + axisNumStr + "'").FirstOrDefault();
                hisData = new VM_ProcDetail {
                    Axis_No              = findData.Axis_No,
                    CurrentDataID        = findData.CurrentDataID,
                    SpecificationID      = findData.SpecificationID,
                    MachineID            = findData.MachineID,
                    MachineTypeID        = findData.MachineTypeID,
                    EmployeeID_Main      = findData.EmployeeID_Main,
                    EmployeeID_Assistant = findData.EmployeeID_Assistant,
                    Start_Axis_No        = findData.Start_Axis_No,
                    Printcode            = findData.Printcode
                };

                var specID      = hisData.SpecificationID;
                var bllMachine  = new MesWeb.BLL.T_Machine();
                var bllEmp      = new MesWeb.BLL.T_Employee();
                var bllSpec     = new MesWeb.BLL.T_Specification();
                var bllCodeUsed = new MesWeb.BLL.T_CodeUsed();
                var bllLayout   = new MesWeb.BLL.T_LayoutPicture();
                var spec        = bllSpec.GetModel((int)specID);
                hisData.SpecName    = spec.SpecificationName;
                hisData.ODMax       = spec.ODMax.ToString();
                hisData.ODMin       = spec.ODMin.ToString();
                hisData.SpecColor   = spec.SpecificationColor;
                hisData.RolledYield = "100%";

                hisData.GeneratorTime = bllCodeUsed.GetModelList("Axis_No = '" + hisData.Axis_No + "'").FirstOrDefault().GeneratorTime.Value.ToShortDateString();
                var machine       = bllMachine.GetModel((int)hisData.MachineID);
                var machineLayout = bllLayout.GetModelList("LayoutTypeID = " + 1).Find(s => { return(s.TableRowID == machine.MachineID); });
                //   hisData.EmployeeName = bllEmp.GetModel((int)hisData.EmployeeID_Main).EmployeeName;
                hisData.EmployeeName = hisData.EmployeeID_Main;
                var tableName = axisNum.Year + axisNum.Month + ((int)(machine.MachineTypeID)).ToString("00");
                hisData.MachineName = "<a href='/HistoryQuery/HistoryMachine/" + tableName + "," + axisNumStr + "'>" + machine.MachineName + "</a>";
                retData.Code        = RESULT_CODE.OK;
            } catch (Exception e) {
                log.Error("查询轴号信息失败", e);
                retData.Content = "查询失败,请联系管理员";
            }
            procDetailList.Add(hisData);
            retData.Appendix = procDetailList;
            return(Json(retData));
        }
示例#15
0
        /// <summary>
        /// 初始化字典缓存
        /// </summary>
        /// <param name="machineId"></param>
        /// <param name="axisNum"></param>
        /// <param name="meters"></param>
        private void initDicCache(int machineId, out string axisNum, out string meters)
        {
            var bllMachine = new MesWeb.BLL.T_Machine();
            var machine    = bllMachine.GetModel(machineId);

            //历史采集数据表
            var hisDatablaName = HisData.GetHisDataTableName(DateTime.Now, machine.MachineTypeID.Value);
            var bllHisData     = new MesWeb.BLL.T_HisData(hisDatablaName);
            //历史轴号表
            var hisMainTableName = HisMain.GetHisMainTableName(DateTime.Now, machine.MachineTypeID.Value);
            var bllHisMain       = new MesWeb.BLL.T_HisMain(hisMainTableName);

            //缓存中没有该机台的轴号
            if (!curAxisNumDic.TryGetValue(machineId, out axisNum))
            {
                //从当月历史数据更新缓存
                var hisMain = bllHisMain.GetModelList("MachineID = " + machineId).FirstOrDefault();
                //当月数据存在,则更新缓存
                if (hisMain != null)
                {
                    axisNum = hisMain.Axis_No;
                    curAxisNumDic.AddOrUpdate(machineId, hisMain.Axis_No,
                                              (key, oldValue) => { return(hisMain.Axis_No); });
                }
                else
                {
                    //当月数据不存在,则从上月数据查找 TODO
                }
            }

            //缓存中没有当前米数值
            if (!curMetersDic.TryGetValue(machineId, out meters))
            {
                //从当月历史数据更新缓存
                //var data = bllHisData.GetModelList("ParameterCodeID = " + (int)SPEC_PARAM_CODE.METERS_COUNT + " group by CollectedTime desc").FirstOrDefault();
                var ds1 = DbHelperSQL.Query("select top 1 * from "
                                            + bllHisData.TabName + " where ParameterCodeID = "
                                            + (int)SPEC_PARAM_CODE.METERS_COUNT
                                            + " AND machineID = " + machineId
                                            + " order by CollectedTime desc");
                //找到数据库最后一条数据
                var recentData = bllHisData.DataTableToList(ds1.Tables[0]).FirstOrDefault();
                //当月数据存在,则更新缓存
                if (recentData != null)
                {
                    //获取数据的轴号
                    var axisNo = recentData.Axis_No;
                    //找到该轴号的米数的最大值
                    var ds2 = DbHelperSQL.
                              Query("SELECT   MAX(CollectedValue) AS CollectedValue, CollectedTime, MachineID, ParameterCodeID, Axis_No" +
                                    " FROM  " + bllHisData.TabName +
                                    " WHERE (ParameterCodeID = " + (int)SPEC_PARAM_CODE.METERS_COUNT + ") AND (Axis_No = '" + axisNo + "')" +
                                    " GROUP BY MachineID,Axis_No,CollectedTime,ParameterCodeID");
                    var row      = ds2.Tables[0].Rows[0];
                    var maxMeter = row["CollectedValue"].ToString();
                    meters = maxMeter;
                    //更新缓存
                    curMetersDic.AddOrUpdate(machineId, maxMeter, (key, oldValue) => {
                        return(maxMeter);
                    });
                }
                else
                {
                    //当月数据不存在,则从上月数据查找
                }
            }
        }