From 3de39066b5894850d0f0dc311b60cc09f599a025 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期四, 26 二月 2026 14:30:06 +0800
Subject: [PATCH] 修复图片导入;重构路由和堆垛机命令

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |  193 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 192 insertions(+), 1 deletions(-)

diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index 4400580..e779cc8 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -1,10 +1,14 @@
 锘縰sing AutoMapper;
+using Microsoft.AspNetCore.Components.Forms;
 using SqlSugar;
+using System.Text.Json;
 using WIDESEA_Common.LocationEnum;
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
+using WIDESEA_DTO;
 using WIDESEA_DTO.Task;
 using WIDESEA_IBasicService;
 using WIDESEA_IStockService;
@@ -18,6 +22,7 @@
         private readonly IMapper _mapper;
         private readonly IStockInfoService _stockInfoService;
         private readonly ILocationInfoService _locationInfoService;
+        private readonly HttpClientHelper _httpClientHelper;
 
         public IRepository<Dt_Task> Repository => BaseDal;
 
@@ -34,11 +39,13 @@
             IRepository<Dt_Task> BaseDal,
             IMapper mapper,
             IStockInfoService stockInfoService,
-            ILocationInfoService locationInfoService) : base(BaseDal)
+            ILocationInfoService locationInfoService,
+            HttpClientHelper httpClientHelper) : base(BaseDal)
         {
             _mapper = mapper;
             _stockInfoService = stockInfoService;
             _locationInfoService = locationInfoService;
+            _httpClientHelper = httpClientHelper;
         }
 
         /// <summary>
@@ -243,5 +250,189 @@
                 return WebResponseContent.Instance.Error($"瀹屾垚浠诲姟澶辫触: {ex.Message}");
             }
         }
+
+        #region 鍒嗗鏌滄帴鍙�
+
+        /// <summary>
+        /// 鍫嗗灈鏈哄彇鏀捐揣瀹屾垚鍚庣墿娴侀�氱煡鍖栨垚鍒嗗鏌滃畬鎴愪俊鍙�
+        /// </summary>
+        public async Task<WebResponseContent> InOrOutCompletedAsync(InputDto input)
+        {
+            WebResponseContent content = new WebResponseContent();
+            if (string.IsNullOrWhiteSpace(input.PalletCode) || string.IsNullOrWhiteSpace(input.LocationCode))
+            {
+                return content.Error($"鎵樼洏鍙锋垨鑰呰揣浣嶇紪鍙蜂笉鑳戒负绌�");
+            }
+
+            try
+            {
+                var stockInfo = await _stockInfoService.GetStockInfoAsync(input.PalletCode, input.LocationCode);
+                if (stockInfo == null)
+                {
+                    var location = await _locationInfoService.GetLocationInfoAsync(input.LocationCode);
+
+                    OutPutDto outPutDto = new OutPutDto()
+                    {
+                        LocationCode = input.LocationCode,
+                        PalletCode = input.PalletCode,
+                        IsNormalProcedure = 1,
+                        LocationStatus = location.LocationStatus
+                    };
+                    content.OK(data: outPutDto);
+                }
+                else
+                {
+                    OutPutDto outPutDto = new OutPutDto()
+                    {
+                        LocationCode = input.LocationCode,
+                        PalletCode = input.PalletCode,
+                        IsNormalProcedure = 1,
+                        LocationStatus = stockInfo.LocationDetails.LocationStatus
+                    };
+                    content.OK(data: outPutDto);
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+
+            return content;
+        }
+
+        /// <summary>
+        /// 鍖栨垚鍒嗗鏌滃畾鏃跺悜鐗╂祦鏇存柊鍒嗗鏌滅姸鎬佷俊鎭�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<WebResponseContent> SendLocationStatusAsync(InputDto input)
+        {
+            WebResponseContent content = new WebResponseContent();
+            if (string.IsNullOrWhiteSpace(input.LocationCode))
+            {
+                return content.Error($"璐т綅缂栧彿涓嶈兘涓虹┖");
+            }
+
+            try
+            {
+                var result = await _locationInfoService.Db.Updateable<Dt_LocationInfo>()
+                    .SetColumns(s => new Dt_LocationInfo
+                    {
+                        LocationStatus = input.LocationStatus
+                    }).Where(s => s.LocationCode == input.LocationCode).ExecuteCommandAsync() > 0;
+
+                if (result)
+                {
+                    content.OK("鏇存柊鎴愬姛");
+                }
+                else
+                {
+                    content.Error("鏇存柊澶辫触");
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        /// <summary>
+        /// 鍒嗗鏌滃伐浣滃畬鎴愬悗璋冪敤姝ゆ帴鍙i�氱煡鐗╂祦鍑哄簱
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<WebResponseContent> RequestOutboundAsync(InputDto input)
+        {
+            WebResponseContent content = new WebResponseContent();
+            if (string.IsNullOrWhiteSpace(input.LocationCode) || string.IsNullOrWhiteSpace(input.PalletCode))
+            {
+                return content.Error($"鎵樼洏鍙锋垨鑰呰揣浣嶇紪鍙蜂笉鑳戒负绌�");
+            }
+            try
+            {
+                var stock = await _stockInfoService.GetStockInfoAsync(input.PalletCode, input.LocationCode);
+                if (stock == null)
+                {
+                    content.Error("鏈壘鍒板搴旂殑鎵樼洏");
+                }
+                else
+                {
+                    var taskList = new Dt_Task
+                    {
+                        WarehouseId = stock.WarehouseId,
+                        PalletCode = stock.PalletCode,
+                        PalletType = stock.PalletType,
+                        SourceAddress = stock.LocationCode,
+                        CurrentAddress = stock.LocationCode,
+                        NextAddress = "10080",
+                        TargetAddress = "10081",
+                        Roadway = stock.LocationDetails.RoadwayNo,
+                        TaskType = TaskTypeEnum.Outbound.GetHashCode(),
+                        TaskStatus = TaskStatusEnum.New.GetHashCode(),
+                        Grade = 1,
+                        TaskNum = await BaseDal.GetTaskNo(),
+                        Creater = "system",
+                    };
+
+                    var result = await BaseDal.AddDataAsync(taskList) > 0;
+                    var wmstaskDto = result ? _mapper.Map<WMSTaskDTO>(taskList) : null;
+
+
+                    var httpResponse = _httpClientHelper.Post<WebResponseContent>("http://logistics-service/api/logistics/notifyoutbound", JsonSerializer.Serialize(wmstaskDto)).Data;
+                    if (result && httpResponse != null)
+                    {
+                        content.OK("鍑哄簱璇锋眰鎴愬姛");
+                    }
+                    else
+                    {
+                        content.Error("鍑哄簱璇锋眰澶辫触");
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        /// <summary>
+        /// 鍏ュ簱瀹屾垚鍒嗗璋冪敤鑾峰彇鎵樼洏涓婃瘡涓�氶亾鐢佃姱
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<WebResponseContent> GetPalletCodeCellAsync(InputDto input)
+        {
+            WebResponseContent content = new WebResponseContent();
+            if (string.IsNullOrWhiteSpace(input.PalletCode) || string.IsNullOrWhiteSpace(input.LocationCode))
+            {
+                return content.Error($"鎵樼洏鍙锋垨鑰呰揣浣嶇紪鍙蜂笉鑳戒负绌�");
+            }
+            try
+            {
+                var stockInfo = await _stockInfoService.GetStockInfoAsync(input.PalletCode, input.LocationCode);
+                if (stockInfo == null)
+                {
+                    return content.Error("鏈壘鍒板搴旂殑鎵樼洏");
+                }
+                var outPutDtos = stockInfo.Details.Select(x => new OutPutDto()
+                {
+                    LocationCode = input.LocationCode,
+                    PalletCode = input.PalletCode,
+                    IsNormalProcedure = 1,
+                    LocationStatus = stockInfo.LocationDetails.LocationStatus,
+                    CellCode = x.SerialNumber,
+                    Channel = x.InboundOrderRowNo.ToString()
+                }).ToList();
+                return content.OK(data: outPutDtos);
+            }
+            catch (Exception ex)
+            {
+                return content.Error(ex.Message);
+            }
+        }
+
+        #endregion
     }
 }

--
Gitblit v1.9.3