From 5d55a31d8ce95e511ffb408f38ed06e81742b67e Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期五, 27 三月 2026 16:17:30 +0800
Subject: [PATCH] 1
---
项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 332 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 228 insertions(+), 104 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index deda58a..6c99934 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -208,7 +208,7 @@
Dt_Task taskOld = BaseDal.QueryFirst(x => x.PalletCode == containerFlowDTO.ContainerCode);
if (taskOld != null && taskOld.PalletCode == containerFlowDTO.ContainerCode && taskOld.TaskType == TaskTypeEnum.Inbound.ObjToInt() && taskOld.TaskState == TaskStatusEnum.CL_Executing.ObjToInt() && taskOld.DeviceCode == deviceCode)
{
- Thread.Sleep(500);
+ //Thread.Sleep(500);
return content.OK();
}
if (taskOld != null && taskOld.PalletCode == containerFlowDTO.ContainerCode && taskOld.TaskType == TaskTypeEnum.Inbound.ObjToInt() && taskOld.TaskState == TaskStatusEnum.CL_Executing.ObjToInt() && taskOld.DeviceCode != deviceCode)
@@ -723,6 +723,9 @@
}
return content;
}
+ // 鍦ㄧ被涓坊鍔犻潤鎬侀攣瀵硅薄
+ private static readonly object _taskCompleteLock = new object();
+
/// <summary>
/// 浠诲姟瀹屾垚
/// </summary>
@@ -731,96 +734,212 @@
public WebResponseContent TaskCompleted(int taskNum)
{
WebResponseContent content = new WebResponseContent();
- try
- {
- WriteLog.Write_Log("浠诲姟瀹屾垚", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟鍙�", $"浠诲姟锛歿taskNum}");
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
- if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//鍑哄簱浠诲姟瀹屾垚閫昏緫
- {
- Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
- if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
- {
- return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
- }
- task.TaskState = TaskStatusEnum.Finish.ObjToInt();
- locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
- locationInfo.PalletCode = "";
- //鏂欑鍑哄簱瀹屾垚涓婃姤缁橶MS
- string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
- if (string.IsNullOrEmpty(url))
- {
- _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- return content.Error($"{taskNum},鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- }
- ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
- {
- TaskCode = task.TaskNum.ToString(),
- ContainerCode = task.PalletCode,
- StationCode = task.TargetAddress,
- LocationCode = task.SourceAddress,
- CompleteType = 1
- };
- string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
- _unitOfWorkManage.BeginTran();
- _locationInfoRepository.UpdateData(locationInfo);
- BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
- _unitOfWorkManage.CommitTran();
- _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, task.TaskNum);
- //璋冪敤鎺ュ彛
- string response = HttpHelper.Post(url, request);
- WriteLog.Write_Log("WMS鍑哄簱浠诲姟瀹屾垚鍥炰紶", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟淇℃伅", $"璇锋眰锛歿request}锛屽洖浼狅細{response}");
- WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍑哄簱涓婃姤杩斿洖鍊�");
- if (wMSResponse.Code != "0") content.Message = $"鍑哄簱浠诲姟{task.TaskNum}WMS鍑哄簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}";
- }
- else if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍏ュ簱浠诲姟瀹屾垚閫昏緫
- {
- string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
- if (string.IsNullOrEmpty(url))
- {
- _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- return content.Error($"{taskNum},鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- }
- ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
- {
- TaskCode = task.TaskNum.ToString(),
- ContainerCode = task.PalletCode,
- StationCode = task.SourceAddress,
- LocationCode = task.TargetAddress,
- CompleteType = 2
- };
- string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
-
- Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
- if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
- {
- return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
- }
- task.TaskState = TaskStatusEnum.Finish.ObjToInt();
- locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
- locationInfo.PalletCode = task.PalletCode;
- _unitOfWorkManage.BeginTran();
- _locationInfoRepository.UpdateData(locationInfo);
- BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
- _unitOfWorkManage.CommitTran();
- _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.InStock, LocationChangeType.InboundCompleted, task.TaskNum);
- //璋冪敤鎺ュ彛
- string response = HttpHelper.Post(url, request);
- WriteLog.Write_Log("WMS鍏ュ簱浠诲姟瀹屾垚鍥炰紶", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟淇℃伅", $"璇锋眰锛歿request}锛屽洖浼狅細{response}");
- WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍏ュ簱涓婃姤杩斿洖鍊�");
- if (wMSResponse.Code != "0") content.Message = $"鍏ュ簱浠诲姟{task.TaskNum}WMS鍏ュ簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}";
- }
- content.OK("浠诲姟瀹屾垚");
- }
- catch (Exception ex)
+ // 浣跨敤閿佺‘淇濆悓涓�浠诲姟涓嶄細骞跺彂澶勭悊
+ lock (_taskCompleteLock)
{
- _unitOfWorkManage.RollbackTran();
- content.Error(ex.Message);
+ try
+ {
+ WriteLog.Write_Log("浠诲姟瀹屾垚", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟鍙�", $"浠诲姟锛歿taskNum}");
+
+ // 鍐嶆鏌ヨ浠诲姟鐘舵�侊紝闃叉鍦ㄩ攣绛夊緟鏈熼棿浠诲姟鐘舵�佸凡鏀瑰彉
+ Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ if (task == null)
+ {
+ return content.Error($"浠诲姟{taskNum}涓嶅瓨鍦�");
+ }
+
+ // 妫�鏌ヤ换鍔$姸鎬侊紝閬垮厤閲嶅瀹屾垚
+ if (task.TaskState == TaskStatusEnum.Finish.ObjToInt())
+ {
+ return content.Error($"浠诲姟{taskNum}宸插畬鎴愶紝璇峰嬁閲嶅鎿嶄綔");
+ }
+
+ if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//鍑哄簱浠诲姟瀹屾垚閫昏緫
+ {
+ Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+ if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
+ {
+ return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
+ }
+ task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+ locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
+ locationInfo.PalletCode = "";
+ //鏂欑鍑哄簱瀹屾垚涓婃姤缁橶MS
+ string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ return content.Error($"{taskNum},鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
+ {
+ TaskCode = task.TaskNum.ToString(),
+ ContainerCode = task.PalletCode,
+ StationCode = task.TargetAddress,
+ LocationCode = task.SourceAddress,
+ CompleteType = 1
+ };
+ string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
+
+ _unitOfWorkManage.BeginTran();
+ _locationInfoRepository.UpdateData(locationInfo);
+ BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+ _unitOfWorkManage.CommitTran();
+ _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, task.TaskNum);
+ //璋冪敤鎺ュ彛
+ string response = HttpHelper.Post(url, request);
+ WriteLog.Write_Log("WMS鍑哄簱浠诲姟瀹屾垚鍥炰紶", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟淇℃伅", $"璇锋眰锛歿request}锛屽洖浼狅細{response}");
+ WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍑哄簱涓婃姤杩斿洖鍊�");
+ if (wMSResponse.Code != "0") content.Message = $"鍑哄簱浠诲姟{task.TaskNum}WMS鍑哄簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}";
+ }
+ else if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍏ュ簱浠诲姟瀹屾垚閫昏緫
+ {
+ string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ return content.Error($"{taskNum},鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
+ {
+ TaskCode = task.TaskNum.ToString(),
+ ContainerCode = task.PalletCode,
+ StationCode = task.SourceAddress,
+ LocationCode = task.TargetAddress,
+ CompleteType = 2
+ };
+ string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
+
+ Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+ if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
+ {
+ return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
+ }
+ task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+ locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+ locationInfo.PalletCode = task.PalletCode;
+ _unitOfWorkManage.BeginTran();
+ _locationInfoRepository.UpdateData(locationInfo);
+ BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+ _unitOfWorkManage.CommitTran();
+ _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.InStock, LocationChangeType.InboundCompleted, task.TaskNum);
+ //璋冪敤鎺ュ彛
+ string response = HttpHelper.Post(url, request);
+ WriteLog.Write_Log("WMS鍏ュ簱浠诲姟瀹屾垚鍥炰紶", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟淇℃伅", $"璇锋眰锛歿request}锛屽洖浼狅細{response}");
+ WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍏ュ簱涓婃姤杩斿洖鍊�");
+ if (wMSResponse.Code != "0") content.Message = $"鍏ュ簱浠诲姟{task.TaskNum}WMS鍏ュ簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}";
+ }
+ content.OK("浠诲姟瀹屾垚");
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ content.Error(ex.Message);
+ }
+ return content;
}
- return content;
}
+ ///// <summary>
+ ///// 浠诲姟瀹屾垚
+ ///// </summary>
+ ///// <param name="taskNum"></param>
+ ///// <returns></returns>
+ //public WebResponseContent TaskCompleted(int taskNum)
+ //{
+ // WebResponseContent content = new WebResponseContent();
+ // try
+ // {
+ // WriteLog.Write_Log("浠诲姟瀹屾垚", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟鍙�", $"浠诲姟锛歿taskNum}");
+ // Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ // if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//鍑哄簱浠诲姟瀹屾垚閫昏緫
+ // {
+ // Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+ // if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
+ // {
+ // return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
+ // }
+ // task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+ // locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
+ // locationInfo.PalletCode = "";
+ // //鏂欑鍑哄簱瀹屾垚涓婃姤缁橶MS
+ // string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
+ // if (string.IsNullOrEmpty(url))
+ // {
+ // _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ // UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ // return content.Error($"{taskNum},鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ // }
+ // ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
+ // {
+ // TaskCode = task.TaskNum.ToString(),
+ // ContainerCode = task.PalletCode,
+ // StationCode = task.TargetAddress,
+ // LocationCode = task.SourceAddress,
+ // CompleteType = 1
+ // };
+ // string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
+
+ // _unitOfWorkManage.BeginTran();
+ // _locationInfoRepository.UpdateData(locationInfo);
+ // BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+ // _unitOfWorkManage.CommitTran();
+ // _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, task.TaskNum);
+ // //璋冪敤鎺ュ彛
+ // string response = HttpHelper.Post(url, request);
+ // WriteLog.Write_Log("WMS鍑哄簱浠诲姟瀹屾垚鍥炰紶", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟淇℃伅", $"璇锋眰锛歿request}锛屽洖浼狅細{response}");
+ // WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍑哄簱涓婃姤杩斿洖鍊�");
+ // if (wMSResponse.Code != "0") content.Message = $"鍑哄簱浠诲姟{task.TaskNum}WMS鍑哄簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}";
+ // }
+ // else if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍏ュ簱浠诲姟瀹屾垚閫昏緫
+ // {
+ // string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
+ // if (string.IsNullOrEmpty(url))
+ // {
+ // _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ // UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ // return content.Error($"{taskNum},鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ // }
+ // ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
+ // {
+ // TaskCode = task.TaskNum.ToString(),
+ // ContainerCode = task.PalletCode,
+ // StationCode = task.SourceAddress,
+ // LocationCode = task.TargetAddress,
+ // CompleteType = 2
+ // };
+ // string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
+
+ // Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+ // if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
+ // {
+ // return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
+ // }
+ // task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+ // locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+ // locationInfo.PalletCode = task.PalletCode;
+ // _unitOfWorkManage.BeginTran();
+ // _locationInfoRepository.UpdateData(locationInfo);
+ // BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+ // _unitOfWorkManage.CommitTran();
+ // _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, LocationStatusEnum.Lock, LocationStatusEnum.InStock, LocationChangeType.InboundCompleted, task.TaskNum);
+ // //璋冪敤鎺ュ彛
+ // string response = HttpHelper.Post(url, request);
+ // WriteLog.Write_Log("WMS鍏ュ簱浠诲姟瀹屾垚鍥炰紶", "浠诲姟瀹屾垚鎺ュ彛", "浠诲姟淇℃伅", $"璇锋眰锛歿request}锛屽洖浼狅細{response}");
+ // WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍏ュ簱涓婃姤杩斿洖鍊�");
+ // if (wMSResponse.Code != "0") content.Message = $"鍏ュ簱浠诲姟{task.TaskNum}WMS鍏ュ簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}";
+ // }
+ // content.OK("浠诲姟瀹屾垚");
+ // }
+ // catch (Exception ex)
+ // {
+ // _unitOfWorkManage.RollbackTran();
+ // content.Error(ex.Message);
+ // }
+ // return content;
+ //}
/// <summary>
/// 浜哄伐鎵嬪姩鍙栨秷鎸囧畾浠诲姟
/// </summary>
@@ -841,27 +960,32 @@
{
// 鑾峰彇鐩爣璐т綅
Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
- if (locationInfo == null) return content.Error($"鐩爣璐т綅{task.TargetAddress}涓嶅瓨鍦�");
- // 楠岃瘉璐т綅鐘舵��
- if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
- return content.Error($"{task.TargetAddress}璐т綅鐘舵�佸紓甯革紝鏃犳硶鍙栨秷");
-
- // 鎭㈠璐т綅鐘舵��
- locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); // 鎭㈠涓虹┖闂茬姸鎬�
- locationInfo.PalletCode = ""; // 娓呯┖鎵樼洏鍙�
- // 鏇存柊鏁版嵁搴�
+ if (locationInfo != null)
+ {
+ locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); // 鎭㈠涓虹┖闂茬姸鎬�
+ locationInfo.PalletCode = ""; // 娓呯┖鎵樼洏鍙�
+ _unitOfWorkManage.BeginTran();
+ _locationInfoRepository.UpdateData(locationInfo);
+ _unitOfWorkManage.CommitTran();
+ content.OK("浠诲姟鍙栨秷鎴愬姛");
+ }
_unitOfWorkManage.BeginTran();
- _locationInfoRepository.UpdateData(locationInfo);
BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.浜哄伐鍒犻櫎);
_unitOfWorkManage.CommitTran();
+ //return content.Error($"鐩爣璐т綅{task.TargetAddress}涓嶅瓨鍦�");
+ // 楠岃瘉璐т綅鐘舵��
+ //if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
+ // return content.Error($"{task.TargetAddress}璐т綅鐘舵�佸紓甯革紝鏃犳硶鍙栨秷");
+
+ // 鎭㈠璐т綅鐘舵��
+
+ // 鏇存柊鏁版嵁搴�
+ //_unitOfWorkManage.BeginTran();
+ //_locationInfoRepository.UpdateData(locationInfo);
+ //BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.浜哄伐鍒犻櫎);
+ //_unitOfWorkManage.CommitTran();
// 璁板綍鐘舵�佸彉鏇�
- _locationStatusChangeRecordService.AddLocationStatusChangeRecord(
- locationInfo,
- LocationStatusEnum.Lock,
- LocationStatusEnum.Free,
- LocationChangeType.InboundCancelled,
- task.TaskNum
- );
+
content.OK("浠诲姟鍙栨秷鎴愬姛");
}
else
--
Gitblit v1.9.3