From 1caea0fdc7ed1788d854a2aba8853984b4494e01 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 24 六月 2025 09:56:28 +0800
Subject: [PATCH] 代码提交

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs |  238 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 186 insertions(+), 52 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs"
index 82233b1..2d0d56f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs"
@@ -19,6 +19,7 @@
 using WIDESEA_Core.Enums;
 using System.Diagnostics;
 using WIDESEA_Core.Log;
+using FastReport.DevComponents.DotNetBar;
 namespace WIDESEA_Tasks
 {
     public partial class AGVjob
@@ -30,65 +31,139 @@
         {
             try
             {
-                var agvtask = _taskService.GetTasks();
-                if (agvtask != null)
-                {
-                    AGVTaskPend pend = new AGVTaskPend();
-                    //pend.requestType = pend.requestType;
-                    //pend.accessId = pend.accessId;
-                    //pend.requestId = pend.requestId;
-                    Pend data = new Pend();
-                    TaskPend taskPend = new TaskPend();
-                    {
-                        taskPend.taskNo = agvtask.TaskNum.ToString();
-                        taskPend.taskType = "MV";
-                        DateTime date = DateTime.Now;
-                        taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss");
-                        taskPend.taskState = "00";
-                        taskPend.priority = "1";
-                        taskPend.wareCode = "W01";
-                        taskPend.docNo = "";
-                        taskPend.sku = "";
-                        taskPend.uom = "";
-                        taskPend.qty = 0;
-                        taskPend.trace = "";
-                        taskPend.fmLoc = agvtask.SourceAddress.ToString();
-                        taskPend.toLoc = agvtask.TargetAddress.ToString();
-                        taskPend.udf01 = "";
-                        taskPend.udf02 = "";
-                    }
-                    data.detail.Add(taskPend);
-                    pend.data = data;
 
-                    var time = new DateTimeOffset(DateTime.Now);
-                    long timestampStr = time.ToUnixTimeMilliseconds();//鏃堕棿鎴�
-                    string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey;
-                    string appkeyEcrypt = GetMD5Hex(appkeystr);
-                    string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "&timestamp=" + timestampStr + "&uniquestr=" + timestampStr;
-                    string signstr = GetMD5Hex(origin);
-                    Dictionary<string, string> headers = new Dictionary<string, string>()
+                List<Dt_Task> agvtasks = _taskService.GetTasks();
+                var workshop1Tasks = agvtasks.Where(t => t.SourceAddress.Contains("PVC鎴愬搧"))
+                    .OrderBy(t => t.CreateDate)
+                    .ToList();
+
+                var workshop2Tasks = agvtasks.Where(t => t.SourceAddress.Contains("纭呯兎鎴愬搧"))
+                    .OrderBy(t => t.CreateDate)
+                    .ToList();
+
+                var workshop3Tasks = agvtasks.Where(t => !t.SourceAddress.Contains("鎴愬搧") || t.SourceAddress.Contains("鍗婃垚鍝�"))
+                    .OrderBy(t => t.CreateDate)
+                    .ToList();
+                int maxCount = Math.Max(workshop1Tasks.Count, workshop2Tasks.Count);
+                for (int i = 0; i < maxCount; i++)
+                {
+                    if (i < workshop1Tasks.Count)
                     {
-                        {"appkey",AGVopenApi.appkey },
-                        {"timestamp",timestampStr.ToString() },
-                        {"sign",signstr }
-                    };
-                    string posy = JsonConvert.SerializeObject(pend);
-                    var respone = HttpHelper.Post(url, posy, headers: headers);
-                    var res = JsonConvert.DeserializeObject<WebResponseContent>(respone);
-                    if (res.Code == 200)
+                        ProcessTask(workshop1Tasks[i]);
+                    }
+
+                    if (i < workshop2Tasks.Count)
                     {
-                        agvtask.Dispatchertime = DateTime.Now;
-                        agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt();
-                        _taskService.UpdateData(agvtask);
-                        Thread.Sleep(1000);
-                        WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂").Write("浠诲姟鍙凤細" + agvtask.TaskNum, "鏃犱汉鍙夎溅浠诲姟涓嬪彂");
+                        ProcessTask(workshop2Tasks[i]);
+                    }
+                }
+                foreach (var task in workshop3Tasks)
+                {
+                    ProcessTask(task);
+                }
+                void ProcessTask(Dt_Task agvtask)
+                {
+                    //foreach (Dt_Task agvtask in agvtasks)
+                    //{
+                    bool text = true;
+                    bool text1 = true;
+                    bool text2 = true;
+                    bool text3 = true;
+                    Thread.Sleep(500);
+                    Dt_CachePoint CachePointSO = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.SourceAddress);//鏌ヨ璧风偣
+                    Dt_CachePoint CachePoint = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.TargetAddress && x.PointCode.Contains("鎴愬搧搴�"));//|| x.PointCode.Contains("鍘熸潗鏂欏簱")) && x.Remark != null 
+
+                    Dt_CachePoint dt_CachePoint = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.TargetAddress && x.Remark != null);//鏌ヨ缁堢偣
+                    Dt_CachePoint CachePointYCl = _cachePointRepository.QueryFirst(x => x.PointCode == agvtask.SourceAddress && x.Remark != null && x.PointCode.Contains("鍘熸潗鏂欏簱"));
+                    if (CachePoint != null && CachePointSO != null)
+                    {
+                        var pointnames = _cachePointRepository.QueryData(x => x.Remark == CachePoint.Remark && x.Depth != 0).ToList();
+                        foreach (var item in pointnames)
+                        {
+                            var a = CachePoint.Depth.ObjToInt();
+                            var b = item.Depth.ObjToInt();
+                            if (a > b)
+                            {
+                                Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.TargetAddress == item.PointCode);
+                                if (dt_Task != null)
+                                {
+                                    text = false;
+                                    continue;
+                                }
+                            }
+                            if (a < b)
+                            {
+                                if (item.PointStatus == LocationStatusEnum.InStock.ObjToInt())
+                                {
+                                    text = false;
+                                }
+                            }
+                        }
+                        if (CachePointSO.Remark != null)
+                        {
+                            var pointname = _cachePointRepository.QueryData(x => x.Remark == CachePointSO.Remark && x.Depth != 0).ToList();
+                            foreach (var item1 in pointname)
+                            {
+                                var c = CachePointSO.Depth.ObjToInt();
+                                var d = item1.Depth.ObjToInt();
+                                if (c > d)
+                                {
+                                    Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == item1.PointCode);
+                                    if (dt_Task != null)
+                                    {
+                                        text1 = false;
+                                        continue;
+                                    }
+                                }
+                            }
+                        }
+                        if (text == true && text1 == true)
+                        {
+                            AGVTask(agvtask);
+                        }
+                    }
+                    else if (CachePointYCl != null && dt_CachePoint != null)
+                    {
+                        var pointnames = _cachePointRepository.QueryData(x => x.Remark == CachePointYCl.Remark).ToList();
+                        foreach (var item in pointnames)
+                        {
+                            var a = CachePointYCl.Depth.ObjToInt();
+                            var b = item.Depth.ObjToInt();
+                            if (a > b)
+                            {
+                                Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == item.PointCode);
+                                if (dt_Task != null)
+                                {
+                                    text2 = false;
+                                    continue;
+                                }
+                            }
+                        }
+                        var pointname = _cachePointRepository.QueryData(x => x.Remark == dt_CachePoint.Remark).ToList();
+                        foreach (var item1 in pointname)
+                        {
+                            var c = dt_CachePoint.Depth.ObjToInt();
+                            var d = item1.Depth.ObjToInt();
+                            if (c > d)
+                            {
+                                Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.TargetAddress == item1.PointCode);
+                                if (dt_Task != null)
+                                {
+                                    text3 = false;
+                                    continue;
+                                }
+                            }
+                        }
+                        if (text2 == true && text3 == true)
+                        {
+                            AGVTask(agvtask);
+                        }
                     }
                     else
                     {
-                        //_unitOfWorkManage.RollbackTran();
-                        content = WebResponseContent.Instance.Error($"{res.Message}");
-                        WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.Message, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触");
+                        AGVTask(agvtask);
                     }
+                    //}
                 }
             }
             catch (Exception ex)
@@ -100,6 +175,65 @@
 
         }
 
+        public void AGVTask(Dt_Task agvtask)
+        {
+            AGVTaskPend pend = new AGVTaskPend();
+            //pend.requestType = pend.requestType;
+            //pend.accessId = pend.accessId;
+            //pend.requestId = pend.requestId;
+            Pend data = new Pend();
+            TaskPend taskPend = new TaskPend();
+            {
+                taskPend.taskNo = agvtask.TaskNum.ToString();
+                taskPend.taskType = "MV";
+                DateTime date = DateTime.Now;
+                taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss");
+                taskPend.taskState = "00";
+                taskPend.priority = "1";
+                taskPend.wareCode = "W01";
+                taskPend.docNo = "";
+                taskPend.sku = "";
+                taskPend.uom = "";
+                taskPend.qty = 0;
+                taskPend.trace = "";
+                taskPend.fmLoc = agvtask.SourceAddress.ToString();
+                taskPend.toLoc = agvtask.TargetAddress.ToString();
+                taskPend.udf01 = "";
+                taskPend.udf02 = "";
+            }
+            data.detail.Add(taskPend);
+            pend.data = data;
+
+            var time = new DateTimeOffset(DateTime.Now);
+            long timestampStr = time.ToUnixTimeMilliseconds();//鏃堕棿鎴�
+            string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey;
+            string appkeyEcrypt = GetMD5Hex(appkeystr);
+            string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "&timestamp=" + timestampStr + "&uniquestr=" + timestampStr;
+            string signstr = GetMD5Hex(origin);
+            Dictionary<string, string> headers = new Dictionary<string, string>()
+                                {
+                                    {"appkey",AGVopenApi.appkey },
+                                    {"timestamp",timestampStr.ToString() },
+                                    {"sign",signstr }
+                                };
+            string posy = JsonConvert.SerializeObject(pend);
+            var respone = HttpHelper.Post(url, posy, headers: headers);
+            var res = JsonConvert.DeserializeObject<WebResponseContent>(respone);
+            if (res.Code == 200)
+            {
+                agvtask.Dispatchertime = DateTime.Now;
+                agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt();
+                _taskService.UpdateData(agvtask);
+                Thread.Sleep(1000);
+                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂").Write("浠诲姟鍙凤細" + agvtask.TaskNum, "鏃犱汉鍙夎溅浠诲姟涓嬪彂");
+            }
+            else
+            {
+                //_unitOfWorkManage.RollbackTran();
+                content = WebResponseContent.Instance.Error($"{res.msg}");
+                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.msg, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触");
+            }
+        }
         public string GetMD5Hex(string appkeystr)
         {
             using MD5 md5Hash = MD5.Create();

--
Gitblit v1.9.3