namespace WCS.Application; /// /// 设备工位服务 /// [ApiDescriptionSettings(ApplicationConst.GroupName, Order = 100)] public class WcsPositionService : IDynamicApiController, ITransient { private readonly SqlSugarRepository _WcsPositionRep; private readonly SqlSugarRepository _wcsPlcRep; public WcsPositionService(SqlSugarRepository WcsPositionRep, SqlSugarRepository wcsPlcRep) { _WcsPositionRep = WcsPositionRep; _wcsPlcRep = wcsPlcRep; } /// /// 分页查询设备工位 /// /// /// [HttpPost] [ApiDescriptionSettings(Name = "Page")] [DisplayName("分页查询设备工位")] public async Task> Page(PageWcsPositionInput input) { if (input.Field.IsNullOrEmpty()) { input.Field = "u.Id"; input.Order = "desc"; } input.SearchKey = input.SearchKey?.Trim(); var query = _WcsPositionRep.AsQueryable() .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u => u.Text.Contains(input.SearchKey) || u.StationNum.Contains(input.SearchKey) ) .WhereIF(input.DeviceId > 0, u => u.DeviceId == input.DeviceId) .WhereIF(!string.IsNullOrWhiteSpace(input.Text), u => u.Text.Contains(input.Text.Trim())) //处理外键和TreeSelector相关字段的连接 .LeftJoin((u, deviceid) => u.DeviceId == deviceid.Id) .Select((u, deviceid) => new WcsPositionOutput { Id = u.Id, DeviceId = u.DeviceId, DeviceIdText = deviceid.Text, StationNum = u.StationNum, PlcPos = u.PlcPos, PosType = u.PosType, StringLength = u.StringLength, LedIP = u.LedIP, Text = u.Text, CreateUserId = u.CreateUserId, CreateUserName = u.CreateUserName, CreateTime = u.CreateTime, UpdateUserId = u.UpdateUserId, UpdateUserName = u.UpdateUserName, UpdateTime = u.UpdateTime, }); return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } /// /// 增加设备工位 /// /// /// [HttpPost] [ApiDescriptionSettings(Name = "Add")] [DisplayName("增加设备工位")] public async Task Add(AddWcsPositionInput input) { var entity = input.Adapt(); await _WcsPositionRep.InsertAsync(entity); return entity.Id; } /// /// 删除设备工位 /// /// /// [HttpPost] [ApiDescriptionSettings(Name = "Delete")] [DisplayName("删除设备工位")] public async Task Delete(DeleteWcsPositionInput input) { var entity = await _WcsPositionRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002); await _WcsPositionRep.FakeDeleteAsync(entity); //假删除 //await _WcsPositionRep.DeleteAsync(entity); //真删除 } /// /// 更新设备工位 /// /// /// [HttpPost] [ApiDescriptionSettings(Name = "Update")] [DisplayName("更新设备工位")] public async Task Update(UpdateWcsPositionInput input) { var entity = input.Adapt(); await _WcsPositionRep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); } /// /// 获取设备工位 /// /// /// [HttpGet] [ApiDescriptionSettings(Name = "Detail")] [DisplayName("获取设备工位")] public async Task Detail([FromQuery] QueryByIdWcsPositionInput input) { return await _WcsPositionRep.GetFirstAsync(u => u.Id == input.Id); } /// /// 获取设备工位列表 /// /// /// [HttpGet] [ApiDescriptionSettings(Name = "List")] [DisplayName("获取设备工位列表")] public async Task> List([FromQuery] PageWcsPositionInput input) { return await _WcsPositionRep.AsQueryable().Select().ToListAsync(); } /// /// 获取设备ID列表 /// /// [ApiDescriptionSettings(Name = "WcsDeviceDeviceIdDropdown"), HttpGet] [DisplayName("获取设备ID列表")] public async Task WcsDeviceDeviceIdDropdown() { return await _WcsPositionRep.Context.Queryable() .Select(u => new { Label = u.Text, Value = u.Id } ).ToListAsync(); } /// /// 获取设备ID列表 /// /// [ApiDescriptionSettings(Name = "WcsPlcIdDropdown"), HttpGet] [DisplayName("获取设备ID列表")] public async Task WcsPlcIdDropdown() { return await _wcsPlcRep.Context.Queryable() .Select(u => new { Label = u.Text, Value = u.Id } ).ToListAsync(); } }