/// <summary> /// 新增工序记录。 /// </summary> /// <returns>true:新增成功。false:新增失败。</returns> public override bool Insert() { DataSet dsParams = new DataSet(); POR_ROUTE_OPERATION_VER_FIELDS fields = new POR_ROUTE_OPERATION_VER_FIELDS(); DataTable dtOperation = CommonUtils.CreateDataTable(fields); //组织工序数据。 DataRow drOperation = dtOperation.NewRow(); dtOperation.Rows.Add(drOperation); drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY] = _operationVerKey; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_NAME] = _operationName; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_DURATION] = _osDuration; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_SORT_SEQ] = _sortSequence; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_OPERATION_STATUS] = Convert.ToInt32(_operationStatus); drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_DESCRIPTIONS] = _osDescription; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_PARAM_ORDER_TYPE] = Convert.ToInt32(_paramOrderType); drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_PARAM_COUNT_PER_ROW] = _paramCountPerRow; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_SCRAP_REASON_CODE_CATEGORY_KEY] = _scrapCodesKey; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_DEFECT_REASON_CODE_CATEGORY_KEY] = _defectCodesKey; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_CREATOR] = this.Creator; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_EDITOR] = this.Editor; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_EDIT_TIMEZONE] = this.EditTimeZone; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_CREATE_TIMEZONE] = this.CreateTimeZone; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_CREATE_TIME] = DBNull.Value; drOperation[POR_ROUTE_OPERATION_VER_FIELDS.FIELD_EDIT_TIME] = DBNull.Value; dsParams.Tables.Add(dtOperation); //组织自定义属性数据。 DataTable operationUdaTable = DataTableHelper.CreateDataTableForUDA(POR_ROUTE_OPERATION_ATTR_FIELDS.DATABASE_TABLE_NAME, POR_ROUTE_OPERATION_ATTR_FIELDS.FIELD_OPERATION_VER_KEY); _operationUDAs.ParseInsertDataToDataTable(ref operationUdaTable); if (operationUdaTable.Rows.Count > 0) { //如果有LINED_EDC类型的,则将参数名称转换为参数主键存储到数据库中。 DealUdaTable(operationUdaTable, "I"); dsParams.Tables.Add(operationUdaTable); } //组织工序参数数据。 DataTable dtOperationParams = this._params.GetChanges(); if (dtOperationParams != null) { dtOperationParams.TableName = POR_ROUTE_OPERATION_PARAM_FIELDS.DATABASE_TABLE_NAME; foreach (DataRow dr in dtOperationParams.Rows) { dr[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_EDITOR] = this.Editor; dr[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_EDIT_TIME] = DBNull.Value; dr[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_EDIT_TIMEZONE] = this.EditTimeZone; } dsParams.Tables.Add(dtOperationParams); } try { int code = 0; string msg = string.Empty; IServerObjFactory factor = CallRemotingService.GetRemoteObject(); DataSet dsReturn = factor.CreateIOperationEngine().OperationInsert(dsParams); msg = ReturnMessageUtils.GetServerReturnMessage(dsReturn, ref code); if (code == -1) { this.ErrorMsg = msg; MessageService.ShowError(msg); return(false); } else { this.OperationVersion = msg; foreach (UserDefinedAttr uda in _operationUDAs.UserDefinedAttrList) { uda.OperationAction = OperationAction.Update; } this._params.AcceptChanges(); this.ResetDirtyList(); MessageService.ShowMessage("${res:Global.SuccessMessage}", "${res:Global.SystemInfo}"); } } catch (Exception ex) { this.ErrorMsg = ex.Message; MessageService.ShowError(ex); } finally { CallRemotingService.UnregisterChannel(); } return(true); }
/// <summary> /// 查询工序数据。 /// </summary> /// <param name="dsParams">包含查询条件的数据集。</param> /// <param name="operationName">工序名称。</param> /// <param name="pageNo">页号。</param> /// <param name="pageSize">每页记录数。</param> /// <param name="pages">总页数。</param> /// <param name="records">总记录数。</param> /// <returns>包含工序数据的数据集对象。</returns> public DataSet GetOperations(DataSet dsParams, string operationName, int pageNo, int pageSize, out int pages, out int records) { DataSet dsReturn = new DataSet(); pages = 0; records = 0; try { POR_ROUTE_OPERATION_VER_FIELDS operationsFields = new POR_ROUTE_OPERATION_VER_FIELDS(); #region 返回的数据列 List <string> interestColumns = new List <string>(); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_NAME); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_DESCRIPTIONS); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_IMAGE_KEY); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_DURATION); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_OPERATION_VERSION); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_OPERATION_STATUS); interestColumns.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_IS_REWORKABLE); #endregion #region 组织查询条件 Conditions conditions = new Conditions(); if (dsParams != null && dsParams.Tables.Contains(PARAMETERS_INPUT.DATABASE_TABLE_NAME)) { DataTable inputParamDataTable = dsParams.Tables[PARAMETERS_INPUT.DATABASE_TABLE_NAME]; if (inputParamDataTable != null && inputParamDataTable.Columns.Contains(PARAMETERS_INPUT.FIELD_KEY)) { foreach (DataRow row in inputParamDataTable.Rows) { object key = row[PARAMETERS_INPUT.FIELD_KEY]; if (key == null || key == DBNull.Value) { conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY, DatabaseCompareOperator.Null, string.Empty); } else { conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY, DatabaseCompareOperator.Equal, key.ToString()); } } } } #endregion //已激活的工序。 conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_OPERATION_STATUS, DatabaseCompareOperator.Equal, "1"); //工序名称 if (!string.IsNullOrEmpty(operationName)) { conditions.Add(DatabaseLogicOperator.And, POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_NAME, DatabaseCompareOperator.Like, string.Format("%{0}%", operationName)); } //创建查询SQL string sqlString = DatabaseTable.BuildQuerySqlStatement(operationsFields, interestColumns, conditions); if (pageNo > 0 && pageSize > 0)//分页查询 { AllCommonFunctions.CommonPagingData(sqlString, pageNo, pageSize, out pages, out records, db, dsReturn, POR_ROUTE_OPERATION_VER_FIELDS.DATABASE_TABLE_NAME); } else { db.LoadDataSet(CommandType.Text, sqlString, dsReturn, new string[] { POR_ROUTE_OPERATION_VER_FIELDS.DATABASE_TABLE_NAME }); } FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty); } catch (Exception ex) { FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message); LogService.LogError("GetOperations Error: " + ex.Message); } return(dsReturn); }