/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseOrganizeLogOnEntity entity) { string result = string.Empty; if (string.IsNullOrEmpty(entity.Id)) { BaseSequenceManager manager = new BaseSequenceManager(DbHelper, this.Identity); result = manager.Increment(this.CurrentTableName); entity.Id = result; } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseOrganizeLogOnEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldId, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseOrganizeLogOnEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseOrganizeLogOnEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (entity.Id == null) { if (string.IsNullOrEmpty(result)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(this.CurrentTableName); } entity.Id = result; } sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); sqlBuilder.SetDBNow(BaseOrganizeLogOnEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { result = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); result = entity.Id; } return(result); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseBillPushEntity entity) { string key = string.Empty; if (entity.Id != null) { key = entity.Id.ToString(); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, this.PrimaryKey); if (!this.Identity) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.ReturnId = false; sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(this.PrimaryKey, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(this.PrimaryKey, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper); entity.Id = sequenceManager.Increment(this.CurrentTableName); sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseBillPushEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseBillPushEntity.FieldCreateOn); if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { key = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { return(entity.Id.ToString()); } return(key); }
/// <summary> /// 审批流程自由提交之前的判断函数,可以写在这里 /// </summary> /// <param name="workFlowAuditInfo">流转信息</param> /// <returns>成功</returns> public virtual bool BeforeAutoStatr(BaseWorkFlowAuditInfo workFlowAuditInfo) { if (string.IsNullOrEmpty(workFlowAuditInfo.CallBackTable)) { return(false); } // 3:按年生成单据编号。 string sequenceCode = string.Empty; // 1:状态为空的、草稿状态、被退回状态的,才可以启动工作流 string auditStatus = this.GetProperty(workFlowAuditInfo.Id, BaseBusinessLogic.FieldAuditStatus); if (string.IsNullOrEmpty(auditStatus) || auditStatus.Equals(AuditStatus.Draft.ToString())) { /* * if (!string.IsNullOrEmpty(entity.Source)) * { * if (newsEntity.Source.Equals("html")) * { * if (newsEntity.Contents.IndexOf("#DayCode#") > 0) * { * sequenceName = DateTime.Now.ToString("yyyyMMdd") + "_" + newsEntity.CategoryCode; * sequenceCode = DateTime.Now.ToString("yyyyMMdd") + "_" + sequenceManager.Increment(sequenceName, 1, 3, true); * entity.Contents = newsEntity.Contents.Replace("#DayCode#", sequenceCode); * entity.Code = sequenceCode; * } * } * } */ BaseSequenceManager sequenceManager = new BaseSequenceManager(this.DbHelper, this.UserInfo); // 没系统编号,自己生成一个编号 if (string.IsNullOrEmpty(sequenceCode)) { sequenceCode = sequenceManager.Increment(workFlowAuditInfo.ProcessCode, 1, 6, true); // newsEntity.Code = sequenceCode; } } // 4:修改单据表的状态,这里是成功了,才可以修改状态 // newsEntity.AuditStatus = AuditStatus.StartAudit.ToString(); // newsEntity.AuditStatusName = AuditStatus.StartAudit.ToDescription(); // 5:这里需要重新走流程后才可以生效 // newsEntity.Enabled = 0; List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseBusinessLogic.FieldEnabled, 0)); parameters.Add(new KeyValuePair <string, object>(BaseBusinessLogic.FieldDeletionStateCode, 0)); parameters.Add(new KeyValuePair <string, object>(BaseBusinessLogic.FieldAuditStatus, AuditStatus.StartAudit.ToString())); if (!string.IsNullOrEmpty(sequenceCode)) { parameters.Add(new KeyValuePair <string, object>(BaseBusinessLogic.FieldCode, sequenceCode)); } this.SetProperty(new KeyValuePair <string, object>(this.PrimaryKey, workFlowAuditInfo.Id), parameters); return(true); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseUserIdentityAuditEntity entity) { string key = string.Empty; SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, this.PrimaryKey); if (!this.Identity) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.ReturnId = false; sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(this.PrimaryKey, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(this.PrimaryKey, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper); entity.Id = int.Parse(sequenceManager.Increment(this.CurrentTableName)); sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { key = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { return(entity.Id.ToString()); } //非主键 关联外部ID if (this.ReturnId) { return(entity.Id.ToString()); } return(key); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddEntity(BaseContactTargetEntity entity) { string sequence = string.Empty; sequence = entity.Id; SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(BaseContactTargetEntity.TableName, BaseContactTargetEntity.FieldId); if (entity.Id is string) { this.Identity = false; } if (!this.Identity) { sqlBuilder.SetValue(BaseContactTargetEntity.FieldId, entity.Id); } else { if (!this.ReturnId && DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseContactTargetEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } else { if (this.Identity && DbHelper.CurrentDbType == CurrentDbType.Oracle) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); } entity.Id = sequence; sqlBuilder.SetValue(BaseContactTargetEntity.FieldId, entity.Id); } } } this.SetEntity(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseContactTargetEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseContactTargetEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseContactTargetEntity.FieldCreateOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }
/// <summary> /// 置底排序方法 /// </summary> /// <param name="dbHelper">当前数据库连接</param> /// <param name="tableName">表名</param> /// <param name="id">主键</param> /// <returns>影响行数</returns> public static int SetBottom(IDbHelper dbHelper, string tableName, string id) { BaseSequenceManager sequenceManager = new BaseSequenceManager(dbHelper); string sequence = sequenceManager.Increment(tableName); List <KeyValuePair <string, object> > whereParameters = new List <KeyValuePair <string, object> >(); whereParameters.Add(new KeyValuePair <string, object>(BaseBusinessLogic.FieldId, id)); List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseBusinessLogic.FieldSortCode, sequence)); return(DbLogic.SetProperty(dbHelper, tableName, whereParameters, parameters)); }
/// <summary> /// 获取新序列号 /// </summary> /// <param name="userInfo">用户</param> /// <param name="fullName">序列名称</param> /// <param name="defaultSequence">默认序列</param> /// <param name="sequenceLength">序列长度</param> /// <param name="fillZeroPrefix">是否填充补零</param> /// <returns>序列号</returns> public string GetNewSequence(BaseUserInfo userInfo, string fullName, int defaultSequence, int sequenceLength, bool fillZeroPrefix) { string result = string.Empty; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDbWithLock(userInfo, parameter, LOCK, (dbHelper) => { var sequenceManager = new BaseSequenceManager(dbHelper); result = sequenceManager.Increment(fullName, defaultSequence, sequenceLength, fillZeroPrefix); }); return(result); }
/// <summary> /// 添加实体 /// </summary> /// <param name="userInfo">操作员</param> /// <param name="entity">实体</param> /// <returns>主键</returns> public string AddEntity(BaseUserInfo userInfo, BaseContactEntity entity) { string sequence = string.Empty; sequence = entity.Id; if (entity.SortCode == 0) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); entity.SortCode = int.Parse(sequence); } if (entity.Id is string) { this.Identity = false; this.ReturnId = false; } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(BaseContactEntity.TableName, BaseContactEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BaseContactEntity.FieldId, entity.Id); } this.SetEntity(sqlBuilder, entity); if (userInfo != null) { sqlBuilder.SetValue(BaseContactEntity.FieldCreateUserId, userInfo.Id); sqlBuilder.SetValue(BaseContactEntity.FieldCreateBy, userInfo.RealName); } sqlBuilder.SetDBNow(BaseContactEntity.FieldCreateOn); if (userInfo != null) { sqlBuilder.SetValue(BaseContactEntity.FieldModifiedUserId, userInfo.Id); sqlBuilder.SetValue(BaseContactEntity.FieldModifiedBy, userInfo.RealName); } sqlBuilder.SetDBNow(BaseContactEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }
/// <summary> /// 置底排序(SortCode变小) /// </summary> /// <param name="dbHelper">当前数据库连接</param> /// <param name="tableName">表名</param> /// <param name="id">主键</param> /// <returns>影响行数</returns> public static int SetBottom(IDbHelper dbHelper, string tableName, string id) { var managerSequence = new BaseSequenceManager(dbHelper); //先重置一下,避免手动添加的数据造成功能无效 managerSequence.Reset(tableName); var sequence = managerSequence.Increment(tableName); var whereParameters = new List <KeyValuePair <string, object> > { new KeyValuePair <string, object>(BaseUtil.FieldId, id) }; var parameters = new List <KeyValuePair <string, object> > { new KeyValuePair <string, object>(BaseUtil.FieldSortCode, sequence) }; return(DbUtil.SetProperty(dbHelper, tableName, whereParameters, parameters)); }
/// <summary> /// 新增公司员工 /// </summary> /// <param name="employee"></param> /// <returns></returns> public bool AddEmployee(TAB_EMPLOYEEEntity employee) { try { BaseSequenceManager sequenceManager = new BaseSequenceManager(); TAB_EMPLOYEEManager employeeManager = new TAB_EMPLOYEEManager(); // 序列产生的ID,BaseUser表中员工的信息为负数 employee.ID = (-1) * int.Parse(sequenceManager.Increment("TAB_USER")); employee.UPDATETIME = DateTime.Now; //新增公司员工到K8库中 employeeManager.Add(employee, false, false); //添加公司员工成功成功后,同步到中天的baseuser表中 AfterUpdateEmployee(employee); return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseItemDetailsEntity entity) { string sequence = string.Empty; if (!entity.SortCode.HasValue) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); entity.SortCode = int.Parse(sequence); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseItemDetailsEntity.FieldId); if (!this.Identity || (entity.Id.HasValue && entity.Id != 0)) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldId, entity.Id); sequence = entity.Id.ToString(); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseItemDetailsEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseItemDetailsEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); } entity.Id = int.Parse(sequence); sqlBuilder.SetValue(BaseItemDetailsEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); // 创建人信息 if (!string.IsNullOrEmpty(entity.CreateUserId)) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldCreateUserId, entity.CreateUserId); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldCreateUserId, UserInfo.Id); } } if (!string.IsNullOrEmpty(entity.CreateBy)) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldCreateBy, entity.CreateBy); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldCreateBy, UserInfo.RealName); } } if (entity.CreateOn.HasValue) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldCreateOn, entity.CreateOn); } else { sqlBuilder.SetDBNow(BaseItemDetailsEntity.FieldCreateOn); } // 修改人信息 if (!string.IsNullOrEmpty(entity.ModifiedUserId)) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldModifiedUserId, entity.ModifiedUserId); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldModifiedUserId, UserInfo.Id); } } if (!string.IsNullOrEmpty(entity.ModifiedBy)) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldModifiedBy, entity.ModifiedBy); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldModifiedBy, UserInfo.RealName); } } if (entity.ModifiedOn.HasValue) { sqlBuilder.SetValue(BaseItemDetailsEntity.FieldModifiedOn, entity.ModifiedOn); } else { sqlBuilder.SetDBNow(BaseItemDetailsEntity.FieldModifiedOn); } if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddEntity(BaseDictionaryEntity entity) { var key = string.Empty; if (entity.SortCode == 0) { var managerSequence = new BaseSequenceManager(DbHelper, Identity); if (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2) { key = managerSequence.Increment($"SC_{CurrentTableName}_SEQ"); } else { key = managerSequence.Increment(CurrentTableName); } entity.SortCode = key.ToInt(); } var sqlBuilder = new SqlBuilder(DbHelper, Identity, ReturnId); sqlBuilder.BeginInsert(CurrentTableName, PrimaryKey); if (!Identity) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.ReturnId = false; sqlBuilder.SetValue(PrimaryKey, entity.Id); } else { if (!ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(PrimaryKey, $"{CurrentTableName}_SEQ.NEXTVAL"); } if (DbHelper.CurrentDbType == CurrentDbType.Db2) { sqlBuilder.SetFormula(PrimaryKey, $"NEXT VALUE FOR {CurrentTableName}_SEQ"); } } else { if (Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2)) { var managerSequence = new BaseSequenceManager(DbHelper); entity.Id = managerSequence.Increment($"{CurrentTableName}_SEQ").ToInt(); sqlBuilder.SetValue(PrimaryKey, entity.Id); } } } SetEntity(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseDictionaryEntity.FieldCreateUserId, UserInfo.UserId); sqlBuilder.SetValue(BaseDictionaryEntity.FieldCreateUserName, UserInfo.UserName); sqlBuilder.SetValue(BaseDictionaryEntity.FieldCreateBy, UserInfo.RealName); } else { sqlBuilder.SetValue(BaseDictionaryEntity.FieldCreateBy, entity.CreateBy); sqlBuilder.SetValue(BaseDictionaryEntity.FieldCreateUserName, entity.CreateUserName); } sqlBuilder.SetDbNow(BaseDictionaryEntity.FieldCreateTime); sqlBuilder.SetValue(BaseDictionaryEntity.FieldCreateIp, Utils.GetIp()); if (UserInfo != null) { sqlBuilder.SetValue(BaseDictionaryEntity.FieldUpdateUserId, UserInfo.UserId); sqlBuilder.SetValue(BaseDictionaryEntity.FieldUpdateUserName, UserInfo.UserName); sqlBuilder.SetValue(BaseDictionaryEntity.FieldUpdateBy, UserInfo.RealName); } sqlBuilder.SetDbNow(BaseDictionaryEntity.FieldUpdateTime); sqlBuilder.SetValue(BaseDictionaryEntity.FieldUpdateIp, Utils.GetIp()); if (Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { key = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } if (Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2)) { key = entity.Id.ToString(); } if (!string.IsNullOrWhiteSpace(key)) { RemoveCache(); } return(key); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseCommentEntity entity) { string sequence = string.Empty; this.Identity = false; if (entity.Id != null) { sequence = entity.Id.ToString(); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseCommentEntity.FieldId); if (!this.Identity) { if (string.IsNullOrEmpty(entity.Id)) { sequence = Guid.NewGuid().ToString("N"); entity.Id = sequence; } sqlBuilder.SetValue(BaseCommentEntity.FieldId, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseCommentEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseCommentEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (string.IsNullOrEmpty(entity.Id)) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); } entity.Id = sequence; } sqlBuilder.SetValue(BaseCommentEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseCommentEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseCommentEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseCommentEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseCommentEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseCommentEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseCommentEntity.FieldModifiedOn); if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseHolidaysEntity entity) { string sequence = string.Empty; SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseHolidaysEntity.FieldId); if (entity.Id != null || !this.Identity) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.ReturnId = false; sqlBuilder.SetValue(BaseHolidaysEntity.FieldId, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseHolidaysEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseHolidaysEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (entity.Id == null) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); } entity.Id = int.Parse(sequence); } sqlBuilder.SetValue(BaseHolidaysEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseHolidaysEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseHolidaysEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseHolidaysEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseHolidaysEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseHolidaysEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseHolidaysEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseUserEntity entity) { string result = string.Empty; if (entity.SortCode == 0) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(this.CurrentTableName); entity.SortCode = int.Parse(result); } // 2015-12-11 吉日嘎拉 全部小写,提高Oracle的效率 entity.QuickQuery = StringUtil.GetPinyin(entity.RealName).ToLower(); entity.SimpleSpelling = StringUtil.GetSimpleSpelling(entity.RealName).ToLower(); SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseUserEntity.FieldId); if (DbHelper.CurrentDbType == CurrentDbType.MySql && string.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString("N"); result = entity.Id; } if (!this.Identity || !string.IsNullOrEmpty(entity.Id)) { sqlBuilder.SetValue(BaseUserEntity.FieldId, entity.Id); result = entity.Id; } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseUserEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseUserEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (entity.Id == null) { if (string.IsNullOrEmpty(result)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(this.CurrentTableName); } entity.Id = result; } sqlBuilder.SetValue(BaseUserEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseUserEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseUserEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseUserEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseUserEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseUserEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseUserEntity.FieldModifiedOn); // 2015-12-16 吉日嘎拉 优化返回值问题、提高自增Id导入的问题的效率,关联数据产生问题 if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.MySql)) { result = sqlBuilder.EndInsert().ToString(); entity.Id = result; } else { sqlBuilder.EndInsert(); } return(result); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseItemsEntity entity) { string result = string.Empty; if (entity.SortCode == 0) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(this.CurrentTableName); entity.SortCode = int.Parse(result); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseItemsEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BaseItemsEntity.FieldId, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { // // 2015-09-25 吉日嘎拉 用一个序列就可以了,不用那么多序列了 // sqlBuilder.SetFormula(BaseItemsEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); sqlBuilder.SetFormula(BaseItemsEntity.FieldId, "SEQ_" + BaseItemsEntity.TableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { // sqlBuilder.SetFormula(BaseItemsEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); sqlBuilder.SetFormula(BaseItemsEntity.FieldId, "NEXT VALUE FOR SEQ_" + BaseItemsEntity.TableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (string.IsNullOrEmpty(result)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(this.CurrentTableName); } entity.Id = int.Parse(result); sqlBuilder.SetValue(BaseItemsEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseItemsEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseItemsEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseItemsEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseItemsEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseItemsEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseItemsEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { result = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(result); }
/// <summary> /// 添加实体 /// </summary> /// <param name="baseWorkFlowHistoryEntity">实体</param> public string AddObject(BaseWorkFlowHistoryEntity baseWorkFlowHistoryEntity) { string sequence = string.Empty; if (baseWorkFlowHistoryEntity.SortCode == null || baseWorkFlowHistoryEntity.SortCode == 0) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); baseWorkFlowHistoryEntity.SortCode = int.Parse(sequence); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseWorkFlowHistoryEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BaseWorkFlowHistoryEntity.FieldId, baseWorkFlowHistoryEntity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseWorkFlowHistoryEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseWorkFlowHistoryEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (baseWorkFlowHistoryEntity.Id == null) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); } baseWorkFlowHistoryEntity.Id = int.Parse(sequence); } sqlBuilder.SetValue(BaseWorkFlowHistoryEntity.FieldId, baseWorkFlowHistoryEntity.Id); } } } this.SetObject(sqlBuilder, baseWorkFlowHistoryEntity); if (UserInfo != null) { sqlBuilder.SetValue(BaseWorkFlowHistoryEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseWorkFlowHistoryEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseWorkFlowHistoryEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseWorkFlowHistoryEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseWorkFlowHistoryEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseWorkFlowHistoryEntity.FieldModifiedOn); if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }
/// <summary> /// 获取序列号 /// </summary> /// <param name="dbHelper">数据库连接</param> /// <param name="userInfo">用户</param> /// <param name="fullName">序列名称</param> /// <returns>序列号</returns> public string Increment(IDbHelper dbHelper, BaseUserInfo userInfo, string fullName) { var sequenceManager = new BaseSequenceManager(dbHelper); return(sequenceManager.Increment(fullName)); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseOrganizeEntity entity) { string result = string.Empty; if (!entity.SortCode.HasValue) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(this.CurrentTableName); entity.SortCode = int.Parse(result); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseOrganizeEntity.FieldId); if (string.IsNullOrEmpty(entity.Id) && DbHelper.CurrentDbType == CurrentDbType.MySql) { entity.Id = Guid.NewGuid().ToString("N"); } if (!string.IsNullOrEmpty(entity.Id) || !this.Identity) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldId, entity.Id); } else { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseOrganizeEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseOrganizeEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } this.SetObject(sqlBuilder, entity); // 创建人信息 if (!string.IsNullOrEmpty(entity.CreateUserId)) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldCreateUserId, entity.CreateUserId); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldCreateUserId, UserInfo.Id); } } if (!string.IsNullOrEmpty(entity.CreateBy)) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldCreateBy, entity.CreateBy); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldCreateBy, UserInfo.RealName); } } if (entity.CreateOn.HasValue) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldCreateOn, entity.CreateOn); } else { sqlBuilder.SetDBNow(BaseOrganizeEntity.FieldCreateOn); } // 修改人信息 if (!string.IsNullOrEmpty(entity.ModifiedUserId)) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedUserId, entity.ModifiedUserId); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedUserId, UserInfo.Id); } } if (!string.IsNullOrEmpty(entity.ModifiedBy)) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedBy, entity.ModifiedBy); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedBy, UserInfo.RealName); } } if (entity.ModifiedOn.HasValue) { sqlBuilder.SetValue(BaseOrganizeEntity.FieldModifiedOn, entity.ModifiedOn); } else { sqlBuilder.SetDBNow(BaseOrganizeEntity.FieldModifiedOn); } if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.MySql)) { result = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(result); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseFileEntity entity) { string sequence = string.Empty; sequence = entity.Id; if (entity.SortCode == 0) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); entity.SortCode = int.Parse(sequence); } if (entity.Id is string) { this.Identity = false; } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseFileEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BaseFileEntity.FieldId, entity.Id); } else { if (!this.ReturnId && DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseFileEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } else { if (this.Identity && DbHelper.CurrentDbType == CurrentDbType.Oracle) { if (string.IsNullOrEmpty(entity.Id)) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); } entity.Id = sequence; } sqlBuilder.SetValue(BaseFileEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseFileEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseFileEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseFileEntity.FieldCreateOn); // 这里主要是为了列表里的数据库更好看 sqlBuilder.SetValue(BaseFileEntity.FieldModifiedUserId, entity.ModifiedUserId); sqlBuilder.SetValue(BaseFileEntity.FieldModifiedBy, entity.ModifiedBy); sqlBuilder.SetValue(BaseFileEntity.FieldModifiedOn, entity.ModifiedOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }
/// <summary> /// 添加实体 /// 全局的角色不重复、多子系统之间的角色不重复,就厉害了,以后可以合并到一起也没关系了 /// 通用基础子系统里的角色,可能在各子系统里也有权限需要设置的情况 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseRoleEntity entity) { string result = string.Empty; if (entity.SortCode == 0) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(BaseRoleEntity.TableName); entity.SortCode = int.Parse(result); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseRoleEntity.FieldId); // 若是非空主键,表明已经指定了主键了 if (!string.IsNullOrEmpty(entity.Id)) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.SetValue(BaseRoleEntity.FieldId, entity.Id); result = entity.Id; } else { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { // 2015-12-23 吉日嘎拉 这里需要兼容一下以前的老的数据结构 sqlBuilder.SetFormula(this.PrimaryKey, "SEQ_" + BaseRoleEntity.TableName.ToUpper() + ".NEXTVAL "); } else { entity.Id = Guid.NewGuid().ToString("N"); result = entity.Id; sqlBuilder.SetValue(BaseRoleEntity.FieldId, entity.Id); } } this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseRoleEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BaseRoleEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseRoleEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BaseRoleEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseRoleEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BaseRoleEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { result = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(result); }
/// <summary> /// 获取序列号 /// </summary> /// <param name="dbHelper">数据库连接</param> /// <param name="userInfo">用户</param> /// <param name="name">序列名称</param> /// <returns>序列号</returns> public string Increment(IDbHelper dbHelper, BaseUserInfo userInfo, string name) { var managerSequence = new BaseSequenceManager(dbHelper, userInfo); return(managerSequence.Increment(name)); }