| | |
| | | using static Model.InterFaceModel.RCSModel; |
| | | using WMS.IBLL.IBllTransServer; |
| | | using Microsoft.Extensions.Logging; |
| | | using ZXing.QrCode.Internal; |
| | | using Model.ModelVm.BllCheckVm; |
| | | |
| | | namespace Wms.Controllers |
| | | { |
| | |
| | | public IActionResult GetPalletNo(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); |
| | | LogFile.SaveLogToFile($"AGV申请叫桶-请求报文:( {jsonData} ),", logStr); |
| | | |
| | | if (string.IsNullOrWhiteSpace(pallmsg.Location)) |
| | | { |
| | | return Ok(new AgvResultModel { code = "1", message = "叫料位置为空!", data = "", reqCode = "" }); |
| | | 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)) |
| | | { |
| | | return Ok(new AgvResultModel { code = "1", message = "任务类型为空!", data = "", reqCode = "" }); |
| | | resultModel = new AgvResultModel { code = "1", message = "任务类型为空!", data = "", reqCode = "" }; |
| | | var jsonData4 = JsonConvert.SerializeObject(resultModel); |
| | | LogFile.SaveLogToFile($"AGV申请叫桶-返回报文:( {jsonData4} ),", logStr); |
| | | return Ok(resultModel); |
| | | } |
| | | string taskNo = ""; |
| | | //具体处理方法 |
| | | _rcsserver.GetPalletNo(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask, out taskNo); |
| | | return Ok(new AgvResultModel { code = "0", message = "叫桶成功", data = taskNo, reqCode = "" }); |
| | | |
| | | 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); |
| | | |
| | | return Ok(new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" }); |
| | | resultModel = new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" }; |
| | | var jsonData2 = JsonConvert.SerializeObject(resultModel); |
| | | LogFile.SaveLogToFile($"AGV申请叫桶-返回报文:( {jsonData2} ),", logStr); |
| | | return Ok(resultModel); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | | LogFile.SaveLogToFile($"AGV申请储位-请求报文:( {jsonData} ),", logStr); |
| | | |
| | | if (string.IsNullOrWhiteSpace(pallmsg.Location)) |
| | | { |
| | | return Ok(new AgvResultModel { code = "1", message = "申请位置为空!", data = "", reqCode = "" }); |
| | | 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)) |
| | | { |
| | | return Ok(new AgvResultModel { code = "1", message = "任务类型为空!", data = "", reqCode = "" }); |
| | | 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)) |
| | | { |
| | | return Ok(new AgvResultModel { code = "1", message = "申请托盘号为空!", data = "", reqCode = "" }); |
| | | } |
| | | //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); |
| | | |
| | | return Ok(new AgvResultModel { code = "0", message = "申请储位成功!", data = taskNo, reqCode = "" }); |
| | | 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); |
| | | |
| | | return Ok(new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" }); |
| | | resultModel = new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" }; |
| | | var jsonData3 = JsonConvert.SerializeObject(resultModel); |
| | | LogFile.SaveLogToFile($"AGV申请储位-返回报文:( {jsonData3} ),", logStr); |
| | | return Ok(resultModel); |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | #region Agv任务完成反馈 |
| | | /// <summary> |
| | | /// Agv任务完成反馈 |
| | | /// 任务开始 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult agvCallBack(AgvTaskDto model) |
| | | 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($"任务执行通知:( {jsonData} ),", logStr); |
| | | LogFile.SaveLogToFile($"AGV任务执行通知-任务开始-请求报文:( {jsonData} ),", logStr); |
| | | |
| | | if (string.IsNullOrEmpty(model.taskCode)) |
| | | { |
| | | return Ok(new AgvResultModel { code = "-1", message = "请求失败,taskCode参数异常", reqCode = model.reqCode }); |
| | | } |
| | | switch (model.method) |
| | | { |
| | | case "start"://任务开始 |
| | | return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode }); |
| | | //具体处理方法 |
| | | |
| | | case "outbin"://走出储位 |
| | | return Ok(new AgvResultModel { code = "0", message = "成功", reqCode = model.reqCode }); |
| | | |
| | | case "end"://任务结束 |
| | | _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 }); |
| | | |
| | | 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 }); |
| | | } |
| | | 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); |
| | | return Ok(new AgvResultModel { code = "-1", message = ex.Message, reqCode = model.reqCode }); |
| | | 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", "AGV"); |
| | | |
| | | |
| | | 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> |
| | | /// 出库单据下发 |
| | |
| | | return Ok(new ErpModel { Success = -1, Message = e.Message }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 手动下发小车任务 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult SendAgvTaskWms(CheckTaskVm 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 = "未获取到当前操作人信息" }); |
| | | } |
| | | _rcsserver.DownTask(model.taskNo, int.Parse(userId), _config.AgvHost + _config.GenAgvSchedulingTask); |
| | | |
| | | return Ok(new { code = 0, msg = "重新下发已完成", data = "" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 手动完成小车任务 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult FinshAgvTaskWms(CheckTaskVm 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 = "未获取到当前操作人信息" }); |
| | | } |
| | | //具体处理方法 |
| | | _rcsserver.RCSFinishTask(model.taskNo, "1", "WMS"); |
| | | |
| | | return Ok(new { code = 0, msg = "重新下发已完成", data = "" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 手动取消AGV移库任务 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult CancelAgvTaskWms(CheckTaskVm 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 = "未获取到当前操作人信息" }); |
| | | } |
| | | _rcsserver.CancelTask(model.taskNo, int.Parse(userId)); |
| | | |
| | | return Ok(new { code = 0, msg = "成功取消任务", data = "" }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |