From 0b5ccdca6263cf7a2cee460f30c76ef1efea2811 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期六, 27 四月 2024 17:47:27 +0800 Subject: [PATCH] 人工出库,人工入库,人工移库,PDA扫码确认外协物料已被取走接口 --- 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs | 138 ++++++++++++++++----------------------------- 1 files changed, 49 insertions(+), 89 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" index a090f04..5ac0d19 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" @@ -1,18 +1,11 @@ 锘縰sing Newtonsoft.Json; -using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Security.Policy; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Linq; using WIDESEA_Comm.LogInfo; using WIDESEA_Common; using WIDESEA_Core.EFDbContext; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.ToAGV; +using WIDESEA_WMS.Common; +using WIDESEA_WMS.Common.AGVTask; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; @@ -31,11 +24,14 @@ Idt_agvtaskRepository repository = new dt_agvtaskRepository(context); AGVRespone respone = new AGVRespone(); UpdateTasteInfo tasteInfo = new(); + string remark = "AGV鍙嶉浠诲姟鐘舵�侊細"; try { if (string.IsNullOrEmpty(json) || json == "null") throw new Exception("鏈幏鍙栧埌璇锋眰鍙傛暟鏁版嵁"); tasteInfo = JsonConvert.DeserializeObject<UpdateTasteInfo>(json); + if (tasteInfo == null) + throw new Exception("璇锋眰鍙傛暟鏍煎紡涓嶅锛�"); if (string.IsNullOrEmpty(tasteInfo.TASK_NO)) throw new Exception("鏈幏鍙栧埌浠诲姟鍙�!"); var task = repository.FindFirst(x => x.agv_tasknum == tasteInfo.TASK_NO); @@ -44,104 +40,68 @@ if (tasteInfo.TASK_State < 1 || tasteInfo.TASK_State > 4) throw new Exception("鏈畾涔夌殑浠诲姟鐘舵��:" + tasteInfo.TASK_State); var StateName = Enum.GetName(typeof(AGVTaskStateEnum), tasteInfo.TASK_State); - if (task.agv_taskstate == StateName) + if (task.agv_taskstate == StateName && task.agv_taskstate != AGVTaskStateEnum.Complete1.ToString()) { respone.success = 2; respone.Message = tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State; return respone; } - if (tasteInfo.TASK_State == 1) - task.agv_executingBeginTime = DateTime.Now; - if (tasteInfo.TASK_State == 2) - task.agv_executingEndTime = DateTime.Now; - if (tasteInfo.TASK_State == 3) - task.agv_completeBeginTime = DateTime.Now; + + #region 鍒ゆ柇浠诲姟鐘舵�� + //List<string> list = new List<string>() { AGVTaskStateEnum.Executing.ToString(), AGVTaskStateEnum.Complete.ToString(), AGVTaskStateEnum.Executing1.ToString(), AGVTaskStateEnum.Complete1.ToString() }; + //var index = list.IndexOf(task.agv_taskstate) + 1; + //if (tasteInfo.TASK_State < index) + // throw new Exception("浠诲姟鐘舵�佹洿鏂板紓甯革紒褰撳墠浠诲姟鐘舵�佷负锛�" + index + ";璇锋眰鏇存柊鐘舵�佷负锛�" + tasteInfo.TASK_State); + #endregion + task.agv_taskstate = StateName; + if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing) + { + remark = remark + "璧风偣鎵ц涓�"; + task.agv_executingBeginTime = DateTime.Now; + } + else if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete) + { + remark = remark + "璧风偣宸插畬鎴�"; + HandleTask.AutoUpdateHCJState(task); + task.agv_executingEndTime = DateTime.Now; + } + else if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing1) + { + remark = remark + "缁堢偣鎵ц涓�"; + task.agv_completeBeginTime = DateTime.Now; + } var count = repository.Update(task, true); if (count < 1) throw new Exception("浠诲姟鐘舵�佹洿鏂板け璐ワ紒浠诲姟ID锛�" + tasteInfo.TASK_NO + "锛涗换鍔$姸鎬侊細" + tasteInfo.TASK_State); - if (tasteInfo.TASK_State == 4) - Task.AddHtyTask(task); + if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete1) + { + remark = remark + "缁堢偣宸插畬鎴�"; + task.agv_finishedtime = DateTime.Now; + #region 鍚屾MES鍑哄叆搴撲俊鎭� + var mes = HandleTask_Mes.UploadMESInfo(task); + if (mes.code != "200" && mes.Type != "success") + throw new Exception(mes.message); + #endregion + HandleTask.Updateinventory(task); + HandleTask.AutoUpdateHCJState(task); + HandleTask.AddHtyTask(task); + } + respone.success = 1; + return respone; } catch (Exception ex) { respone.success = 3; respone.Message = ex.Message; } - WriteWMSLog.LogAdd(tasteInfo.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), "AGV鍙嶉浠诲姟鐘舵��", "UpdateTaskState", respone.Message); + finally + { + WriteWMSLog.LogAdd(tasteInfo.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), remark, "UpdateTaskState", respone.Message); + } return respone; - } - - /// <summary> - /// 涓嬪彂AGV浠诲姟 - /// </summary> - /// <param name="agvtask"></param> - public static void SendAGVTask(dt_agvtask agvtask) - { - if (agvtask == null) return; - VOLContext context = new VOLContext(); - Idt_agvtaskRepository repository = new dt_agvtaskRepository(context); - AGVRespone respone = new AGVRespone(); - RequestTask requestTask = new RequestTask(); - string postJson = string.Empty; - string report = string.Empty; - try - { - requestTask.TASK_NO = agvtask.agv_tasknum; - requestTask.FROM_POSITION = agvtask.agv_fromaddress; - requestTask.TO_POSITION = agvtask.agv_toaddress; - requestTask.Material = agvtask.agv_materielid; - requestTask.Priority = agvtask.agv_grade; - postJson = JsonConvert.SerializeObject(requestTask); - report = RequestData(postJson); - respone = JsonConvert.DeserializeObject<AGVRespone>(report); - if (respone.success != 1) - throw new Exception(respone.Message); - agvtask.agv_taskstate = AGVTaskStateEnum.SendOut.ToString(); - agvtask.agv_realesstime = DateTime.Now; - repository.Update(agvtask, true); - } - catch (Exception ex) - { - respone.Message = ex.Message; - } - WriteWMSLog.LogAdd(requestTask.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "AGV", "WMS", postJson, report, "涓嬪彂AGV浠诲姟", "SendAGVTask", respone.Message); - } - - /// <summary> - /// post璇锋眰 - /// </summary> - /// <param name="postData">鍙傛暟</param> - /// <param name="address">璺緞</param> - /// <returns></returns> - public static string RequestData(string postData, string address = "") - { - string reponse = string.Empty; - try - { - //string tmp = ""; - //if (null != postData) - // tmp = JsonConvert.SerializeObject(postData); - byte[] param = Encoding.UTF8.GetBytes(postData); - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address); - request.Method = "POST"; - request.ContentType = "application/json"; - request.GetRequestStream().Write(param, 0, param.Length); - using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) - { - Stream stream = response.GetResponseStream(); - StreamReader streamReader = new StreamReader(stream); - string webResponse = streamReader.ReadToEnd(); - reponse = webResponse; - } - } - catch (Exception ex) - { - reponse = ex.Message; - } - return reponse; } } } -- Gitblit v1.9.3