// 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995 // // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证 using System.ComponentModel; using Admin.NET.Bodk.Cells.Entities; using Admin.NET.Bodk.Cells.Models; using Admin.NET.Core; using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using Microsoft.AspNetCore.Mvc; namespace Admin.NET.Bodk.Cells; [ApiDescriptionSettings(Groups = new[] { "Bodk Groups" }, Name = "Cell", Description = "细胞服务")] public class CellService : IDynamicApiController, ITransient { private readonly SqlSugarRepository _repository; private readonly UserManager _userManager; public CellService(SqlSugarRepository repository, UserManager userManager) { _repository = repository; _userManager = userManager; } [UnitOfWork] [ApiDescriptionSettings(Name = "GetList"), HttpPost] [DisplayName("GetList")] public async Task> GetList(CellQueryInput queryInput) { return await _repository.AsQueryable() .WhereIF(!string.IsNullOrWhiteSpace(queryInput.BoxBarCode), m => queryInput.BoxBarCode != null && m.BoxBarCode.Contains(queryInput.BoxBarCode)) .WhereIF(!string.IsNullOrWhiteSpace(queryInput.TubeBarcode), m => queryInput.TubeBarcode != null && m.BoxBarCode.Contains(queryInput.TubeBarcode)) .WhereIF(queryInput.CustomerId is not null, m => m.CustomerId == queryInput.CustomerId) .WhereIF(queryInput.DeviceId is not null, m => m.DeviceId == queryInput.DeviceId) .WhereIF(queryInput.CellType is not null, m => m.CellType == queryInput.CellType) .Where(m => _userManager.OrgId == m.OrgId) .Select((u) => new Models.Cell() { Id = u.Id, TubeBarcode = u.TubeBarcode, BoxBarCode = u.BoxBarCode, CellType = u.CellType, CustomerId = u.CustomerId, DeviceId = u.DeviceId, Circle = u.Circle, Column = u.Column, Layer = u.Layer, DepositTime = u.DepositTime, ExpirationTime = u.ExpirationTime, Activity = u.Activity, Density = u.Density, Capacity = u.Capacity }) .ToPagedListAsync(queryInput.Page, queryInput.PageSize); } [UnitOfWork] [ApiDescriptionSettings(Name = "Add"), HttpPost] [DisplayName("Add")] public async Task AddCell(CellInput input) { return await _repository.InsertReturnBigIdentityAsync(new CellEntity() { TubeBarcode = input.TubeBarcode, BoxBarCode = input.BoxBarCode, CellType = input.CellType, CustomerId = input.CustomerId, DeviceId = input.DeviceId, Circle = input.Circle, Column = input.Column, Layer = input.Layer, DepositTime = input.DepositTime, ExpirationTime = input.ExpirationTime, Activity = input.Activity, Density = input.Density, Capacity = input.Capacity }); } [UnitOfWork] [ApiDescriptionSettings(Name = "Update"), HttpPost] [DisplayName("Update")] public async Task UpdateCell(CellInput input) { await _repository.UpdateAsync(new CellEntity() { Id = input.Id, TubeBarcode = input.TubeBarcode, BoxBarCode = input.BoxBarCode, CellType = input.CellType, CustomerId = input.CustomerId, DeviceId = input.DeviceId, Circle = input.Circle, Column = input.Column, Layer = input.Layer, DepositTime = input.DepositTime, ExpirationTime = input.ExpirationTime, Activity = input.Activity, Density = input.Density, Capacity = input.Capacity }); } [UnitOfWork] [ApiDescriptionSettings(Name = "Delete"), HttpPost] [DisplayName("Delete")] public async Task DeleteCell(long? id) { await _repository.DeleteByIdAsync(id); } }