chengsc
2025-01-17 32bf3387b6a2217976badc021ca94576210c8f2c
Wms/Wms/Controllers/DownApiController.cs
@@ -17,6 +17,7 @@
using Model.ModelVm.PdaVm;
using WMS.IBLL.IPdaServer;
using Model.ModelVm;
using WMS.IBLL.IDataServer;
namespace Wms.Controllers
{
@@ -34,8 +35,9 @@
        private readonly ITaskServer _taskSvc;//任务Svc 
        private readonly IPdaSoServer _pdaSoSvc;//空托出库Svc
        private readonly IPdaAsnServer _paAsnSvc;//空托跺绑定
        private readonly IStockServer _stockSvc;//AGV任务完成箅
        public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IPdaSoServer pdaSoSvc,IPdaAsnServer paAsnSvc)
        public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IPdaSoServer pdaSoSvc,IPdaAsnServer paAsnSvc,IStockServer stockSvc)
        {
            _config = setting.Value;
            _exNoticeSvc = exNoticeSvc;
@@ -44,6 +46,7 @@
            _taskSvc = taskSvc;
            _pdaSoSvc = pdaSoSvc;
            _paAsnSvc = paAsnSvc;
            _stockSvc = stockSvc;
        }
        #region WMS接口 调用下游系统接口 
@@ -361,8 +364,8 @@
                }
                //接收时间
                var time1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                var orderType = _taskSvc.GetTaskOrderType(model.TaskNo);// 判断单据类型入出移
                switch (orderType)
                //var orderType = _taskSvc.GetTaskOrderType(model.TaskNo);// 判断单据类型入出移
                switch (model.TaskType)
                {
                    case "0"://入库完成任务
                        if (model.TaskType == "0")//0:入库 1:出库 2:移库
@@ -374,7 +377,7 @@
                    case "1"://出库完成任务
                        if (model.TaskType == "1")//0:入库 1:出库 2:移库
                        {
                            _exNoticeSvc.ExportSuccess(model.TaskNo, 0);
                            _exNoticeSvc.ExportSuccess(model.TaskNo, 0, _config.AgvHost + _config.GenAgvSchedulingTask);
                            return Ok(new WcsModel { StatusCode = 0, Msg = "出库完成" });
                        }
                        else if (model.TaskType == "2")
@@ -696,6 +699,57 @@
        //车间叫料
        //WCS申请拆垛信息
        /// <summary>
        /// 成品箱码拆垛拣货
        /// </summary>
        /// <param name="model">入库单信息</param>
        /// <returns></returns>
        [AllowAnonymous]
        [HttpPost]
        public IActionResult ResultBoxInfoCheckWcs(BoxInfoCheck model)
        {
            var logStr = $@".\log\WCS\WCS申请拆垛托盘信息" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            try
            {
                RequestBoxInfoCheck list = _exNoticeSvc.BoxInfoCheckWcs(model);
                return Ok(new { Success = 1,Message = "拆垛信息获取成功",data = list});
            }
            catch  (Exception e)
            {
                LogFile.SaveLogToFile($"WCS申请托盘拆垛异常返回:( {e.Message} ),", logStr);
                return Ok(new ErpModel { Success = -1, Message = e.Message});
            }
        }
        /// <summary>
        /// 成品箱码拆垛拣货
        /// </summary>
        /// <param name="model">入库单信息</param>
        /// <returns></returns>
        [AllowAnonymous]
        [HttpPost]
        public IActionResult ResultBoxInfoExportWcs(BoxInfoCheck model)
        {
            var logStr = $@".\log\WCS\WCS申请成品箱码拆垛拣货信息" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            try
            {
                //返回出库分拣装车口
                var list = _exNoticeSvc.BoxInfoExportWcs(model.BoxNo);
                return Ok(new { Success = 1, Message = "成品箱码拆垛拣货成功", loadubgAddre = list });
            }
            catch (Exception e)
            {
                LogFile.SaveLogToFile($"WCS申请成品箱码拆垛拣货异常返回:( {e.Message} ),", logStr);
                return Ok(new ErpModel { Success = -1, Message = e.Message });
            }
        }
        #region AGV
@@ -704,10 +758,10 @@
        ///  AGV 执行回调的方法,包含任务开始,走出储位,任务完成及任务取消。
        ///  取消通知为任务单,其他通知为单个任务组或子任务。注意:是否通知需要在任务模板配置
        /// </summary>
        /// <param name="model">入库单信息</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        [HttpPost]
        public IActionResult AgvCallback(AgvContinueTask model)
        public IActionResult AgvCallback(AgvTaskDto model)
        {
            try
            {
@@ -718,21 +772,32 @@
                //接收时间
                var time1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                //测试接口用
                var orderType = _taskSvc.GetTaskOrderType(model.TaskCode);// 判断单据类型入出移
                var taskType = _taskSvc.GetTaskType(model.TaskCode);//根据任务号获取任务类型
                switch (orderType)
                {
                    case "0"://入库任务执行
                        _stockSvc.ArriveFinish(model.TaskCode);
                        break;
                    case "1"://出库任务执行
                        _stockSvc.SoFinish(model.TaskCode);
                        break;
                    case "2"://盘库任务执行
                    case "3"://移库任务执行
                        return Ok(new OutCommanAgvDto { Code = "0", Message = "成功", ReqCode = model.ReqCode });
                        _stockSvc.MoveFinish(model.TaskCode);
                        break;
                    // return Ok(new OutCommanAgvDto { Code = "0", Message = "成功", ReqCode = model.ReqCode });
                    default:
                        return Ok(new OutCommanAgvDto { Code = "1", Message = "失败", ReqCode = model.ReqCode });
                }
                return Ok(new OutCommanAgvDto { Code = "0", Message = "成功", ReqCode = model.ReqCode });
            }
            catch (Exception ex)
@@ -745,7 +810,7 @@
            }
        }
        #endregion