/// <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); }
/// <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; } }
/// <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); }