From bd5c3cb9161c8365b319705f55157b1a444dfb2c Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 18 5月 2025 10:07:27 +0800
Subject: [PATCH] 增加方法
---
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs | 308 +++++++++++++++++++++++++++-----------------------
1 files changed, 167 insertions(+), 141 deletions(-)
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
index e792517..7e797c8 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
@@ -1,188 +1,214 @@
-using Ao.Lang;
-using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
-using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
-using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using MiniExcelLibs;
-using System.Reflection;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-
-namespace CMS.Plugin.PipeLineLems.Controller
-{
+using Ao.Lang;
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Framework.AspNetCore.Users;
+using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
+using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using MiniExcelLibs;
+using System.Reflection;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using CmsQueryExtensions.Entitys;
+
+namespace CMS.Plugin.PipeLineLems.Controller
+{
/// <summary>
/// 浣滀笟璁″垝琛ㄦ湇鍔�
/// </summary>
- [ApiController]
- [TypeFilter(typeof(CMSLanguageFilter))]
- [TypeFilter(typeof(CMSUowActionFilter))]
- [TypeFilter(typeof(CMSAuditActionFilter))]
- [TypeFilter(typeof(CMSExceptionFilter))]
- [Route("api/v{version:apiVersion}/PipeLineLems/[controller]")]
- public class WorkPlanController : ControllerBase
- {
- private readonly IWorkPlanAppService _workPlanAppService;
-
+ [ApiController]
+ [TypeFilter(typeof(CMSLanguageFilter))]
+ [TypeFilter(typeof(CMSUowActionFilter))]
+ [TypeFilter(typeof(CMSAuditActionFilter))]
+ [TypeFilter(typeof(CMSExceptionFilter))]
+ [Route("api/v{version:apiVersion}/PipeLineLems/[controller]")]
+ public class WorkPlanController : ControllerBase
+ {
+ private readonly IWorkPlanAppService _workPlanAppService;
+ private readonly ICurrentUser _currentUser;
+
/// <summary>
/// Initializes a new instance of the <see cref="WorkPlanController"/> class.
/// </summary>
/// <param name="workPlanAppService">The workPlan application service.</param>
- public WorkPlanController(IWorkPlanAppService workPlanAppService)
- {
- _workPlanAppService = workPlanAppService;
- }
-
+ public WorkPlanController(IWorkPlanAppService workPlanAppService, ICurrentUser currentUser)
+ {
+ _workPlanAppService = workPlanAppService;
+ _currentUser = currentUser;
+ }
+
/// <summary>
/// 鑾峰彇浣滀笟璁″垝琛�
/// </summary>
- /// <param name="id">鏍囪瘑绗�.</param>
+ /// <param name="id">涓婚敭ID</param>
/// <returns></returns>
- [HttpGet]
- [Route("{id}")]
- public virtual Task<WorkPlanDto> GetAsync(Guid id)
- {
- return _workPlanAppService.GetAsync(id);
- }
-
+ [HttpGet]
+ [Route("{id}")]
+ public virtual Task<WorkPlanDto> GetAsync(Guid id)
+ {
+ return _workPlanAppService.GetAsync(id);
+ }
+
/// <summary>
/// 鍒嗛〉鑾峰彇浣滀笟璁″垝琛ㄧ殑鍒楄〃.
/// </summary>
- /// <param name="input">杈撳叆.</param>
+ /// <param name="input">鏌ヨ鍙傛暟</param>
/// <returns></returns>
- [HttpGet]
- [Route("Page")]
- public virtual Task<PagedResultDto<WorkPlanDto>> GetListAsync([FromQuery] GetWorkPlanInput input)
- {
- return _workPlanAppService.GetListAsync(input);
- }
-
+ [HttpGet]
+ [Route("Page")]
+ public virtual Task<PagedResultDto<WorkPlanDto>> GetListAsync([FromQuery] GetWorkPlanInput input)
+ {
+ return _workPlanAppService.GetListAsync(input);
+ }
+
/// <summary>
/// 鍒涘缓浣滀笟璁″垝琛�
/// </summary>
- /// <param name="input">杈撳叆.</param>
+ /// <param name="input">鍒涘缓鍙傛暟</param>
/// <returns></returns>
- //[Authorize]
- [HttpPost]
- public virtual Task<WorkPlanDto> CreateAsync(WorkPlanCreateDto input)
- {
- return _workPlanAppService.CreateAsync(input);
- }
-
+ [Authorize]
+ [HttpPost]
+ public virtual Task<WorkPlanDto> CreateAsync(WorkPlanCreateDto input)
+ {
+ input.CreatorName = _currentUser.UserAccount;//鍒涘缓浜�
+ return _workPlanAppService.CreateAsync(input);
+ }
+
/// <summary>
/// 鏇存柊浣滀笟璁″垝琛�
/// </summary>
- /// <param name="id">鏍囪瘑绗�.</param>
- /// <param name="input">杈撳叆.</param>
+ /// <param name="id">涓婚敭ID</param>
+ /// <param name="input">鏇存柊鍙傛暟</param>
/// <returns></returns>
- //[Authorize]
- [HttpPut]
- [Route("{id}")]
- public virtual Task<WorkPlanDto> UpdateAsync(Guid id, WorkPlanUpdateDto input)
- {
- return _workPlanAppService.UpdateAsync(id, input);
- }
-
+ [Authorize]
+ [HttpPut]
+ [Route("{id}")]
+ public virtual Task<WorkPlanDto> UpdateAsync(Guid id, WorkPlanUpdateDto input)
+ {
+ input.LastModifierName = _currentUser.UserAccount;//淇敼浜�
+ return _workPlanAppService.UpdateAsync(id, input);
+ }
+
/// <summary>
/// 鍏嬮殕浣滀笟璁″垝琛�
/// </summary>
- /// <param name="ids">Id闆嗗悎.</param>
+ /// <param name="ids">Id闆嗗悎</param>
/// <returns></returns>
- //[Authorize]
- [HttpPost]
- [Route("Clone")]
- public virtual Task<List<WorkPlanDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
- {
- return _workPlanAppService.CloneAsync(ids);
- }
-
+ [Authorize]
+ [HttpPost]
+ [Route("Clone")]
+ public virtual Task<List<WorkPlanDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ MyCurrentUser myCurrentUser = new MyCurrentUser()
+ {
+ UserAccount = _currentUser.UserAccount,
+ UserId = _currentUser.UserId
+ };
+ return _workPlanAppService.CloneAsync(ids);
+ }
+
/// <summary>
/// 鍒犻櫎浣滀笟璁″垝琛�
/// </summary>
- /// <param name="id">鏍囪瘑绗�.</param>
+ /// <param name="id">涓婚敭ID</param>
/// <returns></returns>
- //[Authorize]
- [HttpDelete]
- [Route("{id}")]
- public virtual Task DeleteAsync(Guid id)
- {
- return _workPlanAppService.DeleteAsync(id);
- }
-
+ [Authorize]
+ [HttpDelete]
+ [Route("{id}")]
+ public virtual Task DeleteAsync(Guid id)
+ {
+ MyCurrentUser myCurrentUser = new MyCurrentUser()
+ {
+ UserAccount = _currentUser.UserAccount,
+ UserId = _currentUser.UserId
+ };
+ return _workPlanAppService.DeleteAsync(id);//閫昏緫鍒犻櫎
+ }
+
/// <summary>
/// 鎵归噺鍒犻櫎浣滀笟璁″垝琛�
/// </summary>
- /// <param name="ids">The ids.</param>
+ /// <param name="ids">涓婚敭ID闆嗗悎</param>
/// <returns></returns>
- //[Authorize]
- [HttpDelete]
- public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
- {
- return _workPlanAppService.DeleteManyAsync(ids);
- }
-
+ [Authorize]
+ [HttpDelete]
+ public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ MyCurrentUser myCurrentUser = new MyCurrentUser()
+ {
+ UserAccount = _currentUser.UserAccount,
+ UserId = _currentUser.UserId
+ };
+ return _workPlanAppService.DeleteManyAsync(ids);//閫昏緫鍒犻櫎
+ }
+
/// <summary>
/// 璋冩暣鎺掑簭浣滀笟璁″垝琛�
/// </summary>
- /// <param name="id">鏍囪瘑绗�.</param>
+ /// <param name="id">涓婚敭ID</param>
/// <returns></returns>
- [HttpPut]
- [Route("{id}/AdjustSort/{sort}")]
- public virtual Task AdjustSortAsync(Guid id, int sort)
- {
- return _workPlanAppService.AdjustSortAsync(id, sort);
- }
-
+ [HttpPut]
+ [Route("{id}/AdjustSort/{sort}")]
+ public virtual Task AdjustSortAsync(Guid id, int sort)
+ {
+ return _workPlanAppService.AdjustSortAsync(id, sort);
+ }
+
/// <summary>
/// 瀵煎叆浣滀笟璁″垝琛�
/// </summary>
/// <returns></returns>
- [Authorize]
- [HttpPost]
- [Route("Import")]
- public virtual async Task<IActionResult> ImportAsync(IFormFile file)
- {
- using var stream = new MemoryStream();
- await file.CopyToAsync(stream);
- stream.Seek(0L, SeekOrigin.Begin);
-
- var sheetNames = stream.GetSheetNames();
- var workPlanRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WorkPlansImportModel.WorkPlanImportModel>(stream, sheetName: "閰嶇疆").ToList() : new();
-
- if (!workPlanRows.Any())
- {
- throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸");
- }
-
- await _workPlanAppService.ImportAsync(new WorkPlansImportModel
- {
- WorkPlans = workPlanRows,
- });
-
- return Ok();
- }
-
+ [Authorize]
+ [HttpPost]
+ [Route("Import")]
+ public virtual async Task<IActionResult> ImportAsync(IFormFile file)
+ {
+ using var stream = new MemoryStream();
+ await file.CopyToAsync(stream);
+ stream.Seek(0L, SeekOrigin.Begin);
+
+ var sheetNames = stream.GetSheetNames();
+ var workPlanRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WorkPlansImportModel.WorkPlanImportModel>(stream, sheetName: "閰嶇疆").ToList() : new();
+
+ if (!workPlanRows.Any())
+ {
+ throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸");
+ }
+
+ MyCurrentUser myCurrentUser = new MyCurrentUser()
+ {
+ UserAccount = _currentUser.UserAccount,
+ UserId = _currentUser.UserId
+ };
+ await _workPlanAppService.ImportAsync(new WorkPlansImportModel
+ {
+ WorkPlans = workPlanRows,
+ }, myCurrentUser);
+
+ return Ok();
+ }
+
/// <summary>
/// 瀵煎嚭浣滀笟璁″垝琛�
/// </summary>
/// <returns></returns>
- [HttpGet]
- [Route("Export")]
- public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWorkPlanInput input)
- {
- input.MaxResultCount = int.MaxValue;
- var exportData = await _workPlanAppService.ExportAsync(input);
- var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WorkPlan瀵煎嚭妯℃澘.xlsx");
- if (!System.IO.File.Exists(templatePath))
- {
- templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WorkPlan瀵煎嚭妯℃澘.xlsx");
- }
-
- var memoryStream = new MemoryStream();
- await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets);
- memoryStream.Seek(0L, SeekOrigin.Begin);
- return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" };
- }
- }
-}
+ [HttpGet]
+ [Route("Export")]
+ public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWorkPlanInput input)
+ {
+ input.MaxResultCount = int.MaxValue;
+ var exportData = await _workPlanAppService.ExportAsync(input);
+ var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WorkPlan瀵煎嚭妯℃澘.xlsx");
+ if (!System.IO.File.Exists(templatePath))
+ {
+ templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WorkPlan瀵煎嚭妯℃澘.xlsx");
+ }
+
+ var memoryStream = new MemoryStream();
+ await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets);
+ memoryStream.Seek(0L, SeekOrigin.Begin);
+ return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" };
+ }
+ }
+}
--
Gitblit v1.9.3