分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-07-03 a05b17c400067475a256071c2e92a9f1b3abe343
´úÂë¹ÜÀí/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)
            {