using Microsoft.AspNetCore.Mvc;
using RIZO.Model.Mes.Dto.WorkOrderInfo;
using RIZO.Model.Mes.WorkOrderInfo;
using RIZO.Service.Mes.IMesService.WorkOrderInfo;
using RIZO.Service.Mes.WorkOrderInfo;
//创建时间:2025-11-12
namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo
{
///
/// 工单主表
///
[Route("mes/WorkOrder")]
[AllowAnonymous]
public class WorkOrderController : BaseController
{
///
/// 工单主表接口
///
private readonly IWorkOrderService _WorkOrderService;
public WorkOrderController(IWorkOrderService WorkOrderService)
{
_WorkOrderService = WorkOrderService;
}
///
/// 查询工单主表列表
///
///
///
[HttpGet("list")]
[ActionPermissionFilter(Permission = "workorder:list")]
public IActionResult QueryWorkOrder([FromQuery] WorkOrderQueryDto parm)
{
var response = _WorkOrderService.GetList(parm);
return SUCCESS(response);
}
///
/// 查询工单主表详情
///
///
///
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "workorder:query")]
public IActionResult GetWorkOrder(long Id)
{
var response = _WorkOrderService.GetInfo(Id);
var info = response.Adapt();
return SUCCESS(info);
}
///
/// 添加工单主表
///
///
[HttpPost]
[ActionPermissionFilter(Permission = "workorder:add")]
[Log(Title = "工单主表", BusinessType = BusinessType.INSERT)]
public IActionResult AddWorkOrder([FromBody] WorkOrderDto parm)
{
var modal = parm.Adapt().ToCreate(HttpContext);
var response = _WorkOrderService.AddWorkOrder(modal);
return SUCCESS(response);
}
///
/// 更新工单主表
///
///
[HttpPut]
[ActionPermissionFilter(Permission = "workorder:edit")]
[Log(Title = "工单主表", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateWorkOrder([FromBody] WorkOrderDto parm)
{
var modal = parm.Adapt().ToUpdate(HttpContext);
var response = _WorkOrderService.UpdateWorkOrder(modal);
return ToResponse(response);
}
///
/// 删除工单主表
///
///
[HttpPost("delete/{ids}")]
[ActionPermissionFilter(Permission = "workorder:delete")]
[Log(Title = "工单主表", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteWorkOrder([FromRoute]string ids)
{
var idArr = Tools.SplitAndConvert(ids);
return ToResponse(_WorkOrderService.Delete(idArr));
}
///
/// 扫流卡码新增工单主表
///
///
[HttpPost("createWorkOrderBySacnCode")]
[Log(Title = "扫码新增工单主表", BusinessType = BusinessType.INSERT)]
public ApiResult CreateWorkOrderBySacnCode([FromBody] FlowCard flowCard)
{
var response = _WorkOrderService.CreateWorkOrderBySacnCode(flowCard);
return response;
}
///
/// 变更工单状态
///
///
[HttpPost("changeWorkOrderState")]
[Log(Title = "变更工单状态(执行中/已完成)", BusinessType = BusinessType.UPDATE)]
public IActionResult ChangeWorkOrderState([FromBody] WorkOrderState parm)
{
var response = _WorkOrderService.ChangeWorkOrderState(parm);
return SUCCESS(response);
}
///
/// 导出工单数据
///
///
[HttpGet("export")]
//[ActionPermissionFilter(Permission = "processinfo:export")]
[Log(Title = "工单数据", BusinessType = BusinessType.EXPORT)]
public IActionResult Export([FromQuery] WorkOrderQueryDto parm)
{
var list = _WorkOrderService.GetListExport(parm).Result;
if (list == null || list.Count <= 0)
{
return ToResponse(ResultCode.FAIL, "没有要导出的数据");
}
var (sFileName, sFilePath) = ExportExcelMini(list, "工单数据", "工单数据");
if (string.IsNullOrWhiteSpace(sFilePath))
{
return ToResponse(ResultCode.FAIL, "Excel生成失败");
}
return PhysicalFile(
sFilePath,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
sFileName,
true
);
}
///
/// 查询一周折线图
///
///
[HttpGet("queryQualityLineChart")]
[ActionPermissionFilter(Permission = "workorder:list")]
public IActionResult QueryQualityLineChart()
{
var response = _WorkOrderService.QueryQualityLineChart();
return SUCCESS(response);
}
///
/// 查询一周柱状图
///
///
[HttpGet("queryQualityBarChart")]
[ActionPermissionFilter(Permission = "workorder:list")]
public IActionResult QueryQualityBarChart()
{
var response = _WorkOrderService.QueryQualityBarChart();
return SUCCESS(response);
}
///
/// 查询一个月工单信息
///
///
[HttpGet("queryWorkOrderMonth")]
[ActionPermissionFilter(Permission = "workorder:list")]
public IActionResult QueryWorkOrderMonth()
{
var response = _WorkOrderService.QueryWorkOrderMonth();
return SUCCESS(response);
}
}
}