public ResultObj Update(InspectLine newObj) { ResultObj resultObj = new ResultObj(); var obj = _context.InspectLine.Find(newObj.GId); if (obj == null) { resultObj.IsSuccess = false; resultObj.ErrMsg = "修改对象不存在。"; return(resultObj); } if (IsExistSameName(newObj)) { resultObj.IsSuccess = false; resultObj.ErrMsg = "名称已存在。"; return(resultObj); } obj.LineName = newObj.LineName; obj.DeviceInspectItems = newObj.DeviceInspectItems; obj.DeviceInspectItemsName = newObj.DeviceInspectItemsName; obj.Remark = newObj.Remark; obj.LastUpdateTime = DateTime.Now; obj.LastUpdateUser = newObj.LastUpdateUser; _context.InspectLine.Update(obj); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }
public bool IsExistSameName(InspectLine obj) { var where = _context.InspectLine.Where(p => p.LineName == obj.LineName); if (obj.GId != null) { where = where.Where(p => p.GId != obj.GId); } List <InspectLine> list = where.ToList(); if (list.Count > 0) { return(true); } return(false); }
public ResultObj Add(InspectLine obj) { ResultObj resultObj = new ResultObj(); if (IsExistSameName(obj)) { resultObj.IsSuccess = false; resultObj.ErrMsg = "名称已存在。"; return(resultObj); } obj.CreateUser = obj.CreateUser; obj.CreateTime = DateTime.Now; obj.LastUpdateUser = obj.LastUpdateUser; obj.LastUpdateTime = DateTime.Now; _context.InspectLine.Add(obj); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }
public ResultObj AddLineTask(InspectTask obj) { ResultObj resultObj = new ResultObj(); // 根据巡检周期,周期起始、结束时间,计算需要生成的任务巡检时间数组 List <DateTime> inspectTimeList = new List <DateTime>(); // 如果选择的开始时间小于当前时间,则取当前时间 DateTime startTime = obj.CycleStartTime < DateTime.Now ? DateTime.Now.AddHours(1) : obj.CycleStartTime.Date; // 偶数整点开始执行 int startHour = (startTime.Hour) % 2 == 0 ? startTime.Hour : startTime.Hour + 1; startTime = DateTime.Parse(string.Format("{0:yyyy/MM/dd }", startTime) + startHour + ":00:00"); // 如果结束时间小于开始时间,则取开始时间 DateTime endTime = obj.CycleEndTime < startTime ? startTime : obj.CycleEndTime; // 结束日期后一天的0点为周期的结束时间 endTime = DateTime.Parse(string.Format("{0:yyyy/MM/dd }", endTime.AddDays(1)) + "00:00:00"); while (startTime < endTime) { inspectTimeList.Add(startTime); if (obj.InspectCycles.Equals("每两小时巡检一次")) { startTime = startTime.AddHours(2); } } // 根据巡检路线,计算出巡检任务的巡检项目 InspectLine inspectLine = _context.InspectLine.Where(p => p.LineName.Equals(obj.LineName)).FirstOrDefault(); string[] lineDeviceItem = inspectLine.DeviceInspectItems.Split(","); List <Guid> lineDeviceItemList = new List <Guid>(); for (int i = 0; i < lineDeviceItem.Length; i++) { lineDeviceItemList.Add(new Guid(lineDeviceItem[i])); } // 根据设备巡检项目表,先查询需要生成的任务数据 var query = from deviceInspectItem in _context.DeviceInspectItem join device in _context.Device on deviceInspectItem.DeviceNo equals device.DeviceNo join nfcCard in _context.NFCCard on device.DeviceNo equals nfcCard.DeviceNo join inspect in _context.Inspect on device.InspectNo equals inspect.InspectNo orderby inspect.InspectOrderNo, device.DeviceNo, deviceInspectItem.InspectItemNo select new InspectTask { InspectNo = device.InspectNo, DeviceNo = device.DeviceNo, InspectItemNo = deviceInspectItem.InspectItemNo, GId = deviceInspectItem.GId, }; List <InspectTask> taskList = query.ToList(); List <InspectTask> addList = new List <InspectTask>(); for (int j = 0; j < inspectTimeList.Count; j++) { // 任务编号(按照巡检时间生成任务编号) string taskNo = string.Format("{0:yyyyMMddHH}", inspectTimeList[j]) + "CYCLE";; string taskName = string.Format("{0:yyyyMMddHH}", inspectTimeList[j]) + "定期任务"; // 巡检顺序编号 int taskOrderNo = 0; for (int i = 0; i < taskList.Count; i++) { if (lineDeviceItemList.Contains(taskList[i].GId)) { taskOrderNo++; InspectTask inspectTaskObj = new InspectTask(); inspectTaskObj.InspectNo = taskList[i].InspectNo; inspectTaskObj.DeviceNo = taskList[i].DeviceNo; inspectTaskObj.InspectItemNo = taskList[i].InspectItemNo; inspectTaskObj.TaskOrderNo = taskOrderNo; inspectTaskObj.TaskName = taskName; inspectTaskObj.TaskNo = taskNo; inspectTaskObj.LineName = obj.LineName; inspectTaskObj.InspectCycles = obj.InspectCycles; inspectTaskObj.CycleStartTime = obj.CycleStartTime; inspectTaskObj.CycleEndTime = obj.CycleEndTime; inspectTaskObj.InspectTime = inspectTimeList[j]; inspectTaskObj.InspectUser = obj.InspectUser; inspectTaskObj.IsComplete = "0"; inspectTaskObj.Remark = obj.Remark; inspectTaskObj.CreateUser = obj.CreateUser; inspectTaskObj.CreateTime = DateTime.Now; inspectTaskObj.LastUpdateUser = obj.LastUpdateUser; inspectTaskObj.LastUpdateTime = DateTime.Now; addList.Add(inspectTaskObj); } } } _context.InspectTask.AddRange(addList); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }
public ResultObj AddTempTask(InspectTask obj) { ResultObj resultObj = new ResultObj(); // 根据巡检路线,计算出巡检任务的巡检项目 InspectLine inspectLine = _context.InspectLine.Where(p => p.LineName.Equals(obj.LineName)).FirstOrDefault(); string[] lineDeviceItem = inspectLine.DeviceInspectItems.Split(","); List <Guid> lineDeviceItemList = new List <Guid>(); for (int i = 0; i < lineDeviceItem.Length; i++) { lineDeviceItemList.Add(new Guid(lineDeviceItem[i])); } // 根据设备巡检项目表,先查询需要生成的任务数据 var query = from deviceInspectItem in _context.DeviceInspectItem join device in _context.Device on deviceInspectItem.DeviceNo equals device.DeviceNo join nfcCard in _context.NFCCard on device.DeviceNo equals nfcCard.DeviceNo join inspect in _context.Inspect on device.InspectNo equals inspect.InspectNo orderby inspect.InspectOrderNo, device.DeviceNo, deviceInspectItem.InspectItemNo select new InspectTask { InspectNo = device.InspectNo, DeviceNo = device.DeviceNo, InspectItemNo = deviceInspectItem.InspectItemNo, GId = deviceInspectItem.GId, }; List <InspectTask> taskList = query.ToList(); List <InspectTask> addList = new List <InspectTask>(); // 巡检顺序编号 int taskOrderNo = 0; for (int i = 0; i < taskList.Count; i++) { if (lineDeviceItemList.Contains(taskList[i].GId)) { taskOrderNo++; InspectTask inspectTaskObj = new InspectTask(); inspectTaskObj.InspectNo = taskList[i].InspectNo; inspectTaskObj.DeviceNo = taskList[i].DeviceNo; inspectTaskObj.InspectItemNo = taskList[i].InspectItemNo; inspectTaskObj.TaskOrderNo = taskOrderNo; inspectTaskObj.TaskName = string.Format("{0:yyyyMMddHH}", obj.InspectTime) + "临时任务"; inspectTaskObj.TaskNo = string.Format("{0:yyyyMMddHH}", obj.InspectTime) + "TEMP"; inspectTaskObj.InspectTime = obj.InspectTime; inspectTaskObj.InspectUser = obj.InspectUser; inspectTaskObj.LineName = obj.LineName; inspectTaskObj.IsComplete = "0"; inspectTaskObj.Remark = obj.Remark; inspectTaskObj.CreateUser = obj.CreateUser; inspectTaskObj.CreateTime = DateTime.Now; inspectTaskObj.LastUpdateUser = obj.LastUpdateUser; inspectTaskObj.LastUpdateTime = DateTime.Now; addList.Add(inspectTaskObj); } } _context.InspectTask.AddRange(addList); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }