using System; using System.Linq; using System.Threading.Tasks; using System.Collections.Generic; using WaterCloud.Code; using Chloe; using WaterCloud.Domain.ClassTask; using WaterCloud.Domain.SystemManage; using WaterCloud.Service.SystemOrganize; using WaterCloud.Domain.SystemOrganize; using WaterCloud.Domain.EquipmentManage; using System.Threading; namespace WaterCloud.Service.ClassTask { /// /// 创 建:超级管理员 /// 日 期:2021-06-03 13:55 /// 描 述:信息设置服务类 /// public class ControlJobUserBandingService : DataFilterService, IDenpendency { private UserService userApp; public ControlJobUserBandingService(IDbContext context) : base(context) { userApp = new UserService(context); } #region 获取数据 public async Task> GetList(string keyword = "") { var data = repository.IQueryable(); return data.OrderBy(t => t.F_Id).ToList(); } public async Task> GetLookList(string keyword = "") { var query = repository.IQueryable(); //权限过滤 query = GetDataPrivilege("u", "", query); return query.OrderBy(t => t.F_Id).ToList(); } public async Task> GetLookList(string eqpId,string itemId = "", string keyword = "") { var query = repository.IQueryable(); if(!string.IsNullOrEmpty(itemId)) { var temp = await uniwork.FindEntity(itemId); if (temp!=null) { var count = int.Parse(temp.F_ItemCode); query = query.Where(u => u.F_JobType == count); } else { query = query.Where(u => u.F_JobType == -99); } } if (!string.IsNullOrEmpty(eqpId)) { query = query.Where(u => u.F_EqpId == eqpId); } if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.F_EqpName .Contains(keyword)||u.F_UserName.Contains(keyword)); } //权限过滤 query = GetDataPrivilege("u","",query); return query.ToList(); } public async Task GetTimeFormJson(string keyValue) { var temp = await uniwork.FindEntity(keyValue); var jobType = int.Parse(temp.F_ItemCode); var entity = await uniwork.FindEntity(a => a.F_JobType == jobType); if (entity == null) { entity = new ControlJobMustTimeEntity(); entity.F_Id = Utils.GuId(); entity.F_JobType = jobType; entity.F_NeedTime = 0; } return entity; } public async Task> GetList(string eqpId, string itemId, string keyword) { var list = repository.IQueryable(); if (!string.IsNullOrEmpty(eqpId)) { list = list.Where(a => a.F_EqpId == eqpId); } if (!string.IsNullOrEmpty(itemId)) { var temp = await uniwork.FindEntity(itemId); var count = int.Parse(temp.F_ItemCode); list = list.Where(a => a.F_JobType == count); } var ids = list.Select(a => a.F_UserId).ToList(); var query = userApp.GetQuery().Where(u => u.F_IsAdmin == false &&!ids.Contains(u.F_Id)); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.F_Account.Contains(keyword) || u.F_RealName.Contains(keyword) || u.F_MobilePhone.Contains(keyword)); } var roles = uniwork.IQueryable().ToList(); var orgs = uniwork.IQueryable().ToList(); var data = query.ToList(); foreach (var item in data) { string[] roleIds = item.F_RoleId.Split(','); string[] departmentIds = item.F_DepartmentId.Split(','); item.F_DepartmentName = string.Join(',', orgs.Where(a => departmentIds.Contains(a.F_Id)).Select(a => a.F_FullName).ToList()); item.F_RoleName = string.Join(',', roles.Where(a => roleIds.Contains(a.F_Id)).Select(a => a.F_FullName).ToList()); } return data; } public async Task GetForm(string keyValue) { var data = await repository.FindEntity(keyValue); return data; } #endregion public async Task GetLookForm(string keyValue) { var data = await repository.FindEntity(keyValue); return GetFieldsFilterData(data); } #region 提交数据 public async Task SubmitForm(string eqpId, string itemId, string keyValue) { var temp = await uniwork.FindEntity(itemId); var count = int.Parse(temp.F_ItemCode); var ids = keyValue.Split(','); var list = new List(); foreach (var item in ids) { ControlJobUserBandingEntity entity = new ControlJobUserBandingEntity(); entity.F_Id = Utils.GuId(); entity.F_UserId = item; entity.F_JobType = count; entity.F_EqpId = eqpId; var user = await uniwork.FindEntity(item); entity.F_UserName = user.F_RealName; if (!string.IsNullOrEmpty(eqpId)) { var eqp = await uniwork.FindEntity(eqpId); if (eqp != null) { entity.F_EqpName = eqp.F_EqpName; } } list.Add(entity); } await repository.Insert(list); } public async Task SubmitTimeForm(ControlJobMustTimeEntity entity) { var old = await uniwork.FindEntity(a => a.F_JobType == entity.F_JobType); if (old == null) { entity.F_Id = Utils.GuId(); await uniwork.Insert(entity); } else { await uniwork.Update(a => a.F_Id == old.F_Id, a => new ControlJobMustTimeEntity { F_NeedTime = entity.F_NeedTime }); } } public async Task DeleteForm(string keyValue) { var ids = keyValue.Split(','); await repository.Delete(t => ids.Contains(t.F_Id.ToString())); } public async Task SubmitCloneForm(int jobType, string ids, string eqpId,bool useEqp) { string[] ArrayId = ids.Split(','); var data = await this.GetList(); List entitys = new List(); var eqp = await uniwork.FindEntity(a => a.F_Id == eqpId); foreach (ControlJobUserBandingEntity entity in data.Where(a=> ArrayId.Contains(a.F_Id)).OrderBy(a=>a.F_Id)) { entity.F_Id = Utils.GuId(); Console.WriteLine(entity.F_Id); entity.F_JobType = jobType; if (useEqp) { if (eqp != null) { entity.F_EqpId = eqpId; entity.F_EqpName = eqp.F_EqpName; } else { entity.F_EqpId = null; entity.F_EqpName = null; } } entitys.Add(entity); } await repository.Insert(entitys); } #endregion } }