/// <summary> /// 预占资产 /// </summary> /// <returns></returns> public ActionResult PreholdAsset() { string dbpath = HttpContext.Server.MapPath("~/App_Data/DB/demo.db"); string orderNo = Request.QueryString["OrderNo"]; string cabinetNo = Request.QueryString["CabinetNo"]; string layerCount = Request.QueryString["CabinetLayer"]; SqliteHelper.BLL.Cabinet cabintbll = new SqliteHelper.BLL.Cabinet(dbpath); SqliteHelper.BLL.Asset assetbll = new SqliteHelper.BLL.Asset(dbpath); //获取待预占的资产 var assetModel = assetbll.GetModel(int.Parse(orderNo)); var assetListOfCabinet = assetbll.GetModelList(string.Format("CabinetNo='{0}' and State in ('1','2')", cabinetNo)); assetModel.State = "1"; assetModel.StartLayer = int.Parse(layerCount); assetbll.Update(assetModel); //预占完了之后,插入一条changelog SqliteHelper.BLL.ChangeLog changelogBll = new SqliteHelper.BLL.ChangeLog(dbpath); var model = new SqliteHelper.Model.ChangeLog(); model.AssetNo = assetModel.OrderNo; model.CabinetNo = 1; model.CreateTime = DateTime.Now; model.OperationDetail = string.Format("{0},{1}预占到第{2}U", assetModel.Type, assetModel.BM, layerCount); model.OperationType = "1"; changelogBll.Add(model); return(Content("1")); }
public ActionResult GetCabinetModel() { string dbpath = HttpContext.Server.MapPath("~/App_Data/DB/demo.db"); SqliteHelper.BLL.Cabinet cabintbll = new SqliteHelper.BLL.Cabinet(dbpath); var cabinetModel = cabintbll.GetModel(1); JsonResult js = new JsonResult(); js = Json(cabinetModel, JsonRequestBehavior.AllowGet); return(js); }
/// <summary> /// 获取可用层位 /// </summary> /// <returns></returns> public ActionResult GetUsefulLayer() { string dbpath = HttpContext.Server.MapPath("~/App_Data/DB/demo.db"); string cabinetNo = Request.QueryString["CabinetNo"]; //首先查询对应机柜内的资产情况,已经放了资产的,不能继续存放 SqliteHelper.BLL.Cabinet cabintbll = new SqliteHelper.BLL.Cabinet(dbpath); SqliteHelper.BLL.Asset assetbll = new SqliteHelper.BLL.Asset(dbpath); var assetListOfCabinet = assetbll.GetModelList(string.Format("CabinetNo='{0}' and State in ('1','2')", cabinetNo)); Dictionary <int, bool> cabinetLayerStateDic = new Dictionary <int, bool>(); //先初始化cabinetLayerStateDic for (int i = 0; i < 42; i++) { cabinetLayerStateDic[i] = false; } foreach (var asset in assetListOfCabinet) { var layEnd = (int)asset.StartLayer + (int)asset.UsedLayer - 1; for (int i = ((int)asset.StartLayer); i <= layEnd; i++) { cabinetLayerStateDic[i - 1] = true; } } List <int> resultLayer = new List <int>(); foreach (var key in cabinetLayerStateDic.Keys) { if (!cabinetLayerStateDic[key]) { resultLayer.Add(key + 1); } } JsonResult js = Json(resultLayer, JsonRequestBehavior.AllowGet); return(js); }
/// <summary> /// 获取机柜的容量信息 /// </summary> /// <returns></returns> public ActionResult GetCapacityInfo() { CapacityInfo capacityInfo = new CapacityInfo(); JsonResult js = new JsonResult(); string dbpath = HttpContext.Server.MapPath("~/App_Data/DB/demo.db"); SqliteHelper.BLL.Cabinet cabintbll = new SqliteHelper.BLL.Cabinet(dbpath); var cabinetModel = cabintbll.GetModel(1); SqliteHelper.BLL.Asset assetbll = new SqliteHelper.BLL.Asset(dbpath); var assetList = assetbll.GetModelList(string.Format("cabinetNo=1 and state in ('1','2')")); //层位 var usedLayer = assetList.Sum(m => m.UsedLayer); double doubleRate = 100 * usedLayer.Value / cabinetModel.Space.Value; capacityInfo.progress1Content = string.Format("{0}% ({1}/{2})", Math.Round(doubleRate, 2), usedLayer, cabinetModel.Space); capacityInfo.progress1 = string.Format("{0}%", Math.Round(doubleRate, 2)); if (doubleRate < 30) { capacityInfo.ColorStyle1 = "progress-bar progress-bar-success progress-bar-striped"; } else if (doubleRate < 60) { capacityInfo.ColorStyle1 = "progress-bar progress-bar-info progress-bar-striped"; } else if (doubleRate < 90) { capacityInfo.ColorStyle1 = "progress-bar progress-bar-warning progress-bar-striped"; } else { capacityInfo.ColorStyle1 = "progress-bar progress-bar-danger progress-bar-striped"; } //电力 var usedPower = assetList.Sum(m => m.UsedPower); doubleRate = Convert.ToDouble(100 * usedPower.Value / cabinetModel.Power.Value); capacityInfo.progress2Content = string.Format("{0}% ({1}/{2})", Math.Round(doubleRate, 2), usedPower, cabinetModel.Power); capacityInfo.progress2 = string.Format("{0}%", Math.Round(doubleRate, 2)); if (doubleRate < 30) { capacityInfo.ColorStyle2 = "progress-bar progress-bar-success progress-bar-striped"; } else if (doubleRate < 60) { capacityInfo.ColorStyle2 = "progress-bar progress-bar-info progress-bar-striped"; } else if (doubleRate < 90) { capacityInfo.ColorStyle2 = "progress-bar progress-bar-warning progress-bar-striped"; } else { capacityInfo.ColorStyle2 = "progress-bar progress-bar-danger progress-bar-striped"; } //承重 var usedWeight = assetList.Sum(m => m.UsedWeight); doubleRate = Convert.ToDouble(100 * usedWeight.Value / cabinetModel.Weight.Value); capacityInfo.progress3Content = string.Format("{0}% ({1}/{2})", Math.Round(doubleRate, 2), usedWeight, cabinetModel.Weight); capacityInfo.progress3 = string.Format("{0}%", Math.Round(doubleRate, 2)); if (doubleRate < 30) { capacityInfo.ColorStyle3 = "progress-bar progress-bar-success progress-bar-striped"; } else if (doubleRate < 60) { capacityInfo.ColorStyle3 = "progress-bar progress-bar-info progress-bar-striped"; } else if (doubleRate < 90) { capacityInfo.ColorStyle3 = "progress-bar progress-bar-warning progress-bar-striped"; } else { capacityInfo.ColorStyle3 = "progress-bar progress-bar-danger progress-bar-striped"; } //电口 var usedPowerPort = assetList.Sum(m => m.UsedPowerPort); doubleRate = Convert.ToDouble(100 * usedPowerPort.Value / cabinetModel.PowerPort.Value); capacityInfo.progress4Content = string.Format("{0}% ({1}/{2})", Math.Round(doubleRate, 2), usedPowerPort, cabinetModel.PowerPort); capacityInfo.progress4 = string.Format("{0}%", Math.Round(doubleRate, 2)); if (doubleRate < 30) { capacityInfo.ColorStyle4 = "progress-bar progress-bar-success progress-bar-striped"; } else if (doubleRate < 60) { capacityInfo.ColorStyle4 = "progress-bar progress-bar-info progress-bar-striped"; } else if (doubleRate < 90) { capacityInfo.ColorStyle4 = "progress-bar progress-bar-warning progress-bar-striped"; } else { capacityInfo.ColorStyle4 = "progress-bar progress-bar-danger progress-bar-striped"; } //网口 var usedNetPort = assetList.Sum(m => m.UsedNetPort); doubleRate = Convert.ToDouble(100 * usedNetPort.Value / cabinetModel.NetPort.Value); capacityInfo.progress5Content = string.Format("{0}% ({1}/{2})", Math.Round(doubleRate, 2), usedNetPort, cabinetModel.NetPort); capacityInfo.progress5 = string.Format("{0}%", Math.Round(doubleRate, 2)); if (doubleRate < 30) { capacityInfo.ColorStyle5 = "progress-bar progress-bar-success progress-bar-striped"; } else if (doubleRate < 60) { capacityInfo.ColorStyle5 = "progress-bar progress-bar-info progress-bar-striped"; } else if (doubleRate < 90) { capacityInfo.ColorStyle5 = "progress-bar progress-bar-warning progress-bar-striped"; } else { capacityInfo.ColorStyle5 = "progress-bar progress-bar-danger progress-bar-striped"; } js = Json(capacityInfo, JsonRequestBehavior.AllowGet); return(js); }