/// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(TaskME model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into Task(");
            strSql.Append("taskID,taskCode,taskObj,taskExeStatus)");
            strSql.Append(" values (");
            strSql.Append("@taskID,@taskCode,@taskObj,@taskExeStatus)");
            SqlParameter[] parameters = {
                    new SqlParameter("@taskID", SqlDbType.NVarChar,50),
                    new SqlParameter("@taskCode", SqlDbType.Int,4),
                    new SqlParameter("@taskObj", SqlDbType.Xml,-1),
                    new SqlParameter("@taskExeStatus", SqlDbType.Int,4)};
            parameters[0].Value = model.taskID;
            parameters[1].Value = model.taskCode;
            parameters[2].Value = model.taskObj;
            parameters[3].Value = model.taskExeStatus;

            int rows =_dbAssist.ExecuteSql(strSql.ToString(), parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
 /// <summary>
 /// 添加任务
 /// </summary>
 /// <param name="m"></param>
 /// <returns></returns>
 public bool AddTask(TaskME m)
 {
     if (_taskDAL.Exists(m.taskID))
     {
         return false;
     }
     return _taskDAL.Add(m);
 }
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(TaskME model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update Task set ");
            strSql.Append("taskCode=@taskCode,");
            strSql.Append("taskObj=@taskObj,");
            strSql.Append("taskExeStatus=@taskExeStatus");
            strSql.Append(" where taskID=@taskID ");
            SqlParameter[] parameters = {
                    new SqlParameter("@taskCode", SqlDbType.Int,4),
                    new SqlParameter("@taskObj", SqlDbType.Xml,-1),
                    new SqlParameter("@taskExeStatus", SqlDbType.Int,4),
                    new SqlParameter("@taskID", SqlDbType.NVarChar,50)};
            parameters[0].Value = model.taskCode;
            parameters[1].Value = model.taskObj;
            parameters[2].Value = model.taskExeStatus;
            parameters[3].Value = model.taskID;

            int rows = _dbAssist.ExecuteSql(strSql.ToString(), parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public TaskME GetModel(string taskID)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select  top 1 taskID,taskCode,taskObj,taskExeStatus from Task ");
            strSql.Append(" where taskID=@taskID ");
            SqlParameter[] parameters = {
                    new SqlParameter("@taskID", SqlDbType.NVarChar,50)			};
            parameters[0].Value = taskID;

            TaskME model = new TaskME();
            DataSet ds = _dbAssist.Query(strSql.ToString(), parameters);
            if (ds.Tables[0].Rows.Count > 0)
            {
                if (ds.Tables[0].Rows[0]["taskID"] != null && ds.Tables[0].Rows[0]["taskID"].ToString() != "")
                {
                    model.taskID = ds.Tables[0].Rows[0]["taskID"].ToString();
                }
                if (ds.Tables[0].Rows[0]["taskCode"] != null && ds.Tables[0].Rows[0]["taskCode"].ToString() != "")
                {
                    model.taskCode = int.Parse(ds.Tables[0].Rows[0]["taskCode"].ToString());
                }
                if (ds.Tables[0].Rows[0]["taskObj"] != null && ds.Tables[0].Rows[0]["taskObj"].ToString() != "")
                {
                    model.taskObj=ds.Tables[0].Rows[0]["taskObj"].ToString();
                }
                if (ds.Tables[0].Rows[0]["taskExeStatus"] != null && ds.Tables[0].Rows[0]["taskExeStatus"].ToString() != "")
                {
                    model.taskExeStatus = int.Parse(ds.Tables[0].Rows[0]["taskExeStatus"].ToString());
                }
                return model;
            }
            else
            {
                return null;
            }
        }
 /// <summary>
 /// 根据条件查找符合的第一条记录
 /// </summary>
 /// <param name="strWhere"></param>
 /// <returns></returns>
 public TaskME GetConditionedModel(string strWhere)
 {
     StringBuilder strSql = new StringBuilder();
     strSql.Append("select top 1 taskID,taskCode,taskObj,taskExeStatus  ");
     strSql.Append(" FROM Task ");
     if (strWhere.Trim() != "")
     {
         strSql.Append(" where " + strWhere);
     }
     DataSet ds = _dbAssist.Query(strSql.ToString());
     TaskME model = new TaskME();
     if (ds.Tables[0].Rows.Count > 0)
     {
         if (ds.Tables[0].Rows[0]["taskID"] != null && ds.Tables[0].Rows[0]["taskID"].ToString() != "")
         {
             model.taskID = ds.Tables[0].Rows[0]["taskID"].ToString();
         }
         if (ds.Tables[0].Rows[0]["taskCode"] != null && ds.Tables[0].Rows[0]["taskCode"].ToString() != "")
         {
             model.taskCode = int.Parse(ds.Tables[0].Rows[0]["taskCode"].ToString());
         }
         if (ds.Tables[0].Rows[0]["taskObj"] != null && ds.Tables[0].Rows[0]["taskObj"].ToString() != "")
         {
             model.taskObj = ds.Tables[0].Rows[0]["taskObj"].ToString();
         }
         if (ds.Tables[0].Rows[0]["taskExeStatus"] != null && ds.Tables[0].Rows[0]["taskExeStatus"].ToString() != "")
         {
             model.taskExeStatus = int.Parse(ds.Tables[0].Rows[0]["taskExeStatus"].ToString());
         }
         return model;
     }
     else
     {
         return null;
     }
 }
 private void button3_Click(object sender, EventArgs e)
 {
     TaskProductInhouse task = new TaskProductInhouse();
     task.productID = "124314";
     task.targetL = 1;
     task.targetR = 2;
     task.targetC = 40;
     TaskME taskM = new TaskME();
     taskM.taskCode = (int)TaskCode.TASK_PRODUCT_INHOUSE;
     taskM.taskID = DateTime.Now.ToString();
     taskM.taskObj = TaskSerializer.Serialize(task);
     try
     {
         this.richTextBox1.AppendText(taskM.taskObj + "\r\n");
         _taskBll.AddTask(taskM);
     }
     catch (System.Exception e1)
     {
         this.richTextBox1.AppendText(e1.Message);
     }
 }
        private void button5_Click(object sender, EventArgs e)
        {
            StringBuilder strBuilder = new StringBuilder();
            //TaskExeStatus s = TaskExeStatus.TASK_NEW;
            //string TaskID = string.Empty;
            //XMLConfigRW.ReadMachineCurrentTask(1,out s,out TaskID);
            //strBuilder.AppendFormat("1号小车当前任务ID:{0},任务状态:{1}\r\n", TaskID, ((int)s).ToString());
            //this.richTextBox1.AppendText(strBuilder.ToString());
            //strBuilder.Clear();
            //XMLConfigRW.SaveMachineCurrentTask(1, TaskExeStatus.TASK_COMPLETED, System.DateTime.Now.ToString("yyyyMMddHHmm"));
            //s = TaskExeStatus.TASK_RUN;
            //TaskID = string.Empty;
            //XMLConfigRW.ReadMachineCurrentTask(1, out s, out TaskID);
            //strBuilder.AppendFormat("1号小车当前任务ID:{0},任务状态:{1}\r\n", TaskID, ((int)s).ToString());
            //this.richTextBox1.AppendText(strBuilder.ToString());

            string taskSerialNo = _taskBll.GenerateNewTaskSerialNo();
            BaseTaskInfo taskObj= new TaskProductInhouse();
            taskObj.taskID = taskSerialNo;
            TaskME newTask = new TaskME();
            newTask.taskCode = (int)taskObj.taskCode;
            newTask.taskID = taskSerialNo;
            newTask.taskObj = TaskSerializer.Serialize(taskObj);
            newTask.taskExeStatus = 0;
            _taskBll.AddTask(newTask);
            this.richTextBox1.AppendText("生成新的流水号:" + taskSerialNo+"\r\n");
        }
 /// <summary>
 /// 获取未执行的任务列表
 /// </summary>
 /// <returns></returns>
 public IList<TaskME> GetAllUnexedTaskList()
 {
     DataSet ds = _taskDAL.GetList("  taskExeStatus=0 ");
     if (ds != null && ds.Tables.Count > 0)
     {
         IList<TaskME> taskList = new List<TaskME>();
         foreach (DataRow dr in ds.Tables[0].Rows)
         {
             TaskME model = new TaskME();
             if (dr["taskID"] != null && dr["taskID"].ToString() != "")
             {
                 model.taskID = dr["taskID"].ToString();
             }
             if( dr["taskCode"] != null && dr["taskCode"].ToString() != "")
             {
                 model.taskCode = int.Parse(dr["taskCode"].ToString());
             }
             if (dr["taskObj"] != null && dr["taskObj"].ToString() != "")
             {
                 model.taskObj = dr["taskObj"].ToString();
             }
             if (dr["taskExeStatus"] != null && dr["taskExeStatus"].ToString() != "")
             {
                 model.taskExeStatus = int.Parse(dr["taskExeStatus"].ToString());
             }
             taskList.Add(model);
         }
         return taskList;
     }
     else
         return null;
 }