From 1f121db427cc068eee97b699c410d1b5f320e867 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 06 九月 2025 14:26:27 +0800
Subject: [PATCH] 最新代码提交

---
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs |  153 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 134 insertions(+), 19 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 8110c69..933b3d6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -14,21 +14,10 @@
  * 
  *----------------------------------------------------------------*/
 #endregion << 鐗� 鏈� 娉� 閲� >>
-
 using AutoMapper;
-using HslCommunication.Enthernet;
 using Newtonsoft.Json;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
 using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
 using WIDESEA_DTO.Agv;
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.APIEnum;
@@ -37,18 +26,15 @@
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_Core.Helper;
-using WIDESEAWCS_DTO.BasicInfo;
-using WIDESEAWCS_DTO.System;
+using WIDESEAWCS_Core.LogHelper;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_TaskInfoRepository;
 using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
 namespace WIDESEAWCS_TaskInfoService
@@ -208,10 +194,6 @@
                                 task.CurrentAddress = router.StartPosi;
                                 task.NextAddress = router.NextPosi;
                                 task.DeviceCode = router.ChildPosiDeviceCode;
-                                if (task.TaskType == TaskTypeEnum.ProductMD.ObjToInt())
-                                {
-                                    task.TaskState = TaskStatusEnum.Line_Executing.ObjToInt();
-                                }
                             }
                             else //鍑哄簱
                             {
@@ -346,7 +328,31 @@
             }
             return content;
         }
+        // <summary>
+        /// 鍏ュ簱鐢宠
+        /// </summary>
+        public WebResponseContent YLPurchaseBoxing(string palletCode)
+        {
+            WebResponseContent? content = new WebResponseContent();
+            try
+            {
+                string address = AppSettings.Get("WMSApiAddress");
+                if (string.IsNullOrEmpty(address))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
+                }
+                string responseStr = HttpHelper.Get($"{address}/api/Task/YLPurchaseBoxing?palletCode={palletCode}");
+                WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
 
+                content = responseContent;
+
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
         // <summary>
         /// 璇锋眰鎴愬搧鍏ュ簱宸烽亾
         /// </summary>
@@ -878,5 +884,114 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+
+        public Dt_Task QueryBarCodeAGVFinishTask(int TaskNum, string currentAddress)
+        {
+            return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.AGV_Finish && x.NextAddress == currentAddress && x.TaskNum == TaskNum, TaskOrderBy);
+        }
+
+        public Dt_Task QueryExecutingTaskByBarcode(int TaskNum, string nextAddress)
+        {
+            return BaseDal.QueryFirst(x => x.TaskNum == TaskNum && x.NextAddress == nextAddress && x.TaskState == (int)TaskStatusEnum.Line_Executing, TaskOrderBy);
+        }
+
+        public Dt_Task QueryLineExecuteTaskByBarcode(int TaskNum, string nextAddress)
+        {
+            return BaseDal.QueryFirst(x => x.TaskNum == TaskNum && x.CurrentAddress == nextAddress && x.TaskState == (int)TaskStatusEnum.Line_Execute, TaskOrderBy);
+        }
+
+        public WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task, Dt_StationManger stationManger = null)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                TaskStatusEnum nextStatus = new TaskStatusEnum();
+                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                {
+                    if (task.TaskState == (int)TaskStatusEnum.SC_Executing)
+                    {
+                        task.CurrentAddress = task.NextAddress;
+                        task.NextAddress = task.TargetAddress;
+                        task.TaskState = (int)TaskStatusEnum.Line_Executing;
+                        nextStatus = TaskStatusEnum.Line_Executing;
+                    }
+                    else if (task.TaskState == (int)TaskStatusEnum.SC_Execute)
+                    {
+                        task.TaskState = (int)TaskStatusEnum.SC_Executing;
+                        nextStatus = TaskStatusEnum.SC_Executing;
+                    }
+                }
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                {
+                    if (task.TaskState == (int)TaskStatusEnum.Line_Executing)
+                    {
+                        #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                        //string? local = RequestAssignLocation(task.TaskNum, task.Roadway);
+                        string? local = "SC05_YLDual-002-090-009-01";
+                        if (!string.IsNullOrEmpty(local))
+                        {
+                            task.CurrentAddress = stationManger.StackerCraneStationCode;
+                            task.TargetAddress = local;
+                            task.NextAddress = local;
+                            task.DeviceCode = stationManger.StackerCraneCode;
+                            task.TaskState = (int)TaskStatusEnum.SC_Execute;
+                            nextStatus = TaskStatusEnum.SC_Execute;
+                            content.OK($"鑾峰彇璐т綅鍙穥local}");
+                        }
+                        else
+                        {
+                            return content.Error($"璇锋眰鍏ュ簱璐т綅澶辫触");
+                        }
+                        #endregion 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                    }
+                    else if (task.TaskState == (int)TaskStatusEnum.AGV_Finish)
+                    {
+                        //content = AssignYLRoadwayNo(task.PalletCode);
+                        content.OK(data: "SC05_YLDual");
+                        if (!content.Status)
+                        {
+                            return content.Error($"璇锋眰鍏ュ簱澶辫触锛歿content.Message}");
+                        }
+                        string roadWay = content.Data.ToString();
+
+                        List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.CurrentAddress == x.StartPosi && x.ChildPosiDeviceCode == roadWay);
+                        Dt_Router router = routers.FirstOrDefault();
+                        if (router == null)
+                        {
+                            return content.Error($"浠诲姟鍙�:{task.TaskNum}鏈壘鍒拌矾鐢遍厤缃俊鎭�");
+                        }
+
+                        task.Roadway = roadWay;
+                        task.NextAddress = router.NextPosi;
+                        task.TaskState = (int)TaskStatusEnum.Line_Execute;
+                        nextStatus = TaskStatusEnum.Line_Execute;
+                    }
+                    else if (task.TaskState == (int)TaskStatusEnum.Line_Execute)
+                    {
+                        task.TaskState = (int)TaskStatusEnum.Line_Executing;
+                        nextStatus = TaskStatusEnum.Line_Executing;
+                    }
+                    else if (task.TaskState == (int)TaskStatusEnum.SC_Execute)
+                    {
+                        task.TaskState = (int)TaskStatusEnum.SC_Executing;
+                        nextStatus = TaskStatusEnum.SC_Executing;
+                    }
+                }
+                else
+                {
+                    throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+                }
+                task.ModifyDate = DateTime.Now;
+                task.Modifier = "System";
+                BaseDal.UpdateData(task);
+                //UpdateTask(task, nextStatus);
+                content = WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            return content;
+        }
     }
 }

--
Gitblit v1.9.3