using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aop.Api.Domain; using Aspose.Cells.Drawing; using JNPF.Common.Core.Manager; using JNPF.Common.Enums; using JNPF.Common.Filter; using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; using Tnb.ProductionMgr.Entities.Dto; namespace Tnb.EquipMgr { /// /// 模具管理 /// [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] public class ToolMoldsService : IToolMoldsService, IDynamicApiController, ITransient { private readonly IUserManager _userManager; private readonly ISqlSugarRepository _repository; public ToolMoldsService(IUserManager userManager, ISqlSugarRepository repository) { _userManager = userManager; _repository = repository; } /// /// 获取模具列表 /// /// /// [HttpGet] public async Task> GetListByIds(List ids) { return await _repository.AsSugarClient().Queryable().Where(it => ids.Contains(it.id)).ToListAsync(); } /// /// 根据设备id 获取匹配的模具列表 /// /// 设备Id /// [HttpGet] public async Task> GetListByEqpId([FromRoute] string eqpId) { var db = _repository.AsSugarClient(); var result = await db.Queryable().InnerJoin((a, b) => a.id == b.mold_id) .Where((a, b) => b.equipment_id == eqpId) .Select((a, b) => a) .ToListAsync(); return result; } /// /// 根据模具id获取设备集合 /// /// /// [HttpPost] public async Task> GetEquipmentLists(ToolMoldInput ToolMoldInput) { var db = _repository.AsSugarClient(); var list = await db.Queryable((a, b) => new object[] { JoinType.Inner, a.id == b.equipment_id, }) .Where((a, b) => b.mold_id == ToolMoldInput.mold) .Select((a, b) => new Tnb.EquipMgr.Entities.Dto.EquipmentListOutput { id = a.id, eqp_code = a.code, eqp_name = a.name }).ToListAsync(); return list; } /// /// 增加模具设备绑定 /// /// /// /// [HttpPost] public async Task SaveData(ToolMoldInput ToolMoldInput) { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { var his = await _repository.AsSugarClient().Queryable().ToListAsync(); var list = new List(); foreach (var equip in ToolMoldInput.equipid) { if (his.Where(p => p.mold_id == ToolMoldInput.mold && p.equipment_id == equip).ToList().Count > 0) continue; var entity = new ToolMoldsEquipment(); entity.id = SnowflakeIdHelper.NextId(); entity.mold_id = ToolMoldInput.mold; entity.equipment_id = equip; entity.create_time = DateTime.Now; entity.create_id = _userManager.UserId; list.Add(entity); } await _repository.AsSugarClient().Insertable(list).ExecuteCommandAsync(); }); if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "保存成功" : result.ErrorMessage; } /// /// 批量删除模具设备绑定 /// /// /// /// [HttpPost] public async Task DetachData(ToolMoldInput ToolMoldInput) { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.equipid.Contains(x.equipment_id)).ToList(); await _repository.AsSugarClient().Deleteable(arr).ExecuteCommandAsync(); }); if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "操作成功" : result.ErrorMessage; } public Task GetListById(string moldId) { return _repository.GetFirstAsync(it => it.id == moldId); } } }