From 98cd144e4d58dbfcc09a2ffb0dbb6925519088b3 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 06 十一月 2024 14:12:56 +0800
Subject: [PATCH] 最新代码更改
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 194 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 179 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..0335a14 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,161 @@
}
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)
+ {
+ ResponeRunDto runDto = JsonConvert.DeserializeObject<ResponeRunDto>(respone);
+ process = new Dt_EquipmentProcess()
+ {
+ EquipmentName = commonStackerCrane.DeviceCode,
+ EquipmentType = commonStackerCrane.DeviceName.Substring(commonStackerCrane.DeviceCode.IndexOf("鍫嗗灈鏈�")),
+ 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"
+ };
+ 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