From d40b63ad393e8af2a6f50ac055f582727dba6f28 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期日, 09 二月 2025 10:18:43 +0800
Subject: [PATCH] 组盘页面优化
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 71 +++++++++++++++++++++++++++++++----
1 files changed, 62 insertions(+), 9 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 af55b8a..40ef704 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
@@ -100,7 +100,7 @@
WMSTaskDTO taskDTO = new WMSTaskDTO()
{
TaskNum = task.TaskNum.Value,
- Grade = 1,
+ Grade = task.Grade.Value,
PalletCode = task.PalletCode,
RoadWay = task.Roadway,
SourceAddress = task.SourceAddress,
@@ -186,6 +186,29 @@
// 缁勭洏淇℃伅
// 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
+
+ if (!result.Success)
+ {
+ 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;
+ }
+
if (result.SerialNos.Count <= 0)
{
ConsoleHelper.WriteErrorLine(result.MOMMessage);
@@ -218,7 +241,7 @@
}
// 澶勭悊寮傚父鐢佃姱鎯呭喌
- var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList();
+ var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList();
if (serialNosError.Count > 0)
{
if (stationManager.stationType != 3)
@@ -303,6 +326,7 @@
if (stationManager.stationType == 1)
{
+ #region
// 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪��
TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
{
@@ -368,6 +392,7 @@
////// 璋冪敤GetProcessResponseAsync鏂规硶锛岃幏鍙栧伐鑹哄搷搴�
////var processResponse = await GetProcessResponseAsync(process, input.Position);
var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
+ #endregion
}
var task = new Dt_Task
@@ -387,10 +412,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;
}
@@ -504,7 +532,7 @@
var task = new Dt_Task
{
CurrentAddress = input.Position,
- Grade = 1,
+ Grade = 2,
Roadway = input.Roadways,
TargetAddress = stationManager.stationLocation,
Dispatchertime = DateTime.Now,
@@ -672,10 +700,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)
@@ -784,10 +817,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);
}
}
}
@@ -823,7 +859,7 @@
var location = locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
- var stockInfo = await QueryStockInfoForEmptyTrayAsync("CWSC1");
+ var stockInfo = await QueryStockInfoForEmptyTrayAsync("CWSC1","10086");
if (stockInfo != null)
{
@@ -833,6 +869,7 @@
WMSTaskDTO wmsTask = CreateTaskDTO(task);
// 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
+ int lastStatus = location.LocationStatus;
stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
location.LocationStatus = (int)LocationEnum.Distribute;
await _unitOfWorkManage.UseTranAsync(async () =>
@@ -841,6 +878,8 @@
await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo);
await _locationRepository.UpdateDataAsync(location);
});
+
+ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
// 杩斿洖鎴愬姛鍝嶅簲
return content.OK(data: wmsTask);
@@ -865,7 +904,14 @@
{
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("搴撳唴鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�");
DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode);
@@ -875,7 +921,7 @@
// 鍒涘缓鏂颁换鍔″疄渚�
var task = new Dt_Task
{
- CurrentAddress = locationInfo.RoadwayNo,
+ CurrentAddress = stockInfo.LocationCode,
Grade = 1,
Roadway = locationInfo.RoadwayNo,
TargetAddress = json.Position,
@@ -893,6 +939,13 @@
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);
}
@@ -916,7 +969,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