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