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/Proweekplan")] public class ProweekplanManageController : BaseController { /// /// 周计划表接口 /// 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 result = _proweekplanManageService.SearchWeekplan(weekplanQuery); return SUCCESS(result); } //TODO excel导入计划 /// /// 导入周计划 /// /// 使用IFromFile必须使用name属性否则获取不到文件 /// 导入成功数 若-1 则excel读取异常 [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 导出模板 /// /// 生产工单导入模板下载 workorder 启用(9/14) /// /// [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")] [AllowAnonymous] 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); } } }