From 75d16a23d059439c7478f8d3f6372c29072ba84e Mon Sep 17 00:00:00 2001
From: xiaojiao <xiaojiao@kaokeziliao.com>
Date: 星期三, 06 五月 2026 16:27:14 +0800
Subject: [PATCH] 完善任务执行步骤
---
项目代码/WIDESEA_WCSServer/WIDESEAWCS_TaskInfoService/TaskService.cs | 92 ++++++++++++++++++++++++++++++---------------
1 files changed, 61 insertions(+), 31 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 43c1416..d30348a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -52,6 +52,8 @@
private readonly ITask_HtyRepository _taskHtyRepository;
private readonly IApiInfoRepository _apiInfoRepository;
private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly IDt_MaterialInfo_HtyRepository _MaterialInfo_HtyRepository;
+ private readonly IDt_MaterialInfoRepository _MaterialInfoRepository;
private Dictionary<string, OrderByType> _taskOrderBy = new()
{
@@ -70,7 +72,7 @@
#endregion 鑾峰彇鎵�鏈変换鍔$被鍨嬨�佺姸鎬�
- public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository, IApiInfoRepository apiInfoRepository,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+ public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository, IApiInfoRepository apiInfoRepository,IUnitOfWorkManage unitOfWorkManage, IDt_MaterialInfo_HtyRepository materialInfo_HtyRepository, IDt_MaterialInfoRepository materialInfoRepository) : base(BaseDal)
{
_routerService = routerService;
_taskExecuteDetailService = taskExecuteDetailService;
@@ -83,6 +85,8 @@
_taskHtyRepository = htyRepository;
_apiInfoRepository = apiInfoRepository;
_unitOfWorkManage = unitOfWorkManage;
+ _MaterialInfo_HtyRepository = materialInfo_HtyRepository;
+ _MaterialInfoRepository = materialInfoRepository;
}
/// <summary>
@@ -171,7 +175,7 @@
WebResponseContent content = new WebResponseContent();
try
{
- var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskId == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
return UpdateTaskStatusToNext(task);
}
@@ -193,26 +197,38 @@
try
{
int oldState = task.TaskState;
- if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
+
+ #region 鑲栦郊宸蹭慨鏀�
+ //if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
+ //{
+ // int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>();
+
+ // task.TaskState = nextStatus;
+
+ // if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_COMPLETED)
+ // {
+
+ // BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
+ // }
+ //}
+ //else
+ //{
+ // throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskId}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+ //}
+ #endregion 鑲栦郊宸蹭慨鏀�
+ int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>();
+
+ task.TaskState = nextStatus;
+
+ if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_COMPLETED)
{
- int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>();
-
- task.TaskState = nextStatus;
-
- if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish)
- {
-
- BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
- }
- }
- else
- {
- throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+ //BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
+ TaskCompleted(task.TaskId);
}
if (task.TaskState <= 0)
{
- return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
+ return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskId}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
}
task.ModifyDate = DateTime.Now;
@@ -224,17 +240,17 @@
#region 鏇存柊浠诲姟鐘舵��
// 鑾峰彇WMSip鍦板潃
- var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
- var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
- var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTaskStatus)?.ConfigValue;
- if (wmsBase == null || updateTask == null)
- {
- throw new InvalidOperationException("WMS IP 鏈厤缃�");
- }
- var wmsIpAddress = wmsBase + updateTask;
+ //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+ //var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTaskStatus)?.ConfigValue;
+ //if (wmsBase == null || updateTask == null)
+ //{
+ // throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ //}
+ //var wmsIpAddress = wmsBase + updateTask;
- var result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
- content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ //var result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
+ //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
#endregion 鏇存柊浠诲姟鐘舵��
@@ -298,7 +314,7 @@
WebResponseContent content = new WebResponseContent();
try
{
- var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskId == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
int oldState = task.TaskState;
@@ -462,18 +478,32 @@
}
//浠诲姟瀹屾垚閫昏緫
_unitOfWorkManage.BeginTran();
+ task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_COMPLETED;
// 鎶婂綋鍓嶄换鍔℃煡鍑烘潵 鐒跺悗姣忎竴涓瓧娈佃祴鍊肩粰鍘嗗彶浠诲姟 鐒跺悗鍒犻櫎褰撳墠浠诲姟 娣诲姞涓�鏉″巻鍙蹭换鍔� // 鐒跺悗鎶婅繖涓换鍔$殑缁堢偣鐨勫搴旂珯鍙扮殑鐘舵�佽缃负鍚敤
Dt_Task_Hty dt_Task_Hty = _mapper.Map<Dt_Task_Hty>(task);
dt_Task_Hty.TaskNum = task.TaskId;
- Dt_StationManager dt_StationManager = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.TargetAddress);
- if(dt_StationManager == null) return content.Error($"浠诲姟{taskNum}鐨勫綋鍓嶇珯鍙颁笉瀛樺湪");
-
+ Dt_StationManager dt_StationManager = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.TargetAddress);// 鐩殑浣嶇疆
+ Dt_StationManager SourceAddress = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.SourceAddress);// 璧峰浣嶇疆
+ if(dt_StationManager == null) return content.Error($"浠诲姟{taskNum}鐨勭洰鐨勭珯鍙般�恵task.TargetAddress}銆戠珯鍙颁笉瀛樺湪");
+ if(SourceAddress == null) return content.Error($"浠诲姟{taskNum}鐨勫綋鍓嶈捣濮嬨�恵task.SourceAddress}銆戠珯鍙颁笉瀛樺湪");
dt_StationManager.StationStatus = ((int)StationEnum.Enable).ToString();
+ SourceAddress.StationStatus = ((int)StationEnum.Enable).ToString();
+
+
+ Dt_MaterialInfo dt_MaterialInfo = _MaterialInfoRepository.QueryFirst(x => x.ContainerCode == task.PalletCode);
+ if (dt_MaterialInfo == null) return content.Error("鏌ヨ涓嶅埌鐩稿叧鏁版嵁 鎴栬�呭凡缁忚В缁戯紒");
+ dt_MaterialInfo.IsBind = false;
+ Dt_MaterialInfo_Hty dt_MaterialInfo_Hty = _mapper.Map<Dt_MaterialInfo_Hty>(dt_MaterialInfo);
+
+
+ _MaterialInfo_HtyRepository.AddData(dt_MaterialInfo_Hty);
+ _MaterialInfoRepository.DeleteData(dt_MaterialInfo);
_taskHtyRepository.AddData(dt_Task_Hty);
BaseDal.DeleteData(task);
_stationManagerRepository.UpdateData(dt_StationManager);
+ _stationManagerRepository.UpdateData(SourceAddress);
_unitOfWorkManage.CommitTran();
content.OK("浠诲姟瀹屾垚");
--
Gitblit v1.9.3