using DotNetty.Transport.Channels; using Entity.DbModel.Station; using HybirdFrameworkCore.Autofac.Attribute; using log4net; using Repository.Station; using Service.Charger.Msg.Charger.Req; namespace Service.Charger.Handler; /// /// 电池状态上报 处理器 /// [Order(8)] [Scope("InstancePerDependency")] public class BatteryStatusReportedReqHandler : SimpleChannelInboundHandler, IBaseHandler { private static readonly ILog Log =LogManager.GetLogger(typeof(BatteryStatusReportedReqHandler)); public BinInfoRepository BinInfoRepository { get; set; } /// /// /// protected override void ChannelRead0(IChannelHandlerContext ctx, BatteryStatusReportedReq msg) { UpdateBinInfo(msg.granary01, "1"); UpdateBinInfo(msg.granary02, "2"); UpdateBinInfo(msg.granary03, "3"); UpdateBinInfo(msg.granary04, "4"); UpdateBinInfo(msg.granary05, "5"); UpdateBinInfo(msg.granary06, "6"); UpdateBinInfo(msg.granary07, "7"); UpdateBinInfo(msg.granary08, "8"); UpdateBinInfo(msg.granary09, "9"); } private void UpdateBinInfo(int exists, string binNo) { if (exists == 0) BinInfoRepository.Update( it => new BinInfo(){ Exists = 0, ChargeStatus=2, BatteryNo = "-1", Soc = (decimal)-1, Soe = (decimal)-1, Soh = (decimal)-1, }, it => it.No == binNo); else BinInfoRepository.Update(it => new BinInfo { Exists = 1 }, it => it.No == binNo); } }