Exemplo n.º 1
0
        public override bool Insert()
        {
            DataSet reqDS = new DataSet();

            DataTable schedulePMDataTable = EMS_PM_SCHEDULE_FIELDS.CreateDataTable(false);

            Dictionary <string, string> dataRow = new Dictionary <string, string>()
            {
                { EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY, scheduleKey },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_NAME, scheduleName },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_EQUIPMENT_KEY, equipmentKey },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_CHECKLIST_KEY, checkListKey },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_DESCRIPTION, description },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_FREQUENCE, frequence },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_FREQUENCE_UNIT, frequenceUnit },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_NOTIFY_USER_KEY, notifyUserKey },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_NOTIFY_CC_USER_KEY, notifyCCUserKey },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_NOTIFY_ADVANCED_TIME, notifyAdvancedTime },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME, string.Empty },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_BASE_ACTUAL_FINISH_TIME, isBaseActualFinishTime },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_EQUIPMENT_CHANGE_STATE_KEY, equipmentChangeStateKey },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_EQUIPMENT_CHANGE_REASON_KEY, equipmentChangeReasonKey },

                { EMS_PM_SCHEDULE_FIELDS.FIELD_CREATOR, Creator },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_CREATE_TIMEZONE_KEY, CreateTimeZone },
                { EMS_PM_SCHEDULE_FIELDS.FIELD_CREATE_TIME, string.Empty }
            };

            FanHai.Hemera.Utils.Common.Utils.AddKeyValuesToDataTable(ref schedulePMDataTable, dataRow);

            schedulePMDataTable.AcceptChanges();

            reqDS.Tables.Add(schedulePMDataTable);

            string msg;

            DataSet resDS = FanHai.Hemera.Utils.Common.Utils.ExecuteEngineMethod("FanHai.Hemera.Modules.EMS.EquipmentSchedulePMEngine, FanHai.Hemera.Modules.EMS", "InsertSchedulePM", reqDS, out msg);

            if (string.IsNullOrEmpty(msg))
            {
                NextEventTime = resDS.ExtendedProperties.ContainsKey(EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME) ? resDS.ExtendedProperties[EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME].ToString() : string.Empty;
                CreateTime    = resDS.ExtendedProperties.ContainsKey(PARAMETERS.OUTPUT_EDIT_TIME) ? resDS.ExtendedProperties[PARAMETERS.OUTPUT_EDIT_TIME].ToString() : string.Empty;

                return(true);
            }
            else
            {
                MessageService.ShowError(msg);

                return(false);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Get Empty Schedule PM Data Table
        /// </summary>
        /// <returns></returns>
        /// Owner:Andy Gao 2011-08-04 08:44:29
        private DataTable GetEmptySchedulePMDataTable()
        {
            DataTable dataTable = EMS_PM_SCHEDULE_FIELDS.CreateDataTable(true);

            dataTable.Columns.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_NOTIFY_USER_NAME);
            dataTable.Columns.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_NOTIFY_CC_USER_NAME);
            dataTable.Columns.Add(EMS_EQUIPMENT_CHANGE_STATES_FIELDS.FIELD_EQUIPMENT_CHANGE_STATE_NAME);
            dataTable.Columns.Add(EMS_EQUIPMENT_CHANGE_REASONS_FIELDS.FIELD_EQUIPMENT_CHANGE_REASON_NAME);
            dataTable.Columns.Add(EMS_EQUIPMENTS_FIELDS.FIELD_EQUIPMENT_NAME);
            dataTable.Columns.Add(EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_NAME);

            return(dataTable);
        }
Exemplo n.º 3
0
        public override bool Update()
        {
            DataSet reqDS = new DataSet();

            reqDS.ExtendedProperties.Add(PARAMETERS.INPUT_KEY, scheduleKey);
            reqDS.ExtendedProperties.Add(PARAMETERS.INPUT_EDITOR, Editor);
            reqDS.ExtendedProperties.Add(PARAMETERS.INPUT_EDIT_TIME, EditTime);

            this.DirtyList.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME, new DirtyItem(EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME, string.Empty, string.Empty));

            Editor       = PropertyService.Get(PROPERTY_FIELDS.USER_NAME);
            EditTimeZone = PropertyService.Get(PROPERTY_FIELDS.TIMEZONE);

            DataTable schedulePMDataTable = EMS_PM_SCHEDULE_FIELDS.CreateDataTable(false);

            FanHai.Hemera.Utils.Common.Utils.AddKeyValuesToDataTable(ref schedulePMDataTable, this.DirtyList);

            schedulePMDataTable.AcceptChanges();

            reqDS.Tables.Add(schedulePMDataTable);

            string msg;

            DataSet resDS = FanHai.Hemera.Utils.Common.Utils.ExecuteEngineMethod("FanHai.Hemera.Modules.EMS.EquipmentSchedulePMEngine, FanHai.Hemera.Modules.EMS", "UpdateSchedulePM", reqDS, out msg);

            if (string.IsNullOrEmpty(msg))
            {
                NextEventTime = resDS.ExtendedProperties.ContainsKey(EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME) ? resDS.ExtendedProperties[EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME].ToString() : string.Empty;
                EditTime      = resDS.ExtendedProperties.ContainsKey(PARAMETERS.OUTPUT_EDIT_TIME) ? resDS.ExtendedProperties[PARAMETERS.OUTPUT_EDIT_TIME].ToString() : string.Empty;

                return(true);
            }
            else
            {
                MessageService.ShowError(msg);

                return(false);
            }
        }
Exemplo n.º 4
0
        public DataSet DeleteSchedulePM(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_KEY) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDITOR) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDIT_TIME))
            {
                string scheduleKey = reqDS.ExtendedProperties[PARAMETERS.INPUT_KEY].ToString();
                string editor      = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDITOR].ToString();
                string editTime    = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDIT_TIME].ToString();

                try
                {
                    EMS_PM_SCHEDULE_FIELDS schedulePMFields = new EMS_PM_SCHEDULE_FIELDS();

                    #region Build Delete SQL Conditions

                    Conditions conditions = new Conditions();

                    Condition condition;

                    if (string.IsNullOrEmpty(scheduleKey))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, scheduleKey);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editor))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editor);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editTime))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editTime);
                    }

                    conditions.Add(condition);

                    List <Conditions> conditionsList = new List <Conditions>()
                    {
                        conditions
                    };

                    #endregion

                    List <string> sqlStringList = DatabaseTable.BuildDeleteSqlStatements(schedulePMFields, conditionsList);

                    if (sqlStringList.Count > 0)
                    {
                        #region Delete Schedule PM Data

                        if (db.ExecuteNonQuery(CommandType.Text, sqlStringList[0]) > 0)
                        {
                            resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                        }
                        else
                        {
                            throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                        }

                        #endregion
                    }
                    else
                    {
                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
                    }
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("DeleteSchedulePM Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Exemplo n.º 5
0
        public DataSet UpdateSchedulePM(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null &&
                reqDS.Tables.Contains(EMS_PM_SCHEDULE_FIELDS.DATABASE_TABLE_NAME) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_KEY) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDITOR) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDIT_TIME))
            {
                DataTable schedulePMDataTable = reqDS.Tables[EMS_PM_SCHEDULE_FIELDS.DATABASE_TABLE_NAME];

                string scheduleKey = reqDS.ExtendedProperties[PARAMETERS.INPUT_KEY].ToString();
                string editor      = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDITOR].ToString();
                string editTime    = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDIT_TIME].ToString();

                try
                {
                    EMS_PM_SCHEDULE_FIELDS schedulePMFields = new EMS_PM_SCHEDULE_FIELDS();

                    #region Build Update SQL Conditions

                    Conditions conditions = new Conditions();

                    Condition condition;

                    if (string.IsNullOrEmpty(scheduleKey))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, scheduleKey);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editor))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editor);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editTime))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editTime);
                    }

                    conditions.Add(condition);

                    List <Conditions> conditionsList = new List <Conditions>()
                    {
                        conditions
                    };

                    #endregion

                    List <string> sqlStringList = DatabaseTable.BuildUpdateSqlStatements(schedulePMFields, schedulePMDataTable, conditionsList);

                    if (sqlStringList.Count > 0 && schedulePMDataTable.Rows.Count > 0)
                    {
                        string scheduleName  = schedulePMDataTable.Rows[0][EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_NAME].ToString();
                        string frequence     = schedulePMDataTable.Rows[0][EMS_PM_SCHEDULE_FIELDS.FIELD_FREQUENCE].ToString();
                        string frequenceUnit = schedulePMDataTable.Rows[0][EMS_PM_SCHEDULE_FIELDS.FIELD_FREQUENCE_UNIT].ToString();
                        string nextEventTime = string.Empty;
                        string sqlString     = sqlStringList[0];

                        using (DbConnection connection = db.CreateConnection())
                        {
                            connection.Open();

                            using (DbTransaction transaction = connection.BeginTransaction())
                            {
                                try
                                {
                                    #region Validate Schedule PM Name

                                    if (!string.IsNullOrEmpty(scheduleName))
                                    {
                                        conditions = new Conditions();

                                        conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_NAME, GlobalEnums.DatabaseCompareOperator.Equal, scheduleName);

                                        conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY, GlobalEnums.DatabaseCompareOperator.NotEqual, scheduleKey);

                                        string returnData = AllCommonFunctions.GetSpecifyTableColumnData(schedulePMFields, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_NAME, conditions, transaction);

                                        if (!string.IsNullOrEmpty(returnData))
                                        {
                                            throw new Exception("计划PM名称已存在!");
                                        }
                                    }

                                    #endregion

                                    #region Update Schedule PM Data

                                    if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                    {
                                        if (string.IsNullOrEmpty(frequence) && string.IsNullOrEmpty(frequenceUnit))
                                        {
                                            editTime = AllCommonFunctions.GetSpecifyTableColumnData(schedulePMFields, EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY, scheduleKey, transaction);
                                        }
                                        else
                                        {
                                            #region Calculate Schedule PM Next Event Time

                                            sqlString = string.Format(@"UPDATE EMS_PM_SCHEDULE
                                                                       SET NEXT_EVENT_TIME = CASE FREQUENCE_UNIT WHEN '小时' THEN SYSDATE + FREQUENCE * INTERVAL '1' HOUR WHEN '天' THEN SYSDATE + FREQUENCE * INTERVAL '1' DAY WHEN '周' THEN SYSDATE + FREQUENCE * INTERVAL '7' DAY WHEN '月' THEN SYSDATE + FREQUENCE * INTERVAL '1' MONTH WHEN '年' THEN SYSDATE + FREQUENCE * INTERVAL '1' YEAR ELSE SYSDATE + FREQUENCE * INTERVAL '1' HOUR END
                                                                     WHERE SCHEDULE_KEY = '{0}'", scheduleKey);

                                            if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) > 0)
                                            {
                                                #region Get Next Event Time And Edit Time

                                                List <string> interestFields = new List <string>();

                                                interestFields.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME);
                                                interestFields.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_EDIT_TIME);

                                                conditions = new Conditions();

                                                conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY, GlobalEnums.DatabaseCompareOperator.Equal, scheduleKey);

                                                sqlString = DatabaseTable.BuildQuerySqlStatement(schedulePMFields, interestFields, conditions);

                                                using (IDataReader dataReader = db.ExecuteReader(transaction, CommandType.Text, sqlString))
                                                {
                                                    if (dataReader.Read())
                                                    {
                                                        nextEventTime = dataReader.GetDateTime(0).ToString();
                                                        editTime      = dataReader.GetDateTime(1).ToString();
                                                    }

                                                    dataReader.Close();
                                                }

                                                #endregion
                                            }
                                            else
                                            {
                                                throw new Exception("计算下次PM时间出错!");
                                            }

                                            #endregion
                                        }
                                    }
                                    else
                                    {
                                        throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                    }

                                    #endregion

                                    transaction.Commit();
                                }
                                catch
                                {
                                    transaction.Rollback();

                                    throw;
                                }
                                finally
                                {
                                    connection.Close();
                                }
                            }
                        }

                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                        resDS.ExtendedProperties.Add(EMS_PM_SCHEDULE_FIELDS.FIELD_NEXT_EVENT_TIME, nextEventTime);
                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_EDIT_TIME, editTime);
                    }
                    else
                    {
                        resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
                    }
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("UpdateSchedulePM Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }
Exemplo n.º 6
0
        public DataSet DeleteCheckList(DataSet reqDS)
        {
            DataSet resDS = new DataSet();

            if (reqDS != null &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_KEY) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDITOR) &&
                reqDS.ExtendedProperties.ContainsKey(PARAMETERS.INPUT_EDIT_TIME))
            {
                string checkListKey = reqDS.ExtendedProperties[PARAMETERS.INPUT_KEY].ToString();
                string editor       = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDITOR].ToString();
                string editTime     = reqDS.ExtendedProperties[PARAMETERS.INPUT_EDIT_TIME].ToString();

                try
                {
                    EMS_CHECKLIST_FIELDS checkListFields = new EMS_CHECKLIST_FIELDS();

                    #region Build Delete SQL Conditions

                    Conditions conditions = new Conditions();

                    Condition condition;

                    if (string.IsNullOrEmpty(checkListKey))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_CHECKLIST_KEY,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, checkListKey);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editor))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDITOR,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editor);
                    }

                    conditions.Add(condition);

                    if (string.IsNullOrEmpty(editTime))
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Null, string.Empty);
                    }
                    else
                    {
                        condition = new Condition(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_FIELDS.FIELD_EDIT_TIME,
                                                  GlobalEnums.DatabaseCompareOperator.Equal, editTime);
                    }

                    conditions.Add(condition);

                    List <Conditions> conditionsList = new List <Conditions>()
                    {
                        conditions
                    };

                    #endregion

                    List <string> sqlStringList = DatabaseTable.BuildDeleteSqlStatements(checkListFields, conditionsList);

                    string sqlString = string.Empty;

                    if (sqlStringList.Count > 0)
                    {
                        sqlString = sqlStringList[0];
                    }

                    using (DbConnection connection = db.CreateConnection())
                    {
                        connection.Open();

                        using (DbTransaction transaction = connection.BeginTransaction())
                        {
                            try
                            {
                                #region Validate Check List Jobs Reference

                                conditions = new Conditions();

                                conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_KEY, GlobalEnums.DatabaseCompareOperator.Equal, checkListKey);

                                EMS_CHECKLIST_JOBS_FIELDS checkListJobsFields = new EMS_CHECKLIST_JOBS_FIELDS();

                                List <string> interestColumns = new List <string>()
                                {
                                    EMS_CHECKLIST_JOBS_FIELDS.FIELD_CHECKLIST_KEY
                                };

                                string checkSqlString = DatabaseTable.BuildQuerySqlStatement(checkListJobsFields, interestColumns, conditions);

                                object scalar = db.ExecuteScalar(transaction, CommandType.Text, checkSqlString);

                                if (scalar != null && scalar != DBNull.Value)
                                {
                                    throw new Exception("检查表单已经关联检查表单任务,不能删除!");
                                }

                                #endregion

                                #region Validate PM Schedule Reference

                                conditions = new Conditions();

                                conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_SCHEDULE_FIELDS.FIELD_CHECKLIST_KEY, GlobalEnums.DatabaseCompareOperator.Equal, checkListKey);

                                EMS_PM_SCHEDULE_FIELDS schedulePMFields = new EMS_PM_SCHEDULE_FIELDS();

                                interestColumns = new List <string>()
                                {
                                    EMS_PM_SCHEDULE_FIELDS.FIELD_SCHEDULE_KEY
                                };

                                checkSqlString = DatabaseTable.BuildQuerySqlStatement(schedulePMFields, interestColumns, conditions);

                                scalar = db.ExecuteScalar(transaction, CommandType.Text, checkSqlString);

                                if (scalar != null && scalar != DBNull.Value)
                                {
                                    throw new Exception("检查表单已经关联计划PM,不能删除!");
                                }

                                #endregion

                                #region Validate PM Condition Reference

                                conditions = new Conditions();

                                conditions.Add(GlobalEnums.DatabaseLogicOperator.And, EMS_PM_CONDITION_FIELDS.FIELD_CHECKLIST_KEY, GlobalEnums.DatabaseCompareOperator.Equal, checkListKey);

                                EMS_PM_CONDITION_FIELDS conditionPMFields = new EMS_PM_CONDITION_FIELDS();

                                interestColumns = new List <string>()
                                {
                                    EMS_PM_CONDITION_FIELDS.FIELD_CONDITION_KEY
                                };

                                checkSqlString = DatabaseTable.BuildQuerySqlStatement(conditionPMFields, interestColumns, conditions);

                                scalar = db.ExecuteScalar(transaction, CommandType.Text, checkSqlString);

                                if (scalar != null && scalar != DBNull.Value)
                                {
                                    throw new Exception("检查表单已经关联条件PM,不能删除!");
                                }

                                #endregion

                                #region Delete Check List Items Data

                                db.ExecuteNonQuery(transaction, CommandType.Text, string.Format("DELETE EMS_CHECKLIST_ITEM WHERE CHECKLIST_KEY = '{0}'", checkListKey));

                                #endregion

                                #region Delete Check List Data

                                if (db.ExecuteNonQuery(transaction, CommandType.Text, sqlString) <= 0)
                                {
                                    throw new Exception("数据处理失败,请重新刷新数据后再提交!");
                                }

                                #endregion

                                transaction.Commit();
                            }
                            catch
                            {
                                transaction.Rollback();

                                throw;
                            }
                            finally
                            {
                                connection.Close();
                            }
                        }
                    }

                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, string.Empty);
                }
                catch (Exception ex)
                {
                    resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, ex.Message);

                    LogService.LogError("DeleteCheckList Error: " + ex.Message);
                }
            }
            else
            {
                resDS.ExtendedProperties.Add(PARAMETERS.OUTPUT_MESSAGE, "提交数据不存在,请重新提交!");
            }

            return(resDS);
        }