From f5851974b861a20182c06d6f891fd427b1414209 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 20 5月 2025 15:21:19 +0800
Subject: [PATCH] 优化
---
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs | 94 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 89 insertions(+), 5 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 d09721c..fdb8c6f 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;
@@ -524,8 +526,12 @@
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
- public async Task FinishTaskAsync(WmsTaskStatusDto input)
+ public async Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input)
{
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
using var scope = _serviceProvider.CreateScope();
var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
using var uow = unitOfWorkManager.Begin(requiresNew: true);
@@ -638,6 +644,8 @@
await uow.SaveChangesAsync();
await uow.CompleteAsync();
+
+ return ObjectMapper.Map<WmsTask, WmsTaskDto>(task);
}
/// <summary>
@@ -648,7 +656,10 @@
/// <exception cref="UserFriendlyException"></exception>
public async Task CancelTaskAysnc(WmsTaskStatusDto input)
{
-
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
using var scope = _serviceProvider.CreateScope();
var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
using var uow = unitOfWorkManager.Begin(requiresNew: true);
@@ -703,7 +714,13 @@
/// <exception cref="UserFriendlyException"></exception>
public async Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input)
{
- var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo);
+
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
+
+ var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo);
if (task == null)
{
throw new UserFriendlyException("浠诲姟淇℃伅涓嶅瓨鍦�");
@@ -720,13 +737,13 @@
throw new UserFriendlyException("鐩爣搴撲綅淇℃伅涓嶅瓨鍦�");
}
- if(toPlaceInfo.IsDisabled)
+ if (toPlaceInfo.IsDisabled)
{
throw new UserFriendlyException("鐩爣搴撲綅宸茶绂佺敤");
}
var toplaceStock = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.ToPlace });
- if (toplaceStock != null && toplaceStock.Count>0)
+ if (toplaceStock != null && toplaceStock.Count > 0)
{
var model = toplaceStock.FirstOrDefault();
if (model.MaterialModel != input.MutableParam1)
@@ -738,4 +755,71 @@
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 executeTaskList = NoStartTaskList.WhereIf(input.TaskType > 0, x => x.TaskType == input.TaskType).OrderBy(x => x.TaskType).ThenBy(x => x.TaskLevel).ToList();
+
+ var executeTask = executeTaskList.FirstOrDefault();
+ if (input.OutStockHasGood)
+ {
+ executeTask = NoStartTaskList.OrderByDescending(x => x.TaskType == TaskTypeEnum.RUKU).ThenBy(x => x.TaskLevel).FirstOrDefault();
+ }
+
+ if (executeTask == null)
+ {
+ return ObjectMapper.Map<WmsTask, WmsTaskDto>(NoStartTaskList.FirstOrDefault());
+ }
+
+ if (executeTask.TaskType == TaskTypeEnum.CHUKU && input.OutStockHasGood)
+ {
+ return null;
+ }
+
+ if(executeTask.TaskType == TaskTypeEnum.RUKU && !input.InStockHasGood)
+ {
+ return null;
+ }
+
+ return ObjectMapper.Map<WmsTask, WmsTaskDto>(executeTask);
+ }
+
+
+ /// <summary>
+ /// 鏇存柊浠诲姟涓烘墽琛屼腑
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input)
+ {
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
+ var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo);
+ if(task == null)
+ {
+ return null;
+ }
+ task.TaskStatus = WmsTaskStatus.ZHIXINGZHONG;
+ task.TaskDodeviceStatus = TaskDodeviceStatus.SrmProgress;
+ await wmsTaskRepository.UpdateAsync(task);
+ return ObjectMapper.Map<WmsTask, WmsTaskDto>(task);
+ }
}
--
Gitblit v1.9.3