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 | 271 ++++++++++++++++++++---------------------------------- 1 files changed, 101 insertions(+), 170 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 da65672..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" @@ -33,8 +33,38 @@ { List<Dt_Task> agvtasks = _taskService.GetTasks(); - foreach (Dt_Task agvtask in agvtasks) + 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) + { + ProcessTask(workshop1Tasks[i]); + } + + if (i < workshop2Tasks.Count) + { + 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; @@ -61,6 +91,13 @@ continue; } } + if (a < b) + { + if (item.PointStatus == LocationStatusEnum.InStock.ObjToInt()) + { + text = false; + } + } } if (CachePointSO.Remark != null) { @@ -82,62 +119,7 @@ } if (text == true && text1 == true) { - 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 + "×tamp=" + 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.Message}"); - WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.Message, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触"); - } + AGVTask(agvtask); } } else if (CachePointYCl != null && dt_CachePoint != null) @@ -174,125 +156,15 @@ } if (text2 == true && text3 == true) { - 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 + "×tamp=" + 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.Message}"); - WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.Message, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触"); - } + AGVTask(agvtask); } } else { - 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 + "×tamp=" + 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.Message}"); - WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.Message, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触"); - } + AGVTask(agvtask); } + //} } - } catch (Exception ex) { @@ -303,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 + "×tamp=" + 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