From 36edb698388e79272608312820d869ab6f7cb304 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 31 三月 2026 09:18:08 +0800
Subject: [PATCH] 1
---
WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs | 269 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 234 insertions(+), 35 deletions(-)
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
index 8246572..016126a 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
@@ -26,6 +26,7 @@
public partial class TaskService
{
+
/// <summary>
/// 浠呯敵璇蜂换鍔★紝璁¦CS鏍规嵁璺敱纭畾涓嬩竴鍦板潃
/// </summary>
@@ -39,8 +40,8 @@
Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
if (task != null)
{
- PushTasksToWCS(new List<Dt_Task> { task });
- return WebResponseContent.Instance.OK($"璇ユ墭鐩樺凡鐢熸垚浠诲姟", _mapper.Map<WMSTaskDTO>(task));
+ //PushTasksToWCS(new List<Dt_Task> { task });
+ return WebResponseContent.Instance.Error($"璇ユ墭鐩榹palletCode}宸茬敓鎴愪换鍔�");
}
Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
@@ -48,25 +49,33 @@
{
return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
}
+ if (stockInfo.StockStatus == StockStatusEmun.鍚堟墭鍑哄簱瀹屾垚.ObjToInt())
+ {
+
+ }
+ if (stockInfo.StockStatus == StockStatusEmun.鐩樼偣鍑哄簱瀹屾垚.ObjToInt())
+ {
+ return WebResponseContent.Instance.Error($"璇ユ墭鐩榹palletCode}鏈洏鐐�");
+ }
///鍒ゆ柇鏄惁瀛樺湪鍥炲簱鍗�,杩涜鍥炲師搴撲綅閫昏緫
string returnOrderNo = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.OrderNo;
Dt_ReturnOrder returnOrder = _returnOrderRepository.QueryFirst(x => x.OrderNo == returnOrderNo && x.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt());
Dt_RoadwayInfo returnRoadwayInfo = new Dt_RoadwayInfo();
- if(returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
+ if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
{
Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode);
- if(locationInfo1 == null)
+ if (locationInfo1 == null)
{
return WebResponseContent.Instance.Error($"鍥炲簱鍗曚腑璇ュ簱浣峽returnOrder.LocationCode}鏈壘鍒�");
}
returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo);
}
- if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode:stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
+ if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
{
return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�");
}
-
+
var details = stockInfo.Details.FirstOrDefault();
if (!string.IsNullOrEmpty(stockInfo.LocationCode))
{
@@ -124,15 +133,15 @@
newTask.MaterielCode = MaterielCode;
newTask.Quantity = (float)Quantity;
}
- if(stockInfo.StockStatus == StockStatusEmun.浣欐枡閫�搴�.ObjToInt())
+ if (stockInfo.StockStatus == StockStatusEmun.浣欐枡閫�搴�.ObjToInt())
{
newTask.TaskType = TaskTypeEnum.SurplusReturn.ObjToInt();
}
- if(stockInfo.StockStatus == StockStatusEmun.鍙嶆嫞鍏ュ簱.ObjToInt())
+ if (stockInfo.StockStatus == StockStatusEmun.鍙嶆嫞鍏ュ簱.ObjToInt())
{
newTask.TaskType = TaskTypeEnum.ReverseIn.ObjToInt();
}
- if(stockInfo.StockStatus == StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt())
+ if (stockInfo.StockStatus == StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt())
{
newTask.TaskType = TaskTypeEnum.InInventory.ObjToInt();
}
@@ -173,16 +182,217 @@
}
_stockRepository.StockInfoRepository.UpdateData(stockInfo);
_locationInfoService.UpdateData(locationInfo);
-
+
_unitOfWorkManage.CommitTran();
WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask);
-
- //PushTasksToWCS(new List<Dt_Task> { newTask });
+ if (warehouse.WarehouseCode.Contains("CP"))
+ {
+ PushTasksWCS(new List<Dt_Task> { newTask });
+ }
+ else
+ {
+ PushTasksToWCS(new List<Dt_Task> { newTask });
+ }
return WebResponseContent.Instance.OK(data: wMSTaskDTO);
}
catch (Exception ex)
{
_unitOfWorkManage.RollbackTran();
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+
+ public WebResponseContent CPDeviceRequestInboundTaskSimple(string stationCode, string palletCode, int heightType, string courceAddress)
+ {
+ try
+ {
+ Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
+ if (task != null)
+ {
+ return WebResponseContent.Instance.Error($"璇ユ墭鐩榹palletCode}宸茬敓鎴愪换鍔�");
+ }
+ Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
+
+ if (stockInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
+ }
+
+ Dt_RoadwayInfo returnRoadwayInfo = new Dt_RoadwayInfo();
+ if (stockInfo.StockStatus == StockStatusEmun.鍚堟墭鍑哄簱瀹屾垚.ObjToInt())
+ {
+ Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
+ if (locationInfo1 == null)
+ {
+ return WebResponseContent.Instance.Error($"鍥炲簱鍗曚腑璇ュ簱浣峽stockInfo.LocationCode}鏈壘鍒�");
+ }
+ returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode));
+ }
+ ///鍒ゆ柇鏄惁瀛樺湪鍥炲簱鍗�,杩涜鍥炲師搴撲綅閫昏緫
+ string returnOrderNo = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.OrderNo;
+ Dt_ReturnOrder returnOrder = _returnOrderRepository.QueryFirst(x => (x.OrderNo == returnOrderNo || x.LPNNo == palletCode) && x.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt());
+ if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
+ {
+ Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode);
+ if (locationInfo1 == null)
+ {
+ return WebResponseContent.Instance.Error($"鍥炲簱鍗曚腑璇ュ簱浣峽returnOrder.LocationCode}鏈壘鍒�");
+ }
+ returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode));
+ }
+
+ if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
+ {
+ return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�");
+ }
+
+ var details = stockInfo.Details.FirstOrDefault();
+ if (!string.IsNullOrEmpty(stockInfo.LocationCode))
+ {
+ return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
+ }
+ Dt_RoadwayInfo roadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode));
+ if (roadwayInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒拌鍏ュ簱绔欏彴鍦板潃");
+ }
+
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo);
+ if (warehouse == null)
+ {
+ return WebResponseContent.Instance.Error("鏈壘鍒拌浠撳簱");
+ }
+
+ Dt_LocationInfo? locationInfo = new Dt_LocationInfo();
+ if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
+ {
+ locationInfo = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode);
+ if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Disable.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt())
+ {
+ return WebResponseContent.Instance.Error($"璇ュ洖搴撳崟璐т綅{locationInfo.LocationCode}闈為攣瀹氱姸鎬佹垨璐т綅鍚敤鐘舵�佷笉姝g‘锛岃妫�鏌�");
+ }
+ }
+ else
+ {
+ locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, stockInfo.PalletType, warehouse.WarehouseId, "", heightType);//, stockInfo.WarehouseId
+ if (locationInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+ }
+ }
+ Dt_Task newTask = new Dt_Task()
+ {
+ CurrentAddress = courceAddress,
+ Grade = 0,
+ NextAddress = returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode,
+ PalletCode = palletCode,
+ OrderNo = details.OrderNo,
+ Roadway = roadwayInfo.RoadwayNo,
+ SourceAddress = courceAddress,
+ TargetAddress = locationInfo.LocationCode,
+ TaskType = TaskTypeEnum.Inbound.ObjToInt(),
+ TaskStatus = TaskStatusEnum.New.ObjToInt(),
+ WarehouseId = stockInfo.WarehouseId,
+ PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode)
+ Creater = "WCS",
+ CreateDate = DateTime.Now
+ };
+ string MaterielCode = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
+ float Quantity = (float)stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
+ if (MaterielCode != null && Quantity != null)
+ {
+ newTask.MaterielCode = MaterielCode;
+ newTask.Quantity = (float)Quantity;
+ }
+ if (stockInfo.StockStatus == StockStatusEmun.浣欐枡閫�搴�.ObjToInt())
+ {
+ newTask.TaskType = TaskTypeEnum.SurplusReturn.ObjToInt();
+ }
+ if (stockInfo.StockStatus == StockStatusEmun.鍙嶆嫞鍏ュ簱.ObjToInt())
+ {
+ newTask.TaskType = TaskTypeEnum.ReverseIn.ObjToInt();
+ }
+ if (stockInfo.StockStatus == StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt())
+ {
+ newTask.TaskType = TaskTypeEnum.InInventory.ObjToInt();
+ }
+ if (stockInfo.StockStatus == StockStatusEmun.鍚堟墭鍑哄簱瀹屾垚.ObjToInt())
+ {
+ newTask.TaskType = TaskTypeEnum.InSyncretism.ObjToInt();
+ }
+ //if (stockInfo.StockStatus == StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
+ //{
+ // stockInfo.StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt();
+ //}
+ //else if (stockInfo.StockStatus == StockStatusEmun.MES閫�搴�.ObjToInt())
+ //{
+ // newTask.TaskType = TaskTypeEnum.MesMatReturn.ObjToInt();
+ //}
+ //else if (stockInfo.StockStatus == StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt())
+ //{
+ // Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId && x.PalletType == stockInfo.PalletType);
+ // //todo 灏忔墭鐩樻殏鏃舵湭鍚敤
+ // if (palletTypeInfo.LocaitonCount == 2)
+ // {
+ // newTask.TaskType = TaskTypeEnum.MesPalletLargeReturn.ObjToInt();
+ // }
+ // else
+ // {
+ // newTask.TaskType = TaskTypeEnum.MesPalletSmallReturn.ObjToInt();
+ // }
+ //}
+ //else
+ //{
+ else
+ {
+ stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+ }
+ locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
+ //}
+
+ _unitOfWorkManage.BeginTran();
+ int taskId = BaseDal.AddData(newTask);
+ newTask.TaskId = taskId;
+ if (returnOrder != null)
+ {
+ returnOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
+ _returnOrderRepository.UpdateData(returnOrder);
+ }
+ _stockRepository.StockInfoRepository.UpdateData(stockInfo);
+ _locationInfoService.UpdateData(locationInfo);
+
+ _unitOfWorkManage.CommitTran();
+ WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask);
+
+ PushTasksWCS(new List<Dt_Task> { newTask });
+
+ return WebResponseContent.Instance.OK(data: wMSTaskDTO);
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 杩斿洖鍏ュ簱浠撳簱
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent ApplyLocation(string palletCode)
+ {
+ try
+ {
+ Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
+
+ if (stockInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
+ }
+ return WebResponseContent.Instance.OK(data: stockInfo.WarehouseId);
+ }
+ catch (Exception ex)
+ {
return WebResponseContent.Instance.Error(ex.Message);
}
}
@@ -253,8 +463,7 @@
Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
if (task != null)
{
- PushTasksToWCS(new List<Dt_Task> { task });
- return WebResponseContent.Instance.OK($"璇ユ墭鐩樺凡鐢熸垚浠诲姟", _mapper.Map<WMSTaskDTO>(task));
+ return WebResponseContent.Instance.Error($"璇ユ墭鐩榹palletCode}宸茬敓鎴愪换鍔�");
}
// 鑾峰彇鍏ュ簱鍗曟槑缁�
var inboundOrderDet = GetInboundOrderDetail(palletCode);
@@ -440,9 +649,8 @@
//鏌ヨ浠撳簱鎵樼洏璐х墿绫诲瀷
public int GetPalletType(Dt_Warehouse warehouse, string palletCode)
{
- if (warehouse.WarehouseCode == WarehouseEnum.SC01_BC.ObjToString() || warehouse.WarehouseCode == WarehouseEnum.SC02_BC.ObjToString())
+ if (warehouse.WarehouseCode.Contains("BC"))
{
-
Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 3));
if (palletTypeInfo == null)
{
@@ -450,25 +658,16 @@
}
return palletTypeInfo.PalletType;
}
- //else if (warehouse.WarehouseCode == WarehouseEnum.HA152.ObjToString())
- //{
- // Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2));
- // if (palletTypeInfo == null)
- // {
- // throw new Exception($"鎵樼洏鍙烽敊璇�");
- // }
- // return palletTypeInfo.PalletType;
- //}
- //else if (warehouse.WarehouseCode == WarehouseEnum.HA57.ObjToString())
- //{
- // Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 3));
- // if (palletTypeInfo == null)
- // {
- // throw new Exception($"鎵樼洏鍙烽敊璇�");
- // }
- // return palletTypeInfo.PalletType;
- //}
- return -1;
+ else
+ {
+ Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2));
+ if (palletTypeInfo == null)
+ {
+ throw new Exception($"鎵樼洏鍙烽敊璇�");
+ }
+ return palletTypeInfo.PalletType;
+ }
+ return 0;
}
--
Gitblit v1.9.3