using DOAN.Admin.WebApi.Filters; using DOAN.Common; using DOAN.ServiceCore.Middleware; using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Controllers; using Infrastructure.Enums; using Infrastructure.Model; using Mapster; using MDM.Model.Process; using MDM.Model.Process.Dto; using MDM.Models.Process; using MDM.Models.Process.Dto; using MDM.Services.IProcessService; using MDM.Services.Process; using Microsoft.AspNetCore.Mvc; //创建时间:2025-11-15 namespace MDM.Controllers.Process { /// /// 工序 /// [Verify] [Route("MasterDataManagement/Process/ProcessOperation")] public class ProcessOperationController : BaseController { /// /// 工序接口 /// private readonly IProcessOperationService _ProcessOperationService; public ProcessOperationController(IProcessOperationService ProcessOperationService) { _ProcessOperationService = ProcessOperationService; } /// /// 查询工序列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "business:processoperation:list")] public IActionResult QueryProcessOperation([FromQuery] ProcessOperationQueryDto parm) { var response = _ProcessOperationService.GetList(parm); return SUCCESS(response); } /// /// 查询工序详情 /// /// /// [HttpGet("{OperationId}")] [ActionPermissionFilter(Permission = "business:processoperation:query")] public IActionResult GetProcessOperation(int OperationId) { var response = _ProcessOperationService.GetInfo(OperationId); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加工序 /// /// [HttpPost] [ActionPermissionFilter(Permission = "business:processoperation:add")] [Log(Title = "工序", BusinessType = BusinessType.INSERT)] public IActionResult AddProcessOperation([FromBody] ProcessOperationDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _ProcessOperationService.AddProcessOperation(modal); return SUCCESS(response); } /// /// 更新工序 /// /// [HttpPut] [ActionPermissionFilter(Permission = "business:processoperation:edit")] [Log(Title = "工序", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateProcessOperation([FromBody] ProcessOperationDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _ProcessOperationService.UpdateProcessOperation(modal); return ToResponse(response); } /// /// 删除工序 /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "business:processoperation:delete")] [Log(Title = "工序", BusinessType = BusinessType.DELETE)] public IActionResult DeleteProcessOperation(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _ProcessOperationService.Delete(idsArr); return ToResponse(response); } //TODO 控制策略字典查询 /// /// 控制策略字典查询 /// /// /// [HttpGet("search_controlstrategy_dict")] public IActionResult SearchControlstrategyDict([FromQuery] ProcessControlStrategyDictQueryDto parm) { var response = _ProcessOperationService.SearchControlstrategyDict(parm); return SUCCESS(response); } //TODO 工序流转字典 /// /// 工序流转字典 /// /// /// [HttpGet("search_OprerationTransitionDict")] public IActionResult QueryProcessOprerationTransitionDict([FromQuery] ProcessOprerationTransitionDictQueryDto parm) { var response = _ProcessOperationService.QueryProcessOprerationTransitionDict(parm); return SUCCESS(response); } //TODO 获取并筛选流程 [HttpGet("get_flow")] public IActionResult GetFlow(string flow_code) { var response = _ProcessOperationService.GetFlow(flow_code); return SUCCESS(response); } //TODO 工序绑定流程 废弃 [HttpPost("bind_flow")] public IActionResult BindFlow([FromBody] ProcessOperationBindFlowDto parm) { var response = _ProcessOperationService.BindFlow(parm); return ToResponse(response); } //TODO 工序增加流程 [HttpPost("operation_add_flow")] public IActionResult OperationAddFlow([FromBody] ProcessOperationFlowDto parm) { var response = _ProcessOperationService.OperationAddFlow(parm); return ToResponse(response); } //TODO 工序删除流程 [HttpDelete("operation_delete_flow")] public IActionResult OperationDeleteFlow(int operation_flow_id) { var response = _ProcessOperationService.OperationDeleteFlow(operation_flow_id); return ToResponse(response); } } }