·
hwh
2025-01-15 131347ad63bb534b5abb6dbc979f0a47d780d8ff
Wms/Wms/Controllers/DownApiController.cs
@@ -16,6 +16,9 @@
using WMS.Entity.BllTaskEntity;
using WMS.IBLL.IBllTaskServer;
using Model.ModelVm.BllTaskVm;
using Utility;
using System.Threading.Tasks;
using Model.ModelVm.BllCheckVm;
namespace Wms.Controllers
{
@@ -98,7 +101,7 @@
        /// <returns></returns>
        [Authorize]
        [HttpGet]
        public IActionResult IssueOutHouse(string soNo,string unstackingMode, string outMode,string loadingAddre)
        public IActionResult IssueOutHouse(string soNo, string unstackingMode, string outMode, string loadingAddre)
        {
            try
            {
@@ -119,10 +122,10 @@
                //    return Ok(new { code = 1, msg = "请选择出库口" });
                //}
                var list = _exNoticeSvc.IssueOutHouse(soNo,unstackingMode, outMode,loadingAddre, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl,out string str);
                return Ok(new { code = 0, msg = str , data = list });
                var list = _exNoticeSvc.IssueOutHouse(soNo, unstackingMode, outMode, loadingAddre, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str);
                return Ok(new { code = 0, msg = str, data = list });
            }
            catch (Exception e)
            {
@@ -152,8 +155,8 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                var list = _exNoticeSvc.AgainSendSoTask(taskNo, int.Parse(userId),_config.WcsHost + _config.IssueComApiUrl2);
                var list = _exNoticeSvc.AgainSendSoTask(taskNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl2);
                return Ok(new { code = 0, msg = "重新下发已完成", data = list });
@@ -172,40 +175,61 @@
        /// <returns></returns>
        [Authorize]
        [HttpGet]
        public IActionResult CheckOutHouse(string crNo,string outMode)
        [UnitOfWork]
        public async Task<IActionResult> CheckOutHouse(string crNo, string outMode)
        {
            try
            //获取当前登录的用户ID
            var claimsIdentity = this.User.Identity as ClaimsIdentity;
            if (claimsIdentity == null)
            {
                //获取当前登录的用户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 list = _crCheckSvc.CheckOutHouse(crNo, outMode,int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str);
                return Ok(new { code = 0, msg = str, data = list });
                return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
            }
            catch (Exception e)
            var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
            if (string.IsNullOrWhiteSpace(userId))
            {
                return Ok(new { code = 1, msg = e.Message });
                return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
            }
            string str = "";
            var list = await _crCheckSvc.CheckOutHouse(crNo, outMode, _config.WcsHost + _config.IssueComApiUrl, str);
            return Ok(new { code = 0, msg = str, data = list });
        }
        /// <summary>
        /// 指令下发(视觉盘点)
        /// </summary>
        /// <param name="crNo"></param>
        /// <param name="outMode"></param>
        /// <returns></returns>
        [Authorize]
        [HttpGet]
        [UnitOfWork]
        public async Task<IActionResult> CheckVision(string crNo)
        {
            //获取当前登录的用户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 str = "";
            var list = await _crCheckSvc.CheckVision(crNo, _config.WcsHost + _config.IssueComApiUrl, str);
            return Ok(new { code = 0, msg = str, data = list });
        }
        /// <summary>
        /// 重新下发盘点任务
        /// </summary>
        /// <param name="taskNo"></param>
        /// <returns></returns>
        [HttpGet]
        public IActionResult AgainSendCheckTask(string taskNo)
        public async Task<IActionResult> AgainSendCheckTask(string taskNo)
        {
            try
            {
@@ -220,7 +244,7 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _crCheckSvc.AgainSendCheckTask(taskNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl2);
                await _crCheckSvc.AgainSendCheckTask(taskNo, _config.WcsHost + _config.IssueComApiUrl2);
                return Ok(new { code = 0, msg = "重新下发已完成", data = "" });
            }
@@ -251,17 +275,17 @@
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"WCS托盘绑定-申请巷道:( {jsonData} ),", logStr);
                 _asnPalletBindSvc.BindPalletStock(model, 0);
                _asnPalletBindSvc.BindPalletStock(model, 0);
                //申请巷道
                var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, "W01");
                LogFile.SaveLogToFile($"WCS托盘绑定-申请巷道返回:( {JsonConvert.SerializeObject(list)} ),", logStr);
                return Ok(new { Success = 0, Message = "托盘绑定-申请巷道成功", TaskList = list });
            }
            catch (Exception e)
            {
                LogFile.SaveLogToFile($"WCS托盘绑定-申请巷道返回:( {e.Message} ),", logStr);
                return Ok(new ErpModel { Success = -1, Message = e.Message });
            }
        }
@@ -277,16 +301,16 @@
        public IActionResult RequestRoadWay(RequestLocate model)
        {
            var logStr = "";
            logStr = $@".\log\WCS\WCS申请巷道" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            try
            {
                var jsonData = JsonConvert.SerializeObject(model);
                LogFile.SaveLogToFile($"WCS申请巷道:( {jsonData} ),", logStr);
                var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, model.HouseNo );
                var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, model.HouseNo);
                LogFile.SaveLogToFile($"WCS申请巷道返回:( {JsonConvert.SerializeObject(list)} ),", logStr);
                //new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", model.PalletNo.Substring(0, 8), 
@@ -336,7 +360,7 @@
            {
                logStr = $@".\log\WCS\WCS申请储位" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            }
            try
            {
                if (model.PalletNo.Length == 9)
@@ -351,11 +375,11 @@
                }
                string pallet = model.PalletNo.Substring(0, 8);
                var list = _asnPalletBindSvc.RequestLocation(pallet, model.HouseNo,model.RoadwayNo);
                var list = _asnPalletBindSvc.RequestLocation(pallet, model.HouseNo, model.RoadwayNo);
                if (model.PalletNo.Length == 9)
                {
                    new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", model.PalletNo.Substring(0, 8), "申请储位", $"申请储位托盘号:{model.PalletNo.Substring(0, 8)}的成功信息",2);// int.Parse(userId)
                    new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", model.PalletNo.Substring(0, 8), "申请储位", $"申请储位托盘号:{model.PalletNo.Substring(0, 8)}的成功信息", 2);// int.Parse(userId)
                    LogFile.SaveLogToFile($"WMS申请储位成功:( {JsonConvert.SerializeObject(list)} ),", logStr);
                }
                else if (model.PalletNo.Length == 8)
@@ -364,7 +388,7 @@
                }
                if (model.PalletNo.Length == 9)
                {
                }
                return Ok(new { Success = 0, Message = "申请储位成功", TaskList = list });
@@ -373,14 +397,14 @@
            {
                if (model.PalletNo.Length == 9)
                {
                    new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", model.PalletNo.Substring(0, 8), "申请储位", $"申请储位托盘号:{model.PalletNo.Substring(0,8)}的失败信息", 2);//int.Parse(userId)
                    new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", model.PalletNo.Substring(0, 8), "申请储位", $"申请储位托盘号:{model.PalletNo.Substring(0, 8)}的失败信息", 2);//int.Parse(userId)
                    LogFile.SaveLogToFile($"WMS申请储位失败返回:( {e.Message} ),", logStr);
                }
                else if(model.PalletNo.Length == 8)
                else if (model.PalletNo.Length == 8)
                {
                    LogFile.SaveLogToFile($"WCS申请储位返回:( {e.Message} ),", logStr);
                }
                return Ok(new ErpModel { Success = -1, Message = e.Message });
            }
        }
@@ -411,14 +435,14 @@
                    case "0"://入库完成任务
                        if (model.TaskType == "0")//0:入库 1:出库 2:移库
                        {
                            _asnPalletBindSvc.ArrivalSuccess(model.TaskNo,0);
                            _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0);
                            return Ok(new WcsModel { StatusCode = 0, Msg = "入库完成" });
                        }
                        break;
                    case "1"://出库完成任务
                        if (model.TaskType == "1")//0:入库 1:出库 2:移库
                        {
                            _exNoticeSvc.ExportSuccess(model.TaskNo,0);
                            _exNoticeSvc.ExportSuccess(model.TaskNo, 0);
                            return Ok(new WcsModel { StatusCode = 0, Msg = "出库完成" });
                        }
                        else if (model.TaskType == "2")
@@ -445,8 +469,8 @@
                            //填写移库完成代码
                        }
                        break;
                    default :
                        return Ok(new WcsModel { StatusCode = -1, Msg = "传递的任务状态为失败状态" });
                    default:
                        return Ok(new WcsModel { StatusCode = -1, Msg = "传递的任务状态为失败状态" });
                }
                return Ok(new WcsModel { StatusCode = -1, Msg = "传递的任务状态为失败状态" });
            }
@@ -462,7 +486,7 @@
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public IActionResult EmptyException(ReceiveWcsSignal model)
        public IActionResult EmptyException(ReceiveWcsSignal model)
        {
            var logStr = $@".\log\WCS\异常反馈" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            try
@@ -473,7 +497,7 @@
                var bl = _exNoticeSvc.EmptyException(model);
                LogFile.SaveLogToFile($"空取异常:(执行结果成功),", logStr);
                return Ok(new { Success = 0, Message = ""});
                return Ok(new { Success = 0, Message = "" });
            }
            catch (Exception e)
            {
@@ -487,7 +511,7 @@
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public IActionResult FullException(ReceiveWcsSignal model)
        public IActionResult FullException(ReceiveWcsSignal model)
        {
            var logStr = $@".\log\WCS\异常反馈" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            try
@@ -581,7 +605,7 @@
                var orderType = _taskSvc.GetTaskOrderType(model.TaskNo);// 判断单据类型入出移
                switch (orderType)
                {
                    case "1"://出库完成任务
                        if (model.TaskType == "1")//0:入库 1:出库 2:移库
                        {