예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }