From 34bafb439a438c0f4e85ef7006dac590140d155c Mon Sep 17 00:00:00 2001 From: wanshenmean <cathay_xy@163.com> Date: 星期五, 01 十一月 2024 14:50:15 +0800 Subject: [PATCH] 联调程序变动 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 185 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 171 insertions(+), 14 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..00950ad 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;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 @@ -172,10 +175,10 @@ if (device != null) { CommonConveyorLine conveyorLine = (CommonConveyorLine)device; - if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 - { + //if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 + //{ return task; - } + //} } else { @@ -203,6 +206,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 +296,158 @@ } return stackerCraneTaskCommand; } + + /// <summary> + /// 璁惧涓嶮OM绯荤粺瀵规帴锛岃澶囦笂绾� + /// </summary> + /// <param name="commonStackerCrane"></param> + public async void EqptRun(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/EqptRun", dto.ToJsonString()); + if (respone != null) + { + var result = JsonConvert.DeserializeObject<ResponseEqptRunDto>(respone); + if (result != null && result.Success) + { + var process = _processRepository.QueryData(x => x.EquipmentName == commonStackerCrane.DeviceName).FirstOrDefault(); + if (process == null) + { + process = new Dt_EquipmentProcess() + { + EquipmentName = commonStackerCrane.DeviceName, + EquipmentType = commonStackerCrane.DeviceCode.Substring(commonStackerCrane.DeviceCode.IndexOf("SC")), + 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" + }; + await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", requestAlert.ToJsonString()); + } + RequestEqptStatusDto requestEqptStatus = new RequestEqptStatusDto() + { + EmployeeNo = "T00001", + EquipmentCode = commonStackerCrane.DeviceCode, + RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), + SessionId = Guid.NewGuid().ToString(), + Software = commonStackerCrane.DeviceName, + ChangeTime = DateTime.Now.ToString(), + Description = commonStackerCrane.StackerCraneStatusDes, + LocationID = "NA", + ReasonCode = "123", + StatusCode = code + }; + var respone = await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptStatus", requestEqptStatus.ToJsonString()); + } } -} +} \ No newline at end of file -- Gitblit v1.9.3