111
cjs
2025-06-19 ad678d0d42f126e5c0d0e2f22f373d9727fb37a5
111
1个文件已添加
9个文件已修改
559 ■■■■ 已修改文件
HH.WCS.Mobox3.NongFuLinZhi/HH.WCS.Mobox3.NFLZ.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/api/ApiModel.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/api/MoboxController.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/dispatch/NDCApi.cs 296 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/dispatch/NDCHelper.cs 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/util/SqlHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/wms/ContainerHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3.NongFuLinZhi/HH.WCS.Mobox3.NFLZ.csproj
@@ -157,8 +157,8 @@
    <Compile Include="device\TcpServer.cs" />
    <Compile Include="dispatch\GZRobot.cs" />
    <Compile Include="dispatch\HanAo.cs" />
    <Compile Include="dispatch\NDC.cs" />
    <Compile Include="core\Monitor.cs" />
    <Compile Include="dispatch\NDCApi.cs" />
    <Compile Include="models\SegmentTable.cs" />
    <Compile Include="models\RowComparsionTable.cs" />
    <Compile Include="models\RowLock.cs" />
HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs
@@ -294,17 +294,11 @@
            db.Updateable(task).UpdateColumns(it => new { it.S_NOTE }).ExecuteCommand();
        }
        internal static WeiLiResult CancelOrder(CancelOrderModel model)
        {
            WeiLiResult result = new WeiLiResult();
            var db = new SqlHelper<object>().GetInstance();
            var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).ToList();
            var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).ToList();
            if (tasks.Count >= 1)
            {
                //流程任务数量执行超过一条 任务不允许取消
@@ -312,7 +306,7 @@
                result.msg = "流程任务执行中途不允许取消";
                return result;
            }
            var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).OrderByDescending(a => a.T_CREATE).First();
            var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).OrderByDescending(a => a.T_CREATE).First();
            if (task != null)
            {
                if (WCSHelper.CheckActionRecordExist(task.S_CODE, 4))
@@ -324,7 +318,7 @@
                if (task.N_B_STATE == 0)
                {
                    //等待直接修改状态为取消
                    WCSHelper.UpdateStatus(model.orderNo, 5);
                    WCSHelper.UpdateStatus(model.task_no, 5);
                    //result.msg = "任务等待,直接取消";
                }
                else if (task.N_B_STATE != 3 && task.N_B_STATE != 4)
@@ -336,7 +330,8 @@
                    else
                    {
                        //已推送但是没有完成或者取消,通知hosttoagv
                        NDCHelper.Cancel(task.S_CODE.Trim());
                        //NDCHelper.Cancel(task.S_CODE.Trim());
                        NDCApi.CancelOrder(task.S_CODE.Trim());
                        //result.msg = "任务取消已经发送给小车";
                    }
                }
@@ -379,7 +374,8 @@
                    else
                    {
                        //通知杭叉修改优先级
                        NDCHelper.Cancel(task.S_CODE.Trim());
                        //NDCHelper.Cancel(task.S_CODE.Trim());
                        NDCApi.CancelOrder(task.S_CODE.Trim());
                        result.msg = "修改优先级成功";
                    }
                }
HH.WCS.Mobox3.NongFuLinZhi/api/ApiModel.cs
@@ -474,13 +474,13 @@
        {
            public string taskNo { get; set; }
        }
        public class CancelOrderModel
        {
            /// <summary>
            /// 任务号
            /// </summary>
            public string orderNo { get; set; }
        }
        //public class CancelOrderModel
        //{
        //    /// <summary>
        //    /// 任务号
        //    /// </summary>
        //    public string orderNo { get; set; }
        //}
        public class ChangeOrderPriorytyModel
        {
            /// <summary>
HH.WCS.Mobox3.NongFuLinZhi/api/MoboxController.cs
@@ -36,7 +36,8 @@
                else if (task.N_B_STATE != 3 && task.N_B_STATE != 4)
                {
                    //已推送但是没有完成或者取消,通知hosttoagv
                    NDCHelper.Cancel(task.S_CODE.Trim());
                    //NDCHelper.Cancel(task.S_CODE.Trim());
                    NDCApi.CancelOrder(task.S_CODE.Trim());
                    result.resultMsg = "任务取消已经发送给小车";
                }
                else
HH.WCS.Mobox3.NongFuLinZhi/dispatch/NDCApi.cs
New file
@@ -0,0 +1,296 @@
using HH.WCS.Mobox3.NFLZ;
using HH.WCS.Mobox3.NFLZ.util;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
using System.Xml;
namespace HH.WCS.Mobox3.NFLZ.dispatch
{
    public class NDCApi
    {
        public static string NDCApiUrl { set; get; }
        static NDCApi()
        {
            NDCApiUrl = Settings.HostToAgvServerUrl;
        }
        public static AgvApiResult AddOrderNew(int ts, int pri, string taskNo, List<param> param)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            var model = new AddOrderNewModel();
            model.ts_no = ts;
            model.pri = pri;
            model.task_no = taskNo;
            model.param = param;
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                var AppKey = Settings.AppKey;
                var AppSecret = Settings.AppSecret;
                var ReqTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
                LogHelper.Info($"加密前 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime}");
                var ReqVerify = GetMd5FromString(AppKey + AppSecret + ReqTime);
                LogHelper.Info($"加密后 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime} ReqVerify={ReqVerify}");
                LogHelper.Info($"任务{taskNo}下发,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "Add", jsonInfo, "application/json", AppKey, ReqTime, ReqVerify);
                LogHelper.Info($"任务下发结果res={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"任务下发失败 res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
        /// <summary>
        /// MD5加密
        /// </summary>
        /// <param name="sInput"></param>
        /// <returns></returns>
        public static string GetMd5FromString(string sInput)
        {
            var lstData = Encoding.GetEncoding("utf-8").GetBytes(sInput);
            var lstHash = new MD5CryptoServiceProvider().ComputeHash(lstData);
            var result = new StringBuilder(32);
            for (int i = 0; i < lstHash.Length; i++)
            {
                result.Append(lstHash[i].ToString("x2").ToUpper());
            }
            return result.ToString();
        }
        public static AgvApiResult AddOrderNew(AddOrderNewModel model)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                LogHelper.Info($"任务{model.task_no}下发,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "Add", jsonInfo);
                LogHelper.Info($"任务下发结果res={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"任务下发失败 res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
        public static AgvApiResult CancelOrder(string tsNo, bool is_force = true)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            var model = new CancelOrderModel();
            model.task_no = tsNo;
            model.is_force = is_force;
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                LogHelper.Info($"任务{model.task_no}取消,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "Cancel", jsonInfo);
                LogHelper.Info($"任务{model.task_no}取消结果={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"CancelOrder  res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
        public static AgvApiResult CancelOrder(CancelOrderModel model)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                LogHelper.Info($"任务{model.task_no}取消,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "Cancel", jsonInfo);
                LogHelper.Info($"任务{model.task_no}取消结果={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"CancelOrder  res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
        public static AgvApiResult ChangeOrderPri(string taskNo, int newPri)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            var model = new ChangePriModel();
            model.task_no = taskNo;
            model.pri = newPri;
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                LogHelper.Info($"任务{model.task_no}优先级更改,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "ChangePri", jsonInfo);
                LogHelper.Info($"任务{model.task_no}优先级更改结果={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"ChangeOrderPri res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
        public static AgvApiResult ChangeOrderPri(ChangePriModel model)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                LogHelper.Info($"任务{model.task_no}优先级更改,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "ChangePri", jsonInfo);
                LogHelper.Info($"任务{model.task_no}优先级更改结果={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"ChangeOrderPri res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
        public static AgvApiResult ChangeOrderParam(string taskNo, int paramNo, string paramStr)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            var model = new ChangeParamModel();
            model.task_no = taskNo;
            model.param_no = paramNo;
            model.param = paramStr;
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                LogHelper.Info($"任务{model.task_no}参数更改,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "ChangeParam", jsonInfo);
                LogHelper.Info($"任务{model.task_no}参数更改结果={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"ChangeOrderParam res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
        public static AgvApiResult ChangeOrderParam(ChangeParamModel model)
        {
            var httpH = new HttpHelper();
            var agvApiResult = new AgvApiResult();
            try
            {
                string jsonInfo = JsonConvert.SerializeObject(model);
                LogHelper.Info($"任务{model.task_no}参数更改,{jsonInfo}", "NDC");
                var result = httpH.WebPost(NDCApiUrl + "ChangeParam", jsonInfo);
                LogHelper.Info($"任务{model.task_no}参数更改结果={result}", "NDC");
                agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result);
                return agvApiResult;
            }
            catch (Exception e)
            {
                LogHelper.Info($"ChangeOrderParam res={e.Message}", "NDC");
                agvApiResult.err_code = -1;
                agvApiResult.err_msg = e.Message;
                return agvApiResult;
            }
        }
    }
    /// <summary>
    /// 返回信息Model
    /// </summary>
    public class AgvApiResult
    {
        public int err_code { set; get; }//异常码:0 - 正常,其它值为异常错误码
        public string err_msg { set; get; }//返回的错误描述,在 err_code <> 0 时返回
        public object result { set; get; }//正确返回的结果内容,在 err_code = 0 且有返回内容时
    }
    public class AddOrderNewModel
    {
        public int ts_no { set; get; }//TS 号,必须有值
        public int pri { set; get; }//优先级
        public string task_no { set; get; }//上游任务编码,如果 no_feedback = 1 时,可以为空
        public List<param> param { set; get; } = new List<param>();//参数列表
    }
    public class param
    {
        public string name { set; get; }//参数名
        public string value { set; get; }//参数值
    }
    public class CancelOrderModel
    {
        public string task_no { set; get; }//上游任务编码
        public bool is_force { set; get; } = true;//是否强制取消,1 – 强制
    }
    public class ChangeParamModel
    {
        public string task_no { set; get; }//上游任务编码
        public int param_no { set; get; }//参数号
        public string param { set; get; }//参数内容,多个参数以英文分号(;)分隔
    }
    public class ChangePriModel
    {
        public string task_no { set; get; }//上游任务编码
        public int pri { set; get; }//新优先级
    }
}
HH.WCS.Mobox3.NongFuLinZhi/dispatch/NDCHelper.cs
@@ -6,76 +6,76 @@
{
    public class NDCHelper
    {
        public static void Test() {
            //dic.Add("Ext1", ""); dic.Add("Ext2", ""); dic.Add("N_CNTR_COUNT", "");
            //var r = callClient.AddNewOrderAsync(new AddNewOrderRequest() { bufin = "<Req><Order Pri='1' TS='1' From='1' To='2' No='123471118_1'  Ext1='1' Ext2='CALLADDAGV'  N_CNTR_COUNT='' /></Req>" });
            //r.Wait();
            var dic = new Dictionary<string, string>();
            dic.Add("Pri", "1"); dic.Add("From", "1"); dic.Add("To", "1"); dic.Add("No", "12311411718_2");// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", "");
            var result = NDC.AddNewOrder(1, dic);
            var dic1 = new Dictionary<string, string>();
            var no = "3454566666";
            dic1.Add("From", "1"); dic1.Add("To", "0"); dic1.Add("No", no);
            result = NDC.AddNewOrder(101, dic1);
            var dic2 = new Dictionary<string, string>();
            dic2.Add("ExtDeviceNo", "1"); dic2.Add("From", "2"); dic2.Add("To", "2"); dic2.Add("No", DateTime.Now.Ticks.ToString()); dic2.Add("CtrlVal", "1");
            result = NDC.AddNewOrder(39, dic2);
            var dic3 = new Dictionary<string, string>();
            dic3.Add("From", "1"); dic3.Add("To", "9"); dic3.Add("No", no);
            result = NDC.CancelOrder(101, dic3);
            var dic4 = new Dictionary<string, string>();
            dic4.Add("ExtDeviceNo", "1"); dic4.Add("CtrlVal", "1"); dic4.Add("DispInfo", "AAAAAAAA"); dic4.Add("No", DateTime.Now.Ticks.ToString());
            result = NDC.StartNewOrderWithQCmd(41, dic4);
            var dic5 = new Dictionary<string, string>();
            dic5.Add("ExtDeviceNo", "1"); dic5.Add("CtrlVal", "1"); dic5.Add("No", DateTime.Now.Ticks.ToString());
            result = NDC.StartNewOrderWithQCmd(170, dic5);
            var dic6 = new Dictionary<string, string>();
            dic6.Add("ExtDeviceNo", "11"); dic6.Add("From", "2"); dic6.Add("To", "2"); dic6.Add("No", DateTime.Now.Ticks.ToString());
            result = NDC.StartNewOrderWithQCmd(164, dic6);
            var dic7 = new Dictionary<string, string>();
            dic7.Add("Param1", "50"); dic7.Add("No", DateTime.Now.Ticks.ToString());
            result = NDC.ChangeOrder(dic7);
        }
        public static bool ChangeParam(string taskNo, int param1, int paramNo = 0) {
            bool bResult = false;
            var dic = new Dictionary<string, string>();
            dic.Add("No", taskNo);
            if (paramNo >= 0) {
                dic.Add("ParamNo", paramNo.ToString());
            }
            dic.Add("Param1", param1.ToString());
            var result = NDC.ChangeOrder(dic);
            return bResult;
        }
        public static bool Traffic(string lockNo) {
            bool bResult = false;
            var dic = new Dictionary<string, string>();
            dic.Add("ExtDeviceNo", lockNo);
            dic.Add("From", "2");
            dic.Add("To", "2"); dic.Add("No", DateTime.Now.Ticks.ToString());
            var result = NDC.StartNewOrderWithQCmd(164, dic);
            return bResult;
        }
        public static bool Cancel(string taskNo) {
            bool bResult = false;
            var dic = new Dictionary<string, string>();
            dic.Add("No", taskNo);
            dic.Add("IsForce", "1");
            var result = NDC.CancelOrder(1, dic);
            return bResult;
        }
        //public static void Test() {
        //    //dic.Add("Ext1", ""); dic.Add("Ext2", ""); dic.Add("N_CNTR_COUNT", "");
        //    //var r = callClient.AddNewOrderAsync(new AddNewOrderRequest() { bufin = "<Req><Order Pri='1' TS='1' From='1' To='2' No='123471118_1'  Ext1='1' Ext2='CALLADDAGV'  N_CNTR_COUNT='' /></Req>" });
        //    //r.Wait();
        //
        //    var dic = new Dictionary<string, string>();
        //    dic.Add("Pri", "1"); dic.Add("From", "1"); dic.Add("To", "1"); dic.Add("No", "12311411718_2");// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", "");
        //    var result = NDC.AddNewOrder(1, dic);
        //
        //    var dic1 = new Dictionary<string, string>();
        //    var no = "3454566666";
        //    dic1.Add("From", "1"); dic1.Add("To", "0"); dic1.Add("No", no);
        //    result = NDC.AddNewOrder(101, dic1);
        //
        //    var dic2 = new Dictionary<string, string>();
        //    dic2.Add("ExtDeviceNo", "1"); dic2.Add("From", "2"); dic2.Add("To", "2"); dic2.Add("No", DateTime.Now.Ticks.ToString()); dic2.Add("CtrlVal", "1");
        //    result = NDC.AddNewOrder(39, dic2);
        //
        //    var dic3 = new Dictionary<string, string>();
        //    dic3.Add("From", "1"); dic3.Add("To", "9"); dic3.Add("No", no);
        //    result = NDC.CancelOrder(101, dic3);
        //
        //    var dic4 = new Dictionary<string, string>();
        //    dic4.Add("ExtDeviceNo", "1"); dic4.Add("CtrlVal", "1"); dic4.Add("DispInfo", "AAAAAAAA"); dic4.Add("No", DateTime.Now.Ticks.ToString());
        //    result = NDC.StartNewOrderWithQCmd(41, dic4);
        //
        //    var dic5 = new Dictionary<string, string>();
        //    dic5.Add("ExtDeviceNo", "1"); dic5.Add("CtrlVal", "1"); dic5.Add("No", DateTime.Now.Ticks.ToString());
        //    result = NDC.StartNewOrderWithQCmd(170, dic5);
        //
        //    var dic6 = new Dictionary<string, string>();
        //    dic6.Add("ExtDeviceNo", "11"); dic6.Add("From", "2"); dic6.Add("To", "2"); dic6.Add("No", DateTime.Now.Ticks.ToString());
        //    result = NDC.StartNewOrderWithQCmd(164, dic6);
        //
        //    var dic7 = new Dictionary<string, string>();
        //    dic7.Add("Param1", "50"); dic7.Add("No", DateTime.Now.Ticks.ToString());
        //    result = NDC.ChangeOrder(dic7);
        //}
        //
        //public static bool ChangeParam(string taskNo, int param1, int paramNo = 0) {
        //    bool bResult = false;
        //    var dic = new Dictionary<string, string>();
        //    dic.Add("No", taskNo);
        //    if (paramNo >= 0) {
        //        dic.Add("ParamNo", paramNo.ToString());
        //    }
        //    dic.Add("Param1", param1.ToString());
        //    var result = NDC.ChangeOrder(dic);
        //    return bResult;
        //}
        //
        //public static bool Traffic(string lockNo) {
        //    bool bResult = false;
        //    var dic = new Dictionary<string, string>();
        //    dic.Add("ExtDeviceNo", lockNo);
        //    dic.Add("From", "2");
        //    dic.Add("To", "2"); dic.Add("No", DateTime.Now.Ticks.ToString());
        //
        //    var result = NDC.StartNewOrderWithQCmd(164, dic);
        //    return bResult;
        //}
        //
        //public static bool Cancel(string taskNo) {
        //    bool bResult = false;
        //    var dic = new Dictionary<string, string>();
        //    dic.Add("No", taskNo);
        //    dic.Add("IsForce", "1");
        //
        //    var result = NDC.CancelOrder(1, dic);
        //    return bResult;
        //}
    }
}
HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -922,7 +922,8 @@
                    LogHelper.Info($"查询翻斗机允许取空信号 允许取空信号={LineState[mst.S_START_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                    if ((LineState[mst.S_START_LOC.Trim()].status == "112100" || LineState[mst.S_START_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                    {
                        NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                        //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                        NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18");
                        TaskProcess.sendSing(mst, 1101);
                    }
                }
@@ -933,7 +934,8 @@
                    {
                        if ((LineState[mst.S_START_LOC.Trim()].status == "1122" || LineState[mst.S_START_LOC.Trim()].status == "1221") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18");
                            TaskProcess.sendSing(mst, 1101);
                        }
                    }
@@ -941,7 +943,8 @@
                    {
                        if (LineState[mst.S_START_LOC.Trim()].status == "1220" && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18");
                            TaskProcess.sendSing(mst, 1101);
                        }
                    }
@@ -964,7 +967,8 @@
                        LogHelper.Info($"查询翻斗机允许上满信号 允许上满信号={LineState[mst.S_END_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                        if ((LineState[mst.S_END_LOC.Trim()].status == "112100" || LineState[mst.S_END_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18");
                            TaskProcess.sendSing(mst, 1103);
                        }
                    }
@@ -975,7 +979,8 @@
                        {
                            if ((LineState[mst.S_END_LOC.Trim()].status == "1122" || LineState[mst.S_END_LOC.Trim()].status == "1221") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                            {
                                NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18");
                                TaskProcess.sendSing(mst, 1103);
                            }
                        }
@@ -983,7 +988,8 @@
                        {
                            if (LineState[mst.S_END_LOC.Trim()].status == "1021" && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                            {
                                NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18");
                                TaskProcess.sendSing(mst, 1103);
                            }
                        }
HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
@@ -5,13 +5,15 @@
using HH.WCS.Mobox3.NFLZ.util;
using HH.WCS.Mobox3.NFLZ.wms;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Xml.Linq;
using static HH.WCS.Mobox3.NFLZ.api.OtherModel;
using static HH.WCS.Mobox3.NFLZ.dispatch.NDC;
using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi;
using static HH.WCS.Mobox3.NFLZ.wms.WMSHelper.AddChangeModel;
namespace HH.WCS.Mobox3.NFLZ.process
@@ -1131,21 +1133,43 @@
                    Console.WriteLine($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}");
                    LogHelper.Info($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}");
                    bool action = true;
                    var dic = new Dictionary<string, string>();
                    //var dic1 = new Dictionary<string, string>();
                    //dic.Add("Pri", mst.N_PRIORITY.ToString());
                    //dic.Add("No", mst.S_CODE.Trim());
                    dic.Add("From", Extend1);
                    dic.Add("To", Extend2);
                    dic.Add("Func", Extend3);
                    dic.Add("Data", Extend4);
                    //var dic = new Dictionary<string, string>();
                    ////var dic1 = new Dictionary<string, string>();
                    ////dic.Add("Pri", mst.N_PRIORITY.ToString());
                    ////dic.Add("No", mst.S_CODE.Trim());
                    //dic.Add("From", Extend1);
                    //dic.Add("To", Extend2);
                    //dic.Add("Func", Extend3);
                    //dic.Add("Data", Extend4);
                    //
                    //if (ConveryTaskList.Contains(taskType) || taskType.Contains("移库"))
                    //{
                    //    dic.Add("ItemHeight", Extend5);
                    //    dic.Add("CntrType", Extend6);
                    //    dic.Add("FromCol", Extend7);
                    //    dic.Add("ToCol", Extend8);
                    //    if (taskType.Contains("移库") || taskType.Contains("成品下线") || taskType.Contains("零头下线"))
                    //    {
                    //        LogHelper.Info($"移库:Extend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},");
                    //        if (Extend5 == "" || Extend6 == "" || Extend7 == "" || Extend8 == "")
                    //        {
                    //            action = false;
                    //        }
                    //    }
                    //}
                    var dic = new List<param>
                    {
                        new param() { name = "From", value = Extend1 },
                        new param() { name = "To", value = Extend2 },
                        new param() { name = "Func", value = Extend3 },
                        new param() { name = "Data", value = Extend4 }
                    };
                    if (ConveryTaskList.Contains(taskType) || taskType.Contains("移库"))
                    {
                        dic.Add("ItemHeight", Extend5);
                        dic.Add("CntrType", Extend6);
                        dic.Add("FromCol", Extend7);
                        dic.Add("ToCol", Extend8);
                        dic.Add(new param(){name = "ItemHeight", value = Extend5});
                        dic.Add(new param(){name = "CntrType", value = Extend6});
                        dic.Add(new param(){name = "FromCol", value = Extend7});
                        dic.Add(new param(){name = "ToCol", value = Extend8});
                        if (taskType.Contains("移库") || taskType.Contains("成品下线") || taskType.Contains("零头下线"))
                        {
                            LogHelper.Info($"移库:Extend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},");
@@ -1155,13 +1179,13 @@
                            }
                        }
                    }
                    if (action)
                    {
                        var res = new AGVResult();
                        res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic);
                        var res = new AgvApiResult();
                        //res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic);
                        res = NDCApi.AddOrderNew(TsNo, mst.N_PRIORITY, mst.S_CODE,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, "已推送");
@@ -1506,7 +1530,7 @@
                }
                if (result == null)
                {
                    result = TaskProcess.BCPInOrOut(db, true, "瓶胚即产满框缓存区", itemCode);
                    result = TaskProcess.BCPInOrOut(db, true, "瓶胚即产满框缓存", itemCode);
                }
                if(result == null)
                {
HH.WCS.Mobox3.NongFuLinZhi/util/SqlHelper.cs
@@ -90,7 +90,7 @@
        public SqlSugarClient GetInstance(string url = "") {
            //创建数据库对象
            SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() {
                ConnectionString = string.IsNullOrEmpty(url) ? Settings.SqlServer : url,
                ConnectionString = Settings.SqlServer,
                //ConnectionString = @"Data Source=192.168.1.198\sql2008;Initial Catalog=OIMobox;User ID=sa;Password=sa@2015",
                DbType = DbType.SqlServer,
                IsAutoCloseConnection = true,
HH.WCS.Mobox3.NongFuLinZhi/wms/ContainerHelper.cs
@@ -5,7 +5,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static HH.WCS.Mobox3.NFLZ.dispatch.NDC;
using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi;
namespace HH.WCS.Mobox3.NFLZ.wms {
    /// <summary>