EasyMES/WaterCloud.Service/ClassTask/ControlJobUserBandingService.cs
2022-10-20 17:12:54 +08:00

217 lines
7.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 创 建:超级管理员
/// 日 期2021-06-03 13:55
/// 描 述:信息设置服务类
/// </summary>
public class ControlJobUserBandingService : DataFilterService<ControlJobUserBandingEntity>, IDenpendency
{
private UserService userApp;
public ControlJobUserBandingService(IDbContext context) : base(context)
{
userApp = new UserService(context);
}
#region
public async Task<List<ControlJobUserBandingEntity>> GetList(string keyword = "")
{
var data = repository.IQueryable();
return data.OrderBy(t => t.F_Id).ToList();
}
public async Task<List<ControlJobUserBandingEntity>> GetLookList(string keyword = "")
{
var query = repository.IQueryable();
//权限过滤
query = GetDataPrivilege("u", "", query);
return query.OrderBy(t => t.F_Id).ToList();
}
public async Task<List<ControlJobUserBandingEntity>> GetLookList(string eqpId,string itemId = "", string keyword = "")
{
var query = repository.IQueryable();
if(!string.IsNullOrEmpty(itemId))
{
var temp = await uniwork.FindEntity<ItemsDetailEntity>(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<ControlJobMustTimeEntity> GetTimeFormJson(string keyValue)
{
var temp = await uniwork.FindEntity<ItemsDetailEntity>(keyValue);
var jobType = int.Parse(temp.F_ItemCode);
var entity = await uniwork.FindEntity<ControlJobMustTimeEntity>(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<List<UserExtend>> 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<ItemsDetailEntity>(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<RoleEntity>().ToList();
var orgs = uniwork.IQueryable<OrganizeEntity>().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<ControlJobUserBandingEntity> GetForm(string keyValue)
{
var data = await repository.FindEntity(keyValue);
return data;
}
#endregion
public async Task<ControlJobUserBandingEntity> 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<ItemsDetailEntity>(itemId);
var count = int.Parse(temp.F_ItemCode);
var ids = keyValue.Split(',');
var list = new List<ControlJobUserBandingEntity>();
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<UserEntity>(item);
entity.F_UserName = user.F_RealName;
if (!string.IsNullOrEmpty(eqpId))
{
var eqp = await uniwork.FindEntity<EquipmentEntity>(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<ControlJobMustTimeEntity>(a => a.F_JobType == entity.F_JobType);
if (old == null)
{
entity.F_Id = Utils.GuId();
await uniwork.Insert(entity);
}
else
{
await uniwork.Update<ControlJobMustTimeEntity>(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<ControlJobUserBandingEntity> entitys = new List<ControlJobUserBandingEntity>();
var eqp = await uniwork.FindEntity<EquipmentEntity>(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
}
}