using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Text; using System.Threading.Tasks; using Aspose.Cells.Drawing; using JNPF.Common.Core.Manager; using JNPF.Common.Enums; using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using Mapster; using Microsoft.AspNetCore.Mvc; using SqlSugar; using JNPF.Common.Contracts; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Interfaces; using Senparc.Weixin.MP.AdvancedAPIs.GroupMessage; using Aop.Api.Domain; namespace Tnb.EquipMgr { [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] public class ToolMoldMaintainGroupService : BaseMoldMaintainService, IToolMoldMaintainGroupService, IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; private readonly ISqlSugarClient _db; public ToolMoldMaintainGroupService(ISqlSugarRepository repository) : base(repository.AsSugarClient()) { _db = repository.AsSugarClient(); } #region Get /// /// 根据项目组Id获取关联保养项信息 /// /// /// [HttpGet("{itemGroupId}")] public async Task GetMaintianItemListByGroupId(string itemGroupId) { var list = new List(); var itemIds = await _db.Queryable().Where(it => it.item_group_id == itemGroupId).Select(it => it.item_id).ToListAsync(); if (itemIds?.Count > 0) { var items = await _db.Queryable().Where(it => itemIds.Contains(it.id)).ToListAsync(); list = items.Adapt>(); } return list; } /// /// 根据项目组Id获取关联模具信息 /// /// /// [HttpGet("{itemGroupId}")] public async Task GetMoldListByGroupId(string itemGroupId) { var list = new List(); var moldIds = await _db.Queryable().Where(it => it.item_group_id == itemGroupId).Select(it => it.mold_id).ToListAsync(); if (moldIds?.Count > 0) { var items = await _db.Queryable().Where(it => moldIds.Contains(it.id)).ToListAsync(); list = items.Adapt>(); } return list; } #endregion #region Post /// /// 关联保养组与保养项 /// /// /// [HttpPost] public async Task RelevanceMaintianGroupAndItem(MoldMaintainGroupItemInput input) { await Relevance(input, nameof(ToolMoldMaintainGroupItem.item_group_id), nameof(ToolMoldMaintainGroupItem.item_id), it => it.item_group_id == input.id); } /// /// 关联项目组与模具 /// /// /// [HttpPost] public async Task RelevanceMaintianGroupAndMold(MoldMaintainGroupItemRelationInput input) { await Relevance(input, nameof(ToolMoldMaintainGroupRelation.item_group_id), nameof(ToolMoldMaintainGroupRelation.mold_id), it => it.item_group_id == input.id); } /// /// 删除项目组与模具检查项信息 /// /// /// [HttpPost] public async Task Delete(MoldMaintainDelInput input) { if (input.table_name == "item") { await Delete(it => it.item_group_id == input.id && input.ids.Contains(it.item_id)); await Delete(it => it.item_group_id == input.id && input.ids.Contains(it.item_id)); } else { await Delete(it => it.item_group_id == input.id && input.ids.Contains(it.mold_id)); await Delete(it => it.item_group_id == input.id && input.ids.Contains(it.mold_id)); } } #endregion private async Task Delete(Expression> deleteExp) where T : BaseEntity, new() { await _db.Deleteable().Where(deleteExp).ExecuteCommandAsync(); } } }