public ResultObj Add(Truck obj) { // 获取当前登录用户名 string _currentUserName = CommonService.GetCurrentUser(HttpContext).UserName; ResultObj resultObj = new ResultObj(); if (IsExistSame(obj)) { resultObj.IsSuccess = false; resultObj.ErrMsg = "该车牌号已存在。"; return(resultObj); } obj.CreateUser = _currentUserName; obj.CreateTime = DateTime.Now; obj.LastUpdateUser = _currentUserName; obj.LastUpdateTime = DateTime.Now; _context.Truck.Add(obj); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }
public ResultObj Add(NFCCard obj) { ResultObj resultObj = new ResultObj(); if (IsExistSameNo(obj)) { resultObj.IsSuccess = false; resultObj.ErrMsg = "编号已存在。"; return(resultObj); } if (IsExistSameDeviceNo(obj)) { resultObj.IsSuccess = false; resultObj.ErrMsg = "设备已被其他NFC卡绑定过了。"; return(resultObj); } obj.CreateUser = obj.CreateUser; obj.CreateTime = DateTime.Now; obj.LastUpdateUser = obj.LastUpdateUser; obj.LastUpdateTime = DateTime.Now; _context.NFCCard.Add(obj); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }
public ResultObj Add(WorkTicket obj) { // 获取当前登录用户名 string _currentUserName = CommonService.GetCurrentUser(HttpContext).UserName; ResultObj resultObj = new ResultObj(); if (IsExistSame(obj)) { resultObj.IsSuccess = false; resultObj.ErrMsg = "该工单编号已存在。"; return(resultObj); } //obj.Status = WorkTicketStatus.待接单.ToString(); obj.Status = WorkTicketStatus.待拉油.ToString(); obj.IsDeleted = false; obj.Description = obj.Description + "【创建工单】操作人:" + _currentUserName + ",时间:" + DateTime.Now; obj.CreateUser = _currentUserName; obj.CreateTime = DateTime.Now; obj.LastUpdateUser = _currentUserName; obj.LastUpdateTime = DateTime.Now; _context.WorkTicket.Add(obj); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }
public ResultObj Add(InspectData obj) { ResultObj resultObj = new ResultObj(); obj.CreateUser = obj.CreateUser; obj.CreateTime = DateTime.Now; obj.LastUpdateUser = obj.LastUpdateUser; obj.LastUpdateTime = DateTime.Now; _context.InspectData.Add(obj); _context.SaveChanges(); // 更新任务表:巡检完成时间,巡检完成人,是否完成 var taskObj = _context.InspectTask.Find(obj.TaskId); // 如果未跳检,则更新巡检任务表 if (taskObj != null && obj.IsJumpInspect.Equals("0")) { taskObj.InspectCompleteTime = obj.InspectTime; taskObj.InspectCompleteUser = obj.InspectUser; taskObj.IsComplete = "2"; _context.InspectTask.Update(taskObj); _context.SaveChanges(); // 更新nfc卡的最后巡检时间 List <NFCCard> nfcCardList = _context.NFCCard.Where(p => p.DeviceNo.Equals(obj.DeviceNo)).ToList(); if (nfcCardList.Count > 0) { NFCCard nfcCardObj = nfcCardList.First(); nfcCardObj.LastInspectTime = obj.InspectTime; nfcCardObj.LastInspectUser = obj.InspectUser; _context.NFCCard.Update(nfcCardObj); _context.SaveChanges(); } } resultObj.IsSuccess = true; return(resultObj); }
public ResultObj Add(InspectItems obj) { ResultObj resultObj = new ResultObj(); if (IsExistSameNo(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.InspectItems.Add(obj); _context.SaveChanges(); resultObj.IsSuccess = true; return(resultObj); }
// 自动处理工单方法 public ResultObj AutoOperWorkTicket(string jsonStrData) { ResultObj resultObj = new ResultObj(); string msg = ""; string tempStr; try { // 序列化为JObject JObject jObject = JsonConvert.DeserializeObject <JObject>(jsonStrData); if (jObject == null) { tempStr = "序列化对象为空:" + jsonStrData; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } // 解析工单数据 JObject jObjectWork = jObject.Value <JObject>("System"); if (jObjectWork == null) { tempStr = "序列化工单数据为空:" + jObject.Value <string>("System"); log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } // 拉油完成后,此变量会置1,需将拉油相关信息,如拉油时长、拉液量等保存后,清除此位 int AckTaskComplete = jObjectWork.Value <int>("AckTaskComplete"); tempStr = "AckTaskComplete的值为:" + AckTaskComplete; log.Info(tempStr); msg += tempStr + "\n"; if (AckTaskComplete == 1) { TimeSpan interval; // 实际开始拉油时间 DateTime StartLoadingTime = jObjectWork.Value <DateTime>("StartLoadingTime"); interval = DateTime.Now - StartLoadingTime; // 计算开始拉油时间和当前时间的时间差(天) if (interval.TotalDays > 1 || interval.TotalDays < 0) { tempStr = "实际开始拉油时间StartLoadingTime不合理:" + StartLoadingTime; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } // 实际结束拉油时间 DateTime StopLoadingTime = jObjectWork.Value <DateTime>("StopLoadingTime"); interval = DateTime.Now - StopLoadingTime; // 计算结束拉油时间和当前时间的时间差(天) if (interval.TotalDays > 1 || interval.TotalDays < 0) { tempStr = "实际结束拉油时间StopLoadingTime不合理:" + StopLoadingTime; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } // 开始时间和结束时间差计算(天) interval = StopLoadingTime - StartLoadingTime; if (interval.TotalDays > 1 || interval.TotalDays < 0) { tempStr = "实际开始拉油时间StartLoadingTime:" + StartLoadingTime + ",实际结束拉油时间StopLoadingTime:" + StopLoadingTime + "时间顺序不合理"; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } // 实际拉液量 float OilLoaded = jObjectWork.Value <float>("OilLoaded"); if (OilLoaded <= 0) { tempStr = "实际拉液量不合理:" + OilLoaded; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } // 接收到的二维码 string QrCode = jObjectWork.Value <string>("QrCode"); tempStr = "QrCode为:" + QrCode; log.Info(tempStr); msg += tempStr + "\n"; // 判断是否是工单二维码 if (QRCodeEncoder.IsWorkTicket(QrCode) == false) { tempStr = "工单二维码解析不正确:" + QrCode; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } string SerialNumber = QrCode.Split(":")[1]; tempStr = "解析出的工单编号为:" + SerialNumber; log.Info(tempStr); msg += tempStr + "\n"; // 根据工单编号和工单状态查询工单 DbContextOptions <H4WebContext> dbContextOption = new DbContextOptions <H4WebContext>(); DbContextOptionsBuilder <H4WebContext> dbContextOptionBuilder = new DbContextOptionsBuilder <H4WebContext>(dbContextOption); H4WebContext _context = new H4WebContext(dbContextOptionBuilder.UseNpgsql(_configuration.GetConnectionString("PostgreSql")).Options); var obj = _context.WorkTicket.Where(p => p.SerialNumber.Equals(SerialNumber) && p.Status.Equals(WorkTicketStatus.待拉油.ToString())).FirstOrDefault(); if (obj == null) { tempStr = "满足条件的工单不存在(工单编号" + SerialNumber + ",状态待拉油)"; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } // 如果工单存在则修改工单 obj.LoadingActualBeginTime = StartLoadingTime; obj.LoadingActualEndTime = StopLoadingTime; obj.OilLoaded = OilLoaded; obj.OilLoader = obj.DriverPhone; obj.Status = WorkTicketStatus.待卸油.ToString(); obj.Description = obj.Description + "\n【拉油】操作人:" + obj.DriverPhone + ",时间:" + DateTime.Now; obj.LastUpdateTime = DateTime.Now; obj.LastUpdateUser = obj.DriverPhone; _context.WorkTicket.Update(obj); _context.SaveChanges(); // 通过Grpc修改参数 SystemPara systemPara = new SystemPara(); systemPara.ParaName = "AckTaskComplete"; systemPara.ParaValue = "0"; // 拉油完成后,此变量会置1,需将拉油相关信息,如拉油时长、拉液量等保存后,清除此位 ResultObj setParamsResult = StationControlService.SetSystemSettingSingleParaService(systemPara); if (setParamsResult.IsSuccess == false) { tempStr = "修改参数AckTaskComplete失败!"; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } tempStr = "自动处理工单成功。"; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = true; resultObj.KeyInfo = obj.SerialNumber; resultObj.Msg = msg; return(resultObj); } else { tempStr = "不用处理工单。"; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } } catch (Exception e) { tempStr = "自动处理工单发生异常:" + e.Message; log.Info(tempStr); msg += tempStr + "\n"; resultObj.IsSuccess = false; resultObj.Msg = msg; return(resultObj); } }
public List <InspectTaskView> GetTaskList(string queryStr) { JObject jObject = new JObject(); if (string.IsNullOrEmpty(queryStr) == false) { jObject = JsonConvert.DeserializeObject <JObject>(queryStr); } string taskName = jObject.Value <string>("taskName"); string taskNo = jObject.Value <string>("taskNo"); string deviceName = jObject.Value <string>("deviceName"); string inspectName = jObject.Value <string>("inspectName"); string inspectItemName = jObject.Value <string>("inspectItemName"); string inspectTime = jObject.Value <string>("inspectTime"); string inspectUser = jObject.Value <string>("inspectUser"); //防止查询条件都不满足,先生成一个空的查询 var where = (from task in _context.InspectTask join inspect in _context.Inspect on task.InspectNo equals inspect.InspectNo join device in _context.Device on task.DeviceNo equals device.DeviceNo join nfcCard in _context.NFCCard on device.DeviceNo equals nfcCard.DeviceNo join inspectItem in _context.InspectItems on task.InspectItemNo equals inspectItem.InspectItemNo select new InspectTaskView { GId = task.GId, InspectNo = task.InspectNo, DeviceNo = task.DeviceNo, InspectItemNo = task.InspectItemNo, TaskOrderNo = task.TaskOrderNo, TaskNo = task.TaskNo, TaskName = task.TaskName, InspectTime = task.InspectTime, InspectUser = task.InspectUser, IsComplete = task.IsComplete, InspectCompleteTime = task.InspectCompleteTime, InspectCompleteUser = task.InspectCompleteUser, Remark = task.Remark, CreateTime = task.CreateTime, CreateUser = task.CreateUser, LastUpdateTime = task.LastUpdateTime, LastUpdateUser = task.LastUpdateUser, LineName = task.LineName, InspectCycles = task.InspectCycles, CycleStartTime = task.CycleStartTime, CycleEndTime = task.CycleEndTime, InspectName = inspect.InspectName, DeviceName = device.DeviceName, InspectItemName = inspectItem.InspectItemName, NfcCardNo = nfcCard.NFCCardNo, Unit = inspectItem.Unit, ItemRemark = inspectItem.Remark, //待下发或者待处理的数据都可以请求到,只请求当天的数据 }).Where(p => (p.IsComplete.Equals("0") || p.IsComplete.Equals("1")) && p.InspectTime.Date == DateTime.Now.Date); if (string.IsNullOrEmpty(taskNo) == false) { where = where.Where(p => p.TaskNo.Contains(taskNo)); } if (string.IsNullOrEmpty(taskName) == false) { where = where.Where(p => p.TaskName.Contains(taskName)); } if (string.IsNullOrEmpty(inspectName) == false) { where = where.Where(p => p.InspectName.Contains(inspectName)); } if (string.IsNullOrEmpty(deviceName) == false) { where = where.Where(p => p.DeviceName.Contains(deviceName)); } if (string.IsNullOrEmpty(inspectItemName) == false) { where = where.Where(p => p.InspectItemName.Contains(inspectItemName)); } if (string.IsNullOrEmpty(inspectTime) == false) { DateTime inpectDate = DateTime.Parse(DateTime.Parse(inspectTime).ToShortDateString()); DateTime startTime = inpectDate.AddDays(0); DateTime endTime = inpectDate.AddDays(1); where = where.Where(p => p.InspectTime >= startTime && p.InspectTime <= endTime); } if (string.IsNullOrEmpty(inspectUser) == false) { where = where.Where(p => p.InspectUser.Contains(inspectUser)); } //默认结果按照任务编号、任务顺序号正序排序 where = where.OrderBy(p => p.TaskNo).ThenBy(p => p.TaskOrderNo); //获取结果 List <InspectTaskView> dataList = where.ToList(); // 批量更新任务状态:待完成1 List <InspectTask> updateList = new List <InspectTask>(); for (int i = 0; i < dataList.Count; i++) { InspectTask updateObj = _context.InspectTask.Find(dataList[i].GId); if (updateObj != null) { updateObj.IsComplete = "1";//待完成 updateObj.LastUpdateTime = DateTime.Now; updateObj.LastUpdateUser = inspectUser; updateList.Add(updateObj); } } _context.InspectTask.UpdateRange(updateList); _context.SaveChanges(); return(dataList); }