/// <summary> /// 更新修改记录 /// </summary> /// <param name="oldShow"> </param> /// <param name="newShow"> </param> public void UpdateModifyRecord(BaseTemplateEntity oldShow, BaseTemplateEntity newShow, string tableName = null) { if (string.IsNullOrEmpty(tableName)) { tableName = this.CurrentTableName + "_LOG"; } BaseModifyRecordManager manager = new BaseModifyRecordManager(DbHelper, this.UserInfo, tableName); foreach (var property in typeof(BaseTemplateEntity).GetProperties()) { var fieldDescription = property.GetCustomAttributes(typeof(FieldDescription), false).FirstOrDefault() as FieldDescription; var oldValue = Convert.ToString(property.GetValue(oldShow, null)); var newValue = Convert.ToString(property.GetValue(newShow, null)); if (!fieldDescription.NeedLog || oldValue == newValue) { continue; } var record = new BaseModifyRecordEntity(); record.ColumnCode = property.Name.ToUpper(); record.ColumnDescription = fieldDescription.Text; record.NewValue = newValue; record.OldValue = oldValue; record.TableCode = BaseTemplateEntity.TableName.ToUpper(); record.TableDescription = FieldExtensions.ToDescription(typeof(BaseTemplateEntity), "TableName"); record.RecordKey = oldShow.Id.ToString(); record.IPAddress = DotNet.Business.Utilities.GetIPAddress(true); record.CreateBy = UserInfo.RealName; record.CreateOn = DateTime.Now; manager.Add(record, true, false); } }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseTemplateEntity 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); sqlBuilder.SetDBNow(BaseTemplateEntity.FieldCreateOn); sqlBuilder.SetDBNow(BaseTemplateEntity.FieldModifiedOn); 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="entity">实体</param> public int UpdateObject(BaseTemplateEntity entity) { SQLBuilder sqlBuilder = new SQLBuilder(DbHelper); sqlBuilder.BeginUpdate(this.CurrentTableName); this.SetObject(sqlBuilder, entity); sqlBuilder.SetDBNow(BaseTemplateEntity.FieldModifiedOn); sqlBuilder.SetWhere(this.PrimaryKey, entity.Id); return(sqlBuilder.EndUpdate()); }
/// <summary> /// 获取选中节点文件路径 /// </summary> /// <returns></returns> private string GetSelectPath() { BaseTemplateEntity templateEntity = _baseTemplateManager.GetList <BaseTemplateEntity>(new KeyValuePair <string, object>(BaseTemplateEntity.FieldId, treeView1.SelectedNode.Name)).FirstOrDefault(); if (templateEntity != null) { return(templateEntity.FilePath); } return(""); }
/// <summary> /// 设置实体 /// </summary> /// <param name="entity">实体</param> private void SetObject(SQLBuilder sqlBuilder, BaseTemplateEntity entity) { SetObjectExpand(sqlBuilder, entity); sqlBuilder.SetValue(BaseTemplateEntity.FieldExpressId, entity.ExpressId); sqlBuilder.SetValue(BaseTemplateEntity.FieldCreateUserName, entity.CreateUserName); sqlBuilder.SetValue(BaseTemplateEntity.FieldModifiedUserName, entity.ModifiedUserName); sqlBuilder.SetValue(BaseTemplateEntity.FieldLength, entity.Length); sqlBuilder.SetValue(BaseTemplateEntity.FieldRemark, entity.Remark); sqlBuilder.SetValue(BaseTemplateEntity.FieldName, entity.Name); sqlBuilder.SetValue(BaseTemplateEntity.FieldBackgroundImagePath, entity.BackgroundImagePath); sqlBuilder.SetValue(BaseTemplateEntity.FieldWidth, entity.Width); sqlBuilder.SetValue(BaseTemplateEntity.FieldLayer, entity.Layer); sqlBuilder.SetValue(BaseTemplateEntity.FieldFilePath, entity.FilePath); }
// 这个是声明扩展方法 partial void SetObjectExpand(SQLBuilder sqlBuilder, BaseTemplateEntity entity);
/// <summary> /// 更新 /// </summary> /// <param name="entity">实体</param> public int Update(BaseTemplateEntity entity) { return(this.UpdateObject(entity)); }
/// <summary> /// 添加, 这里可以人工干预,提高程序的性能 /// </summary> /// <param name="entity">实体</param> /// <param name="identity">自增量方式,表主键是否采用自增的策略</param> /// <param name="returnId">返回主键,不返回程序允许速度会快,主要是为了主细表批量插入数据优化用的</param> /// <returns>主键</returns> public string Add(BaseTemplateEntity entity, bool identity = false, bool returnId = false) { this.Identity = identity; this.ReturnId = returnId; return(this.AddObject(entity)); }
/// <summary> /// 将打印数据添加到备份库里面,方便查询使用 /// </summary> /// <param name="list">打印记录实体集合</param> /// <param name="tempEntity">默认快递公司模板实体</param> /// <returns>受影响行数</returns> public int AddHistory(List <ZtoPrintBillEntity> list, BaseTemplateEntity tempEntity) { var maxId = this.DbHelper.ExecuteScalar("SELECT MAX(Id) FROM ZTO_PRINT_BILL").ToString(); var currentId = 0; var resultCount = 0; if (!string.IsNullOrEmpty(maxId)) { currentId = Convert.ToInt32(maxId); } // 检查默认模板是否存在,存在就把快递公司ID赋值给打印记录,表示这个打印记录是哪个公司的单子 if (tempEntity != null) { //using (IDbHelper dbHelper = DbHelperFactory.GetHelper(CurrentDbType.SQLite, BillPrintHelper.BillPrintBackConnectionString)) //{ // try // { // dbHelper.BeginTransaction(); foreach (ZtoPrintBillEntity printBill in list) { if (this.Exists(new KeyValuePair <string, object>(ZtoPrintBillEntity.FieldBillCode, printBill.BillCode), new KeyValuePair <string, object>(ZtoPrintBillEntity.FieldOrderNumber, printBill.OrderNumber))) { continue; } if (!string.IsNullOrEmpty(printBill.BillCode)) // && !string.IsNullOrEmpty(printBill.OrderNumber) { ++currentId; printBill.Id = currentId; printBill.ExpressId = tempEntity.ExpressId.ToString(); Add(printBill); ++resultCount; } } // dbHelper.CommitTransaction(); //} //catch (Exception ex) //{ // dbHelper.RollbackTransaction(); //} //} } else { //using (IDbHelper dbHelper = DbHelperFactory.GetHelper(CurrentDbType.SQLite, BillPrintHelper.BillPrintBackConnectionString)) //{ // try // { // dbHelper.BeginTransaction(); // 找不到默认的快递公司就不用赋值了 foreach (ZtoPrintBillEntity printBill in list) { if (this.Exists(new KeyValuePair <string, object>(ZtoPrintBillEntity.FieldBillCode, printBill.BillCode), new KeyValuePair <string, object>(ZtoPrintBillEntity.FieldOrderNumber, printBill.OrderNumber))) { continue; } if (!string.IsNullOrEmpty(printBill.BillCode) && !string.IsNullOrEmpty(printBill.OrderNumber)) { ++currentId; printBill.Id = currentId; Add(printBill); ++resultCount; } } // dbHelper.CommitTransaction(); //} //catch (Exception ex) //{ // dbHelper.RollbackTransaction(); //} //} } return(resultCount); }