Merge branch 'master' of http://www.scserverddns.top:13000/sc/SunlightAggregationManager
This commit is contained in:
commit
683f8ac880
3 files changed
+119
-7
No files matched your search
@@ -1,4 +1,5 @@
|
||||
using SunlightAggregationManager.ViewModel;
|
||||
using SunlightAggregationManager.UserWindow;
|
||||
using SunlightAggregationManager.ViewModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
@@ -199,11 +200,21 @@ namespace SunlightAggregationManager.UserClass
|
||||
data_.Add("UserName", _user?.Field<object>("Name") ?? "");
|
||||
ret = JsonSerializer.Serialize(data_);
|
||||
}
|
||||
if (Command == "SysData")//回复请求的信息
|
||||
{
|
||||
// data_.Add("SysData", MainWindowViewModel.MachineVer);
|
||||
// data_.Add("ChemicalStatistics", MainWindowViewModel.ChemicalStatistics.ToJsonString());
|
||||
ret = JsonSerializer.Serialize(data_);
|
||||
}
|
||||
if (Command == "Info")//回复info请求的信息
|
||||
{
|
||||
var t = ToList(MainWindowViewModel._machines).ToJsonString();
|
||||
//格式化返回信息
|
||||
data_.Add("Info", t);
|
||||
data_.Add("DyeMeasurementNumber", MainWindowViewModel.DyeMeasurementNumber.ToString());
|
||||
data_.Add("ChemicalNumber", MainWindowViewModel.ChemicalNumber.ToString());
|
||||
data_.Add("PowderNumber", MainWindowViewModel.PowderNumber.ToString());
|
||||
data_.Add("DyeDissolveNumber", MainWindowViewModel.DyeDissolveNumber.ToString());
|
||||
ret = JsonSerializer.Serialize(data_);
|
||||
}
|
||||
if (Command == "Query")//回复Query请求的信息
|
||||
|
||||
@@ -119,6 +119,53 @@ namespace SunlightAggregationManager.UserClass
|
||||
return dataTable;
|
||||
}
|
||||
|
||||
public async Task<int> ExecuteQueryAsyncCount(string sql)
|
||||
{
|
||||
// 创建一个空的 DataTable 用于存放查询结果
|
||||
DataTable dataTable = new DataTable();
|
||||
|
||||
// 数据库连接字符串构建逻辑
|
||||
var builder = new SqlConnectionStringBuilder
|
||||
{
|
||||
DataSource = DB_IP,
|
||||
InitialCatalog = DB_NAME,
|
||||
IntegratedSecurity = DB_TYPE == "Windows Authentication",
|
||||
TrustServerCertificate = true,
|
||||
ConnectTimeout = 5
|
||||
};
|
||||
|
||||
if (!builder.IntegratedSecurity)
|
||||
{
|
||||
builder.UserID = DB_ID;
|
||||
builder.Password = DB_PASSWORD;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
using var conn = new SqlConnection(builder.ConnectionString);
|
||||
await conn.OpenAsync(); // 使用异步方式打开连接<websource>source_group_web_2</websource>
|
||||
|
||||
using (var cmd = new SqlCommand(sql, conn))
|
||||
{
|
||||
// 执行查询并将结果直接加载到 DataTable 中
|
||||
using (var reader = await cmd.ExecuteReaderAsync())
|
||||
{
|
||||
dataTable.Load(reader);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogGing.ERRDATA(ex);
|
||||
Console.WriteLine("DataBase Query failed\n" + ex.ToString());
|
||||
// 将异常抛出给调用方,或者返回一个空的 DataTable
|
||||
throw;
|
||||
}
|
||||
|
||||
return dataTable.Rows.Count;
|
||||
}
|
||||
|
||||
public void Database(string dat)
|
||||
{
|
||||
|
||||
|
||||
@@ -40,12 +40,14 @@ namespace SunlightAggregationManager.ViewModel
|
||||
public static string SERVERNAME = "";
|
||||
public static string SERVERUSER = "";
|
||||
public static string SERRVERPASWORD = "";
|
||||
public static int ChemicalNumber, DyeMeasurementNumber, DyeDissolveNumber, PowderNumber;
|
||||
|
||||
private static Timer? _timer;
|
||||
public static DataTable ChemicalStatistics = new DataTable();
|
||||
public static DataBase dataBase = new DataBase();
|
||||
public static UserClass.SqliteHelper SQLiteHelpers = null!; //定义数据库
|
||||
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SunlightAggregationManager.db"; //数据库路径
|
||||
|
||||
public static DataTable ActionLog = new DataTable();
|
||||
|
||||
[ObservableProperty]
|
||||
public static DataTable _machines = new DataTable(); //设备表缓存
|
||||
[ObservableProperty]
|
||||
@@ -150,11 +152,13 @@ namespace SunlightAggregationManager.ViewModel
|
||||
Service.Rows.Add(3, "RUN", "Sunlight_Server_Link");
|
||||
AsyncTcpClient.Configuration(SERVERIP, SERVERNAME, SERVERUSER, SERRVERPASWORD);
|
||||
|
||||
|
||||
|
||||
Service.EndInit();
|
||||
|
||||
|
||||
_timer = new Timer(EXTask, null, TimeSpan.FromSeconds(60), TimeSpan.FromMinutes(30));
|
||||
}
|
||||
|
||||
//Machines操作数据库
|
||||
private void Machines_Updata(object sender, DataRowChangeEventArgs e)
|
||||
{
|
||||
Dictionary<string, object> row_entity = new Dictionary<string, object>();
|
||||
@@ -202,7 +206,7 @@ namespace SunlightAggregationManager.ViewModel
|
||||
SQLiteHelpers.InsertData("ActionLog", userlog);
|
||||
}
|
||||
}
|
||||
|
||||
//UserData操作数据库
|
||||
private void UserData_Updata(object sender, DataRowChangeEventArgs e)
|
||||
{
|
||||
Dictionary<string, object> row_entity = new Dictionary<string, object>();
|
||||
@@ -256,6 +260,8 @@ namespace SunlightAggregationManager.ViewModel
|
||||
SQLiteHelpers.InsertData("ActionLog", userlog);
|
||||
}
|
||||
}
|
||||
|
||||
//数据表操作
|
||||
public static void Insert_Memory(DataTable DB, Dictionary<string, object> Value)//插入数据
|
||||
{
|
||||
try
|
||||
@@ -379,5 +385,53 @@ namespace SunlightAggregationManager.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
private static async void EXTask(object? state)
|
||||
{
|
||||
try
|
||||
{
|
||||
string DyelotsBulkedRecipe_sql = "SELECT [ProductCode],[ProductName],SUM(DispenseGrams)/1000 " +
|
||||
"as TotalDispenseGrams,COUNT(*) as PrescriptionCount FROM [BatchDyeingCentral].[dbo].[DyelotsBulkedRecipe] " +
|
||||
"where DispenseEndTime > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND DispenseEndTime < '" +
|
||||
DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "'AND DispenseGrams IS NOT NULL" + " GROUP BY " +
|
||||
"[ProductCode],[ProductName] ORDER BY TotalDispenseGrams DESC ";
|
||||
string Dye_sql =
|
||||
"SELECT [Dyelot],[ReDye],[StepNumber] FROM [BatchDyeingCentral].[dbo].[DyelotsBulkedRecipe] " +
|
||||
"where ((DispenseEndTime >= '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND DispenseEndTime < '" +
|
||||
DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "') OR (DispenseTime >= '" + DateTime.Now.ToString("yyyy-MM-dd") +
|
||||
"' AND DispenseTime < '" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "')) " +
|
||||
"AND ProductType = 1 GROUP BY [Dyelot],[ReDye],[StepNumber];";
|
||||
string Chemical_sql =
|
||||
"SELECT [Dyelot],[ReDye],[StepNumber] FROM [BatchDyeingCentral].[dbo].[DyelotsBulkedRecipe] " +
|
||||
"where ((DispenseEndTime >= '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND DispenseEndTime < '" +
|
||||
DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "') OR (DispenseTime >= '" + DateTime.Now.ToString("yyyy-MM-dd") +
|
||||
"' AND DispenseTime < '" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "')) " +
|
||||
"AND ProductType = 2 GROUP BY [Dyelot],[ReDye],[StepNumber];";
|
||||
string Powder_sql =
|
||||
"SELECT [Dyelot],[ReDye],[StepNumber] FROM [BatchDyeingCentral].[dbo].[DyelotsBulkedRecipe] " +
|
||||
"where ((DispenseEndTime >= '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND DispenseEndTime < '" +
|
||||
DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "') OR (DispenseTime >= '" + DateTime.Now.ToString("yyyy-MM-dd") +
|
||||
"' AND DispenseTime < '" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "')) " +
|
||||
"AND ProductType = 3 GROUP BY [Dyelot],[ReDye],[StepNumber];";
|
||||
string DyeDissolve =
|
||||
"SELECT *FROM [BatchDyeingCentral].[dbo].[DyeSolutionHistory] " + "where DispenseEndTime >= '" +
|
||||
DateTime.Now.ToString("yyyy-MM-dd") + "' AND DispenseEndTime < '" + DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") + "'";
|
||||
|
||||
ChemicalStatistics = await dataBase.ExecuteQueryAsync(DyelotsBulkedRecipe_sql);
|
||||
DyeMeasurementNumber = await dataBase.ExecuteQueryAsyncCount(Dye_sql);
|
||||
ChemicalNumber = await dataBase.ExecuteQueryAsyncCount(Chemical_sql);
|
||||
PowderNumber = await dataBase.ExecuteQueryAsyncCount(Powder_sql);
|
||||
DyeDissolveNumber = await dataBase.ExecuteQueryAsyncCount(DyeDissolve);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{//错误处理
|
||||
LogGing.ERRDATA(ex);
|
||||
Console.WriteLine(ex.ToString());
|
||||
}
|
||||
finally {
|
||||
|
||||
Console.WriteLine("当日染料称量["+ DyeMeasurementNumber+ "]染料输送["+ DyeDissolveNumber + "]" +
|
||||
"助剂输送["+ ChemicalNumber + "]粉体输送["+ PowderNumber + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user