添加 测温定时程序

dev
liulb@mesnac.com 1 year ago
parent d0ea7693c6
commit 35a1a77244

@ -1731,6 +1731,181 @@
创建时间
</summary>
</member>
<member name="T:Admin.Core.Model.BoxTemperatureMeasurementHistory">
<summary>
测温历史记录
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.ObjId">
<summary>
主键
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.LineNo">
<summary>
线号
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Gongwno">
<summary>
工位号
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Cpno">
<summary>
产品条码
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Cpmodel">
<summary>
产品型号
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Factorymodel">
<summary>
基准型号
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Voltage">
<summary>
工作电压
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Point2">
<summary>
测试通道
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.TestTime">
<summary>
计划测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.TestedTime">
<summary>
实际测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Etemp">
<summary>
环温
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.BeginDatetime">
<summary>
开始测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.CpResult">
<summary>
测试结果
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.EndDateTime">
<summary>
测试结束时间
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.UserName">
<summary>
系统用户
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Remark">
<summary>
备注
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.TestNo">
<summary>
第几次测试
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Temp_Mes">
<summary>
温度数据
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Power_Mes">
<summary>
功率数据
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.Part_Mes">
<summary>
部件测试数据
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.ErrorCode_Mes">
<summary>
故障代码
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.T1Name">
<summary>
内部传感器 1 名称
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.T2Name">
<summary>
内部传感器 2 名称
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.T3Name">
<summary>
内部传感器 3 名称
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.T4Name">
<summary>
内部传感器 4 名称
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.T5Name">
<summary>
内部传感器 5 名称
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.T6Name">
<summary>
内部传感器 6 名称
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.IsOrder">
<summary>
是否测试部件”Y”测试
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.LowV_Time">
<summary>
低压启动测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.LowV_PowerMin">
<summary>
低压启动标准下限
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.LowV_PowerMax">
<summary>
低压启动标准上限
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.LowV_PowerFact">
<summary>
低压启动实际采集值
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.LowVoltage">
<summary>
低压启动测试电压
</summary>
</member>
<member name="P:Admin.Core.Model.BoxTemperatureMeasurementHistory.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="T:Admin.Core.Model.CodeBindingRecord">
<summary>
条码绑定记录
@ -2941,6 +3116,181 @@
用户密码
</summary>
</member>
<member name="T:Admin.Core.Model.TemperatureHistory">
<summary>
测温历史记录
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.ObjId">
<summary>
主键
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Line_No">
<summary>
线号
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Gongwno">
<summary>
工位号
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Cpno">
<summary>
产品条码
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.CpModel">
<summary>
产品型号
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.FactoryModel">
<summary>
基准型号
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Voltage">
<summary>
工作电压
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Point2">
<summary>
测试通道
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.TestTime">
<summary>
计划测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.TestedTime">
<summary>
实际测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Etemp">
<summary>
环温
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.BeginDateTime">
<summary>
开始测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.CpResult">
<summary>
测试结果
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.EndDateTime">
<summary>
测试结束时间
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.UserName">
<summary>
系统用户
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Remark">
<summary>
备注
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.TestNo">
<summary>
第几次测试
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Temp_Mes">
<summary>
温度数据
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Power_Mes">
<summary>
功率数据
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.Part_Mes">
<summary>
部件测试数据
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.ErrorCode_Mes">
<summary>
故障代码
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.T1Name">
<summary>
内部传感器 1 名称
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.T2Name">
<summary>
内部传感器 2 名称
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.T3Name">
<summary>
内部传感器 3 名称
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.T4Name">
<summary>
内部传感器 4 名称
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.T5Name">
<summary>
内部传感器 5 名称
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.T6Name">
<summary>
内部传感器 6 名称
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.IsOrder">
<summary>
是否测试部件”Y”测试
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.LowV_Time">
<summary>
低压启动测试时间
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.LowV_PowerMin">
<summary>
低压启动标准下限
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.LowV_PowerMax">
<summary>
低压启动标准上限
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.LowV_PowerFact">
<summary>
低压启动实际采集值
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.LowVoltage">
<summary>
低压启动测试电压
</summary>
</member>
<member name="P:Admin.Core.Model.TemperatureHistory.flag">
<summary>
同步标识
</summary>
</member>
<member name="T:Admin.Core.Model.DeptView">
<summary>
部门视图

@ -163,3 +163,8 @@
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2023-10-14 22:40:37","OPTime":"4151","RequestMethod":"POST","RequestData":"[\n \"product_planInfo\"\n]","ResponseBody":"库admin.core-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"},
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2023-10-14 22:40:56","OPTime":"4161","RequestMethod":"POST","RequestData":"[\n \"product_planInfo\"\n]","ResponseBody":"库admin.core-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"},
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2023-10-14 22:46:39","OPTime":"181370","RequestMethod":"POST","RequestData":"[\n \"PRODUCT_PLANINFO\"\n]","ResponseBody":"库admin.core-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"},
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2024-01-04 11:42:38","OPTime":"5966","RequestMethod":"POST","RequestData":"[\n \"Box_TemperatureMeasurementHistory\"\n]","ResponseBody":"库admin.core-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61"},
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2024-01-04 11:43:46","OPTime":"4902","RequestMethod":"POST","RequestData":"[\n \"Box_TemperatureMeasurementHistory\"\n]","ResponseBody":"库Data Source=localhost;Initial Catalog=Hsdb;User ID=sa;Password=sa;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61"},
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2024-01-04 11:47:30","OPTime":"2632","RequestMethod":"POST","RequestData":"[\n \"Box_TemperatureMeasurementHistory\"\n]","ResponseBody":"库admin.core-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61"},
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2024-01-04 14:33:25","OPTime":"2736","RequestMethod":"POST","RequestData":"[\n \"TemperatureHistory\"\n]","ResponseBody":"库admin.core-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61"},
{"User":"","Action":"","Type":0,"IP":"127.0.0.1","API":"/api/seed/getframefilesbytablenames","BeginTime":"2024-01-04 14:34:36","OPTime":"2896","RequestMethod":"POST","RequestData":"[\n \"TemperatureHistory\"\n]","ResponseBody":"库admin.core-控制器、服务、仓储、实体层生成","Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61"},

@ -62,7 +62,7 @@
// *** MutiDBEnabled false ***
// *** MutiDBEnabled trueEnabledtrue **
// https://www.bilibili.com/video/BV1BJ411B7mn?p=6
"MainDB": "Admin.Core", //Enabledtrue
"MainDB": "Hsdb", //Enabledtrue
"MutiDBEnabled": false, //
"CQRSEnabled": false, //SqlServer
"DBS": [
@ -77,15 +77,15 @@
Kdbndp = 6,//
*/
{
"ConnId": "Admin.Core",
"DBType": 3,
"ConnId": "Hsdb",
"DBType": 1,
"Enabled": true,
"HitRate": 50,
//"Connection": "Server=127.0.0.1;Port=5432;User Id=postgres;Password=postgres;Database=Admin.Core;",
//"Connection": "Data Source=localhost;Initial Catalog=Admin.Core;User ID=sa;Password=sa;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"Connection": "Data Source=localhost;Initial Catalog=Hsdb;User ID=sa;Password=sa;",
//"Connection": "Data Source=.;Initial Catalog=Admin.Core;User ID=sa;Password=Password01!;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"Connection": "db/hw.db",
"Connection": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=175.27.215.92)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=helowin)));User ID=aucma_mes;Password=aucma;",
//"Connection": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=175.27.215.92)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=helowin)));User ID=aucma_mes;Password=aucma;",
"ProviderName": "System.Data.SqlClient"
}
],

@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Admin.Core.Common
build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.Common\
build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Common\

@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Admin.Core.EventBus
build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.EventBus\
build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.EventBus\

@ -1,4 +1,8 @@
using AutoMapper;
using Admin.Core.Common;
using Admin.Core.Model;
using AutoMapper;
using SqlSugar;
using static Org.BouncyCastle.Math.EC.ECCurve;
namespace Admin.Core.Extensions
{
@ -12,6 +16,43 @@ namespace Admin.Core.Extensions
return new MapperConfiguration(cfg =>
{
cfg.AddProfile(new CustomProfile());
cfg.CreateMap<TemperatureHistory, BoxTemperatureMeasurementHistory>()
.ForMember(dest => dest.LineNo, src => src.MapFrom(d => d.Line_No)).
ForMember(dest => dest.Gongwno, src => src.MapFrom(d => d.Gongwno)).
ForMember(dest => dest.Cpno, src => src.MapFrom(d => d.Cpno)).
ForMember(dest => dest.Cpmodel, src => src.MapFrom(d => d.CpModel)).
ForMember(dest => dest.Factorymodel, src => src.MapFrom(d => d.FactoryModel)).
ForMember(dest => dest.Voltage, src => src.MapFrom(d => d.Voltage)).
ForMember(dest => dest.Point2, src => src.MapFrom(d => d.Point2)).
ForMember(dest => dest.TestTime, src => src.MapFrom(d => d.TestTime)).
ForMember(dest => dest.TestedTime, src => src.MapFrom(d => d.TestedTime)).
ForMember(dest => dest.Etemp, src => src.MapFrom(d => d.Etemp)).
ForMember(dest => dest.BeginDatetime, src => src.MapFrom(d => d.BeginDateTime)).
ForMember(dest => dest.CpResult, src => src.MapFrom(d => d.CpResult)).
ForMember(dest => dest.EndDateTime, src => src.MapFrom(d => d.EndDateTime)).
ForMember(dest => dest.UserName, src => src.MapFrom(d => d.UserName)).
ForMember(dest => dest.Remark, src => src.MapFrom(d => d.Remark)).
ForMember(dest => dest.TestNo, src => src.MapFrom(d => d.TestNo)).
ForMember(dest => dest.Temp_Mes, src => src.MapFrom(d => d.Temp_Mes)).
ForMember(dest => dest.Power_Mes, src => src.MapFrom(d => d.Power_Mes)).
ForMember(dest => dest.Part_Mes, src => src.MapFrom(d => d.Part_Mes)).
ForMember(dest => dest.ErrorCode_Mes, src => src.MapFrom(d => d.ErrorCode_Mes)).
ForMember(dest => dest.T1Name, src => src.MapFrom(d => d.T1Name)).
ForMember(dest => dest.T2Name, src => src.MapFrom(d => d.T2Name)).
ForMember(dest => dest.T3Name, src => src.MapFrom(d => d.T3Name)).
ForMember(dest => dest.T4Name, src => src.MapFrom(d => d.T4Name)).
ForMember(dest => dest.T5Name, src => src.MapFrom(d => d.T5Name)).
ForMember(dest => dest.T6Name, src => src.MapFrom(d => d.T6Name)).
ForMember(dest => dest.IsOrder, src => src.MapFrom(d => d.IsOrder)).
ForMember(dest => dest.LowV_Time, src => src.MapFrom(d => d.LowV_Time)).
ForMember(dest => dest.LowV_PowerMin, src => src.MapFrom(d => d.LowV_PowerMin)).
ForMember(dest => dest.LowV_PowerMax, src => src.MapFrom(d => d.LowV_PowerMax)).
ForMember(dest => dest.LowV_PowerFact, src => src.MapFrom(d => d.LowV_PowerFact)).
ForMember(dest => dest.LowVoltage, src => src.MapFrom(d => d.LowVoltage));
//ForMember(dest => dest.CreateTime, src => src.MapFrom(d => d.Create_Time)).
});
}
}

@ -44,7 +44,7 @@ namespace Admin.Core.Extensions
ConfigId = m.ConnId.ObjToString().ToLower(),
ConnectionString = m.Connection,
DbType = (DbType)m.DbType,
IsAutoCloseConnection = true,//自动释放
IsAutoCloseConnection = false,//自动释放
// Check out more information: https://github.com/anjoy8/Admin.Core/issues/122
MoreSettings = new ConnMoreSettings()
{

@ -1,3 +1,3 @@
is_global = true
build_property.RootNamespace = Admin.Core.FrameWork
build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.FrameWork\
build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.FrameWork\

@ -0,0 +1,14 @@
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Admin.Core.IRepository
{
/// <summary>
/// IBoxTemperatureMeasurementHistoryRepository
/// </summary>
public interface IBoxTemperatureMeasurementHistoryRepository : IBaseRepository<BoxTemperatureMeasurementHistory>
{
}
}

@ -0,0 +1,14 @@
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Admin.Core.IRepository
{
/// <summary>
/// ITemperatureHistoryRepository
/// </summary>
public interface ITemperatureHistoryRepository : IBaseRepository<TemperatureHistory>
{
}
}

@ -0,0 +1,16 @@
using Admin.Core.IService;
using Admin.Core.Model;
using Admin.Core.Model.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Admin.Core.IService
{
/// <summary>
/// IBoxTemperatureMeasurementHistoryServices
/// </summary>
public interface IBoxTemperatureMeasurementHistoryServices : IBaseServices<BoxTemperatureMeasurementHistory>
{
}
}

@ -0,0 +1,16 @@
using Admin.Core.IService;
using Admin.Core.Model;
using Admin.Core.Model.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Admin.Core.IService
{
/// <summary>
/// ITemperatureHistoryServices
/// </summary>
public interface ITemperatureHistoryServices : IBaseServices<TemperatureHistory>
{
}
}

@ -0,0 +1,223 @@
using NPOI.Util;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.Model
{
/// <summary>
/// 测温历史记录
/// </summary>
[SugarTable("BOX_TEMPERATUREHISTORY", "AUCMA_SCADA")]
public class BoxTemperatureMeasurementHistory
{
/// <summary>
/// 主键
/// </summary>
[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, IsIdentity = true, OracleSequenceName = "SEQ_TEMPERATUREMEASUREMENTHISTORY")]
public int ObjId { get; set; }
/// <summary>
/// 线号
/// </summary>
[SugarColumn(ColumnName = "LINE_NO")]
public int LineNo { get; set; }
/// <summary>
/// 工位号
/// </summary>
[SugarColumn(ColumnName = "GONGWNO")]
public int Gongwno { get; set; }
/// <summary>
/// 产品条码
/// </summary>
[SugarColumn(ColumnName = "CPNO")]
public string Cpno { get; set; }
/// <summary>
/// 产品型号
/// </summary>
[SugarColumn(ColumnName = "CPMODEL")]
public string Cpmodel { get; set; }
/// <summary>
/// 基准型号
/// </summary>
[SugarColumn(ColumnName = "FACTORYMODEL")]
public string Factorymodel { get; set; }
/// <summary>
/// 工作电压
/// </summary>
[SugarColumn(ColumnName = "VOLTAGE")]
public int Voltage { get; set; }
/// <summary>
/// 测试通道
/// </summary>
[SugarColumn(ColumnName = "POINT2")]
public string Point2 { get; set; }
/// <summary>
/// 计划测试时间
/// </summary>
[SugarColumn(ColumnName = "TESTTIME")]
public int TestTime { get; set; }
/// <summary>
/// 实际测试时间
/// </summary>
[SugarColumn(ColumnName = "TESTEDTIME")]
public decimal TestedTime { get; set; }
/// <summary>
/// 环温
/// </summary>
[SugarColumn(ColumnName = "ETEMP")]
public decimal Etemp { get; set; }
/// <summary>
/// 开始测试时间
/// </summary>
[SugarColumn(ColumnName = "BEGINDATETIME")]
public DateTime BeginDatetime { get; set; }
/// <summary>
/// 测试结果
/// </summary>
[SugarColumn(ColumnName = "CPRESULT")]
public string CpResult { get; set; }
/// <summary>
/// 测试结束时间
/// </summary>
[SugarColumn(ColumnName = "ENDDATETIME")]
public DateTime EndDateTime { get; set; }
/// <summary>
/// 系统用户
/// </summary>
[SugarColumn(ColumnName = "USERNAME")]
public string UserName { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnName = "REMARK")]
public string Remark { get; set; }
/// <summary>
/// 第几次测试
/// </summary>
[SugarColumn(ColumnName = "TESTNO")]
public int TestNo { get; set; }
/// <summary>
/// 温度数据
/// </summary>
[SugarColumn(ColumnName = "TEMP_MES")]
public string Temp_Mes { get; set; }
/// <summary>
/// 功率数据
/// </summary>
[SugarColumn(ColumnName = "POWER_MES")]
public string Power_Mes { get; set; }
/// <summary>
/// 部件测试数据
/// </summary>
[SugarColumn(ColumnName = "PART_MES")]
public string Part_Mes { get; set; }
/// <summary>
/// 故障代码
/// </summary>
[SugarColumn(ColumnName = "ERRORCODE_MES")]
public string ErrorCode_Mes { get; set; }
/// <summary>
/// 内部传感器 1 名称
/// </summary>
[SugarColumn(ColumnName = "T1NAME")]
public string T1Name { get; set; }
/// <summary>
/// 内部传感器 2 名称
/// </summary>
[SugarColumn(ColumnName = "T2NAME")]
public string T2Name { get; set; }
/// <summary>
/// 内部传感器 3 名称
/// </summary>
[SugarColumn(ColumnName = "T3NAME")]
public string T3Name { get; set; }
/// <summary>
/// 内部传感器 4 名称
/// </summary>
[SugarColumn(ColumnName = "T4NAME")]
public string T4Name { get; set; }
/// <summary>
/// 内部传感器 5 名称
/// </summary>
[SugarColumn(ColumnName = "T5NAME")]
public string T5Name { get; set; }
/// <summary>
/// 内部传感器 6 名称
/// </summary>
[SugarColumn(ColumnName = "T6NAME")]
public string T6Name { get; set; }
/// <summary>
/// 是否测试部件”Y”测试
/// </summary>
[SugarColumn(ColumnName = "ISORDER")]
public string IsOrder { get; set; }
/// <summary>
/// 低压启动测试时间
/// </summary>
[SugarColumn(ColumnName = "LOWV_TIME")]
public int LowV_Time { get; set; }
/// <summary>
/// 低压启动标准下限
/// </summary>
[SugarColumn(ColumnName = "LOWV_POWERMIN")]
public decimal LowV_PowerMin { get; set; }
/// <summary>
/// 低压启动标准上限
/// </summary>
[SugarColumn(ColumnName = "LOWV_POWERMAX")]
public decimal LowV_PowerMax { get; set; }
/// <summary>
/// 低压启动实际采集值
/// </summary>
[SugarColumn(ColumnName = "LOWV_POWERFACT")]
public decimal LowV_PowerFact { get; set; }
/// <summary>
/// 低压启动测试电压
/// </summary>
[SugarColumn(ColumnName = "LOWVOLTAGE")]
public decimal LowVoltage { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(ColumnName = "CREATE_TIME")]
public DateTime CreateTime { get; set; }
}
}

@ -0,0 +1,191 @@
using NPOI.Util;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.Model
{
/// <summary>
/// 测温历史记录
/// </summary>
[Table("TemperatureHistory")]
[SugarTable("TemperatureHistory", "Hsdb")]
public class TemperatureHistory
{
/// <summary>
/// 主键
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int ObjId { get; set; }
/// <summary>
/// 线号
/// </summary>
public int Line_No { get; set; }
/// <summary>
/// 工位号
/// </summary>
public int Gongwno { get; set; }
/// <summary>
/// 产品条码
/// </summary>
public string Cpno { get; set; }
/// <summary>
/// 产品型号
/// </summary>
public string CpModel { get; set; }
/// <summary>
/// 基准型号
/// </summary>
public string FactoryModel { get; set; }
/// <summary>
/// 工作电压
/// </summary>
public int Voltage { get; set; }
/// <summary>
/// 测试通道
/// </summary>
public string Point2 { get; set; }
/// <summary>
/// 计划测试时间
/// </summary>
public int TestTime { get; set; }
/// <summary>
/// 实际测试时间
/// </summary>
public decimal TestedTime { get; set; }
/// <summary>
/// 环温
/// </summary>
public decimal Etemp { get; set; }
/// <summary>
/// 开始测试时间
/// </summary>
public DateTime BeginDateTime { get; set; }
/// <summary>
/// 测试结果
/// </summary>
public string CpResult { get; set; }
/// <summary>
/// 测试结束时间
/// </summary>
public DateTime EndDateTime { get; set; }
/// <summary>
/// 系统用户
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 第几次测试
/// </summary>
public int TestNo { get; set; }
/// <summary>
/// 温度数据
/// </summary>
public string Temp_Mes { get; set; }
/// <summary>
/// 功率数据
/// </summary>
public string Power_Mes { get; set; }
/// <summary>
/// 部件测试数据
/// </summary>
public string Part_Mes { get; set; }
/// <summary>
/// 故障代码
/// </summary>
public string ErrorCode_Mes { get; set; }
/// <summary>
/// 内部传感器 1 名称
/// </summary>
public string T1Name { get; set; }
/// <summary>
/// 内部传感器 2 名称
/// </summary>
public string T2Name { get; set; }
/// <summary>
/// 内部传感器 3 名称
/// </summary>
public string T3Name { get; set; }
/// <summary>
/// 内部传感器 4 名称
/// </summary>
public string T4Name { get; set; }
/// <summary>
/// 内部传感器 5 名称
/// </summary>
public string T5Name { get; set; }
/// <summary>
/// 内部传感器 6 名称
/// </summary>
public string T6Name { get; set; }
/// <summary>
/// 是否测试部件”Y”测试
/// </summary>
public string IsOrder { get; set; }
/// <summary>
/// 低压启动测试时间
/// </summary>
public int LowV_Time { get; set; }
/// <summary>
/// 低压启动标准下限
/// </summary>
public decimal LowV_PowerMin { get; set; }
/// <summary>
/// 低压启动标准上限
/// </summary>
public decimal LowV_PowerMax { get; set; }
/// <summary>
/// 低压启动实际采集值
/// </summary>
public decimal LowV_PowerFact { get; set; }
/// <summary>
/// 低压启动测试电压
/// </summary>
public decimal LowVoltage { get; set; }
/// <summary>
/// 同步标识
/// </summary>
public int flag { get; set; }
}
}

@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Admin.Core.RealTimeService
build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.RealTimeService\
build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.RealTimeService\

@ -0,0 +1,19 @@
using Admin.Core.IRepository;
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Admin.Core.Repository
{
/// <summary>
/// BoxTemperatureMeasurementHistoryRepository
/// </summary>
public class BoxTemperatureMeasurementHistoryRepository : BaseRepository<BoxTemperatureMeasurementHistory>, IBoxTemperatureMeasurementHistoryRepository
{
public BoxTemperatureMeasurementHistoryRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
}
}

@ -0,0 +1,19 @@
using Admin.Core.IRepository;
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Admin.Core.Repository
{
/// <summary>
/// TemperatureHistoryRepository
/// </summary>
public class TemperatureHistoryRepository : BaseRepository<TemperatureHistory>, ITemperatureHistoryRepository
{
public TemperatureHistoryRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
}
}

@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Admin.Core.Serilog.Es
build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.Serilog.Es\
build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Serilog.Es\

@ -0,0 +1,28 @@
using Admin.Core.IRepository;
using Admin.Core.IService;
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using Admin.Core.Model.ViewModels;
using log4net;
using Microsoft.AspNetCore.Razor.TagHelpers;
using Microsoft.IdentityModel.Logging;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Admin.Core.Service
{
public class BoxTemperatureMeasurementHistoryServices : BaseServices<BoxTemperatureMeasurementHistory>, IBoxTemperatureMeasurementHistoryServices
{
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(BoxTemperatureMeasurementHistoryServices));
private readonly IBaseRepository<BoxTemperatureMeasurementHistory> _dal;
public BoxTemperatureMeasurementHistoryServices(IBaseRepository<BoxTemperatureMeasurementHistory> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
}
}

@ -0,0 +1,28 @@
using Admin.Core.IRepository;
using Admin.Core.IService;
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using Admin.Core.Model.ViewModels;
using log4net;
using Microsoft.AspNetCore.Razor.TagHelpers;
using Microsoft.IdentityModel.Logging;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Admin.Core.Service
{
public class TemperatureHistoryServices : BaseServices<TemperatureHistory>,ITemperatureHistoryServices
{
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(TemperatureHistoryServices));
private readonly IBaseRepository<TemperatureHistory> _dal;
public TemperatureHistoryServices(IBaseRepository<TemperatureHistory> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
}
}

@ -0,0 +1,139 @@
using Admin.Core.IService.ISys;
using Admin.Core.IService;
using Quartz;
using System;
using System.Threading.Tasks;
using log4net;
using Admin.Core.Model;
using System.Linq;
using Admin.Core.Model.Model_New;
using Aucma.Core.HwPLc;
using HwCommunication.Core;
using Admin.Core.Common.Helper;
using System.Collections;
using System.Text;
using NetTaste;
using Admin.Core.Service;
using AutoMapper;
using System.Collections.Generic;
/// <summary>
/// 测温数据采集
/// </summary>
namespace Admin.Core.Tasks
{
public class Job_TemperatureMeasurement_Quartz : JobBase, IJob
{
public delegate Task RefreshBoxFoamDataDelegate();
public static event RefreshBoxFoamDataDelegate RefreshBoxFoamDataDelegateEvent;
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(Job_TemperatureMeasurement_Quartz));
private readonly IBoxTemperatureMeasurementHistoryServices _boxTMHistoryServices;
private readonly ITemperatureHistoryServices _temperatureHistoryServices;
IMapper _mapper;
public Job_TemperatureMeasurement_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService,
ITemperatureHistoryServices temperatureHistoryServices, IBoxTemperatureMeasurementHistoryServices boxTMHistoryServices,
IMapper mapper)
{
_SysTasksQzService = SysTasksQzService;
_boxTMHistoryServices = boxTMHistoryServices;
_temperatureHistoryServices = temperatureHistoryServices;
_mapper = mapper;
}
public async Task Execute(IJobExecutionContext context)
{
await ExecuteJob(context, async () => await Run(context));
}
#region PLC 任务处理表
/// <summary>
/// PLC 任务处理表
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public async Task Run(IJobExecutionContext context)
{
try
{
var list = await _temperatureHistoryServices.QueryAsync(d => d.flag == 0);
if (list == null) return;
Console.WriteLine(list.Count());
List< BoxTemperatureMeasurementHistory > historyList = new List<BoxTemperatureMeasurementHistory>();
foreach (var item in list)
{
BoxTemperatureMeasurementHistory dest = new BoxTemperatureMeasurementHistory();
dest.LineNo = item.Line_No;
dest.Gongwno = item.Gongwno;
dest.Cpno = item.Cpno;
dest.Cpmodel = item.CpModel;
dest.Factorymodel = item.FactoryModel;
dest.Voltage = item.Voltage;
dest.Point2 = item.Point2;
dest.TestTime = item.TestTime;
dest.TestedTime = item.TestedTime;
dest.Etemp = item.Etemp;
dest.BeginDatetime = item.BeginDateTime;
dest.CpResult = item.CpResult;
dest.EndDateTime = item.EndDateTime;
dest.UserName = item.UserName;
dest.Remark = item.Remark;
dest.TestNo = item.TestNo;
dest.Temp_Mes = item.Temp_Mes;
dest.Power_Mes = item.Power_Mes;
dest.Part_Mes = item.Part_Mes;
dest.ErrorCode_Mes = item.ErrorCode_Mes;
dest.T1Name = item.T1Name;
dest.T2Name = item.T2Name;
dest.T3Name = item.T3Name;
dest.T4Name = item.T4Name;
dest.T5Name = item.T5Name;
dest.T6Name = item.T6Name;
dest.IsOrder = item.IsOrder;
dest.LowV_Time = item.LowV_Time;
dest.LowV_PowerMin = item.LowV_PowerMin;
dest.LowV_PowerMax = item.LowV_PowerMax;
dest.LowV_PowerFact = item.LowV_PowerFact;
dest.LowVoltage = item.LowVoltage;
historyList.Add(dest);
}
//List<BoxTemperatureMeasurementHistory> history =new _mapper.Map<List<BoxTemperatureMeasurementHistory>>(list);
Console.WriteLine(historyList.Count());
var result = await _boxTMHistoryServices.AddAsync(historyList);
if (result > 0)
{
list.ForEach(x => x.flag = 1);
if (list == null) return;
await _temperatureHistoryServices.UpdateAsync(list);
Console.WriteLine("保存测温系统成功");
}
}
catch (Exception ex)
{
logHelper.Error($"数据处理异常:{ex.Message}");
}
}
private async Task<BoxFoamData> UpdateRealData(BoxFoamData item)
{
try
{
}
catch (Exception ex)
{
logHelper.Error($"更新测温数据失败");
}
return await Task.FromResult(item);
}
#endregion
}
}

@ -85,6 +85,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aucma.Core.OldBoxFoam", "Au
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aucma.Core.HwPLc", "Aucma.Core.HwPLc\Aucma.Core.HwPLc.csproj", "{A1473270-1D54-40D5-9E68-5C917347CFE8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aucam.Core.TemperatureService", "Aucam.Core.TemperatureService\Aucam.Core.TemperatureService.csproj", "{87B08C88-4258-4D57-B9E5-EC6C7F3899BC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -211,6 +213,10 @@ Global
{A1473270-1D54-40D5-9E68-5C917347CFE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1473270-1D54-40D5-9E68-5C917347CFE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1473270-1D54-40D5-9E68-5C917347CFE8}.Release|Any CPU.Build.0 = Release|Any CPU
{87B08C88-4258-4D57-B9E5-EC6C7F3899BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{87B08C88-4258-4D57-B9E5-EC6C7F3899BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{87B08C88-4258-4D57-B9E5-EC6C7F3899BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87B08C88-4258-4D57-B9E5-EC6C7F3899BC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -249,6 +255,7 @@ Global
{A7FF5119-A6DE-4947-A1F2-90FE0C628A88} = {F8FB57F6-5465-4E60-B052-D3A63C3C56AE}
{A9E66830-A801-4423-BBC6-8F03BA5EB5BF} = {BD987F3A-4E6C-4C47-B28F-1671F875EAE3}
{A1473270-1D54-40D5-9E68-5C917347CFE8} = {F8FB57F6-5465-4E60-B052-D3A63C3C56AE}
{87B08C88-4258-4D57-B9E5-EC6C7F3899BC} = {FA2FF2A3-135E-4CA2-9042-76BB71623D5A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8047AB56-042B-4AE4-B06A-34137067A86A}

@ -0,0 +1,40 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<None Remove="appsettings.json" />
<None Remove="Log4net.config" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="Log4net.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
<PackageReference Include="Topshelf" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Admin.Core.Extensions\Admin.Core.Extensions.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,24 @@
using Autofac;
using Microsoft.AspNetCore.Mvc;
namespace Aucam.Core.TemperatureService
{
/// <summary>
/// AutofacPropertityModuleReg
/// </summary>
public class AutofacPropertityModuleReg : Autofac.Module
{
/// <summary>
/// Load
/// </summary>
/// <param name="builder"></param>
protected override void Load(ContainerBuilder builder)
{
var controllerBaseType = typeof(ControllerBase);
builder.RegisterAssemblyTypes(typeof(Program).Assembly)
.Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType)
.PropertiesAutowired();
}
}
}

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<!-- 将日志以回滚文件的形式写到文件中 -->
<!-- 按日期切分日志文件,并将日期作为日志文件的名字 -->
<!--Error-->
<appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
<!--不加utf-8编码格式中文字符将显示成乱码-->
<param name="Encoding" value="utf-8" />
<file value="../../../Log/"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置-->
<datePattern value="&quot;GlobalExceptionLogs_&quot;yyyyMMdd&quot;.log&quot;" />
<!--日志文件名是否为静态-->
<StaticLogFileName value="false"/>
<!--多线程时采用最小锁定-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--布局(向用户显示最后经过格式化的输出信息)-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date| %-5level %newline%message%newline--------------------------------%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
</appender>
<!--Error-->
<!--Info-->
<appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
<!--不加utf-8编码格式中文字符将显示成乱码-->
<param name="Encoding" value="utf-8" />
<!--定义文件存放位置-->
<file value="../../../Log/"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<!--日志文件名是否为静态-->
<StaticLogFileName value="false"/>
<!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置-->
<datePattern value="&quot;GlobalInfoLogs_&quot;yyyyMMdd&quot;.log&quot;" />
<!--多线程时采用最小锁定-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--布局(向用户显示最后经过格式化的输出信息)-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date| %-5level%c %newline%message%newline--------------------------------%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="WARN" />
</filter>
</appender>
<!--Info-->
<root>
<!-- 控制级别由低到高ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
<!-- 比如定义级别为INFO则INFO级别向下的级别比如DEBUG日志将不会被记录 -->
<!-- 如果没有定义LEVEL的值则缺省为DEBUG -->
<level value="ALL" />
<!-- 按日期切分日志文件,并将日期作为日志文件的名字 -->
<appender-ref ref="ErrorLog" />
<appender-ref ref="InfoLog" />
</root>
</log4net>

@ -0,0 +1,59 @@
using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;
namespace Aucam.Core.TemperatureService
{
public class MainService
{
private string[] args;
public MainService(string[] vs)
{
CreateHostBuilder(args)
//生成宿主。
.Build()
// ※※※※ 有异常,查看 Log 文件夹下的异常日志 ※※※※
.RunAsync();
}
public void Start()
{
}
public void Stop()
{
}
/// <summary>
/// CreateHostBuilder
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
public static IHostBuilder CreateHostBuilder(string[] args)
{
//初始化默认主机Builder
var hostBuilder = Host.CreateDefaultBuilder(args)
//Autofac服务工厂
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureLogging((hostingContext, builder) =>
{
//清楚控制台log日志
builder.ClearProviders();
// 1.过滤掉系统默认的一些日志
builder.AddFilter("System", LogLevel.Error);
builder.AddFilter("Microsoft", LogLevel.Error);
// 默认log4net.confg
builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config"));
});
return hostBuilder;
}
}
}

@ -0,0 +1,70 @@
using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;
using Topshelf;
namespace Aucam.Core.TemperatureService
{
public class Program
{
/// <summary>
/// Main
/// </summary>
/// <param name="args"></param>
public static void Main(string[] args)
{
MainService ms = new MainService(args);
ms.Start();
Console.ReadKey();
//var rc = HostFactory.Run(x =>
//{
// x.Service<MainService>(s =>
// {
// s.ConstructUsing(name => new MainService(args));
// s.WhenStarted(tc => tc.Start());
// s.WhenStopped(tc => tc.Stop());
// });
// x.RunAsLocalSystem();
// x.SetDescription("JwtAPIService");
// x.SetDisplayName("JwtAPIService");
// x.SetServiceName("JwtAPIService");
//});
//var exitCode = (int)Convert.ChangeType(rc, rc.GetTypeCode());
//Environment.ExitCode = exitCode;
}
/// <summary>
/// CreateHostBuilder
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
//public static IHostBuilder CreateHostBuilder(string[] args)
//{
// //初始化默认主机Builder
// var hostBuilder = Host.CreateDefaultBuilder(args)
// //Autofac服务工厂
// .UseServiceProviderFactory(new AutofacServiceProviderFactory())
// .ConfigureWebHostDefaults(webBuilder =>
// {
// webBuilder.UseStartup<Startup>();
// })
// .ConfigureLogging((hostingContext, builder) =>
// {
// //清楚控制台log日志
// builder.ClearProviders();
// // 1.过滤掉系统默认的一些日志
// builder.AddFilter("System", LogLevel.Error);
// builder.AddFilter("Microsoft", LogLevel.Error);
// // 默认log4net.confg
// builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config"));
// });
// return hostBuilder;
//}
}
}

@ -0,0 +1,111 @@
using Admin.Core.Common;
using Admin.Core.Extensions;
using Admin.Core.IService.ISys;
using Admin.Core.Tasks;
using Aucma.Core.RunPlc;
using Aucma.Core.Tasks;
using Autofac;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System.Text;
namespace Aucam.Core.TemperatureService
{
/// <summary>
/// Startup
/// </summary>
public class Startup
{
/// <summary>
/// Startup
/// </summary>
/// <param name="configuration"></param>
public Startup(IConfiguration configuration, IWebHostEnvironment env)
{
Configuration = configuration;
Env = env;
}
/// <summary>
/// IConfiguration
/// </summary>
public IConfiguration Configuration { get; }
/// <summary>
/// 环境信息:开发/生产
/// </summary>
public IWebHostEnvironment Env { get; }
/// <summary>
/// This method gets called by the runtime. Use this method to add services to the container.
/// </summary>
/// <param name="services"></param>
public void ConfigureServices(IServiceCollection services)
{
//Appsettings
services.AddSingleton(new Appsettings(Configuration));
//日志文件目录
services.AddSingleton(new LogLock(Env.ContentRootPath));
//Memory缓存
services.AddMemoryCacheSetup();
//Sqlsugar数据库模型查询
services.AddSqlsugarSetup();
//AutoMapper
services.AddAutoMapperSetup();
//注册业务服务
AddServices(services);
//任务调度
services.AddJobSetup();
//支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030")
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
/// <summary>
/// 注意在Program.CreateHostBuilder添加Autofac服务工厂
/// </summary>
/// <param name="builder"></param>
public void ConfigureContainer(ContainerBuilder builder)
{
builder.RegisterModule(new AutofacModuleRegister());
builder.RegisterModule<AutofacPropertityModuleReg>();
}
/// <summary>
/// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
/// </summary>
/// <param name="app"></param>
/// <param name="env"></param>
public void Configure(IApplicationBuilder app, ISysTasksQzService tasksQzService,
ISchedulerCenter schedulerCenter)
{
// 使用静态文件
app.UseStaticFiles();
// 然后是授权中间件
//app.UseAuthorization();
// 开启QuartzNetJob调度服务
app.UseQuartzJobMildd(tasksQzService, schedulerCenter);
}
#region 注册服务
/// <summary>
/// 注册服务
/// </summary>
/// <param name="services"></param>
private static void AddServices(IServiceCollection services)
{
#region 注册服务
//services.AddScoped<Collection>();
//services.AddScoped<IEEquipmentCategoryRepository, EEquipmentCategoryRepository>();
//services.AddScoped<IBaseRepository<EEquipmentCategory>, BaseRepository<EEquipmentCategory>>();
//services.AddSingleton<IBaseService<EEquipmentCategory>, BaseService<EEquipmentCategory>>();
#endregion
}
#endregion
}
}

@ -0,0 +1,231 @@
{
"AllowedHosts": "*",
"Logging": {
"LogLevel": {
"Default": "Information", //Defaultlog4net
"Admin.Core.Extensions.ApiResponseHandler": "Error"
},
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning",
"Microsoft.Hosting.Lifetime": "Debug"
}
},
"Log4Net": {
"Name": "Admin.Core"
}
},
"AppSettings": {
"RedisCachingAOP": {
"Enabled": false,
"ConnectionString": ""
},
"MemoryCachingAOP": {
"Enabled": false
},
"LogAOP": {
"Enabled": false
},
"TranAOP": {
"Enabled": false
},
"SqlAOP": {
"Enabled": false,
"OutToLogFile": {
"Enabled": false
},
"OutToConsole": {
"Enabled": false
}
},
"FileRootPath": "/file/",
"Date": "2018-08-28",
"Author": "Admin.Core",
"UseLoadTest": true,
"CacheTimeOut": 60, //
"ApiRoot": "http://localhost:55014"
},
"Audience": {
"Secret": "dk6Vv3oTuo2OMU18w86E3j11DtM7RUX5icQtA0DCKuhYDRUqBLIiL", //16+
"SecretFile": "E:\\my-file\\admin.core.audience.secret.txt", //Secret
"Issuer": "Admin.Core",
"Audience": "wr",
"Expiration": "6000000" //
},
// MainDBConnId,Enabledtrue
// *** MutiDBEnabled false ***
// *** MutiDBEnabled trueEnabledtrue **
// https://www.bilibili.com/video/BV1BJ411B7mn?p=6
"MainDB": "AUCMA_SCADA", //Enabledtrue
"MutiDBEnabled": true, //
"CQRSEnabled": false, //SqlServer
"DBS": [
/*
DBType
MySql = 0,
SqlServer = 1,
Sqlite = 2,
Oracle = 3,
PostgreSQL = 4,
Dm = 5,//
Kdbndp = 6,//
*/
{
"ConnId": "AUCMA_SCADA",
"DBType": 3,
"Enabled": true,
"HitRate": 50,
"Connection": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.100.72.20)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)));User ID=c##aucma_scada;Password=aucma;",
"ProviderName": "System.Data.SqlClient"
},
{
"ConnId": "Hsdb",
"DBType": 1,
"Enabled": true,
"HitRate": 40,
"Connection": "Data Source=localhost;Initial Catalog=Hsdb;User ID=sa;Password=sa;",
"ProviderName": "System.Data.SqlClient"
}
],
"QuartzNetJob": [
{
"ID": 1,
"Name": "TemperatureMeasurement",
"JobGroup": "DEFAULT",
"Cron": "*/10 * * * * ?",
"AssemblyName": "Admin.Core.Tasks",
"ClassName": "Job_TemperatureMeasurement_Quartz",
"Remark": "执行测温设备数据采集程序",
"RunTimes": 3881,
"BeginTime": "2023-04-23 11:08:50.000",
"EndTime": "2100-08-06 16:45:30.000",
"TriggerType": 1,
"IntervalSecond": 1,
"CycleRunTimes": 1,
"IsStart": true,
"JobParams": null,
"DelFlag": false,
"CreateBy": "admin",
"CreateTime": "2023-04-23 11:09:22.0000000",
"UpdateBy": "admin",
"UpdateTime": "2023-11-15 16:45:45.0530000"
}
],
"Startup": {
"Cors": {
"PolicyName": "CorsIpAccess", //
"EnableAllIPs": true, //trueIP访
// /localhost:8000/
// http://127.0.0.1:1818 http://localhost:1818
"IPs": "http://localhost:81,http://127.0.0.1:81"
},
"AppConfigAlert": {
"Enabled": true
},
"ApiName": "Admin.Core",
"IdentityServer4": {
"Enabled": false, // false使jwttrue使Ids4
"AuthorizationUrl": "http://localhost:5004", //
"ApiName": "admin.core.api" //
},
"RedisMq": {
"Enabled": false //redis
},
"MiniProfiler": {
"Enabled": false //
},
"Nacos": {
"Enabled": false //Nacos
}
},
"Redis": {
//"ConnectionString": "127.0.0.1:6379"
"ConnectionString": "127.0.0.1:6379"
},
"RabbitMQ": {
"Enabled": true,
"Connection": "http://localhost:15672/",
"UserName": "robin",
"Password": "123456",
"RetryCount": 3
},
"EventBus": {
"Enabled": true,
"SubscriptionClientName": "Admin.Core"
},
"Middleware": {
"Plc": {
"Enabled": true
},
"QuartzNetJob": {
"Enabled": true
},
"AucamTask": {
"Enabled": true
}
},
"PLCServer": [
{
"Id": 1,
"EquipName": "PerfusionPlc",
"PlcType": "Siemens",
"Enabled": true,
"IP": "127.0.0.1",
"Port": 102
}
],
"IpRateLimiting": {
"EnableEndpointRateLimiting": false, //False: globally executed, true: executed for each
"StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter
"RealIpHeader": "X-Real-IP",
"ClientIdHeader": "X-ClientId",
"IpWhitelist": [], //
"EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ],
"ClientWhitelist": [ "dev-client-1", "dev-client-2" ],
"QuotaExceededResponse": {
"Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}",
"ContentType": "application/json",
"StatusCode": 429
},
"HttpStatusCode": 429, //
"GeneralRules": [ //api,*
{
"Endpoint": "*:/api/Admin*",
"Period": "1m",
"Limit": 20
},
{
"Endpoint": "*/api/*",
"Period": "1s",
"Limit": 3
},
{
"Endpoint": "*/api/*",
"Period": "1m",
"Limit": 30
},
{
"Endpoint": "*/api/*",
"Period": "12h",
"Limit": 500
}
]
},
"LogFiedOutPutConfigs": {
"tcpAddressHost": "", // elktcp
"tcpAddressPort": 0, // elktcp
"ConfigsInfo": [ // elk
{
"FiedName": "applicationName",
"FiedValue": "Admin.Core.Api"
}
]
}
}
Loading…
Cancel
Save