using RIZO.Admin.WebApi.Filters;
using RIZO.Common;
using RIZO.ServiceCore.Middleware;
using Infrastructure;
using Infrastructure.Attribute;
using Infrastructure.Controllers;
using Infrastructure.Enums;
using Infrastructure.Model;
using Mapster;
using MDM.Model;
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);
return SUCCESS(response);
}
///
/// 添加工序
///
///
[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.DeleteInfo(idsArr);
//var response = _ProcessOperationService.Delete(idsArr);
return ToResponse(response);
}
//TODO 下拉工艺路线
[HttpGet("SelectRouting")]
public IActionResult SelectRouting(string? routingcode)
{
var response = _ProcessOperationService.SelectRouting(routingcode??"");
return SUCCESS(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_type_code)
{
var response = _ProcessOperationService.GetFlow(flow_type_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 工序修改流程
[HttpPost("operation_update_flow")]
public IActionResult OperationUpdateFlow([FromBody] ProcessOperationFlowDto2 model)
{
var response = _ProcessOperationService.OperationUpdateFlow(model);
return ToResponse(response);
}
//TODO 工序删除流程
[HttpDelete("operation_delete_flow/{operation_flow_id}")]
public IActionResult OperationDeleteFlow(int operation_flow_id)
{
var response = _ProcessOperationService.OperationDeleteFlow(operation_flow_id);
return ToResponse(response);
}
// 查询某个工序下的流程
[HttpGet("get_operation_flow_list")]
public IActionResult GetOperationFlowList(string? routing_code, string? operation_code)
{
var response = _ProcessOperationService.GetOperationFlowList(routing_code??"", operation_code??"");
return SUCCESS(response);
}
//TODO 新增工艺参数数采
[HttpPost("operation_add_datacollection")]
public IActionResult OperationAddDatacollection([FromBody]ProcessOperationCollectParameterDto parm)
{
var response = _ProcessOperationService.OperationAddDatacollection(parm);
return ToResponse(response);
}
//TODO 工艺参数数采删除
[HttpDelete("operation_delete_datacollection/{operation_datacollection_id}")]
public IActionResult OperationDeleteDatacollection(int operation_datacollection_id)
{
var response = _ProcessOperationService.OperationDeleteDatacollection(operation_datacollection_id);
return ToResponse(response);
}
///
/// 查询物料防错规则字典
///
///
///
[HttpGet("search_material_errorproof_dict")]
public IActionResult SearchMaterialErrorproofDict(string? error_proof_rule_code)
{
var response = _ProcessOperationService.SearchMaterialErrorproofDict(error_proof_rule_code??"");
return SUCCESS(response);
}
///
/// 搜素物料档案信息
///
/// 物料编码或者物料名称
///
[HttpGet("search_material_info")]
public IActionResult SearchMaterialInfo(string? material_info)
{
var response = _ProcessOperationService.SearchMaterialInfo(material_info??"");
return SUCCESS(response);
}
//TODO 新增物料信息
[HttpPost("operation_add_material_paramter")]
public IActionResult OperationAddMaterialParamter([FromBody] ProcessOperationFlowMaterialParamterDto parm)
{
var response = _ProcessOperationService.OperationAddMaterialParamter(parm);
return ToResponse(response);
}
//TODO 物料信息删除
[HttpDelete("operation_delete_material_paramter/{operation_material_paramter_id}")]
public IActionResult OperationDeleteMaterialParamter(int operation_material_paramter_id)
{
var response = _ProcessOperationService.OperationDeleteMaterialParamter(operation_material_paramter_id);
return ToResponse(response);
}
//TODO 分页查询配方参数
[HttpPost("operation_search_recipe")]
public IActionResult QueryProcessOperationRecipe([FromBody] ProcessOperationQuery2Dto query)
{
var response = _ProcessOperationService.QueryProcessOperationRecipe(query);
return SUCCESS(response);
}
}
}