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) { var 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(); List insertEqpMaintainTemEquipDs = new List(); foreach (var equipId in input.equipIds) { string id = SnowflakeIdHelper.NextId(); string code = $"{DateTime.Now.ToString("yyyyMMdd") + equipId}"; EqpMaintainTemEquipH eqpMaintainTemEquipH = new EqpMaintainTemEquipH() { 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, }; insertEqpMaintainTemEquipHs.Add(eqpMaintainTemEquipH); if (eqpMaintainTemDs != null && eqpMaintainTemDs.Count > 0) { foreach (var eqpMaintainTem in eqpMaintainTemDs) { EqpMaintainTemEquipD eqpMaintainTemEquipD = new EqpMaintainTemEquipD() { 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(); } } }); if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "发布成功" : result.ErrorMessage; } } }