From e7af3ec40c3b99d1cfa3ad43621423719055d523 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 07 5月 2025 11:53:36 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
---
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs | 232 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 188 insertions(+), 44 deletions(-)
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
index efd9c7f..e792517 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
@@ -1,44 +1,188 @@
-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.Mvc;
-using System.Reflection;
-
-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 IMesAppService _mesAppService;
- /// <summary>
- /// Initializes a new instance of the <see cref="TestEntityNameController"/> class.
- /// </summary>
- /// <param name="testentitynameAppService">The testentityname application service.</param>
- public WorkPlanController(IMesAppService mesAppService)
- {
- _mesAppService = mesAppService;
- }
-
- /// <summary>
- /// 鑾峰彇鐢熶骇璁″垝.
- /// </summary>
- /// <param name="input">鏍囪瘑绗�.</param>
- /// <returns></returns>
- [HttpPost]
- public virtual async Task<MesOrderResponse> GetWorkPlanAsync([FromBody] List<WorkPlanInput> input)
- {
- return await _mesAppService.CreateAsync(input);
- }
-
-
- }
-}
+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
+{
+ /// <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;
+
+ /// <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;
+ }
+
+ /// <summary>
+ /// 鑾峰彇浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("{id}")]
+ public virtual Task<WorkPlanDto> GetAsync(Guid id)
+ {
+ return _workPlanAppService.GetAsync(id);
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鑾峰彇浣滀笟璁″垝琛ㄧ殑鍒楄〃.
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Page")]
+ public virtual Task<PagedResultDto<WorkPlanDto>> GetListAsync([FromQuery] GetWorkPlanInput input)
+ {
+ return _workPlanAppService.GetListAsync(input);
+ }
+
+ /// <summary>
+ /// 鍒涘缓浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ public virtual Task<WorkPlanDto> CreateAsync(WorkPlanCreateDto input)
+ {
+ return _workPlanAppService.CreateAsync(input);
+ }
+
+ /// <summary>
+ /// 鏇存柊浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="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);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕浣滀笟璁″垝琛�
+ /// </summary>
+ /// <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);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ [Route("{id}")]
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return _workPlanAppService.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鎵归噺鍒犻櫎浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="ids">The ids.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _workPlanAppService.DeleteManyAsync(ids);
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [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();
+ }
+
+ /// <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" };
+ }
+ }
+}
--
Gitblit v1.9.3