130 lines
5.0 KiB
C#
130 lines
5.0 KiB
C#
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using WCS.BLL.Config;
|
|
using WCS.BLL.DbModels;
|
|
using WCS.BLL.HardWare;
|
|
using WCS.DAL;
|
|
using WCS.DAL.Db;
|
|
using WCS.DAL.Db.AuthDb;
|
|
using WCS.DAL.DbModels;
|
|
|
|
namespace WCS.BLL.Manager
|
|
{
|
|
public static class DbInit
|
|
{
|
|
public static void InitDb()
|
|
{
|
|
Logs.Write("【初始化数据库】开始", LogsType.StartBoot);
|
|
//初始化数据库对象
|
|
if (LocalFile.Config.IsMx)
|
|
{
|
|
DbHelp.db = new SqlSugarScope(new ConnectionConfig()
|
|
{
|
|
ConnectionString = LocalFile.Config.DataDbPath,
|
|
DbType = DbType.SqlServer,//[Sqlite]安装[System.Data.SQLite];
|
|
IsAutoCloseConnection = true
|
|
}, db =>
|
|
{
|
|
db.Aop.OnError = ex =>
|
|
{
|
|
};
|
|
});
|
|
|
|
DbHelp.dbLog = new SqlSugarScope(new ConnectionConfig()
|
|
{
|
|
ConnectionString = LocalFile.Config.LogDbPath,
|
|
DbType = DbType.SqlServer,//[Sqlite]安装[System.Data.SQLite];
|
|
IsAutoCloseConnection = true
|
|
}, db =>
|
|
{
|
|
db.Aop.OnError = ex =>
|
|
{
|
|
};
|
|
});
|
|
|
|
AuthDbHelp.db = new SqlSugarScope(new ConnectionConfig()
|
|
{
|
|
ConnectionString = LocalFile.Config.AuthDbPath,
|
|
DbType = DbType.SqlServer,//[Sqlite]安装[System.Data.SQLite];
|
|
IsAutoCloseConnection = true
|
|
}, db =>
|
|
{
|
|
db.Aop.OnError = ex =>
|
|
{
|
|
};
|
|
});
|
|
Logs.Write("【初始化数据库】MX", LogsType.StartBoot);
|
|
}
|
|
//手动修改后台配置后再进行CodeFirst 数据库的生成、表的生成
|
|
if (LocalFile.Config.IsResetDBOrTable)
|
|
{
|
|
#region 建库建表 只在表有变动时运行
|
|
DbHelp.db.DbMaintenance.CreateDatabase();
|
|
DbHelp.dbLog.DbMaintenance.CreateDatabase();
|
|
Logs.Write("【初始化数据库】创建数据库", LogsType.StartBoot);
|
|
|
|
DbHelp.db.CodeFirst.InitTables(typeof(ModuleInfo), typeof(ShelfInfo), typeof(StoreInfo)
|
|
, typeof(InventoryDetail), typeof(OutOrder), typeof(OutOrderDetail), typeof(OutOrderMatDetail)
|
|
, typeof(ShelfTypeInfo), typeof(MatBaseInfo), typeof(MatInfo)
|
|
, typeof(StockTakingOrder), typeof(StockTakingOrderMatDetail), typeof(InOutRecord)
|
|
, typeof(DocumentSerialNumber)
|
|
);
|
|
Logs.Write("【初始化数据库】db建表", LogsType.StartBoot);
|
|
|
|
DbHelp.dbLog.CodeFirst.InitTables(typeof(SystemApiLogRecord));
|
|
Logs.Write("【初始化数据库】logdb建表", LogsType.StartBoot);
|
|
|
|
//初始化单据序列号数据
|
|
if (!DbHelp.db.Queryable<DocumentSerialNumber>().Any())
|
|
{
|
|
var outDocumentSerialNumber = new DocumentSerialNumber()
|
|
{
|
|
DocumentType = DocumentTypeEnum.出库单据,
|
|
UpdateDate = DateTime.Now,
|
|
CurrentSerialNumber = 0
|
|
};
|
|
|
|
var stockTakingDocumentSerialNumber = new DocumentSerialNumber()
|
|
{
|
|
DocumentType = DocumentTypeEnum.盘点单据,
|
|
UpdateDate = DateTime.Now,
|
|
CurrentSerialNumber = 0
|
|
};
|
|
|
|
DbHelp.db.Insertable(outDocumentSerialNumber).ExecuteCommand();
|
|
DbHelp.db.Insertable(stockTakingDocumentSerialNumber).ExecuteCommand();
|
|
}
|
|
Logs.Write("【初始化数据库】DocumentSerialNumber", LogsType.StartBoot);
|
|
|
|
//初始化货架类型
|
|
if (!DbHelp.db.Queryable<ShelfTypeInfo>().Any())
|
|
{
|
|
var smartShelf = new ShelfTypeInfo()
|
|
{
|
|
ShelfTypeName = "智能货架"
|
|
};
|
|
var singleLight = new ShelfTypeInfo()
|
|
{
|
|
ShelfTypeName = "信息化货架"
|
|
};
|
|
DbHelp.db.Insertable(smartShelf).ExecuteCommand();
|
|
DbHelp.db.Insertable(singleLight).ExecuteCommand();
|
|
}
|
|
Logs.Write("【初始化数据库】初始化货架类型", LogsType.StartBoot);
|
|
|
|
//初始化权限数据库
|
|
AuthDbHelp.InitDb();
|
|
#endregion
|
|
|
|
LocalFile.Config.IsResetDBOrTable = false;
|
|
LocalFile.SaveConfig();
|
|
}
|
|
Logs.Write("【初始化数据库】结束", LogsType.StartBoot);
|
|
}
|
|
}
|
|
}
|