You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
4.3 KiB
C#

using HighWayIot.Repository.domain;
using HighWayIot.Repository.service.Impl;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RFIDSocket
{
public partial class RFIDLog : Form
{
List<RFIDContent> rFIDContents = new List<RFIDContent>();
List<RFIDContent> AfterSelect = new List<RFIDContent>();
BaseContentServiceImpl sql = new BaseContentServiceImpl();
List<string> listStatus = new List<string>
{
"",
"NR",
"GR",
};
Dictionary<string, string> listTips = new Dictionary<string, string>
{
{"", ""},
{"正常", "ok"},
{"无读", "noread"},
{"近距离", "near"},
{"包过短", "short"},
{"多标签", "multi"},
};
public RFIDLog()
{
InitializeComponent();
Init();
}
private void Init()
{
rFIDContents = sql.GetContentInfos();
StartTime.Value = DateTime.Now.AddDays(-3);
AllIP.DataSource = ServerConnect.Names;
StatusText.DataSource = listStatus;
TipsText.DataSource = listTips.Keys.ToArray();
}
private void TimeSelect_Click(object sender, EventArgs e)
{
rFIDContents = LogControl.LogIPSelect(sql.GetContentInfos(), ServerConnect.IPConfig[AllIP.Text]);
AfterSelect = LogControl.LogTimeSelect(rFIDContents, StartTime.Value, EndTime.Value);
DataCount();
if (LogContent != null)
{
LogContent.DataSource = null;
LogContent.DataSource = AfterSelect;
}
}
private void SelectByCondition_Click(object sender, EventArgs e)
{
rFIDContents = LogControl.LogIPSelect(sql.GetContentInfos(), ServerConnect.IPConfig[AllIP.Text]);
AfterSelect = SelectCondition(rFIDContents);
DataCount();
if (LogContent != null)
{
LogContent.DataSource = null;
LogContent.DataSource = AfterSelect;
}
}
private void SelectAll_Click(object sender, EventArgs e)
{
rFIDContents = LogControl.LogIPSelect(sql.GetContentInfos(), ServerConnect.IPConfig[AllIP.Text]);
AfterSelect = LogControl.LogTimeSelect(SelectCondition(rFIDContents),
StartTime.Value, EndTime.Value);
DataCount();
if (LogContent != null)
{
LogContent.DataSource = null;
LogContent.DataSource = AfterSelect;
}
}
private List<RFIDContent> SelectCondition(List<RFIDContent> content)
{
AfterSelect = LogControl.LogLengthSelect(
LogControl.LogIntervalSelect(
LogControl.LogStatusSelect(
LogControl.LogTipsSelect(
LogControl.LogSNSelect(
LogControl.LogEPCSelect(content,
EPCText.Text),
SNText.Text),
listTips[TipsText.Text]),
StatusText.Text),
int.TryParse(MinInterval.Text, out int c) ? c : -1,
int.TryParse(MaxInterval.Text, out int d) ? d : -1),
int.TryParse(MinLength.Text, out int a) ? a : -1,
int.TryParse(MaxLength.Text, out int b) ? b : -1);
DataCount();
return AfterSelect;
}
private void DataCount()
{
TotalCount.Text = AfterSelect.Count.ToString();
NormalCount.Text = AfterSelect.Where(x => x.Tips == "ok").Count().ToString();
WarningCount.Text = AfterSelect.Where(x => x.Tips != "ok").Count().ToString();
NoReadCount.Text = AfterSelect.Where(x => x.Tips == "noread").Count().ToString();
NearCount.Text = AfterSelect.Where(x => x.Tips == "near").Count().ToString();
ShortCount.Text = AfterSelect.Where(x => x.Tips == "short").Count().ToString();
MultiCount.Text = AfterSelect.Where(x => x.Tips == "multi").Count().ToString();
}
}
}