1
wangxinhui
2025-06-12 e7be74e711076896e7e841b54691daa95067c567
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs
@@ -12,6 +12,10 @@
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
{
@@ -24,11 +28,12 @@
    {
        private readonly IOutboundService _outboundService;
        private readonly ITaskService _taskService;
        public MesController(IOutboundService outboundService, ITaskService taskService)
        private readonly IInvokeERPService _invokeERPService;
        public MesController(IOutboundService outboundService, ITaskService taskService,IInvokeERPService invokeERPService)
        {
            _outboundService = outboundService;
            _taskService = taskService;
            _invokeERPService = invokeERPService;
        }
        /// <summary>
@@ -41,7 +46,26 @@
        {
            return _taskService.TestToolOut(model.Content);
        }
        /// <summary>
        /// æŽ¥æ”¶MES防焊派工
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("SolderMaskOutNotice"), AllowAnonymous, MethodParamsValidate]
        public MesResponseContent SolderMaskOutNotice([FromBody] Root<SolderMaskOutNotice> model)
        {
            return _taskService.SolderMaskOutNotice(model.Content);
        }
        /// <summary>
        /// æŽ¥æ”¶MES防焊到线边
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("SolderMaskOut"), AllowAnonymous, MethodParamsValidate]
        public MesResponseContent SolderMaskOut([FromBody] Root<SolderMaskOut> model)
        {
            return _taskService.SolderMaskOut(model.Content);
        }
        /// <summary>
        /// æŽ¥æ”¶MES测试架退库
        /// </summary>
@@ -70,7 +94,7 @@
        /// <param name="toolSynInfo"></param>
        /// <returns></returns>
        [HttpPost, Route("TestSynStock"), AllowAnonymous]
        public WebResponseContent TestSynStock([FromBody]TestToolSynInfo toolSynInfo)
        public WebResponseContent TestSynStock([FromBody] TestToolSynInfo toolSynInfo)
        {
            return _taskService.TestSynStock(toolSynInfo);
        }
@@ -96,6 +120,48 @@
        {
            return _taskService.SubstrateBack(model.Content);
        }
        /// <summary>
        /// PP大卷出库-进行分卷
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("PPSubsectionOut"), AllowAnonymous]
        public MesResponseContent PPSubsectionOut([FromBody] Root<PPSubsectionOutModel> model)
        {
            return _taskService.PPSubsectionOut(model.Content);
        }
       /// <summary>
       /// PP小卷出库
       /// </summary>
       /// <param name="model"></param>
       /// <returns></returns>
        [HttpPost, Route("PPCutOut"), AllowAnonymous]
        public MesResponseContent PPCutOut([FromBody] Root<PPCutOutModle> model)
        {
            return _taskService.PPCutOut(model.Content);
        }
        /// <summary>
        /// PP入库(大卷、小卷、张料)
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("PPBack"), AllowAnonymous]
        public MesResponseContent PPBack([FromBody] Root<PPBackModel> model)
        {
            return _taskService.PPBack(model.Content);
        }
        /// <summary>
        /// PP库存查询
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("QueryPpByWidth"), AllowAnonymous]
        public MesResponseContent QueryPpByWidth([FromBody] Root<QueryPpByWidthModel> model)
        {
            return _taskService.QueryPpByWidth(model.Content);
        }
        /// <summary>
        /// ç‰©æ–™å‡ºåº“,WMS同步出库物料批次至MES
@@ -107,5 +173,115 @@
        {
            return _taskService.UploadMesMaterialLotaAcept(model);
        }
        /// <summary>
        /// MES成品内包信息接收
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("BagInfoSync"), AllowAnonymous]
        public MesResponseContent BagInfoSync([FromBody] Root<MesBagInfoModel> model)
        {
            return _taskService.BagInfoSync(model.Content);
        }
        /// <summary>
        /// MES成品外包信息接收
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("BoxStockin"), AllowAnonymous]
        public MesResponseContent BoxStockin([FromBody] Root<MesBoxInfoModel> model)
        {
            return _taskService.BoxStockin(model.Content);
        }
        /// <summary>
        /// MES成品出库接口调用
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("ShipmentOrderSync"), AllowAnonymous]
        public WebResponseContent ShipmentOrderSync([FromBody] MesShipmentOrderSync model)
        {
            return _taskService.ShipmentOrderSync(model);
        }
        /// <summary>
        /// æˆå“è¿”工提库
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost,Route("RworkTask"),AllowAnonymous]
        public MesResponseContent RworkTask([FromBody] Root<RworkTaskModel> model)
        {
            return _taskService.RworkTask(model.Content);
        }
        /// <summary>
        /// åº“存板出库同步接口
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("ProductOutBoundSync"), AllowAnonymous]
        public WebResponseContent ProductOutBoundSync([FromBody] MesProductOutBound model)
        {
            return _outboundService.RworkOutboundOrderService.ProductOutBoundSync(model);
        }
        /// <summary>
        /// ç”ŸæˆMESPP仓大卷出库任务
        /// </summary>
        /// <param name="keys"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("MESPPGenerateOutboundTasks"), AllowAnonymous]
        public WebResponseContent MESPPGenerateOutboundTasks([FromBody] int[] keys)
        {
            return _taskService.MESPPGenerateOutboundTasks(keys);
        }
        /// <summary>
        /// ç”ŸæˆMESPP仓小卷出库任务
        /// </summary>
        /// <param name="keys"></param>
        /// <returns></returns>
        //[HttpPost, HttpGet, Route("PPCutOutGenerateOutboundTasks"), AllowAnonymous]
        //public WebResponseContent PPCutOutGenerateOutboundTasks([FromBody] int[] keys)
        //{
        //    return _taskService.PPCutOutGenerateOutboundTasks(keys);
        //}
        /// <summary>
        /// ç”Ÿæˆå‡ºåº“任务
        /// </summary>
        /// <param name="orderDetailId"></param>
        /// <param name="stockSelectViews"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("PPCutOutGenerateOutboundTasks"), AllowAnonymous]
        public WebResponseContent PPCutOutGenerateOutboundTasks(int orderDetailId, [FromBody] List<PPStockSelectViewDTO> stockSelectViews)
        {
            return _taskService.PPCutOutGenerateOutboundTasks(orderDetailId, stockSelectViews);
        }
        /// <summary>
        /// PP平库直接出库
        /// </summary>
        /// <param name="orderDetailId"></param>
        /// <param name="stockSelectViews"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("PPGeneratePKOutboundTask"), AllowAnonymous]
        public WebResponseContent PPGeneratePKOutboundTask(int orderDetailId, [FromBody] List<PPStockSelectViewDTO> stockSelectViews)
        {
            return _taskService.PPGeneratePKOutboundTask(orderDetailId, stockSelectViews);
        }
        /// <summary>
        /// æ£€éªŒå•回传更新
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("CheckResultReturn"), AllowAnonymous, MethodParamsValidate]
        public MesResponseContent CheckResultReturn([FromBody] Root<ERPCheckModel>  model)
        {
            string content = _invokeERPService.InvokeCheckOrderApi(model.Content);
            ErpRequestContent requestContent = content.DeserializeObject<ErpRequestContent>();
            if (requestContent.res != 1)
            {
                return MesResponseContent.Instance.Error(requestContent.Data);
            }
            return MesResponseContent.Instance.OK("成功");
        }
    }
}