From 1d044540ee1b7041c7e89bdfe6d1339c99e80a4e Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期三, 08 一月 2025 14:41:16 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/BaiBuLiKu
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 249 +++++++++++++++++++++++++++++--------------------
1 files changed, 149 insertions(+), 100 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 eee68a9..1864fd5 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
@@ -163,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 = 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
- {
- 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 鐩存帴鍑哄簱浠诲姟
@@ -287,6 +303,7 @@
if (stationManager.stationType == 1)
{
+ #region
// 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪��
TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
{
@@ -352,6 +369,7 @@
////// 璋冪敤GetProcessResponseAsync鏂规硶锛岃幏鍙栧伐鑹哄搷搴�
////var processResponse = await GetProcessResponseAsync(process, input.Position);
var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
+ #endregion
}
var task = new Dt_Task
@@ -371,10 +389,13 @@
TaskNum = await BaseDal.GetTaskNo(),
Creater = "Systeam"
};
- ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + locationInfo.LocationStatus.ToString());
+ int lastStatus = locationInfo.LocationStatus;
+ ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + lastStatus.ToString());
locationInfo.LocationStatus = (int)LocationEnum.FreeDisable;
ConsoleHelper.WriteSuccessLine($"淇敼鍚庯細" + locationInfo.LocationStatus.ToString());
await UpdateLocationAsync(locationInfo);
+
+ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
return task;
}
@@ -521,7 +542,8 @@
{
//娣诲姞鍘嗗彶
var taskHty = CreateHistoricalTask(task);
-
+ // 娣诲姞鍘嗗彶浠诲姟
+ var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
//鍒犻櫎浠诲姟
BaseDal.DeleteData(task);
@@ -578,7 +600,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,
@@ -655,10 +677,15 @@
var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
- ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + locationInfo.LocationStatus.ToString());
+ int lastStatus = locationInfo.LocationStatus;
+
+ ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + lastStatus.ToString());
locationInfo.LocationStatus = (int)LocationEnum.FreeDisable;
ConsoleHelper.WriteSuccessLine($"淇敼鍚庯細" + locationInfo.LocationStatus.ToString());
await UpdateLocationAsync(locationInfo);
+
+ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
+
return task;
}
catch (Exception ex)
@@ -767,10 +794,13 @@
var content = JsonConvert.DeserializeObject<WebResponseContent>(result);
if (content.Status)
{
+ int lastStatus = item.LocationInfo.LocationStatus;
await BaseDal.AddDataAsync(task);
// 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
item.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
await _locationRepository.UpdateDataAsync(item.LocationInfo);
+
+ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(item.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
}
}
}
@@ -816,6 +846,7 @@
WMSTaskDTO wmsTask = CreateTaskDTO(task);
// 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
+ int lastStatus = location.LocationStatus;
stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
location.LocationStatus = (int)LocationEnum.Distribute;
await _unitOfWorkManage.UseTranAsync(async () =>
@@ -824,6 +855,8 @@
await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo);
await _locationRepository.UpdateDataAsync(location);
});
+
+ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
// 杩斿洖鎴愬姛鍝嶅簲
return content.OK(data: wmsTask);
@@ -846,20 +879,28 @@
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
+ .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 = "",
@@ -875,11 +916,19 @@
WMSTaskDTO taskDTO = CreateTaskDTO(task);
+ int lastStatus = locationInfo.LocationStatus;
+
+ BaseDal.AddData(task);
+ stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
+ _locationRepository.UpdateData(stockInfo.LocationInfo);
+
+ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
return content.OK(data: taskDTO);
}
catch (Exception ex)
{
+ Console.WriteLine($"CW3鑷冲寘瑁呭嚭搴撳紓甯�:{ex.ToString()}");
return content.Error($"澶辫触锛歿ex.Message}");
}
}
@@ -897,7 +946,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