using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AutoMapper; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_ITelescopicService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_TelescopicService { public class MaintenanceService : ServiceBase>, IMaintenanceService { public IRepository Repository => BaseDal; private readonly IRepository _user; public MaintenanceService(IRepository BaseDal, IRepository user) : base(BaseDal) { _user = user; } public WebResponseContent ShowMaintence() { try { var sys = _user.QueryData(); var main = BaseDal.QueryData(); var result = sys.Join(main, u => u.UserName, m => m.UserAccount, (u, m) => new { u.UserTrueName, u.UserName, u.CardNumber, u.RoleName, u.HeadImageUrl, m.IsPossible, }); return new WebResponseContent { Status = true, Data = result }; } catch (Exception ex) { return new WebResponseContent { Status = false, Data = ex }; } } public WebResponseContent PersonnelMonitoring(bool ispossible) { try { var sys = _user.QueryData(); var main = BaseDal.QueryData(); var result = sys.Join(main, u => u.UserName, m => m.UserAccount, (u, m) => new { u.UserTrueName, u.RoleName, u.HeadImageUrl, m.MaintenanceStatus, m.MaintenanceDate, m.IsPossible, }).Where(x=>x.IsPossible== ispossible); return new WebResponseContent { Status = true, Data = result }; } catch (Exception ex) { return new WebResponseContent { Status = false, Data = ex }; } } public WebResponseContent RunOperation(int id) { try { var mon = BaseDal.QueryFirst(x => x.ID == id); mon.IsPossible = true; BaseDal.UpdateData(mon); return new WebResponseContent { Status = true, Data = mon }; } catch (Exception ex) { return new WebResponseContent { Status = false, Message = "失败:" + ex }; } } public WebResponseContent ChangeTasState(int id) { try { var change = BaseDal.QueryFirst(x => x.ID == id); //将数据库中的int 值转为 枚举型 if (!Enum.IsDefined(typeof(Maint), change.MaintenanceStatus)) { return new WebResponseContent { Status = false, Message = "当前状态不合法,无法更新" }; } Maint Status = (Maint)change.MaintenanceStatus; //int ->枚举 switch (Status) { case Maint.待开始: change.MaintenanceStatus = (int)Maint.检修中; change.MaintenancStartTime = DateTime.Now; break; case Maint.检修中: change.MaintenanceStatus = (int)Maint.已完成; break; case Maint.已完成: change.MaintenancEendTime = DateTime.Now; return new WebResponseContent { Status = false, Message = "当前任务已完成" }; default: return new WebResponseContent { Status = false, Message = "更新失败" }; } return new WebResponseContent { Status = true, Data = change }; } catch (Exception ex) { return new WebResponseContent { Status = false, Message = "错误:" + ex }; } } /// /// 状态枚举 /// private enum Maint { //待检修=0, 待开始=0, 检修中=1, 已完成=2 } } }