using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using WIDESEA_Core.Attributes; using WIDESEA_Core; using WIDESEA_DTO; using WIDESEA_IBasicService; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_IOutboundService; using WIDESEA_ITaskInfoService; using WIDESEA_TaskInfoService; using WIDESEA_DTO.ERP; using WIDESEA_DTO.MES; using WIDESEA_Core.Helper; using Autofac.Core; using WIDESEA_DTO.Stock; using WIDESEA_External.Model; using WIDESEA_External.ERPService; namespace WIDESEA_WMSServer.Controllers.MES { /// /// MES接口 /// [Route("api/Mes")] [ApiController] public class MesController : ControllerBase { private readonly IOutboundService _outboundService; private readonly ITaskService _taskService; private readonly IInvokeERPService _invokeERPService; public MesController(IOutboundService outboundService, ITaskService taskService,IInvokeERPService invokeERPService) { _outboundService = outboundService; _taskService = taskService; _invokeERPService = invokeERPService; } /// /// 接收MES测试架出库 /// /// /// [HttpPost, Route("TestToolOut"), AllowAnonymous, MethodParamsValidate] public MesResponseContent TestToolOut([FromBody] Root model) { return _taskService.TestToolOut(model.Content); } /// /// 接收MES测试架退库 /// /// /// [HttpPost, Route("TestToolBack"), AllowAnonymous, MethodParamsValidate] public MesResponseContent TestToolBack([FromBody] Root model) { return _taskService.TestToolBack(model.Content); } /// /// 测试架报废 /// /// /// [HttpPost, Route("TestToolScrap"), AllowAnonymous, MethodParamsValidate] public MesResponseContent TestScrap([FromBody] Root model) { return _taskService.TestScrap(model.Content); } /// /// /// /// /// [HttpPost, Route("TestSynStock"), AllowAnonymous] public WebResponseContent TestSynStock([FromBody] TestToolSynInfo toolSynInfo) { return _taskService.TestSynStock(toolSynInfo); } /// /// 基板出库 /// /// /// [HttpPost, Route("SubstrateOut"), AllowAnonymous] public MesResponseContent SubstrateOut([FromBody] Root model) { return _taskService.SubstrateOut(model.Content); } /// /// 基板余料退库 /// /// /// [HttpPost, Route("SubstrateBack"), AllowAnonymous] public MesResponseContent SubstrateBack([FromBody] Root model) { return _taskService.SubstrateBack(model.Content); } /// /// PP大卷出库-进行分卷 /// /// /// [HttpPost, Route("PPSubsectionOut"), AllowAnonymous] public MesResponseContent PPSubsectionOut([FromBody] Root model) { return _taskService.PPSubsectionOut(model.Content); } /// /// PP小卷出库 /// /// /// [HttpPost, Route("PPCutOut"), AllowAnonymous] public MesResponseContent PPCutOut([FromBody] Root model) { return _taskService.PPCutOut(model.Content); } /// /// PP入库(大卷、小卷、张料) /// /// /// [HttpPost, Route("PPBack"), AllowAnonymous] public MesResponseContent PPBack([FromBody] Root model) { return _taskService.PPBack(model.Content); } /// /// PP库存查询 /// /// /// [HttpPost, Route("QueryPpByWidth"), AllowAnonymous] public MesResponseContent QueryPpByWidth([FromBody] Root model) { return _taskService.QueryPpByWidth(model.Content); } /// /// 物料出库,WMS同步出库物料批次至MES /// /// /// [HttpPost, Route("UploadMesMaterialLotaAcept"), AllowAnonymous] public WebResponseContent UploadMesMaterialLotaAcept([FromBody] MesMaterialLotaAceptModel model) { return _taskService.UploadMesMaterialLotaAcept(model); } /// /// MES成品内包信息接收 /// /// /// [HttpPost, Route("BagInfoSync"), AllowAnonymous] public MesResponseContent BagInfoSync([FromBody] Root model) { return _taskService.BagInfoSync(model.Content); } /// /// MES成品外包信息接收 /// /// /// [HttpPost, Route("BoxStockin"), AllowAnonymous] public MesResponseContent BoxStockin([FromBody] Root model) { return _taskService.BoxStockin(model.Content); } /// /// MES成品出库接口调用 /// /// [HttpPost, Route("ShipmentOrderSync"), AllowAnonymous] public WebResponseContent ShipmentOrderSync([FromBody] MesShipmentOrderSync model) { return _taskService.ShipmentOrderSync(model); } /// /// 成品返工提库 /// /// /// [HttpPost,Route("RworkTask"),AllowAnonymous] public MesResponseContent RworkTask([FromBody] Root model) { return _taskService.RworkTask(model.Content); } /// /// 库存板出库同步接口 /// /// /// [HttpPost, Route("ProductOutBoundSync"), AllowAnonymous] public WebResponseContent ProductOutBoundSync([FromBody] MesProductOutBound model) { return _outboundService.RworkOutboundOrderService.ProductOutBoundSync(model); } /// /// 生成MESPP仓大卷出库任务 /// /// /// [HttpPost, HttpGet, Route("MESPPGenerateOutboundTasks"), AllowAnonymous] public WebResponseContent MESPPGenerateOutboundTasks([FromBody] int[] keys) { return _taskService.MESPPGenerateOutboundTasks(keys); } /// /// 生成MESPP仓小卷出库任务 /// /// /// //[HttpPost, HttpGet, Route("PPCutOutGenerateOutboundTasks"), AllowAnonymous] //public WebResponseContent PPCutOutGenerateOutboundTasks([FromBody] int[] keys) //{ // return _taskService.PPCutOutGenerateOutboundTasks(keys); //} /// /// 生成出库任务 /// /// /// /// [HttpPost, HttpGet, Route("PPCutOutGenerateOutboundTasks"), AllowAnonymous] public WebResponseContent PPCutOutGenerateOutboundTasks(int orderDetailId, [FromBody] List stockSelectViews) { return _taskService.PPCutOutGenerateOutboundTasks(orderDetailId, stockSelectViews); } /// /// PP平库直接出库 /// /// /// /// [HttpPost, HttpGet, Route("PPGeneratePKOutboundTask"), AllowAnonymous] public WebResponseContent PPGeneratePKOutboundTask(int orderDetailId, [FromBody] List stockSelectViews) { return _taskService.PPGeneratePKOutboundTask(orderDetailId, stockSelectViews); } /// /// 检验单回传更新 /// /// /// [HttpPost, Route("CheckResultReturn"), AllowAnonymous, MethodParamsValidate] public MesResponseContent CheckResultReturn([FromBody] ERPCheckModel model) { string content = _invokeERPService.InvokeCheckOrderApi(model); ErpRequestContent requestContent = content.DeserializeObject(); if (requestContent.res != 1) { return MesResponseContent.Instance.Error(requestContent.Data); } return MesResponseContent.Instance.OK("成功"); } } }