11
czw
2025-06-27 140768c21ee2191ba5b390ef4173c15044f11433
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/ViewModel.cs
@@ -28,30 +28,29 @@
using GZ.DB.Repository.OIDATABASE;
using GZ.DB.IRepository.OIDATABASE;
using GZ.DB.Entity.OIDATABASE;
using GZ.Modular.Redis;
namespace GZ.Projects.AuxAllWCS
{
   public partial class ViewModel : System.ComponentModel.INotifyPropertyChanged
   {
      #region ç§æœ‰å˜é‡
      //集成互联
      private Conn Conn = new Conn();
      //设备通信
      private Device Device = new Device();
      //变量数据库
      private Tag tag = new Tag();
      public Tag Tag
      {
         get { return tag; }
         set { tag = value; RaisePropertyChanged(nameof(Tag)); }
      }
      //简化PLC
      public EasyPLC EasyPLC = new EasyPLC();
      #endregion
      #region æž„造函数
      private static ViewModel _ViewModel = null;
      private static List<object> _Windows = new List<object>();
    public partial class ViewModel : System.ComponentModel.INotifyPropertyChanged
    {
        #region ç§æœ‰å˜é‡
        //集成互联
        private Conn Conn = new Conn();
        //设备通信
        private Device Device = new Device();
        //变量数据库
        private Tag tag = new Tag();
        public Tag Tag
        {
            get { return tag; }
            set { tag = value; RaisePropertyChanged(nameof(Tag)); }
        }
        //简化PLC
        public EasyPLC EasyPLC = new EasyPLC();
        #endregion
        #region æž„造函数
        private static ViewModel _ViewModel = null;
        private static List<object> _Windows = new List<object>();
        public static ViewModel CreateInstance(object obj, Type type)
        {
            if (_ViewModel == null)
@@ -60,47 +59,49 @@
            }
            if (!_Windows.Contains(obj))
            {
            _Windows.Add(obj);
                _Windows.Add(obj);
            }
            return _ViewModel;
        }
      public ViewModel()
      {
      }
      #endregion
      #region è‡ªå®šä¹‰æŒ‡ä»¤
public void Method1(System.Int32 param1)
{
      #region    [自定义指令][20250323111354905][Method1]
      #endregion [自定义指令][20250323111354905][Method1]
}
public void SettingInit()
{
      #region    [自定义指令][20250323144605974][SettingInit]
try
{
    var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + "/Static/config.json";
    using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))
    {
        using (JsonTextReader reader = new JsonTextReader(file))
        public ViewModel()
        {
            JObject o = (JObject)JToken.ReadFrom(reader);
            foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())
        }
        #endregion
        #region è‡ªå®šä¹‰æŒ‡ä»¤
        public void Method1(System.Int32 param1)
        {
            #region    [自定义指令][20250323111354905][Method1]
            #endregion [自定义指令][20250323111354905][Method1]
        }
        public void SettingInit()
        {
            #region    [自定义指令][20250323144605974][SettingInit]
            try
            {
                Console.WriteLine(keyValue.Name);
                if (keyValue.Name == "HostToAgvServerUrl")
                var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + "/Static/config.json";
                using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))
                {
                    Settings.HostToAgvServerUrl = keyValue.Value.ToString();
                }
                if (keyValue.Name == "deviceInfo") {
                      Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());
                }
                if (keyValue.Name == "HKbaseUrl") {
                      Settings.HKbaseUrl = keyValue.Value.ToString();
                }
                    using (JsonTextReader reader = new JsonTextReader(file))
                    {
                        JObject o = (JObject)JToken.ReadFrom(reader);
                        foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())
                        {
                            Console.WriteLine(keyValue.Name);
                            if (keyValue.Name == "HostToAgvServerUrl")
                            {
                                Settings.HostToAgvServerUrl = keyValue.Value.ToString();
                            }
                            if (keyValue.Name == "deviceInfo")
                            {
                                Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());
                            }
                            if (keyValue.Name == "HKbaseUrl")
                            {
                                Settings.HKbaseUrl = keyValue.Value.ToString();
                            }
                            if (keyValue.Name == "MESbaseUrl")
                            {
                                Settings.MESbaseUrl = keyValue.Value.ToString();
@@ -109,22 +110,22 @@
                            {
                                Settings.WMSbaseUrl = keyValue.Value.ToString();
                            }
                        }
                    }
                }
                //if(!Settings.FirstG)
                //LogHelper.Info("加载配置文件信息 å®Œæˆ");
            }
            catch (Exception ex)
            {
                LogHelper.Error("加载配置文件失败!" + ex.Message, ex);
            }
            #endregion [自定义指令][20250323144605974][SettingInit]
        }
    }
    //if(!Settings.FirstG)
       //LogHelper.Info("加载配置文件信息 å®Œæˆ");
}
catch (Exception ex)
{
    LogHelper.Error("加载配置文件失败!" + ex.Message, ex);
}
      #endregion [自定义指令][20250323144605974][SettingInit]
}
public void OperateHKTaskStatus(System.Object param1)
{
      #region    [自定义指令][20250324165239206][OperateHKTaskStatus]
HaiKangOrderInfo model = (HaiKangOrderInfo)param1;
        public void OperateHKTaskStatus(System.Object param1)
        {
            #region    [自定义指令][20250324165239206][OperateHKTaskStatus]
            HaiKangOrderInfo model = (HaiKangOrderInfo)param1;
            if (string.IsNullOrEmpty(model.taskCode))
                return;
            // æŸ¥è¯¢ä»»åŠ¡ï¼šæ ¹æ®ä»»åŠ¡å·
@@ -141,6 +142,7 @@
                    List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();
                    bool bobe = false;
                    //model.method = model.method?.ToLower();
                    switch (model.method)
                    {
                        case "start":
@@ -153,7 +155,9 @@
                                bobe = true;
                            }
                            break;
                        case "outBin":
                        case "outbin":
                            model.method = model.method?.ToLower();
                            LogHelper.Info($"海康车任务状态变更为取货完成,任务号为:{model.taskCode}", "agv杭叉交互日志");
                            wcsTask.S_B_STATE = "取货完成";
@@ -174,16 +178,21 @@
                                {
                                    if (device.deviceName.Contains("维希尔抓臂"))
                                    {  //卸货进行清空,触发扫码
                                       var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;
                                       string V = inde ? "R05" : "R06";
                                       Conn.默认Redis.SetValue(device.deviceName + "." + V, "true", device.deviceName + "Queue");
                                       TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);
                                        var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;
                                        string V = inde ? "R05" : "R06";
                                        Conn.默认Redis.SetValue(device.deviceName + "." + V, "true", device.deviceName + "Queue", false);
                                        TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);
                                    }
                                }
                                else if(device.deviceType == 2){
                           var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;
                            string V = inde? "D1224" : "D1225";
                            Conn.默认Redis.SetValue(device.deviceName + "." + V, "0", device.deviceName + "Queue");
                                else if (device.deviceType == 2)
                                {
                                    //Task.Run(() =>
                                    //{
                                    //    var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;
                                    //    string V = inde ? "D1224" : "D1225";
                                    //    Conn.默认Redis.SetValue(device.deviceName + "." + V, "0", device.deviceName + "Queue");
                                    //});
                                }
                            }
                            //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);
@@ -216,7 +225,7 @@
                            endLoc.N_CURRENT_NUM = 1;
                            endLoc.T_MODIFY = DateTime.Now;
                            MainMissionService.Update(wcsTask);
                            if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)
                            if (Settings.deviceInfos.Find(x => x.deviceType == 2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC))) != null)
                                locrep.Update(endLoc);
                            //locContainerRepository2.Insert(llls);
@@ -236,16 +245,20 @@
                                        string V2 = inde ? "R10_LAST" : "R11_LAST";
                                        //Conn.默认Redis.SetValue(device2.deviceName + "." + V2, "true", device2.deviceName + "Queue");
                                        RedisHelper.Add(device2.deviceName + "." + V2, "true", out string msg1);
                                        GZ.Modular.Redis.RedisHelper.Add(device2.deviceName + "." + V2, "true", out string msg1);
                                        TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);
                                    }
                                }
                                else if (device2.deviceType == 2)
                                {
                                    if (device2.deviceName.Contains("Js捷顺"))
                                    {
                                        var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;
                                        string V = inde? "D1224" : "D1225";
                                        Conn.默认Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue");
                                        Task.Run(() =>
                                        {
                                            var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;
                                            string V = inde ? "D1224" : "D1225";
                                            Conn.默认Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue");
                                        });
                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/202", JsonConvert.SerializeObject(new
                                        {
@@ -262,6 +275,19 @@
                                        //    else tag.Js2.D1225 = 1;
                                        //}
                                    }
                                    var ssloc = device2.deviceNo[1];
                                    var endloc = locrep.FindEntity(x => x.S_LOC_CODE == ssloc);
                                    LogHelper.Info($"捷顺卸货后, æŸ¥çœ‹ç¼“存位 {ssloc}-{endloc?.N_CURRENT_NUM}>0? åˆ™ç”³è¯·mes搬走。");
                                    if (endloc != null && endloc.N_CURRENT_NUM == 1)
                                    {
                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new
                                        {
                                            requestType = 3,
                                            startBit = ssloc
                                        }));
                                        LogHelper.Info($"{ssloc}申请mes任务结果{str}");
                                    }
                                }
                            }
                            //LocationMethod.JudgeLocation(wcsTask);
@@ -276,13 +302,14 @@
                            var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);
                            if (tare.Any())
                            {
                                if(tare.Find(x=>x.S_ACTION_CODE=="outbin")==null)
                                if (tare.Find(x => x.S_ACTION_CODE == "outbin") == null)
                                {
                                    startloc.S_LOCK_STATE = "无";
                                    endLoc.S_LOCK_STATE = "无";
                                    locrep.Update(startloc);
                                    locrep.Update(endLoc);
                                }else if (tare.Find(x => x.S_ACTION_CODE == "end") == null)
                                }
                                else if (tare.Find(x => x.S_ACTION_CODE == "end") == null)
                                {
                                    endLoc.S_LOCK_STATE = "无";
                                    locrep.Update(endLoc);
@@ -303,16 +330,16 @@
                    if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))
                    {
                        var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);
                        if (mestask!=null&&bobe)
                        if (mestask != null && bobe)
                        {
                            if ( model.method != "end")
                            if (model.method != "end")
                            {
                               if (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == "MES")
                                   Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new
                                   {
                                       reqCode = wcsTask.S_SRC_NO,
                                       model.method
                                   }));
                                if (mestask.S_START_LOC == wcsTask.S_START_LOC && mestask.S_B_STATE == "MES")
                                    Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new
                                    {
                                        reqCode = wcsTask.S_SRC_NO,
                                        model.method
                                    }));
                            }
                            else
                            {
@@ -322,7 +349,7 @@
                                    mestask.N_PRIORITY = -88;
                                    MainMissionService.Update(mestask);
                                }
                                else if(mestask.S_B_STATE == "MES")
                                else if (mestask.S_B_STATE == "MES")
                                {
                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new
                                    {
@@ -332,21 +359,22 @@
                                }
                            }
                        }else if(mestask!=null && model.method== "cancel")
                        }
                        else if (mestask != null && model.method == "cancel")
                        {
                            if(mestask.S_B_STATE == "MES")
                              Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new
                               {
                                   reqCode = wcsTask.S_SRC_NO,
                                   model.method
                               }));
                            if (mestask.S_B_STATE == "MES")
                                Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/201", JsonConvert.SerializeObject(new
                                {
                                    reqCode = wcsTask.S_SRC_NO,
                                    model.method
                                }));
                            LogHelper.Info($"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸€é˜¶æ®µå–消,重置点,线程处理。");
                            mestask.N_PRIORITY = -1;
                            mestask.S_B_STATE = "MES_取消";
                            MainMissionService.Update(mestask);
                        }
                    }
                    TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);
                    TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data, wcsTask.S_START_LOC, wcsTask.S_END_LOC);
                    //调用第三方接口(如果有)TaskProcess.ReportStatus
                }
                else
@@ -359,97 +387,99 @@
            }
            else
            {
                LogHelper.Info($"当前任务号任务不存在{model.taskCode}", "agv杭叉交互日志");
                LogHelper.Info($"当前任务号任务不存在{model.taskCode} agv杭叉交互日志");
            }
      #endregion [自定义指令][20250324165239206][OperateHKTaskStatus]
}
public GZ.DB.Entity.OIDATABASE.TaskEntity Begin(GZ.DB.Entity.OIDATABASE.TaskEntity task)
{
      #region    [自定义指令][20250324170811305][Begin]
 if (task.S_B_STATE.Trim() == "已推送") {
     task.S_B_STATE = "执行中";
     task.T_START_TIME = DateTime.Now;
 }
 return task;
      #endregion [自定义指令][20250324170811305][Begin]
}
public GZ.DB.Entity.OIDATABASE.TaskEntity End(GZ.DB.Entity.OIDATABASE.TaskEntity task)
{
      #region    [自定义指令][20250324170922920][End]
 if (task != null) {
     task.S_B_STATE = "完成";
     task.T_END_TIME = DateTime.Now;
 }
 return task;
      #endregion [自定义指令][20250324170922920][End]
}
public GZ.DB.Entity.OIDATABASE.TaskEntity UpdateStatus(GZ.DB.Entity.OIDATABASE.TaskEntity task, System.String status)
{
      #region    [自定义指令][20250324171118766][UpdateStatus]
task.S_B_STATE = status;
return task;
      #endregion [自定义指令][20250324171118766][UpdateStatus]
}
public void RunafterMac(System.Object dev, System.Boolean blen)
{
      #region    [自定义指令][20250325085905222][RunafterMac]
var device = (deviceInfo)dev;
if (device.areaPriy.Any() && device.deviceNo.Any())
{
    LocRepository locRepository = new LocRepository();
    LocContainerRepository locContainerRepository = new LocContainerRepository();
    ContainerRepository containerRepository = new ContainerRepository();
    LocEntity startLoc = null;
    string Sign = device.deviceType == 1 ? "F" : "E";
    foreach (var sloc in device.deviceNo)
    {
        ContainerEntity c = null;
        var Startloc = locRepository.FindEntity(x => x.S_LOC_CODE == sloc);
        if (Startloc != null && Startloc.N_CURRENT_NUM == 1 && Startloc.S_LOCK_STATE == "无")
        {
            var cntr = locContainerRepository.FindEntity(x => x.S_LOC_CODE == sloc);
            if (cntr != null)
            {
                c = containerRepository.FindEntity(x => x.S_CODE == cntr.S_CNTR_CODE);
                if (c != null && c.S_TYPE == Sign)
                {
                    startLoc = Startloc;
                }
            }
            #endregion [自定义指令][20250324165239206][OperateHKTaskStatus]
        }
        if (startLoc != null)
        public GZ.DB.Entity.OIDATABASE.TaskEntity Begin(GZ.DB.Entity.OIDATABASE.TaskEntity task)
        {
            foreach (var dn in device.areaPriy)
            #region    [自定义指令][20250324170811305][Begin]
            if (task.S_B_STATE.Trim() == "已推送")
            {
                LocEntity endLoc = null;
                var di = Settings.deviceInfos.Find(x => x.deviceName == dn);
                if (di != null)
                task.S_B_STATE = "执行中";
                task.T_START_TIME = DateTime.Now;
            }
            return task;
            #endregion [自定义指令][20250324170811305][Begin]
        }
        public GZ.DB.Entity.OIDATABASE.TaskEntity End(GZ.DB.Entity.OIDATABASE.TaskEntity task)
        {
            #region    [自定义指令][20250324170922920][End]
            if (task != null)
            {
                task.S_B_STATE = "完成";
                task.T_END_TIME = DateTime.Now;
            }
            return task;
            #endregion [自定义指令][20250324170922920][End]
        }
        public GZ.DB.Entity.OIDATABASE.TaskEntity UpdateStatus(GZ.DB.Entity.OIDATABASE.TaskEntity task, System.String status)
        {
            #region    [自定义指令][20250324171118766][UpdateStatus]
            task.S_B_STATE = status;
            return task;
            #endregion [自定义指令][20250324171118766][UpdateStatus]
        }
        public void RunafterMac(System.Object dev, System.Boolean blen)
        {
            #region    [自定义指令][20250325085905222][RunafterMac]
            var device = (deviceInfo)dev;
            if (device.areaPriy.Any() && device.deviceNo.Any())
            {
                LocRepository locRepository = new LocRepository();
                LocContainerRepository locContainerRepository = new LocContainerRepository();
                ContainerRepository containerRepository = new ContainerRepository();
                LocEntity startLoc = null;
                string Sign = device.deviceType == 1 ? "F" : "E";
                foreach (var sloc in device.deviceNo)
                {
                    foreach (var ssloc in di.deviceNo)
                    ContainerEntity c = null;
                    var Startloc = locRepository.FindEntity(x => x.S_LOC_CODE == sloc);
                    if (Startloc != null && Startloc.N_CURRENT_NUM == 1 && Startloc.S_LOCK_STATE == "无")
                    {
                        var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);
                        if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "无")
                        var cntr = locContainerRepository.FindEntity(x => x.S_LOC_CODE == sloc);
                        if (cntr != null)
                        {
                            endLoc = endloc;
                            break;
                            c = containerRepository.FindEntity(x => x.S_CODE == cntr.S_CNTR_CODE);
                            if (c != null && c.S_TYPE == Sign)
                            {
                                startLoc = Startloc;
                            }
                        }
                    }
                    if (endLoc != null)
                    if (startLoc != null)
                    {
                        TaskProcess.CreateTask("", startLoc.S_LOC_CODE, endLoc.S_LOC_CODE, $"托盘流转-{Sign}", 5, new List<string> { c.S_CODE });
                        break;
                        foreach (var dn in device.areaPriy)
                        {
                            LocEntity endLoc = null;
                            var di = Settings.deviceInfos.Find(x => x.deviceName == dn);
                            if (di != null)
                            {
                                foreach (var ssloc in di.deviceNo)
                                {
                                    var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);
                                    if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "无")
                                    {
                                        endLoc = endloc;
                                        break;
                                    }
                                }
                                if (endLoc != null)
                                {
                                    TaskProcess.CreateTask("", startLoc.S_LOC_CODE, endLoc.S_LOC_CODE, $"托盘流转-{Sign}", 5, new List<string> { c.S_CODE });
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            #endregion [自定义指令][20250325085905222][RunafterMac]
        }
    }
}
      #endregion [自定义指令][20250325085905222][RunafterMac]
}
public System.Boolean RunTask(GZ.DB.Entity.OIDATABASE.TaskEntity task)
{
      #region    [自定义指令][20250325092323531][RunTask]
        public System.Boolean RunTask(GZ.DB.Entity.OIDATABASE.TaskEntity task)
        {
            #region    [自定义指令][20250325092323531][RunTask]
            ILocRepository locrep = new LocRepository();
            var startloc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_START_LOC);
@@ -479,8 +509,8 @@
            //调第三方接口
            var model = new HaiKangOrderInfo
            {
                reqCode=task.S_TASK_NO.Trim(),
                reqTime=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                reqCode = task.S_TASK_NO.Trim(),
                reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                taskCode = task.S_TASK_NO.Trim(),
                ctnrCode = task.S_CNTRS,
                taskTyp = task.S_INDEX,
@@ -488,199 +518,207 @@
            };
            return CreateOrder(model);
      #endregion [自定义指令][20250325092323531][RunTask]
}
public System.Boolean CreateOrder(System.Object m)
{
      #region    [自定义指令][20250325095053549][CreateOrder]
var model = (HaiKangOrderInfo)m;
            #endregion [自定义指令][20250325092323531][RunTask]
        }
        public System.Boolean CreateOrder(System.Object m)
        {
            #region    [自定义指令][20250325095053549][CreateOrder]
            var model = (HaiKangOrderInfo)m;
            var msg = "";
            var result = false;
            var request = JsonConvert.SerializeObject(model);
            var response = Settings.apiHelper.Post(Settings.HKbaseUrl + "rcms/services/rest/hikRpcService/genAgvSchedulingTask", request);
            msg = $"[haikang-CreateOrder] request={request} response={response}";
            LogHelper.Info(msg);
            if (response != "") {
                try {
            if (response != "")
            {
                try
                {
                    var dataResult = JsonConvert.DeserializeObject<HKResult>(response);
                    if (dataResult.code == "0") {
                    if (dataResult.code == "0")
                    {
                        result = true;
                    }
                }
                catch (Exception ex) {
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    LogHelper.Info(msg,"海康");
                    LogHelper.Info(msg, "海康");
                }
            }
            else {
            else
            {
                msg = "[haikang-CreateOrder]创建订单失败";
                Console.WriteLine(msg);
            }
            LogHelper.Info(msg,"海康");
            LogHelper.Info(msg, "海康");
            return result;
      #endregion [自定义指令][20250325095053549][CreateOrder]
}
public void TaskisOk(GZ.DB.Entity.OIDATABASE.TaskEntity task)
{
      #region    [自定义指令][20250325100336909][TaskisOk]
// è½¦è¾†å–放申请。
 if ("取货申请" != "")
 {
     var device1 = Settings.deviceInfos.Find(x => x.location.Contains(task.S_START_LOC));
     if (device1 != null)
     {
         var left = device1.location.ToList().FindIndex(x => x == task.S_START_LOC) == 0;
         if (device1.deviceType == 1)
         {
             if (device1.deviceName.Contains("维希尔抓臂"))
             {
                 if ("IN_BEFORE" == "IN_BEFORE"|| "out_BEFORE" == "out_BEFORE")
                 {
                     string V = left ? "R01" : "R03";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("IN_after" == "IN_after"|| "out_after" == "out_after")
                 {
                     string V = left ? "R02" : "R04";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
             }
             else if(device1.deviceName.Contains("Js捷顺"))
             {
                 if ("IN_BEFORE" == "IN_BEFORE")
                 {
                     string V = left ? "M0" : "M1";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("out_BEFORE" == "out_BEFORE")
                 {
                     //string V = left ? "R01" : "R03";
                     //Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("IN_after" == "IN_after")
                 {
                     string V = left ? "M2" : "M3";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("out_after" == "out_after")
                 {
                     string V = left ? "M6" : "M7";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
             }
         }
     }
 }
 if ("放货申请" != "")
 {
     var device1 = Settings.deviceInfos.Find(x => x.location.Contains(task.S_END_LOC));
     if (device1 != null)
     {
         var left = device1.location.ToList().FindIndex(x => x == task.S_END_LOC) == 0;
         if (device1.deviceType == 1)
         {
             if (device1.deviceName.Contains("维希尔抓臂"))
             {
                 if ("IN_BEFORE" == "IN_BEFORE" || "out_BEFORE" == "out_BEFORE")
                 {
                     string V = left ? "R01" : "R03";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("IN_after" == "IN_after" || "out_after" == "out_after")
                 {
                     string V = left ? "R02" : "R04";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
             }
             else if (device1.deviceName.Contains("Js捷顺"))
             {
                 if ("IN_BEFORE" == "IN_BEFORE")
                 {
                     string V = left ? "M0" : "M1";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("out_BEFORE" == "out_BEFORE")
                 {
                     string V = left ? "M4" : "M5";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("IN_after" == "IN_after")
                 {
                     string V = left ? "M2" : "M3";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
                 if ("out_after" == "out_after")
                 {
                     string V = left ? "M6" : "M7";
                     Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                 }
             }
         }
     }
 }
      #endregion [自定义指令][20250325100336909][TaskisOk]
}
public System.Boolean continueTask(System.Object m)
{
      #region    [自定义指令][20250325100607380][continueTask]
var model = (HaiKangOrderInfo)m;
bool result = false;
string msg = "";
var request = JsonConvert.SerializeObject(model);
var response = Settings.apiHelper.Post(Settings.HKbaseUrl + "rcms/services/rest/hikRpcService/continueTask", request);
msg = $"[haikang-CancelOrder] request={request};response={response}";
Console.WriteLine(msg);
if (response != "")
{
    var dataResult = JsonConvert.DeserializeObject<HKResult>(response);
    if (dataResult.code == "0")
    {
        result = true;
            #endregion [自定义指令][20250325095053549][CreateOrder]
        }
        public void TaskisOk(GZ.DB.Entity.OIDATABASE.TaskEntity task)
        {
            #region    [自定义指令][20250325100336909][TaskisOk]
            // è½¦è¾†å–放申请。
            if ("取货申请" != "")
            {
                var device1 = Settings.deviceInfos.Find(x => x.location.Contains(task.S_START_LOC));
                if (device1 != null)
                {
                    var left = device1.location.ToList().FindIndex(x => x == task.S_START_LOC) == 0;
                    if (device1.deviceType == 1)
                    {
                        if (device1.deviceName.Contains("维希尔抓臂"))
                        {
                            if ("IN_BEFORE" == "IN_BEFORE" || "out_BEFORE" == "out_BEFORE")
                            {
                                string V = left ? "R01" : "R03";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("IN_after" == "IN_after" || "out_after" == "out_after")
                            {
                                string V = left ? "R02" : "R04";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                        }
                        else if (device1.deviceName.Contains("Js捷顺"))
                        {
                            if ("IN_BEFORE" == "IN_BEFORE")
                            {
                                string V = left ? "M0" : "M1";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("out_BEFORE" == "out_BEFORE")
                            {
                                //string V = left ? "R01" : "R03";
                                //Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("IN_after" == "IN_after")
                            {
                                string V = left ? "M2" : "M3";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("out_after" == "out_after")
                            {
                                string V = left ? "M6" : "M7";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                        }
                    }
                }
            }
            if ("放货申请" != "")
            {
                var device1 = Settings.deviceInfos.Find(x => x.location.Contains(task.S_END_LOC));
                if (device1 != null)
                {
                    var left = device1.location.ToList().FindIndex(x => x == task.S_END_LOC) == 0;
                    if (device1.deviceType == 1)
                    {
                        if (device1.deviceName.Contains("维希尔抓臂"))
                        {
                            if ("IN_BEFORE" == "IN_BEFORE" || "out_BEFORE" == "out_BEFORE")
                            {
                                string V = left ? "R01" : "R03";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("IN_after" == "IN_after" || "out_after" == "out_after")
                            {
                                string V = left ? "R02" : "R04";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                        }
                        else if (device1.deviceName.Contains("Js捷顺"))
                        {
                            if ("IN_BEFORE" == "IN_BEFORE")
                            {
                                string V = left ? "M0" : "M1";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("out_BEFORE" == "out_BEFORE")
                            {
                                string V = left ? "M4" : "M5";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("IN_after" == "IN_after")
                            {
                                string V = left ? "M2" : "M3";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                            if ("out_after" == "out_after")
                            {
                                string V = left ? "M6" : "M7";
                                Conn.默认Redis.SetValue(device1.deviceName + "." + V, "true", device1.deviceName + "Queue");
                            }
                        }
                    }
                }
            }
            #endregion [自定义指令][20250325100336909][TaskisOk]
        }
        public System.Boolean continueTask(System.Object m)
        {
            #region    [自定义指令][20250325100607380][continueTask]
            var model = (HaiKangOrderInfo)m;
            bool result = false;
            string msg = "";
            var request = JsonConvert.SerializeObject(model);
            var response = Settings.apiHelper.Post(Settings.HKbaseUrl + "rcms/services/rest/hikRpcService/continueTask", request);
            msg = $"[haikang-CancelOrder] request={request};response={response}";
            Console.WriteLine(msg);
            if (response != "")
            {
                var dataResult = JsonConvert.DeserializeObject<HKResult>(response);
                if (dataResult.code == "0")
                {
                    result = true;
                }
            }
            else
            {
                msg = "[haikang-CancelOrder]获取任务状态失败";
                Console.WriteLine(msg);
            }
            LogHelper.Info(msg, "海康");
            return result;
            #endregion [自定义指令][20250325100607380][continueTask]
        }
        public System.Boolean CancelOrder(System.Object m)
        {
            #region    [自定义指令][20250325100705351][CancelOrder]
            var model = (HaiKangOrderInfo)m;
            bool result = false;
            string msg = "";
            var request = JsonConvert.SerializeObject(model);
            var response = Settings.apiHelper.Post(Settings.HKbaseUrl + "rcms/services/rest/hikRpcService/continueTask", request);
            msg = $"[haikang-CancelOrder] request={request};response={response}";
            Console.WriteLine(msg);
            if (response != "")
            {
                var dataResult = JsonConvert.DeserializeObject<HKResult>(response);
                if (dataResult.code == "0")
                {
                    result = true;
                }
            }
            else
            {
                msg = "[haikang-CancelOrder]取消订单失败";
                Console.WriteLine(msg);
            }
            LogHelper.Info(msg, "海康");
            return result;
            #endregion [自定义指令][20250325100705351][CancelOrder]
        }
        public System.String GetSerialNumber(System.String snType, System.String prefix)
        {
            #region    [自定义指令][20250325131530407][GetSerialNumber]
            int result = 0;
            return "";
            #endregion [自定义指令][20250325131530407][GetSerialNumber]
        }
        #endregion
    }
}
else
{
    msg = "[haikang-CancelOrder]获取任务状态失败";
    Console.WriteLine(msg);
}
LogHelper.Info(msg, "海康");
return result;
      #endregion [自定义指令][20250325100607380][continueTask]
}
public System.Boolean CancelOrder(System.Object m)
{
      #region    [自定义指令][20250325100705351][CancelOrder]
var model = (HaiKangOrderInfo)m;
bool result = false;
string msg = "";
var request = JsonConvert.SerializeObject(model);
var response = Settings.apiHelper.Post(Settings.HKbaseUrl + "rcms/services/rest/hikRpcService/continueTask", request);
msg = $"[haikang-CancelOrder] request={request};response={response}";
Console.WriteLine(msg);
if (response != "") {
    var dataResult = JsonConvert.DeserializeObject<HKResult>(response);
    if (dataResult.code == "0") {
        result = true;
    }
}
else {
    msg = "[haikang-CancelOrder]取消订单失败";
    Console.WriteLine(msg);
}
LogHelper.Info(msg, "海康");
return result;
      #endregion [自定义指令][20250325100705351][CancelOrder]
}
public System.String GetSerialNumber(System.String snType, System.String prefix)
{
      #region    [自定义指令][20250325131530407][GetSerialNumber]
int result = 0;
return "";
      #endregion [自定义指令][20250325131530407][GetSerialNumber]
}
      #endregion
   }
}