From a05b17c400067475a256071c2e92a9f1b3abe343 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 03 七月 2024 18:16:02 +0800
Subject: [PATCH] 桁架模式2

---
 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs |   60 ++++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 46 insertions(+), 14 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs"
index 7cf9eb8..1d9eb35 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs"
@@ -23,6 +23,8 @@
 using WIDESEA_WCS.Repositories;
 using WIDESEA_Comm;
 using WIDESEA_WCS.WCSClient;
+using System.Xml.Linq;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
 
 namespace WIDESEA_WCS.Services
 {
@@ -53,6 +55,8 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
+                var model = JsonConvert.DeserializeObject<dt_pattern>(v);
+                if (model.pattern_state == 1) throw new Exception("褰撳墠灏辨槸妯″紡1");
                 var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "妗佹灦");
                 if (Gantry_client == null) throw new Exception("妗佹灦璋冨害鏈嶅姟鏈紑鍚紒");
                 if (!Gantry_client.IsConnected) throw new Exception("涓庢鏋惰繛鎺ヨ秴鏃讹紒");
@@ -61,17 +65,29 @@
                 var stations = stationinfoRepository.Find(x => x.stationCode == "X01001001" || x.stationCode == "X01001002" || x.stationCode == "X02001001" || x.stationCode == "X02001002").ToList();
                 if (stations.Where(x => x.tray_status == TrayStateEnum.StrogeTray.ToString()).Any())
                     throw new Exception("璁剧疆涓烘ā寮�1澶辫触锛佷笅鏂欎綅瀛樺湪杞﹁疆锛�");
+
+
                 #region 鍐欏叆淇″彿鍛婅瘔妗佹灦鍒囨崲妯″紡
-
+                var ok = Gantry_client.ReadByOrder<bool>("o_enable_change_mode", model.pattern_name);
                 #endregion
-
-                var model = JsonConvert.DeserializeObject<dt_pattern>(v);
-                model.pattern_state = 1;
-                var cont = _repository.Update(model, true);
-                if (cont > 0)
-                    content.OK(model.pattern_name + "璁剧疆涓烘ā寮�1鎴愬姛锛�");
+                if (ok)
+                {
+                    Gantry_client.WriteByOrder("i_mode", (Int16)1, model.pattern_name);
+                    model.pattern_state = 1;
+                    var cont = _repository.Update(model, true);
+                    if (cont > 0)
+                        content.OK(model.pattern_name + "璁剧疆涓烘ā寮�1鎴愬姛锛�");
+                    else
+                        throw new Exception(model.pattern_name + "璁剧疆涓烘ā寮�2澶辫触锛�");
+                    foreach (var stat in stations)
+                    {
+                        stat.enable = true;
+                    }
+                    stationinfoRepository.UpdateRange(stations, x => new { x.enable }, true);
+                }
                 else
-                    content.Error(model.pattern_name + "璁剧疆涓烘ā寮�1澶辫触锛�");
+                    content.Error(model.pattern_name + "璁剧疆涓烘ā寮�1澶辫触锛佹鏋舵湭鍏佽璁剧疆涓烘ā寮�1");
+
             }
             catch (Exception ex)
             {
@@ -89,6 +105,8 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
+                var model = JsonConvert.DeserializeObject<dt_pattern>(v);
+                if (model.pattern_state == 0) throw new Exception("褰撳墠灏辨槸妯″紡2");
                 var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "妗佹灦");
                 if (Gantry_client == null) throw new Exception("妗佹灦璋冨害鏈嶅姟鏈紑鍚紒");
                 if (!Gantry_client.IsConnected) throw new Exception("涓庢鏋惰繛鎺ヨ秴鏃讹紒");
@@ -97,13 +115,27 @@
                 var stations = stationinfoRepository.Find(x => x.stationCode == "X01001001" || x.stationCode == "X01001002" || x.stationCode == "X02001001" || x.stationCode == "X02001002").ToList();
                 if (stations.Where(x => x.tray_status == TrayStateEnum.StrogeTray.ToString()).Any())
                     throw new Exception("璁剧疆涓烘ā寮�2澶辫触锛佷笅鏂欎綅瀛樺湪杞﹁疆锛�");
-                var model = JsonConvert.DeserializeObject<dt_pattern>(v);
-                model.pattern_state = 0;
-                var cont = _repository.Update(model, true);
-                if (cont > 0)
-                    content.OK(model.pattern_name + "璁剧疆涓烘ā寮�2鎴愬姛锛�");
+                #region 鍐欏叆淇″彿鍛婅瘔妗佹灦鍒囨崲妯″紡
+                var ok = Gantry_client.ReadByOrder<bool>("o_enable_change_mode", model.pattern_name);
+                #endregion
+                if (ok)
+                {
+                    Gantry_client.WriteByOrder("i_mode", (Int16)2, model.pattern_name);
+                    model.pattern_state = 0;
+                    var cont = _repository.Update(model, true);
+                    if (cont > 0)
+                        content.OK(model.pattern_name + "璁剧疆涓烘ā寮�2鎴愬姛锛�");
+                    else
+                        throw new Exception(model.pattern_name + "璁剧疆涓烘ā寮�2澶辫触锛�");
+                    foreach (var stat in stations)
+                    {
+                        stat.enable = false;
+                    }
+                    stationinfoRepository.UpdateRange(stations, x => new { x.enable }, true);
+                }
                 else
-                    content.Error(model.pattern_name + "璁剧疆涓烘ā寮�2澶辫触锛�");
+                    content.Error(model.pattern_name + "璁剧疆涓烘ā寮�2澶辫触锛佹鏋舵湭鍏佽璁剧疆涓烘ā寮�2");
+
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3