From e2655143a06ee42eec06a97b045f33a09fbb3a3f Mon Sep 17 00:00:00 2001
From: 肖洋 <cathay_xy@163.com>
Date: 星期二, 24 十二月 2024 17:40:18 +0800
Subject: [PATCH] 合并更改
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 169 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 113 insertions(+), 56 deletions(-)
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index c940d53..b19f3b0 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -1,6 +1,8 @@
锘縰sing Mapster;
using Masuit.Tools;
+using SixLabors.Fonts.Tables.AdvancedTypographic;
using System.Text.RegularExpressions;
+using System.Threading.Tasks;
using WIDESEA_Core.Const;
using WIDESEA_DTO.MOM;
using WIDESEA_DTO.WMS;
@@ -285,7 +287,7 @@
WebResponseContent content = new WebResponseContent();
try
{
- if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
+ if (task.TaskType == (int)TaskInboundTypeEnum.InNG || task.TaskType == (int)TaskInboundTypeEnum.InQuality)
{
task.TaskState = (int)TaskInStatusEnum.SC_InFinish;
// 鍒涘缓鍘嗗彶浠诲姟瀹炰緥妯″瀷
@@ -539,6 +541,7 @@
case (int)TaskInboundTypeEnum.Inbound:
case (int)TaskInboundTypeEnum.InTray:
case (int)TaskInboundTypeEnum.InNG:
+ case (int)TaskInboundTypeEnum.InQuality:
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟", "");
return await CompleteInboundTaskAsync(task);
@@ -1026,7 +1029,7 @@
{
// 鏍规嵁鎵樼洏绫诲瀷鏌ヨ搴撳瓨淇℃伅
DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound
- ? areaCodes == null ? await QueryStockInfoForRealTrayAsync(areaCode, productionLine) : await QueryStockInfoForRealTrayCWAsync(areaCodes, productionLine)
+ ? areaCode != "CWSC1" ? await QueryStockInfoForRealTrayAsync(areaCode, areaCodes, productionLine) : await QueryStockInfoForRealTrayCWAsync(areaCodes, productionLine)
: await QueryStockInfoForEmptyTrayAsync(areaCode);
if (stockInfo == null)
@@ -1074,7 +1077,7 @@
/// <summary>
/// 鏌ヨ瀹炵洏搴撳瓨淇℃伅
/// </summary>
- private async Task<DtStockInfo> QueryStockInfoForRealTrayAsync(string areaCode, string productionLine)
+ private async Task<DtStockInfo> QueryStockInfoForRealTrayAsync(string areaCode, List<string> devices, string productionLine)
{
var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == areaCode);
@@ -1084,6 +1087,7 @@
.Where(x => x.AreaCode == areaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢
.WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine)
.Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢
+ .WhereIF(!devices.IsNullOrEmpty(), x => devices.Contains(x.LocationInfo.RoadwayNo))
.OrderBy(x => x.OutboundTime) // 鎺掑簭
.FirstAsync(); // 鑾峰彇绗竴涓厓绱�
@@ -1094,7 +1098,7 @@
}
/// <summary>
- /// 鏌ヨ瀹炵洏搴撳瓨淇℃伅
+ /// 鏌ヨ甯告俯瀹炵洏搴撳瓨淇℃伅
/// </summary>
private async Task<DtStockInfo> QueryStockInfoForRealTrayCWAsync(List<string> areaCodes, string productionLine)
{
@@ -1143,7 +1147,7 @@
{
return new Dt_Task
{
- Grade = 1,
+ Grade = tag == 104 ? 2 : 1,
Roadway = stockInfo.LocationInfo.RoadwayNo,
TargetAddress = position,
Dispatchertime = DateTime.Now,
@@ -1170,7 +1174,7 @@
return new WMSTaskDTO
{
TaskNum = task.TaskNum.Value,
- Grade = 1,
+ Grade = task.Grade.Value,
PalletCode = task.PalletCode,
RoadWay = task.Roadway,
SourceAddress = task.SourceAddress,
@@ -1325,7 +1329,7 @@
#region 闈欑疆寮傚父鍙e叆搴�
- public async Task<WebResponseContent> CreateAndSendInboundTask(string locationCode, string palletCode, string position)
+ public async Task<WebResponseContent> CreateAndSendInboundTask(string palletCode, string position)
{
WebResponseContent content = new WebResponseContent();
try
@@ -1334,65 +1338,82 @@
var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == palletCode);
if (stockInfo == null)
{
+ var taskOld = BaseDal.QueryFirst(x => x.PalletCode == palletCode);
+ if (!taskOld.IsNullOrEmpty())
+ {// 鍒涘缓WMS浠诲姟
+ WMSTaskDTO taskDTO = new WMSTaskDTO()
+ {
+ TaskNum = taskOld.TaskNum.Value,
+ Grade = 1,
+ PalletCode = taskOld.PalletCode,
+ RoadWay = taskOld.Roadway,
+ SourceAddress = taskOld.CurrentAddress,
+ TargetAddress = taskOld.TargetAddress,
+ TaskState = taskOld.TaskState.Value,
+ Id = 0,
+ TaskType = taskOld.TaskType,
+ };
+ return content.OK(data: taskDTO);
+ }
var area = _areaInfoRepository.QueryFirst(x => x.AreaID == 2);
var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == position);
TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, palletCode);
content = await GetTrayCellStatusAsync(trayCells);
if (!content.Status) return content;
+ ConsoleHelper.WriteErrorLine(content.ToJsonString());
var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
- if (!result.Success)
+ if (result.SerialNos.Count > 0)
{
- if (result.SerialNos.Count <= 0)
+ var location = await GetLocationDistributeAsync(station.Roadway);
+
+ ConsoleHelper.WriteErrorLine(location.ToJsonString());
+ // 鍒涘缓鏂颁换鍔″疄渚�
+ var task = new Dt_Task
{
- var location = await GetLocationDistributeAsync(station.Roadway);
- // 鍒涘缓鏂颁换鍔″疄渚�
- var task = new Dt_Task
- {
- CurrentAddress = locationCode,
- Grade = 1,
- Roadway = station.Roadway,
- TargetAddress = location.LocationCode,
- Dispatchertime = DateTime.Now,
- MaterialNo = "",
- NextAddress = location.LocationCode,
- OrderNo = null,
- PalletCode = palletCode,
- SourceAddress = locationCode,
- TaskState = (int)TaskInStatusEnum.Line_InFinish,
- TaskType = (int)TaskInboundTypeEnum.Inbound,
- TaskNum = await BaseDal.GetTaskNo(),
- Creater = "Systeam"
- };
+ CurrentAddress = station.stationLocation,
+ Grade = 1,
+ Roadway = station.Roadway,
+ TargetAddress = location.LocationCode,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = location.LocationCode,
+ OrderNo = null,
+ PalletCode = palletCode,
+ SourceAddress = position,
+ TaskState = (int)TaskInStatusEnum.Line_InFinish,
+ TaskType = (int)TaskInboundTypeEnum.Inbound,
+ TaskNum = await BaseDal.GetTaskNo(),
+ Creater = "Systeam"
+ };
- // 鍒涘缓WMS浠诲姟
- WMSTaskDTO taskDTO = new WMSTaskDTO()
- {
- TaskNum = task.TaskNum.Value,
- Grade = 1,
- PalletCode = task.PalletCode,
- RoadWay = task.Roadway,
- SourceAddress = task.SourceAddress,
- TargetAddress = task.Roadway,
- TaskState = task.TaskState.Value,
- Id = 0,
- TaskType = task.TaskType,
- };
+ // 鍒涘缓WMS浠诲姟
+ WMSTaskDTO taskDTO = new WMSTaskDTO()
+ {
+ TaskNum = task.TaskNum.Value,
+ Grade = 1,
+ PalletCode = task.PalletCode,
+ RoadWay = task.Roadway,
+ SourceAddress = task.SourceAddress,
+ TargetAddress = task.TargetAddress,
+ TaskState = task.TaskState.Value,
+ Id = 0,
+ TaskType = task.TaskType,
+ };
- await _unitOfWorkManage.UseTranAsync(async () =>
- {
- // 娣诲姞浠诲姟鍒版暟鎹簱
- await BaseDal.AddDataAsync(task);
- // 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
- location.LocationStatus = (int)LocationEnum.InStockDisable;
- await _locationRepository.UpdateDataAsync(location);
- });
+ await _unitOfWorkManage.UseTranAsync(async () =>
+ {
+ // 娣诲姞浠诲姟鍒版暟鎹簱
+ await BaseDal.AddDataAsync(task);
+ // 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
+ location.LocationStatus = (int)LocationEnum.InStockDisable;
+ await _locationRepository.UpdateDataAsync(location);
+ });
- content.OK(data: taskDTO);
- }
- else
- content.Error(result.MOMMessage);
+ content.OK(data: taskDTO);
}
+ else
+ content.Error(result.MOMMessage);
}
else
{
@@ -1452,7 +1473,35 @@
{
return await BaseDal.Delete(ids);
}
+ public override WebResponseContent DeleteData(object[] key)
+ {
+ WebResponseContent content = new WebResponseContent();
+ // 鍒涘缓鍘嗗彶浠诲姟瀹炰緥妯″瀷
+ try
+ {
+ Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(key[0]));
+ if (task == null)
+ {
+ return content.Error("鏈壘鍒颁换鍔′俊鎭�!");
+ }
+ var taskHtyNG = CreateHistoricalTask(task, true);
+ // 鎵ц鏁版嵁搴撲簨鍔�
+
+ // 娣诲姞鍘嗗彶浠诲姟
+ var isTaskHtyAdd = _task_HtyRepository.AddData(taskHtyNG) > 0;
+
+ // 鍒犻櫎浠诲姟鏁版嵁
+ var isTaskDelete = BaseDal.Delete(task.TaskId);
+
+ return content.OK("鍒犻櫎鎴愬姛!");
+ }
+ catch (Exception ex)
+ {
+ return content.Error("鍒犻櫎浠诲姟寮傚父锛�" + ex.Message);
+ }
+
+ }
/// <summary>
/// 閫氳繃ID鑾峰彇浠诲姟
/// </summary>
@@ -1562,7 +1611,7 @@
/// </summary>
/// <param name="task"></param>
/// <returns></returns>
- private Dt_Task_Hty CreateHistoricalTask(Dt_Task task)
+ private Dt_Task_Hty CreateHistoricalTask(Dt_Task task, bool isHand = false)
{
// 鏇存柊浠诲姟鐘舵��
task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
@@ -1572,7 +1621,7 @@
var taskHty = _mapper.Map<Dt_Task_Hty>(task);
taskHty.FinishTime = DateTime.Now;
taskHty.TaskId = 0;
- taskHty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
+ taskHty.OperateType = isHand ? (int)OperateTypeEnum.浜哄伐鍒犻櫎 : (int)OperateTypeEnum.鑷姩瀹屾垚;
taskHty.SourceId = task.TaskId;
taskHty.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
return taskHty;
@@ -1690,6 +1739,14 @@
var content = new WebResponseContent();
// 鑾峰彇鐩爣鍦板潃鍜屾洿鏂颁换鍔$姸鎬�
+
+
+ input.Position = Regex.Replace(input.Position, @"-(\d+)", "");
+ if (Convert.ToInt32(input.Position) > 1999)
+ {
+ input.Position = (Convert.ToInt32(input.Position) - 1000).ToString();
+ }
+
if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
{
// TODO 鏍规嵁宸烽亾鏌ユ壘瀵瑰簲NG鍙o紝鐜板湪榛樿鍘婚潤缃爢鍨涙満鐨勫紓甯稿彛璐т綅鍙�
@@ -1702,7 +1759,7 @@
}
else if (task.TaskType == (int)TaskInboundTypeEnum.InQuality)
{
- var stockInfo = _stockInfoRepository.QueryFirst(x => x.PalletCode == input.PalletCode);
+ var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == input.PalletCode);
task.CurrentAddress = input.Position;
task.TargetAddress = stockInfo.LocationInfo.LocationCode;
task.NextAddress = stockInfo.LocationInfo.LocationCode;
--
Gitblit v1.9.3