DESKTOP-9BNTV8O
2024-12-14 e8dff3d9ad3f39088886173da44fff6cc1ae3e13
Wms/Wms/Controllers/DownApiController.cs
@@ -18,6 +18,8 @@
using Model.ModelVm.BllTaskVm;
using static Model.InterFaceModel.RCSModel;
using WMS.IBLL.IBllTransServer;
using Microsoft.Extensions.Logging;
using ZXing.QrCode.Internal;
namespace Wms.Controllers
{
@@ -658,33 +660,99 @@
        public IActionResult GetPalletNo(Pallnetmsg pallmsg)
        {
            var logStr = $@".\log\AGV\AGV申请叫桶" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            var result = new ErpModel { Success = -1, Message = "", };
            AgvResultModel resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(pallmsg);
                LogFile.SaveLogToFile($"AGV申请叫桶:( {jsonData} ),", logStr);
                LogFile.SaveLogToFile($"AGV申请叫桶-请求报文:( {jsonData} ),", logStr);
                if (string.IsNullOrWhiteSpace(pallmsg.Location))
                {
                    result.Message = "叫料位置为空!";
                    return Ok(result);
                    resultModel = new AgvResultModel { code = "1", message = "叫料位置为空!", data = "", reqCode = "" };
                    var jsonData3 = JsonConvert.SerializeObject(resultModel);
                    LogFile.SaveLogToFile($"AGV申请叫桶-返回报文:( {jsonData3} ),", logStr);
                    return Ok(resultModel);
                }
                if (string.IsNullOrWhiteSpace(pallmsg.Type))
                {
                    result.Message = "任务类型为空!";
                    return Ok(result);
                    resultModel = new AgvResultModel { code = "1", message = "任务类型为空!", data = "", reqCode = "" };
                    var jsonData4 = JsonConvert.SerializeObject(resultModel);
                    LogFile.SaveLogToFile($"AGV申请叫桶-返回报文:( {jsonData4} ),", logStr);
                    return Ok(resultModel);
                }
                _rcsserver.GetPalletNo(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask);
                result.Success = 0;
                result.Message = "叫桶成功!";
                return Ok(result);
                string taskNo = "";
                //具体处理方法
                _rcsserver.GetPalletNo(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask, out taskNo);
                resultModel = new AgvResultModel { code = "0", message = "叫桶成功!", data = taskNo, reqCode = "" };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV申请叫桶-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
            catch (Exception e)
            {
                LogFile.SaveLogToFile($"AGV申请叫桶异常:( {e.Message} ),", logStr);
                result.Message = e.Message;
                return Ok(result);
                resultModel = new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV申请叫桶-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
        }
        /// <summary>
        /// RCS申请储位
        /// </summary>
        /// <param name="pallmsg"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult ApplyLocatNo(Pallnetmsg pallmsg)
        {
            var logStr = $@".\log\AGV\AGV申请储位" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(pallmsg);
                LogFile.SaveLogToFile($"AGV申请储位-请求报文:( {jsonData} ),", logStr);
                if (string.IsNullOrWhiteSpace(pallmsg.Location))
                {
                    resultModel = new AgvResultModel { code = "1", message = "申请位置为空!", data = "", reqCode = "" };
                    var jsonData3 = JsonConvert.SerializeObject(resultModel);
                    LogFile.SaveLogToFile($"AGV申请储位-返回报文:( {jsonData3} ),", logStr);
                    return Ok(resultModel);
                }
                if (string.IsNullOrWhiteSpace(pallmsg.Type))
                {
                    resultModel = new AgvResultModel { code = "1", message = "任务类型为空!", data = "", reqCode = "" };
                    var jsonData3 = JsonConvert.SerializeObject(resultModel);
                    LogFile.SaveLogToFile($"AGV申请储位-返回报文:( {jsonData3} ),", logStr);
                    return Ok(resultModel);
                }
                if (string.IsNullOrWhiteSpace(pallmsg.PalletNo))
                {
                    resultModel = new AgvResultModel { code = "1", message = "申请桶号为空!", data = "", reqCode = "" };
                    var jsonData3 = JsonConvert.SerializeObject(resultModel);
                    LogFile.SaveLogToFile($"AGV申请储位-返回报文:( {jsonData3} ),", logStr);
                    return Ok(resultModel);
                }
                string taskNo = "";
                //具体处理方法
                _rcsserver.ApplyLocatNo(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask, out taskNo);
                resultModel = new AgvResultModel { code = "0", message = "申请储位成功!", data = taskNo, reqCode = "" };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV申请储位-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
            catch (Exception e)
            {
                LogFile.SaveLogToFile($"AGV申请储位异常:( {e.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" };
                var jsonData3 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV申请储位-返回报文:( {jsonData3} ),", logStr);
                return Ok(resultModel);
            }
        }
        /// <summary>
@@ -749,51 +817,6 @@
        }
        /// <summary>
        /// RCS申请储位
        /// </summary>
        /// <param name="pallmsg"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult ApplyLocatNo(Pallnetmsg pallmsg)
        {
            var logStr = $@".\log\AGV\AGV申请储位" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            var result = new ErpModel { Success = -1, Message = "" };
            try
            {
                var jsonData = JsonConvert.SerializeObject(pallmsg);
                LogFile.SaveLogToFile($"AGV申请储位:( {jsonData} ),", logStr);
                if (string.IsNullOrWhiteSpace(pallmsg.Location))
                {
                    result.Message = "申请位置为空!";
                    return Ok(result);
                }
                if (string.IsNullOrWhiteSpace(pallmsg.Type))
                {
                    result.Message = "任务类型为空!";
                    return Ok(result);
                }
                if (string.IsNullOrWhiteSpace(pallmsg.PalletNo))
                {
                    result.Message = "申请托盘号为空!";
                    return Ok(result);
                }
                _rcsserver.ApplyLocatNo(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask);
                result.Success = 0;
                result.Message = "申请储位成功!";
                return Ok(result);
            }
            catch (Exception e)
            {
                LogFile.SaveLogToFile($"AGV申请储位异常:( {e.Message} ),", logStr);
                result.Message = e.Message;
                return Ok(result);
            }
        }
        /// <summary>
        /// 入库单据下发
        /// </summary>
        /// <param name="model">入库单信息</param>
@@ -827,6 +850,150 @@
            }
        }
        #region Agv任务完成反馈
        /// <summary>
        /// 任务开始
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult start(AgvTaskDto model)
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
            catch (Exception ex)
            {
                LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-异常:( {ex.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
        }
        /// <summary>
        /// 走出储位
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult outbin(AgvTaskDto model)
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
            catch (Exception ex)
            {
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-异常:( {ex.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
        }
        /// <summary>
        /// 任务结束
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult end(AgvTaskDto model)
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                _rcsserver.RCSFinishTask(model.taskCode, "1");
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
            catch (Exception ex)
            {
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-异常:( {ex.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
        }
        /// <summary>
        /// 任务单取消
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult cancel(AgvTaskDto model)
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务单取消-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务单取消-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
            catch (Exception ex)
            {
                LogFile.SaveLogToFile($"AGV任务执行通知-任务单取消-异常:( {ex.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务单取消-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
        }
        #endregion
        /// <summary>
        /// Agv任务完成反馈
        /// </summary>
@@ -835,17 +1002,20 @@
        [HttpPost]
        public IActionResult agvCallBack(AgvTaskDto model)
        {
            var result = new ErpModel { Success = -1, Message = "" };
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;
            try
            {
                //记录log
                var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            {
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"任务执行通知:( {jsonData} ),", logStr);
                LogFile.SaveLogToFile($"任务执行通知-请求报文:( {jsonData} ),", logStr);
                if (string.IsNullOrEmpty(model.reqCode))
                if (string.IsNullOrEmpty(model.taskCode))
                {
                    return Ok(new AgvResultModel { code = "-1", message = "请求失败,reqCode参数异常", reqCode = model.reqCode });
                    resultModel = new AgvResultModel { code = "-1", message = "请求失败,taskCode参数异常", reqCode = model.reqCode };
                    var jsonData2 = JsonConvert.SerializeObject(resultModel);
                    LogFile.SaveLogToFile($"任务执行通知-返回报文:( {jsonData2} ),", logStr);
                    return Ok(resultModel);
                }
                switch (model.method)
                {
@@ -856,8 +1026,8 @@
                        return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode });
                    case "end"://任务结束
                        result = _noticeSvc.RCSFinishTask(model.reqCode, "1");
                        return Ok(result);
                        _rcsserver.RCSFinishTask(model.taskCode, "1");
                        return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode });
                    case "cancel"://任务单取消
                        return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode });
@@ -870,6 +1040,7 @@
            }
            catch (Exception ex)
            {
                LogFile.SaveLogToFile($"AGV任务执行通知异常:( {ex.Message} ),", logStr);
                return Ok(new AgvResultModel { code = "-1", message = ex.Message, reqCode = model.reqCode });
            }
        }