zhuangpei-mesbackend/DOAN.Admin.WebApi/Controllers/MES/product/ProPlanAchievementrateController.cs
gcw_MV9p2JJN df6ae05745 1
2025-10-23 21:00:39 +08:00

171 lines
6.3 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 Microsoft.AspNetCore.Mvc;
using DOAN.Model.Dto;
using DOAN.Service.MES.product.IService;
using DOAN.Service.MES.product;
using DOAN.Admin.WebApi.Filters;
using DOAN.Model.MES.product.Dto;
using DOAN.Model.MES.product;
//创建时间2025-10-16
namespace DOAN.Admin.WebApi.Controllers
{
/// <summary>
/// 日计划达成率
/// </summary>
[Verify]
[Route("mes/productManagement/ProPlanAchievementrate")]
public class ProPlanAchievementrateController : BaseController
{
/// <summary>
/// 日计划达成率接口
/// </summary>
private readonly IProPlanAchievementrateService _ProPlanAchievementrateService;
public ProPlanAchievementrateController(IProPlanAchievementrateService ProPlanAchievementrateService)
{
_ProPlanAchievementrateService = ProPlanAchievementrateService;
}
/// <summary>
/// 查询日计划达成率列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:list")]
public IActionResult QueryProPlanAchievementrate([FromQuery] ProPlanAchievementrateQueryDto parm)
{
var response = _ProPlanAchievementrateService.GetList(parm);
return SUCCESS(response);
}
//TODO 月度统计分类聚合
[HttpPost("month_list")]
[ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:list")]
public IActionResult QueryProPlanAchievementrateByMonth([FromQuery] ProPlanAchievementrateQueryDto2 parm)
{
var response = _ProPlanAchievementrateService.GetListByMonth(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询日计划达成率详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:query")]
public IActionResult GetProPlanAchievementrate(int Id)
{
var response = _ProPlanAchievementrateService.GetInfo(Id);
var info = response.Adapt<ProPlanAchievementrate>();
return SUCCESS(info);
}
/// <summary>
/// 添加日计划达成率
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:add")]
[Log(Title = "日计划达成率", BusinessType = BusinessType.INSERT)]
public IActionResult AddProPlanAchievementrate([FromBody] ProPlanAchievementrateDto parm)
{
var modal = parm.Adapt<ProPlanAchievementrate>().ToCreate(HttpContext);
var response = _ProPlanAchievementrateService.AddProPlanAchievementrate(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新日计划达成率
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:edit")]
[Log(Title = "日计划达成率", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateProPlanAchievementrate([FromBody] ProPlanAchievementrateDto parm)
{
var modal = parm.Adapt<ProPlanAchievementrate>().ToUpdate(HttpContext);
var response = _ProPlanAchievementrateService.UpdateProPlanAchievementrate(modal);
return ToResponse(response);
}
/// <summary>
/// 删除日计划达成率
/// </summary>
/// <returns></returns>
[HttpDelete("{ids}")]
[ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:delete")]
[Log(Title = "日计划达成率", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteProPlanAchievementrate(string ids)
{
int[] idsArr = Tools.SpitIntArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
var response = _ProPlanAchievementrateService.Delete(idsArr);
return ToResponse(response);
}
//TODO 根据日期和工单 生成日计划达成率
[HttpPost("dayofplanachievementrate")]
public IActionResult DayofplanAchievementRate([FromBody] ProPlanAchievementrateQueryDto3 parm)
{
var response = _ProPlanAchievementrateService.DayofplanAchievementRate(parm);
return SUCCESS(response);
}
//TODO 导出模板
[HttpGet("importTemplate")]
[Log(Title = "计划达成率模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
[AllowAnonymous]
public IActionResult ImportTemplateExcel()
{
(string, string) result = DownloadImportTemplate("PlanAchievementRate");
return ExportExcel(result.Item2, result.Item1);
}
//TODO 导入excel 某天
[HttpPost("importData")]
[Log(Title = "计划达成率导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)]
[AllowAnonymous]
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile, [FromForm(Name = "importDate")] DateTime importDate)
{
if (formFile == null)
{
return SUCCESS(null);
}
int response = _ProPlanAchievementrateService.ImportData(formFile, HttpContext.GetName(), importDate);
return SUCCESS(response);
}
//TODO 导出excel 某天
[HttpGet("exportData")]
[Log(Title = "计划达成率导出", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
[AllowAnonymous]
public IActionResult ExportData([FromQuery] DateTime exportDate)
{
var excelBytes = _ProPlanAchievementrateService.ExportData(exportDate);
string fileName = $"PlanAchievementRate_{exportDate:yyyyMMdd}.xlsx";
return File(
excelBytes,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
fileName
);
}
}
}