肖正
5 months ago
19 changed files with 684 additions and 331 deletions
@ -0,0 +1,40 @@ |
|||||
|
|
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using Admin.NET.Core; |
||||
|
using Nest; |
||||
|
using SqlSugar; |
||||
|
using Yitter.IdGenerator; |
||||
|
|
||||
|
namespace Admin.Bodk.Device.Entities; |
||||
|
/// <summary>
|
||||
|
/// 基地列表
|
||||
|
/// </summary>
|
||||
|
[SugarTable(null, "基地列表")] |
||||
|
[SysTable] |
||||
|
public class Base: EntityBaseId, IRepositorySettings |
||||
|
{ |
||||
|
// 是否主键,是否自增
|
||||
|
[SugarColumn(ColumnDescription = "主键", IsPrimaryKey = true, IsIdentity = false)] |
||||
|
public long Id { get; set; } = YitIdHelper.NextId(); |
||||
|
|
||||
|
[SugarColumn(ColumnDescription = "基地名称", Length = 32)] |
||||
|
[Required, MaxLength(32)] |
||||
|
public virtual string? Name { get; set; } |
||||
|
|
||||
|
[SugarColumn(ColumnDescription = "地址")] |
||||
|
[Required] |
||||
|
public virtual string? Address { get; set; } |
||||
|
|
||||
|
[SugarColumn(ColumnDescription = "电话",IsNullable = true)] |
||||
|
public int Phone { get; set; } |
||||
|
|
||||
|
[SugarColumn(ColumnDescription = "是否可冻存",IsNullable = true)] |
||||
|
public bool CanFrozen { get; set; } |
||||
|
[SugarColumn(ColumnDescription = "是否可使用",IsNullable = true)] |
||||
|
public int CanUse { get; set; } |
||||
|
[SugarColumn(ColumnDescription = "是否可检测",IsNullable = true)] |
||||
|
public int CanDetection { get; set; } |
||||
|
|
||||
|
[SugarColumn(ColumnDescription = "描述",IsNullable = true)] |
||||
|
public string Remark { get; set; } |
||||
|
} |
@ -0,0 +1,29 @@ |
|||||
|
using Admin.NET.Core; |
||||
|
|
||||
|
namespace Admin.Bodk.Device.Entities.Dto; |
||||
|
|
||||
|
public class Base |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
public class BaseInput : BasePageInput |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
public class BaseOutput |
||||
|
{ |
||||
|
public long Id { get; set; } |
||||
|
public string Name { get; set; } |
||||
|
public string Address { get; set; } |
||||
|
public string Remark { get; set; } |
||||
|
public int Phone { get; set; } |
||||
|
public DateTime CreateTime { get; set; } |
||||
|
|
||||
|
public List<Support> SupportList { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class BaseAddInput |
||||
|
{ |
||||
|
public string Address { get; set; } |
||||
|
public string Name { get; set; } |
||||
|
} |
@ -0,0 +1,64 @@ |
|||||
|
|
||||
|
using Admin.NET.Core; |
||||
|
|
||||
|
namespace Admin.Bodk.Device.Entities.Dto; |
||||
|
|
||||
|
public class SupportDto |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public class SupportInput : BasePageInput |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
public class SupportAddInput |
||||
|
{ |
||||
|
public string Name { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class SupportOutput |
||||
|
{ |
||||
|
public string State { get; set; } |
||||
|
public string Name { get; set; } |
||||
|
public string DetectionServiceId { get; set; } |
||||
|
public int DetectionServiceType { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class CellOutput |
||||
|
{ |
||||
|
public string Activity { get; set; } |
||||
|
public double Temperature { get; set; } |
||||
|
public string Humidity { get; set; } |
||||
|
public string Density { get; set; } |
||||
|
public string Capacity { get; set; } |
||||
|
public int Type { get; set; } |
||||
|
public string Location { get; set; } |
||||
|
public DateTime? LastOperationTime { get; set; } |
||||
|
public DeviceInfo DeviceInfo { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class DeviceInfo |
||||
|
{ |
||||
|
public long DeviceId { get; set; } |
||||
|
public string PicUrl { get; set; } |
||||
|
public float LiquidNitrogenHeight { get; set; } |
||||
|
public double Temperature { get; set; } |
||||
|
public string Humidity { get; set; } |
||||
|
public string Address { get; set; } |
||||
|
public string Name { get; set; } |
||||
|
public CellBaseInfo CellBaseInfo { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class CellBaseInfo |
||||
|
{ |
||||
|
public string BaseName { get; set; } |
||||
|
public long BaseId { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class SupportBaseOutput |
||||
|
{ |
||||
|
public long Id { get; set; } |
||||
|
public string Name { get; set; } |
||||
|
public DateTime CreateTime { get; set; } |
||||
|
} |
@ -0,0 +1,32 @@ |
|||||
|
|
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using Admin.NET.Core; |
||||
|
using Nest; |
||||
|
using SqlSugar; |
||||
|
using Yitter.IdGenerator; |
||||
|
|
||||
|
namespace Admin.Bodk.Device.Entities; |
||||
|
/// <summary>
|
||||
|
/// 服务表
|
||||
|
/// </summary>
|
||||
|
[SugarTable(null, "服务表")] |
||||
|
[SysTable] |
||||
|
public class Support: EntityBaseId, IRepositorySettings |
||||
|
{ |
||||
|
// 是否主键,是否自增
|
||||
|
[SugarColumn(ColumnDescription = "主键", IsPrimaryKey = true, IsIdentity = false)] |
||||
|
public long Id { get; set; } = YitIdHelper.NextId(); |
||||
|
|
||||
|
[SugarColumn(ColumnDescription = "服务名称", Length = 32)] |
||||
|
[Required, MaxLength(32)] |
||||
|
public virtual string? Name { get; set; } |
||||
|
|
||||
|
[SugarColumn(ColumnDescription = "基地ID",IsNullable = true)] |
||||
|
public long BaseId { get; set; } |
||||
|
[SugarColumn(ColumnDescription = "描述",IsNullable = true)] |
||||
|
public string Remark { get; set; } |
||||
|
|
||||
|
// 导航属性
|
||||
|
[SugarColumn(IsIgnore = true)] |
||||
|
public virtual Base Base { get; set; } |
||||
|
} |
@ -0,0 +1,69 @@ |
|||||
|
|
||||
|
using System.ComponentModel; |
||||
|
using Admin.Bodk.Device.Entities; |
||||
|
using Admin.Bodk.Device.Entities.Dto; |
||||
|
using Admin.Bodk.Device.Entities.equipment; |
||||
|
using Admin.Bodk.Device.Entities.TaskChain; |
||||
|
using Admin.NET.Core; |
||||
|
using Furion.DatabaseAccessor; |
||||
|
using Furion.DependencyInjection; |
||||
|
using Furion.DynamicApiController; |
||||
|
using Furion.FriendlyException; |
||||
|
using Mapster; |
||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer; |
||||
|
using Microsoft.AspNetCore.Authorization; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using SqlSugar; |
||||
|
|
||||
|
namespace Admin.Bodk.Device.Services; |
||||
|
/// <summary>
|
||||
|
/// 基地管理服务
|
||||
|
/// </summary>
|
||||
|
[ApiDescriptionSettings(Order = 2)] |
||||
|
public class BaseService : IDynamicApiController, ITransient |
||||
|
{ |
||||
|
private readonly SqlSugarRepository<Entities.Base> _baseRep; |
||||
|
private readonly SqlSugarRepository<Entities.Support> _supportRep; |
||||
|
public BaseService(SqlSugarRepository<Entities.Base> baseRep, SqlSugarRepository<Entities.Support> supportRep) |
||||
|
{ |
||||
|
_baseRep = baseRep; |
||||
|
_supportRep = supportRep; |
||||
|
} |
||||
|
/// <summary>
|
||||
|
/// 获取基地信息列表
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[DisplayName("获取基地信息列表")] |
||||
|
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)] |
||||
|
public async Task<SqlSugarPagedList<BaseOutput>> PostList(BaseInput input) |
||||
|
{ |
||||
|
return await _baseRep.AsQueryable() |
||||
|
.Select((u) => new BaseOutput |
||||
|
{ |
||||
|
Id = u.Id, |
||||
|
Name = u.Name, |
||||
|
Address = u.Address, |
||||
|
Remark = u.Remark, |
||||
|
Phone = u.Phone, |
||||
|
SupportList =SqlFunc.Subqueryable<Support>().Where(tc => tc.BaseId == u.Id).ToList() |
||||
|
}) |
||||
|
.ToPagedListAsync(input.Page, input.PageSize); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 增加基地
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[UnitOfWork] |
||||
|
[ApiDescriptionSettings(Name = "Add"), HttpPost] |
||||
|
[DisplayName("增加客户")] |
||||
|
public async Task<long> AddCustomer(BaseAddInput input) |
||||
|
{ |
||||
|
if(input is null) throw Oops.Oh("参数不能为空"); |
||||
|
var customer = input.Adapt<Entities.Base>(); |
||||
|
var newEquipment = await (_baseRep).AsInsertable(customer).ExecuteReturnEntityAsync(); |
||||
|
return newEquipment.Id; |
||||
|
} |
||||
|
} |
@ -0,0 +1,92 @@ |
|||||
|
|
||||
|
using System.ComponentModel; |
||||
|
using Admin.Bodk.Device.Entities.Dto; |
||||
|
using Admin.Bodk.Device.Entities.equipment; |
||||
|
using Admin.NET.Core; |
||||
|
using Furion.DatabaseAccessor; |
||||
|
using Furion.DependencyInjection; |
||||
|
using Furion.DynamicApiController; |
||||
|
using Furion.FriendlyException; |
||||
|
using Mapster; |
||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer; |
||||
|
using Microsoft.AspNetCore.Authorization; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
||||
|
|
||||
|
namespace Admin.Bodk.Device.Services; |
||||
|
/// <summary>
|
||||
|
/// 服务管理
|
||||
|
/// </summary>
|
||||
|
[ApiDescriptionSettings(Order = 2)] |
||||
|
public class SupportService: IDynamicApiController, ITransient |
||||
|
{ |
||||
|
private readonly SqlSugarRepository<Entities.Base> _baseRep; |
||||
|
private readonly SqlSugarRepository<Entities.Support> _supportRep; |
||||
|
public SupportService(SqlSugarRepository<Entities.Base> baseRep, SqlSugarRepository<Entities.Support> supportRep) |
||||
|
{ |
||||
|
_baseRep = baseRep; |
||||
|
_supportRep = supportRep; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 获取检测信息列表
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[DisplayName("获取检测信息列表")] |
||||
|
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)] |
||||
|
public async Task<SqlSugarPagedList<SupportOutput>> PostGetDetectionList(BaseInput input) |
||||
|
{ |
||||
|
List<SupportOutput> items = new List<SupportOutput>(); |
||||
|
items.Add( new SupportOutput() {State="检测中",Name = "检测1",DetectionServiceId = "dd123323",DetectionServiceType=0}); |
||||
|
items.Add( new SupportOutput() {State="已完成",Name = "检测2",DetectionServiceId = "dd1233213",DetectionServiceType=1}); |
||||
|
items.Add( new SupportOutput() {State="已完成",Name = "检测3",DetectionServiceId = "dd1233213",DetectionServiceType=1}); |
||||
|
return new SqlSugarPagedList<SupportOutput>() { Page = 1, PageSize = 20, Items = items, Total = 3 }; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 获取细胞服务列表
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[DisplayName("获取细胞服务列表")] |
||||
|
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)] |
||||
|
public async Task<SqlSugarPagedList<CellOutput>> PostGetCellList(BaseInput input) |
||||
|
{ |
||||
|
List<CellOutput> items = new List<CellOutput>(); |
||||
|
items.Add( new CellOutput() {Activity="51%",Temperature = -192.5, Humidity = "12.1%", |
||||
|
Density="20个/ml", Capacity="200ml", Type= 1, Location="松山湖",LastOperationTime=null, |
||||
|
DeviceInfo=new DeviceInfo() |
||||
|
{ |
||||
|
DeviceId=23223232,PicUrl="",LiquidNitrogenHeight=302,Temperature=-195.2, |
||||
|
Humidity="10%",Address="广东省东莞市科技二路与科技一路交叉口西北角宏远·新智汇1栋", |
||||
|
Name="M9_01",CellBaseInfo=new CellBaseInfo(){BaseName="松山湖",BaseId=13545} |
||||
|
} |
||||
|
}); |
||||
|
return new SqlSugarPagedList<CellOutput>() { Page = 1, PageSize = 20, Items = items, Total = 3 }; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 增加服务
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[UnitOfWork] |
||||
|
[ApiDescriptionSettings(Name = "Add"), HttpPost] |
||||
|
[DisplayName("增加服务")] |
||||
|
public async Task<long> AddSupport(SupportAddInput input) |
||||
|
{ |
||||
|
if(input is null) throw Oops.Oh("参数不能为空"); |
||||
|
var equipment = input.Adapt<Entities.Support>(); |
||||
|
var newEquipment = await _supportRep.AsInsertable(equipment).ExecuteReturnEntityAsync(); |
||||
|
// if (input?.TaskChainList is { Count: > 0 })
|
||||
|
// {
|
||||
|
// foreach (var taskChain in input.TaskChainList)
|
||||
|
// {
|
||||
|
// taskChain.EquipmentId = newEquipment.Id;
|
||||
|
// await _taskChainRepository.AsInsertable(taskChain).ExecuteReturnEntityAsync();
|
||||
|
// }
|
||||
|
// }
|
||||
|
return newEquipment.Id; |
||||
|
} |
||||
|
} |
Binary file not shown.
Loading…
Reference in new issue