using Furion.DistributedIDGenerator; using Microsoft.Extensions.Hosting; using MiniExcelLibs; using Nirvana.Common; using SqlSugar; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using YBDevice.Entity; using YBDevice.Entity.DataModel.ThirdOpen; namespace YBDevice.CreateDB { public class DbMigratorHostedService : BackgroundService { private readonly ISqlSugarRepository repository; private readonly SqlSugarClient Db; private const bool IsCreateTable = true; public DbMigratorHostedService(ISqlSugarRepository sqlSugarRepository) { repository = sqlSugarRepository; Db = repository.Context; } public override Task StartAsync(CancellationToken cancellationToken) { Console.WriteLine("开始迁移数据库!"); return base.StartAsync(cancellationToken); } /// /// 开始执行迁移 /// /// /// protected override async Task ExecuteAsync(CancellationToken stoppingToken) { await Create(false, 50, // typeof(YB_Account), // typeof(YB_BannerEqu), // typeof(YB_FamilyData), // typeof(YB_FamilyRealData), // typeof(YB_LXBodyType), // typeof(YB_LXBodyQA), // typeof(YB_LXBodyAns), // typeof(YB_LXBodyGuide), // typeof(YB_LXBodyResult), // typeof(YB_DeviceAlloc), // typeof(YB_SecInfoType), // typeof(YB_Order), // typeof(YB_RegUser), // typeof(YB_UserEqu), // typeof(YB_UserWX), // typeof(YB_UserLastData), // typeof(YB_nResult), // typeof(YB_nMeasureResult), // typeof(YB_nResultAdd), // typeof(YB_nUserResult), // typeof(YB_NoticeLogger), // typeof(YB_DeviceType), // typeof(YB_DeviceTypeExt), // typeof(YB_DeviceTypeApp), // typeof(YB_nBodyMeasure), // typeof(YB_PrintCode), // typeof(YB_PrintCodeEqu), // typeof(YB_nSecInfo), // typeof(YB_nSecInfoAppId), // typeof(YB_nSecInfoContent), // typeof(YB_nMenu), // typeof(YB_nMenuAction), // typeof(YB_nRole), // typeof(YB_nRoleAction), // typeof(YB_nRoleMenu), // typeof(YB_MiniProgramSubscribeMessageTpl), // typeof(YB_UserSubscribeMessage), // typeof(YB_WXCustomService), // typeof(YB_ChildrenPrescription), // typeof(YB_ChildPrescriptionByAge), typeof(YB_ChildPhysique), typeof(YB_ChildPhysiqueResult), typeof(YB_ChildPhysiqueResultDetail), typeof(YB_ChildBodyQA), typeof(YB_ChildBodyDetail), typeof(YB_UserChildBody), // typeof(YB_NewHeightStand), // typeof(YB_NewWeightStand), // typeof(YB_BmiStand), // typeof(YB_HeadStand), // typeof(T_RegUser), //typeof(T_Result), //typeof(T_UserWX), //typeof(T_Family), //typeof(T_FamilyData), //typeof(YB_AuditLogger) typeof(AB_HeightStand), typeof(AB_WeightStand), typeof(AB_Prescription), typeof(AB_PrescriptionByAge) ); } public override Task StopAsync(CancellationToken cancellationToken) { Console.WriteLine("迁移完成!"); return base.StopAsync(cancellationToken); } /// /// 创建数据库 /// /// /// /// 表名,params关键字表示可以使用任意数量的type类型参数 private async Task Create(bool Backup = false, int StringDefaultLength = 50, params Type[] types) { if (IsCreateTable) { Db.CodeFirst.SetStringDefaultLength(StringDefaultLength); Db.DbMaintenance.CreateDatabase(); if (Backup) { Db.CodeFirst.BackupTable().InitTables(types); } else { Db.CodeFirst.InitTables(types); } } #region 初始化种子 if (Db.DbMaintenance.IsAnyTable("YB_LXBodyType") && await Db.Queryable().CountAsync() == 0) { List list = new List(); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-6ef8-4ff2-8fb5-fab7a89af4f3"), CreateTime = DateTime.Now, Name = "平和型", IsPH = 1 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-7cbf-4d85-8c74-5b844f3f2dd3"), CreateTime = DateTime.Now, Name = "气虚型", IsPH = 0 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-82f0-402e-8686-2830c8964813"), CreateTime = DateTime.Now, Name = "阳虚型", IsPH = 0 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-8920-4193-8f58-eba41dcfc407"), CreateTime = DateTime.Now, Name = "阴虚型", IsPH = 0 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-8f41-4449-8a22-bce63f83dc7a"), CreateTime = DateTime.Now, Name = "痰湿型", IsPH = 0 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-955b-44ad-8b7d-04c7fcd5e49b"), CreateTime = DateTime.Now, Name = "湿热型", IsPH = 0 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-9b1a-46ac-8aa1-b1da911444aa"), CreateTime = DateTime.Now, Name = "血瘀型", IsPH = 0 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-a0a3-4802-83b1-dbd50895b0aa"), CreateTime = DateTime.Now, Name = "气郁型", IsPH = 0 }); list.Add(new YB_LXBodyType { Id = Guid.Parse("08d94d78-a563-4419-8810-1cf41f606b17"), CreateTime = DateTime.Now, Name = "特禀型", IsPH = 0 }); Db.Insertable(list).ExecuteCommand(); } if (Db.DbMaintenance.IsAnyTable("YB_LXBodyQA") && await Db.Queryable().CountAsync() == 0) { List list = new List(); int isrequired = 0; List titlelist = new List() { "您精力充沛吗","您容易疲惫吗","您说话声音低弱无力吗","您赶到闷闷不乐、情绪低沉吗", "您比一般人耐受不了寒冷(冬天的寒冷,夏天的冷空调、电扇)吗","您能适应外界自然和社会环境的变化吗", "您容易失眠吗","您容易忘事(健忘)吗" }; for (var i = 0; i < titlelist.Count; i++) { if (i == 1 || i == 2 || i == 3 || i == 4 || i == 6 || i == 7) { isrequired = 1; } else { isrequired = 0; } list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-6ef8-4ff2-8fb5-fab7a89af4f3"), IsSex = 0 }); } titlelist = new List() { "您容易疲乏吗","您容易气短(呼吸短促,接不上气)吗","您容易心慌吗","您容易头晕或站起时晕眩吗", "您比别人容易患感冒吗", "您喜欢安静、懒得说话吗","您说话声音无力吗","您活动量稍大就容易出虚汗吗" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-7cbf-4d85-8c74-5b844f3f2dd3"), IsSex = 0 }); } titlelist = new List() { "您手脚发凉吗","您胃脘部、背部或腰膝部怕冷吗","您感到怕冷、衣服比别人穿的多吗","您比一般人耐受不了寒冷(冬天的寒冷,夏天的冷空调、电扇等)吗", "您比别人容易患感冒吗", "您吃(喝)凉的东西会感到不舒服或怕吃(喝)凉东西吗","您受凉或吃(喝)凉的东西后,容易腹泻(拉肚子)吗" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-82f0-402e-8686-2830c8964813"), IsSex = 0 }); } titlelist = new List() { "您感到手脚心发热吗","您感觉身体、脸上发热吗","您皮肤或口唇干吗","您口唇的颜色比一般人红吗", "您容易便秘或大便干燥吗", "您面部两颧潮红或偏红吗","您感到眼睛干涩吗","您感到口干舌燥,总想喝水吗" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-8920-4193-8f58-eba41dcfc407"), IsSex = 0 }); } titlelist = new List() { "您感到胸闷或腹部胀满吗","您感到身体沉重不轻松或不爽快吗","您腹部肥满松软吗","您有额部油脂分泌多的现象吗", "您上眼睑比别人肿(轻微隆起的现象)吗", "您嘴里有黏黏的感觉吗","您受平时痰多,特别是咽喉部总感到有痰堵着吗","您舌苔厚腻或有舌苔厚厚的感觉吗" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-8f41-4449-8a22-bce63f83dc7a"), IsSex = 0 }); } titlelist = new List() { "您面部或鼻部有油腻感或有油光发亮吗","您容易生痤疮或疮疖吗","您感到口苦或嘴里有异味吗","您大便粘滞不爽、解不尽的感觉吗", "您小便时尿道有发热感、尿色浓吗", "您带下色黄(白带颜色发黄)吗(限女性回答)","您的阴囊部位潮湿吗(限男性回答)" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-955b-44ad-8b7d-04c7fcd5e49b"), IsSex = i == 5 ? 1 : (i == 6 ? 2 : 0) }); } titlelist = new List() { "您的皮肤在不知不觉中会出现青紫瘀斑(皮下出血)吗","您两颧部有细微红丝吗","您身体上有哪里疼痛吗","您面色晦暗或容易出现褐斑吗", "您容易有黑眼圈吗", "您容易忘事或健忘吗","您口唇颜色偏暗吗" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-9b1a-46ac-8aa1-b1da911444aa") }); } titlelist = new List() { "您感到闷闷不乐吗","您容易精神紧张、焦虑不安吗","您多愁善感、感情脆弱吗","您容易感到害怕或受到惊吓吗", "您胁肋部或乳房胀痛吗", "您无缘无故叹气吗","您咽喉部有异物感,且吐之不出、咽之不下吗" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-a0a3-4802-83b1-dbd50895b0aa") }); } titlelist = new List() { "您没有感冒时也会打喷嚏吗","您没有感冒时也会鼻塞、流鼻涕吗","您有因季节变化、温度变化或异味等原因而咳喘的现象吗","您容易过敏(对药物、食物、气味、花粉、季节交替、气候变化时)吗", "您的皮肤容易起荨麻疹(风团、风疹块、风疙瘩)吗", "您的皮肤因过敏出现过紫癜(紫红色淤点、瘀斑)吗","您的皮肤一抓就红,并出现抓痕吗" }; for (var i = 0; i < titlelist.Count; i++) { isrequired = 0; list.Add(new YB_LXBodyQA { Id = Guid.NewGuid(), SomeValue = 3, SortCode = i + 1, AlWaysValue = 5, CreateTime = DateTime.Now, LittleValue = 2, NoneValue = 1, OftenValue = 4, Title = titlelist[i], IsRequired = isrequired, TypeId = Guid.Parse("08d94d78-a563-4419-8810-1cf41f606b17") }); } Db.Insertable(list).ExecuteCommand(); } if (Db.DbMaintenance.IsAnyTable("YB_LXBodyGuide") && await Db.Queryable().CountAsync() == 0) { List list = new List(); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d81-0483-4c3e-8879-409841ee07c1"), CreateTime = DateTime.Now, Sick = "不爱得病", Feature = "睡眠好、性格开朗,社会和自然适应能力强", Health = "多吃五谷杂粮、蔬菜瓜果,少食过于油腻及辛辣之物。吃得不要过饱,也不能过饥,不吃冷也不吃得过热", People = "男性多于女性。年龄越大,平和体质的人越少", TypeId = Guid.Parse("08d94d78-6ef8-4ff2-8fb5-fab7a89af4f3") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d7e-3ee7-4932-85db-95d436c286b5"), CreateTime = DateTime.Now, Sick = "容易感冒,生病后抗病能力弱且难以痊愈,还易患内脏下垂比如胃下垂等。", Feature = "说话没劲,经常出虚汗,容易呼吸短促,经常疲乏无力,这就是气虚体质。这种人一般性格内向,情绪不稳定,比较胆小,不爱冒险。", Health = "多吃有益气健脾作用的食物,如大枣、山药、黄豆、白扁豆、鸡肉、泥鳅、香菇、大枣、桂圆、蜂蜜等。少食具有耗气作用的食物,如槟榔、空心菜、生萝卜等。", People = "气虚体质者多分布在没有工作的人、学生和长期从事体力劳动的人。", TypeId = Guid.Parse("08d94d78-7cbf-4d85-8c74-5b844f3f2dd3") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d78-82f0-402e-8686-2830c8964813"), CreateTime = DateTime.Now, Sick = "水肿、腹泻等", Feature = "手脚发凉,不敢吃凉的东西。性格多沉静、内向", Health = "多吃甘温益气的食物,比如牛羊狗肉、葱、姜、蒜、花椒、鳝鱼、辣椒、胡椒等。少食生冷寒凉食物如黄瓜、藕、梨、西瓜等", People = "东北地区多见,可能与东北寒燥的天气有关,女性明显多于男性。长期偏嗜寒凉食物也会形成这种体质", TypeId = Guid.Parse("08D94D78-82F0-402E-8686-2830C8964813") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d80-fe57-47f1-80ee-5a951f6bd57e"), CreateTime = DateTime.Now, Sick = "易患咳嗽、干燥综合征、甲亢等", Feature = "怕热,经常感到手脚心发热,面颊潮红或偏红,皮肤干燥,口干舌燥,容易失眠,经常大便干结,外向好动,性情急躁", Health = "多吃甘凉滋润的食物,比如核桃、银耳、瘦猪肉、鸭肉、绿豆、冬瓜、芝麻、百合等。少食羊肉、狗肉、韭菜、辣椒、葱、蒜、葵花子等性温燥烈的食物", People = "在多风、干燥、强紫外线辐射的地区容易产生这种体质的人。", TypeId = Guid.Parse("08d94d78-8920-4193-8f58-eba41dcfc407") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d80-fa89-41b1-871c-62ffb4e84e08"), CreateTime = DateTime.Now, Sick = "易患冠心病、高血压、高脂血症、糖尿病等疾病", Feature = "腹部松软肥胖,皮肤出油,汗多,眼睛浮肿,容易困倦。性格温和稳重善于忍耐", Health = "饮食清淡为原则,少食肥肉及甜、黏、油腻的食物,可多食荷叶、葱、蒜、海藻、海带、冬瓜、萝卜、金橘、芥末等食物", People = "喜欢吃甜腻食物、不爱运动爱睡觉、生活安逸的中老年人多", TypeId = Guid.Parse("08d94d78-8f41-4449-8a22-bce63f83dc7a") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d80-f6ac-4633-8e7a-17dfcc067628"), CreateTime = DateTime.Now, Sick = "疮疖、黄疸等病", Feature = "脸部和鼻尖总是油光发亮,还容易生粉刺、疮疖,一开口就能闻到异味,容易大便黏滞不爽,小便发黄,性格多急躁易怒", Health = "饮食清淡,多吃甘寒、甘平的食物,如薏米、苦丁茶、绿豆、空心菜、苋菜、芹菜、黄瓜、冬瓜、藕、西瓜等,少食辛温助热的食物,应戒除烟酒", People = "喜欢吃煎炸烧烤等食物或嗜好烟酒的人群", TypeId = Guid.Parse("08d94d78-955b-44ad-8b7d-04c7fcd5e49b") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d80-f35a-4ec8-8726-8b5ea3f08c8d"), CreateTime = DateTime.Now, Sick = "出血、中风、冠心病等", Feature = "刷牙时牙龈容易出血,眼睛经常有红丝,皮肤常干燥、粗糙,常常出现疼痛,容易烦躁,健忘,性情急躁", Health = "", People = "南方人、脑力工作者,女性多见", TypeId = Guid.Parse("08d94d78-9b1a-46ac-8aa1-b1da911444aa") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d80-ee5d-4627-804c-ecc68252a73f"), CreateTime = DateTime.Now, Sick = "失眠、抑郁症、神经官能症等", Feature = "多愁善感、忧郁脆弱。身体比较瘦,经常闷闷不乐,无缘无故地叹气,容易心慌、失眠", Health = "多吃小麦、蒿子杆、葱、蒜、海带、海藻、萝卜、山楂等具有行气、解郁、消食、醒神作用的黄花、玫瑰花茶等食物", People = "该体质的人多是年轻人,而且女性明显多于男性", TypeId = Guid.Parse("08d94d78-a0a3-4802-83b1-dbd50895b0aa") }); list.Add(new YB_LXBodyGuide { Id = Guid.Parse("08d94d81-1486-4cd2-8892-3f636587a02e"), CreateTime = DateTime.Now, Sick = "药物过敏、花粉症、哮喘等过敏性疾病", Feature = "对花粉或某种食物、植物过敏", Health = "", People = "", TypeId = Guid.Parse("08d94d78-a563-4419-8810-1cf41f606b17") }); Db.Insertable(list).ExecuteCommand(); } if (Db.DbMaintenance.IsAnyTable("YB_DeviceTypeExt") && await Db.Queryable().CountAsync() == 0) { var list = new List() { new YB_DeviceTypeExt { Id=1, RId=1, Status = StatusType.Enabled, AppId = "", Name="HD01", HeadImg="/images/device/PCD01-BT.png", Content="1,3,6" }, new YB_DeviceTypeExt { Id=2, RId=2, Status=StatusType.Enabled, AppId="", Name="H018", HeadImg="/images/device/PCH018PRO.png", Content="2" }, new YB_DeviceTypeExt { Id=3, RId=1, Status=StatusType.Disabled, AppId="", Name="HD01", HeadImg="/images/device/PCD01-BT.png", Content="1,3,6" }, new YB_DeviceTypeExt { Id=4, RId=4, Status=StatusType.Enabled, AppId="", Name="L01", HeadImg="/images/device/L01.jpg", Content="4,5" }, new YB_DeviceTypeExt { Id=5, RId=4, Status=StatusType.Disabled, AppId="", Name="L01", HeadImg="/images/device/L01.jpg", Content="4,5" }, new YB_DeviceTypeExt { Id=6, RId=1, Status=StatusType.Disabled, AppId="", Name="HD01", HeadImg="/images/device/PCD01-BT.png", Content="1,3,6" }, new YB_DeviceTypeExt { Id=7, RId=7, Status=StatusType.Disabled, AppId="", Name="F01PRO", HeadImg="/images/device/L01.jpg", Content="7" }, }; Db.Insertable(list).ExecuteCommand(); } if (Db.DbMaintenance.IsAnyTable("YB_nMenu") && await Db.Queryable().CountAsync() == 0) { var list = new List { new YB_nMenu { Id = Guid.Parse("08D99602-1E4C-4113-8A0E-85529A833791"), Name="设备管理", SortCode = 2, CreateTime=DateTime.Now, Status = StatusType.Enabled, Icon="custom-icon-shebei", ParentId = Guid.Empty, Remark="设备管理", Url="/Device/Index", IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad87-ddfd-4daa-8ea9-ca6bd48ae005"), Name="微信管理", Url="/", Icon="custom-icon-weixin", SortCode=2, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad88-1c43-4646-8101-f0cd82e08395"), Name="小程序管理", Url="/MiniProgram/Index", Icon="custom-icon-weixin", SortCode=1, ParentId=Guid.Parse("08d9ad87-ddfd-4daa-8ea9-ca6bd48ae005"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad88-8a9d-4836-8f40-c5559a8416a5"), Name="公众号管理", Url="/Official/Index", Icon="custom-icon-weixin", SortCode=2, ParentId=Guid.Parse("08d9ad87-ddfd-4daa-8ea9-ca6bd48ae005"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad88-9978-44b3-8149-2248bffe7dc2"), Name="用户管理", Url="/RegUser/Index", Icon="custom-icon-fensi", SortCode=4, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad88-c1a5-44ce-8bd0-3e28a6163739"), Name="订单管理", Url="/Order/Index", Icon="custom-icon-dingdan", SortCode=4, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad88-d2a2-44a3-86dd-7eb363006188"), Name="测量记录", Url="/Result/Index", Icon="custom-icon-dingdan", SortCode=5, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad88-ec9c-4cb8-8dc0-0fe83b0d34f2"), Name="广告管理", Url="/", Icon="custom-icon-material", SortCode=6, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad89-0222-4e03-83fc-0499e94db7e1"), Name="科普资讯", Url="/Info/Index", Icon="custom-icon-material", SortCode=1, ParentId=Guid.Parse("08d9ad88-ec9c-4cb8-8dc0-0fe83b0d34f2"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad89-1783-47ac-8a3b-2c43dcdcf903"), Name="图片广告", Url="/banner/Index", Icon="custom-icon-guanggao1", SortCode=2, ParentId=Guid.Parse("08d9ad88-ec9c-4cb8-8dc0-0fe83b0d34f2"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8b-5fdc-4ada-8d54-7c7e3364c8e7"), Name="科普类型", Url="/Info/Type", Icon="custom-icon-icon", SortCode=3, ParentId=Guid.Parse("08d9ad88-ec9c-4cb8-8dc0-0fe83b0d34f2"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad89-39f5-4b83-87c8-93433fe18eea"), Name="客户管理", Url="/Business/Index", Icon="custom-icon-kehu", SortCode=7, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad89-4636-452b-8d49-577320596c08"), Name="出货管理", Url="/", Icon="custom-icon-dingdan", SortCode=7, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad89-6281-4a82-8f16-a3edb7726830"), Name="出货列表", Url="/OutProduct/Index", Icon="custom-icon-dingdan", SortCode=1, ParentId=Guid.Parse("08d9ad89-4636-452b-8d49-577320596c08"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad89-73f8-4b20-8ea4-129662da8d7d"), Name="物流管理", Url="/OutProduct/Express", Icon="custom-icon-dingdan", SortCode=2, ParentId=Guid.Parse("08d9ad89-4636-452b-8d49-577320596c08"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad89-e485-42c3-8170-67d2e0f847b6"), Name="统计报表", Url="/", Icon="custom-icon-tongji", SortCode=8, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-31b1-4998-82c5-6e6a0421f290"), Name="用户画像", Url="/Profile/Index", Icon="custom-icon-fensi", SortCode=1, ParentId=Guid.Parse("08d9ad89-e485-42c3-8170-67d2e0f847b6"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-350e-4f80-8a36-eeebfb769ab9"), Name="测量统计", Url="/Report/Index", Icon="custom-icon-tongji", SortCode=2, ParentId=Guid.Parse("08d9ad89-e485-42c3-8170-67d2e0f847b6"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-3bc1-4255-85b0-1ddba8313971"), Name="系统配置", Url="/", Icon="custom-icon-xitong", SortCode=9, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-5f3c-4689-8b09-71cf2c33fff9"), Name="设备类型", Url="/Device/Type", Icon="custom-icon-icon", SortCode=1, ParentId=Guid.Parse("08d9ad8a-3bc1-4255-85b0-1ddba8313971"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-7a54-4d11-83d7-7af6d75d00f5"), Name="版本管理", Url="/", Icon="custom-icon-qrcode", SortCode=10, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-913f-4eb6-810c-d65b7bd97ee0"), Name="代码管理", Url="/Code/Template", Icon="custom-icon-qrcode", SortCode=1, ParentId=Guid.Parse("08d9ad8a-7a54-4d11-83d7-7af6d75d00f5"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-a0e0-4dda-8cdf-e6d7169694d2"), Name="系统管理", Url="/", Icon="custom-icon-xitong", SortCode=10, ParentId=Guid.Empty, Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8b-ad5d-4646-855d-7dee71eacdf9"), Name="菜单管理", Url="/menu/index", Icon="custom-icon-menu", SortCode=1, ParentId=Guid.Parse("08d9ad8a-a0e0-4dda-8cdf-e6d7169694d2"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=1 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-c50a-445e-834c-b9e785aef04f"), Name="角色管理", Url="/role/index", Icon="custom-icon-jiaose", SortCode=2, ParentId=Guid.Parse("08d9ad8a-a0e0-4dda-8cdf-e6d7169694d2"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=0 },new YB_nMenu{ Id = Guid.Parse("08d9ad8a-d870-42fe-80f1-e661433a3ba6"), Name="按钮管理", Url="/Menu/Button", Icon="custom-icon-dingdan", SortCode=3, ParentId=Guid.Parse("08d9ad8a-a0e0-4dda-8cdf-e6d7169694d2"), Remark="", Status=StatusType.Enabled, CreateTime=DateTime.Now, IsSuper=1 } }; Db.Insertable(list).ExecuteCommand(); } if (Db.DbMaintenance.IsAnyTable("YB_nRole") && await Db.Queryable().CountAsync() == 0) { List menulist = new List { new YB_nRole { Id = Guid.Parse("08D93C45-E693-430D-8675-6DC7F86132AA"), Name="管理员", Code="admin", Remark="管理员", Status=StatusType.Enabled, CreateTime=DateTime.Now },new YB_nRole { Id = Guid.Parse("08D93BAC-E4BB-403E-8DE3-7E9AC647B5F4"), Name="代理商", Code="agent", Remark="代理商", Status=StatusType.Enabled, CreateTime=DateTime.Now } }; Db.Insertable(menulist).ExecuteCommand(); } #endregion #region 儿童处方种子初始化 if (Db.DbMaintenance.IsAnyTable("YB_ChildrenPrescription") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "儿童处方.xlsx"); var query = await MiniExcel.QueryAsync(filepath); var list = query.ToList(); var insertlist1 = new List(); var nowtime = DateTime.Now; var tlist = new List(); var Nutrition = list[2]; var sport = list[3]; var sport0_1 = list[4]; var sport1_3 = list[5]; var sport3_7 = list[6]; var sport8_16 = list[7]; var sleep = list[8]; var sleep0_3 = list[9]; var sleep4_11 = list[10]; var sleep1_2 = list[11]; var sleep3_5 = list[12]; var sleep6_13 = list[13]; var sleep14_17 = list[14]; var mood = list[15]; var mood0_1 = list[16]; var mood1_3 = list[17]; var mood3_7 = list[18]; var mood8_12 = list[19]; var mood13_16 = list[20]; #region 全年龄 tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.C, Nutrition = Nutrition.C, Level = 1, Type = PrescriptionType.Height }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.D, Nutrition = Nutrition.D, Level = 2, Type = PrescriptionType.Height }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.E, Nutrition = Nutrition.E, Level = 3, Type = PrescriptionType.Height }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.F, Nutrition = Nutrition.F, Level = 4, Type = PrescriptionType.Height }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.G, Nutrition = Nutrition.G, Level = 5, Type = PrescriptionType.Height }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.H, Nutrition = Nutrition.H, Level = 1, Type = PrescriptionType.BMI }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.I, Nutrition = Nutrition.I, Level = 2, Type = PrescriptionType.BMI }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.J, Nutrition = Nutrition.J, Level = 3, Type = PrescriptionType.BMI }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.K, Nutrition = Nutrition.K, Level = 4, Type = PrescriptionType.BMI }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.L, Nutrition = Nutrition.L, Level = 1, Type = PrescriptionType.Weight }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.M, Nutrition = Nutrition.M, Level = 2, Type = PrescriptionType.Weight }); tlist.Add(new YB_ChildrenPrescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.N, Nutrition = Nutrition.N, Level = 3, Type = PrescriptionType.Weight }); #endregion #region 运动分年龄 insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 1, MinAge = 0, MaxAge = 1 * 12, Content = sport0_1.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 1, MinAge = 1 * 12, MaxAge = 3 * 12, Content = sport1_3.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 1, MinAge = 3 * 12, MaxAge = 8 * 12, Content = sport3_7.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 1, MinAge = 8 * 12, MaxAge = 17 * 12, Content = sport8_16.C }); #endregion #region 睡眠分年龄 insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 2, MinAge = -1, MaxAge = -1, Content = sleep.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 2, MinAge = 0, MaxAge = 4, Content = sleep0_3.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 2, MinAge = 4, MaxAge = 12, Content = sleep4_11.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 2, MinAge = 1 * 12, MaxAge = 2 * 12, Content = sleep1_2.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 2, MinAge = 2 * 12, MaxAge = 6 * 12, Content = sleep3_5.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 2, MinAge = 6 * 12, MaxAge = 13 * 12, Content = sleep6_13.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 2, MinAge = 13 * 12, MaxAge = 17 * 12, Content = sleep14_17.C }); #endregion #region 情绪分年龄 insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 3, MinAge = -1, MaxAge = -1, Content = mood.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 3, MinAge = 0, MaxAge = 1 * 12, Content = mood0_1.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 3, MinAge = 1 * 12, MaxAge = 3 * 12, Content = mood1_3.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 3, MinAge = 3 * 12, MaxAge = 8 * 12, Content = mood3_7.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 3, MinAge = 8 * 12, MaxAge = 12 * 12, Content = mood8_12.C }); insertlist1.Add(new YB_ChildPrescriptionByAge { Id = IDGen.NextID(), Type = 3, MinAge = 12 * 12, MaxAge = 17 * 12, Content = mood13_16.C }); #endregion await Db.Insertable(tlist).ExecuteCommandAsync(); await Db.Insertable(insertlist1).ExecuteCommandAsync(); } #endregion #region 儿童体质种子初始化 if (Db.DbMaintenance.IsAnyTable("YB_ChildPhysique") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "儿童体质.xlsx"); var query = await MiniExcel.QueryAsync(filepath); int type = 1; List insertlist = new List(); int sort = 1; for (var i = 1; i < query.Count(); i++) { var row = query.ElementAt(i) as IDictionary; var keys = row.Keys.ToArray(); for (var j = 0; j < keys.Length; j++) { object val; if (row.TryGetValue(keys[j], out val)) { if (val != null) { string text = val.ToString(); int value = 1; if (text.IndexOf("0") == 0) { value = 0; text = text.Substring(1, text.Length - 1); } insertlist.Add(new YB_ChildPhysique { Id = IDGen.NextID(), Text = text, Type = type, Value = value, Sort = sort }); } } type++; } type = 1; sort++; } await Db.Insertable(insertlist).ExecuteCommandAsync(); } #endregion #region 0-18岁身高标准种子初始化 if (Db.DbMaintenance.IsAnyTable("YB_NewHeightStand") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "0~18岁身高体重BMI头围数据及分段.xlsx"); var query = await MiniExcel.QueryAsync(filepath, sheetName: "height"); var list = query.ToList(); var insertlist = new List(); for (var i = 5; i < query.Count() - 2; i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("B", out object month); if (month == null) { continue; } row.TryGetValue("C", out object nf3); row.TryGetValue("D", out object nf2); row.TryGetValue("F", out object nf1); row.TryGetValue("G", out object nb); row.TryGetValue("H", out object nz1); row.TryGetValue("I", out object nz2); row.TryGetValue("J", out object nz3); row.TryGetValue("M", out object vf3); row.TryGetValue("N", out object vf2); row.TryGetValue("O", out object vf1); row.TryGetValue("P", out object vb); row.TryGetValue("Q", out object vz1); row.TryGetValue("R", out object vz2); row.TryGetValue("S", out object vz3); string mstr = month.ToString(); decimal m = mstr.Contains("周") ? (mstr.Substring(0, mstr.Length - 1).ToDecimal() / 4.0m).ToDecimal(2) : (mstr.Contains("月") ? mstr.Substring(0, mstr.Length - 1).ToDecimal(2) : month.ToDecimal(2)); if (mstr.Contains("周") && (m == 1m || m == 2m || m == 3m)) { m = m - 0.1m; } insertlist.Add(new YB_NewHeightStand { f3sd = nf3.ToDecimal(1), f2sd = nf2.ToDecimal(1), f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), z3sd = nz3.ToDecimal(1), Sex = GenderType.Male, Id = IDGen.NextID(), Month = m }); insertlist.Add(new YB_NewHeightStand { f3sd = vf3.ToDecimal(1), f2sd = vf2.ToDecimal(1), f1sd = vf1.ToDecimal(1), median = vb.ToDecimal(1), z1sd = vz1.ToDecimal(1), z2sd = vz2.ToDecimal(1), z3sd = vz3.ToDecimal(1), Sex = GenderType.FeMale, Id = IDGen.NextID(), Month = m }); } await Db.Insertable(insertlist).ExecuteCommandAsync(); } #endregion #region 0-18岁体重标准种子初始化 if (Db.DbMaintenance.IsAnyTable("YB_NewWeightStand") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "0~18岁身高体重BMI头围数据及分段.xlsx"); var query = await MiniExcel.QueryAsync(filepath, sheetName: "weight"); var list = query.ToList(); var insertlist = new List(); for (var i = 5; i < list.Count() - 2; i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("B", out object month); if (month == null) { continue; } row.TryGetValue("D", out object nf3); row.TryGetValue("F", out object nf2); row.TryGetValue("H", out object nf1); row.TryGetValue("I", out object nb); row.TryGetValue("J", out object nz1); row.TryGetValue("L", out object nz2); row.TryGetValue("N", out object nz3); row.TryGetValue("Q", out object vf3); row.TryGetValue("S", out object vf2); row.TryGetValue("U", out object vf1); row.TryGetValue("V", out object vb); row.TryGetValue("W", out object vz1); row.TryGetValue("Y", out object vz2); row.TryGetValue("AA", out object vz3); string mstr = month.ToString(); decimal m = mstr.Contains("周") ? (mstr.Substring(0, mstr.Length - 1).ToDecimal() / 4.0m).ToDecimal(2) : (mstr.Contains("月") ? mstr.Substring(0, mstr.Length - 1).ToDecimal(2) : month.ToDecimal(2)); if (mstr.Contains("周") && (m == 1m || m == 2m || m == 3m)) { m = m - 0.1m; } insertlist.Add(new YB_NewWeightStand { f3sd = nf3.ToDecimal(1), f2sd = nf2.ToDecimal(1), f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), z3sd = nz3.ToDecimal(1), Sex = GenderType.Male, Id = IDGen.NextID(), Month = m }); insertlist.Add(new YB_NewWeightStand { f3sd = vf3.ToDecimal(1), f2sd = vf2.ToDecimal(1), f1sd = vf1.ToDecimal(1), median = vb.ToDecimal(1), z1sd = vz1.ToDecimal(1), z2sd = vz2.ToDecimal(1), z3sd = vz3.ToDecimal(1), Sex = GenderType.FeMale, Id = IDGen.NextID(), Month = m }); } await Db.Insertable(insertlist).ExecuteCommandAsync(); } #endregion #region 0-18岁BMI标准种子初始化 if (Db.DbMaintenance.IsAnyTable("YB_BmiStand") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "0~18岁身高体重BMI头围数据及分段.xlsx"); var query = await MiniExcel.QueryAsync(filepath, sheetName: "bmi"); var list = query.ToList(); var insertlist = new List(); for (var i = 3; i < list.Count() - 2; i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("A", out object month); if (month == null) { continue; } row.TryGetValue("B", out object nf1); row.TryGetValue("C", out object nb); row.TryGetValue("D", out object nz1); row.TryGetValue("E", out object nz2); row.TryGetValue("F", out object vf1); row.TryGetValue("G", out object vb); row.TryGetValue("H", out object vz1); row.TryGetValue("I", out object vz2); string mstr = month.ToString(); decimal m = 0; if (mstr.Contains("~")) { var arr = mstr.Split('~'); m = arr[0].ToDecimal(1); } else { m = mstr.ToDecimal(1) + 0.5m; } insertlist.Add(new YB_BmiStand { f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), Sex = GenderType.Male, Id = IDGen.NextID(), Month = m * 12 }); insertlist.Add(new YB_BmiStand { f1sd = vf1.ToDecimal(1), median = vb.ToDecimal(1), z1sd = vz1.ToDecimal(1), z2sd = vz2.ToDecimal(1), Sex = GenderType.FeMale, Id = IDGen.NextID(), Month = m * 12 }); } await Db.Insertable(insertlist).ExecuteCommandAsync(); } #endregion #region 0-7岁儿童头围标准种子初始化 if (Db.DbMaintenance.IsAnyTable("YB_HeadStand") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "0~18岁身高体重BMI头围数据及分段.xlsx"); var query = await MiniExcel.QueryAsync(filepath, sheetName: "head"); var list = query.ToList(); var insertlist = new List(); for (var i = 2; i < list.Count() - 2; i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("B", out object month); if (month == null) { continue; } row.TryGetValue("C", out object nf3); row.TryGetValue("D", out object nf2); row.TryGetValue("E", out object nf1); row.TryGetValue("F", out object nb); row.TryGetValue("G", out object nz1); row.TryGetValue("H", out object nz2); row.TryGetValue("I", out object nz3); row.TryGetValue("J", out object vf3); row.TryGetValue("K", out object vf2); row.TryGetValue("L", out object vf1); row.TryGetValue("M", out object vb); row.TryGetValue("N", out object vz1); row.TryGetValue("O", out object vz2); row.TryGetValue("P", out object vz3); decimal m = month.ToDecimal(0); insertlist.Add(new YB_HeadStand { f3sd = nf3.ToDecimal(1), f2sd = nf2.ToDecimal(1), f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), z3sd = nz3.ToDecimal(1), Sex = GenderType.Male, Id = IDGen.NextID(), Month = m }); insertlist.Add(new YB_HeadStand { f3sd = vf3.ToDecimal(1), f2sd = vf2.ToDecimal(1), f1sd = vf1.ToDecimal(1), median = vb.ToDecimal(1), z1sd = vz1.ToDecimal(1), z2sd = vz2.ToDecimal(1), z3sd = vz3.ToDecimal(1), Sex = GenderType.FeMale, Id = IDGen.NextID(), Month = m }); } await Db.Insertable(insertlist).ExecuteCommandAsync(); } #endregion #region 安邦0-18岁身高标准种子初始化 if (Db.DbMaintenance.IsAnyTable("AB_HeightStand") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "【安邦数据】0-18岁儿童青少年身高百分位数值表(1).xlsx"); var query = await MiniExcel.QueryAsync(filepath, sheetName: "男-身高"); var insertlist = new List(); for (var i = 4; i < query.Count(); i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("A", out object month); if (month == null) { continue; } row.TryGetValue("B", out object nf3); row.TryGetValue("C", out object nf2); row.TryGetValue("D", out object nf1); row.TryGetValue("E", out object nb); row.TryGetValue("F", out object nz1); row.TryGetValue("G", out object nz2); row.TryGetValue("H", out object nz3); string mstr = month.ToString(); decimal m = AnalyMonthByAb(mstr); insertlist.Add(new AB_HeightStand { f3sd = nf3.ToDecimal(1), f2sd = nf2.ToDecimal(1), f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), z3sd = nz3.ToDecimal(1), Sex = GenderType.Male, Id = IDGen.NextID(), Month = m }); } query = await MiniExcel.QueryAsync(filepath, sheetName: "女-身高"); for (var i = 4; i < query.Count(); i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("A", out object month); if (month == null) { continue; } row.TryGetValue("B", out object nf3); row.TryGetValue("C", out object nf2); row.TryGetValue("D", out object nf1); row.TryGetValue("E", out object nb); row.TryGetValue("F", out object nz1); row.TryGetValue("G", out object nz2); row.TryGetValue("H", out object nz3); string mstr = month.ToString(); decimal m = AnalyMonthByAb(mstr); insertlist.Add(new AB_HeightStand { f3sd = nf3.ToDecimal(1), f2sd = nf2.ToDecimal(1), f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), z3sd = nz3.ToDecimal(1), Sex = GenderType.FeMale, Id = IDGen.NextID(), Month = m }); } await Db.Insertable(insertlist).ExecuteCommandAsync(); } #endregion #region 安邦0-18岁体重标准种子初始化 if (Db.DbMaintenance.IsAnyTable("AB_WeightStand") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "【安邦数据】0-18岁儿童青少年身高百分位数值表(1).xlsx"); var query = await MiniExcel.QueryAsync(filepath, sheetName: "男-体重"); var insertlist = new List(); for (var i = 4; i < query.Count(); i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("A", out object month); if (month == null) { continue; } row.TryGetValue("B", out object nf3); row.TryGetValue("C", out object nf2); row.TryGetValue("D", out object nf1); row.TryGetValue("E", out object nb); row.TryGetValue("F", out object nz1); row.TryGetValue("G", out object nz2); row.TryGetValue("H", out object nz3); string mstr = month.ToString(); decimal m = AnalyMonthByAb(mstr); insertlist.Add(new AB_WeightStand { f3sd = nf3.ToDecimal(1), f2sd = nf2.ToDecimal(1), f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), z3sd = nz3.ToDecimal(1), Sex = GenderType.Male, Id = IDGen.NextID(), Month = m }); } query = await MiniExcel.QueryAsync(filepath, sheetName: "女-体重"); for (var i = 4; i < query.Count(); i++) { var row = query.ElementAt(i) as IDictionary; if (row == null) { continue; } row.TryGetValue("A", out object month); if (month == null) { continue; } row.TryGetValue("B", out object nf3); row.TryGetValue("C", out object nf2); row.TryGetValue("D", out object nf1); row.TryGetValue("E", out object nb); row.TryGetValue("F", out object nz1); row.TryGetValue("G", out object nz2); row.TryGetValue("H", out object nz3); string mstr = month.ToString(); decimal m = AnalyMonthByAb(mstr); insertlist.Add(new AB_WeightStand { f3sd = nf3.ToDecimal(1), f2sd = nf2.ToDecimal(1), f1sd = nf1.ToDecimal(1), median = nb.ToDecimal(1), z1sd = nz1.ToDecimal(1), z2sd = nz2.ToDecimal(1), z3sd = nz3.ToDecimal(1), Sex = GenderType.FeMale, Id = IDGen.NextID(), Month = m }); } await Db.Insertable(insertlist).ExecuteCommandAsync(); } #endregion #region 安邦儿童处方种子初始化 if (Db.DbMaintenance.IsAnyTable("AB_Prescription") && await Db.Queryable().CountAsync() == 0) { //获取项目主目录 var path = Path.GetFullPath("../../.."); string filepath = Path.Combine(path, "安邦-处方分年龄.xlsx"); var query = await MiniExcel.QueryAsync(filepath); var list = query.ToList(); var insertlist1 = new List(); var nowtime = DateTime.Now; var tlist = new List(); var Nutrition = list[2]; var sport = list[3]; var sport0_1 = list[4]; var sport1_3 = list[5]; var sport3_7 = list[6]; var sport8_16 = list[7]; var sleep = list[8]; var sleep0_3 = list[9]; var sleep4_11 = list[10]; var sleep1_2 = list[11]; var sleep3_5 = list[12]; var sleep6_13 = list[13]; var sleep14_17 = list[14]; var mood = list[15]; var mood0_1 = list[16]; var mood1_3 = list[17]; var mood3_7 = list[18]; var mood8_12 = list[19]; var mood13_16 = list[20]; #region 全年龄 tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.C, Nutrition = Nutrition.C, Level = 1, Type = PrescriptionType.Height }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.D, Nutrition = Nutrition.D, Level = 2, Type = PrescriptionType.Height }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.E, Nutrition = Nutrition.E, Level = 3, Type = PrescriptionType.Height }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.F, Nutrition = Nutrition.F, Level = 4, Type = PrescriptionType.Height }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.G, Nutrition = Nutrition.G, Level = 5, Type = PrescriptionType.Height }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.H, Nutrition = Nutrition.H, Level = 1, Type = PrescriptionType.BMI }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.I, Nutrition = Nutrition.I, Level = 2, Type = PrescriptionType.BMI }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.J, Nutrition = Nutrition.J, Level = 3, Type = PrescriptionType.BMI }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.K, Nutrition = Nutrition.K, Level = 4, Type = PrescriptionType.BMI }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.L, Nutrition = Nutrition.L, Level = 1, Type = PrescriptionType.Weight }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.M, Nutrition = Nutrition.M, Level = 2, Type = PrescriptionType.Weight }); tlist.Add(new AB_Prescription { Id = IDGen.NextID(), CreateTime = nowtime, Sport = sport.N, Nutrition = Nutrition.N, Level = 3, Type = PrescriptionType.Weight }); #endregion #region 运动分年龄 insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sport, MinAge = 0, MaxAge = 1 * 12, Content = sport0_1.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sport, MinAge = 1 * 12, MaxAge = 3 * 12, Content = sport1_3.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sport, MinAge = 3 * 12, MaxAge = 8 * 12, Content = sport3_7.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sport, MinAge = 8 * 12, MaxAge = 17 * 12, Content = sport8_16.C }); #endregion #region 睡眠分年龄 insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sleep, MinAge = -1, MaxAge = -1, Content = sleep.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sleep, MinAge = 0, MaxAge = 4, Content = sleep0_3.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sleep, MinAge = 4, MaxAge = 12, Content = sleep4_11.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sleep, MinAge = 1 * 12, MaxAge = 2 * 12, Content = sleep1_2.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sleep, MinAge = 2 * 12, MaxAge = 6 * 12, Content = sleep3_5.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sleep, MinAge = 6 * 12, MaxAge = 13 * 12, Content = sleep6_13.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Sleep, MinAge = 13 * 12, MaxAge = 17 * 12, Content = sleep14_17.C }); #endregion #region 情绪分年龄 insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Mood, MinAge = -1, MaxAge = -1, Content = mood.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Mood, MinAge = 0, MaxAge = 1 * 12, Content = mood0_1.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Mood, MinAge = 1 * 12, MaxAge = 3 * 12, Content = mood1_3.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Mood, MinAge = 3 * 12, MaxAge = 8 * 12, Content = mood3_7.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Mood, MinAge = 8 * 12, MaxAge = 12 * 12, Content = mood8_12.C }); insertlist1.Add(new AB_PrescriptionByAge { Id = IDGen.NextID(), Type = PrescriptionAdviceType.Mood, MinAge = 12 * 12, MaxAge = 17 * 12, Content = mood13_16.C }); #endregion await Db.Insertable(tlist).ExecuteCommandAsync(); await Db.Insertable(insertlist1).ExecuteCommandAsync(); } #endregion await new ImportZYTZ().InsertQAAsync(Db); await new ImportZYTZ().InsertBodyAsync(Db); } /// /// 安邦月龄解析 /// /// /// private decimal AnalyMonthByAb(string month) { if (month.Contains("出生")) { return 0; } if (month.Contains("月") && month.Contains("岁")) { month = month.Replace("月", ""); string[] arr = month.Split('岁'); return arr[0].ToDecimal(2) * 12 + arr[1].ToDecimal(2); } if (month.Contains("月")) { month = month.Replace("月", ""); return month.ToDecimal(2); } if (month.Contains("岁")) { month = month.Replace("岁", ""); return month.ToDecimal(2) * 12; } return 0; } } }