using langguanApi.Extensions;
using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using Mapster;
using System.Linq.Expressions;
namespace langguanApi.Service
{
///
/// OrganizedService
///
[ServiceInjection(InjectionType.Transient)]
public class OrganizedService : BaseService
{
private readonly DeviceService _deviceService;
public OrganizedService(IConfiguration config, DeviceService device) : base(config, nameof(Organized))
{
_deviceService = device;
}
///
/// Add 工序
///
///
///
public async Task Add(OrganizedDto input)
{
var entity = input.Adapt();
await CreateAsync(entity);
return new ApiResult() { code = 0 };
}
///
/// Update
///
///
///
public async Task Update(OrganizedUpdateDto input)
{
var entity = input.Adapt();
await UpdateAsync(input.Id, entity);
return new ApiResult() { code = 0 };
}
///
/// Delete
///
///
///
public async Task Delete(IEnumerable ids)
{
if (ids.Any())
{
foreach (var id in ids)
{
await RemoveAsync(id);
}
}
else
{
return new ApiResult() { code = 1, msg = "请选择要删除的记录" };
}
return new ApiResult() { code = 0 };
}
///
/// ListAndDevice
///
/// 1,有组织,2无组织
/// 1,voc,2cems
/// 组织Id
///
public async Task ListAndDevice(int OrganizedType, int DeviceType, string OrgId)
{
Expression> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
if (!string.IsNullOrEmpty(OrgId))
{
exp = exp.And(filter => filter.Id == OrgId);
}
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
List list = new List();
Expression> deviceExp = filter => filter.IsDelete == false;
if (DeviceType > 0)
{
deviceExp = deviceExp.And(filter => filter.DeviceType == DeviceType);
}
if (!string.IsNullOrEmpty(OrgId))
{
deviceExp= deviceExp.And(filter => filter.OrgId == OrgId);
}
var devices = (await _deviceService.GetListWithExp(deviceExp)).ToList();
foreach (var item in result)
{
list.Add(new OrganizedByDeviceDto
{
Items = devices.Where(s => s.OrgId == item.Id).ToList(),
Order = item.Order,
Name = item.Name,
OrganizedType = item.OrganizedType,
Id = item.Id,
});
}
return new ApiResult() { code = 0, data = list };
}
///
/// List
///
/// 1,有组织,2无组织
///
public async Task List(int OrganizedType = 1)
{
List dto = new List();
Expression> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
return new ApiResult() { code = 0, data = result };
}
}
}