public BindEqtResultStatus BindEqt(string officerId, string eqtId, string cabId, string ptpId, string cateId) { // 获取当前警员已绑定的相关装备 // 获取当前警员警种绑定当前装备类型的最大 using (var stdHandler = new StandardEquipmentHandle(Repository)) using (var eqtHandler = new EquipmentHandle(Repository)) { var noDel = (short)DeleteStatus.No; var std = stdHandler.All(t => t.IsDel == noDel && t.PtId == ptpId && t.CateId == cateId).FirstOrDefault(); if (std == null) { return(BindEqtResultStatus.Error); } var maxCount = std.Num; var currentCount = eqtHandler.All(t => t.IsDel == noDel && t.OfficerId == officerId && t.CateId == cateId).Count(); if (currentCount >= maxCount) { return(BindEqtResultStatus.Repeate); } // 绑定 var items = eqtHandler.ModifyAny(m => { m.OfficerId = officerId; if (!string.IsNullOrWhiteSpace(cabId)) { m.CabId = cabId; } return(m); }, t => t.Id == eqtId, true); if (0 < items.Count()) { return(BindEqtResultStatus.Success); } return(BindEqtResultStatus.Failed); } }
// 警械相关处理 // 1,获取标签绑定的警械信息 // 2,警械当前位置信息处理 // 3,保存警械移动轨迹 // 4,其它 private TagBindModel ExecuteEquipment(UpLoadDataPackage data) { var eqHandler = new EquipmentHandle(Repository); var offHandler = new OfficerHandle(Repository); var noDel = (short)DeleteStatus.No; var query = from eqt in eqHandler.All(t => t.IsDel == noDel) join officer in offHandler.All(t => t.IsDel == noDel) on eqt.OfficerId equals officer.Id select new { eqt = eqt, officer = officer }; var tagId = data.TagId; var m = query.Where(t => t.eqt.TagId == tagId).FirstOrDefault(); if (null != m) { var bdm = new TagBindModel { Equipment = m.eqt, Officer = m.officer }; ExecuteEquipmentLocation(data, bdm); return(bdm); } return(null); }
protected override void Dispose(bool disposing) { base.Dispose(disposing); Handler.Dispose(); Handler = null; }
public IEnumerable <EquipmentModel> Page(string orgId, string storageId, string cabinetId, string tagCode, string factorCode, short dataType, int page, int size, out int count) { using (var eqtHandler = new EquipmentHandle(Repository)) using (var cateHandler = new EqtTypeHandle(Repository)) using (var stgHandler = new StorageHandle(Repository)) using (var cabHandler = new CabinetHandle(Repository)) using (var orgHandler = new OrganizationHandle(Repository)) using (var offHandler = new OfficerHandle(Repository)) { var noDel = (short)DeleteStatus.No; var query = from eqt in eqtHandler.All(t => t.IsDel == noDel) join org in orgHandler.All(t => t.IsDel == noDel) on eqt.OrgId equals org.Id join cate in cateHandler.All(t => t.IsDel == noDel) on eqt.CateId equals cate.Id join stg in stgHandler.All(t => t.IsDel == noDel) on eqt.LibId equals stg.Id join cabitem in cabHandler.All(t => t.IsDel == noDel) on eqt.CabId equals cabitem.Id into cabs from cab in cabs.DefaultIfEmpty(new Cabinet { }) join offitem in offHandler.All(t => t.IsDel == noDel) on eqt.OfficerId equals offitem.Id into offs from off in offs.DefaultIfEmpty(new Officer { }) select new { eqt = eqt, org = org, cate = cate, stg = stg, cab = cab, officer = off }; if (!string.IsNullOrWhiteSpace(storageId)) { query = query.Where(t => t.eqt.LibId == storageId); } if (!string.IsNullOrWhiteSpace(cabinetId)) { query = query.Where(t => t.eqt.CabId == cabinetId); } if (!string.IsNullOrWhiteSpace(tagCode)) { query = query.Where(t => t.eqt.TagId.Contains(tagCode)); } if (!string.IsNullOrWhiteSpace(factorCode)) { query = query.Where(t => t.eqt.FactorCode.Contains(factorCode)); } if (!string.IsNullOrWhiteSpace(orgId)) { query = query.Where(t => t.eqt.OrgId == orgId); } if (string.IsNullOrWhiteSpace(orgId) && !User.IsSupperAdministrator) { orgId = User.Organization.Id; query = query.Where(t => t.eqt.OrgId == orgId); } var dispatchStatus = 0; // 布控中 if (dataType == (short)QueryEqtDataType.Dispatching) { dispatchStatus = (short)DispatchedStatus.Doing; query = query.Where(t => t.eqt.Dispatched == dispatchStatus); } // 撤控 if (dataType == (short)QueryEqtDataType.Dispatched) { dispatchStatus = (short)DispatchedStatus.Done; query = query.Where(t => t.eqt.Dispatched == dispatchStatus); } var now = DateTime.Now.ToUnixTime(); // 已过期 if (dataType == (short)QueryEqtDataType.Expired) { query = query.Where(t => t.eqt.ExpiredTime <= now); } // 即将过期 if (dataType == (short)QueryEqtDataType.PreExpired) { var preDate = DateTime.Now.AddDays(PreExpiredInterval).ToUnixTime(); query = query.Where(t => t.eqt.ExpiredTime >= preDate && t.eqt.ExpiredTime < now); } // 尚未过期 if (dataType == (short)QueryEqtDataType.NoExpired) { query = query.Where(t => t.eqt.ExpiredTime >= now); } // 绑定警员 if (dataType == (short)QueryEqtDataType.Bound) { query = query.Where(t => t.eqt.OfficerId != null); } // 已损坏 if (dataType == (short)QueryEqtDataType.Destoried) { var sta = (short)EquipmentStatus.Destory; query = query.Where(t => t.eqt.Status == sta); } // 低电量 if (dataType == (short)QueryEqtDataType.LowPower) { query = query.Where(t => t.eqt.Power <= LowPowerFlag); } count = query.Count(); var skipCount = (page - 1) * size; var items = query.OrderByDescending(t => t.eqt.InputTime).Skip(skipCount).Take(size).ToArray() .Select(t => new EquipmentModel { cabinet = t.cab, category = t.cate, equipment = t.eqt, officer = t.officer, org = t.org, storage = t.stg }); return(items); } }
public EquipmentModule(UserInfo user) : base(user) { Handler = new EquipmentHandle(Repository); }