From 5b2265e68c0a493c52ea336f77f8dbcd7655d34a Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期五, 22 十一月 2024 10:20:59 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/BaiBuLiKu --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 2 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs | 514 ---------------------------- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs | 2 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs | 2 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 525 +++++++++++++++++++++++++++++ Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Partial/Method.cs | 1 6 files changed, 531 insertions(+), 515 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Partial/Method.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Partial/Method.cs index a7eb02b..c80e720 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Partial/Method.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Partial/Method.cs @@ -11,6 +11,7 @@ { public List<Dt_StationManager> GetAllStationByDeviceCode(string DeviceCode) { + //todo锛� 浣跨敤缂撳瓨鍌ㄥ瓨 return BaseDal.QueryData(x => x.stationPLC == DeviceCode).ToList(); } } diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs index 08a7d4b..e5ded63 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs @@ -113,6 +113,7 @@ /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> public void RequestInbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) { + var taskNew = _taskService.QueryCraneConveyorLineTask(command.ConveyorLineTaskNum.ObjToInt(), childDeviceCode); if (taskNew == null) { @@ -145,28 +146,6 @@ conveyorLine.SendCommand(taskCommand, childDeviceCode); _taskService.UpdateTaskStatusToNext(inTask); - } - } - - /// <summary> - /// 杈撻�佺嚎璇锋眰鍏ュ簱涓嬩竴鍦板潃 - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - public void RequestInNextAddress(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) - { - //if(command) - Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); - if (task != null) - { - Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); - if (newTask != null) - { - ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); - //taskCommand.InteractiveSignal = command.InteractiveSignal; - conveyorLine.SendCommand(taskCommand, childDeviceCode); - } } } @@ -208,497 +187,6 @@ _taskService.UpdateTaskStatusToNext(task); } } - - /// <summary> - /// 杈撻�佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃 - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - public void RequestOutNextAddress(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) - { - Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); - if (task != null) - { - Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); - if (newTask != null) - { - ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); - //taskCommand.InteractiveSignal = command.InteractiveSignal; - conveyorLine.SendCommand(taskCommand, childDeviceCode); - } - } - } - - /// <summary> - /// 杈撻�佺嚎鍑哄簱瀹屾垚 - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - public void ConveyorLineOutFinish(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) - { - Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); - if (task != null) - { - conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode); - WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); - Console.Out.WriteLine(content.Serialize()); - } - } - - /// <summary> - /// 杈撻�佺嚎浜や簰瀹屾垚 - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> - /// <param name="value">鍊�</param> - public void ConveyorLineSendFinish(CommonConveyorLine_After conveyorLine, string childDeviceCode, int ProtocalDetailValue, bool value) - { - DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == childDeviceCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); - string[] x = devicePro.DeviceProAddress.Split('.'); - x[x.Length - 1] = (ProtocalDetailValue + 1).ToString(); - string DeviceProAddress = string.Join(".", x); - conveyorLine.Communicator.Write(DeviceProAddress, value); - } } } -#endregion - - - -#region MyRegion -//using AutoMapper; -//using HslCommunication; -//using Newtonsoft.Json; -//using Quartz; -//using SqlSugar; -//using System.Reflection; -//using WIDESEAWCS_Common.TaskEnum; -//using WIDESEAWCS_Core; -//using WIDESEAWCS_Core.Helper; -//using WIDESEAWCS_DTO.TaskInfo; -//using WIDESEAWCS_ITaskInfoRepository; -//using WIDESEAWCS_ITaskInfoService; -//using WIDESEAWCS_Model.Models; -//using WIDESEAWCS_QuartzJob; -//using WIDESEAWCS_QuartzJob.DeviceBase; -//using WIDESEAWCS_QuartzJob.DTO; -//using WIDESEAWCS_QuartzJob.Service; -//using WIDESEAWCS_Tasks.ConveyorLineJob; - -//namespace WIDESEAWCS_Tasks -//{ -// [DisallowConcurrentExecution] -// public class CommonConveyorLine_AfterJob : JobBase, IJob -// { -// private readonly List<string> _deviceCodes1 = new List<string>() { "1063", "1061", "1060" }; -// private readonly List<string> _deviceCodes2 = new List<string>() { "1067", "1069", "1068" }; -// private readonly string[] HCTrayCode = { "1012", "1013" }; -// private readonly ITaskService _taskService; -// private readonly ITaskRepository _taskRepository; -// private readonly ITaskExecuteDetailService _taskExecuteDetailService; -// private readonly IRouterService _routerService; -// private readonly IMapper _mapper; - -// public CommonConveyorLine_AfterJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository) -// { -// _taskService = taskService; -// _taskExecuteDetailService = taskExecuteDetailService; -// _routerService = routerService; -// _mapper = mapper; -// _taskRepository = taskRepository; -// } - -// public Task Execute(IJobExecutionContext context) -// { -// try -// { -// CommonConveyorLine_After conveyorLine = (CommonConveyorLine_After)context.JobDetail.JobDataMap.Get("JobParams"); -// if (conveyorLine != null) -// { -// List<string> childDeviceCodes = _routerService.QueryAllPositions(conveyorLine.DeviceCode); -// List<Task> tasks = new List<Task>(); -// foreach (string childDeviceCode in childDeviceCodes) -// { -// //Task task = Task.Run(() => -// //{ -// ConveyorLineTaskCommand_After command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand_After>(childDeviceCode); -// if (command != null) -// { -// var structs = BitConverter.GetBytes(command.InteractiveSignal).Reverse().ToArray().ToBoolArray(); - -// List<DeviceProtocolDetailDTO>? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.Where(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand_After.InteractiveSignal)).ToList(); - -// if (deviceProtocolDetails != null) -// { -// foreach (var item in deviceProtocolDetails) -// { -// var outDeviceCodes = _routerService.QueryOutDeviceCodes(conveyorLine.DeviceCode); -// if (structs[item.ProtocalDetailValue.ObjToInt()] == true) -// { -// MethodInfo? method = GetType().GetMethod(item.ProtocolDetailType); -// if (method != null) -// { -// method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, item.ProtocalDetailValue.ObjToInt() }); -// } -// } -// else -// { -// //DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == childDeviceCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); -// //string[] x = devicePro.DeviceProAddress.Split('.'); -// //x[x.Length - 1] = (item.ProtocalDetailValue.ObjToInt() + 1).ToString(); -// //string DeviceProAddress = string.Join(".", x); -// //var writeRead = conveyorLine.Communicator.Read<bool>(DeviceProAddress); -// //if (writeRead) -// //{ -// // ConveyorLineSendFinish(conveyorLine, childDeviceCode, item.ProtocalDetailValue.ObjToInt(), false); -// //} -// } -// } -// } -// } -// //}); -// //tasks.Add(task); -// } -// Task.WaitAll(tasks.ToArray()); -// } -// } -// catch (Exception ex) -// { -// Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString()); -// } -// finally -// { -// //WriteDebug("CommonConveyorLineJob", "test"); -// //Console.Out.WriteLine(DateTime.Now); -// } -// return Task.CompletedTask; -// } - -// /// <summary> -// /// 杈撻�佺嚎璇锋眰鍏ュ簱 -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> -// public void RequestInbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, int ProtocalDetailValue) -// { -// var taskNew = _taskService.QueryCraneConveyorLineTask(command.Barcode.ObjToInt(), childDeviceCode); -// var Taskout = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); -// if (Taskout != null) -// { -// // 绌烘墭鐩樹换鍔� -// if (Taskout.TaskType == (int)TaskOutboundTypeEnum.OutTray) -// { -// if (Taskout.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(Taskout); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// if (command.Barcode == "") -// { -// taskCommand.TargetAddress = 1092; -// } -// conveyorLine.SendCommand(taskCommand, childDeviceCode); - -// ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - -// _taskService.UpdateTaskStatusToNext(Taskout); -// } -// else if (Taskout.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) -// { -// if (command.Barcode == "") -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(Taskout); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// taskCommand.TargetAddress = 1092; -// conveyorLine.SendCommand(taskCommand, childDeviceCode); - -// ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); -// _taskService.UpdateTaskStatusToNext(Taskout); -// } -// } -// } -// else if (Taskout.TaskType == (int)TaskOutboundTypeEnum.Outbound) -// { -// if (Taskout.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(Taskout); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// if (command.Barcode == "") -// { -// //todo 娌℃湁鏄庣‘寮傚父鍙o紝閫佸埌鐩爣宸烽亾鐨凬G鍙� -// //taskCommand.TargetAddress = 1092; -// } -// conveyorLine.SendCommand(taskCommand, childDeviceCode); - -// ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - -// _taskService.UpdateTaskStatusToNext(Taskout); -// } -// else if (Taskout.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) -// { -// if (command.Barcode == "") -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(Taskout); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// // todo 閫佸埌鐩爣宸烽亾鐨凬G鍙� -// taskCommand.TargetAddress = 1092; -// conveyorLine.SendCommand(taskCommand, childDeviceCode); - -// ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); -// _taskService.UpdateTaskStatusToNext(Taskout); -// } -// else -// { -// // todo 璋冪敤WMS浠诲姟瀹屾垚鎺ュ彛 -// var x = new { taskNum = Taskout.TaskNum }; -// var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result; -// WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); -// if (content.Status) -// { -// ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); -// _taskService.UpdateTaskStatusToNext(Taskout); -// } -// } -// } -// } -// } -// if (taskNew == null) -// { -// if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status) -// { -// Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); -// if (task != null) -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// conveyorLine.SendCommand(taskCommand, childDeviceCode); - -// ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - -// _taskService.UpdateTaskStatusToNext(task); -// } -// } -// } -// } - -// // -// /// <summary> -// /// 绌烘墭鐩樺洖娴� -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// /// <param name="index">璇诲彇鐨勭涓�涓綅缃�</param> -// public void EmptyTrayReturn(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, int index) -// { -// var tasks = _taskRepository.QueryData(x => (x.TaskState == (int)TaskOutStatusEnum.OutNew || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) && x.TaskType == (int)TaskOutboundTypeEnum.OutTray); -// if (tasks.Count <= index) -// { -// WMSTaskDTO taskDTO = new WMSTaskDTO() -// { -// TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), -// Grade = 1, -// PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"), -// RoadWay = "CHSC01", -// SourceAddress = "001-001-001", -// TargetAddress = childDeviceCode, -// TaskState = (int)TaskOutStatusEnum.OutNew, -// Id = 0, -// TaskType = (int)TaskOutboundTypeEnum.OutTray -// }; - -// #region 鐪熷疄鏁版嵁 - -// // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧� -// //RequestTaskDto request = new RequestTaskDto() -// //{ -// // Position = sourceAddress, -// // PalletCode = palletCode, -// //}; - -// //// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲 -// //var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result; - -// //// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭 -// //WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); - -// //// 妫�鏌ョ姸鎬佸苟杩斿洖 -// ////if (!content.Status) -// //// return content; - -// //// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁 -// //WMSTaskDTO task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); - -// #endregion - -// var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); -// if (content.Status) -// { -// Console.WriteLine("绌烘墭鐩樺懠鍙垚鍔�"); -// } -// } -// } - -// ///// <summary> -// ///// 闄堝寲鍑哄簱 -// ///// </summary> -// ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// ///// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> -// //public void ChuanhuaOutbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, int index) -// //{ -// // var tasks = _taskRepository.QueryData(x => (x.TaskState == (int)TaskOutStatusEnum.OutNew || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) && x.TaskType == (int)TaskOutboundTypeEnum.Outbound); -// // if (tasks.Count <= index) -// // { -// // WMSTaskDTO taskDTO = new WMSTaskDTO() -// // { -// // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), -// // Grade = 1, -// // PalletCode = DateTime.Now.ToString("MMddHHmmss"), -// // RoadWay = "CHSC01", -// // SourceAddress = "001-001-001", -// // TargetAddress = childDeviceCode, -// // TaskState = (int)TaskOutStatusEnum.OutNew, -// // Id = 0, -// // TaskType = (int)TaskOutboundTypeEnum.Outbound, -// // }; - -// // var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); -// // if (content.Status) -// // { -// // Console.WriteLine("鍑哄簱鍛煎彨鎴愬姛"); -// // } -// // } -// // else -// // { -// // Dt_Task task = tasks[index]; -// // if (task != null) -// // { -// // ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); -// // taskCommand.InteractiveSignal = command.InteractiveSignal; -// // conveyorLine.SendCommand(taskCommand, childDeviceCode); -// // } -// // } -// //} - -// /// <summary> -// /// 杈撻�佺嚎璇锋眰鍏ュ簱涓嬩竴鍦板潃 -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// public void RequestInNextAddress(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) -// { -// Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); -// if (task != null) -// { -// Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); -// if (newTask != null) -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// conveyorLine.SendCommand(taskCommand, childDeviceCode); -// } -// } -// } - -// /// <summary> -// /// 杈撻�佺嚎鍏ュ簱瀹屾垚 -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> -// public void ConveyorLineInFinish(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, int ProtocalDetailValue) -// { -// Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); -// if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) -// { -// ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - -// //conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode); -// WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); -// Console.Out.WriteLine(content.Serialize()); -// } -// } - -// /// <summary> -// /// 杈撻�佺嚎璇锋眰鍑轰俊鎭� -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// public void RequestOutbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) -// { -// Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); -// if (task != null) -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// conveyorLine.SendCommand(taskCommand, childDeviceCode); - -// _taskService.UpdateTaskStatusToNext(task); -// } -// } - -// /// <summary> -// /// 杈撻�佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃 -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// public void RequestOutNextAddress(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) -// { -// Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); -// if (task != null) -// { -// Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); -// if (newTask != null) -// { -// ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); -// taskCommand.InteractiveSignal = command.InteractiveSignal; -// conveyorLine.SendCommand(taskCommand, childDeviceCode); -// } -// } -// } - -// /// <summary> -// /// 杈撻�佺嚎鍑哄簱瀹屾垚 -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// public void ConveyorLineOutFinish(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) -// { -// Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); -// if (task != null) -// { -// conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode); -// WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); -// Console.Out.WriteLine(content.Serialize()); -// } -// } - -// /// <summary> -// /// 杈撻�佺嚎浜や簰瀹屾垚 -// /// </summary> -// /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> -// /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> -// /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> -// /// <param name="value">鍊�</param> -// public void ConveyorLineSendFinish(CommonConveyorLine_After conveyorLine, string childDeviceCode, int ProtocalDetailValue, bool value) -// { -// DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == childDeviceCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); -// string[] x = devicePro.DeviceProAddress.Split('.'); -// x[x.Length - 1] = (ProtocalDetailValue + 1).ToString(); -// string DeviceProAddress = string.Join(".", x); -// conveyorLine.Communicator.Write(DeviceProAddress, value); -// } -// } -//} #endregion \ No newline at end of file diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs index 63a5ce1..2e45146 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs @@ -21,6 +21,8 @@ /// 浠诲姟绫诲瀷 /// </summary> public string RequestType { get; set; } = string.Empty; + + public string EquiCodeMOM { get; set; } } public class RequestOutTaskDto 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 54847d1..0fb68e6 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 @@ -13,7 +13,7 @@ namespace WIDESEA_StorageOutTaskServices; -public class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService +public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService { private readonly LogFactory LogFactory = new LogFactory(); private readonly IUnitOfWorkManage _unitOfWorkManage; 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 new file mode 100644 index 0000000..58269a9 --- /dev/null +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs @@ -0,0 +1,525 @@ +锘縰sing log4net.Core; +using Mapster; +using Masuit.Tools; +using Masuit.Tools.Models; +using WIDESEA_DTO.MOM; +using WIDESEA_DTO.WMS; +using WIDESEA_IStorageBasicRepository; +using WIDESEA_IStoragIntegrationServices; +using WIDESEA_Model.Models; +using WIDESEA_StorageBasicRepository; +using WIDESEA_StorageTaskRepository; +using WIDESEA_StoragIntegrationServices; + +namespace WIDESEA_StorageOutTaskServices; + +public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService +{ + + //#region 鍑哄簱浠诲姟瀹屾垚 + + + //public async Task<WebResponseContent> CompleteStackTaskAsync(Dt_Task task, DtStockInfo stock) + //{ + // WebResponseContent content = new WebResponseContent(); + // try + // { + // if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound) + // { + // var process = await SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>() + // .FirstAsync(x => x.EquipmentName == task.Roadway); + // var info = JsonConvert.DeserializeObject<ResponseEqptRunDto>(process.ProcessValue); + + // var agingOutputDto = MapToAgingOutputDto(stock, info); + // content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto); + // ValidateResponse(content); + // } + + // // 鏇存柊搴撳瓨鐘舵�佸拰浠诲姟鐘舵�� + // (var loc, var tas) = UpdateStockAndTaskStatus(stock, task); + + // // 浜嬪姟澶勭悊 + // await _unitOfWorkManage.UseTranAsync(async () => + // { + // await UpdateLocationAsync(loc); + // await DeleteStockInfoAsync(stock.Id); + // await DeleteStockInfoDetailsAsync(stock.StockInfoDetails); + // //await DeleteTaskAsync(task.TaskId); + // }); + + // return content.OK("浠诲姟瀹屾垚鎴愬姛"); + // } + // catch (Exception err) + // { + // LogFactory.GetLog("浠诲姟瀹屾垚").Error(true, $"绯荤粺寮傚父锛屽紓甯镐俊鎭細{err.Message}"); + // return content.Error(err.Message); + // } + //} + + //private AgingOutputDto MapToAgingOutputDto(DtStockInfo stock, ResponseEqptRunDto info) + //{ + // // TODO Value鍊兼牴鎹甅OM涓嬪彂鐨勯潤缃椂闂村埌褰撳墠鏃堕棿鐨勫垎閽熸暟 + // return new AgingOutputDto + // { + // OpFlag = 1, + // Software = "WMS", + // EquipmentCode = "24MEJQ08-1091", + // TrayBarcode = stock.PalletCode, + // SerialNos = stock.StockInfoDetails.Select(x => new SerialNoOutDto + // { + // SlotNo = x.OrderNo.ToInt32(), + // SerialNo = x.SerialNumber, + // SerialNoResult = true, + // ParameterInfo = info.ParameterInfo.Select(y => new ParameterInfo() + // { + // LowerLomit = y.LowerControlLimit, + // UpperLimit = y.UpperControlLimit, + // ParameterResult = y.EquipmentAvailabilityFlag, + // ParameterCode = y.ParameterCode, + // ParameterDesc = y.Description, + // TargetValue = y.TargetValue, + // Value = (DateTime.Parse(stock.LinedProcessFeedbackTime, null, System.Globalization.DateTimeStyles.RoundtripKind).ToLocalTime() - stock.CreateDate).TotalMinutes.ToString(), + // DefectCode = y.UOMCode + // }).ToList() + // }).ToList() + // }; + //} + + //private void ValidateResponse(WebResponseContent content) + //{ + // var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString()); + // if (!result.Success) + // { + // throw new Exception(result.MOMMessage); + // } + //} + + //private (DtLocationInfo, Dt_Task) UpdateStockAndTaskStatus(DtStockInfo stock, Dt_Task task) + //{ + // var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress); + // var details = _stockInfoDetailRepository.QueryData(x => x.StockId == stock.Id); + + // location.LocationStatus = (int)LocationEnum.Free; + // task.TaskState = (int)TaskOutStatusEnum.OutFinish; + // //task.CurrentAddress = task.NextAddress; + // //task.NextAddress = task.TargetAddress; + + // LogFactory.GetLog("浠诲姟瀹屾垚").Info(true, "鏇存柊搴撳瓨鐘舵�佷笌浠诲姟鐘舵��"); + // return (location, task); + //} + + //private async Task DeleteStockInfoAsync(int stockId) + //{ + // var isStockUpdated = await _stockInfoRepository.DeleteDataByIdAsync(stockId); + // if (!isStockUpdated) + // { + // throw new Exception("搴撳瓨淇℃伅鏇存柊澶辫触"); + // } + //} + + //private async Task UpdateLocationAsync(DtLocationInfo info) + //{ + // var isStockUpdated = await _locationRepository.UpdateDataAsync(info); + // if (!isStockUpdated) + // { + // throw new Exception("搴撳瓨淇℃伅鏇存柊澶辫触"); + // } + //} + + //private async Task DeleteStockInfoDetailsAsync(IEnumerable<DtStockInfoDetail> details) + //{ + // var ids = details.Select(x => (object)x.Id).ToArray(); + // var isStockDetailUpdated = await _stockInfoDetailRepository.DeleteDataByIdsAsync(ids); + // if (!isStockDetailUpdated) + // { + // throw new Exception("搴撳瓨璇︽儏淇℃伅鏇存柊澶辫触"); + // } + //} + + //private async Task DeleteTaskAsync(int taskId) + //{ + // var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(taskId); + // if (!isTaskUpdated) + // { + // throw new Exception("浠诲姟淇℃伅鏇存柊澶辫触"); + // } + //} + + //#endregion 鍑哄簱浠诲姟瀹屾垚 + + #region 绉诲簱浠诲姟瀹屾垚 + + /// <summary> + /// 绉诲簱浠诲姟瀹屾垚 + /// </summary> + /// <param name="saveModel">浠诲姟鏁版嵁鍚堥泦</param> + /// <returns>杩斿洖缁撴灉闆�</returns> + //public async Task<WebResponseContent> CompleteTransferTaskAsync(Dt_Task task, DtStockInfo stock) + //{ + // WebResponseContent content = new WebResponseContent(); + // try + // { + // // 鏇存柊璐т綅鍜屽簱瀛樹俊鎭� + // (DtStockInfo updateStock, DtLocationInfo locationInf) = UpdateStockLocation(stock, task.NextAddress); + // var taskHty = CreateHistoricalTask(task); + // LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "绉诲簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庡簱瀛樻暟鎹細{JsonConvert.SerializeObject(updateStock)}锛屽師鍏堣揣浣嶆暟鎹細{locationInf}"); + + // // 鎵ц鏁版嵁搴撲簨鍔� + // bool isResult = await ExecuteTransaction(updateStock, taskHty, locationInf, task.TaskId); + // if (isResult) + // content.OK("绉诲簱浠诲姟瀹屾垚鎴愬姛"); + // else + // content.Error("绉诲簱浠诲姟瀹屾垚澶辫触"); + // } + // catch (Exception err) + // { + // Console.WriteLine(err.Message.ToString()); + // } + // return content; + //} + + #endregion 绉诲簱浠诲姟瀹屾垚 + + #region 鍏ュ簱浠诲姟瀹屾垚 + + /// <summary> + /// 瀹屾垚鍏ュ簱浠诲姟 + /// </summary> + /// <param name="task">浠诲姟鏁版嵁鍚堥泦</param> + /// <returns>杩斿洖缁撴灉闆�</returns> + //public async Task<WebResponseContent> CompleteInboundTaskAsync(Dt_Task task) + //{ + // // 鍒濆鍖栧搷搴斿唴瀹� + // WebResponseContent content = new WebResponseContent(); + // try + // { + // // 鑾峰彇瑁呯淇℃伅鍜岀洰鏍囦綅缃俊鎭� + // var boxing = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); + // var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress); + + // // 鏇存柊鐩爣浣嶇疆鐘舵�佷负搴撳瓨涓� + // locationInf.LocationStatus = (int)LocationEnum.InStock; + + // // 鍒涘缓鍘嗗彶浠诲姟瀹炰緥妯″瀷 + // var taskHty = CreateHistoricalTask(task); + + // // 鏍规嵁鏄惁鏈夌粍鐩樹俊鎭垱寤哄簱瀛樺疄渚嬫ā鍨� + // DtStockInfo stock = boxing == null ? CreateEmptyPalletStock(task, locationInf) : CreateFullPalletStock(task, locationInf, boxing); + + // // 鎵ц鏁版嵁搴撲簨鍔� + // bool isResult = await ExecuteTransaction(stock, taskHty, locationInf, task.TaskId); + // if (isResult) + // { + // content.OK("鍏ュ簱浠诲姟瀹屾垚鎴愬姛"); + // } + // else + // { + // content.Error("鍏ュ簱浠诲姟瀹屾垚澶辫触"); + // } + // } + // catch (Exception err) + // { + // // 璁板綍寮傚父淇℃伅鍒版帶鍒跺彴鍜屾棩蹇� + // Console.WriteLine(err.Message.ToString()); + // LogFactory.GetLog("浠诲姟瀹屾垚").Error(true, err); + // } + // return content; + //} + + /// <summary> + /// 鍒涘缓绌烘墭鐩樼殑搴撳瓨瀹炰緥妯″瀷 + /// </summary> + //private DtStockInfo CreateEmptyPalletStock(Dt_Task task, DtLocationInfo locationInf) + //{ + // var loation = _locationRepository.QueryFirst(x => x.RoadwayNo == task.Roadway && x.LocationCode == task.TargetAddress); + // var area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); + // return new DtStockInfo() + // { + // PalletCode = task.PalletCode, + // LocationCode = task.TargetAddress, + // CreateDate = DateTime.Now, + // Creater = "system", + // IsFull = false, + // AreaCode = area.AreaCode, + // LocationId = loation.Id, + // StockInfoDetails = new List<DtStockInfoDetail>() + // { + // new DtStockInfoDetail() + // { + // MaterielCode = "绌烘墭鐩�", + // Id = 0, + // Status = (int)StockStateEmun.宸插叆搴� + // } + // } + // }; + //} + + /// <summary> + /// 鍒涘缓瀹炵洏鐨勫簱瀛樺疄渚嬫ā鍨嬪苟璋冪敤MOM鍏ュ簱 + /// </summary> + //private DtStockInfo CreateFullPalletStock(Dt_Task task, DtLocationInfo locationInf, DtBoxingInfo boxing) + //{ + // var loation = _locationRepository.QueryFirst(x => x.RoadwayNo == task.Roadway && x.LocationCode == task.TargetAddress); + // var area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); + // var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>(); + // boxDetail.ForEach(x => { x.Status = (int)StockStateEmun.宸插叆搴�; }); + // var stock = new DtStockInfo() + // { + // PalletCode = task.PalletCode, + // LocationCode = task.TargetAddress, + // CreateDate = DateTime.Now, + // Creater = "system", + // IsFull = boxing.IsFull, + // AreaCode = area.AreaCode, + // LocationId = loation.Id, + // StockInfoDetails = boxDetail, + // }; + + // // 澶勭悊璇锋眰鍙傛暟 + // AgingInputDto agingInputDto = new AgingInputDto() + // { + // SerialNos = boxing.BoxingInfoDetails + // .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo }) + // .ToList(), + // TrayBarcode = task.PalletCode, + // OpFlag = 1, + // EquipmentCode = "24MEJQ08-1091", + // Software = "WMS" + // }; + // var result = _agingInOrOutInputService.GetOCVInputAsync(agingInputDto).Result; + // var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()); + // stock.LinedProcessFeedbackTime = respone.LinedProcessFeedbackTime; + // stock.SpecialParameterDuration = respone.SpecialParameterDuration; + // //2024骞�11鏈�16鏃ワ細鏂板瀛楁璁$畻搴斿嚭搴撴椂闂� + // stock.OutboundTime = Convert.ToDateTime(respone.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(respone.SpecialParameterDuration)); + // stock.ProductionLine = respone.ProductionLine; + + // // 璁板綍鏃ュ織 + // LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庤揣浣嶆暟鎹細{locationInf}"); + + // return stock; + //} + + #endregion 鍏ュ簱浠诲姟瀹屾垚 + + #region 浠诲姟瀹屾垚 + + /// <summary> + /// 瀹屾垚浠诲姟 + /// </summary> + /// <param name="taskNum">浠诲姟缂栧彿</param> + /// <returns>杩斿洖缁撴灉闆�</returns> + //public async Task<WebResponseContent> CompleteAsync(int taskNum) + //{ + // // 鍒濆鍖栧搷搴斿唴瀹� + // WebResponseContent content = new WebResponseContent(); + + // // 鎻愬彇浠诲姟鏁版嵁 + // LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鎻愬彇浠诲姟鏁版嵁", $"浠诲姟鍙凤細{taskNum}"); + + // // 楠岃瘉浠诲姟鏄惁瀛樺湪 + // var task = await GetByTaskNum(taskNum); + // if (task == null) + // { + // return content.Error("浠诲姟涓嶅瓨鍦�"); + // } + // LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "楠岃瘉浠诲姟鏄惁瀛樺湪", JsonConvert.SerializeObject(task)); + + // // 楠岃瘉搴撳瓨鏄惁瀛樺湪 + // var stock = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); + + // // 鏍规嵁浠诲姟绫诲瀷璋冪敤鐩稿簲鐨勫畬鎴愪换鍔℃柟娉� + // switch (task.TaskType) + // { + // case (int)TaskInboundTypeEnum.Inbound: + // case (int)TaskInboundTypeEnum.InTray: + // LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟", ""); + // return await CompleteInboundTaskAsync(task); + + // case (int)TaskOutboundTypeEnum.OutTray: + // case (int)TaskOutboundTypeEnum.Outbound: + // LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍑哄簱浠诲姟", ""); + // return await CompleteStackTaskAsync(task, stock); + + // default: + // return content.Error("浠诲姟绫诲瀷涓嶅瓨鍦�"); + // } + //} + + #endregion 浠诲姟瀹屾垚 + + #region 璇锋眰浠诲姟鍏ュ簱 + /// <summary> + /// 璇锋眰鍏ュ簱 + /// </summary> + /// <param name="input">璇锋眰妯″瀷</param> + /// <returns>鍖呭惈浠诲姟淇℃伅鐨勫搷搴斿唴瀹�</returns> + public async Task<WebResponseContent> RequestInTask(RequestTaskDto input) + { + // 鍒涘缓涓�涓猈ebResponseContent瀵硅薄 + WebResponseContent content = new WebResponseContent(); + try + { + // 璋冪敤BaseDal.QueryFirstAsync鏂规硶锛屾煡璇换鍔� + var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode); + if (task != null) + { + //if (task.TaskState == (int)TaskInStatusEnum.InNew) + { + // 鍒涘缓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, + }; + return content.OK(data: taskDTO); + } + } + + // 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪�� + TrayCellsStatusDto trayCells = new TrayCellsStatusDto() + { + Software = "WMS", + TrayBarcode = input.PalletCode, + //EquipmentCode = "EQ_CWJZ01" + EquipmentCode = input.EquiCodeMOM + }; + + // 璋冪敤GetTrayCellStatusAsync鏂规硶锛岃幏鍙栨暣鐩樼數鑺� + content = await GetTrayCellStatusAsync(trayCells); + // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖content + if (!content.Status) return content; + + // 娣诲姞缁勭洏淇℃伅 + // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄 + var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); + if (result.SerialNos.Count <= 0) + return content.Error(result.MOMMessage); + + Console.WriteLine(result); + // TODO 鑾峰彇鏈湴鏂欐灞炴�т笌鏁寸洏鐢佃姱灞炴�ц幏鍙栫殑鍊艰繘琛屽姣旓紝濡傛灉涓�鑷村垯缁х画锛屽惁鍒欒繑鍥為敊璇俊鎭� + //var productions = await _productionRepository.QueryDataAsync(x => result.TrayBarcodePropertys.Select(x => x.TrayBarcodeProperty).ToList().Contains(x.TrayBarcodeProperty)); + //if (productions.Count <= 0) + // return content.Error("鏂欐灞炴�т笉瀛樺湪"); + + // 璋冪敤CreateBoxingInfo鏂规硶锛屽垱寤虹粍鐩樹俊鎭� + + var boxing = await CreateBoxingInfo(result, input.PalletCode); + if (boxing == null) return content.Error("缁勭洏澶辫触"); + + // 璋冪敤GetProcessApplyAsync鏂规硶锛岃幏鍙栧伐鑹鸿矾绾� + ProcessApplyDto process = await GetProcessApplyAsync(input, result); + + // 濡傛灉process涓簄ull锛屽垯杩斿洖content + if (process == null) return content; + + // 璋冪敤_processApplyService.GetProcessApplyAsync鏂规硶锛岃幏鍙栧伐鑹虹敵璇� + content = await _processApplyService.GetProcessApplyAsync(process); + + // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖null + if (!content.Status) return content.Error("宸ヨ壓鐢宠澶辫触"); + + //// 璋冪敤GetProcessResponseAsync鏂规硶锛岃幏鍙栧伐鑹哄搷搴� + //var processResponse = await GetProcessResponseAsync(process, input.Position); + + List<string> strings = input.Position == "1088" ? new List<string>() { "CHSC01" } : new List<string>() { "JZSC01" }; + // 璋冪敤CreateNewTask鏂规硶锛屽垱寤烘柊浠诲姟 + content = await CreateNewTask(input, strings); + if (content.Status) + { + var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); + } + } + catch (Exception err) + { + // 濡傛灉鍙戠敓寮傚父锛屽垯璋冪敤content.Error鏂规硶锛岃褰曢敊璇俊鎭紝骞惰緭鍑洪敊璇俊鎭� + content.Error(err.Message); + Console.WriteLine(err.Message); + } + + // 杩斿洖content + return content; + } + + + // 鑾峰彇宸ヨ壓鐢宠 + private async Task<ProcessApplyDto> GetProcessApplyAsync(RequestTaskDto input, ResultTrayCellsStatus content) + { + // 鍒涘缓涓�涓狿rocessApplyDto瀵硅薄锛屽苟璧嬪�� + return new ProcessApplyDto() + { + EquipmentCode = input.EquiCodeMOM, + Software = "WMS", + //WipOrderNo = result.BindCode, + SerialNos = content.SerialNos.Select(item => new SerialNos + { + SerialNo = item.SerialNo + }).ToList() + }; + } + + #endregion 璇锋眰浠诲姟鍏ュ簱 + + + + + #region 浠诲姟鐘舵�佹洿鏀� + + /// <summary> + /// 鏇存柊浠诲姟鐘舵��&鍑哄簱瑙g洏 + /// </summary> + /// <param name="taskNum"></param> + /// <param name="taskState"></param> + /// <returns></returns> + //public async Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState) + //{ + // WebResponseContent content = new WebResponseContent(); + // try + // { + // var task = await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum); + // if (task == null) + // return content.Error("鏈壘鍒颁换鍔�"); + + // if (taskState == (int)TaskOutStatusEnum.Line_OutFinish || taskState == (int)TaskOutStatusEnum.SC_OutFinish) + // { + // var taskHty = CreateHistoricalTask(task); + // await _unitOfWorkManage.UseTranAsync(async () => + // { + // var asb = await BaseDal.DeleteDataByIdAsync(task.TaskId); + // var asbHty = await _task_HtyRepository.AddDataAsync(taskHty) > 0; + // if (asb && asbHty) + // content.OK(); + // else + // throw new Exception(); + // }); + // content.OK(); + // } + // else + // { + // task.TaskState = taskState; + // var asb = await BaseDal.UpdateDataAsync(task); + // if (asb) + // content.OK(); + // else + // content.Error(); + // } + // } + // catch (Exception ex) + // { + // content.Error(ex.Message); + // } + // return content; + //} + + #endregion + + //private WebResponseContent CheckInTask() + +} \ No newline at end of file diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs index c804cb4..5fff145 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs @@ -50,7 +50,7 @@ /// </summary> /// <param name="input">璇锋眰鏁版嵁</param> /// <returns></returns> - [HttpPost, AllowAnonymous, Route("RequestTaskAsync")] + [HttpPost, AllowAnonymous, Route("RequestTask")] public async Task<WebResponseContent> RequestTaskAsync([FromBody] RequestTaskDto input) { return await Service.RequestTaskAsync(input); -- Gitblit v1.9.3