云平台帧内容补充

master
xjl 4 months ago
parent 27e52554a6
commit 69521e9e80

@ -15,7 +15,7 @@ public class StationParamConst
public static readonly string StationName = "Station.StationName";
/// <summary>
/// 站类型
/// 站类型 01:单仓左 02:单仓右 03:双仓
/// </summary>
public static readonly string StationType = "Station.StationType";
@ -68,7 +68,7 @@ public class StationParamConst
/// <summary>
/// 投放时间
/// </summary>
public static readonly string? LaunchTime = "Station.LaunchTime";
public static readonly string LaunchTime = "Station.LaunchTime";
/// <summary>
/// 联系方式
@ -143,7 +143,7 @@ public class StationParamConst
/// <summary>
/// 修改时间
/// </summary>
public static readonly string? ModifyTime = "Station.ModifyTime";
public static readonly string ModifyTime = "Station.ModifyTime";
/// <summary>
/// 配电容量kVA
@ -153,7 +153,7 @@ public class StationParamConst
/// <summary>
/// 总功率kW
/// </summary>
public static readonly string? TotalPower = "Station.TotalPower";
public static readonly string TotalPower = "Station.TotalPower";
/// <summary>
/// 省份
@ -196,9 +196,10 @@ public class StationParamConst
public static readonly string ChargePower = "Station.ChargePower";
public static readonly string AutoChargeEnabled = "Station.AutoChargeEnabled";
//换电收费模型
public static readonly string Eid = "Station.Eid";
//运营模型
//电池运营模型
public static readonly string Oid = "Station.Oid";
//电价模型
@ -208,7 +209,13 @@ public class StationParamConst
/// 运营状态
/// </summary>
public static readonly string StationStatus = "Station.StationStatus";
/// <summary>
/// 自动换电 手动换电
/// </summary>
public static readonly string StationWay = "Station.StationWay";
/// <summary>
/// 本地换电 远程换电
/// </summary>
public static readonly string StationModel = "Station.StationModel";
#region Tbox

@ -38,6 +38,6 @@ public class BaseModel
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName = "updated_time", UpdateServerTime = true)]
public DateTime? UpdatedTime { get; set; } = DateTime.Now;
public DateTime UpdatedTime { get; set; } = DateTime.Now;
}

@ -82,6 +82,11 @@ namespace Entity.DbModel.Station
[SugarColumn(ColumnName = "process_time")]
public DateTime? ProcessTime { get; set; }
/// <summary>
/// 上传状态 0未上传 1已上传
/// </summary>
[SugarColumn(ColumnName = "upload_status")]
public int UploadStatus { get; set; }
}
}

@ -76,6 +76,10 @@ namespace Entity.DbModel.Station
[SugarColumn(ColumnName = "start_time")]
public DateTime? StartTime { get; set; }
/// <summary>
/// 上传状态 0未上传 1已上传
/// </summary>
[SugarColumn(ColumnName = "upload_status")]
public int UploadStatus { get; set; }
}
}

@ -68,5 +68,12 @@ namespace Entity.DbModel.Station
/// </summary>
[SugarColumn(ColumnName="charge_power")]
public float? ChargePower { get; set; }
/// <summary>
/// 安装位置编号
/// </summary>
[SugarColumn(ColumnName = "addr")]
public int? Addr { get; set; }
}
}

@ -65,8 +65,16 @@ public class CloudClient : IMqttClientConnectedHandler, IMqttApplicationMessageR
public int Encrypt { get; set; }
public string? AesKey { get; set; }
/// <summary>
/// 签到结果
/// </summary>
public bool Authed { get; set; }
/// <summary>
/// 设备是否上传
/// </summary>
public int EquipmentUpload { get; set; }
#endregion

@ -33,6 +33,7 @@ public class CloudClientMgr
static EmeterDayEnergyService emeterDayEnergyService = AppInfo.Container.Resolve<EmeterDayEnergyService>();
static EmeterHourEnergyService emeterHourEnergyService = AppInfo.Container.Resolve<EmeterHourEnergyService>();
static BinInfoRepository binInfoRepository = AppInfo.Container.Resolve<BinInfoRepository>();
private static DateTime _dateTime = DateTime.Now.AddSeconds(-30);
@ -47,6 +48,9 @@ public class CloudClientMgr
private static DateTime _dateTime9 = DateTime.Today.AddHours(DateTime.Now.Hour - 1);//小时
private static DateTime _dateTime10 = DateTime.Now.AddDays(-1).Date;//天
private static DateTime _dateTime11 = DateTime.Now.AddDays(-1).Date;//天
private static DateTime _dateTime12 = DateTime.Now.AddSeconds(-30);
private static DateTime _dateTime13 = DateTime.Now.AddSeconds(-30);
private static DateTime _dateTime14 = DateTime.Now.AddSeconds(-30);
@ -78,6 +82,8 @@ public class CloudClientMgr
RedisHelper? redisHelper = AppInfo.Container.Resolve<RedisHelper>();
BinInfoRepository binInfoRepository = AppInfo.Container.Resolve<BinInfoRepository>();
CloudApi.SendSignIn();
#region 遥测合并上报
req.datainfo = new List<DataInfo>();
redisHelper?.GetSubscriber().Subscribe("UploadTelemetryData", (channel, value) =>
@ -165,8 +171,7 @@ public class CloudClientMgr
});
#endregion
var sv = StaticStationInfo.StationSftVer.ToString();
redisHelper?.GetSubscriber().Subscribe("BatteryInfoUploadTask", (channel, value) =>
{
try
@ -200,7 +205,6 @@ public class CloudClientMgr
private static async Task StartAsyncLoop()
{
await Task.Run(() =>
@ -211,7 +215,12 @@ public class CloudClientMgr
{
if (CloudClient.Connected)
{
CloudApi.SendStateLog(0);
if (StationConstant.StationModel.Remote == BaseEnumExtensions.GetEnumByCode<StationConstant.StationModel>(
StaticStationInfo.StationModel))
{
CloudApi.SendStateLog();
}
TaskHostStatusReported();
@ -233,7 +242,16 @@ public class CloudClientMgr
TaskStaDayOpeEnergyVal();
TaskStaHourAmountVal();
//TaskStaHourAmountVal();
SendRealTimeFaultInfo();
SendStartLogMessage();
SendBatteryTotal();
SendChargingTotalDis();
}
Thread.Sleep(1000);
}
@ -313,7 +331,7 @@ public class CloudClientMgr
/// </summary>
private static void TaskTemperatureHumidityData()
{
if ((DateTime.Now - _dateTime4).TotalSeconds <= 10)
if ((DateTime.Now - _dateTime4).TotalSeconds <= 30)
{
return;
}
@ -337,7 +355,7 @@ public class CloudClientMgr
/// <summary>
/// 电能表累计值信息 15m
/// </summary>
private static void TaskPowerTotal()//Desc记得改回来
private static void TaskPowerTotal()
{
if ((DateTime.Now - _dateTime5).TotalMinutes <= 15)
{
@ -736,4 +754,225 @@ public class CloudClientMgr
CloudApi.SendStaHourAmountVal(staHourAmountVal);
}
/// <summary>
/// 换电站上报设备列表
/// </summary>
public static void SendDevList(int ot)
{
EquipInfoRepository equipInfoRepository = AppInfo.Container.Resolve<EquipInfoRepository>();
var equipList = equipInfoRepository.Query();
DevList devList = new()
{
ot = ot,
sn = StaticStationInfo.StationNo,
vs = "1.0",
};
devList.d_info = new List<D_INFO>();
for (int i = 0; i < equipList.Count; i++)
{
D_INFO d_INFO = new D_INFO();
d_INFO.dn = (equipList[i].TypeCode==0?"充电机":"电表")+ equipList[i].Code;
d_INFO.dt = equipList[i].TypeCode == 0 ? "充电机" : "电表";
d_INFO.dc = equipList[i].TypeCode.ToString();
d_INFO.tc = equipList[i].Status.ToString();
d_INFO.ds = equipList[i].Id.ToString();
d_INFO.sn = equipList[i].Code;
d_INFO.en = "";
d_INFO.hv = "";
d_INFO.sv = "";
d_INFO.mn = "";
d_INFO.ns = equipList[i].Addr.ToString();
d_INFO.ti = equipList[i].CreatedTime.ToString();
devList.d_info.Add(d_INFO);
}
CloudApi.SendDevList(devList);
}
/// <summary>
/// 实时故障信息上传
/// </summary>
public static void SendRealTimeFaultInfo()
{
EquipAlarmRecordRepository equipAlarmRecordRepository = AppInfo.Container.Resolve<EquipAlarmRecordRepository>();
var AlarmList = equipAlarmRecordRepository.QueryListByClause(u => u.UploadStatus == 0);
EquipAlarmProcessRecordRepository equipAlarmProcessRecordRepository = AppInfo.Container.Resolve<EquipAlarmProcessRecordRepository>();
var AlarmProcessList = equipAlarmProcessRecordRepository.QueryListByClause(u => u.UploadStatus == 0);
//产生上传
for (int i = 0; i < AlarmList.Count; i++)
{
FaultReport faultReport = new()
{
sn = StaticStationInfo.StationNo,
en= AlarmList[i].EquipCode,
fc= AlarmList[i].ErrorCode,
ft= AlarmList[i].ErrorMsg,
fl= Convert.ToInt32( AlarmList[i].ErrorLevel),
fg= 1,
bt= AlarmList[i].StartTime.ToString(),
cm=1,
};
CloudApi.SendRealTimeFaultInfo(faultReport);
Thread.Sleep(500);
}
//消失上传
for (int i = 0; i < AlarmProcessList.Count; i++)
{
FaultReport faultReport = new()
{
sn = StaticStationInfo.StationNo,
en = AlarmProcessList[i].EquipCode,
fc = AlarmProcessList[i].ErrorCode,
ft = AlarmProcessList[i].ErrorMsg,
fl = Convert.ToInt32(AlarmProcessList[i].ErrorLevel),
fg = 2,
bt = AlarmProcessList[i].ProcessTime.ToString(),
cm = 1,
};
CloudApi.SendRealTimeFaultInfo(faultReport);
Thread.Sleep(500);
}
}
static List<EquipInfo> equipInfos;
/// <summary>
/// 换电站设备状态开始和结束日志信息
/// </summary>
public static void SendStartLogMessage()
{
if ((DateTime.Now - _dateTime12).TotalSeconds <= 30)
{
return;
}
_dateTime12 = DateTime.Now;
EquipInfoRepository equipInfoRepository = AppInfo.Container.Resolve<EquipInfoRepository>();
var equipList = equipInfoRepository.Query();
if (equipInfos == null) { equipInfos = equipList; }
bool variation = false;
if (variation)
{
for (int i = 0; i < equipList.Count; i++)
{
if (equipInfos[i].UpdatedTime != equipList[i].UpdatedTime)
{
EqmStateEndLogInfo req = new()
{
en = StaticStationInfo.StationNo + equipInfos[i].Code,
sv = Convert.ToByte(equipInfos[i].Status),
sm = equipInfos[i].Status == 1 ? "启用" : "停用",
st = equipInfos[i].UpdatedTime,
et = equipList[i].UpdatedTime,
ke= (int)(equipList[i].UpdatedTime- equipInfos[i].UpdatedTime).TotalSeconds,
cm = 1,
};
}
}
}
for (int i = 0; i < equipList.Count; i++)
{
if (equipInfos[i].UpdatedTime != equipList[i].UpdatedTime)
{
EqmStateStartLogInfo req = new()
{
en = StaticStationInfo.StationNo + equipInfos[i].Code,
SV = Convert.ToByte(equipInfos[i].Status),
sm = equipInfos[i].Status == 1 ? "启用": "停用" ,
st = equipList[i].UpdatedTime,
cm = 1,
};
CloudApi.SendStartLogMessage(req);
variation= true;
}
}
equipInfos = equipList;
}
/// <summary>
/// 换电站上报电池状态分布统计信息 2分钟
/// </summary>
public static void SendBatteryTotal()
{
if ((DateTime.Now - _dateTime13).TotalMinutes <= 2)
{
return;
}
_dateTime13 = DateTime.Now;
var binList = binInfoRepository.Query();
int bt = binList.Select(u => u.Exists == 1).Count();
int ct = binList.Select(u => u.Soc >= StaticStationInfo.SwapSoc).Count();
int cc = binList.Select(u => u.ChargeStatus ==1).Count();
int ca = binList.Select(u => u.Soc < StaticStationInfo.SwapSoc).Count();
BatteryTotal devList = new()
{
sn= StaticStationInfo.StationNo,
btc=1,
sm="99999999",
bn="默认型号",
bc= bt,
ct= ct,
cc=cc,
ca=ca,
ut=DateTime.Now,
};
CloudApi.SendBatteryTotal(devList);
}
/// <summary>
/// 换电站充电电池电量分布统计信息 2分钟
/// </summary>
public static void SendChargingTotalDis()
{
if ((DateTime.Now - _dateTime14).TotalMinutes <= 2)
{
return;
}
_dateTime14 = DateTime.Now;
var binList = binInfoRepository.Query();
int hc = binList.Select(u => u.Soc >= 90).Count();
int mc = binList.Select(u => u.Soc >= 80&& u.Soc<90).Count();
int lc = binList.Select(u => u.Soc >= 0&& u.Soc<80).Count();
ChargingTotalDis req = new()
{
sn = StaticStationInfo.StationNo,
bs = "99999999",
bn = "默认型号",
hc = hc,
mc = mc,
lc = lc,
};
CloudApi.SendChargingTotalDis(req);
}
}

@ -24,8 +24,24 @@ public class DeliverBasicInformationHandler : IBaseHandler
StaticStationInfo.StationNo = deliverBasicInformation.sn;
StaticStationInfo.StationName = deliverBasicInformation.Sm;
StaticStationInfo.StationSn = deliverBasicInformation.SS;
//TODO 补全StaticStationInfo后赋值
StaticStationInfo.StationLocation = deliverBasicInformation.sl;
StaticStationInfo.StationType = deliverBasicInformation.st;
StaticStationInfo.Longitude = deliverBasicInformation.ld;
StaticStationInfo.Latitude = deliverBasicInformation.lt;
StaticStationInfo.AreaCode = deliverBasicInformation.ac;
StaticStationInfo.AreaName = deliverBasicInformation.am;
StaticStationInfo.OperationStartTime = deliverBasicInformation.ot.ToString();
StaticStationInfo.LaunchTime = deliverBasicInformation.lm.ToString();
StaticStationInfo.ContactWay = deliverBasicInformation.cw;
StaticStationInfo.Principal = deliverBasicInformation.pp;
StaticStationInfo.StationCompany = deliverBasicInformation.sc;
StaticStationInfo.SocialCreditCode = deliverBasicInformation.cc;
StaticStationInfo.StationSftVer = deliverBasicInformation.sv;
StaticStationInfo.SupplierCode = deliverBasicInformation.sp;
StaticStationInfo.Cover = deliverBasicInformation.cb.ToString();
StaticStationInfo.StationVersion = deliverBasicInformation.bs;
SetStBaseInfoRes resp = new SetStBaseInfoRes();
CloudClientMgr.CloudClient?.Publish(resp);
}

@ -0,0 +1,53 @@
using HybirdFrameworkCore.Autofac.Attribute;
using log4net;
using Newtonsoft.Json;
using Repository.Station;
using Service.Cloud.Client;
using Service.Cloud.Common;
using Service.Cloud.Msg.Cloud.Resp;
using System.Drawing;
namespace Service.Cloud.Handler;
[Scope("InstancePerDependency")]
public class FaultReportResHandler : IBaseHandler
{
private static readonly ILog Log = LogManager.GetLogger(typeof(FaultReportResHandler));
public EquipAlarmRecordRepository equipAlarmRecordRepository { get; set; }
EquipAlarmProcessRecordRepository equipAlarmProcessRecordRepository { get; set; }
public void Handle(string t)
{
FaultReportRes? resp = JsonConvert.DeserializeObject<FaultReportRes>(t);
if (resp != null)
{
if (CloudClientMgr.CloudClient != null)
{
CloudClientMgr.CloudClient.RealTimeFault.SetResp(resp);
string? reqFc = CloudClientMgr.CloudClient.RealTimeFault.Req?.fc;
int? reqFg = CloudClientMgr.CloudClient.RealTimeFault.Req?.fg;
Log.Info($"receive FaultReportRes fc={reqFc} {JsonConvert.SerializeObject(resp)}");
if (!string.IsNullOrWhiteSpace(reqFc) && resp.re == 0)
{
if (reqFg == 1)
{
equipAlarmRecordRepository.Update(it => it.UploadStatus == 1, it => it.ErrorCode == reqFc);
}
else
{
equipAlarmProcessRecordRepository.Update(it => it.UploadStatus == 1, it => it.ErrorCode == reqFc);
}
}
}
}
}
public bool CanHandle(string cmd)
{
return CloudConst.faultReportRes == cmd;
}
}

@ -22,7 +22,8 @@ public class ServiceableStateHandler:IBaseHandler
SetService? req = JsonConvert.DeserializeObject<SetService>(t);
if (req != null)
{
StaticStationInfo.StationStatus = req.st;
StaticStationInfo.Sevstatus = req.st;
SetServiceRes resp = new SetServiceRes();
CloudClientMgr.CloudClient?.Publish(resp);
}

@ -1,4 +1,7 @@
using HybirdFrameworkCore.Autofac.Attribute;
using Autofac;
using Entity.DbModel.Station;
using HybirdFrameworkCore.Autofac;
using HybirdFrameworkCore.Autofac.Attribute;
using Newtonsoft.Json;
using Service.Cloud.Client;
using Service.Cloud.Common;
@ -16,6 +19,13 @@ public class SignInRespHandler : IBaseHandler
if (signInResp != null)
{
CloudClientMgr.CloudClient.Authed = signInResp.re == 0;
CloudClientMgr.CloudClient.EquipmentUpload = signInResp.dl_up;
if (CloudClientMgr.CloudClient.EquipmentUpload != 0)
{
//上传设备列表
CloudClientMgr.SendDevList(1);
}
}
}

@ -42,7 +42,7 @@ namespace Service.Cloud.Msg.Host.Req
/// 发生时间
/// 格式”yyyy-MM-dd HH:mm:ss”
/// </summary>
public DateTime bt { get; set; }
public string bt { get; set; }
/// <summary>
/// 采集模式
/// 1自动2人工录入

@ -1,7 +1,9 @@
using Entity.Constant;
using Entity.DbModel.Station;
using HybirdFrameworkCore.Autofac;
using log4net;
using Newtonsoft.Json;
using Repository.Station;
using Service.Cloud.Client;
using Service.Cloud.Msg.Cloud.Req;
using Service.Cloud.Msg.Cloud.Resp;
@ -10,6 +12,7 @@ using Service.Cloud.Msg.Host.Req.OutCharger;
using Service.Execute.Model;
using Service.Execute.Model.Tbox;
using Service.Init;
using System.Security.Cryptography;
namespace Service.Execute.Api;
@ -113,15 +116,15 @@ public abstract class CloudApi
/// <summary>
/// 上报换电步序到云端
/// </summary>
/// <param name="state"></param>
/// <param name="daad">是否空闲</param>
public static void SendStateLog( int state)
public static void SendStateLog( )
{
if (BusinessSwappingForCloudState!= StationSoftMgr.SwappingStateMachine.BusinessSwappingForCloudState)
{
StationChnRunStatus stationChnRunStatus = null;
if (state == 1)
if (StationSoftMgr.SwappingStateMachine.BusinessSwappingForCloudState != InfoEnum.BusinessSwappingForCloudState.Idle||
StationSoftMgr.SwappingStateMachine.BusinessSwappingForCloudState != InfoEnum.BusinessSwappingForCloudState.UnKnown)
{
stationChnRunStatus = new()
{
@ -130,12 +133,12 @@ public abstract class CloudApi
cs = (int)StationSoftMgr.SwappingStateMachine.BusinessSwappingForCloudState,
iv = StationSoftMgr.SwappingStateMachine.RadarInFlag == true ? 1 : 2,
ls = StationSoftMgr.SwappingStateMachine.VelUnlockFlag == true ? 2 : 1,
fl = 0,
fl = Convert.ToInt32(StaticStationInfo.Faultlevel),
ut = DateTime.Now,
};
}
else
else//空闲
{
stationChnRunStatus = new()
@ -145,7 +148,7 @@ public abstract class CloudApi
cs = 1,
iv = 2,
ls = 0,
fl = 0,
fl = Convert.ToInt32(StaticStationInfo.Faultlevel),
ut = DateTime.Now,
};
@ -376,7 +379,7 @@ public abstract class CloudApi
/// 换电站进行签到认证
/// </summary>
/// <param name="req"></param>
public static void SendSignIn(SignIn req)
public static void SendSignIn()
{
SignIn signIn = new()
{
@ -384,33 +387,73 @@ public abstract class CloudApi
ky = StaticStationInfo.StationSn,
st = "02",
dv = "",
sv = StaticStationInfo.StationSftVer.ToString(),
sv = StaticStationInfo.StationSftVer,
ss = StaticStationInfo.Sevstatus,
ca = Convert.ToSingle(StaticStationInfo.DistributionCapacity),
VS = "",
cp = 0,
bs="",
lo="",
la="",
VS = "1.0",
cp = Convert.ToInt32(StaticStationInfo.TotalPower),
bs= StaticStationInfo.StationVersion,
lo= StaticStationInfo.Longitude,
la= StaticStationInfo.Latitude,
en=1,
cn=1,
eid=1,
oid=1,
cn=7,
eid= Convert.ToInt32(StaticStationInfo.Ceid),
oid = Convert.ToInt32(StaticStationInfo.Oid),
};
CloudClientMgr.CloudClient?.SendSignIn(req,
CloudClientMgr.CloudClient?.SendSignIn(signIn,
global::System.TimeSpan.FromSeconds(TimeSpan));
}
public static void SendReportingDeviceList(DevList req)
/// <summary>
/// 换电站上报设备列表
/// </summary>
/// <param name="req"></param>
public static void SendDevList(DevList req)
{
DevList devList = new()
{
};
CloudClientMgr.CloudClient?.SendReportingDeviceList(req,
global::System.TimeSpan.FromSeconds(TimeSpan));
}
/// <summary>
/// 实时故障上报
/// </summary>
/// <param name="req"></param>
public static void SendRealTimeFaultInfo(FaultReport req)
{
CloudClientMgr.CloudClient?.SendRealTimeFaultInfo(req,
global::System.TimeSpan.FromSeconds(TimeSpan));
}
/// <summary>
/// 换电站设备状态开始日志信息
/// </summary>
/// <param name="req"></param>
public static void SendStartLogMessage(EqmStateStartLogInfo req)
{
CloudClientMgr.CloudClient?.SendStartLogMessage(req,
global::System.TimeSpan.FromSeconds(TimeSpan));
}
/// <summary>
/// 换电站设备状态结束日志信息
/// </summary>
/// <param name="req"></param>
public static void SendEndLogMessage(EqmStateEndLogInfo req)
{
CloudClientMgr.CloudClient?.SendEndLogMessage(req,
global::System.TimeSpan.FromSeconds(TimeSpan));
}
public static void SendBatteryTotal(BatteryTotal req)
{
CloudClientMgr.CloudClient?.SendBatteryTotal(req,
global::System.TimeSpan.FromSeconds(TimeSpan));
}
public static void SendChargingTotalDis(ChargingTotalDis req)
{
CloudClientMgr.CloudClient?.SendChargingTotalDis(req,
global::System.TimeSpan.FromSeconds(TimeSpan));
}
}

@ -32,7 +32,12 @@ public class StaticStationInfo
get => Resolve(StationParamConst.OperationEndTime);
set => Set(StationParamConst.OperationEndTime, value);
}
public static string LaunchTime
{
get => Resolve(StationParamConst.LaunchTime);
set => Set(StationParamConst.LaunchTime, value);
}
public static int StationWay
{
get => int.Parse(Resolve(StationParamConst.StationWay));
@ -64,7 +69,17 @@ public class StaticStationInfo
get => Resolve(StationParamConst.StationSn);
set => Set(StationParamConst.StationSn, value);
}
public static string StationLocation
{
get => Resolve(StationParamConst.StationLocation);
set => Set(StationParamConst.StationLocation, value);
}
public static string StationType
{
get => Resolve(StationParamConst.StationType);
set => Set(StationParamConst.StationType, value);
}
public static int SwapFinishChargeTime
{
get => int.Parse(Resolve(StationParamConst.SwapFinishChargeTime));
@ -77,9 +92,9 @@ public class StaticStationInfo
set => Set(StationParamConst.SwapSoc, value);
}
public static int StationSftVer
public static string StationSftVer
{
get => int.Parse(Resolve(StationParamConst.StationSftVer));
get => Resolve(StationParamConst.StationSftVer);
set => Set(StationParamConst.StationSftVer, value);
}
public static string Faultlevel
@ -93,6 +108,73 @@ public class StaticStationInfo
get => Resolve(StationParamConst.DistributionCapacity);
set => Set(StationParamConst.DistributionCapacity, value);
}
public static string TotalPower
{
get => Resolve(StationParamConst.TotalPower);
set => Set(StationParamConst.TotalPower, value);
}
public static string ModifyTime
{
get => Resolve(StationParamConst.ModifyTime);
set => Set(StationParamConst.ModifyTime, value);
}
public static string StationVersion
{
get => Resolve(StationParamConst.StationVersion);
set => Set(StationParamConst.StationVersion, value);
}
public static string Longitude
{
get => Resolve(StationParamConst.Longitude);
set => Set(StationParamConst.Longitude, value);
}
public static string Latitude
{
get => Resolve(StationParamConst.Latitude);
set => Set(StationParamConst.Latitude, value);
}
public static string AreaCode
{
get => Resolve(StationParamConst.AreaCode);
set => Set(StationParamConst.AreaCode, value);
}
public static string AreaName
{
get => Resolve(StationParamConst.AreaName);
set => Set(StationParamConst.AreaName, value);
}
public static string ContactWay
{
get => Resolve(StationParamConst.ContactWay);
set => Set(StationParamConst.ContactWay, value);
}
public static string Principal
{
get => Resolve(StationParamConst.Principal);
set => Set(StationParamConst.Principal, value);
}
public static string StationCompany
{
get => Resolve(StationParamConst.StationCompany);
set => Set(StationParamConst.StationCompany, value);
}
public static string SocialCreditCode
{
get => Resolve(StationParamConst.SocialCreditCode);
set => Set(StationParamConst.SocialCreditCode, value);
}
public static string SupplierCode
{
get => Resolve(StationParamConst.SupplierCode);
set => Set(StationParamConst.SupplierCode, value);
}
public static string Cover
{
get => Resolve(StationParamConst.Cover);
set => Set(StationParamConst.Cover, value);
}
#region Tbox
public static bool TboxStateConnect

@ -0,0 +1,5 @@
ALTER TABLE equip_alarm_record
ADD COLUMN upload_status INT DEFAULT 0 COMMENT '上报状态 0未上传 1已上传';
ALTER TABLE equip_alarm_process_record
ADD COLUMN upload_status INT DEFAULT 0 COMMENT '上报状态 0未上传 1已上传';
Loading…
Cancel
Save