Ejemplo n.º 1
0
        /// <summary>
        /// 构造函数。
        /// </summary>
        public OperationEntity()
        {
            _operationVerKey = CommonUtils.GenerateNewKey(0);
            POR_ROUTE_OPERATION_PARAM_FIELDS paramsFields = new POR_ROUTE_OPERATION_PARAM_FIELDS();

            this._params = CommonUtils.CreateDataTable(paramsFields);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 构造函数。
        /// </summary>
        public OperationEntity(string operationKey)
        {
            _operationVerKey = operationKey;
            POR_ROUTE_OPERATION_PARAM_FIELDS paramsFields = new POR_ROUTE_OPERATION_PARAM_FIELDS();

            this._params = CommonUtils.CreateDataTable(paramsFields);
            if (operationKey.Length > 0)
            {
                GetOperationByKey(operationKey);
                this.IsInitializeFinished = true;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新工序数据。
        /// </summary>
        /// <param name="dsParams">包含工序数据的数据集对象。</param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet OperationUpdate(DataSet dsParams)
        {
            DataSet dsReturn = new DataSet();

            try
            {
                DataTable     dtCommon       = dsParams.Tables[TRANS_TABLES.TABLE_MAIN_DATA];
                Hashtable     htCommon       = CommonUtils.ConvertToHashtable(dtCommon);
                string        edittime       = Convert.ToString(htCommon[COMMON_FIELDS.FIELD_COMMON_EDIT_TIME]);
                string        timezone       = Convert.ToString(htCommon[COMMON_FIELDS.FIELD_COMMON_EDIT_TIMEZONE]);
                string        editor         = Convert.ToString(htCommon[COMMON_FIELDS.FIELD_COMMON_EDITOR]);
                List <string> sqlCommandList = new List <string>();
                //生成更新工序数据的SQL
                if (dsParams.Tables.Contains(POR_ROUTE_OPERATION_VER_FIELDS.DATABASE_TABLE_NAME))
                {
                    Hashtable htOpeartion  = CommonUtils.ConvertToHashtable(dsParams.Tables[POR_ROUTE_OPERATION_VER_FIELDS.DATABASE_TABLE_NAME]);
                    string    operationKey = Convert.ToString(htOpeartion[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY]);
                    htOpeartion.Remove(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY);
                    Conditions cons = new Conditions();
                    cons.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_OPERATION_VER_KEY, DatabaseCompareOperator.Equal, operationKey);
                    string updateSql = DatabaseTable.BuildUpdateSqlStatement(new POR_ROUTE_OPERATION_VER_FIELDS(), htOpeartion, cons);
                    sqlCommandList.Add(updateSql);
                }
                //生成更新工序属性数据的SQL
                if (dsParams.Tables.Contains(POR_ROUTE_OPERATION_ATTR_FIELDS.DATABASE_TABLE_NAME))
                {
                    DatabaseTable.BuildSqlStatementsForUDAs(ref sqlCommandList,
                                                            new POR_ROUTE_OPERATION_ATTR_FIELDS(),
                                                            dsParams.Tables[POR_ROUTE_OPERATION_ATTR_FIELDS.DATABASE_TABLE_NAME],
                                                            POR_ROUTE_OPERATION_ATTR_FIELDS.FIELD_OPERATION_VER_KEY);
                }
                //生成工序参数的SQL
                if (dsParams.Tables.Contains(POR_ROUTE_OPERATION_PARAM_FIELDS.DATABASE_TABLE_NAME))
                {
                    POR_ROUTE_OPERATION_PARAM_FIELDS paramFileds = new POR_ROUTE_OPERATION_PARAM_FIELDS();
                    DataTable dtOperationParams = dsParams.Tables[POR_ROUTE_OPERATION_PARAM_FIELDS.DATABASE_TABLE_NAME];
                    if (dtOperationParams != null)
                    {
                        //新增
                        DataTable dtInsertOperationParams = dtOperationParams.GetChanges(DataRowState.Added);
                        if (dtInsertOperationParams != null)
                        {
                            DatabaseTable.BuildInsertSqlStatements(ref sqlCommandList,
                                                                   paramFileds,
                                                                   dtInsertOperationParams,
                                                                   new Dictionary <string, string>(),
                                                                   new List <string>());
                        }
                        //更新修改。
                        DataTable dtUpdateOperationParams = dtOperationParams.GetChanges(DataRowState.Modified);
                        if (dtUpdateOperationParams != null)
                        {
                            foreach (DataRow dr in dtUpdateOperationParams.Rows)
                            {
                                Hashtable htOpeartionParams = CommonUtils.ConvertRowToHashtable(dr);
                                string    operationParamKey = Convert.ToString(htOpeartionParams[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_ROUTE_OPERATION_PARAM_KEY]);
                                htOpeartionParams.Remove(POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_OPERATION_VER_KEY);
                                Conditions cons = new Conditions();
                                cons.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_ROUTE_OPERATION_PARAM_KEY, DatabaseCompareOperator.Equal, operationParamKey);
                                string updateSql = DatabaseTable.BuildUpdateSqlStatement(paramFileds, htOpeartionParams, cons);
                                sqlCommandList.Add(updateSql);
                            }
                        }
                    }
                }
                //执行更新数据操作。
                if (sqlCommandList.Count > 0)
                {
                    DbConnection dbConn = db.CreateConnection();
                    dbConn.Open();
                    DbTransaction dbTrans = dbConn.BeginTransaction();
                    try
                    {
                        foreach (string sql in sqlCommandList)
                        {
                            db.ExecuteNonQuery(dbTrans, CommandType.Text, sql);
                        }
                        dbTrans.Commit();
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "");
                    }
                    catch (Exception e)
                    {
                        dbTrans.Rollback();
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, e.Message);
                    }
                    finally
                    {
                        dbTrans = null;
                        dbConn.Close();
                        dbConn = null;
                    }
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("OperationUpdate Error: " + ex.Message);
            }
            return(dsReturn);
        }