You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Entity.DbModel.Station;
using HybirdFrameworkCore.Entity;
using Microsoft.AspNetCore.Mvc;
using Repository.Station;
using Service.Plc.Client;
namespace WebStarter.Controllers;
/// <summary>
/// 换电大屏
/// </summary>
[ApiController]
[Route("api/[controller]")]
public class BinInfoController : ControllerBase
{
private readonly BinInfoRepository _BinInfoRepository;
private readonly EquipInfoRepository _equipInfoRepository;
public BinInfoController(BinInfoRepository infoRepository,EquipInfoRepository equipInfoRepository)
{
_BinInfoRepository = infoRepository;
_equipInfoRepository = equipInfoRepository;
}
/// <summary>
/// 启用禁用充电
/// id:仓位id
/// flag 1启用 0:禁用
/// </summary>
/// <param name="removeBinNo"></param>
/// <param name="putBinNo"></param>
/// <returns></returns>
[HttpGet("UpdateCanChargeFlag/{id}/{flag}")]
public Result<bool> UpdateCanChargeFlag(int id, int flag)
{
_BinInfoRepository.Update(it => it.CanChargeFlag == flag, it => it.Id == id);
return Result<bool>.Success();
}
[HttpGet("insert")]
public Result<bool> insert()
{
_BinInfoRepository.Insert(new BinInfo()
{
No = "10"
});
BinInfo queryByClause = _BinInfoRepository.QueryByClause(i => i.Id == 16);
return Result<bool>.Success();
}
/// <summary>
/// 启用禁用换电
/// id:仓位id
/// flag 1启用 0:禁用
/// </summary>
/// <param name="removeBinNo"></param>
/// <param name="putBinNo"></param>
/// <returns></returns>
[HttpGet("UpdateCanSwapFlag/{id}/{flag}")]
public async Task<Result<bool>> UpdateCanSwapFlag(int id, int flag)
{
_BinInfoRepository.Update(it => it.CanSwapFlag == flag, it => it.Id == id);
return Result<bool>.Success();
}
/// <summary>
/// 风机控制 1000全部打开
///1010全部关闭
/// </summary>
/// <returns></returns>
[HttpGet("AirBlowerControl/{cmd}")]
public Result<bool> AirBlower(ushort cmd)
{
return PlcMgr.AirBlowerControl(cmd) ? Result<bool>.Success() : Result<bool>.Fail();
}
/// <summary>
/// 查询风机状态
/// <para>0无状态</para>
/// <para>1000已全部打开</para>
/// <para>1010已全部关闭</para>
/// </summary>
/// <returns></returns>
[HttpGet("AirBlowerStatus")]
public Result<ushort> AirBlowerStatus()
{
return Result<ushort>.Success(PlcMgr.BlowerStatus());
}
/// <summary>
/// 获取仓位充电功率
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
[HttpGet("ChargePower/{code}")]
public Result<float> ChargePower(string code)
{
BinInfo binInfo = _BinInfoRepository.QueryByClause(it => it.No == code);
if (binInfo == null)
{
return Result<float>.Fail("仓位不存在");
}
EquipInfo equipInfo = _equipInfoRepository.QueryByClause(i => i.Code == binInfo.ChargerNo);
if (equipInfo == null)
{
return Result<float>.Fail("充电机不存在");
}
float? chargePower = equipInfo.ChargePower;
if (chargePower == null)
{
return Result<float>.Fail("该仓没有充电功率");
}
return Result<float>.Success((float)chargePower);
}
}