From d8f650de070335be494c33d0705e8105b7a215d6 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 26 十二月 2024 14:31:26 +0800
Subject: [PATCH] 同步
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 228 ++++++++++++++++++++++++++++++++------------------------
1 files changed, 130 insertions(+), 98 deletions(-)
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 5c4ca3c..85c1e58 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -5,6 +5,8 @@
using System.Threading.Tasks;
using WIDESEA_Common;
using WIDESEA_Common.CustomModels;
+
+//using WIDESEA_Common.CustomModels;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.Const;
using WIDESEA_DTO.MOM;
@@ -161,105 +163,121 @@
private async Task<Dt_Task> CreateInToOutTaskAsync(RequestTaskDto input, Dt_StationManager stationManager)
{
- //if (stationManager.stationType != 5) throw new Exception("閿欒鐨勮皟鍙�");
-
- input.EquiCodeMOM = "24MEJQ11-1006-1";
-
- // 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪��
- TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
+ try
{
- Software = "WMS",
- TrayBarcode = input.PalletCode,
- //EquipmentCode = "EQ_CWJZ01"
- EquipmentCode = input.EquiCodeMOM
- };
+ //if (stationManager.stationType != 5) throw new Exception("閿欒鐨勮皟鍙�");
- // 璋冪敤GetTrayCellStatusAsync鏂规硶锛岃幏鍙栨暣鐩樼數鑺�
- WebResponseContent content = await GetTrayCellStatusAsync(trayCells);
- // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖content
- if (!content.Status) throw new Exception(content.Message);
+ input.EquiCodeMOM = "24MEJQ11-1006-1";
- // 娣诲姞缁勭洏淇℃伅
- // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
- var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
- if (result.SerialNos.Count <= 0)
- {
- ConsoleHelper.WriteErrorLine(result.MOMMessage);
- if (stationManager.stationType != 3)
+ // 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪��
+ TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
{
- var taskNG = new Dt_Task
+ Software = "WMS",
+ TrayBarcode = input.PalletCode,
+ //EquipmentCode = "EQ_CWJZ01"
+ EquipmentCode = input.EquiCodeMOM
+ };
+
+ // 璋冪敤GetTrayCellStatusAsync鏂规硶锛岃幏鍙栨暣鐩樼數鑺�
+ WebResponseContent content = await GetTrayCellStatusAsync(trayCells);
+ // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖content
+ if (!content.Status) throw new Exception(content.Message);
+
+ // 缁勭洏淇℃伅
+ // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
+ var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
+ if (result.SerialNos.Count <= 0)
+ {
+ ConsoleHelper.WriteErrorLine(result.MOMMessage);
+ if (stationManager.stationType != 3)
{
- CurrentAddress = input.Position,
- Grade = 3,
- Roadway = input.Roadways,
- TargetAddress = stationManager.stationNGLocation,
- Dispatchertime = DateTime.Now,
- MaterialNo = "",
- NextAddress = stationManager.stationNGChildCode,
- OrderNo = null,
- PalletCode = input.PalletCode,
- SourceAddress = stationManager.stationLocation,
- TaskState = (int)TaskInStatusEnum.Line_InFinish,
- TaskType = (int)TaskOutboundTypeEnum.InToOut,
- TaskNum = await BaseDal.GetTaskNo(),
- Creater = "Systeam"
- };
- return taskNG;
- }
- else
- {
- return null;
- }
- }
-
- // 澶勭悊寮傚父鐢佃姱鎯呭喌
- var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList();
- if (serialNosError.Count > 0)
- {
- if (stationManager.stationType != 3)
- {
- var taskNG = new Dt_Task
+ var taskNG = new Dt_Task
+ {
+ CurrentAddress = input.Position,
+ Grade = 3,
+ Roadway = input.Roadways,
+ TargetAddress = stationManager.stationNGLocation,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = stationManager.stationNGChildCode,
+ OrderNo = null,
+ PalletCode = input.PalletCode,
+ SourceAddress = stationManager.stationLocation,
+ TaskState = (int)TaskInStatusEnum.Line_InFinish,
+ TaskType = (int)TaskOutboundTypeEnum.InToOut,
+ TaskNum = await BaseDal.GetTaskNo(),
+ Creater = "Systeam"
+ };
+ return taskNG;
+ }
+ else
{
- CurrentAddress = input.Position,
- Grade = 1,
- Roadway = input.Roadways,
- TargetAddress = stationManager.stationNGLocation,
- Dispatchertime = DateTime.Now,
- MaterialNo = "",
- NextAddress = stationManager.stationNGChildCode,
- OrderNo = null,
- PalletCode = input.PalletCode,
- SourceAddress = stationManager.stationLocation,
- TaskState = (int)TaskInStatusEnum.Line_InFinish,
- TaskType = (int)TaskOutboundTypeEnum.OutNG,
- TaskNum = await BaseDal.GetTaskNo(),
- Creater = "Systeam"
- };
- return taskNG;
+ //鏃犵數鑺� 鈫� 褰撶┖妗嗭紵 杩樻槸杩斿洖寮傚父锛�
+ return null;
+ }
}
+
+ // 澶勭悊寮傚父鐢佃姱鎯呭喌
+ var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList();
+ if (serialNosError.Count > 0)
+ {
+ if (stationManager.stationType != 3)
+ {
+ var taskNG = new Dt_Task
+ {
+ CurrentAddress = input.Position,
+ Grade = 1,
+ Roadway = input.Roadways,
+ TargetAddress = stationManager.stationNGLocation,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = stationManager.stationNGChildCode,
+ OrderNo = null,
+ PalletCode = input.PalletCode,
+ SourceAddress = stationManager.stationLocation,
+ TaskState = (int)TaskInStatusEnum.Line_InFinish,
+ TaskType = (int)TaskOutboundTypeEnum.InToOut,
+ TaskNum = await BaseDal.GetTaskNo(),
+ Creater = "Systeam"
+ };
+ return taskNG;
+ }
+ else
+ {
+ Console.WriteLine($"绔欏彴{stationManager.stationChildCode}MOM杩斿洖鐢佃姱寮傚父:{result.MOMMessage}");
+ return null;
+ }
+ }
+ //else
+ //{
+ // throw new Exception($"绔欏彴{stationManager.stationChildCode}MOM杩斿洖鐢佃姱寮傚父:{result.MOMMessage}");
+ //}
+
+ var targetStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == stationManager.stationPLC && x.Roadway == stationManager.Roadway && x.stationType == 2);
+
+ var task = new Dt_Task
+ {
+ CurrentAddress = input.Position,
+ Grade = 3,
+ Roadway = input.Roadways,
+ TargetAddress = targetStation.stationLocation,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = input.Roadways,
+ OrderNo = null,
+ PalletCode = input.PalletCode,
+ SourceAddress = stationManager.stationLocation,
+ TaskState = (int)TaskInStatusEnum.Line_InFinish,
+ TaskType = (int)TaskOutboundTypeEnum.InToOut,
+ TaskNum = await BaseDal.GetTaskNo(),
+ Creater = "Systeam"
+ };
+ return task;
}
-
- var targetStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == stationManager.stationPLC && x.Roadway == stationManager.Roadway && x.stationType == 2);
-
- var task = new Dt_Task
+ catch (Exception ex)
{
- CurrentAddress = input.Position,
- Grade = 1,
- Roadway = input.Roadways,
- TargetAddress = targetStation.stationLocation,
- Dispatchertime = DateTime.Now,
- MaterialNo = "",
- NextAddress = input.Roadways,
- OrderNo = null,
- PalletCode = input.PalletCode,
- SourceAddress = stationManager.stationLocation,
- TaskState = (int)TaskInStatusEnum.Line_InFinish,
- TaskType = (int)TaskOutboundTypeEnum.InToOut,
- TaskNum = await BaseDal.GetTaskNo(),
- Creater = "Systeam"
- };
-
- return task;
+ throw new Exception(ex.Message);
+ }
}
#endregion 鐩存帴鍑哄簱浠诲姟
@@ -519,7 +537,8 @@
{
//娣诲姞鍘嗗彶
var taskHty = CreateHistoricalTask(task);
-
+ // 娣诲姞鍘嗗彶浠诲姟
+ var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
//鍒犻櫎浠诲姟
BaseDal.DeleteData(task);
@@ -576,7 +595,7 @@
var Epmtytask = new Dt_Task
{
CurrentAddress = input.Position,
- Grade = 3, //浼樺厛澶勭悊寮傚父鎺掑嚭鍙g殑浠诲姟 闃叉姝e父闇�鎺掑嚭寮傚父鍙g殑浠诲姟鍫电嚎
+ Grade = 4, //浼樺厛澶勭悊寮傚父鎺掑嚭鍙g殑浠诲姟 闃叉姝e父闇�鎺掑嚭寮傚父鍙g殑浠诲姟鍫电嚎
Roadway = input.Roadways,
TargetAddress = EmptylocationInfo.LocationCode,
Dispatchertime = DateTime.Now,
@@ -844,20 +863,29 @@
WebResponseContent content = new WebResponseContent();
try
{
- Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position);
+ Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call");
- DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(X => X.IsFull && X.AreaCode == "CWSC3" && X.ProductionLine == station.productLine);
+ var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>()
+ .Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo
+ .Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails
+ .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // 杩囨护鏉′欢
+ .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // 杩囨护鏉′欢
+ .OrderBy(x => x.OutboundTime) // 鎺掑簭
+ .First(); // 鑾峰彇绗竴涓厓绱�
+
+ //DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(X => X.IsFull && X.AreaCode == "CWSC3" && X.ProductionLine == station.productLine);
if (stockInfo == null) throw new Exception("搴撳唴鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�");
- Dt_StationManager OutStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == "1016" && x.stationType == 10);
+ DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode);
+ Dt_StationManager OutStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == "1016" && x.stationType == 10 && x.Roadway == locationInfo.RoadwayNo && x.stationStatus == "1");
// 鍒涘缓鏂颁换鍔″疄渚�
var task = new Dt_Task
{
- CurrentAddress = stockInfo.LocationInfo.RoadwayNo,
+ CurrentAddress = stockInfo.LocationCode,
Grade = 1,
- Roadway = stockInfo.LocationInfo.RoadwayNo,
+ Roadway = locationInfo.RoadwayNo,
TargetAddress = json.Position,
Dispatchertime = DateTime.Now,
MaterialNo = "",
@@ -873,11 +901,15 @@
WMSTaskDTO taskDTO = CreateTaskDTO(task);
+ BaseDal.AddData(task);
+ stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
+ _locationRepository.UpdateData(stockInfo.LocationInfo);
return content.OK(data: taskDTO);
}
catch (Exception ex)
{
+ Console.WriteLine($"CW3鑷冲寘瑁呭嚭搴撳紓甯�:{ex.ToString()}");
return content.Error($"澶辫触锛歿ex.Message}");
}
}
@@ -895,7 +927,7 @@
if (emergencyTask == null) throw new Exception("鐏鍙傛暟涓虹┖");
- DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.RoadwayNo == emergencyTask.Roadway);
+ DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.AreaId == emergencyTask.zone);
if (locationInfo == null)
{
throw new Exception("鏈煡搴撲綅");
--
Gitblit v1.9.3