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 |  106 +++++++++++++++++++++++-----------------------------
 1 files changed, 47 insertions(+), 59 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 80e2015..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,27 +40,57 @@
                 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;
-                    throw new Exception(tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State);
+                    respone.Message = tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State;
+                    return respone;
                 }
-                if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing)
-                    task.agv_executingBeginTime = DateTime.Now;
-                else if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete)
-                    task.agv_executingEndTime = DateTime.Now;
-                else if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing1)
-                    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 == (int)AGVTaskStateEnum.Complete1)
                 {
-                    Task.AddHtyTask(task);
-                    Task.Updateinventory(task);
-                    Task.AutoUpdateHCJState(task);
+                    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)
             {
@@ -73,47 +99,9 @@
             }
             finally
             {
-                WriteWMSLog.LogAdd(tasteInfo.TASK_NO, respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), "AGV鍙嶉浠诲姟鐘舵��", "UpdateTaskState", respone.Message);
+                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;
-            string url = "http://127.0.0.1/api/TaskCreat/CreatTask";
-            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;
-                requestTask.agv_qty = agvtask.agv_qty;
-                postJson = JsonConvert.SerializeObject(requestTask);
-                report = Request.RequestData(postJson, url);
-                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);
         }
     }
 }

--
Gitblit v1.9.3