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
|
|
|
#region PressureMeter 添加列
|
if (IsLastVersion(before_version, "20250328", false) < 0)
|
{
|
try
|
{
|
var dalPressureMeter = new TProduct.DAL.PressureMeter();
|
if (!dalPressureMeter.IsExistColumn("RegisterAddress"))
|
{
|
dalPressureMeter.AddColumnInt("RegisterAddress");
|
}
|
if (!dalPressureMeter.IsExistColumn("DecimalPlaces"))
|
{
|
dalPressureMeter.AddColumnInt("DecimalPlaces");
|
}
|
if (!dalPressureMeter.IsExistColumn("PipeDia"))
|
{
|
dalPressureMeter.AddColumnFloat("PipeDia");
|
}
|
if (!dalPressureMeter.IsExistColumn("Elevation"))
|
{
|
dalPressureMeter.AddColumnFloat("Elevation");
|
}
|
if (!dalPressureMeter.IsExistColumn("Property"))
|
{
|
dalPressureMeter.AddColumnTEXT("Property");
|
}
|
|
|
|
var dalFlowMeter = new TProduct.DAL.FlowMeter();
|
if (!dalFlowMeter.IsExistTable())
|
{
|
dalFlowMeter.CreateTable();
|
}
|
else
|
{
|
if (!dalFlowMeter.IsExistColumn("PipeDia"))
|
{
|
dalFlowMeter.AddColumnFloat("PipeDia");
|
}
|
if (!dalFlowMeter.IsExistColumn("Elevation"))
|
{
|
dalFlowMeter.AddColumnFloat("Elevation");
|
}
|
if (!dalFlowMeter.IsExistColumn("Property"))
|
{
|
dalFlowMeter.AddColumnTEXT("Property");
|
}
|
}
|
var dalWorkBenchMonitorPointMap = new TProduct.DAL.WorkBenchMonitorPointMap ();
|
if (!dalWorkBenchMonitorPointMap.IsExistTable())
|
{
|
dalWorkBenchMonitorPointMap.CreateTable();
|
}
|
}
|
catch //(Exception ex)
|
{
|
return false;
|
}
|
|
dsStructVersionModel.Value = "20250328";
|
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)
|
{
|
|
|
}
|
|
|
}
|
}
|