From 27e00e4c0d354727728ac4b8770b1575b5077399 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期一, 14 七月 2025 17:30:59 +0800
Subject: [PATCH] 出库修改

---
 wms/TaskHelper.cs |  131 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 127 insertions(+), 4 deletions(-)

diff --git a/wms/TaskHelper.cs b/wms/TaskHelper.cs
index bf54db7..dda45de 100644
--- a/wms/TaskHelper.cs
+++ b/wms/TaskHelper.cs
@@ -1,6 +1,9 @@
-锘縰sing HH.WCS.ZhongCeJinTan.device;
+锘縰sing HH.WCS.ZhongCeJinTan.api;
+using HH.WCS.ZhongCeJinTan.core;
+using HH.WCS.ZhongCeJinTan.device;
 using HH.WCS.ZhongCeJinTan.dispatch;
 using HH.WCS.ZhongCeJinTan.util;
+using ICSharpCode.SharpZipLib.Zip;
 using Newtonsoft.Json;
 using SqlSugar;
 using System;
@@ -12,6 +15,8 @@
 using System.Xml.Linq;
 using static HH.WCS.ZhongCeJinTan.util.Settings;
 using static HH.WCS.ZhongCeJinTan.wms.WcsModel;
+
+
 
 namespace HH.WCS.ZhongCeJinTan.wms
 {
@@ -304,12 +309,14 @@
                 {
                     LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2);
                     LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1);
-                    LogHelper.Info($"浠诲姟{task1.S_OP_CODE}鍒涘缓鎴愬姛", "浠诲姟");
+                    LogHelper.Info($"浠诲姟{task1.S_CODE}鍒涘缓鎴愬姛", "浠诲姟");
                     var db = new SqlHelper<object>().GetInstance();
                     db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand();
+
+                    TaskHelper.opMesTask(task1, 0);
                 }
                 else {
-                    LogHelper.Info($"浠诲姟{task1.S_OP_CODE}鍒涘缓澶辫触", "浠诲姟");
+                    LogHelper.Info($"浠诲姟{task1.S_CODE}鍒涘缓澶辫触", "浠诲姟");
                 }
 
             }
@@ -419,6 +426,8 @@
                     LogHelper.Info($"浠诲姟{task1.S_CODE},{task2.S_CODE}鍒涘缓鎴愬姛", "浠诲姟");
                     var db = new SqlHelper<object>().GetInstance();
                     db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand();
+                    LogHelper.Info($"鍥炴姤{task1.S_OP_CODE}", "鍥炴姤Mes浠诲姟");
+                    TaskHelper.opMesTask(task1, 0);
                 }
                 else
                 {
@@ -531,6 +540,8 @@
                         LogHelper.Info($"浠诲姟{task1.S_CODE},{task2.S_CODE}鍒涘缓鎴愬姛", "浠诲姟");
                         var db = new SqlHelper<object>().GetInstance();
                         db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand();
+
+                        TaskHelper.opMesTask(task2, 0);
                     }
                     else
                     {
@@ -576,7 +587,95 @@
             };
             return db.Insertable(action).ExecuteCommand() > 0;
         }
-        internal static WmsTaskAction GetActionRecord(string taskNo,string action)
+
+        internal static bool opMesTask(WMSTask task, int state)
+        {
+
+            HttpHelper apiHelper = new HttpHelper();
+            string baseUrl = Settings.MesApiAddres;
+            try
+            {
+                var cntrItem = ContainerHelper.GetCntrItem(task.S_CNTR_CODE);
+                if (cntrItem == null)
+                {
+                    LogHelper.Info($"浠诲姟{task.S_CODE}娌℃煡鍒板鍣ㄧ墿鏂檣task.S_CNTR_CODE}", "鍥炴姤Mes浠诲姟");
+                    return false;
+                }
+
+                var work = TaskHelper.GetWmsWork(task.S_OP_CODE);
+
+                if (work == null) {
+                    LogHelper.Info($"浠诲姟{task.S_CODE}娌℃煡鍒颁綔涓歿task.S_OP_CODE}", "鍥炴姤Mes浠诲姟");
+                    return false;
+                }
+                var endArea = "";
+
+                if (LocationHelper.GetErroArea(task.S_END_AREA))
+                {
+                    if (task.S_TYPE.Contains("鍑哄簱"))
+                    {
+                        endArea = task.S_END_LOC;
+                    }
+                    else {
+                        endArea = task.S_END_AREA;
+                    }
+
+                    
+                }
+                else {
+                    if (task.S_TYPE.Contains("鍑哄簱"))
+                    {
+                        endArea = task.S_END_LOC;
+                    }
+                    else {
+                        endArea = work.S_END_AREA;
+                    }
+                }
+
+
+
+
+                var interact = new
+                {
+                    taskNo = task.S_OP_CODE,//浠诲姟鍙�+                    updater = "WMS",// 鎿嶄綔浜�濡俉MS/MES绛�+                    endStock = endArea,//缁堢偣
+                    taskStatus = state,//0锛氬垵濮嬬姸鎬侊紝1锛氳繘琛屼腑锛�锛氬畬鎴愶紝3锛氫换鍔″彇娑�+                    updateTime = DateTime.Now.ToString(),//鎿嶄綔鏃堕棿
+                    TurnCardNum  = cntrItem.TurnCardNum,//鍛ㄨ浆鍗″彿
+                    TOOLS_NO = task.S_CNTR_CODE//宸ヨ缂栧彿
+                    
+                };
+                LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 鍦板潃淇℃伅:" + baseUrl + "updateTask", "鍥炴姤Mes浠诲姟");
+                LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "鍥炴姤Mes浠诲姟");
+                var result = apiHelper.Post(baseUrl + "updateTask", JsonConvert.SerializeObject(interact));
+                LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "鍥炴姤Mes浠诲姟");
+                if (!string.IsNullOrEmpty(result))
+                {
+                    var res = JsonConvert.DeserializeObject<MesTaskReturn>(result);
+                    if (res.success && res.code == "0")
+                    {
+                        return true;
+                    }
+                    else
+                    {
+                        return false;
+                    }
+                }
+                else
+                {
+                    LogHelper.Info("Mes鏇存柊浠诲姟鐘舵� 杩斿洖淇℃伅涓虹┖", "鍥炴姤Mes浠诲姟");
+                    return false;
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info("Mes鏇存柊浠诲姟鐘舵�寮傚父"+ex.Message, "鍥炴姤Mes浠诲姟");
+                return false;
+            }
+
+        }
+            internal static WmsTaskAction GetActionRecord(string taskNo,string action)
         {
             var db = new SqlHelper<WmsTaskAction>().GetInstance();
 
@@ -732,6 +831,22 @@
                 LocationHelper.LockLoc(task.S_END_LOC, "鍑哄簱閿�, 2);
             }
 
+            if (task.S_SCHEDULE_TYPE.Contains("agv"))
+            {
+
+                if (LocationHelper.GetErroArea(task.S_END_AREA))
+                {
+                    db.Deleteable<Container>().Where(it => it.S_CODE == task.S_CNTR_CODE).ExecuteCommand();
+                    db.Deleteable<LocCntrRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand();
+                    db.Deleteable<CntrItemRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand();
+                }
+                else
+                {
+                    TaskHelper.opMesTask(task, 2);
+                }
+            }
+         
+
             if (task.S_TYPE.Contains("鍑哄簱") && task.S_SCHEDULE_TYPE.Contains("agv"))
             {
                 var location = db.Queryable<Location>().Where(a => a.S_CODE == task.S_END_LOC).First();
@@ -760,6 +875,14 @@
 
         internal static bool CreateTask(WMSTask wmsTask) {
             var db = new SqlHelper<WMSTask>().GetInstance();
+
+             var task = db.Queryable<WMSTask>().Where(a => a.S_CODE == wmsTask.S_CODE).First();
+
+            if (task!=null)
+            {
+                return false;
+            }
+
             return db.Insertable(wmsTask).ExecuteCommand() > 0;
 
         }

--
Gitblit v1.9.1