添加Controller

main
xiaoguo 2 years ago
parent 189fc93f70
commit d888c575d1

Binary file not shown.

@ -0,0 +1,15 @@
using PVDEMCS.Common.DI;
using PVDEMCS.Services;
namespace PVDEMCS.Common.Configuration
{
public class DeviceConfiguration : IDependency
{
public DeviceConfiguration(IDeviceService deviceService)
{
}
}
}

@ -1,31 +1,31 @@
namespace PVDEMCS.Common.Devices
{
public enum DeviceProtocol
public sealed class DeviceProtocol
{
//
// 摘要:
// 1200系列
S7_1200 = 1,
public const string S7_1200 = "S7_1200";
//
// 摘要:
// 300系列
S7_300,
public const string S7_300 = "S7_300";
//
// 摘要:
// 400系列
S7_400,
public const string S7_400 = "S7_400";
//
// 摘要:
// 1500系列PLC
S7_1500,
public const string S7_1500 = "S7_1500";
//
// 摘要:
// 200的smart系列
S7_200Smart,
public const string S7_200Smart = "S7_200Smart";
//
// 摘要:
// 200系统需要额外配置以太网模块
S7_200
public const string S7_200 = "S7_200";
}
}

@ -1,19 +0,0 @@
using PVDEMCS.Common.DI;
namespace PVDEMCS.Common.Devices
{
/*
*
*/
public class IDevice : IDependency
{
public string DeviceId { get; set; }
public string DeviceName { get; set; }
public DeviceProtocol DeviceProtocol { get; set; }
public IPLCCommunicationService IPLCCommunicationService { get; set; }
}
}

@ -0,0 +1,61 @@
using PVDEMCS.Common.DI;
using PVDEMCS.Services.Models;
using System.Security.Cryptography;
namespace PVDEMCS.Common.Devices
{
/*
*
*/
public interface IDeviceMonitor
{
IPLCCommunicationService PLCCommunicationService { get; }
/// <summary>
/// PLC 点位改变触发
/// </summary>
event EventHandler<DevicePoint> PointChnage;
/// <summary>
/// 获取错误相信
/// </summary>
event EventHandler<string> ErrorMessage;
/// <summary>
/// 间隔时间
/// </summary>
int Interval { get; set; }
/// <summary>
/// 当前点位集合
/// </summary>
ICollection<DevicePoint> Points { get; }
/// <summary>
/// PLC地址与端口
/// </summary>
void Init(string address, int port = 0);
/// <summary>
/// 加载点位
/// </summary>
/// <param name="tuples"></param>
void Load(params DevicePoint[] point);
/// <summary>
/// 清理所有点位
/// </summary>
void Clear();
/// <summary>
/// 开始监控
/// </summary>
Task<bool> StartAsync();
/// <summary>
/// 停止监控
/// </summary>
Task<bool> StopAsync();
}
}

@ -14,7 +14,7 @@ namespace PVDEMCS.Common.Devices
/// <summary>
/// PLC通信接口
/// </summary>
public interface IPLCCommunicationService : IDependency
public interface IPLCCommunicationService
{
/// <summary>
/// 是否已连接

@ -0,0 +1,238 @@
using PVDEMCS.Services.Models;
using System.Security.Cryptography;
namespace PVDEMCS.Common.Devices.Impl
{
public class DeviceMonitor : IDeviceMonitor
{
private DeviceInfo deviceInfo;
private IPLCCommunicationService plcCommunicationService;
private List<DevicePoint> devicePoints;
private object lockObj = new object();
private bool isRun = false;
public DeviceMonitor(DeviceInfo deviceInfo)
{
this.deviceInfo = deviceInfo;
this.devicePoints = new List<DevicePoint>();
PointMonitor();
}
/// <summary>
/// PLC 点位改变触发
/// </summary>
public event EventHandler<DevicePoint> PointChnage;
/// <summary>
/// 获取错误相信
/// </summary>
public event EventHandler<string> ErrorMessage;
/// <summary>
/// 间隔时间
/// </summary>
public int Interval { get; set; } = 1000;
public IPLCCommunicationService PLCCommunicationService
{
get
{
return plcCommunicationService;
}
}
/// <summary>
/// 当前点位集合
/// </summary>
public ICollection<DevicePoint> Points
{
get
{
return devicePoints;
}
}
/// <summary>
/// PLC地址与端口
/// </summary>
public void Init(string address, int port = 0)
{
this.deviceInfo.Host = address;
this.deviceInfo.Port = port;
}
/// <summary>
/// 获取PLC通信接口
/// </summary>
/// <param name="plcCommunicationService"></param>
public void Init(IPLCCommunicationService plcCommunicationService)
{
this.plcCommunicationService = plcCommunicationService;
}
/// <summary>
/// 加载点位集合
/// </summary>
/// <param name="tuples"></param>
public void Load(params DevicePoint[] points)
{
if (devicePoints.Where(f => points.Select(ff => ff.PointCode).Contains(f.PointCode)).Count() > 0)
{
throw new ArgumentException($"{nameof(points)}: Name 不能重复!");
}
devicePoints.AddRange(points);
}
/// <summary>
/// 清理所有点位
/// </summary>
public void Clear()
{
devicePoints.Clear();
}
/// <summary>
/// 开始监控
/// </summary>
public async Task<bool> StartAsync()
{
if (plcCommunicationService == null)
{
plcCommunicationService = new S7CommunicationService(this.deviceInfo.Protocol);
}
if (!plcCommunicationService.isConnected)
{
var result = await plcCommunicationService.ConnectionAsync(this.deviceInfo.Host, this.deviceInfo.Port);
if (!result.IsSuccess)
{
ErrorMessage?.Invoke(this, "开始PLC连接失败" + result.Message);
return await Task.FromResult(false);
}
isRun = true;
}
return await Task.FromResult(true);
}
/// <summary>
/// 停止监控
/// </summary>
public async Task<bool> StopAsync()
{
if (plcCommunicationService.isConnected)
{
var result = await plcCommunicationService.ColseConnectionAsyn();
if (!result.IsSuccess)
{
ErrorMessage?.Invoke(this, "关闭PLC连接失败" + result.Message);
return await Task.FromResult(false);
}
isRun = false;
return await Task.FromResult(true);
}
return await Task.FromResult(true);
}
private void PointMonitor()
{
Task.Run(() =>
{
while (true)
{
lock (lockObj)
{
if (Points.Count > 0 && isRun)
{
Parallel.ForEach(devicePoints, async point =>
{
await CallDevicePoint(point);
});
}
Thread.Sleep(Interval);
}
}
});
}
/// <summary>
/// 获取PLC点位信息
/// </summary>
/// <param name="point"></param>
/// <returns></returns>
private async Task CallDevicePoint(DevicePoint point)
{
var type = point.DataType;
var plcService = plcCommunicationService;
//Boolean
if (type.Equals(typeof(Boolean)))
{
var result = await plcService.ReadBoolAsync(point.Address);
GetReturnValue(point, result);
return;
}
//Byte
if (type.Equals(typeof(Byte)))
{
var result = await plcService.ReadByteAsync(point.Address);
GetReturnValue(point, result);
return;
}
//Byte
if (type.Equals(typeof(Byte)))
{
var result = await plcService.ReadByteAsync(point.Address);
GetReturnValue(point, result);
return;
}
//Int16
if (type.Equals(typeof(Int16)))
{
var result = await plcService.ReadInt16Async(point.Address);
GetReturnValue(point, result);
return;
}
//Int32
if (type.Equals(typeof(Int32)))
{
var result = await plcService.ReadInt32Async(point.Address);
GetReturnValue(point, result);
return;
}
//Int64
if (type.Equals(typeof(Int64)))
{
var result = await plcService.ReadLongAsync(point.Address);
GetReturnValue(point, result);
return;
}
//float
if (type.Equals(typeof(float)))
{
var result = await plcService.ReadFloatAsync(point.Address);
GetReturnValue(point, result);
return;
}
//double
if (type.Equals(typeof(Double)))
{
var result = await plcService.ReadDoubleAsync(point.Address);
GetReturnValue(point, result);
return;
}
}
private void GetReturnValue<T>(DevicePoint point, Result<T> result)
{
if (result.IsSuccess)
{
if (point.ObjectValue == null || !point.ObjectValue.Equals(result.Content))
{
point.ObjectValue = result.Content;
PointChnage?.Invoke(this, point);
}
}
else
{
ErrorMessage?.Invoke(this, result.Message);
}
}
}
}

@ -28,7 +28,7 @@ namespace PVDEMCS.Common.Devices.Impl
/// </summary>
public bool isConnected { get; private set; }
public S7CommunicationService(DeviceProtocol deviceProtocol)
public S7CommunicationService(string deviceProtocol)
{
switch (deviceProtocol) {
case DeviceProtocol.S7_400:

@ -0,0 +1,197 @@
using AngleSharp.Dom;
using Masuit.Tools.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using PVDEMCS.Common;
using PVDEMCS.Common.Constant;
using PVDEMCS.Services;
using PVDEMCS.Services.Models;
using SharpCompress.Common;
using System;
namespace PVDEMCS.Controllers
{
/// <summary>
/// PLC控制器
/// </summary>
[ApiController]
[Route("[controller]/[action]")]
public class DeviceController : Controller
{
private IDeviceService _deviceService;
public DeviceController(IDeviceService deviceService)
{
_deviceService = deviceService;
}
#region PLC控制器
/// <summary>
/// 获取PLC控制器分页列表
/// </summary>
/// <param name="deviceCode">控制器编号</param>
/// <param name="deviceName">控制器名称</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
/// <returns></returns>
[HttpGet]
public Result<PagedList<DeviceInfo>> GetDevicePageList(string deviceCode, string deviceName, bool? activated, int page, int size = 20)
{
var result = _deviceService.GetDevicePageList(deviceCode, deviceName, activated, page, size);
return result;
}
/// <summary>
/// 获取PLC控制器列表
/// </summary>
/// <param name="deviceCode">控制器编号</param>
/// <param name="deviceName">控制器名称</param>
/// <returns></returns>
[HttpGet]
public Result<List<DeviceInfo>> GetDeviceInfoList(string deviceCode, string deviceName, bool? activated = false)
{
var result = _deviceService.GetDeviceInfoList(deviceCode, deviceName, activated);
return result;
}
/// <summary>
/// 获取PLC控制器明细
/// </summary>
/// <param name="id">主键Id</param>
/// <returns></returns>
[HttpGet]
public Result<DeviceInfo> GetDeviceDetail(string id)
{
var result = _deviceService.GetDeviceDetail(id);
return result;
}
/// <summary>
/// 添加PLC控制器
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
public Result<string> AddDevice(DeviceInfo entity)
{
var result = _deviceService.AddDevice(entity);
return result;
}
/// <summary>
/// 更新PLC控制器
/// </summary>
/// <param name="entity"></param>
[HttpPost]
public Result UpdateDevice(DeviceInfo entity)
{
var result = _deviceService.UpdateDevice(entity);
return result;
}
/// <summary>
/// 删除PLC控制器
/// </summary>
/// <param name="id"></param>
[HttpPost]
public Result DeleteDevice(string id)
{
var result = _deviceService.DeleteDevice(id);
return result;
}
#endregion
#region PLC点位
/// <summary>
/// 获取PLC控制器点位分页列表
/// </summary>
/// <param name="deviceCode">控制器编号</param>
/// <param name="deviceName">控制器名称</param>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="pointCode">点位编号</param>
/// <param name="pointName">点位列表</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
/// <returns></returns>
[HttpGet]
public Result<PagedList<DevicePoint>> GetDevicePointPageList(string deviceName, string deviceCode, string equipmentName, string equipmentCode, string equipmentType, string pointCode, string pointName, bool? activated, int page, int size = 20)
{
var result = _deviceService.GetDevicePointPageList(deviceName, deviceCode, equipmentName, equipmentCode, equipmentType, pointCode, pointName, activated, page, size);
return result;
}
/// <summary>
/// 获取PLC控制器点位列表
/// </summary>
/// <param name="deviceCode">控制器编号</param>
/// <param name="deviceName">控制器名称</param>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="pointCode">点位编号</param>
/// <param name="pointName">点位列表</param>
/// <returns></returns>
[HttpGet]
public List<DevicePoint> GetDevicePointList(string deviceName, string deviceCode, string equipmentName, string equipmentCode, string equipmentType, string pointCode, string pointName, bool? activated)
{
var result = _deviceService.GetDevicePointList(deviceName, deviceCode, equipmentName, equipmentCode, equipmentType, pointCode, pointName, activated);
return result;
}
/// <summary>
/// 获取PLC控制器点位明细
/// </summary>
/// <param name="id">Id</param>
/// <returns></returns>
[HttpGet]
public Result<DevicePoint> GetDevicePointDetail(string id)
{
var result = _deviceService.GetDevicePointDetail(id);
return result;
}
/// <summary>
/// 添加PLC控制器点位
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
public Result<string> AddDevicePoint(DevicePoint entity)
{
var result = _deviceService.AddDevicePoint(entity);
return result;
}
/// <summary>
/// 更新PLC控制器点位
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
public Result UpdateDevicePoint(DevicePoint entity)
{
var result = _deviceService.UpdateDevicePoint(entity);
return result;
}
/// <summary>
/// 删除PLC控制器点位
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public Result DeleteDevicePoint(string id)
{
var result = _deviceService.DeleteDevicePoint(id);
return result;
}
#endregion
}
}

@ -0,0 +1,103 @@
using Masuit.Tools.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using PVDEMCS.Common;
using PVDEMCS.Common.Constant;
using PVDEMCS.Services;
using PVDEMCS.Services.Models;
using System;
namespace PVDEMCS.Controllers
{
/// <summary>
/// 设备管理
/// </summary>
[ApiController]
[Route("[controller]/[action]")]
public class EquipmentController : Controller
{
private IEquipmentService _equipmentService;
public EquipmentController(IEquipmentService equipmentService)
{
this._equipmentService = equipmentService;
}
/// <summary>
/// 获取设备分页列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="activated">是否启用</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
/// <returns></returns>
[HttpGet]
public Result<PagedList<EquipmentInfo>> GetEquipmentPageList(string equipmentName, string equipmentCode, string equipmentType, bool? activated, int page, int size)
{
var result = this._equipmentService.GetEquipmentPageList(equipmentName,equipmentCode,equipmentType,activated,page,size);
return result;
}
/// <summary>
/// 获取设备列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="activated">是否启用</param>
[HttpGet]
public Result<List<EquipmentInfo>> GetEquipmentList(string equipmentName, string equipmentCode, string equipmentType, bool? activated)
{
var result = this._equipmentService.GetEquipmentList(equipmentName, equipmentCode, equipmentType, activated);
return result;
}
/// <summary>
/// 获取设备明显
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public Result<EquipmentInfo> GetEquipmentDetail(string id)
{
var result = this._equipmentService.GetEquipmentDetail(id);
return result;
}
/// <summary>
/// 添加设备信息
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
public Result AddEquipment(EquipmentInfo info)
{
var result = this._equipmentService.AddEquipment(info);
return result;
}
/// <summary>
/// 更新设备信息
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
public Result UpdateEquipment(EquipmentInfo info)
{
var result = this._equipmentService.UpdateEquipment(info);
return result;
}
/// <summary>
/// 删除设备信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public Result DeleteEquipment(string id)
{
var result = this._equipmentService.DeleteEquipment(id);
return result;
}
}
}

@ -0,0 +1,127 @@
using Masuit.Tools.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using PVDEMCS.Common;
using PVDEMCS.Common.Constant;
using PVDEMCS.Services;
using PVDEMCS.Services.Models;
using System;
namespace PVDEMCS.Controllers
{
/// <summary>
/// 设备数据记录与统计
/// </summary>
[ApiController]
[Route("[controller]/[action]")]
public class EquipmentRecordController : Controller
{
private IEquipmentRecordService _equipmentRecordService;
public EquipmentRecordController(IEquipmentRecordService equipmentRecordService)
{
this._equipmentRecordService = equipmentRecordService;
}
#region 设备状态记录
/// <summary>
/// 获取设备状态记录分页列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
/// <returns></returns>
[HttpGet]
public Result<PagedList<EquipmentRecord>> GetEquipmentRecordPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size)
{
var result= _equipmentRecordService.GetEquipmentRecordPageList(equipmentName, equipmentCode, equipmentType, begTime, endTime, page, size);
return result;
}
/// <summary>
/// 获取设备状态记录列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <returns></returns>
[HttpGet]
public Result<List<EquipmentRecord>> GetEquipmentRecordList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime)
{
var result = _equipmentRecordService.GetEquipmentRecordList(equipmentName, equipmentCode, equipmentType, begTime, endTime);
return result;
}
/// <summary>
/// 添加或更新设备状态记录
/// 1.如果设备最新记录状态没有改变则更新结束时间
/// 2.如果没有记录则添加记录
/// </summary>
/// <param name="equipmentId">设备Id</param>
/// <param name="state">设备状态,运行:Run待机:Stop报警:Alarm</param>
/// <param name="dateTime">记录时间</param>
/// <returns></returns>
[HttpPost]
public Result AddUpdateEquipmentRecord(string equipmentId, string state, DateTime dateTime)
{
var result = _equipmentRecordService.AddUpdateEquipmentRecord(equipmentId, state, dateTime);
return result;
}
///// <summary>
///// 进行设备状态记录统计(日统计)
///// </summary>
///// <param name="date"></param>
///// <returns></returns>
//[HttpPost]
//public Result RunEquipmentRecordTotal(DateTime date)
//{
// var result = _equipmentRecordService.RunEquipmentRecordTotal(date);
// return result;
//}
#endregion
#region 设备记录统计
/// <summary>
/// 获取设备状态记录统计分页列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
[HttpGet]
public Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordDayTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size)
{
var result = _equipmentRecordService.GetEquipmentRecordDayTotalPageList(equipmentName,equipmentCode,equipmentType,begTime,endTime,page,size);
return result;
}
/// <summary>
/// 获取设备状态记录统计列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
[HttpGet]
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime)
{
var result = _equipmentRecordService.GetEquipmentRecordDayTotalList(equipmentName, equipmentCode, equipmentType, begTime, endTime);
return result;
}
#endregion
}
}

@ -0,0 +1,111 @@
using Masuit.Tools.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using PVDEMCS.Common;
using PVDEMCS.Services;
using PVDEMCS.Services.Models;
using System.Xml.Linq;
namespace PVDEMCS.Controllers
{
/// <summary>
/// 系统参数设置
/// </summary>
[ApiController]
[Route("[controller]/[action]")]
public class SysConfigController : Controller
{
private ISysConfigService _sysConfigService;
public SysConfigController(ISysConfigService sysConfigService)
{
this._sysConfigService = sysConfigService;
}
/// <summary>
/// 获取系统参数设置分页列表
/// </summary>
/// <param name="configName">参数名称</param>
/// <param name="configKey">参数键值</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
/// <returns></returns>
[HttpGet]
public Result<PagedList<SysConfig>> GetSysConfigPageList(string configName, string configKey, int page, int size)
{
var result = this._sysConfigService.GetSysConfigPageList(configName,configKey,page,size);
return result;
}
/// <summary>
/// 获取系统参数设置列表
/// </summary>
/// <param name="configName">参数名称</param>
/// <param name="configKey">参数键值</param>
/// <returns></returns>
[HttpGet]
public Result<List<SysConfig>> GetSysConfigList(string configName, string configKey)
{
var result = this._sysConfigService.GetSysConfigList(configName, configKey);
return result;
}
/// <summary>
/// 获取获取系统参数设置明细
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public Result<SysConfig> GetSysConfigDetailById(string id)
{
var result = this._sysConfigService.GetSysConfigDetailById(id);
return result;
}
/// <summary>
/// 获取获取系统参数设置明细
/// </summary>
/// <param name="name"></param>
/// /// <param name="key"></param>
/// <returns></returns>
[HttpGet]
public Result<SysConfig> GetSysConfigDetailNameOrKey(string name, string key = "")
{
var result = this._sysConfigService.GetSysConfigDetailNameOrKey(name, key);
return result;
}
/// <summary>
/// 添加系统参数设置
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
public Result AddSysConfig(SysConfig info)
{
var result = this._sysConfigService.AddSysConfig(info);
return result;
}
/// <summary>
/// 更新系统参数设置
/// </summary>
/// <param name="info"></param>
[HttpPost]
public Result UpdateSysConfig(SysConfig info)
{
var result = this._sysConfigService.UpdateSysConfig(info);
return result;
}
/// <summary>
/// 删除系统参数设置
/// </summary>
/// <param name="id"></param>
[HttpPost]
public Result DeleteSysConfig(string id)
{
var result = this._sysConfigService.DeleteSysConfig(id);
return result;
}
}
}

@ -1,38 +0,0 @@
using Microsoft.AspNetCore.Mvc;
using PVDEMCS.Services.Repositories.Entities;
namespace PVDEMCS.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
using (var context = new EFContext())
{
var list = context.DeviceInfos.ToList();
}
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
}

@ -2,8 +2,9 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<!--<Nullable>enable</Nullable>-->
<ImplicitUsings>enable</ImplicitUsings>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
</PropertyGroup>
</Project>

@ -1,6 +1,8 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.OpenApi.Models;
using PVDEMCS.Common.DI;
using System.Configuration;
using System.Reflection;
var builder = WebApplication.CreateBuilder(args);
@ -9,7 +11,12 @@ var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSwaggerGen(options =>
{
//options.SwaggerDoc("v1", new OpenApiInfo { Title = "PVDEMCS Api", Version = "v1" });
var xmlPathApp = Path.Combine(AppContext.BaseDirectory, $"{Assembly.GetExecutingAssembly().GetName().Name}.xml");
options.IncludeXmlComments(xmlPathApp, true);
});
//×¢²á·þÎñ
builder.AddAutofacExt();
//

@ -68,7 +68,7 @@ namespace PVDEMCS.Services
/// <param name="endTime">结束时间</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size);
Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordDayTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size);
/// <summary>
/// 获取设备状态记录统计列表
@ -78,7 +78,7 @@ namespace PVDEMCS.Services
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime);
Result<List<EquipmentRecordTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime);
#endregion
}

@ -94,9 +94,9 @@ namespace PVDEMCS.Services.Impl
/// <param name="endTime">结束时间</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
public Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size)
public Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordDayTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size)
{
var result = this._equipmentRecordRepository.GetEquipmentRecordTotalPageList(equipmentName, equipmentCode, equipmentType, begTime, endTime, page, size);
var result = this._equipmentRecordRepository.GetEquipmentRecordDayTotalPageList(equipmentName, equipmentCode, equipmentType, begTime, endTime, page, size);
return result;
}
@ -108,9 +108,9 @@ namespace PVDEMCS.Services.Impl
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime)
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime)
{
var result = this._equipmentRecordRepository.GetEquipmentRecordTotalList(equipmentName, equipmentCode, equipmentType, begTime, endTime);
var result = this._equipmentRecordRepository.GetEquipmentRecordDayTotalList(equipmentName, equipmentCode, equipmentType, begTime, endTime);
return result;
}

@ -40,7 +40,7 @@ public partial class DeviceInfo
/// <summary>
/// 控制器主机端口
/// </summary>
public string Port { get; set; }
public int Port { get; set; }
/// <summary>
/// 备注

@ -77,4 +77,6 @@ public partial class DevicePoint
/// </summary>
public string Remark { get; set; }
public Object ObjectValue { get; set; }
}

@ -59,8 +59,7 @@ public partial class DeviceInfoEntity : CUDBaseEntity
/// </summary>
[Required]
[Column("port")]
[StringLength(32)]
public string Port { get; set; }
public int Port { get; set; }
/// <summary>
/// 备注

@ -62,7 +62,7 @@ namespace PVDEMCS.Services.Repositories
#region 设备记录统计
/// <summary>
/// 获取设备状态记录统计分页列表
/// 获取设备状态记录统计分页列表
/// </summary>
/// <param name="equipmentName">设备名称</param>
/// <param name="equipmentCode">设备编号</param>
@ -71,7 +71,7 @@ namespace PVDEMCS.Services.Repositories
/// <param name="endTime">结束时间</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size);
Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordDayTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size);
/// <summary>
/// 获取设备状态记录统计列表
@ -81,7 +81,7 @@ namespace PVDEMCS.Services.Repositories
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime);
Result<List<EquipmentRecordTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime);
#endregion
}

@ -332,7 +332,7 @@ namespace PVDEMCS.Services.Repositories.Impl
/// <param name="endTime">结束时间</param>
/// <param name="page">当前页</param>
/// <param name="size">页大小</param>
public Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size)
public Result<PagedList<EquipmentRecordTotal>> GetEquipmentRecordDayTotalPageList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime, int page, int size)
{
using (var context = new EFContext())
{
@ -352,7 +352,7 @@ namespace PVDEMCS.Services.Repositories.Impl
/// <param name="equipmentType">设备类型</param>
/// <param name="begTime">开始时间</param>
/// <param name="endTime">结束时间</param>
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime)
public Result<List<EquipmentRecordTotal>> GetEquipmentRecordDayTotalList(string equipmentName, string equipmentCode, string equipmentType, DateTime begTime, DateTime endTime)
{
using (var context = new EFContext())
{

@ -1,13 +0,0 @@
namespace PVDEMCS
{
public class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
}

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
3f18e6f22588115ab646e6b0fe3b621492eea291
b81545b6cee6922e2492904a3e28e855a2da7c43

@ -90,3 +90,5 @@ D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Microsoft.Extensions.Dependen
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Mono.TextTemplating.dll
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\MySqlConnector.dll
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Pomelo.EntityFrameworkCore.MySql.dll
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\PVDEMCS.xml
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\obj\Debug\net6.0\PVDEMCS.xml

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save