using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aspose.Cells.Drawing; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; using JNPF.VisualDev.Interfaces; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging.Abstractions; using SqlSugar; using Tnb.BasicData; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; using Tnb.EquipMgr.Entities.Enums; 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 ToolMoldMaintainTaskService : IOverideVisualDevService, IToolMoldMaintainTaskService, IDynamicApiController, ITransient { private const string ModuleId = "26189001337381"; private readonly ISqlSugarClient _db; private readonly IRunService _runService; private readonly IVisualDevService _visualDevService; private static Dictionary _dicMold = new Dictionary(); public ToolMoldMaintainTaskService( ISqlSugarRepository repository, IRunService runService, IVisualDevService visualDevService ) { _db = repository.AsSugarClient(); _runService = runService; _visualDevService = visualDevService; OverideFuncs.GetListAsync = GetList; //OverideFuncs.CreateAsync = Create; } public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); private async Task GetList(VisualDevModelListQueryInput input) { if (_dicMold.Count < 1) { var items = await _db.Queryable().ToListAsync(); _dicMold = items?.ToDictionary(x => x.id, x => (x.mold_code, x.mold_name))!; } VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); var data = await _runService.GetListResult(templateEntity, input); if (data?.list.Count > 0) { foreach (var row in data.list) { var pair = row[nameof(ToolMoldMaintainTask.mold_id)]; if (pair.IsNotEmptyOrNull()) { if(_dicMold.TryGetValue(pair.ToString(),out var multi)) { row[nameof(ToolMoldMaintainTask.mold_id)] = $"{multi.code}/{multi.name}"; } } } } return data!; } public async Task Create(ToolMoldMaintainTask entity) { var row = await _db.Insertable(entity).ExecuteCommandAsync(); if (row < 1) throw Oops.Oh(ErrorCode.COM1000); } /// /// 修改任务单状态 /// /// 输入参数 /// [HttpPost] public async Task UpdateStatus(MaintainStatusUpInput input) { DateTime? beginTiem = DateTime.Now; DateTime? endTime = null; if (input.status.ToEnum() == MaintainStatus.YWC) { endTime = DateTime.Now; } var row = await _db.Updateable().SetColumns(it => new ToolMoldMaintainTask { status = input.status, modify_strat_time = beginTiem, modify_end_time = endTime }) .Where(it => input.ids.Contains(it.id)).ExecuteCommandAsync(); if (row < 1) throw Oops.Oh(ErrorCode.COM1001); } } }