using JNPF.Common.Core.Manager; using JNPF.Common.Enums; using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; 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 EqpMaintainTemService : IEqpMaintainTemService, IDynamicApiController, ITransient { private const string ModuleId = "26123080740885"; private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; public EqpMaintainTemService(ISqlSugarRepository repository, IUserManager userManager) { _repository = repository; _userManager = userManager; } /// /// 根据模板id发布到设备 /// [HttpPost] public async Task Publish(SpotInsTemPublishInput input) { ISqlSugarClient db = _repository.AsSugarClient(); DbResult result = await db.Ado.UseTranAsync(async () => { EqpMaintainTemH eqpMaintainTemH = await _repository.GetSingleAsync(x => x.id == input.id); List eqpMaintainTemDs = await db.Queryable().Where(x => x.maintain_tem_id == input.id).ToListAsync(); if (input.equipIds != null && input.equipIds.Length > 0) { List insertEqpMaintainTemEquipHs = new(); List insertEqpMaintainTemEquipDs = new(); foreach (string equipId in input.equipIds) { string id = SnowflakeIdHelper.NextId(); string code = $"{DateTime.Now.ToString("yyyyMMdd") + equipId}"; EqpMaintainTemEquipH eqpMaintainTemEquipH = new() { id = id, code = code, name = eqpMaintainTemH.name + equipId, plan_cycle = eqpMaintainTemH.plan_cycle, plan_cycle_unit = eqpMaintainTemH.plan_cycle_unit, plan_run_notice = eqpMaintainTemH.plan_run_notice, plan_delay = eqpMaintainTemH.plan_delay, start_time = eqpMaintainTemH.start_time, is_start = eqpMaintainTemH.is_start.ToString(), is_repeat = eqpMaintainTemH.is_repeat.ToString(), is_send = eqpMaintainTemH.is_send, maintain_tem_id = input.id, equip_id = equipId, remark = eqpMaintainTemH.remark, plan_run_notice_unit = eqpMaintainTemH.plan_run_notice_unit, plan_delay_unit = eqpMaintainTemH.plan_delay_unit, repeat_post_info_user_id = eqpMaintainTemH.repeat_post_info_user_id, send_post_info_user_id = eqpMaintainTemH.send_post_info_user_id, send_post_id = eqpMaintainTemH.send_post_id, org_id = eqpMaintainTemH.org_id, create_id = _userManager.UserId, create_time = DateTime.Now, duty_user_id= eqpMaintainTemH.duty_user_id, repeat_user_id= eqpMaintainTemH.repeat_user_id }; insertEqpMaintainTemEquipHs.Add(eqpMaintainTemEquipH); if (eqpMaintainTemDs != null && eqpMaintainTemDs.Count > 0) { foreach (EqpMaintainTemD eqpMaintainTem in eqpMaintainTemDs) { EqpMaintainTemEquipD eqpMaintainTemEquipD = new() { id = SnowflakeIdHelper.NextId(), maintain_item_id = eqpMaintainTem.maintain_item_id, maintain_tem_equip_id = id, }; insertEqpMaintainTemEquipDs.Add(eqpMaintainTemEquipD); } } EqpMaintainTemEquipH oldMaintainTemEquipH = await db.Queryable().Where(x => x.maintain_tem_id == input.id && x.equip_id == equipId).FirstAsync(); _ = await db.Deleteable().Where(x => x.maintain_tem_id == input.id && x.equip_id == equipId).ExecuteCommandAsync(); if (oldMaintainTemEquipH != null) { _ = await db.Deleteable().Where(x => x.maintain_tem_equip_id == oldMaintainTemEquipH.id).ExecuteCommandAsync(); } } if (insertEqpMaintainTemEquipHs != null && insertEqpMaintainTemEquipHs.Count > 0) { _ = await db.Insertable(insertEqpMaintainTemEquipHs).ExecuteCommandAsync(); } if (insertEqpMaintainTemEquipDs != null && insertEqpMaintainTemEquipDs.Count > 0) { _ = await db.Insertable(insertEqpMaintainTemEquipDs).ExecuteCommandAsync(); } } }); return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : result.IsSuccess ? "发布成功" : result.ErrorMessage; } } }