using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; using JNPF.VisualDev.Interfaces; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Interfaces; namespace Tnb.EquipMgr { /// /// 点巡检执行管理 /// [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] [OverideVisualDev(ModuleId)] public class EquSpotInsRecordService : IOverideVisualDevService, IEquSpotInsRecordService, IDynamicApiController, ITransient { public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); private const string ModuleId = "26123080740885"; private readonly ISqlSugarRepository _repository; private readonly IVisualDevService _visualDevService; private readonly IRunService _runService; private readonly IUserManager _userManager; public EquSpotInsRecordService(ISqlSugarRepository repository, IRunService runService, IUserManager userManager, IVisualDevService visualDevService) { _repository = repository; _visualDevService = visualDevService; _runService = runService; _userManager = userManager; OverideFuncs.UpdateAsync = ExecuteSpotIns; } public async Task ExecuteSpotIns(string id,[FromBody]VisualDevModelDataUpInput input) { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { //string attachment = JsonConvert.SerializeObject(input.data["attachment"]); // _repository.UpdateAsync(x => new EqpSpotInsRecordH() // { // result = (int)input.data["result"], // attachment = attachment, // result_remark = input.data["result_remark"].ToString(), // }, x => x.id == input.data["id"]); VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); await _runService.Update(id,templateEntity, input); EqpSpotInsRecordH eqpSpotInsRecordH = _repository.GetSingle(x=>x.id==input.data["id"].ToString()); string status = ""; if (eqpSpotInsRecordH.is_repeat == "1") { status = SpotInsRecordExecutionStatus.TOBECHECK; } else { status = SpotInsRecordExecutionStatus.COMPLETED; } _repository.UpdateAsync(x => new EqpSpotInsRecordH() { status = status, spot_record_date_time = DateTime.Now, spot_record_user_id = _userManager.UserId }, x => x.id == input.data["id"]); }); if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "执行成功" : result.ErrorMessage; } } }