lg_backend/langguanApi/Service/OrganizedService.cs

98 lines
3.5 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 langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using Mapster;
using System.Linq.Expressions;
namespace langguanApi.Service
{
/// <summary>
/// OrganizedService
/// </summary>
[ServiceInjection(InjectionType.Transient)]
public class OrganizedService : BaseService<Organized>
{
private readonly DeviceService _deviceService;
public OrganizedService(IConfiguration config, DeviceService device) : base(config, nameof(Organized))
{
_deviceService = device;
}
/// <summary>
/// Add 工序
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> Add(OrganizedDto input)
{
var entity = input.Adapt<Organized>();
await CreateAsync(entity);
return new ApiResult() { code = 0 };
}
/// <summary>
/// Update
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> Update(OrganizedUpdateDto input)
{
var entity = input.Adapt<Organized>();
await UpdateAsync(input.Id, entity);
return new ApiResult() { code = 0 };
}
/// <summary>
/// Delete
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public async Task<ApiResult> Delete(IEnumerable<string> ids)
{
if (ids.Any())
{
foreach (var id in ids)
{
await RemoveAsync(id);
}
}
else
{
return new ApiResult() { code = 1, msg = "请选择要删除的记录" };
}
return new ApiResult() { code = 0 };
}
/// <summary>
/// ListAndDevice
/// </summary>
/// <param name="OrganizedType">1,有组织2无组织</param>
/// <returns></returns>
public async Task<ApiResult> ListAndDevice(int OrganizedType = 1)
{
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
List<OrganizedByDeviceDto> list = new List<OrganizedByDeviceDto>();
var devices = await _deviceService.GetDeviceByOrgids(result.Select(s => s.Id));
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 };
}
/// <summary>
/// List
/// </summary>
/// <param name="OrganizedType">1,有组织2无组织</param>
/// <returns></returns>
public async Task<ApiResult> List(int OrganizedType = 1)
{
Expression<Func<Organized, bool>> 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 };
}
}
}