From 29f20b28392d212c04c0c40a512894f8622cfa53 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 16 四月 2025 09:32:01 +0800
Subject: [PATCH] 合并
---
CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs | 100 ++++++++++++++++++++++++++------------------------
1 files changed, 52 insertions(+), 48 deletions(-)
diff --git a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs
index 150abc6..aea5799 100644
--- a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs
+++ b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs
@@ -24,6 +24,8 @@
using HslCommunication;
using Microsoft.CodeAnalysis;
using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
using Quartz;
using SqlSugar;
using System.Reflection;
@@ -136,7 +138,7 @@
if (childDeviceCode == "3464" || childDeviceCode == "3460" || childDeviceCode == "3456" )
{
- Platform platform = _platFormRepository.QueryFirst(x => x.PLCCode == conveyorLine.DeviceCode && x.PlatCode == childDeviceCode && x.Status == "Active");
+ Platform platform = _platFormRepository.QueryFirst(x => x.DeviceCode == conveyorLine.DeviceCode && x.PlatCode == childDeviceCode && x.Status == "Active");
if (platform != null)
{
if (command.HasPallet != 1)
@@ -373,59 +375,61 @@
/// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
public void ConveyorLineOutFinish(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode)
{
- var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode);
- if (task != null)
+ try
{
- WebResponseContent content = new WebResponseContent();
- ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task);
- taskCommand.InteractiveSignal = command.InteractiveSignal;
- Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode);
- if (task.PalletCode != command.ConveyorLineBarcode)
+ var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode);
+ if (task != null)
{
- //var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity;
- //taskCommand.ConveyorLineTargetAddress = (short)NGAddress;
- taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationNGChildCode);
- }
- else
- {
- //Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode);
- taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationLocation);
- }
-
- if ((stationManager.stationPLC == "1007" && stationManager.stationArea == "Cache") || task.TaskType == (int)TaskOutboundTypeEnum.OutTray) //鏇存柊鍦ㄩ�旀暟鎹�
- {
- dt_needBarcode needBarcode = _needBarcodeRepository.QueryFirst(x => x.productLine == stationManager.productLine && x.toArea == stationManager.stationChildCode);
-
- if (needBarcode != null)
+ WebResponseContent content = new WebResponseContent();
+ ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task);
+ taskCommand.InteractiveSignal = command.InteractiveSignal;
+ Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode);
+ if (task.PalletCode != command.ConveyorLineBarcode)
{
- needBarcode.inLineNum--;
- _needBarcodeRepository.UpdateData(needBarcode);
+ //var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity;
+ //taskCommand.ConveyorLineTargetAddress = (short)NGAddress;
+ taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationNGChildCode);
}
+ else
+ {
+ //Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode);
+ taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationLocation);
+ }
+
+ if (stationManager.stationPLC == "1007" && stationManager.stationArea == "Cache") //鏇存柊鍦ㄩ�旀暟鎹�
+ {
+ dt_needBarcode needBarcode = _needBarcodeRepository.QueryFirst(x => x.productLine == stationManager.productLine && x.toArea == stationManager.stationChildCode);
+
+ if (needBarcode != null)
+ {
+ if (needBarcode.inLineNum == 0 || needBarcode.inLineNum > 0)
+ {
+ needBarcode.inLineNum = 0;
+ }
+ else
+ {
+ needBarcode.inLineNum--;
+ }
+ _needBarcodeRepository.UpdateData(needBarcode);
+ }
+ }
+ content = _taskService.UpdateTaskStatusToNext(task);
+ var proAddress = conveyorLine.DeviceProDTOs
+ .FirstOrDefault(x => x.DeviceChildCode == childDeviceCode && x.DeviceProParamName == ConveyorLineDBName_After.InteractiveSignal.ToString())
+ ?.DeviceProAddress;
+ string address = proAddress.Contains(".0") ? proAddress : proAddress + ".0";
+ conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTaskNum, taskCommand.ConveyorLineTaskNum, childDeviceCode);
+ conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, taskCommand.ConveyorLineTargetAddress, childDeviceCode);
+ conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, taskCommand.ConveyorLineBarcode, childDeviceCode);
+ conveyorLine.Communicator.Write(address, 1);
+ //conveyorLine.SetValue(ConveyorLineDBName_After.InteractiveSignal, taskCommand.InteractiveSignal, childDeviceCode);
+ //conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode);
}
-
- conveyorLine.SendCommand(taskCommand, childDeviceCode);
- conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode);
- //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- content = _taskService.UpdateTaskStatusToNext(task);
}
- //else
- //{
- // Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode && x.stationArea == "Cache");
- // ////鏌ヨ瀵瑰簲浜х嚎鐨勫湪閫旀暟鎹�
- // //dt_needBarcode needBarcode = _needBarcodeRepository.QueryFirst(x => x.productLine == station.productLine);
-
- // //needBarcode.inLineNum = _taskRepository.QueryData(x => x.TargetAddress == station.stationChildCode).Count();
-
- // //鑻ュ湪閫旀暟閲忓皬浜庣洰鏍囦綅缃殑缂撳瓨鏁伴噺 鍒欏鎵惧搴斿父娓╁簱瀛樹腑甯告俯3宸ュ簭鐨勫彲鍑哄簱鏁版嵁 骞跺缓绔嬪嚭搴撲换鍔�
- // //if (needBarcode.inLineNum <= needBarcode.cacheNum)
- // //{
- // //}
- // //濡傛灉鍖呰缂撳瓨绔欏彴瀛樺湪 涓旀湁璇锋眰 鍒�
- // if (stationManager != null)
- // {
- // _taskService.RequestOutTaskToBZAsync(stationManager);
- // }
- //}
+ catch (Exception ex)
+ {
+ WriteInfo($"{conveyorLine.DeviceName}杈撻�佺嚎鍑哄簱瀹屾垚", $"寮傚父淇℃伅銆恵JsonConvert.SerializeObject(ex.Message)}銆�,瀛愯妭鐐广�恵childDeviceCode}銆戞墭鐩樺彿锛氥�恵command.ConveyorLineBarcode}銆�");
+ }
}
/// <summary>
--
Gitblit v1.9.3