zhaowc
13 小时以前 71d1dcdf796f08fa01cbc2d3faab86eea28b295b
Wms/Wms/Controllers/DownApiController.cs
@@ -23,6 +23,7 @@
using Model.ModelVm.BllCheckVm;
using Model.ModelVm.SysVm;
using System.Security.Policy;
using Model.ModelVm.DataVm;
namespace Wms.Controllers
{
@@ -858,7 +859,7 @@
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            AgvResultModel2 resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(model);
@@ -868,7 +869,9 @@
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                resultModel.code = "0";
                resultModel.message = "成功";
                resultModel.da.robotTaskCode = model.robotTaskCode;
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
@@ -877,7 +880,9 @@
            {
                LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-异常:( {ex.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
                resultModel.code = "1";
                resultModel.message = ex.Message;
                resultModel.da.robotTaskCode = model.robotTaskCode;
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
@@ -893,17 +898,25 @@
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            AgvResultModel2 resultModel = null;//返回信息
            try
            {
                var extraValue = new ExtraModel();
                extraValue = model.extra;
                if (!(extraValue.values.method == "outbin"))
                {
                    throw new Exception("小车调用方法错误");
                }
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                _hopper.OutBinAgv(model.taskCode, _config.AgvHost + _config.GenAgvSchedulingTask);
                _hopper.OutBinAgv(model.robotTaskCode, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets);
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                Data data = new Data();
                data.robotTaskCode = model.robotTaskCode;
                resultModel = new AgvResultModel2 { code = "0", message = "成功", da =data };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
@@ -912,7 +925,10 @@
            {
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-异常:( {ex.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
                Data data = new Data();
                data.robotTaskCode = model.robotTaskCode;
                resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-走出储位-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
@@ -928,16 +944,25 @@
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            AgvResultModel2 resultModel = null;//返回信息
            try
            {
                var extraValue = new ExtraModel();
                extraValue = model.extra;
                if (!(extraValue.values.method == "end"))
                {
                    throw new Exception("小车调用方法错误");
                }
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                _hopper.RCSFinishTask(model.taskCode, "1", "AGV");
                _hopper.RCSFinishTask(model.robotTaskCode, extraValue.values.slotName, "1", "AGV");
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                Data data = new Data();
                data.robotTaskCode = model.robotTaskCode;
                resultModel = new AgvResultModel2 { code = "0", message = "成功", da = data };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
@@ -946,7 +971,9 @@
            {
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-异常:( {ex.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
                Data data = new Data();
                data.robotTaskCode = model.robotTaskCode;
                resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务结束-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
@@ -962,31 +989,86 @@
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            AgvResultModel2 resultModel = null;//返回信息
            try
            {
                var extraValue = new ExtraModel();
                extraValue = model.extra;
                if (!(extraValue.values.method == "cancel"))
                {
                    throw new Exception("小车调用方法错误");
                }
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务单取消-请求报文:( {jsonData} ),", logStr);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务取消-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                //_rcsserver.CancelTask(model.robotTaskCode, _config.AgvHost + _config.CancelTask, 0);
                resultModel = new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode };
                Data data = new Data();
                //data.robotTaskCode = model.robotTaskCode;
                resultModel = new AgvResultModel2 { code = "0", message = "成功", da = data };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务单取消-返回报文:( {jsonData2} ),", logStr);
                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 };
                resultModel.code = "1";
                resultModel.message = ex.Message;
                resultModel.da.robotTaskCode = model.robotTaskCode;
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-任务单取消-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
        }
        }
        /// <summary>
        /// 走出储位
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult AGVCallback(AgvTaskDto model)
        {
            //记录log
            var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel2 resultModel = null;//返回信息
            try
            {
                var extraValue = new ExtraModel();
                extraValue = model.extra;
                switch (extraValue.values.method)
                {
                    case "outbin":
                        var a = outbin(model);
                        break;
                    case "end":
                        var b = end(model);
                        break;
                    case "cancel":
                        var c = cancel(model);
                        break;
                    default:
                        break;
                }
                Data data = new Data();
                data.robotTaskCode = model.robotTaskCode;
                resultModel = new AgvResultModel2 { code = "0", message = "成功", da = data };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
            catch (Exception ex)
            {
                Data data = new Data();
                data.robotTaskCode = model.robotTaskCode;
                resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
                LogFile.SaveLogToFile($"AGV任务执行通知-返回报文:( {jsonData2} ),", logStr);
                return Ok(resultModel);
            }
        }
        #endregion
@@ -1043,7 +1125,7 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _rcsserver.DownTask(model.taskNo, int.Parse(userId), _config.AgvHost + _config.GenAgvSchedulingTask);
                _rcsserver.DownTask(model.taskNo, int.Parse(userId), _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost + _config.AGVBindPallets);
                return Ok(new { code = 0, msg = "重新下发已完成", data = "" });
            }
@@ -1077,7 +1159,7 @@
                //具体处理方法
                _rcsserver.RCSFinishTask(model.taskNo, "1", "WMS");
                return Ok(new { code = 0, msg = "重新下发已完成", data = "" });
                return Ok(new { code = 0, msg = "任务已手动完成", data = "" });
            }
            catch (Exception e)
            {
@@ -1106,7 +1188,7 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _rcsserver.CancelTask(model.taskNo, int.Parse(userId));
                _rcsserver.CancelTask(model.taskNo, _config.AgvHost + _config.CancelTask, int.Parse(userId));
                return Ok(new { code = 0, msg = "成功取消任务", data = "" });
            }
@@ -1271,7 +1353,7 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _hopper.jiaoLiaoHopper(model.AreaNo,model.LocateNo,model.PlnStatus,model.Standard,model.SkuNo,model.LotNo,"", int.Parse(userId));
                _hopper.jiaoLiaoHopper(model.AreaNo,model.LocateNo,model.PlnStatus,model.Standard,model.SkuNo,model.LotNo,_config.AgvHost+_config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets, int.Parse(userId));
                return Ok(new { data = model, code = 0, msg = "" });
            }
@@ -1302,7 +1384,7 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _hopper.jiaoCheHopper(model.AreaNo, model.LocateNo,model.PlnNo, model.PlnStatus, model.Weight , model.SkuNo, model.LotNo,"", int.Parse(userId));
                _hopper.jiaoCheHopper(model.AreaNo, model.LocateNo,model.PlnNo, model.PlnStatus, model.Weight , model.SkuNo, model.LotNo, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets, int.Parse(userId));
                return Ok(new { data = model, code = 0, msg = "" });
            }
@@ -1327,7 +1409,7 @@
                LogFile.SaveLogToFile($"清洗机叫料-请求报文:( {jsonData} ),", logStr);
                //具体处理方法
                _hopper.RCSCleanRequest(model.deviceID,model.deviceStation,model.status, _config.AgvHost + _config.GenAgvSchedulingTask);
                _hopper.RCSCleanRequest(model.deviceID,model.deviceStation,model.status, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets);
                resultModel = new AgvResultModel { code = "0", message = "请求成功!"};
                var jsonData2 = JsonConvert.SerializeObject(resultModel);
@@ -1344,6 +1426,77 @@
                return Ok(resultModel);
            }
        }
        /// <summary>
        /// 点对点任务
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult PointToPointRequest(PointTask model)
        {
            var logStr = $@".\log\AGV\点对点任务下发" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            AgvResultModel resultModel = null;//返回信息
            try
            {
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"任务下发:( {jsonData} ),", logStr);
                //具体处理方法
                _hopper.PointToPointRequest(model.ID, model.BeginPoint, model.EndPoint, _config.AgvHost + _config.GenAgvSchedulingTask, _config.AgvHost + _config.AGVBindPallets);
                resultModel = new AgvResultModel { code = "0", message = "请求成功!" };
                return Ok(resultModel);
            }
            catch (Exception e)
            {
                LogFile.SaveLogToFile($"下发点对点任务异常:( {e.Message} ),", logStr);
                resultModel = new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" };
                return Ok(resultModel);
            }
        }
        /// <summary>
        /// 删除当前库存信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult DelStockWms(DelStockInfo model)
        {
            try
            {
                //获取当前登录的用户ID
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                string errMsg = "";
                bool t = _rcsserver.DelStockWms(model.StockId, _config.AgvHost + _config.AGVUnBindPallets, int.Parse(userId),out errMsg);
                if (t)
                {
                    return Ok(new { code = 0, msg = "删除成功", data = "" });
                }
                else
                {
                    return Ok(new { code = 1, msg = "删除失败", data = errMsg });
                }
                }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
        #endregion
    }