111
lss
2 天以前 23c28e3c0437081a78a48e54dc066c87500fa8bc
HH.WCS.Mobox3 - ´ó³µ¼ä/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
@@ -199,7 +199,7 @@
                                //NDCApi.ChangeOrderParam(TN_Task.S_CODE.Trim(), 6, "1");
                            }
                        }
                    }
                }
@@ -230,7 +230,7 @@
                LogHelper.Info($"开始立库安全请求");
                Request<TaskAccess> request = new Request<TaskAccess>();
                var time = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                TaskAccess taskAccess = new TaskAccess() { taskNum = tasknum, orderNum = ordernum, station = station, type = type, taskStatus = taskStatus };
                request.data = taskAccess;
                HttpHelper httpHelper = new HttpHelper();
@@ -326,14 +326,14 @@
        internal static bool Intercept(WCSTask mst)
        {
            var result = true;
            var db = new SqlHelper<object>().GetInstance();
            //根据起点仓库编码判断是否可以推送
            var taskLimit = db.Queryable<TASK_LIMIT>().Where(a => a.S_WH_CODE == mst.S_START_WH && a.OPEN == "1").First();
            if (taskLimit != null)
            {
                Console.WriteLine($"任务:{mst.S_CODE},起点仓库:{mst.S_START_WH}已经禁用推送");
                return false;
            }
            //var db = new SqlHelper<object>().GetInstance();
            ////根据起点仓库编码判断是否可以推送
            //var taskLimit = db.Queryable<TASK_LIMIT>().Where(a => a.S_WH_CODE == mst.S_START_WH && a.OPEN == "1").First();
            //if (taskLimit != null)
            //{
            //    Console.WriteLine($"任务:{mst.S_CODE},起点仓库:{mst.S_START_WH}已经禁用推送");
            //    return false;
            //}
@@ -401,110 +401,61 @@
            var list = db.Queryable<Location>().ToList().Count;
            // if (mst.N_B_STATE == 0) {
            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($"任务推送数据:{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);
                var 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" });
                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);
                if (res != null && (res.err_code == 0 || res.err_code == 50009))
                {
                    //推送成功,修改任务优先级
                    mst.N_B_STATE = 1;
                    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}");
                    if (mst.S_TYPE.Contains("电梯1"))
                    {
                        var device = Settings.deviceInfos.Where(a => a.TN_Location == mst.S_END_LOC).FirstOrDefault();
                        var loc = LocationHelper.GetLocByLoc(mst.S_START_LOC);
                        if (device == null)
                        {
                            LogHelper.Info($"根据任务终点:{mst.S_END_LOC},未找到对应电梯配置文件");
                        }
                        if (loc == null)
                        {
                            LogHelper.Info($"根据任务起点:{mst.S_START_LOC},未找到对应货位");
                        }
                        int value = 0;
                        if (loc.N_LAYER == 1) value = 1;
                        else if (loc.N_LAYER == 2) value = 3;
                        else if (loc.N_LAYER == 3) value = 5;
                        ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024);
                        ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024);
                    }
                }
                else
                {
                    LogHelper.Info($"NDC推送任务失败 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res));
                }
                LogHelper.Info($"任务{mst.S_CODE},起点终点有空参数,不推送任务");
            }
            //else if (mst.N_SCHEDULE_TYPE == 5) {
            //    //调第三方接口
            //    var model = new HanAo.TaskInfoModel
            //    {
            //        requestPk = mst.S_CODE,
            //        frmPos = mst.S_START_LOC,
            //        toPos = mst.S_END_LOC,
            //        trkType = mst.S_OP_NAME == "入库" ? "1" : "2",
            //        contNo = mst.S_CNTR_CODE
            //    };
            //    if (HanAo.CreateOrder(model)) {
            //        mst.N_B_STATE = 1;
            //        WCSHelper.UpdateStatus(mst);
            //    }
            //}
            //else if (mst.N_SCHEDULE_TYPE == 3) {
            //    var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p");
            //    if (code > 0) {
            //        //更新任务状态
            //        mst.N_B_STATE = 1;
            //        mst.S_EQ_TASK_CODE = code.ToString();
            //        WCSHelper.UpdateStatus(mst);
            //        WCSHelper.UpdateEQNo(mst);
            //    }
            //}
            //  }
            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);
            var 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" });
            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);
            if (res != null && (res.err_code == 0 || res.err_code == 50009))
            {
                //推送成功,修改任务优先级
                mst.N_B_STATE = 1;
                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));
            }
            return result;
        }
        /// <summary>
@@ -681,9 +632,9 @@
            try
            {
                //回报数据获取
              //  Request<StatusArrive> statusarrive = new Request<StatusArrive>();
                //  Request<StatusArrive> statusarrive = new Request<StatusArrive>();
                //获取时间戳
                Request<MesTaskAccess> request = new Request<MesTaskAccess>();
                var time = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                request.RequestId = "杭叉AGV" + time;