using Microsoft.AspNetCore.Mvc; using RIZO.Model.Mes.Dto.GatherData; 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("createDataBySacnCode")] [Log(Title = "扫码新增工单主表/工单从表", BusinessType = BusinessType.INSERT)] public IActionResult CreateDataBySacnCode([FromBody] ScanCodeParm parm) { var response = _WorkOrderService.CreateDataBySacnCode(parm); return SUCCESS(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 ); } } }