using System; using System.Web.Http; using CncModels.Dto; using CncModels.Dto.Production; using CncService.Interface; using CncWebApi.Infrastructure; namespace CncWebApi.Controllers { /// /// 产量报表控制器 /// [RoutePrefix("api/admin/production")] [JwtAuthFilter] public class ProductionController : ApiController { private readonly IProductionService _productionService; /// /// 构造函数 /// public ProductionController(IProductionService productionService) { _productionService = productionService; } /// /// 日产量列表(分页) /// GET /api/admin/production/daily /// [HttpGet] [Route("daily")] public IHttpActionResult GetList([FromUri] ProductionQuery query) { if (query == null) query = new ProductionQuery(); var result = _productionService.GetList(query); return Ok(ApiResponse>.Success(result)); } /// /// 日汇总统计 /// GET /api/admin/production/daily-summary /// [HttpGet] [Route("daily-summary")] public IHttpActionResult GetSummary(DateTime? startDate = null, DateTime? endDate = null, int? workshopId = null, int? machineId = null, int? workerId = null) { var result = _productionService.GetSummary(startDate, endDate, workshopId, machineId, workerId); return Ok(ApiResponse.Success(result)); } /// /// 修正产量 /// POST /api/admin/production/adjust /// [HttpPost] [Route("adjust")] public IHttpActionResult Adjust([FromBody] ProductionAdjustRequest request) { var result = _productionService.Adjust(request); return Ok(ApiResponse.Success(null)); } /// /// 修正历史 /// GET /api/admin/production/{recordId}/adjustment-history /// [HttpGet] [Route("{recordId:int}/adjustment-history")] public IHttpActionResult GetAdjustmentHistory(int recordId) { var result = _productionService.GetAdjustmentHistory(recordId); return Ok(ApiResponse.Success(new { items = result })); } /// /// 导出报表(占位,暂返回空结果) /// GET /api/admin/production/export /// [HttpGet] [Route("export")] public IHttpActionResult Export(DateTime? startDate = null, DateTime? endDate = null, int? workshopId = null) { // 导出功能暂不实现,返回提示 return Ok(ApiResponse.Fail(40001, "导出功能尚未实现")); } /// /// 机床维度统计卡片 /// GET /api/admin/production/machine/summary /// [HttpGet] [Route("machine/summary")] public IHttpActionResult GetMachineSummary(DateTime? startDate = null, DateTime? endDate = null, int? workshopId = null) { var result = _productionService.GetMachineSummary(startDate, endDate, workshopId); return Ok(ApiResponse.Success(result)); } /// /// 机床维度明细列表 /// GET /api/admin/production/machine/list /// [HttpGet] [Route("machine/list")] public IHttpActionResult GetMachineList(DateTime? startDate = null, DateTime? endDate = null, int? workshopId = null, string machineIds = null) { var result = _productionService.GetMachineList(startDate, endDate, workshopId, machineIds); return Ok(ApiResponse.Success(new { items = result })); } /// /// 员工维度统计卡片 /// GET /api/admin/production/worker/summary /// [HttpGet] [Route("worker/summary")] public IHttpActionResult GetWorkerSummary(DateTime? startDate = null, DateTime? endDate = null) { var result = _productionService.GetWorkerSummary(startDate, endDate); return Ok(ApiResponse.Success(result)); } /// /// 员工维度明细列表 /// GET /api/admin/production/worker/list /// [HttpGet] [Route("worker/list")] public IHttpActionResult GetWorkerList(DateTime? startDate = null, DateTime? endDate = null, int? workerId = null) { var result = _productionService.GetWorkerList(startDate, endDate, workerId); return Ok(ApiResponse.Success(new { items = result })); } /// /// 程序维度统计卡片 /// GET /api/admin/production/program/summary /// [HttpGet] [Route("program/summary")] public IHttpActionResult GetProgramSummary(DateTime? startDate = null, DateTime? endDate = null, int? workshopId = null) { var result = _productionService.GetProgramSummary(startDate, endDate, workshopId); return Ok(ApiResponse.Success(result)); } /// /// 程序维度明细列表 /// GET /api/admin/production/program/list /// [HttpGet] [Route("program/list")] public IHttpActionResult GetProgramList(DateTime? startDate = null, DateTime? endDate = null, string programNames = null) { var result = _productionService.GetProgramList(startDate, endDate, programNames); return Ok(ApiResponse.Success(new { items = result })); } } }