From 4c216caadeb29a797aba3fc1548b7c8c68ed27ec Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期六, 21 十二月 2024 09:36:59 +0800
Subject: [PATCH] 合并
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 345 ++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 221 insertions(+), 124 deletions(-)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 830c4ce..c962f62 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,54 +1,52 @@
-锘�#region << 鐗� 鏈� 娉� 閲� >>
-
-/*----------------------------------------------------------------
- * 鍛藉悕绌洪棿锛歐IDESEAWCS_TaskInfoService
- * 鍒涘缓鑰咃細鑳$搴�
- * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
- * 鐗堟湰锛歏1.0.0
- * 鎻忚堪锛�
- *
- * ----------------------------------------------------------------
- * 淇敼浜猴細
- * 淇敼鏃堕棿锛�
- * 鐗堟湰锛歏1.0.1
- * 淇敼璇存槑锛�
- *
- *----------------------------------------------------------------*/
-
-#endregion << 鐗� 鏈� 娉� 閲� >>
-
+锘�
using AutoMapper;
using HslCommunication;
+using Mapster;
+using Microsoft.AspNetCore.Components.Routing;
using Newtonsoft.Json;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
+using WIDESEAWCS_BasicInfoRepository;
+using WIDESEAWCS_BasicInfoService;
+using WIDESEAWCS_Common;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_DTO.WMS;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_ITaskInfo_HtyRepository;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_TaskInfoService
{
- public class TaskService : ServiceBase<Dt_Task, ITaskRepository>, ITaskService
+ public partial class TaskService : ServiceBase<Dt_Task, ITaskRepository>, ITaskService
{
private readonly IRouterService _routerService;
private readonly ITaskExecuteDetailService _taskExecuteDetailService;
private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository;
+ private readonly ISys_ConfigService _sys_ConfigService;
private readonly IMapper _mapper;
+ private readonly IDt_StationManagerService _stationManagerService;
+ private readonly IDt_StationManagerRepository _stationManagerRepository;
+ private readonly IRouterRepository _routerRepository;
+ private readonly ITask_HtyRepository _taskHtyRepository;
+ private readonly IDt_needBarcodeRepository _taskNeedBarcodeRepository;
private Dictionary<string, OrderByType> _taskOrderBy = new()
- {
- {nameof(Dt_Task.Grade),OrderByType.Desc },
- {nameof(Dt_Task.CreateDate),OrderByType.Asc},
- };
+ {
+ {nameof(Dt_Task.Grade), OrderByType.Desc },
+ {nameof(Dt_Task.CreateDate), OrderByType.Asc},
+ };
public Dictionary<string, OrderByType> TaskOrderBy
{ get { return _taskOrderBy; } set { _taskOrderBy = value; } }
@@ -57,12 +55,18 @@
public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList();
- public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper) : 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, IDt_needBarcodeRepository taskNeedBarcodeRepository) : base(BaseDal)
{
_routerService = routerService;
_taskExecuteDetailService = taskExecuteDetailService;
_taskExecuteDetailRepository = taskExecuteDetailRepository;
_mapper = mapper;
+ _sys_ConfigService = sys_ConfigService;
+ _stationManagerService = stationManagerService;
+ _stationManagerRepository = stationManagerRepository;
+ _routerRepository = routerRepository;
+ _taskHtyRepository = htyRepository;
+ _taskNeedBarcodeRepository = taskNeedBarcodeRepository;
}
/// <summary>
@@ -87,18 +91,26 @@
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress);
- //鏆備笉鑰冭檻澶氳矾寰�
if (routers.Count > 0)
{
task.TaskState = (int)TaskOutStatusEnum.OutNew;
task.CurrentAddress = item.SourceAddress;
task.NextAddress = routers.FirstOrDefault().ChildPosi;
}
+ else
+ {
+ routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress);
+ if (routers.Count > 0)
+ {
+ task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
+ task.CurrentAddress = item.SourceAddress;
+ task.NextAddress = routers.FirstOrDefault().ChildPosi;
+ }
+ }
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
{
List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress);
- //鏆備笉鑰冭檻澶氳矾寰�
if (routers.Count > 0)
{
task.TaskState = (int)TaskInStatusEnum.InNew;
@@ -127,66 +139,59 @@
/// <param name="palletCode">鎵樼洏鍙�</param>
/// <param name="sourceAddress">璧峰鍦板潃</param>
/// <returns></returns>
- public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress)
+ public async Task<WebResponseContent> RequestWMSTask(string palletCode, string sourceAddress)
{
WebResponseContent content = new WebResponseContent();
try
{
- #region 璇锋眰鍏ュ簱浠诲姟宸烽亾
- // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
- // 鍒涘缓璇锋眰瀵硅薄
- RequestTaskDto request = new RequestTaskDto()
+ var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
+ if (hasTask != null)
{
- Position = sourceAddress,
- PalletCode = palletCode,
- };
+ return content.OK("褰撳墠鎵樼洏瀛樺湪浠诲姟");
+ }
- // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
- var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
+ var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+ var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
+ if (wmsBase == null || requestTask == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ var wmsIpAddrss = wmsBase + requestTask;
- // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+ var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode }.ToJsonString());
content = JsonConvert.DeserializeObject<WebResponseContent>(result);
- WMSTaskDTO task = new WMSTaskDTO();
- // 妫�鏌ョ姸鎬佸苟杩斿洖
if (!content.Status)
{
- task = new WMSTaskDTO()
- {
- TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
- Grade = 1,
- PalletCode = palletCode,
- RoadWay = "CHSC01",
- SourceAddress = sourceAddress,
- TargetAddress = "1020",
- TaskState = (int)TaskOutStatusEnum.Line_OutExecuting,
- Id = 0,
- TaskType = (int)TaskOutboundTypeEnum.Outbound
- };
+ // wms澶辫触杩斿洖鍘籒G鍙d换鍔�
+ return content;
+ }
- Dt_Task task1 = _mapper.Map<Dt_Task>(task);
- task1.CurrentAddress = task.SourceAddress;
- task1.NextAddress = "1020";
- BaseDal.AddData(task1);
+ var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+ if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
+ {
+ var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == task.SourceAddress);
+ Dt_Task _Task = _mapper.Map<Dt_Task>(task);
+ _Task.TaskState = (int)TaskInStatusEnum.InNew;
+ _Task.CurrentAddress = task.SourceAddress;
+ _Task.NextAddress = station.stationNGChildCode;
+ _Task.TargetAddress = station.stationNGLocation;
+ _Task.Roadway = station.Roadway;
+
+ BaseDal.AddData(_Task);
+ _taskExecuteDetailService.AddTaskExecuteDetail(_Task.TaskNum, "鎺ユ敹WMS浠诲姟");
return content.OK();
}
else
{
- // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
- task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
- // 澶勭悊浠诲姟骞惰繑鍥炵粨鏋�
- content = ReceiveWMSTask(new List<WMSTaskDTO> { task });
+ return ReceiveWMSTask(new List<WMSTaskDTO> { task });
}
-
-
-
- #endregion
}
catch (Exception ex)
{
- content = WebResponseContent.Instance.Error(ex.Message);
+ return WebResponseContent.Instance.Error(ex.Message);
}
- return content;
}
/// <summary>
@@ -243,6 +248,12 @@
{
return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InFinish || x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish), TaskOrderBy);
}
+
+ public Dt_Task QueryBarcodeTask(string barcode, string currentAddress)
+ {
+ return BaseDal.QueryFirst(x => x.PalletCode == barcode && x.CurrentAddress == currentAddress, TaskOrderBy);
+ }
+
/// <summary>
/// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏂板缓鐨勪换鍔�
@@ -335,7 +346,7 @@
WebResponseContent content = new WebResponseContent();
try
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
@@ -367,7 +378,7 @@
/// <param name="status">浠诲姟鐘舵��</param>
public void UpdateTaskStatus(int taskNum, int status)
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return;
task.TaskState = status;
task.ModifyDate = DateTime.Now;
@@ -383,7 +394,7 @@
WebResponseContent content = new WebResponseContent();
try
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
return UpdateTaskStatusToNext(task);
}
@@ -407,22 +418,24 @@
int oldState = task.TaskState;
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
- if (task.TaskState >= (int)TaskOutStatusEnum.OutFinish)
- {
- return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
- }
-
int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
task.TaskState = nextStatus;
+
+ if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)
+ {
+ task.ModifyDate = DateTime.Now;
+ task.Modifier = "System";
+
+ Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
+ task_Hty.TaskId = 0;
+
+ BaseDal.DeleteData(task);
+ _taskHtyRepository.AddData(task_Hty);
+ }
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
{
- if (task.TaskState >= (int)TaskInStatusEnum.InFinish)
- {
- return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
- }
-
int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
task.TaskState = nextStatus;
@@ -432,14 +445,24 @@
#region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
// TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
// 鍒涘缓璇锋眰瀵硅薄
- RequestTaskDto taskDto = new RequestTaskDto()
+ var taskDto = new RequestTaskDto()
{
Position = task.NextAddress,
PalletCode = task.PalletCode,
};
+ // 鑾峰彇WMSip鍦板潃
+ var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
+ var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue;
+ if (wmsBasez == null || requestLocation == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ var wmsIpAddrss = wmsBasez + requestLocation;
+
// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
- var abc = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestLocationTaskAsync", taskDto.ToJsonString()).Result;
+ var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
if (abc == null)
return content.Error();
// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
@@ -450,13 +473,25 @@
return content;
// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
- WMSTaskDTO taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+ var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
task.CurrentAddress = task.NextAddress;
task.NextAddress = taskResult.TargetAddress;
task.TargetAddress = task.NextAddress;
#endregion
+ }
+ else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish)
+ {
+
+ task.ModifyDate = DateTime.Now;
+ task.Modifier = "System";
+
+ Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
+ task_Hty.TaskId = 0;
+
+ BaseDal.DeleteData(task);
+ _taskHtyRepository.AddData(task_Hty);
}
}
else
@@ -476,12 +511,17 @@
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskState}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�");
#region 鏇存柊浠诲姟鐘舵��
- object request = new
+ // 鑾峰彇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.UpdateTask)?.ConfigValue;
+ if (wmsBase == null || updateTask == null)
{
- TaskNum = task.TaskNum,
- TaskState = task.TaskState
- };
- var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result;
+ 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);
#endregion
@@ -504,13 +544,13 @@
{
try
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress);
+ var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress);
if (task == null) throw new Exception($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
string oldCurrentPos = task.CurrentAddress;
string oldNextPos = task.NextAddress;
- List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
+ var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
if (!routers.Any()) throw new Exception($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
task.CurrentAddress = task.NextAddress;
@@ -539,23 +579,73 @@
WebResponseContent content = new WebResponseContent();
try
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+
+ #region WMS鍚屾浠诲姟瀹屾垚
+ var keys = new Dictionary<string, object>()
+ {
+ {"taskNum", taskNum}
+ };
+ // 鑾峰彇WMSip鍦板潃
+ var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+ var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
+ if (wmsBase == null || completeTask == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ var wmsIpAddress = wmsBase + completeTask;
+
+ var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
+ content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ if (!content.Data.IsNullOrEmpty())
+ {
+ if (content.Data.ToString() == "NG")
+ {
+ task.Remark = "NG";
+ //BaseDal.UpdateData(task);
+ //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴愶紝MOM杩斿洖NG");
+ }
+ }
+ task.ExceptionMessage += " " + content.Message;
+ #endregion
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
{
- List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
- if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
+ if (!task.Roadway.Contains("GW"))
+ {
+ var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
+ if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
- int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
- task.TaskState = nextStatus;
- task.CurrentAddress = task.NextAddress;
- task.NextAddress = routers.FirstOrDefault().ChildPosi;
- task.ModifyDate = DateTime.Now;
- task.Modifier = "System";
- BaseDal.UpdateData(task);
+ int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
+ task.TaskState = nextStatus;
+ task.CurrentAddress = task.NextAddress;
+ task.NextAddress = routers.FirstOrDefault().ChildPosi;
+ task.ModifyDate = DateTime.Now;
+ task.Modifier = "System";
+ BaseDal.UpdateData(task);
- _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
+ _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
+ }
+ else
+ {
+ task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+ //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙�
+ if (task.Remark == "NG")
+ {
+ BaseDal.UpdateData(task);
+ }
+ else
+ {
+ BaseDal.DeleteData(task);
+ ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}");
+ }
+
+ var taskHty = task.Adapt<Dt_Task_Hty>();
+ _taskHtyRepository.AddData(taskHty);
+ _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
+ }
//鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
@@ -567,10 +657,13 @@
task.TaskState = nextStatus;
task.ModifyDate = DateTime.Now;
task.Modifier = "System";
- BaseDal.UpdateData(task);
+
+ Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
+ task_Hty.TaskId = 0;
+
+ BaseDal.DeleteData(task);
+ _taskHtyRepository.AddData(task_Hty);
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
-
-
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
{
@@ -585,22 +678,17 @@
}
- #region WMS鍚屾浠诲姟瀹屾垚
- var keys = new Dictionary<string, object>()
- {
- {"taskNum", taskNum}
- };
- var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result;
- content = JsonConvert.DeserializeObject<WebResponseContent>(result);
- #endregion
#region 鏇存柊浠诲姟鐘舵��
- object request = new
- {
- TaskNum = task.TaskNum,
- TaskState = task.TaskState
- };
- result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result;
- content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+ //var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue;
+ //if (wmsBase == null || updateTask == null)
+ //{
+ // throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ //}
+ //wmsIpAddress = wmsBase + updateTask;
+
+ //result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
+ //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
#endregion
//content = WebResponseContent.Instance.OK();
}
@@ -621,14 +709,14 @@
WebResponseContent content = new WebResponseContent();
try
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
if (task.TaskState != (int)TaskInStatusEnum.InPending && task.TaskState != (int)TaskOutStatusEnum.OutPending)
{
return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙仮澶�,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
}
- Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.IsNormal, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } });
+ var taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.IsNormal, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } });
if (taskExecuteDetail != null)
{
task.TaskState = taskExecuteDetail.TaskState;
@@ -643,7 +731,6 @@
{
task.TaskState = (int)TaskInStatusEnum.InNew;
}
- //todo
}
task.ExceptionMessage = string.Empty;
@@ -668,14 +755,14 @@
/// <returns>杩斿洖澶勭悊缁撴灉</returns>
public WebResponseContent RollbackTaskStatusToLast(int taskNum)
{
- WebResponseContent content = new();
+ WebResponseContent content = new WebResponseContent();
try
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
int oldState = task.TaskState;
- Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } });
+ var taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } });
if (taskExecuteDetail != null)
{
task.TaskState = taskExecuteDetail.TaskState;
@@ -701,5 +788,15 @@
}
return content;
}
+
+ public Dt_Task QueryRelocationTask(string deviceNo)
+ {
+ return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskStatus.Created);
+ }
+
+ public Dt_Task QueryExecutingTaskByBarcode(string barcode, string nextAddress)
+ {
+ return BaseDal.QueryFirst(x => x.PalletCode == barcode && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
+ }
}
}
\ No newline at end of file
--
Gitblit v1.9.3