using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aspose.Cells.Drawing; using JNPF.Common.Core.Manager; using JNPF.Common.Enums; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using Mapster; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; namespace Tnb.EquipMgr { /// /// 模具保养规则定义服务 /// [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] public class ToolMoldMaintainRuleService : BaseMoldMaintainService, IToolMoldMaintainRuleService, IDynamicApiController, ITransient { private readonly ISqlSugarClient _db; public ToolMoldMaintainRuleService(ISqlSugarRepository repository) : base(repository.AsSugarClient()) { _db = repository.AsSugarClient(); } /// /// 根据规则Id获取匹配的模具列表 /// /// 规则Id /// [HttpGet] public async Task GetListById([FromRoute] string ruleId) { var result = new List(); var list = await _db.Queryable().Where(it => it.rule_id == ruleId).ToListAsync(); if (list?.Count > 0) { var ids = list.Select(it => it.mold_id).ToList(); result = await _db.Queryable().Where(it => ids.Contains(it.id)) .Select(it => new MaintainRuleMoldListOutput { mold_id = it.id }, true).ToListAsync(); } return result; } /// /// 关联模具 /// /// 关联模具输入参数 /// /// [HttpPost] public async Task RelevanceMold(RelevanceMoldInput input) => await Relevance(input, nameof(ToolMoldMaintainRuleRelation.rule_id), nameof(ToolMoldMaintainRuleRelation.mold_id), it => it.rule_id == input.rule_id); /// /// 删除模具信息 /// /// /// [HttpPost] public async Task DeleteMoldRelevance(RelevanceMoldInput input) { var row = await _db.Deleteable().Where(it => it.rule_id == input.rule_id && input.ids.Contains(it.mold_id)).ExecuteCommandAsync(); if (row < 1) throw Oops.Oh(ErrorCode.COM1002); } } }