using AutoMapper; using Entity.DbModel.Station; using Entity.Dto.Req; using Entity.Dto.Resp; using HybirdFrameworkCore.Entity; using Microsoft.AspNetCore.Mvc; using Repository.Station; using Service.Charger; using Service.Charger.Client; using Service.Station; namespace WebStarter.Controllers; /// /// 充电机管理 /// [Produces("application/json")] [ApiController] [Route("api/[controller]")] public class ChargeController : ControllerBase { private ChargerService _chargerService; private BinInfoService _binInfoService; public ChargeController(ChargerService chargerService, BinInfoService binInfoService) { _chargerService = chargerService; _binInfoService = binInfoService; } /// /// 仓位信息 /// /// 仓位信息列表 [HttpGet] [Route("GetChargMonitorChargBinData")] public Result> GetChargMonitorChargBinData() { return Result>.Success(_binInfoService.GetChargMonitorChargBinData()); } /// /// 仓位禁用 /// /// 需要禁用仓id /// 仓位信息列表 [HttpGet] [Route("ChargingBinDisable/{data}")] public Result ChargingBinDisable(int data) { return Result.Success(_binInfoService.UpdateStatus(data)); } /// /// 获取仓位实时功率 /// /// 仓位实时功率列表 [HttpPost] [Route("GetBinPowers")] public Result GetBinPowers() { float[] results = ClientMgr.Dictionary.Values .Select(chargerClient => chargerClient.RealTimeChargePower) .ToArray(); return Result.Success(results); } /// /// 通过仓号启动充电 /// /// 仓号 /// [HttpGet] [Route("StartChargeByBinNo/{binNo}")] public Result StartChargeByBinNo(string binNo) { return _chargerService.StartChargeByBinNo(binNo); } /// /// 通过仓号停止充电 /// /// 仓号 /// [HttpGet] [Route("StopChargeByBinNo/{binNo}")] public Result StopChargeByBinNo(string binNo) { return _chargerService.StopChargeByBinNo(binNo); } /// /// 下发电价配置 /// /// [HttpGet] [Route("DistributeElecPriceForCharge/{Version}")] public Result DistributeElecPriceForCharge(int Version) { return _chargerService.DistributeElecPriceForCharge(Version); } //BatteryStatusInfo /// /// 电池状态信息:电池总数 满电数量、充电中、故障电池、维护中电池 /// /// [HttpGet] [Route("BatteryStatusInfo")] public Result BatteryStatusInfo() { return _chargerService.BatteryStatusInfo(); } }