From dc2aad89c80958f6c444e82ab196cea931e6addc Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 13 5月 2025 06:19:24 +0800
Subject: [PATCH] 222
---
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs | 47 ++++++++++++++++++++++++++++++++++-------------
1 files changed, 34 insertions(+), 13 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 245278e..d3d4886 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
@@ -167,6 +167,7 @@
var insertObj = ObjectMapper.Map<WmsTaskCreateDto, WmsTask>(input);
insertObj.Sort = sort;
input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
+ insertObj.PlcTaskId = new Random(Guid.NewGuid().GetHashCode()).Next(101, 99999);
await wmsTaskRepository.InsertAsync(insertObj);
@@ -197,7 +198,7 @@
}
updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
- if(input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.WANCHENG || input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.QUXIAO)
+ if (input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.WANCHENG || input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.QUXIAO)
{
throw new UserFriendlyException("瀹屾垚鎴栬�呭彇娑堢殑浠诲姟涓嶅厑璁告洿鏀�");
}
@@ -523,9 +524,8 @@
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
- public async Task FinishTaskAsync(WmsTaskUpdateDto input)
+ public async Task FinishTaskAsync(WmsTaskStatusDto input)
{
-
using var scope = _serviceProvider.CreateScope();
var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
using var uow = unitOfWorkManager.Begin(requiresNew: true);
@@ -540,19 +540,35 @@
throw new UserFriendlyException("鍙栨秷鎴栬�呭畬鎴愮殑浠诲姟涓嶅厑璁告搷浣�");
}
task.TaskStatus = WmsTaskStatus.WANCHENG;
+ task.TaskDodeviceStatus = TaskDodeviceStatus.SrmFinish;
+ await wmsTaskRepository.UpdateAsync(task);
+
+ var place = await _wmsPlaceRepository.FindByNameAsync(task.ToPlace);
+ if (place == null)
+ {
+ throw new UserFriendlyException("鐩爣搴撲綅涓嶅瓨鍦�");
+ }
// 鏇存柊搴撳瓨
- var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1,PlaceNo = task.SourcePlace});
- if(stockList == null || stockList.Count<=0)
+ var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1, PlaceNo = task.SourcePlace });
+ if (stockList == null || stockList.Count <= 0)
{
throw new UserFriendlyException("鍘熷簱浣嶄俊鎭笉瀛樺湪");
}
var stock = stockList.FirstOrDefault();
stock.PlaceNo = task.ToPlace;
+ stock.StorageTypeNo = place.StorageTypeNo;
+ stock.InStockTime = DateTime.Now;
stock.ContainerNo = "TP" + task.ToPlace;
+ await _wmsMaterialStockRepository.UpdateAsync(stock);
+
+ place.PlaceStatus = PlaceStatusEnum.CUNHUO;
+ await _wmsPlaceRepository.UpdateAsync(place);
+
+
var container = await _wmsContainerRepository.FindByNameAsync(stock.ContainerNo);
- if(container == null)
+ if (container == null)
{
await _wmsContainerRepository.InsertAsync(new WmsContainer
{
@@ -561,9 +577,14 @@
ContainerType = ContainerTypeEnum.XUNI,
});
}
+ else
+ {
+ container.ContainerStatus = ContainerStatusEnum.KUWEI;
+ await _wmsContainerRepository.UpdateAsync(container);
+ }
var oldContainer = await _wmsContainerRepository.FindByNameAsync(task.ContainerNo);
- if(oldContainer != null)
+ if (oldContainer != null)
{
await _wmsContainerRepository.DeleteAsync(oldContainer);
}
@@ -572,7 +593,7 @@
{
// 璺熸柊鍗曟嵁瀹屾垚鏁伴噺
var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo);
- if(orderNo != null)
+ if (orderNo != null)
{
orderNo.CompleteNumber += 1;
orderNo.OrderStatus = OrderStatusEnum.Executing;
@@ -605,7 +626,7 @@
StockType = task.TaskType == TaskTypeEnum.CHUKU ? StockTypeEnum.OutBound : StockTypeEnum.InBound,
ContainerNo = task.ContainerNo,
MaterialId = stock.MaterialId,
- MaterialModel= stock.MaterialModel,
+ MaterialModel = stock.MaterialModel,
MaterialName = stock.MaterialName,
MaterialNo = stock.MaterialNo,
MaterialBatch = stock.MaterialBatch,
@@ -625,7 +646,7 @@
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
- public async Task CancelTaskAysnc(WmsTaskUpdateDto input)
+ public async Task CancelTaskAysnc(WmsTaskStatusDto input)
{
using var scope = _serviceProvider.CreateScope();
@@ -656,18 +677,18 @@
{
// 璺熸柊鍗曟嵁瀹屾垚鏁伴噺
var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo);
- if(orderNo != null)
+ if (orderNo != null)
{
orderNo.CompleteNumber -= 1;
orderNo.OrderStatus = OrderStatusEnum.NoStart;
}
- if (orderNo.CompleteNumber>0)
+ if (orderNo.CompleteNumber > 0)
{
orderNo.OrderStatus = OrderStatusEnum.Executing;
}
await _wmsInOutStockOrderRepository.UpdateAsync(orderNo);
-
+
}
await uow.SaveChangesAsync();
--
Gitblit v1.9.3