From 786c5ca17012ff3a01faf466b751bdbe70629b97 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期一, 25 八月 2025 15:25:46 +0800
Subject: [PATCH] 1

---
 代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs |   96 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 70 insertions(+), 26 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index 33541af..ae3874d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -17,6 +17,7 @@
 
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
+using System.Threading.Tasks;
 using AutoMapper;
 using Quartz;
 using WIDESEAWCS_Common.TaskEnum;
@@ -40,8 +41,9 @@
         private readonly ITaskExecuteDetailService _taskExecuteDetailService;
         private readonly IRouterService _routerService;
         private readonly IMapper _mapper;
+        private readonly ITaskCZDetailsRepository _detailsRepository;
 
-        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, ITaskCZRepository taskCZRepository)
+        public CommonConveyorLineJob(ITaskService taskService, ITaskCZDetailsRepository detailsRepository, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, ITaskCZRepository taskCZRepository)
         {
             _taskService = taskService;
             _taskExecuteDetailService = taskExecuteDetailService;
@@ -49,12 +51,10 @@
             _mapper = mapper;
             _taskRepository = taskRepository;
             _taskCZRepository = taskCZRepository;
+            _detailsRepository = detailsRepository;
         }
 
         public Task Execute(IJobExecutionContext context)
-
-
-
         {
             try
             {
@@ -68,8 +68,8 @@
                 // 瀹氫箟绾夸綋瀹炵洏鍏ュ簱璇锋眰鐨勫湴鍧�鍜屼换鍔$被鍨�
                 var requests = new Dictionary<string, string>
                 {
-                    { "DB1002.1093.0", "ZJXL-WLX002" },
-                    { "DB1002.1493.0", "FJXL-WLX002" }
+                    { "DB1002.693.0", "ZJXL-WLX002" },
+                    { "DB1002.1093.0", "FJXL-WLX002" }
                 };
 
                 // 瀹氫箟绾夸綋绌虹洏鍥炴祦璇锋眰鐨勫湴鍧�鍜屼换鍔$被鍨�
@@ -123,7 +123,7 @@
                 }
 
                 // 鏌ヨ浠诲姟绫诲瀷瀵瑰簲鐨刢zTask
-                DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType);
+                DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType && (x.TaskStatus == TaskInStatusEnum.InFinish.ToString() || x.TaskStatus == TaskInStatusEnum.Line_InExecuting.ToString()));
                 if (czTask == null)
                 {
                     ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},{taskType}浠诲姟涓嶅瓨鍦紝绋嶅悗閲嶈瘯......");
@@ -131,7 +131,7 @@
                 }
 
                 // 鍒涘缓骞舵坊鍔犳柊浠诲姟鍒颁换鍔′粨搴�
-                task = CreateTask(fromAdd, czTask.TaskEndAddress, czTask.TaskOrderNo, czTask.TaskProductCode, taskType);
+                task = CreateTask(fromAdd, czTask.TaskEndAddress, czTask.TaskOrderNo, czTask.TaskProductCode, taskType, czTask.Id);
                 _taskRepository.AddData(task);
                 ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},浠诲姟宸茬敓鎴愶紝绛夊緟鎵ц......");
             }
@@ -148,31 +148,35 @@
                 }
 
                 string fromAdd = request.Value;
-                string taskType = request.Value.Contains("ZJXL") ? "姝f瀬" : "璐熸瀬";
+                string taskType = request.Value.Contains("ZJXL") ? "姝f瀬" : "璐熸瀬"; //request.Value.Contains("ZJXL") ? "姝f瀬" :
 
                 // 鏍规嵁浠诲姟绫诲瀷纭畾璇锋眰鍦板潃
                 (string upRequest, string gmRequest, string gmState) = GetRequestAddresses(taskType);
 
                 var isUpRequest = conveyorLine.Communicator.Read<bool>(upRequest);
-                var isGMRequest = conveyorLine.Communicator.Read<bool>(gmRequest);
-                var isGMState = conveyorLine.Communicator.Read<int>(gmState);
+                var isGMRequest = conveyorLine.Communicator.Read<bool>(gmRequest);//鏆傚瓨绾胯姹�
+                var isGMState = conveyorLine.Communicator.Read<int>(gmState);//鏆傚瓨绾垮嚭鍏ュ簱绫诲瀷鍒囨崲
 
                 // 鏍规嵁鏉′欢鍒涘缓浠诲姟瀵硅薄
                 Dt_Task task = null;
                 if (isUpRequest)
                 {
-                    task = CreateTask(fromAdd, "WaitBind", "姝f瀬鐗╂祦绾�002鐨勪笂鏂欒姹�", "绌烘墭鐩�", taskType);
+                    List<Dt_Task> dt_Task = _taskRepository.QueryData(x => x.SourceAddress == fromAdd && x.TaskState == (int)TaskInStatusEnum.InPending);
+                    if (dt_Task.Count <= 0) { continue; }
+                    var tasks = dt_Task.Where(x => x.SourceAddress == fromAdd).OrderBy(t => t.CreateDate).First();
+                    tasks.TaskState = (int)TaskInStatusEnum.InNew;
+                    _taskService.UpdateData(tasks);
                 }
-                else if (isGMRequest && isGMState == 1)
-                {
-                    task = CreateTask(fromAdd, "WaitBind", "姝f瀬鐗╂祦绾�002鐨勪笂鏂欒姹�", "闅旇啘绌烘墭鐩�", taskType);
-                }
+                //else if (isGMRequest && isGMState == 1)
+                //{
+                //    task = CreateTask(fromAdd, "WaitBind", "姝f瀬鐗╂祦绾�002鐨勪笂鏂欒姹�", "闅旇啘绌烘墭鐩�", taskType);
+                //}
 
-                // 娣诲姞浠诲姟鍒颁换鍔¤〃
-                if (task != null)
-                {
-                    _taskRepository.AddData(task);
-                }
+                //// 娣诲姞浠诲姟鍒颁换鍔¤〃
+                //if (task != null)
+                //{
+                //    _taskRepository.AddData(task);
+                //}
             }
         }
 
@@ -191,8 +195,47 @@
         }
 
         // 杈呭姪鏂规硶锛氬垱寤轰换鍔″璞�
-        private Dt_Task CreateTask(string currentAddress, string targetAddress, string remark, string palletCode, string taskType)
+        private Dt_Task CreateTask(string currentAddress, string targetAddress, string remark, string palletCode, string taskType, int czTaskID = 0)
         {
+            if (targetAddress != "WaitBind")
+            {
+                var details = _detailsRepository.QueryData(x => x.TaskEndAddress == targetAddress).OrderBy(x => x.CreateDate).Take(2).ToList();
+                foreach (var item in details)
+                {
+                    var taskCZ = _taskCZRepository.QueryFirst(x => x.TaskTaskID == item.TaskTaskID);
+                    if (taskCZ.TaskType.Contains("姝f瀬"))
+                    {
+                        taskCZ.TaskZJFinishNumber += 1;
+                        _detailsRepository.DeleteData(item);
+                    }
+                    else
+                    {
+                        taskCZ.TaskFJFinishNumber += 1;
+                        _detailsRepository.DeleteData(item);
+                    }
+                    if (taskCZ.TaskZJFinishNumber == taskCZ.TaskNumber || taskCZ.TaskFJFinishNumber == taskCZ.TaskNumber)
+                    {
+                        _taskCZRepository.DeleteData(taskCZ);
+
+                    }
+
+                    var isTrue = _taskCZRepository.UpdateData(taskCZ);
+                }
+            }
+            Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == currentAddress);
+            if (dt_Task != null)
+            {
+                return null;
+            }
+            int type = 0;
+            if (targetAddress.Contains("ZC"))
+            {
+                type = 2;
+            }
+            else
+            {
+                type = 1;
+            }
             return new Dt_Task
             {
                 TaskNum = _taskService.GetTaskNum(),
@@ -201,15 +244,16 @@
                 CurrentAddress = currentAddress,
                 SourceAddress = currentAddress,
                 TaskState = targetAddress != "WaitBind" ? (int)TaskInStatusEnum.InNew : (int)TaskInStatusEnum.InPending,
-                TaskType = (int)TaskOutboundTypeEnum.Outbound,
+                TaskType = type,
                 Grade = 1,
                 PalletCode = palletCode,
                 TargetAddress = targetAddress,
                 NextAddress = targetAddress,
                 Barcode = "",
-                Roadway = $"{taskType}AGV",
-                WMSId = 0,
-                Remark = remark
+                Roadway = "AGV",
+                WMSId = czTaskID > 0 ? czTaskID : 0,
+                Remark = remark,
+                Floor = 3
             };
         }
 

--
Gitblit v1.9.3