From db3a7d2fd7276fc952a24965060accaf3a76861f Mon Sep 17 00:00:00 2001
From: Huangxiaoqiang-03 <1247017146@qq.com>
Date: 星期五, 25 十月 2024 16:30:30 +0800
Subject: [PATCH] 添加出库移库
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 76 +++++++++++++++++++++++++++++--------
1 files changed, 59 insertions(+), 17 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index d4104dd..a308c97 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -123,11 +123,13 @@
stockInfo.LocationCode = locationInfo.LocationCode;
stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
_stockService.StockInfoService.Repository.UpdateData(stockInfo);
+
beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
int beforeStatus = locationInfo.LocationStatus;
locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
- _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum);
+ _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(),false);
+
_basicService.LocationInfoService.Repository.UpdateData(locationInfo);
task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
@@ -156,17 +158,19 @@
CheckCompleted(stockInfo, locationInfo);
+
_stockService.StockInfoService.Repository.AddData(stockInfo);
int beforeStatus = locationInfo.LocationStatus;
locationInfo.LocationStatus = LocationStatusEnum.Pallet.ObjToInt();
- _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum);
+ _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
_basicService.LocationInfoService.Repository.UpdateData(locationInfo);
task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
_recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum);
+
return WebResponseContent.Instance.OK();
}
@@ -199,6 +203,7 @@
public WebResponseContent OutboundTaskCompleted(Dt_Task task)
{
+ decimal beforeQuantity = 0;
Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
@@ -208,16 +213,34 @@
stockInfo.LocationCode = locationInfo.LocationCode;
stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
_stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
int beforeStatus = locationInfo.LocationStatus;
- locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
- _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum);
- _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+ if (task.Depth == 1)
+ {
+ if (DepthTask(task)) { }
+ else
+ {
+ locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
+ _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
+ _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+ }
+ }
+ else
+ {
+ locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
+ _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
+ _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+ }
task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt();
BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+ _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+ _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
- _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
+ beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
+
+ _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
+ _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) - beforeQuantity, StockChangeType.Outbound);
+
return OnOutboundTaskCompleted?.Invoke(task) ?? WebResponseContent.Instance.OK();
}
@@ -233,14 +256,17 @@
_stockService.StockInfoService.Repository.DeleteData(stockInfo);
int beforeStatus = locationInfo.LocationStatus;
+
locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
- _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum);
+ _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
_basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+
task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt();
BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
- _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
+ _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+
+ _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
return WebResponseContent.Instance.OK();
}
@@ -249,19 +275,15 @@
{
Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
- Dt_LocationInfo locationStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
Dt_LocationInfo locationEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
- CheckCompleted(stockInfo, locationStart);
+ CheckCompleted(stockInfo, locationEnd);
stockInfo.LocationCode = locationEnd.LocationCode;
stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
_stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
-
- //locationStart.LocationStatus = LocationStatusEnum.Free.ObjToInt();
- _basicService.LocationInfoService.RelocationFree(locationStart, locationEnd, task.TaskNum);
- //_basicService.LocationInfoService.Repository.UpdateData(locationStart);
+
+ _basicService.LocationInfoService.RelocationFree(locationEnd, task.TaskNum);
task.TaskStatus = InTaskStatusEnum.RelocationFinish.ObjToInt();
BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
@@ -269,5 +291,25 @@
return WebResponseContent.Instance.OK();
}
+ public bool DepthTask(Dt_Task task)
+ {
+ Dt_LocationInfo location=_locationInfoService.Repository.QueryFirst(x=>x.LocationCode == task.SourceAddress);
+ if(location != null)
+ {
+ if(location.Row%2==0)
+ {
+ Dt_LocationInfo locations = _locationInfoService.Repository.QueryFirst(x => x.Row == location.Row + 1 && x.Layer == location.Layer && x.Column == location.Column && x.RoadwayNo == location.RoadwayNo);
+ Dt_Task tasks=BaseDal.QueryFirst(x=>x.SourceAddress == locations.LocationCode);
+ return tasks != null ? true : false;
+ }
+ else
+ {
+ Dt_LocationInfo locations = _locationInfoService.Repository.QueryFirst(x => x.Row == location.Row - 1 && x.Layer == location.Layer && x.Column == location.Column && x.RoadwayNo == location.RoadwayNo);
+ Dt_Task tasks = BaseDal.QueryFirst(x => x.SourceAddress == locations.LocationCode);
+ return tasks != null ? true : false;
+ }
+ }
+ return false;
+ }
}
}
--
Gitblit v1.9.3