using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Filter; using JNPF.Common.Models; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.Logging; using JNPF.Systems.Common; using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Interfaces.Common; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; using JNPF.VisualDev.Interfaces; using Microsoft.AspNetCore.Components.Forms; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; 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 EqpEquipFileService : IEqpEquipFileService, IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; private readonly FileService _fileService; public EqpEquipFileService(ISqlSugarRepository repository, FileService fileService, IUserManager userManager) { _repository = repository; _userManager = userManager; _fileService = fileService; } [HttpPost] public async Task Upload([FromForm]string equip_id,[FromForm] ChunkModel input) { string msg = ""; try { var attachment = await _fileService.Uploader("annexpic", input); EqpEquipFile eqpEquipFile = new EqpEquipFile() { file_name = input.file.FileName, equip_id = equip_id, create_id = _userManager.UserId, create_time = DateTime.Now, attachment = JsonConvert.SerializeObject(attachment), org_id = _userManager.GetUserInfo().Result.organizeId, }; await _repository.InsertAsync(eqpEquipFile); msg = "上传成功"; } catch (Exception e) { msg = "上传失败"; Log.Error(e.Message); throw Oops.Oh(ErrorCode.D8001); } return msg; } [HttpPost] public async Task GetEquipFileList(EquipQueryInput input) { var db = _repository.AsSugarClient(); Dictionary? queryJson = new Dictionary(); if (!string.IsNullOrEmpty(input.queryJson)) { queryJson = JsonConvert.DeserializeObject>(input.queryJson); } var result = await db.Queryable() .LeftJoin((a, b) => a.create_id == b.Id) .LeftJoin((a, b,c) => a.modify_id == c.Id) .LeftJoin((a, b,c,d) => a.equip_id == d.id) .Where((a,b,c,d)=>a.equip_id==input.equip_id) .WhereIF(queryJson!=null && queryJson.ContainsKey("file_name"),(a,b,c,d)=>a.file_name.Contains(queryJson!["file_name"])) .Select((a, b, c,d) => new EquipFileQueryOutput { id = a.id, attachment = a.attachment, create_id = b.RealName, create_id_id = a.create_id, create_time = a.create_time==null ? null : a.create_time.Value.ToString("yyyy-MM-dd"), equip_id=d.name, equip_id_id= a.equip_id, file_name=a.file_name, }).ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(result); } } }