| | |
| | | // 第一步:自动清理过期检修状态 |
| | | var today = DateTime.Today; |
| | | var recordsToUpdate = Db.Queryable<Dt_Maintenance>() |
| | | .Where(b => b.MaintenancStartTime != null && |
| | | b.MaintenancStartTime.Value.Date < today ) |
| | | .Where(b => b.MaintenanceDate != null && |
| | | b.MaintenanceDate.Value.Date < today ) |
| | | .ToList(); |
| | | |
| | | if (recordsToUpdate.Count > 0) |
| | | { |
| | | foreach (var record in recordsToUpdate)//更新 |
| | | { |
| | | record.MaintenanceDate = null;//清空检修日期 |
| | | record.MaintenancStartTime = null;//清空开始时间 |
| | | record.MaintenancEendTime = null;//清空结束时间 |
| | | record.MaintenanceStatus = 0; // Set to false |
| | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更新状态是否允许进入检修 |
| | | /// 更新状态是否允许进入检修(添加了检修记录) |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="ispossible"></param> |
| | |
| | | mon.IsPossible = "true"; |
| | | mon.MaintenanceDate = DateTime.Now; |
| | | BaseDal.UpdateData(mon); |
| | | var recording = new Dt_MaintenanceTeam |
| | | var recording = new Dt_MaintenanceTeam //添加记录 |
| | | { |
| | | OperatorName = sysuer.UserTrueName, |
| | | TeamName = sysuer.RoleName, |
| | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更改状态 |
| | | /// 更改状态(暂时没有用到) |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | |
| | | a.UserTrueName, |
| | | a.Userteam, |
| | | a.HeadImageUrl, |
| | | a.Dept_Id, |
| | | b.MaintenancStartTime, |
| | | b.MaintenancEendTime, |
| | | }).ToPageList(pagination.pageIndex, pagination.pageSize, ref totalCount); |
| | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 看今天的检修任务 |
| | | /// 查看今天的检修任务(运行检修隐藏了,这个接口也用不道) |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 看今天的检修任务(运行检修隐藏了,这个接口也用不道) |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | //public WebResponseContent MaintenanceTasksOfTheDay(string account) |
| | | //{ |
| | | // try |
| | | // { |
| | | |
| | | // var query = _user.Db.Queryable<Sys_User>() |
| | | // .InnerJoin<Dt_Maintenance>((a, b) => a.UserName == b.UserAccount) |
| | | // .Where((a,b) => b.UserAccount == account ).Select((a, b) => new |
| | | // { |
| | | // b.ID, |
| | | // a.UserTrueName, |
| | | // a.UserName, |
| | | // a.CardNumber, |
| | | // a.Userteam, |
| | | // a.HeadImageUrl, |
| | | // b.IsPossible, |
| | | // b.MaintenanceStatus, |
| | | // b.MaintenanceDate, |
| | | // b.MaintenancStartTime, |
| | | // b.MaintenancEendTime, |
| | | // }).ToList(); |
| | | // if (query == null) |
| | | // { |
| | | // return new WebResponseContent { Status = false, Message = "你今天没有检修任务" }; |
| | | // } |
| | | |
| | | |
| | | |
| | | // return new WebResponseContent { Status = true, Data = query }; |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | |
| | | // return new WebResponseContent { Status = false, Message = "错误信息:" + ex.Message }; |
| | | // } |
| | | |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// 开始检修 |
| | | ///// </summary> |
| | | ///// <param name="account"></param> |
| | | ///// <returns></returns>(班长-普通员工) |
| | | //public WebResponseContent StartMaintenceTask(string account) |
| | | //{ |
| | | // try |
| | | // { |
| | | // var today = DateTime.Today; // 今天的零点 |
| | | // var tomorrow = today.AddDays(1); // 明天的零点 |
| | | |
| | | |
| | | // var maint = BaseDal.QueryData(x => |
| | | // x.UserAccount == account && |
| | | // x.IsPossible == "true" && |
| | | // x.MaintenanceDate >= today && |
| | | // x.MaintenanceDate < tomorrow |
| | | // ).FirstOrDefault(); |
| | | |
| | | // if (maint == null) |
| | | // { |
| | | // return new WebResponseContent { Status = false, Message = "未找到今日的维护任务记录" }; |
| | | // } |
| | | |
| | | // maint.MaintenancStartTime = DateTime.Now; |
| | | // BaseDal.UpdateData(maint); |
| | | |
| | | // return new WebResponseContent { Status = true, Data = maint }; |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // return new WebResponseContent { Status = false, Message = "错误信息:" + ex.Message }; |
| | | // } |
| | | //} |
| | | |
| | | |
| | | ///// <summary> |
| | | ///// 结束检修 |
| | | ///// </summary> |
| | | ///// <param name="account"></param> |
| | | ///// <returns></returns> |
| | | //public WebResponseContent StopMaintenanceTask(string account) |
| | | //{ |
| | | // try |
| | | // { |
| | | // var today = DateTime.Today; // 今天的零点 |
| | | // var tomorrow = today.AddDays(1); // 明天的零点 |
| | | |
| | | // var maint = BaseDal.QueryData(x => x.UserAccount == account && x.IsPossible == "true" |
| | | // && x.MaintenanceDate >= today &&x.MaintenanceDate < tomorrow).FirstOrDefault(); |
| | | // if (maint == null) |
| | | // { |
| | | // return new WebResponseContent { Status = false, Message = "未找到可用的维护任务记录" }; |
| | | // } |
| | | // // 修改其结束时间 |
| | | // maint.MaintenancEendTime = DateTime.Now; |
| | | // maint.IsPossible = "ok";//ok就代表完成了 |
| | | // BaseDal.UpdateData(maint); |
| | | // return new WebResponseContent { Status = true, Data = maint }; |
| | | |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | |
| | | // return new WebResponseContent { Status = false, Message = "错误信息:" + ex.Message }; |
| | | // } |
| | | //} |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 开始检修 |
| | | /// </summary> |
| | | /// <param name="account"></param> |
| | | /// <param name="account">账号</param> |
| | | /// <param name="LocalIP">那台电脑登入的ip地址</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent StartMaintenceTask(string account) |
| | | public WebResponseContent StartMaintenceTask(string account,string LocalIP) |
| | | { |
| | | try |
| | | { |
| | | var today = DateTime.Today; // 今天的零点 |
| | | var tomorrow = today.AddDays(1); // 明天的零点 |
| | | |
| | | |
| | | var maint = BaseDal.QueryData(x => |
| | | x.UserAccount == account && |
| | | x.IsPossible == "true" && |
| | | x.MaintenanceDate >= today && |
| | | x.MaintenanceDate < tomorrow |
| | | ).FirstOrDefault(); |
| | | |
| | | if (maint == null) |
| | | var user = BaseDal.QueryData(); |
| | | var maint = user.Where(x =>x.UserAccount == account).FirstOrDefault(); |
| | | var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//用户表 |
| | | if (maint == null || sysuer == null) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "未找到今日的维护任务记录" }; |
| | | return new WebResponseContent { Status = false, Message = "没有找到该用户" }; |
| | | } |
| | | if (maint.IsLeader!=1)//如果该用户不是班长,那么要等班长先做,他才可以做 |
| | | { |
| | | //先查找用户的班长是不是做了 |
| | | //bool monitor = user.Where(x => x.Roleid == maint.Roleid && x.IsLeader == 1 && x.MaintenanceStatus == 1); |
| | | //if (monitor==null) |
| | | //{ |
| | | // return new WebResponseContent { Status = false, Message = "你的上级还没有开始检修,请稍后再试" }; |
| | | //} |
| | | bool leaderStarted = user.Any(x =>x.Roleid == maint.Roleid &&x.IsLeader == 1 &&x.MaintenanceStatus == 1); //没找到肯定是false |
| | | if (!leaderStarted) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "请等待组长开始检修" }; |
| | | } |
| | | |
| | | maint.MaintenancStartTime = DateTime.Now; |
| | | } |
| | | //如果满足下面的条件就开始 |
| | | maint.MaintenancStartTime = DateTime.Now;//记录开始时间 |
| | | maint.MaintenanceStatus = 1;//更改状态 |
| | | BaseDal.UpdateData(maint); |
| | | //插入记录表 |
| | | var recording = new Dt_MaintenanceTeam //添加记录 |
| | | { |
| | | OperatorName = sysuer.UserTrueName, |
| | | TeamName = sysuer.RoleName, |
| | | DistributionTime = DateTime.Now, |
| | | IPAddress= LocalIP, |
| | | //Creater = "admin", |
| | | //CreateDate = DateTime.Now, |
| | | }; |
| | | _team.AddData(recording); |
| | | |
| | | return new WebResponseContent { Status = true, Data = maint }; |
| | | return new WebResponseContent { Status = true, Data = maint,Message="开始检修" }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | |
| | | /// <summary> |
| | | /// 结束检修 |
| | | /// </summary> |
| | | /// </summary>MaintenanceStatus 0代表检修完成 1代表检修中 |
| | | /// <param name="account"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent StopMaintenanceTask(string account) |
| | | { |
| | | try |
| | | { |
| | | var today = DateTime.Today; // 今天的零点 |
| | | var tomorrow = today.AddDays(1); // 明天的零点 |
| | | |
| | | var maint = BaseDal.QueryData(x => x.UserAccount == account && x.IsPossible == "true" |
| | | && x.MaintenanceDate >= today &&x.MaintenanceDate < tomorrow).FirstOrDefault(); |
| | | if (maint == null) |
| | | var user = BaseDal.QueryData();//检修表 |
| | | var maint = user.Where(x => x.UserAccount == account).FirstOrDefault(); |
| | | var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//用户表 |
| | | if (maint == null || sysuer == null) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "未找到可用的维护任务记录" }; |
| | | return new WebResponseContent { Status = false, Message = "没有找到该用户" }; |
| | | } |
| | | // 修改其结束时间 |
| | | maint.MaintenancEendTime = DateTime.Now; |
| | | maint.IsPossible = "ok";//ok就代表完成了 |
| | | if (maint.IsLeader == 1)//如果该用户是班长,那么要等全部人都检修完成,他才可以结束检修 |
| | | { |
| | | //先查找所有用户的组是那个组的,组员状态有一个不是1 |
| | | //var monitor = user.Where(x => x.Roleid == maint.Roleid && x.IsLeader == 0 && x.MaintenanceStatus == 1).ToList(); |
| | | //if (monitor.Count >0) |
| | | //{ |
| | | // return new WebResponseContent { Status = false, Message = "你的组员还没有完成" }; |
| | | //} |
| | | // 查找同组未完成的组员(IsLeader=0 && MaintenanceStatus=1) |
| | | bool hasUnfinishedMembers = user.Any(x =>x.Roleid == maint.Roleid && x.IsLeader == 0 && |
| | | x.MaintenanceStatus == 1); //:Any()有一个满足就返回true表示存在满足条件的记录 |
| | | if (hasUnfinishedMembers) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "还有组员未完成当前批次检修" }; |
| | | } |
| | | } |
| | | //如果满足下面的条件就开始 |
| | | maint.MaintenancEendTime = DateTime.Now;//记录结束时间 |
| | | maint.MaintenanceStatus = 0;//更改状态 |
| | | BaseDal.UpdateData(maint); |
| | | return new WebResponseContent { Status = true, Data = maint }; |
| | | ////插入记录表 |
| | | //var recording = new Dt_MaintenanceTeam //添加记录 |
| | | //{ |
| | | // OperatorName = sysuer.UserTrueName, |
| | | // TeamName = sysuer.RoleName, |
| | | // DistributionTime = DateTime.Now, |
| | | // EndTime=DateTime.Now, |
| | | //}; |
| | | //_team.AddData(recording); |
| | | |
| | | return new WebResponseContent { Status = true, Data = maint, Message = "完成检修" }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | return new WebResponseContent { Status = false, Message = "错误信息:" + ex.Message }; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |