yuyou_x
2024-06-07 e67692e10bd18b95e0320540d0e91bd537acbae8
Wms/Wms/Controllers/PdaCrController.cs
@@ -10,6 +10,8 @@
using WMS.IBLL.IPdaServer;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
using Wms.Tools;
using Microsoft.Extensions.Options;
namespace Wms.Controllers
{
@@ -19,10 +21,11 @@
    public class PdaCrController : ControllerBase
    {
        private readonly IPdaCrServer _pdaCrSvc;
        public PdaCrController(IPdaCrServer pdaCrSvc)
        private readonly ApiUrlConfig _config; //接口交互路径
        public PdaCrController(IPdaCrServer pdaCrSvc, IOptions<ApiUrlConfig> setting)
        {
            _pdaCrSvc = pdaCrSvc;
            _config = setting.Value;
        }
        #region 盘点
@@ -278,6 +281,129 @@
            }
        }
        /// <summary>
        /// 获取托盘所在楼层所有区域
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IActionResult GetRunSoNoticeList()
        {
            try
            {
                List<string> result = _pdaCrSvc.GetRunSoNoticeList();
                return Ok(new { data = result, code = 0, msg = "成功" });
            }
            catch (Exception e)
            {
                return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
            }
        }
        /// <summary>
        /// 根据托盘号获取托盘上物料信息
        /// </summary>
        /// <param name="palletNo"></param>
        /// <returns></returns>
        [HttpGet]
        public IActionResult GetSkuInfoByPalletNo(string palletNo)
        {
            try
            {
                List<DataStockDetail> result = _pdaCrSvc.GetSkuInfoByPalletNo(palletNo);
                return Ok(new { data = result, code = 0, msg = "成功" });
            }
            catch (Exception e)
            {
                return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
            }
        }
        /// <summary>
        /// 根据出库单号获取分配的托盘信息
        /// </summary>
        /// <param name="soNo"></param>
        /// <returns></returns>
        [HttpGet]
        public IActionResult GetPalletNoListBySoNo(string soNo)
        {
            try
            {
                List<string> result = _pdaCrSvc.GetPalletNoListBySoNo(soNo);
                return Ok(new { data = result, code = 0, msg = "成功" });
            }
            catch (Exception e)
            {
                return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
            }
        }
        /// <summary>
        /// agv转运呼叫小车
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult AgvTransport(PdaAgvTransportVm 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 = "未获取到当前操作人信息" });
                }
                var uId = int.Parse(userId);
                _pdaCrSvc.AgvTransport(model.PalletNo, model.AreaNo, model.Ruku, uId, _config.WcsHost + _config.GenAgvSchedulingTask);
                return Ok(new { data = "", code = 0, msg = "成功" });
            }
            catch (Exception e)
            {
                return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
            }
        }
        /// <summary>
        /// agv转运呼叫小车取货
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult AgvTransport2(PdaAgvTransportVm 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 = "未获取到当前操作人信息" });
                }
                var uId = int.Parse(userId);
                _pdaCrSvc.AgvTransport2(model.SoNo,model.PalletNo, model.AreaNo, uId, _config.WcsHost + _config.GenAgvSchedulingTask);
                return Ok(new { data = "", code = 0, msg = "成功" });
            }
            catch (Exception e)
            {
                return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
            }
        }
        #endregion
    }