lss
3 天以前 17e3ef45fe0a6b6f8a147b50740834ac734f9317
HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs
@@ -2,6 +2,7 @@
using HH.WCS.DaYang.dispatch;
using HH.WCS.DaYang.util;
using HH.WCS.DaYang.wms;
using HH.WCS.JunzhouNongfu.device;
using Newtonsoft.Json;
using NLog.Fluent;
using SqlSugar;
@@ -128,7 +129,7 @@
                            //设备状态空则允许推送
                            if (DeviceStatu != null && DeviceStatu.Data.PhotoStatus == 0)
                            {
                            }
                            else
@@ -153,8 +154,9 @@
                    }
                }
            }
            if (mst.S_TYPE == "出库")
            if (mst.S_TYPE.Contains("出库"))
            {
                //推送agv任务,判断设备任务是否完成
                if (mst.N_SCHEDULE_TYPE == 1)
                {
@@ -167,7 +169,7 @@
                else
                {
                    //如果当前任务不是移库任务,需要判断移库任务是否完成
                    if (mst.S_TYPE != "移库")
                    if (!mst.S_TYPE.Contains("移库"))
                    {
                        var db = new SqlHelper<object>().GetInstance();
                        var ykmst = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == mst.S_OP_NAME && a.N_B_STATE == 3 && a.S_TYPE == "移库").First();
@@ -175,6 +177,21 @@
                        {
                            result = true;
                        }
                    }
                    else
                    {
                        //出库任务判断外侧有没有锁
                        var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
                        if (startLoc != null && startLoc.N_POS == 1)
                        {
                            var db = new SqlHelper<WCSTask>().GetInstance();
                            var OutLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == startLoc.S_AREA_CODE && b.N_LAYER == startLoc.N_LAYER && b.N_POS == 2).First();
                            if (OutLoc != null && OutLoc.N_LOCK_STATE != 0)
                            {
                                result = true;
                            }
                        }
                    }
                }
@@ -359,38 +376,59 @@
            var start = "0"; var end = "0";
            var taskType = mst.S_TYPE.Trim();
            if (mst.N_SCHEDULE_TYPE == 1)//agv任务
            if (mst.N_SCHEDULE_TYPE == 1)
            {
                LogHelper.Info($"任务推送数据:{JsonConvert.SerializeObject(mst)}");
                if (string.IsNullOrEmpty(mst.S_START_LOC) || string.IsNullOrEmpty(mst.S_END_LOC))
                {
                    LogHelper.Info($"任务{mst.S_CODE},起点终点有空参数,不推送任务");
                }
                start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                end = LocationHelper.GetAgvSite(mst.S_END_LOC);
                //if (mst.N_START_LAYER > 1)
                //{
                //    start = LocationHelper.GetAgvSite(mst.S_START_LOC, mst.N_START_LAYER.ToString()).ToString();
                //}
                if (mst.N_END_LAYER > 1)
                {
                    end = LocationHelper.GetAgvSite(mst.S_END_LOC, mst.N_END_LAYER.ToString()).ToString();
                    LogHelper.Info($"任务推送:终点层数为{mst.N_END_LAYER},推送站点为:{end}");
                }
                Console.WriteLine($"SendTask {mst.S_CODE}");
                Console.WriteLine("start=" + start);
                Console.WriteLine("end= " + end);
                List<param> dic = new List<param>();
                dic.Add(new param() { name = "From", value = start.ToString() });
                dic.Add(new param() { name = "To", value = end.ToString() });
                dic.Add(new param() { name = "FUNC", value = "0" });
                dic.Add(new param() { name = "DATA", value = "0" });
                dic.Add(new param() { name = "Ctype", value = "0" });
                //Console.WriteLine($"SendTask {mst.S_CODE}");
                //Console.WriteLine("start=" + start);
                //Console.WriteLine("end= " + end);
                var dic = new Dictionary<string, string>();
                var sb1 = new StringBuilder();
                var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//添加新命令
                                                                    //dic.Add("Pri", mst.N_PRIORITY.ToString());
                                                                    //dic.Add("From", start.ToString());
                                                                    //dic.Add("To", end.ToString());
                                                                    //dic.Add("task_no", mst.S_CODE.Trim());// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", "");
                                                                    //var res = NDC.AddNewOrder(1, dic);
                //dic.Add("No", mst.S_CODE.Trim());
                //dic.Add("Pri", mst.N_PRIORITY.ToString());
                dic.Add("From", start.ToString());
                dic.Add("To", end.ToString());
                dic.Add("Func", "0");
                dic.Add("DATA", "0");
                dic.Add("ItemHeight", "0");
                dic.Add("CntrType", "1");
                dic.Add("FromCol", "0");
                dic.Add("ToCol", "0");
                dic.Add("Ctype", "0");
                // dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", "");
                var res = NDC.AddNewOrderNew(5, mst.N_PRIORITY, mst.S_CODE.Trim(), dic);
                if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009))
                if (res != null && (res.err_code == 0 || res.err_code == 50009))
                {
                    //推送成功,修改任务优先级
                    mst.N_B_STATE = 1;
                    WCSHelper.UpdateStatus(mst);
                    mst.S_B_STATE = WCSTask.GetStateStr(1);
                    WCSHelper.UpdateStatus(mst);//更新任务状态
                    result = true;
                    LogHelper.Info($"NDC推送任务成功 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}");
                }
                else
                {
                    LogHelper.Info($"NDC推送任务失败 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res));
                }
            }
            else if (mst.N_SCHEDULE_TYPE == 2)//输送线任务
@@ -463,7 +501,7 @@
        }
        #endregion
    }
}