大屏页面与接口开发v5

master
ccongli 12 months ago
parent d21588c61b
commit cf66ecfe53

1
.gitignore vendored

@ -22,3 +22,4 @@
/vol-net6/VOL.WebApi/quartz/* /vol-net6/VOL.WebApi/quartz/*
/vol-net6/VOL.Data/obj /vol-net6/VOL.Data/obj
/vol-net6/VOL.Data/bin /vol-net6/VOL.Data/bin
/vol-net6/TestProject1

@ -29,6 +29,8 @@ namespace VOL.Core.EFDbContext
// TODO: 拿到日志内容想怎么玩就怎么玩吧 // TODO: 拿到日志内容想怎么玩就怎么玩吧
Console.WriteLine(); Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Green; // 字体绿色 Console.ForegroundColor = ConsoleColor.Green; // 字体绿色
string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine($"**************{time}****************");
Console.WriteLine(logContent); Console.WriteLine(logContent);
Console.ResetColor(); Console.ResetColor();
} }

@ -12,6 +12,9 @@ namespace VOL.Data.IServices
// 获取设备配置列表 // 获取设备配置列表
List<Data_Config> getConfigList(); List<Data_Config> getConfigList();
// 获取尼可尼设备配置列表
List<Data_Config> getNKNConfigList();
// 根据主键查询设备 // 根据主键查询设备
Data_Config GetConfigById(int id); Data_Config GetConfigById(int id);

@ -11,5 +11,9 @@ namespace VOL.Data.IServices
{ {
// 查询设备列表数据 // 查询设备列表数据
Dictionary<int, Data_Machine> GetMachineData(); Dictionary<int, Data_Machine> GetMachineData();
// 尼可尼设备设备列表数据
Dictionary<int, Data_Machine> GetNKNMachineData();
} }
} }

@ -72,6 +72,20 @@ namespace VOL.Data.Services
return list; return list;
} }
public List<Data_Config> getNKNConfigList() {
List<int> ids = new List<int> { 1, 2 };
var list = _repository.DbContext.Set<Data_Config>().Where(x => ids.Contains(x.id)).Select(x => new Data_Config()
{
id = x.id,
name = x.name,
type = x.type,
device_ip = x.device_ip,
com_ip = x.com_ip
}).OrderBy(x => x.id).ToList();
return list;
}
public Data_Config GetConfigById(int id) { public Data_Config GetConfigById(int id) {
return _repository.DbContext.Set<Data_Config>().FirstOrDefault(e => e.id == id); return _repository.DbContext.Set<Data_Config>().FirstOrDefault(e => e.id == id);
} }

@ -115,6 +115,44 @@ namespace VOL.Data.Services
} }
public Dictionary<int, Data_Machine> GetNKNMachineData()
{
var db = _repository.DbContext.Set<Data_Machine>();
var machineList = new Dictionary<int, Data_Machine>();
List<Data_Config> configList = Data_ConfigService.Instance.getNKNConfigList();
IQueryable<Data_Machine> query = db.Where(x => x.com_status == 5);
foreach (Data_Config config in configList)
{
// 机床数据,各自取最新一条
Data_Machine? data_Machine = query.Where(x => x.config_id == config.id).
OrderByDescending(d => d.CreateDate).FirstOrDefault();
if (data_Machine != null)
{
data_Machine.com_ip = config.com_ip;
data_Machine.name = config.name;
data_Machine.totalQuantity = data_Machine.quantity_total;
data_Machine.totalRuntime = data_Machine.run_time_total;
// 判断通讯是否断开
#pragma warning disable CS8600
Data_Machine lastdata_Machine = db.Where(x => x.config_id == config.id).
OrderByDescending(d => d.CreateDate).FirstOrDefault();
#pragma warning restore CS8600
data_Machine.com_status = lastdata_Machine.com_status;
// 生产数据, 各自取最新一条
Func<Data_Produce, bool> where = p => p.config_id == config.id && p.com_status == 5;
Data_Produce data_Produce = Data_ProduceService.Instance.getLastProduceData(where);
if (data_Produce != null)
{
data_Machine.currentTurnout = data_Produce.turnout_all;
data_Machine.OEE = data_Produce.oee;
}
machineList.Add(config.id, data_Machine);
}
}
return machineList;
}
// 重写Add方法 // 重写Add方法
public override WebResponseContent Add(SaveModel saveDataModel) { public override WebResponseContent Add(SaveModel saveDataModel) {
Dictionary<string, object> mapData = saveDataModel.MainData; Dictionary<string, object> mapData = saveDataModel.MainData;

@ -24,6 +24,8 @@ using VOL.Core.Enums;
using VOL.Core.Filters; using VOL.Core.Filters;
using VOL.System.IServices; using VOL.System.IServices;
using VOL.System.Services; using VOL.System.Services;
using Confluent.Kafka;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
namespace VOL.Data.Services namespace VOL.Data.Services
{ {
@ -79,12 +81,16 @@ namespace VOL.Data.Services
public Dictionary<string, object> produceDataGroupByWeekDays() { public Dictionary<string, object> produceDataGroupByWeekDays() {
List<Data_Config> configList = Data_ConfigService.Instance.getConfigList(); //List<Data_Config> configList = Data_ConfigService.Instance.getConfigList();
List<Data_Config> configList = Data_ConfigService.Instance.getNKNConfigList();
if (configList == null) { if (configList == null) {
return new(); return new();
} }
List<string> configIds = configList.Select(c => c.id.ToString()).ToList();
//string configIds = string.Join(",", idList);
var dapper = DBServerProvider.SqlDapper; var dapper = DBServerProvider.SqlDapper;
string sql = @"SELECT string sql = @"SELECT
d.id,
c.datelist AS date, c.datelist AS date,
d.config_id AS configId, d.config_id AS configId,
COALESCE ( MAX( turnout_all ), 0 ) AS currentTurnout COALESCE ( MAX( turnout_all ), 0 ) AS currentTurnout
@ -92,30 +98,39 @@ namespace VOL.Data.Services
data_calendar c data_calendar c
LEFT JOIN data_produce d ON c.datelist = DATE( d.CreateDate ) LEFT JOIN data_produce d ON c.datelist = DATE( d.CreateDate )
AND d.com_status = @comStatus AND d.com_status = @comStatus
AND d.config_id IN @configIds
WHERE WHERE
c.datelist BETWEEN CURDATE() - INTERVAL @Redays DAY c.datelist BETWEEN CURDATE() - INTERVAL @Redays DAY AND CURDATE()
AND CURDATE()
GROUP BY GROUP BY
c.datelist, date,
d.config_id"; configId";
int comStatus = 5; int comStatus = 5;
int Redays = 6; int Redays = 6;
// 原生sql动态查询 // 原生sql动态查询
var result = dapper.QueryDynamicList(sql, new { comStatus, Redays }); var result = dapper.QueryDynamicList(sql, new { comStatus, configIds, Redays });
Console.WriteLine(result);
var resultMap = new Dictionary<string, object>(); var resultMap = new Dictionary<string, object>();
var datelist = result.Select(p => p.date.ToString("yyyy-MM-dd")).Distinct().ToList(); var datelist = result.Select(p => p.date.ToString("yyyy-MM-dd")).Distinct().ToList();
var configMap = new Dictionary<string, List<int>>(); var configMap = new Dictionary<string, List<int>>();
foreach (var config in configList) foreach (var config in configList)
{ {
var data = new List<int>(); configMap.Add(config.id.ToString(), new List<int>());
}
foreach (var item in result) foreach (var item in result)
{ {
//Console.WriteLine(item.currentTurnout.GetType()); Int64
if (item.configId == null || item.configId == config.id) { if (item.configId == null)
data.Add(Convert.ToInt32(item.currentTurnout)); {
foreach (var configPair in configMap)
{
configPair.Value.Add(0);
} }
} }
configMap.Add(config.id.ToString(), data); else
{
string id = item.configId.ToString();
configMap[id]?.Add(Convert.ToInt32(item.currentTurnout));
}
} }
resultMap.Add("datelist", datelist); resultMap.Add("datelist", datelist);
resultMap.Add("dataMap", configMap); resultMap.Add("dataMap", configMap);

@ -13,6 +13,7 @@ using Confluent.Kafka;
using VOL.Data.IServices; using VOL.Data.IServices;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using Newtonsoft.Json; using Newtonsoft.Json;
using VOL.Data.Services;
namespace VOL.WebApi.Controllers.Data namespace VOL.WebApi.Controllers.Data
{ {
@ -44,6 +45,8 @@ namespace VOL.WebApi.Controllers.Data
} }
// 大屏接口未进行数据隔离操作后续需要维护todo (自定义Service接口、dapper查询需要手动维护租户字段)
// 获取设备配置数据 // 获取设备配置数据
[HttpPost, Route("GetDeviceConfig")] [HttpPost, Route("GetDeviceConfig")]
public IActionResult getDeviceConfig([FromBody] PageDataOptions loadData) public IActionResult getDeviceConfig([FromBody] PageDataOptions loadData)
@ -56,7 +59,7 @@ namespace VOL.WebApi.Controllers.Data
public IActionResult getMachineData([FromBody] Data_Config config) // application/json模式 public IActionResult getMachineData([FromBody] Data_Config config) // application/json模式
{ {
//Console.WriteLine(JsonConvert.SerializeObject(config)); //Console.WriteLine(JsonConvert.SerializeObject(config));
return Json(_machineService.GetMachineData()); return Json(_machineService.GetNKNMachineData());
} }
@ -76,6 +79,11 @@ namespace VOL.WebApi.Controllers.Data
} }
[HttpPost, Route("test")]
public IActionResult test()
{
List<Data_Config> configList = Data_ConfigService.Instance.getNKNConfigList();
return Json(configList);
}
} }
} }

@ -5,7 +5,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ActiveDebugProfile>VOL.WebApi</ActiveDebugProfile> <ActiveDebugProfile>VOL.WebApi</ActiveDebugProfile>
<NameOfLastUsedPublishProfile>E:\jxx\Vue.NetCore\.Net6版本\VOL.WebApi\Properties\PublishProfiles\FolderProfile1.pubxml</NameOfLastUsedPublishProfile> <NameOfLastUsedPublishProfile>D:\website\net6\vol-yxsc\vol-net6\VOL.WebApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID> <Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/Api</Controller_SelectedScaffolderCategoryPath> <Controller_SelectedScaffolderCategoryPath>root/Common/Api</Controller_SelectedScaffolderCategoryPath>
</PropertyGroup> </PropertyGroup>

@ -16,7 +16,8 @@
"Connection": { "Connection": {
"DBType": "MySql", //MySql/MsSql/PgSql //使sqlserverMsSql "DBType": "MySql", //MySql/MsSql/PgSql //使sqlserverMsSql
//mysql(EFCore3.1mysql,2019-12-20) //mysql(EFCore3.1mysql,2019-12-20)
"DbConnectionString": "Data Source=222.71.165.187;Database=vol-yxsc;AllowLoadLocalInfile=true;User ID=root;Password=qawsed,.123;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3309;sslmode=none;", //"DbConnectionString": "Data Source=222.71.165.187;Database=vol-yxsc;AllowLoadLocalInfile=true;User ID=root;Password=qawsed,.123;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3309;sslmode=none;",
"DbConnectionString": "Data Source=119.45.219.66;Database=yxsc;AllowLoadLocalInfile=true;User ID=yxsc;Password=CFyrHyex5A2A5Tby;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3306;sslmode=none;",
//sqlserver //sqlserver
//"DbConnectionString": "Data Source=DESKTOP-JJQM2OL\\SQLEXPRESS;Initial Catalog=netcoredev;Persist Security Info=True;User ID=sa;Password=123456;Connect Timeout=500;", //"DbConnectionString": "Data Source=DESKTOP-JJQM2OL\\SQLEXPRESS;Initial Catalog=netcoredev;Persist Security Info=True;User ID=sa;Password=123456;Connect Timeout=500;",
//PgSql //PgSql
@ -35,7 +36,7 @@
}, },
//================ (CORS)(2019-12-20) //================ (CORS)(2019-12-20)
//================.netcore3.1,url,urlvue //================.netcore3.1,url,urlvue
"CorsUrls": "http://localhost:8081,http://localhost:8080,http://localhost:7080,http://localhost:9980,http://127.0.0.1:9980,http://localhost:9990,http://www.volcore.xyz", "CorsUrls": "http://localhost:8081,http://localhost:8080,http://localhost:7080,http://localhost:9980,http://127.0.0.1:9980,http://localhost:9990,http://119.45.219.66:9990",
"ExpMinutes": "120", //JWT(=120), "ExpMinutes": "120", //JWT(=120),
"CreateMember": { ////,UserIdField/UserNameField/DateFieldCreateID,Creator,CreateDate(,,)T.SetCreateDefaultVal()// "CreateMember": { ////,UserIdField/UserNameField/DateFieldCreateID,Creator,CreateDate(,,)T.SetCreateDefaultVal()//
//GUIDDateField() //GUIDDateField()

Loading…
Cancel
Save