From 2ecf5dfa71bf0c553c30ced6f68a81fa3be6a93f Mon Sep 17 00:00:00 2001 From: xiaoyang <xiaoyang@hnkhzn.com> Date: 星期五, 08 十一月 2024 20:03:58 +0800 Subject: [PATCH] 11.08-1 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 198 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 183 insertions(+), 15 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs index 6d107ed..fea5ff2 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs @@ -1,15 +1,14 @@ -锘縰sing Microsoft.AspNetCore.Components.Routing; +锘縰sing HslCommunication; +using Newtonsoft.Json; using Quartz; -using System; -using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; -using WIDESEAWCS_Core.Enums; +using WIDESEAWCS_Core.Helper; +using WIDESEAWCS_DTO.MOM; +using WIDESEAWCS_IProcessRepository; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; +using WIDESEAWCS_Model; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.DeviceBase; @@ -27,20 +26,21 @@ private readonly ITaskExecuteDetailService _taskExecuteDetailService; private readonly ITaskRepository _taskRepository; private readonly IRouterService _routerService; + private readonly IProcessRepository _processRepository; - public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService) + public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository) { _taskService = taskService; _taskExecuteDetailService = taskExecuteDetailService; _taskRepository = taskRepository; _routerService = routerService; + _processRepository = processRepository; } public Task Execute(IJobExecutionContext context) { try { - // speStackerCrane.GetStackerCraneStatus<StackerCraneAutoStatus>(); // speStackerCrane.GetStackerCraneStatus<StackerCraneWorkStatus>(); // speStackerCrane.GetStackerCraneStatus<StackerCraneStatus>(); @@ -48,7 +48,10 @@ CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); if (commonStackerCrane != null) { - Console.Out.WriteLine(commonStackerCrane.DeviceName); + //EqptRun(commonStackerCrane); + //EqptAlive(commonStackerCrane); + //EqptStatus(commonStackerCrane); + //Console.Out.WriteLine(commonStackerCrane.DeviceName); if (!commonStackerCrane.IsEventSubscribed) { commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 @@ -154,6 +157,10 @@ task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); } } + else if (task == null) + { + task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); + } return task; } @@ -172,10 +179,10 @@ if (device != null) { CommonConveyorLine conveyorLine = (CommonConveyorLine)device; - if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 - { - return task; - } + //if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 + //{ + return task; + //} } else { @@ -203,6 +210,7 @@ stackerCraneTaskCommand.TaskNum = task.TaskNum; stackerCraneTaskCommand.WorkType = 1; stackerCraneTaskCommand.TrayType = 0; + stackerCraneTaskCommand.StartCommand = 1; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔� { List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway); @@ -292,5 +300,165 @@ } return stackerCraneTaskCommand; } + + /// <summary> + /// 璁惧涓嶮OM绯荤粺瀵规帴锛岃澶囦笂绾� + /// </summary> + /// <param name="commonStackerCrane"></param> + public async void EqptRun(CommonStackerCrane commonStackerCrane) + { + if (!commonStackerCrane.StackerOnline) + { + RequestEqptRunDto request = new RequestEqptRunDto() + { + EmployeeNo = "T00001", + EquipmentCode = commonStackerCrane.DeviceCode, + RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), + SessionId = Guid.NewGuid().ToString(), + Software = commonStackerCrane.DeviceName, + Password = "12345", + EquipmentModel = "1" + }; + var respone = await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptRun", request.ToJsonString()); + if (respone != null) + { + var result = JsonConvert.DeserializeObject<ResponseEqptRunDto>(respone); + if (result != null && result.Success) + { + var process = _processRepository.QueryData(x => x.EquipmentName == commonStackerCrane.DeviceCode).FirstOrDefault(); + if (process == null) + { + ResponeRunDto runDto = JsonConvert.DeserializeObject<ResponeRunDto>(respone); + process = new Dt_EquipmentProcess() + { + EquipmentName = commonStackerCrane.DeviceCode, + EquipmentType = new string(commonStackerCrane.DeviceName.TakeWhile(c => !char.IsDigit(c)).ToArray()), + WipOrderNo = runDto.WipOrderNo, + ProductDesc = runDto.ProductDesc, + ProcessValue = JsonConvert.SerializeObject(result) + }; + var isResult = await _processRepository.AddDataAsync(process) > 0; + } + else + { + process.ProcessValue = JsonConvert.SerializeObject(result); + var isResult = await _processRepository.UpdateDataAsync(process); + } + commonStackerCrane.StackerOnline = true; + } + } + } + } + + /// <summary> + /// 璁惧蹇冭烦 + /// </summary> + /// <param name="commonStackerCrane"></param> + public async void EqptAlive(CommonStackerCrane commonStackerCrane) + { + if (commonStackerCrane.StackerOnline) + { + BasicDto dto = new BasicDto + { + EmployeeNo = "T00001", + EquipmentCode = commonStackerCrane.DeviceCode, + RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), + SessionId = Guid.NewGuid().ToString(), + Software = commonStackerCrane.DeviceName, + }; + var respone = await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", dto.ToJsonString()); + if (respone != null) + { + var result = JsonConvert.DeserializeObject<ResponseEqptAliveDto>(respone); + if (result != null && result.Success) + { + if (result.KeyFlag == "99") + commonStackerCrane.StackerOnline = true; + else if (result.KeyFlag == "98") + commonStackerCrane.StackerOnline = false; + } + } + } + } + + /// <summary> + /// 璁惧鐘舵�� + /// </summary> + /// <param name="commonStackerCrane"></param> + public async void EqptStatus(CommonStackerCrane commonStackerCrane) + { + string code = string.Empty; + RequestAlertDto requestAlert = new RequestAlertDto() + { + EmployeeNo = "T00001", + EquipmentCode = commonStackerCrane.DeviceCode, + RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), + SessionId = Guid.NewGuid().ToString(), + Software = commonStackerCrane.DeviceName, + AlertInfo = new List<AlertInfoDto>() + }; + switch (commonStackerCrane.Status) + { + case DeviceStatus.Idle: + code = "Waiting"; + break; + + case DeviceStatus.Working: + code = "Running"; + break; + + case DeviceStatus.Fault: + code = "Alerting"; + var alert = new AlertInfoDto() + { + AlertCode = "1001", + AlertDescription = commonStackerCrane.StackerCraneStatusDes, + AlertReset = "1" + }; + requestAlert.AlertInfo.Add(alert); + + await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", requestAlert.ToJsonString()); + + break; + + case DeviceStatus.Unkonw: + code = "Down"; + break; + + case DeviceStatus.Offline: + code = "Maintenance"; + break; + + default: + break; + } + if (code != "Alerting") + { + requestAlert.AlertInfo = new List<AlertInfoDto>(); + var alert = new AlertInfoDto() + { + AlertCode = "1001", + AlertDescription = commonStackerCrane.StackerCraneStatusDes, + AlertReset = "0" + }; + var S= await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", requestAlert.ToJsonString()); + WriteInfo("EqptAlive", S); + } + RequestEqptStatusDto requestEqptStatus = new RequestEqptStatusDto() + { + EmployeeNo = "T00001", + EquipmentCode = "ECH001-B", + RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), + SessionId = Guid.NewGuid().ToString(), + Software = commonStackerCrane.DeviceName, + ChangeTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), + Description = commonStackerCrane.StackerCraneStatusDes, + LocationID = "NA", + ReasonCode = "123", + StatusCode = code + }; + var respone = await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptStatus", requestEqptStatus.ToJsonString()); + WriteInfo("EqptStatus", respone); + } } -} +} \ No newline at end of file -- Gitblit v1.9.3