135 lines
5.6 KiB
C#
135 lines
5.6 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 =>
|
||
{
|
||
};
|
||
});
|
||
|
||
//sqlserver保存接口日志时因为每个字段要限制长度,当接口返回内容长度过长会报错
|
||
//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), typeof(OrderLight), typeof(MatInfoLog)
|
||
, typeof(AppVersion)
|
||
,typeof(CurrentTask),typeof(FinishedTask), typeof(UploadededTask)
|
||
);
|
||
|
||
//DbHelp.db.CodeFirst.InitTables(typeof(ShelfInfo));
|
||
|
||
Logs.Write("【初始化数据库】db(业务数据库)建表", LogsType.StartBoot);
|
||
DbHelp.dbLog.CodeFirst.InitTables(typeof(SystemApiLogRecord));
|
||
Logs.Write("【初始化数据库】dblog(日志数据库)建表", 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);
|
||
}
|
||
}
|
||
}
|