2025-09-10 10:04:40 +08:00

108 lines
3.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DOAN.Admin.WebApi.Filters;
using DOAN.Model;
using DOAN.Model.MES.product.Dto;
using DOAN.Service.MES.group.IService;
using DOAN.Service.MES.product;
using DOAN.Service.MES.product.IService;
using Microsoft.AspNetCore.Mvc;
namespace DOAN.WebApi.Controllers.MES.product
{
//[Verify]
[Route("mes/productManagement/ProReportwork")]
public class ProweekplanManageController : BaseController
{
/// <summary>
/// 周计划表接口
/// </summary>
private readonly IProweekplanManageService _proweekplanManageService;
public ProweekplanManageController(IProweekplanManageService proweekplanManageService)
{
_proweekplanManageService = proweekplanManageService;
}
//TODO 查询计划列表 年周零件号
[HttpPost("searchWeekplan")]
[Log(Title = "查询计划列表 年周零件号", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
public IActionResult SearchWeekplan([FromBody] WeekplanQueryDto weekplanQuery)
{
PagedInfo<ProWeeklyPlanChildDateDto> result = _proweekplanManageService.SearchWeekplan(weekplanQuery);
return SUCCESS(result);
}
//TODO excel导入计划
/// <summary>
/// 导入周计划
/// </summary>
/// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
/// <returns>导入成功数 若-1 则excel读取异常</returns>
[HttpPost("importWeekplan")]
[Log(Title = "生产工单导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)]
[AllowAnonymous]
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
{
if (formFile == null)
{
return SUCCESS(null);
}
int result = _proweekplanManageService.ImportExcel(formFile, HttpContext.GetName());
return SUCCESS(result);
}
//TODO 导出模板
/// <summary>
/// 生产工单导入模板下载 workorder 启用9/14
/// </summary>
/// <returns></returns>
[HttpGet("importTemplate")]
[Log(Title = "生产周计划导入模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
[AllowAnonymous]
public IActionResult ImportTemplateExcel()
{
(string, string) result = DownloadImportTemplate("weekplan");
return ExportExcel(result.Item2, result.Item1);
}
//TODO 导出excel指定日计划
[HttpGet("ExportWeekDatePlan")]
public IActionResult ExportWeekDatePlan(int year, int week, string dayofweek)
{
try
{
// 调用Service层方法获取Excel字节数组和文件名
var (fileBytes, fileName) = _proweekplanManageService.ExportWeekDatePlan(year, week, dayofweek);
// 在Controller中使用File方法返回文件下载响应
return File(
fileBytes,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
fileName);
}
catch (Exception ex)
{
// 错误处理
return BadRequest(ex.Message);
}
}
//TODO 更新本周实际装配数量进度 输入年,周,更新计划进度
[HttpGet("updateactualassemblyprogress")]
public IActionResult UpdateActualAssemblyProgress(int year, int week)
{
int result = _proweekplanManageService.UpdateActualAssemblyProgress(year, week);
return SUCCESS(result);
}
}
}