From 1f361850d35ba47225951efbc49d592eea685cf8 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期三, 16 四月 2025 17:35:53 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineStationJob.cs |   78 +++++++++++++++++++++++++--------------
 1 files changed, 50 insertions(+), 28 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineStationJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineStationJob.cs"
index a8b0b46..320385a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineStationJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineStationJob.cs"
@@ -23,8 +23,11 @@
 using System.Text;
 using System.Text.RegularExpressions;
 using WIDESEA_Common.Log;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO.BasicInfo;
 using WIDESEAWCS_IBasicInfoService;
+using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_Model.Models.System;
@@ -37,51 +40,70 @@
     [DisallowConcurrentExecution]
     public class CommonConveyorLineStationJob : JobBase, IJob
     {
-        private readonly ITaskService _taskService;
-        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
-        private readonly IRouterService _routerService;
-        private readonly IOrderDetailsService _OrderDetailsService;
         private readonly IMapper _mapper;
 
-        public CommonConveyorLineStationJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IOrderDetailsService orderDetails, IMapper mapper)
+        private readonly ITaskRepository _taskRepository;
+
+        public CommonConveyorLineStationJob(IMapper mapper, ITaskRepository taskRepository)
         {
-            _taskService = taskService;
-            _taskExecuteDetailService = taskExecuteDetailService;
-            _routerService = routerService;
-            _OrderDetailsService = orderDetails;
             _mapper = mapper;
+            _taskRepository = taskRepository;
         }
 
-        static string barcode = string.Empty; //鏉$爜
 
         public Task Execute(IJobExecutionContext context)
         {
-            try
+            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+            if (flag && value != null && value is OtherDevice)
             {
-                bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
-                if (flag && value != null && value is OtherDevice)
+                OtherDevice otherDevice = (OtherDevice)value;
+                try
                 {
-                    OtherDevice otherDevice = (OtherDevice)value;
-
-                    bool request = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.PLCStationRequest);   //鐢宠
-                    bool response = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.PLCStationResponse);    //搴旂瓟
-
-                    bool wcsResponse = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.WCSStationResponse);    //搴旂瓟
-
-                    if (request && !response && !wcsResponse)
+                    List<string> deviceChildCodes = otherDevice.DeviceProDTOs.GroupBy(x => x.DeviceChildCode).Select(x => x.Key).ToList();
+                    for (int i = 0; i < deviceChildCodes.Count; i++)
                     {
+                        bool request = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.PLCStationRequest, deviceChildCodes[i]);   //鐢宠
+                        bool response = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.PLCStationResponse, deviceChildCodes[i]);    //搴旂瓟
 
+                        bool wcsResponse = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.WCSStationResponse, deviceChildCodes[i]);    //搴旂瓟
+
+                        if (request && !response && !wcsResponse)
+                        {
+                            int taskNum = otherDevice.GetValue<ConveyorLineStationDBName, int>(ConveyorLineStationDBName.PLCStationTaskNum, deviceChildCodes[i]);
+                            if (taskNum > 0)
+                            {
+                                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+                                if (task != null)
+                                {
+                                    task.TaskState = TaskStatusEnum.Gantry_New.ObjToInt();
+                                    _taskRepository.UpdateData(task);
+                                    otherDevice.SetValue(ConveyorLineStationDBName.WCSStationTarget, 0, deviceChildCodes[i]);
+                                    otherDevice.SetValue(ConveyorLineStationDBName.WCSStationResponse, true, deviceChildCodes[i]);
+                                }
+                                else
+                                {
+                                    otherDevice.SetValue(ConveyorLineStationDBName.WCSStationTarget, 8, deviceChildCodes[i]);
+                                    otherDevice.SetValue(ConveyorLineStationDBName.WCSStationResponse, true, deviceChildCodes[i]);
+                                }
+                            }
+                        }
+                        else
+                        {
+                            if (wcsResponse && !request)
+                                otherDevice.SetValue(ConveyorLineStationDBName.WCSStationResponse, false, deviceChildCodes[i]);  //娓呴櫎鍝嶅簲
+                        }
                     }
-                    else
-                    {
-                        if (wcsResponse)
-                            otherDevice.SetValue(ConveyorLineStationDBName.WCSStationResponse, false);  //娓呴櫎鍝嶅簲
-                    }
+
+
+                }
+                catch (Exception ex)
+                {
+                    WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", ex.Message, ex);
                 }
             }
-            catch (Exception ex)
+            else
             {
-                WriteError(nameof(CommonConveyorLineJob), ex.ToString(), ex);
+                WriteError(nameof(CommonConveyorLineStationJob), "鍙傛暟閿欒,鏈紶閫掕澶囧弬鏁版垨璁惧绫诲瀷閿欒");
             }
             return Task.CompletedTask;
         }

--
Gitblit v1.9.3