wxw
2024-12-11 0651efda1f08d417c82994887c68dfea2c9b4235
Wms/Wms/Controllers/UpApiController.cs
@@ -413,9 +413,13 @@
        [HttpPost]
        public IActionResult GetPalletNo(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 = "叫料位置为空!";
@@ -426,7 +430,69 @@
                    result.Message = "任务类型为空!";
                    return Ok(result);
                }
                _rcsserver.GetPalletNo(pallmsg);
                _rcsserver.GetPalletNo(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="pallmsg"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult ChangePalletStatus(Pallnetmsg pallmsg)
        {
            var result = new ErpModel { Success = -1, Message = "", };
            try
            {
                if (string.IsNullOrWhiteSpace(pallmsg.PalletNo))
                {
                    result.Message = "桶编号不能为空!";
                    return Ok(result);
                }
                _rcsserver.ChangePalletStatus(pallmsg.PalletNo, _config.AgvHost + _config.GenAgvSchedulingTask);
                result.Success = 0;
                result.Message = "操作成功!";
                return Ok(result);
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                return Ok(result);
            }
        }
        /// <summary>
        /// MES下发清洗锁定脏桶
        /// </summary>
        /// <param name="pallmsg"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult CleanPallet(Pallnetmsg pallmsg)
        {
            var result = new ErpModel { Success = -1, Message = "", };
            try
            {
                if (string.IsNullOrWhiteSpace(pallmsg.Location))
                {
                    result.Message = "叫料位置为空!";
                    return Ok(result);
                }
                if (string.IsNullOrWhiteSpace(pallmsg.PalletNo))
                {
                    result.Message = "桶号为空!";
                    return Ok(result);
                }
                _rcsserver.CleanPallet(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask);
                result.Success = 0;
                result.Message = "叫桶成功!";
                return Ok(result);
@@ -446,9 +512,14 @@
        [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 = "申请位置为空!";
@@ -459,18 +530,19 @@
                    result.Message = "任务类型为空!";
                    return Ok(result);
                }
                if (string.IsNullOrWhiteSpace(pallmsg.Palletno))
                if (string.IsNullOrWhiteSpace(pallmsg.PalletNo))
                {
                    result.Message = "申请托盘号为空!";
                    return Ok(result);
                }
                _rcsserver.ApplyLocatNo(pallmsg);
                _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);
@@ -512,35 +584,49 @@
        }
        /// <summary>
        /// 任务完成反馈
        /// Agv任务完成反馈
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult RCSFinishTask(TaskModel model)
        public IActionResult agvCallBack(AgvTaskDto model)
        {
            var result = new ErpModel { Success = -1, Message = "" };
            try
            {
                /*var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                //记录log
                var logStr = $@".\log\AGV\任务执行通知" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"任务执行通知:( {jsonData} ),", logStr);
                if (string.IsNullOrEmpty(model.reqCode))
                {
                    throw new Exception("未获取到用户信息");
                    return Ok(new AgvResultModel { code = "-1", message = "请求失败,reqCode参数异常", reqCode = model.reqCode });
                }
                string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(UserId))
                switch (model.method)
                {
                    throw new Exception("未获取到用户信息");
                }*/
                    case "start"://任务开始
                        return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode });
                result = _noticeSvc.RCSFinishTask(model.TaskNo, model.Status);
                    case "outbin"://走出储位
                        return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode });
                return Ok(result);
                    case "end"://任务结束
                        result = _noticeSvc.RCSFinishTask(model.reqCode, "1");
                        return Ok(result);
                    case "cancel"://任务单取消
                        return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode });
                    case "apply"://CTU料箱取放申请
                        return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode });
                    default:
                        return Ok(new AgvResultModel { code = "-1", message = "请求失败,method任务类型错误", reqCode = model.reqCode });
                }
            }
            catch (Exception e)
            catch (Exception ex)
            {
                result.Message = e.Message;
                return Ok(result);
                return Ok(new AgvResultModel { code = "-1", message = ex.Message, reqCode = model.reqCode });
            }
        }
@@ -566,7 +652,7 @@
                    throw new Exception("未获取到用户信息");
                }*/
                SoResInfo result = _exNoticeSvc.ErpAddExportNotice(model);
                SoResInfo result = _noticeSvc.CreateSoWork(model);
                return Ok(result);
            }