public DataResult GetCurrentWarning([FromQuery] int wId, int sId, WarningType type, WarningDataType dataType) { wId = wId == 0 ? 1 : wId; var result = new DataResult(); if (HWarningHelper.CurrentData != null && HWarningHelper.CurrentData.Any()) { var r = sId == 0 ? HWarningHelper.CurrentData.Where(x => x.Key.Item3 == dataType && x.Key.Item4 == type).Select(y => y.Value) : HWarningHelper.CurrentData.Where(x => x.Key.Item3 == dataType && x.Key.Item4 == type).Where(y => y.Value.SetId == sId).Select(z => z.Value); if (r.Any()) { var sets = WarningSetHelper.GetMenus(wId, r.Select(x => x.SetId)); var devices = DeviceHelper.GetMenus(wId, r.Select(x => x.DeviceId)); var categories = DeviceCategoryHelper.GetMenus(wId, r.Select(x => x.CategoryId)); //var classes = ServerConfig.ApiDb.Query<DeviceClass>("SELECT `Id`, `Class` FROM `device_class` WHERE `MarkedDelete` = 0 AND Id IN @Id;", new //{ // Id = data.Select(x => x.ClassId) //}); foreach (var current in r.OrderBy(x => x.ItemId).ThenBy(x => x.DeviceId)) { var d = ClassExtension.ParentCopyToChild <WarningCurrent, WarningCurrentDetail>(current); d.SetName = sets.FirstOrDefault(x => x.Id == d.SetId)?.Name ?? ""; d.Code = devices.FirstOrDefault(x => x.Id == d.DeviceId)?.Code ?? ""; //d.Class = classes.FirstOrDefault(x => x.Id == d.ClassId)?.Class ?? ""; d.CategoryName = categories.FirstOrDefault(x => x.Id == d.CategoryId)?.Name ?? ""; result.datas.Add(d); } } } return(result); }
public Result PostSet([FromBody] WarningSetWithItems set) { if (set.Name.IsNullOrEmpty()) { return(Result.GenError <Result>(Error.WarningSetNotEmpty)); } if (set.DataType == WarningDataType.生产数据 && set.StepId == set.BindId) { return(Result.GenError <Result>(Error.WarningSetStepBindDuplicate)); } var names = new List <string> { set.Name }; if (WarningSetHelper.GetHaveSame(1, names)) { return(Result.GenError <Result>(Error.WarningSetIsExist)); } var createUserId = Request.GetIdentityInformation(); var markedDateTime = DateTime.Now; if (set.Items != null && set.Items.Any()) { //if (set.Items.Any(x => !x.ValidDataType())) //{ // return Result.GenError<Result>(Error.WarningSetItemDataTypeError); //} if (set.Items.Any(x => !x.ValidFrequency())) { return(Result.GenError <Result>(Error.WarningSetItemFrequencyError)); } if (set.Items.Any(x => !x.ValidCondition())) { return(Result.GenError <Result>(Error.WarningSetItemConditionError)); } } set.CreateUserId = createUserId; set.MarkedDateTime = markedDateTime; var id = WarningSetHelper.Instance.AddBackId(set); if (set.Items != null && set.Items.Any()) { var dic = new List <DataNameDictionary>(); if (set.DataType == WarningDataType.设备数据) { var dIds = set.Items.Select(x => x.DictionaryId).Where(x => x != 0); dic.AddRange(DataNameDictionaryHelper.Instance.GetAllByIds <DataNameDictionary>(dIds)); } foreach (var item in set.Items) { item.CreateUserId = createUserId; item.MarkedDateTime = markedDateTime; item.SetId = id; item.Item = set.DataType == WarningDataType.设备数据 ? dic.FirstOrDefault(x => x.Id == item.DictionaryId)?.VariableName ?? "" : item.Item; } WarningSetItemHelper.Instance.Add <WarningSetItem>(set.Items); } HWarningHelper.UpdateConfig(); return(Result.GenError <Result>(Error.Success)); }
public Result PutSet([FromBody] WarningSetWithItems set) { var oldSet = WarningSetHelper.Instance.Get <WarningSet>(set.Id); if (oldSet == null) { return(Result.GenError <Result>(Error.WarningSetNotExist)); } if (set.Name.IsNullOrEmpty()) { return(Result.GenError <Result>(Error.WarningSetNotEmpty)); } if (set.DataType == WarningDataType.生产数据 && set.StepId == set.BindId) { return(Result.GenError <Result>(Error.WarningSetStepBindDuplicate)); } var names = new List <string> { set.Name }; var ids = new List <int> { set.Id }; if (WarningSetHelper.GetHaveSame(1, names, ids)) { return(Result.GenError <Result>(Error.WarningSetIsExist)); } var createUserId = Request.GetIdentityInformation(); var markedDateTime = DateTime.Now; if (set.Items != null) { if (set.Items.Any()) { switch (set.DataType) { case WarningDataType.设备数据: set.Items = set.Items.Where(x => x.DictionaryId != 0).ToList(); foreach (var item in set.Items) { item.Item = ""; } break; case WarningDataType.生产数据: set.Items = set.Items.Where(x => x.ItemType != WarningItemType.Default).ToList(); foreach (var item in set.Items) { if (HWarningHelper.生产数据单设备加工信息字段.All(x => x.Item2 != item.ItemType)) { item.DeviceIds = set.DeviceIds; } } break; case WarningDataType.故障数据: set.Items = set.Items; break; case WarningDataType.流程卡数据: set.Items = set.Items.Where(x => x.ItemType != WarningItemType.Default).ToList(); break; default: set.Items.Clear(); break; } //if (set.Items.Any(x => !x.ValidDataType())) //{ // return Result.GenError<Result>(Error.WarningSetItemDataTypeError); //} foreach (var item in set.Items) { item.MarkedDateTime = markedDateTime; item.SetId = set.Id; } if (set.Items.Any(x => x.ItemType == WarningItemType.SpecifyStepTimeOut && x.StepId == 0)) { return(Result.GenError <Result>(Error.WarningSetItemFlowCardStepError)); } if (set.Items.Any(x => !x.ValidFrequency())) { return(Result.GenError <Result>(Error.WarningSetItemFrequencyError)); } if (set.Items.Any(x => !x.ValidCondition())) { return(Result.GenError <Result>(Error.WarningSetItemConditionError)); } var oldWarningSetItems = WarningSetItemHelper.GetWarningSetItemsBySetId(set.Id); var delItems = oldWarningSetItems.Where(x => set.Items.All(y => y.Id != x.Id)); if (delItems.Any()) { WarningSetItemHelper.Instance.Delete(delItems.Select(x => x.Id)); } var updateItems = set.Items.Where(x => x.Id != 0); if (updateItems.Any()) { var uIds = new List <int>(); foreach (var item in updateItems) { var oldItem = oldWarningSetItems.FirstOrDefault(x => x.Id == item.Id); if (oldItem != null && ClassExtension.HaveChange(oldItem, item)) { if (HWarningHelper.生产数据单设备加工信息字段.All(x => x.Item2 != item.ItemType)) { item.DeviceIds = set.DeviceIds; } uIds.Add(item.Id); } } WarningSetItemHelper.Instance.Update(updateItems.Where(x => uIds.Contains(x.Id))); } var newItems = set.Items.Where(x => x.Id == 0); if (newItems.Any()) { foreach (var item in newItems) { item.CreateUserId = createUserId; } WarningSetItemHelper.Instance.Add(newItems); } } else { WarningSetItemHelper.Instance.DeleteFromParent(set.Id); } } if (ClassExtension.HaveChange(oldSet, set)) { set.MarkedDateTime = markedDateTime; WarningSetHelper.Instance.Update(set); } HWarningHelper.UpdateConfig(); return(Result.GenError <Result>(Error.Success)); }