/// <summary> /// 获取资产盘点列表 /// </summary> /// <returns></returns> public ActionResult GetAssetInventory() { string dbpath = HttpContext.Server.MapPath("~/App_Data/DB/demo.db"); int page = 1; //页码 int rows = 10; //每页显示行数 //获取分页信息 if (Request.QueryString["offset"] != null) { page = Convert.ToInt32(Request.QueryString["offset"].ToString()); } if (Request.QueryString["pageSize"] != null) { rows = Convert.ToInt32(Request.QueryString["pageSize"].ToString()); } if (rows > 0) { page = page / rows + 1; } SqliteHelper.BLL.Asset bll = new SqliteHelper.BLL.Asset(dbpath); List <SqliteHelper.Model.Asset> list = new List <SqliteHelper.Model.Asset>(); list = bll.GetModelList("state ='2' and cabinetNo='1'"); SqliteHelper.BLL.RealTimeData realDataBll = new SqliteHelper.BLL.RealTimeData(dbpath); var realTimeData = realDataBll.GetModelList(string.Format("cabinetNo='1'")); foreach (var asset in list) { var realList = realTimeData.Find(m => m.RFID == asset.RfidId && m.LayerIndex == asset.StartLayer); if (realList != null) { asset.CabinetState = "盘点到"; } else { asset.CabinetState = "未盘点到"; } } List <SqliteHelper.Model.Asset> listPage; JsonResult js = new JsonResult(); if (list == null || list.Count == 0) { list = new List <SqliteHelper.Model.Asset>(); js = Json(new { total = list.Count, rows = list }, JsonRequestBehavior.AllowGet); return(js); } //分页操作 没有进行排序,使用的默认排序 listPage = list.Skip((page - 1) * rows).Take(rows).ToList(); try { js = Json(new { total = list.Count, rows = listPage }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { throw new Exception(ex.Message, ex); } return(js); }
/// <summary> /// 获取机柜内的资产列表 /// </summary> /// <returns></returns> public ActionResult GetCabinetAssetInfo() { //if ((DateTime.Now - lastDatetime).TotalSeconds < 2) //{ // return Content("-1"); //} //lastDatetime = DateTime.Now; string dbpath = HttpContext.Server.MapPath("~/App_Data/DB/demo.db"); NLog.LogManager.GetCurrentClassLogger().Debug(dbpath); string cabinetNo = Request.QueryString["CabinetNo"]; SqliteHelper.BLL.Asset assetbll = new SqliteHelper.BLL.Asset(dbpath); var assetList = assetbll.GetModelList(string.Format("CabinetNo='{0}' and State in ('1','2')", cabinetNo)); var assetAll = assetbll.GetModelList("1=1"); SqliteHelper.BLL.RealTimeData realDataBll = new SqliteHelper.BLL.RealTimeData(dbpath); var realTimeData = realDataBll.GetModelList(string.Format("cabinetNo='1'")); foreach (var asset in assetList) { //遍历每个资产,判断资产状态 if (asset.State == "1") { var list = realTimeData.Find(m => m.RFID == asset.RfidId && m.LayerIndex == asset.StartLayer); if (list == null) { //如果资产是已预占,且没有检测到信息 asset.CabinetState = "预占"; } else { //如果资产是已预占,检测到信息 asset.CabinetState = "在架"; //预占的资产,如果上架了,自动变为已上架 asset.State = "2"; assetbll.Update(asset); //上架成功后,插入一条上架ChangeLog var dtime = DateTime.Now; SqliteHelper.BLL.ChangeLog changelogBll = new SqliteHelper.BLL.ChangeLog(dbpath); var model = new SqliteHelper.Model.ChangeLog(); model.AssetNo = asset.OrderNo; model.CabinetNo = 1; model.CreateTime = dtime; model.OperationDetail = string.Format("{0},{1}上架到第{2}U", asset.Type, asset.BM, asset.StartLayer); model.OperationType = "2"; var datalist = changelogBll.GetModelList(string.Format("CreateTime>='{0}' and CreateTime<'{1}' and cabinetNo='1' and AssetNo='{2}' and OperationType='2'", dtime.AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss"), dtime.AddSeconds(1).ToString("yyyy-MM-dd HH:mm:ss"), model.AssetNo)); if (datalist.Count == 0) { changelogBll.Add(model); } } } else if (asset.State == "2") { var list = realTimeData.Find(m => m.RFID == asset.RfidId && m.LayerIndex == asset.StartLayer); if (list == null) { //如果资产是已预占,且没有检测到信息 asset.CabinetState = "遗失"; } else { //如果资产是已预占,检测到信息 asset.CabinetState = "在架"; } } } foreach (var realItem in realTimeData) { var asset = assetList.Find(m => m.StartLayer == realItem.LayerIndex); //如果当前层位没有资产, if (asset == null) { var otherAsset = assetAll.Find(m => m.RfidId == realItem.RFID); otherAsset.CabinetState = "非法"; otherAsset.StartLayer = realItem.LayerIndex; assetList.Add(otherAsset); } else { if (asset.RfidId != realItem.RFID) { assetList.Remove(asset);//移除机柜内该层位的资产,显示非法的资产优先级高 var otherAsset = assetAll.Find(m => m.RfidId == realItem.RFID); otherAsset.CabinetState = "非法"; otherAsset.StartLayer = realItem.LayerIndex; assetList.Add(otherAsset); } } } //从RealData中获取 JsonResult js = Json(assetList, JsonRequestBehavior.AllowGet); return(js); }