public string Add(BaseOrganizeEntity organizeEntity, out string statusCode) { string returnValue = string.Empty; // 检查是否重复 List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldParentId, organizeEntity.ParentId)); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldFullName, organizeEntity.FullName)); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0)); //注意Access 的时候,类型不匹配,会出错故此将 ID 传入 if (BaseSystemInfo.UserCenterDbType == DbTypes.Access) { if (this.Exists(parameters, organizeEntity.Id)) { // 名称已重复 statusCode = StatusCode.ErrorNameExist.ToString(); } else { parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldCode, organizeEntity.Code)); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0)); if (organizeEntity.Code.Length > 0 && this.Exists(parameters)) { // 编号已重复 statusCode = StatusCode.ErrorCodeExist.ToString(); } else { returnValue = this.AddEntity(organizeEntity); // 运行成功 statusCode = StatusCode.OKAdd.ToString(); } } } else if (this.Exists(parameters)) { // 名称已重复 statusCode = StatusCode.ErrorNameExist.ToString(); } else { parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldCode, organizeEntity.Code)); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0)); if (organizeEntity.Code.Length > 0 && this.Exists(parameters)) { // 编号已重复 statusCode = StatusCode.ErrorCodeExist.ToString(); } else { returnValue = this.AddEntity(organizeEntity); // 运行成功 statusCode = StatusCode.OKAdd.ToString(); } } return returnValue; }
/// <summary> /// 添加实体 /// </summary> /// <param name="userInfo">用户</param> /// <param name="organizeEntity">实体</param> /// <param name="statusCode">状态码</param> /// <param name="statusMessage">状态信息</param> /// <returns>主键</returns> public string Add(BaseUserInfo userInfo, BaseOrganizeEntity organizeEntity, out string statusCode, out string statusMessage) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif statusCode = string.Empty; statusMessage = string.Empty; string returnValue = string.Empty; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseOrganizeManager organizeManager = new BaseOrganizeManager(dbHelper, userInfo); returnValue = organizeManager.Add(organizeEntity, out statusCode); statusMessage = organizeManager.GetStateMessage(statusCode); BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.OrganizeService_Add, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return returnValue; }
public int Update(BaseOrganizeEntity organizeEntity, out string statusCode) { int returnValue = 0; // 检查是否已被其他人修改 //if (DbLogic.IsModifed(DbHelper, BaseOrganizeEntity.TableName, organizeEntity.Id, organizeEntity.ModifiedUserId, organizeEntity.ModifiedOn)) //{ // // 数据已经被修改 // statusCode = StatusCode.ErrorChanged.ToString(); //} //else //{ List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldParentId, organizeEntity.ParentId)); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldFullName, organizeEntity.FullName)); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0)); if (this.Exists(parameters, organizeEntity.Id)) { // 名称已重复 statusCode = StatusCode.ErrorNameExist.ToString(); } else { // 检查编号是否重复 parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldCode, organizeEntity.Code)); parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0)); if (organizeEntity.Code.Length > 0 && this.Exists(parameters, organizeEntity.Id)) { // 编号已重复 statusCode = StatusCode.ErrorCodeExist.ToString(); } else { // 1:更新部门的信息 returnValue = this.UpdateEntity(organizeEntity); // 2:组织机构修改时,用户表的公司,部门,工作组数据给同步更新。 BaseUserManager userManager = new BaseUserManager(this.DbHelper, this.UserInfo); userManager.SetProperty(new KeyValuePair<string, object>(BaseUserEntity.FieldCompanyId, organizeEntity.Id), new KeyValuePair<string, object>(BaseUserEntity.FieldCompanyName, organizeEntity.FullName)); userManager.SetProperty(new KeyValuePair<string, object>(BaseUserEntity.FieldDepartmentId, organizeEntity.Id), new KeyValuePair<string, object>(BaseUserEntity.FieldDepartmentName, organizeEntity.FullName)); userManager.SetProperty(new KeyValuePair<string, object>(BaseUserEntity.FieldWorkgroupId, organizeEntity.Id), new KeyValuePair<string, object>(BaseUserEntity.FieldWorkgroupName, organizeEntity.FullName)); // 03:组织机构修改时,文件夹同步更新 BaseFolderManager folderManager = new BaseFolderManager(this.DbHelper, this.UserInfo); folderManager.SetProperty(new KeyValuePair<string, object>(BaseFolderEntity.FieldFolderName, organizeEntity.FullName), new KeyValuePair<string, object>(BaseFolderEntity.FieldId, organizeEntity.Id)); if (returnValue == 1) { statusCode = StatusCode.OKUpdate.ToString(); } else { statusCode = StatusCode.ErrorDeleted.ToString(); } } } //} return returnValue; }
public override int BatchSave(DataTable dataTable) { int returnValue = 0; BaseOrganizeEntity organizeEntity = new BaseOrganizeEntity(); foreach (DataRow dataRow in dataTable.Rows) { // 删除状态 if (dataRow.RowState == DataRowState.Deleted) { string id = dataRow[BaseOrganizeEntity.FieldId, DataRowVersion.Original].ToString(); if (id.Length > 0) { returnValue += this.DeleteEntity(id); } } // 被修改过 if (dataRow.RowState == DataRowState.Modified) { string id = dataRow[BaseOrganizeEntity.FieldId, DataRowVersion.Original].ToString(); if (id.Length > 0) { organizeEntity.GetFrom(dataRow); returnValue += this.UpdateEntity(organizeEntity); } } // 添加状态 if (dataRow.RowState == DataRowState.Added) { organizeEntity.GetFrom(dataRow); returnValue += this.AddEntity(organizeEntity).Length > 0 ? 1 : 0; } if (dataRow.RowState == DataRowState.Unchanged) { continue; } if (dataRow.RowState == DataRowState.Detached) { continue; } } return returnValue; }
public string AddByDetail(string parentId, string code, string fullName, string category, string outerPhone, string innerPhone, string fax, bool enabled, out string statusCode) { BaseOrganizeEntity organizeEntity = new BaseOrganizeEntity(); organizeEntity.ParentId = parentId; organizeEntity.Code = code; organizeEntity.FullName = fullName; organizeEntity.Category = category; organizeEntity.OuterPhone = outerPhone; organizeEntity.InnerPhone = innerPhone; organizeEntity.Fax = fax; organizeEntity.Enabled = enabled ? 1 : 0; return this.Add(organizeEntity, out statusCode); }
public FrmOrganizeAdd(BaseOrganizeEntity entity) : this() { this.organizeEntity = entity; }
/// <summary> /// 转换数据,将实体类保存到数据表 /// </summary> private BaseOrganizeEntity GetEntity() { BaseOrganizeEntity entity = new BaseOrganizeEntity(); if (string.IsNullOrEmpty(this.ucParent.SelectedId)) { entity.ParentId = null; } else { entity.ParentId = this.ucParent.SelectedId; } entity.Code = this.txtCode.Text; entity.FullName = this.txtFullName.Text; entity.ShortName = this.txtShortName.Text; entity.Category = this.cmbCategory.SelectedValue.ToString(); entity.OuterPhone = this.txtOuterPhone.Text; entity.InnerPhone = this.txtInnerPhone.Text; entity.Fax = this.txtFax.Text; entity.Postalcode = this.txtPostalcode.Text; entity.Address = this.txtAddress.Text; entity.Web = this.txtWeb.Text; entity.Enabled = this.chkEnabled.Checked ? 1 : 0; entity.IsInnerOrganize = this.chkIsInnerOrganize.Checked ? 1 : 0; entity.Description = this.txtDescription.Text; entity.DeletionStateCode = 0; return entity; }
/// <summary> /// 添加 /// </summary> /// <param name="organizeEntity">实体</param> /// <param name="identity">自增量方式</param> /// <param name="returnId">返回主鍵</param> /// <returns>主键</returns> public string Add(BaseOrganizeEntity organizeEntity, bool identity, bool returnId) { this.Identity = identity; this.ReturnId = returnId; return this.AddEntity(organizeEntity); }
/// <summary> /// 加载树型结构的主键 /// </summary> /// <param name="dataTable">数据表</param> /// <param name="fieldId">主键</param> /// <param name="fieldParentId">上级字段</param> /// <param name="fieldFullName">全称</param> /// <param name="treeNode">当前树结点</param> private void LoadTreeNodes(DataTable dataTable, string fieldId, string fieldParentId, string fieldFullName, TreeView treeView, TreeNode treeNode, bool loadTree = true) { BaseOrganizeEntity organizeEntity = new BaseOrganizeEntity(); // 查找 ParentId 字段的值是否在 Id字段 里 // 一般情况是简单的数据过滤,就没必要进行严格的检查了,进行了严格的检查,反而降低运行效率 DataRow[] dataRows = null; if (treeNode.Tag == null) { if (dataTable.Columns[fieldId].DataType == typeof(int) || (dataTable.Columns[fieldId].DataType == typeof(Int16)) || (dataTable.Columns[fieldId].DataType == typeof(Int32)) || (dataTable.Columns[fieldId].DataType == typeof(Int64)) || dataTable.Columns[fieldId].DataType == typeof(decimal)) { dataRows = dataTable.Select(fieldParentId + " IS NULL OR " + fieldParentId + " = 0"); } else { dataRows = dataTable.Select(fieldParentId + " IS NULL OR " + fieldParentId + " = ''"); } } else { dataRows = dataTable.Select(fieldParentId + "=" + ((BaseOrganizeEntity)treeNode.Tag).Id.ToString()); } foreach (DataRow dataRow in dataRows) { // 节点不为空,并且是当前节点的子节点 if ((treeNode.Tag != null) && !(((BaseOrganizeEntity)treeNode.Tag).Id.ToString().Equals(dataRow[fieldParentId].ToString()))) { continue; } // 当前节点的子节点, 加载根节点 if (dataRow.IsNull(fieldParentId) || (dataRow[fieldParentId].ToString() == "0") || (dataRow[fieldParentId].ToString().Length == 0) || ((treeNode.Tag != null) && (((BaseOrganizeEntity)treeNode.Tag).Id.ToString().Equals(dataRow[fieldParentId].ToString())))) { TreeNode newTreeNode = new TreeNode(); newTreeNode.Text = dataRow[fieldFullName].ToString(); newTreeNode.Tag = new BaseOrganizeEntity(dataRow); if ((treeNode.Tag == null)) { // 树的根节点加载 treeView.Nodes.Add(newTreeNode); } else { // 节点的子节点加载,第一层节点需要展开 treeNode.Nodes.Add(newTreeNode); } if (loadTree) { // 递归调用本函数 LoadTreeNodes(dataTable, fieldId, fieldParentId, fieldFullName, treeView, newTreeNode, loadTree); } } } }
partial void SetEntityExpand(SQLBuilder sqlBuilder, BaseOrganizeEntity organizeEntity);
/// <summary> /// 设置实体 /// </summary> /// <param name="organizeEntity">实体</param> private void SetEntity(SQLBuilder sqlBuilder, BaseOrganizeEntity organizeEntity) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldParentId, organizeEntity.ParentId); sqlBuilder.SetValue(BaseOrganizeEntity.FieldCode, organizeEntity.Code); sqlBuilder.SetValue(BaseOrganizeEntity.FieldShortName, organizeEntity.ShortName); sqlBuilder.SetValue(BaseOrganizeEntity.FieldFullName, organizeEntity.FullName); sqlBuilder.SetValue(BaseOrganizeEntity.FieldCategory, organizeEntity.Category); sqlBuilder.SetValue(BaseOrganizeEntity.FieldOuterPhone, organizeEntity.OuterPhone); sqlBuilder.SetValue(BaseOrganizeEntity.FieldInnerPhone, organizeEntity.InnerPhone); sqlBuilder.SetValue(BaseOrganizeEntity.FieldFax, organizeEntity.Fax); sqlBuilder.SetValue(BaseOrganizeEntity.FieldPostalcode, organizeEntity.Postalcode); sqlBuilder.SetValue(BaseOrganizeEntity.FieldAddress, organizeEntity.Address); sqlBuilder.SetValue(BaseOrganizeEntity.FieldWeb, organizeEntity.Web); sqlBuilder.SetValue(BaseOrganizeEntity.FieldIsInnerOrganize, organizeEntity.IsInnerOrganize); sqlBuilder.SetValue(BaseOrganizeEntity.FieldBank, organizeEntity.Bank); sqlBuilder.SetValue(BaseOrganizeEntity.FieldBankAccount, organizeEntity.BankAccount); sqlBuilder.SetValue(BaseOrganizeEntity.FieldDeletionStateCode, organizeEntity.DeletionStateCode); sqlBuilder.SetValue(BaseOrganizeEntity.FieldEnabled, organizeEntity.Enabled); sqlBuilder.SetValue(BaseOrganizeEntity.FieldSortCode, organizeEntity.SortCode); sqlBuilder.SetValue(BaseOrganizeEntity.FieldDescription, organizeEntity.Description); SetEntityExpand(sqlBuilder, organizeEntity); }
/// <summary> /// 更新实体 /// </summary> /// <param name="organizeEntity">实体</param> public int UpdateEntity(BaseOrganizeEntity organizeEntity) { SQLBuilder sqlBuilder = new SQLBuilder(DbHelper); sqlBuilder.BeginUpdate(this.CurrentTableName); this.SetEntity(sqlBuilder, organizeEntity); if (UserInfo != null) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseOrganizeEntity.FieldModifiedOn); sqlBuilder.SetWhere(BaseOrganizeEntity.FieldId, organizeEntity.Id); return sqlBuilder.EndUpdate(); }
/// <summary> /// 更新 /// </summary> /// <param name="organizeEntity">实体</param> public int Update(BaseOrganizeEntity organizeEntity) { return this.UpdateEntity(organizeEntity); }
/// <summary> /// 获取实体 /// </summary> /// <param name="id">主键</param> public BaseOrganizeEntity GetEntity(string id) { BaseOrganizeEntity organizeEntity = new BaseOrganizeEntity(this.GetDataTable(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldId, id))); return organizeEntity; }
/// <summary> /// 添加实体 /// </summary> /// <param name="organizeEntity">实体</param> public string AddEntity(BaseOrganizeEntity organizeEntity) { string sequence = string.Empty; if (organizeEntity.SortCode == 0) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.GetSequence(this.CurrentTableName); organizeEntity.SortCode = int.Parse(sequence); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseOrganizeEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldId, organizeEntity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2)) { if (DbHelper.CurrentDbType == DbTypes.Oracle) { sqlBuilder.SetFormula(BaseOrganizeEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == DbTypes.DB2) { sqlBuilder.SetFormula(BaseOrganizeEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2)) { if (organizeEntity.Id == null) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.GetSequence(this.CurrentTableName); } organizeEntity.Id = int.Parse(sequence); } sqlBuilder.SetValue(BaseOrganizeEntity.FieldId, organizeEntity.Id); } } } this.SetEntity(sqlBuilder, organizeEntity); if (UserInfo != null) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseOrganizeEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseOrganizeEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseOrganizeEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == DbTypes.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return sequence; }
/// <summary> /// 加载窗体 /// </summary> public override void FormOnLoad() { // 组织机构信息 this.organizeEntity = DotNetService.Instance.OrganizeService.GetEntity(UserInfo, this.EntityId); // 绑定下拉筐数据 this.BindItemDetails(); // 显示内容 this.ShowEntity(); // 获取岗位信息 this.GetRoleUser(); // 设置焦点 this.ActiveControl = this.txtFullName; this.txtCode.Focus(); }
/// <summary> /// 设置实体 /// </summary> /// <param name="organizeEntity">实体</param> partial void SetEntityExpand(SQLBuilder sqlBuilder, BaseOrganizeEntity organizeEntity) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldLayer, organizeEntity.Layer); }
/// <summary> /// 添加 /// </summary> /// <param name="organizeEntity">实体</param> /// <returns>主键</returns> public string Add(BaseOrganizeEntity organizeEntity) { return this.AddEntity(organizeEntity); }