From 0057ff26d5e835629d9d85d63f4bbe723e5c9e44 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周日, 18 5月 2025 19:47:32 +0800
Subject: [PATCH] 项目

---
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs |   71 +++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
index d3d4886..7ede721 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
@@ -20,6 +20,8 @@
 using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord;
 using Volo.Abp.Uow;
 using Microsoft.Extensions.DependencyInjection;
+using NPOI.SS.Formula.Functions;
+using System.Collections.Generic;
 
 namespace CMS.Plugin.HIAWms.Application.Implements;
 
@@ -694,4 +696,73 @@
         await uow.SaveChangesAsync();
         await uow.CompleteAsync();
     }
+
+    /// <summary>
+    /// 淇敼鐩爣搴撲綅
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    /// <exception cref="UserFriendlyException"></exception>
+    public async Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input)
+    {
+        var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo); 
+        if (task == null)
+        {
+            throw new UserFriendlyException("浠诲姟淇℃伅涓嶅瓨鍦�");
+        }
+
+        if (task.TaskStatus != WmsTaskStatus.WEIZHIXING)
+        {
+            throw new UserFriendlyException("宸插紑濮嬫垨鑰呯粨鏉熺殑浠诲姟涓嶅厑璁镐慨鏀�");
+        }
+
+        var toPlaceInfo = await _wmsPlaceRepository.FindByNameAsync(input.ToPlace);
+        if (toPlaceInfo == null)
+        {
+            throw new UserFriendlyException("鐩爣搴撲綅淇℃伅涓嶅瓨鍦�");
+        }
+
+        if(toPlaceInfo.IsDisabled)
+        {
+            throw new UserFriendlyException("鐩爣搴撲綅宸茶绂佺敤");
+        }
+
+        var toplaceStock = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.ToPlace });
+        if (toplaceStock != null && toplaceStock.Count>0)
+        {
+            var model = toplaceStock.FirstOrDefault();
+            if (model.MaterialModel != input.MutableParam1)
+            {
+                throw new UserFriendlyException("鐩爣搴撲綅鍨嬪彿涓庡綋鍓嶅瀷鍙蜂笉涓�鑷翠笉鍏佽淇敼");
+            }
+        }
+        task.ToPlace = input.ToPlace;
+
+        await wmsTaskRepository.UpdateAsync(task);
+    }
+
+    /// <summary>
+    /// 鑾峰彇闇�瑕佹墽琛岀殑浠诲姟
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input)
+    {
+        var queryInput = new GetWmsTaskInput
+        {
+            TaskStatus = WmsTaskStatus.WEIZHIXING,
+        };
+        var whereConditions = DynamicGetQueryParams(queryInput);
+
+        var NoStartTaskList = await wmsTaskRepository.GetTaskListAsync(whereConditions);
+        if(NoStartTaskList.Count<=0) return null;
+
+        var executeTask = NoStartTaskList.FirstOrDefault(x=>x.TaskType == input.TaskType);
+        if(executeTask == null)
+        {
+            return ObjectMapper.Map<WmsTask, WmsTaskDto>(NoStartTaskList.FirstOrDefault());
+        }
+
+        return ObjectMapper.Map<WmsTask, WmsTaskDto>(executeTask);
+    }
 }

--
Gitblit v1.9.3