| | |
| | | public IRepository<Dt_Maintenance> Repository => BaseDal; |
| | | public readonly IRepository<Dt_MaintenanceTeam> _team; |
| | | private readonly IRepository<Sys_User> _user; |
| | | private readonly IRepository<Sys_Role> _role; |
| | | |
| | | |
| | | public MaintenanceService(IRepository<Sys_Role> role,IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal) |
| | | public MaintenanceService(IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal) |
| | | { |
| | | _user = user; |
| | | _team = team; |
| | | _role = role; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | try |
| | | { |
| | | var user = BaseDal.QueryData();//检修表 |
| | | var Role = _role.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 = "没有找到该用户" }; |
| | | } |
| | | // 查找该用户在 _team 表中的最新一条记录 |
| | | var lastRecord = _team.QueryData(x => x.Account == account) |
| | | .OrderByDescending(x => x.CreateDate) |
| | | .FirstOrDefault(); |
| | | |
| | | if (lastRecord != null && lastRecord.MaintenanceStatus == 1) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "你已经在开始检修了,请不要重复点击" }; |
| | | } |
| | | |
| | | //先要找到该用户属于那个角色的,这个角色中属于那个什么类型(组长/组员) |
| | | if (maint.IsLeader != 1)//如果该用户不是班长,那么要等班长先做,他才可以做 |
| | | { |
| | |
| | | } |
| | | |
| | | } |
| | | if (true) |
| | | { |
| | | |
| | | } |
| | | //如果满足下面的条件就开始 |
| | | maint.MaintenancStartTime = DateTime.Now;//记录开始时间 |
| | | maint.MaintenanceStatus = 1;//更改状态 |
| | |
| | | //插入记录表 |
| | | var recording = new Dt_MaintenanceTeam //添加记录 |
| | | { |
| | | Account = account, |
| | | MaintenanceStatus=1, |
| | | OperatorName = sysuer.UserTrueName, |
| | | TeamName = sysuer.RoleName, |
| | | DistributionTime = DateTime.Now, |
| | |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "没有找到该用户" }; |
| | | } |
| | | |
| | | // 查找该用户在 _team 表中的最新一条记录 |
| | | var lastRecord = _team.QueryData(x => x.Account == account) |
| | | .OrderByDescending(x => x.CreateDate) |
| | | .FirstOrDefault(); |
| | | |
| | | if (lastRecord == null || lastRecord.MaintenanceStatus != 1) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "你还没有开始检修,请先点击开始检修" }; |
| | | } |
| | | |
| | | if (maint.IsLeader == 1)//如果该用户是班长,那么要等全部人都检修完成,他才可以结束检修 |
| | | { |
| | | //先查找所有用户的组是那个组的,组员状态有一个不是1 |
| | |
| | | ////插入记录表 |
| | | var recording = new Dt_MaintenanceTeam //添加记录 |
| | | { |
| | | Account = account, |
| | | MaintenanceStatus=0, |
| | | OperatorName = sysuer.UserTrueName, |
| | | TeamName = sysuer.RoleName, |
| | | EndTime = DateTime.Now, |
| | |
| | | { |
| | | try |
| | | { |
| | | var reslut=BaseDal.QueryData(x => x.MaintenanceStatus == 1).ToList(); |
| | | var reslut=BaseDal.QueryData(x => x.MaintenanceStatus == 1).ToList(); |
| | | if (reslut.Count<=0) |
| | | { |
| | | return new WebResponseContent { Status = false, Message = "还没有人开始检修" }; |