98 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C#
		
	
	
	
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 };
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 |