using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TProduct.BLL { internal class DataSetStructHelper { private static string _dsVersion = null;//结构信息 public static bool CheckDataSetVersion() { if (_dsVersion != null) return true; var dalSeting = new DAL.SoftSetting(); #region 获取当前版本 var listSetting = dalSeting.GetAll(); var dsStructVersionModel = (from x in listSetting where x.Type == "System" && x.Name == "DataSetStructVersion" select x).FirstOrDefault(); if (dsStructVersionModel == null) { dsStructVersionModel = new Entity.SoftSetting(); dsStructVersionModel.Type = "System"; dsStructVersionModel.Name = "DataSetStructVersion"; dsStructVersionModel.Value = "20220101"; dsStructVersionModel.ID = dalSeting.Insert(dsStructVersionModel); } #endregion var before_version = dsStructVersionModel.Value; #region WorkBenchBase 添加列 LinkInfo if (IsLastVersion(before_version, "20230505", false) < 0) { try { var dal_work = new TProduct.DAL.WorkBenchBase(); if (!dal_work.IsExistColumn("LinkInfoStr")) { dal_work.AddColumnTEXT("LinkInfoStr"); } if (!dal_work.IsExistColumn("MeterInfoStr")) { dal_work.AddColumnTEXT("MeterInfoStr"); } //if (dal_work.IsExistColumn("OutletPressureMeterID")) //{ // dal_work.DropColumn("OutletPressureMeterID"); //} //if (dal_work.IsExistColumn("MeterInfo")) //{ // dal_work.DropColumn("MeterInfo"); //} } catch //(Exception ex) { return false; } dsStructVersionModel.Value = "20230505"; dalSeting.Update(dsStructVersionModel); } #endregion #region ProductMain 添加列 Tag if (IsLastVersion(before_version, "20230607", false) < 0) { try { var dal_ProductMain = new TProduct.DAL.ProductMain(); if (!dal_ProductMain.IsExistColumn("Tag")) { dal_ProductMain.AddColumnTEXT("Tag"); } var dal_TestProjectBase = new TProduct.DAL.TestProjectBase(); if (!dal_TestProjectBase.IsExistColumn("Tag")) { dal_TestProjectBase.AddColumnTEXT("Tag"); } } catch //(Exception ex) { return false; } dsStructVersionModel.Value = "20230607"; dalSeting.Update(dsStructVersionModel); } #endregion #region TestProjectBase 添加列 IStationInfoStr if (IsLastVersion(before_version, "20230908", false) < 0) { try { var dal_TestProjectBase = new TProduct.DAL.TestProjectBase(); if (!dal_TestProjectBase.IsExistColumn("IStationInfoStr")) { dal_TestProjectBase.AddColumnTEXT("IStationInfoStr"); } if (!dal_TestProjectBase.IsExistColumn("IStationID")) { dal_TestProjectBase.AddColumnTEXT("IStationID"); } if (!dal_TestProjectBase.IsExistColumn("IStationReportFileNO")) { dal_TestProjectBase.AddColumnTEXT("IStationReportFileNO"); } dal_TestProjectBase.AlertView(); } catch //(Exception ex) { return false; } dsStructVersionModel.Value = "20230908"; dalSeting.Update(dsStructVersionModel); } #endregion #region WorkBenchBase 添加列 IStationID if (IsLastVersion(before_version, "20230911", false) < 0) { try { var dal_work = new TProduct.DAL.WorkBenchBase(); if (!dal_work.IsExistColumn("LinkInfoStr")) { dal_work.AddColumnTEXT("LinkInfoStr"); } if (!dal_work.IsExistColumn("MeterInfoStr")) { dal_work.AddColumnTEXT("MeterInfoStr"); } if (!dal_work.IsExistColumn("IStationID")) { dal_work.AddColumnTEXT("IStationID"); } } catch //(Exception ex) { return false; } dsStructVersionModel.Value = "20230911"; dalSeting.Update(dsStructVersionModel); } #endregion #region WorkBenchMonitorPoint 添加列 IStationID,DispInRealChart if (IsLastVersion(before_version, "20230923", false) < 0) { try { var dal = new TProduct.DAL.WorkBenchMonitorPoint(); if (!dal.IsExistColumn("IStationID")) { dal.AddColumnTEXT("IStationID"); } if (!dal.IsExistColumn("DispInRealChart")) { dal.AddColumnInt("DispInRealChart"); } } catch //(Exception ex) { return false; } dsStructVersionModel.Value = "20230923"; dalSeting.Update(dsStructVersionModel); } #endregion TProduct.DataSetParas.DataSetStructVersion = dsStructVersionModel.Value; //if (before_version == _dsVersion.DataSetStructVersion) //{ // SPump.LogHelper.Info(string.Format("当前客户:{0}, 数据库结构版本: {1}, 没有必要进行数据库结构升级, 检查完成!", // SPump.GlobeParas.CorpName, // _dsVersion.DataSetStructVersion)); //} //else //{ // SPump.LogHelper.Info(string.Format("当前客户:{0}, 数据库结构版本由: {1} 升级到: {2}, 升级完成!", // SPump.GlobeParas.CorpName, // before_version, // _dsVersion.DataSetStructVersion)); //} return true; } private static int IsLastVersion(string v1, string v2, bool isIgnore) { if (string.IsNullOrEmpty(v1) && !string.IsNullOrEmpty(v2)) return -1; if (string.IsNullOrEmpty(v1) && string.IsNullOrEmpty(v2)) return 0; if (v1 == v2) return 0; if (v1.Length < 8 || v2.Length < 8) return 0; int year1 = Convert.ToInt32(v1.Substring(0, 4)); int month1 = Convert.ToInt32(v1.Substring(4, 2)); int day1 = Convert.ToInt32(v1.Substring(6, 2)); int year2 = Convert.ToInt32(v2.Substring(0, 4)); int month2 = Convert.ToInt32(v2.Substring(4, 2)); int day2 = Convert.ToInt32(v2.Substring(6, 2)); //SPump.LogHelper.Info("year1 " + year1 + " year2 " + year2); //SPump.LogHelper.Info("month1 " + month1 + " month2 " + month2); //SPump.LogHelper.Info("day1 " + day1 + " day2 " + day2); if (year1 > year2) return 1; if (year1 < year2) return -1; if (month1 > month2) return 1; if (month1 < month2) return -1; if (day1 > day2) return 1; if (day1 < day2) return -1; return 0; } public void ClearDataSetVersion() { _dsVersion = null; } public void SetServerStatus(bool isStopServer) { } } }