776 lines
34 KiB
C#
776 lines
34 KiB
C#
using Model;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Reflection.Emit;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Xml.Linq;
|
||
using Tool;
|
||
|
||
namespace BLL
|
||
{
|
||
public class CheckBLL
|
||
{
|
||
private SqlHelper sql = new SqlHelper();
|
||
private ConfigHelper configHelper = new ConfigHelper();
|
||
private FileHelper file = new FileHelper();
|
||
public void SetConfig(SettingModel set)
|
||
{
|
||
configHelper.Write("Index", set.index.ToString());
|
||
}
|
||
/// <summary>
|
||
/// 读取配置文件内容
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public SettingModel LoadConfig()
|
||
{
|
||
//地址
|
||
string setPath1 = System.Environment.CurrentDirectory + "\\Setting1.config";
|
||
//夹具号
|
||
string setPath2 = System.Environment.CurrentDirectory + "\\Setting2.config";
|
||
//机型
|
||
string setPath3 = System.Environment.CurrentDirectory + "\\Setting3.config";
|
||
try
|
||
{
|
||
SettingModel set = new SettingModel();
|
||
Dictionary<string, string> dic = configHelper.ReadAll();
|
||
//地址
|
||
Dictionary<string, string> dic1 = configHelper.ReadAll(setPath1);
|
||
//夹具号
|
||
Dictionary<string, string> dic2 = configHelper.ReadAll(setPath2);
|
||
//机型
|
||
Dictionary<string, string> dic3 = configHelper.ReadAll(setPath3);
|
||
if (dic1.ContainsKey("pathini"))
|
||
{
|
||
set.pathini = dic1["pathini"];
|
||
}
|
||
if (dic1.ContainsKey("pathLoad"))
|
||
{
|
||
set.pathLoad = dic1["pathLoad"];
|
||
}
|
||
if (dic1.ContainsKey("pathch1"))
|
||
{
|
||
set.pathch1 = dic1["pathch1"];
|
||
}
|
||
if (dic1.ContainsKey("pathch2"))
|
||
{
|
||
set.pathch2 = dic1["pathch2"];
|
||
}
|
||
if (dic2.ContainsKey("devcode1"))
|
||
{
|
||
set.devcode1 = dic2["devcode1"];
|
||
}
|
||
if (dic2.ContainsKey("devcode2"))
|
||
{
|
||
set.devcode2 = dic2["devcode2"];
|
||
}
|
||
if (dic3.ContainsKey("type"))
|
||
{
|
||
set.Types = dic3["type"].Split(';');
|
||
}
|
||
if (dic.ContainsKey("Index"))
|
||
{
|
||
set.index = int.Parse(dic["Index"]);
|
||
}
|
||
return set;
|
||
}
|
||
catch (Exception ee)
|
||
{
|
||
LogHelper.WriteLog(ee.ToString());
|
||
return null;
|
||
}
|
||
}
|
||
public List<ExclModel> getReplacetest1(string path,string imei)
|
||
{
|
||
string pathen = "";
|
||
string textna = "";
|
||
List<ExclModel> topexcl = new List<ExclModel>();
|
||
DirectoryInfo theFolder1 = new DirectoryInfo(path);
|
||
DirectoryInfo[] dir12 = theFolder1.GetDirectories();
|
||
if (dir12.Length!=1)
|
||
{
|
||
return topexcl;
|
||
}
|
||
foreach (DirectoryInfo NextFolder2 in dir12)
|
||
{
|
||
textna = NextFolder2.Name;
|
||
if (NextFolder2.Name.Contains(imei) && NextFolder2.Name.Contains("PASS"))
|
||
{
|
||
pathen = NextFolder2.FullName+ "\\LTE_FT.csv";
|
||
}else
|
||
{
|
||
return topexcl;
|
||
}
|
||
}
|
||
using (var reader = new StreamReader(pathen))
|
||
{
|
||
string line;
|
||
// 循环读取文件中的每一行
|
||
while ((line = reader.ReadLine()) != null)
|
||
{
|
||
// 使用Split函数按逗号分隔行内容
|
||
string[] fields = line.Split(',');
|
||
|
||
// 这里可以对分隔后的字段数据进行处理或存储
|
||
// 示例:打印每一行的字段
|
||
//for (int i = 0; i < fields.Length; i++)
|
||
//{
|
||
// Console.WriteLine($"Field {i + 1}: {fields[i]}");
|
||
//}
|
||
ExclModel itme = new ExclModel();
|
||
itme.textname = textna;
|
||
itme.Band = fields[1];
|
||
itme.Channel = fields[2];
|
||
itme.Result = fields[7];
|
||
topexcl.Add(itme);
|
||
// 实际应用中,您可以在此处替换为实际的数据处理逻辑
|
||
}
|
||
}
|
||
return topexcl;
|
||
}
|
||
/// <summary>
|
||
/// 从log文件读取功率
|
||
/// </summary>
|
||
/// <param name="path"></param>
|
||
/// <param name="imei"></param>
|
||
/// <returns></returns>
|
||
public Tuple<List<ExclModel>, string> getReplacetest(string path, string imei,int num)
|
||
{
|
||
string pathen = "";
|
||
string textna = "";
|
||
string retul = "OK";
|
||
List<ExclModel> topexcl = new List<ExclModel>();
|
||
DirectoryInfo theFolder1 = new DirectoryInfo(path);
|
||
DirectoryInfo[] dir12 = theFolder1.GetDirectories();
|
||
List<DirectoryInfo> dir13 = theFolder1.GetDirectories().ToList();
|
||
if (dir12.Length != num + 1)
|
||
{
|
||
retul = "log文件数量不为" + (num + 1);
|
||
return new Tuple<List<ExclModel>, string>(topexcl, retul);
|
||
}
|
||
//List<DirectoryInfo> onetextna1 = dir13.OrderByDescending(it => it.CreationTime).ToList();
|
||
DirectoryInfo onetextna = dir13.OrderByDescending(it => it.CreationTime).First();
|
||
textna = onetextna.Name;
|
||
pathen = onetextna.FullName + "\\LTE_FT.csv";
|
||
DateTime s = onetextna.CreationTime;
|
||
DateTime s1 = DateTime.Today;
|
||
if (s<s1)
|
||
{
|
||
retul = "log 文件的创建时间"+ s.ToString()+"不为当前日期";
|
||
return new Tuple<List<ExclModel>, string>(topexcl, retul);
|
||
}
|
||
//if (dir12.Length != num+1)
|
||
//{
|
||
// retul="log文件数量不为"+ (num+1);
|
||
// return new Tuple<List<ExclModel>, string>(topexcl, retul);
|
||
//}
|
||
foreach (DirectoryInfo NextFolder2 in dir12)
|
||
{
|
||
//textna = NextFolder2.Name;
|
||
//if (NextFolder2.Name.Contains(imei) && NextFolder2.Name.Contains("PASS"))
|
||
//{
|
||
// pathen = NextFolder2.FullName + "\\LTE_FT.csv";
|
||
//}
|
||
//else
|
||
//{
|
||
// retul = "log文件名称没有PASS或与金机号不符";
|
||
// return new Tuple<List<ExclModel>, string>(topexcl, retul);
|
||
//}
|
||
if (!NextFolder2.Name.Contains(imei) || !NextFolder2.Name.Contains("PASS"))
|
||
{
|
||
retul = "log文件名称没有PASS或与金机号不符";
|
||
return new Tuple<List<ExclModel>, string>(topexcl, retul);
|
||
}
|
||
}
|
||
using (var reader = new StreamReader(pathen))
|
||
{
|
||
string line;
|
||
// 循环读取文件中的每一行
|
||
while ((line = reader.ReadLine()) != null)
|
||
{
|
||
// 使用Split函数按逗号分隔行内容
|
||
string[] fields = line.Split(',');
|
||
|
||
// 这里可以对分隔后的字段数据进行处理或存储
|
||
// 示例:打印每一行的字段
|
||
//for (int i = 0; i < fields.Length; i++)
|
||
//{
|
||
// Console.WriteLine($"Field {i + 1}: {fields[i]}");
|
||
//}
|
||
if (fields[2].Contains("Channel"))
|
||
{
|
||
continue;
|
||
}
|
||
ExclModel itme = new ExclModel();
|
||
itme.textname = textna;
|
||
itme.Band = fields[1];
|
||
itme.Channel = fields[2];
|
||
itme.Result = fields[7];
|
||
topexcl.Add(itme);
|
||
// 实际应用中,您可以在此处替换为实际的数据处理逻辑
|
||
}
|
||
}
|
||
return new Tuple<List<ExclModel>, string>(topexcl, retul);
|
||
}
|
||
/// <summary>
|
||
/// 从软件的配置文件里读取线损
|
||
/// </summary>
|
||
/// <param name="path"></param>
|
||
/// <param name="numb"></param>
|
||
/// <returns></returns>
|
||
public List<IniModel> getinitest(string path,int numb)
|
||
{
|
||
string DateStr = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");
|
||
string pathen = AppDomain.CurrentDomain.BaseDirectory + "ini备份";
|
||
//this.file.Transport(path, "D:\\xiansun", DateStr+"line.ini");
|
||
this.file.Transport(path, pathen, DateStr + "line.ini");
|
||
List < IniModel > lsit = new List<IniModel>();
|
||
for (int i = 0; i < 48; i++)
|
||
{
|
||
IniModel one = new IniModel();
|
||
one.several_line_loss = (lsit.Count + 1).ToString();
|
||
one.textname = DateStr + "Line.ini";
|
||
lsit.Add(one);
|
||
}
|
||
using (StreamReader sr = new StreamReader(pathen+"\\" + DateStr + "Line.ini", Encoding.UTF8))
|
||
//using (StreamReader sr = new StreamReader("D:\\xiansun\\" + DateStr + "Line.ini", Encoding.UTF8))
|
||
{
|
||
string line;
|
||
bool isRead = false;
|
||
List<string> lines = new List<string>();
|
||
//IniModel one = new IniModel();
|
||
int number = 0;
|
||
while ((line = sr.ReadLine()) != null)
|
||
{
|
||
lines.Add(line);
|
||
if (line.Contains("[Instrument Setting TS"+ (numb).ToString() +"]"))
|
||
{
|
||
isRead = true;
|
||
}
|
||
if (line.Contains("[Instrument Setting TS" + (numb+1).ToString() + "]"))
|
||
{
|
||
isRead = false;
|
||
}
|
||
if (line == ""|| !isRead||line.Contains("DIV")|| line.Contains("66_"))
|
||
{
|
||
continue;
|
||
}
|
||
if (!line.Contains("LTE_BAND"))
|
||
{
|
||
|
||
continue;
|
||
}
|
||
if (line.Contains("LTE_BAND") && line.Contains("TX_LOW_LOSS"))
|
||
{
|
||
number = int.Parse(line.Split(new char[2] { 'D', '_' })[2])-1;
|
||
lsit[number].LTE_BAND_TX_LOW_LOSS= line.Split('=')[1].Trim();
|
||
//one.LTE_BAND_TX_LOW_LOSS = line.Split('=')[1].Trim();
|
||
//number = number + 1;
|
||
}
|
||
else if (line.Contains("LTE_BAND") && line.Contains("TX_MID_LOSS"))
|
||
{
|
||
number = int.Parse(line.Split(new char[2] { 'D', '_' })[2]) - 1;
|
||
lsit[number].LTE_BAND_TX_MID_LOSS = line.Split('=')[1].Trim();
|
||
//one.LTE_BAND_TX_MID_LOSS = line.Split('=')[1].Trim();
|
||
//number = number + 1;
|
||
}
|
||
else if (line.Contains("LTE_BAND") && line.Contains("TX_HIGH_LOSS"))
|
||
{
|
||
number = int.Parse(line.Split(new char[2] { 'D', '_' })[2]) - 1;
|
||
lsit[number].LTE_BAND_TX_HIGH_LOSS = line.Split('=')[1].Trim();
|
||
//one.LTE_BAND_TX_HIGH_LOSS = line.Split('=')[1].Trim();
|
||
//number = number + 1;
|
||
}
|
||
else if (line.Contains("LTE_BAND") && line.Contains("RX_LOW_LOSS"))
|
||
{
|
||
number = int.Parse(line.Split(new char[2] { 'D', '_' })[2]) - 1;
|
||
lsit[number].LTE_BAND_RX_LOW_LOSS = line.Split('=')[1].Trim();
|
||
//one.LTE_BAND_RX_LOW_LOSS = line.Split('=')[1].Trim();
|
||
//number = number + 1;
|
||
}
|
||
else if (line.Contains("LTE_BAND") && line.Contains("RX_MID_LOSS"))
|
||
{
|
||
number = int.Parse(line.Split(new char[2] { 'D', '_' })[2]) - 1;
|
||
lsit[number].LTE_BAND_RX_MID_LOSS = line.Split('=')[1].Trim();
|
||
//one.LTE_BAND_RX_MID_LOSS = line.Split('=')[1].Trim();
|
||
//number = number + 1;
|
||
}
|
||
else if (line.Contains("LTE_BAND") && line.Contains("RX_HIGH_LOSS"))
|
||
{
|
||
number = int.Parse(line.Split(new char[2] { 'D', '_' })[2]) - 1;
|
||
lsit[number].LTE_BAND_RX_HIGH_LOSS = line.Split('=')[1].Trim();
|
||
//one.LTE_BAND_RX_HIGH_LOSS = line.Split('=')[1].Trim();
|
||
//number = number + 1;
|
||
}
|
||
//if (number==6)
|
||
//{
|
||
// lsit.Add(one);
|
||
// one = new IniModel();
|
||
// number = 0;
|
||
//}
|
||
}
|
||
|
||
return lsit;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 从软件的配置文件里读取线损
|
||
/// </summary>
|
||
/// <param name="path"></param>
|
||
/// <param name="numb"></param>
|
||
/// <returns></returns>
|
||
public string getloadtest(string path)
|
||
{
|
||
//string DateStr = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");
|
||
//this.file.Transport(path, "D:\\xiansun", DateStr + "Load.ini");
|
||
//List<string> lsit = new List<string>();
|
||
|
||
//using (StreamReader sr = new StreamReader("D:\\xiansun\\" + DateStr + "Load.ini", Encoding.UTF8))
|
||
//{
|
||
// string line;
|
||
// List<string> lines = new List<string>();
|
||
// //IniModel one = new IniModel();
|
||
// while ((line = sr.ReadLine()) != null)
|
||
// {
|
||
// lines.Add(line);
|
||
// if (line.Contains("EnableScript1="))
|
||
// {
|
||
// string setingd = line.Split('=')[1].Trim();
|
||
// lsit.Add(setingd);
|
||
// }
|
||
// }
|
||
// if (lsit.Count!=2)
|
||
// {
|
||
// return "Load.ini读取的EnableScript1数量为"+ lsit.Count+"条";
|
||
// }
|
||
//if (lsit[1]!="0")
|
||
//{
|
||
// return "Load.ini未取消校准";
|
||
//}
|
||
return "OK";
|
||
//} //}
|
||
}
|
||
/// <summary>
|
||
/// 将log文件的位置清理,准备点检或抓取
|
||
/// </summary>
|
||
/// <param name="set"></param>
|
||
public void Clearfile(SettingModel set)
|
||
{
|
||
DirectoryInfo theFolder1 = new DirectoryInfo(set.pathch1);
|
||
DirectoryInfo theFolder2 = new DirectoryInfo(set.pathch2);
|
||
DirectoryInfo parsent = theFolder1.Parent;
|
||
string path1 = parsent.FullName + "\\errch1";
|
||
string path2 = parsent.FullName + "\\errch2";
|
||
if (!Directory.Exists(path1))
|
||
{
|
||
Directory.CreateDirectory(path1);
|
||
}
|
||
if (!Directory.Exists(path2))
|
||
{
|
||
Directory.CreateDirectory(path2);
|
||
}
|
||
DirectoryInfo[] dir11 = theFolder1.GetDirectories();
|
||
foreach (DirectoryInfo NextFolder1 in dir11)
|
||
{
|
||
NextFolder1.MoveTo(path1 + "\\" + NextFolder1.Name);
|
||
}
|
||
DirectoryInfo[] dir12 = theFolder2.GetDirectories();
|
||
foreach (DirectoryInfo NextFolder2 in dir12)
|
||
{
|
||
NextFolder2.MoveTo(path2 + "\\" + NextFolder2.Name);
|
||
}
|
||
//theFolder1.MoveTo(path1+ "\\" + “xxx_xx_xxx”);
|
||
//theFolder2.MoveTo(path2+"\\" + “xxx_xx_xxx”);
|
||
}
|
||
/// <summary>
|
||
/// 将log文件上传共享文件夹,并在本地备份
|
||
/// </summary>
|
||
/// <param name="path"></param>
|
||
/// <param name="num"></param>
|
||
/// <returns></returns>
|
||
public string coply(string path,int num,string devcode)
|
||
{
|
||
try
|
||
{
|
||
DateTime dt = sql.db3.GetDate();
|
||
string DateStr = dt.ToString("yyyy-MM-dd");
|
||
string pathup = "\\\\192.168.2.149\\生产数据-2\\制造二课\\制造二课(模组车间)\\中移上传点检\\日常点检\\" + DateStr + "\\" + devcode;
|
||
string pathcp = "";
|
||
|
||
DirectoryInfo theFolder1 = new DirectoryInfo(path);
|
||
pathcp = theFolder1.Parent.FullName+"\\备份\\"+ DateStr;
|
||
if (!Directory.Exists(pathcp))
|
||
{
|
||
Directory.CreateDirectory(pathcp);
|
||
}
|
||
DirectoryInfo[] dir12 = theFolder1.GetDirectories();
|
||
if (dir12.Length != num)
|
||
{
|
||
return "文件数量错误";
|
||
}
|
||
foreach (DirectoryInfo NextFolder2 in dir12)
|
||
{
|
||
if (!Directory.Exists(pathup+"\\"+ NextFolder2.Name))
|
||
{
|
||
Directory.CreateDirectory(pathup + "\\" + NextFolder2.Name);
|
||
}
|
||
FileInfo[] dir11 = NextFolder2.GetFiles();
|
||
foreach (FileInfo NextFolder3 in dir11)
|
||
{
|
||
if (Copy_directory(NextFolder3.FullName, pathup + "\\" + NextFolder2.Name))
|
||
{
|
||
if (File.Exists(pathcp + "\\" + NextFolder2.Name + "\\" + NextFolder3.Name))
|
||
{
|
||
File.Delete(pathcp + "\\" + NextFolder2.Name + "\\" + NextFolder3.Name);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
return "文件上传失败"+ NextFolder2.Name;
|
||
}
|
||
}
|
||
NextFolder2.MoveTo(pathcp + "\\" + NextFolder2.Name);
|
||
}
|
||
return "OK";
|
||
}
|
||
catch (Exception ee)
|
||
{
|
||
return ee.ToString();
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 复制文件
|
||
/// </summary>
|
||
/// <param name="sourcePath"></param>
|
||
/// <param name="destinationPath"></param>
|
||
/// <returns></returns>
|
||
public static bool Copy_directory(string sourcePath, string destinationPath)
|
||
{
|
||
|
||
Boolean fpss = true;
|
||
|
||
string dPath = destinationPath + sourcePath.Substring(sourcePath.LastIndexOf("\\"));
|
||
FileInfo old = new FileInfo(sourcePath);
|
||
File.Copy(sourcePath, dPath, true);
|
||
|
||
if (File.Exists(dPath))
|
||
{
|
||
FileInfo romote = new FileInfo(dPath);
|
||
if (old.Length != romote.Length)
|
||
{
|
||
fpss = false;
|
||
}
|
||
}
|
||
|
||
return fpss;
|
||
}
|
||
/// <summary>
|
||
/// 判断从文件读取的log功率是否读取完整。线损是否小于4
|
||
/// </summary>
|
||
/// <param name="exclModel"></param>
|
||
/// <param name="initestModel"></param>
|
||
/// <returns></returns>
|
||
public string Checktest(List<ExclModel> exclModel, List<IniModel> initestModel)
|
||
{
|
||
foreach (var item1 in exclModel)
|
||
{
|
||
if (item1.Band==""|| item1.Result == "" || item1.Channel == "" )
|
||
{
|
||
return "log数据未采集完整!";
|
||
}
|
||
}
|
||
foreach (var item2 in initestModel)
|
||
{
|
||
if (item2.LTE_BAND_TX_LOW_LOSS == "" || item2.LTE_BAND_TX_MID_LOSS == ""
|
||
|| item2.LTE_BAND_TX_HIGH_LOSS == "" || item2.LTE_BAND_RX_LOW_LOSS == ""
|
||
|| item2.LTE_BAND_RX_MID_LOSS == "" || item2.LTE_BAND_RX_HIGH_LOSS == "")
|
||
{
|
||
return "ini数据未采集完整!";
|
||
}
|
||
if(double.Parse(item2.LTE_BAND_TX_LOW_LOSS) >100)
|
||
{
|
||
return "ini的index" + item2.several_line_loss + "的LTE_BAND_TX_LOW_LOSS的为" + item2.LTE_BAND_TX_LOW_LOSS + "大于100";
|
||
}
|
||
if (double.Parse(item2.LTE_BAND_TX_MID_LOSS) > 100)
|
||
{
|
||
return "ini的index" + item2.several_line_loss + "的LTE_BAND_TX_MID_LOSS的为" + item2.LTE_BAND_TX_MID_LOSS + "大于100";
|
||
}
|
||
if (double.Parse(item2.LTE_BAND_TX_HIGH_LOSS) > 100)
|
||
{
|
||
return "ini的index" + item2.several_line_loss + "的LTE_BAND_TX_HIGH_LOSS的为" + item2.LTE_BAND_TX_HIGH_LOSS + "大于100";
|
||
}
|
||
if (double.Parse(item2.LTE_BAND_RX_LOW_LOSS) > 100)
|
||
{
|
||
return "ini的index" + item2.several_line_loss + "的LTE_BAND_RX_LOW_LOSS的为" + item2.LTE_BAND_RX_LOW_LOSS + "大于100";
|
||
}
|
||
if (double.Parse(item2.LTE_BAND_RX_MID_LOSS) > 100)
|
||
{
|
||
return "ini的index" + item2.several_line_loss + "的LTE_BAND_RX_MID_LOSS的为" + item2.LTE_BAND_RX_MID_LOSS + "大于100";
|
||
}
|
||
if (double.Parse(item2.LTE_BAND_RX_HIGH_LOSS) > 100)
|
||
{
|
||
return "ini的index" + item2.several_line_loss + "的LTE_BAND_RX_HIGH_LOSS的为" + item2.LTE_BAND_RX_HIGH_LOSS + "大于100";
|
||
}
|
||
}
|
||
return "OK";
|
||
}
|
||
/// <summary>
|
||
/// 对比两个log功率的差距是否大于0.3
|
||
/// </summary>
|
||
/// <param name="exclModel"></param>
|
||
/// <param name="standardExclModelModel"></param>
|
||
/// <returns></returns>
|
||
public string Checklog(List<ExclModel> exclModel, List<ExclModel> standardExclModelModel,string exc1name,string exc2name,string type)
|
||
{
|
||
try
|
||
{
|
||
if (exclModel.Count != standardExclModelModel.Count)
|
||
{
|
||
return exc1name+"的数据条数" + exclModel.Count + "与"+ exc2name+"的条数" + standardExclModelModel.Count + "不同";
|
||
}
|
||
foreach (var item in exclModel)
|
||
{
|
||
//bool chck = false;
|
||
//foreach (var item1 in standardExclModelModel)
|
||
//{
|
||
// if (item.Channel == item1.Channel)
|
||
// {
|
||
// chck = true;
|
||
// double value1 = double.Parse(item.Result.Replace("dBm", ""));
|
||
// double value2 = double.Parse(item1.Result.Replace("dBm", ""));
|
||
// double difference = Math.Abs(value1 - value2);
|
||
// if (difference >= 0.5)
|
||
// {
|
||
// return (item.Channel + "的" + item.Result + "与数据库的" + item1.Result + "差超过0.5");
|
||
// }
|
||
// if (difference >= 0.3)
|
||
// {
|
||
// return (item.Channel + "的" + item.Result + "与数据库的" + item1.Result + "差超过0.3");
|
||
// }
|
||
// }
|
||
//}
|
||
var item2 = standardExclModelModel.Find(m=>m.Band== item.Band&&m.Channel==item.Channel);
|
||
if (item2==null)
|
||
{
|
||
return exc1name + "的数据Channel:" + item.Channel + "在"+ exc2name + "未找到对应的记录";
|
||
}
|
||
double value1 = double.Parse(item.Result.Replace("dBm", ""));
|
||
double value2 = double.Parse(item2.Result.Replace("dBm", ""));
|
||
double difference = Math.Abs(value1 - value2);
|
||
if (difference >= 0.5)
|
||
{
|
||
return (exc1name + "的数据Channel:"+item.Channel + "的" + item.Result + "与"+ exc2name+"的" + item2.Result + "差超过0.5");
|
||
}
|
||
//if (type == "ML307R芯朴" && item.Band == "8")
|
||
//{
|
||
// if (difference >= 0.4)
|
||
// {
|
||
// return ("ML307R芯朴"+exc1name + "的数据Channel:" + item.Channel + "的" + item.Result + "与" + exc2name + "的" + item2.Result + "差超过0.4");
|
||
// }
|
||
//}
|
||
//else
|
||
//{
|
||
// if (difference >= 0.3)
|
||
// {
|
||
// return (exc1name + "的数据Channel:" + item.Channel + "的" + item.Result + "与" + exc2name + "的" + item2.Result + "差超过0.3");
|
||
// }
|
||
//}
|
||
}
|
||
return "OK";
|
||
}
|
||
catch (Exception ee) {
|
||
LogHelper.WriteLog(ee.ToString());
|
||
return ee.ToString();
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 对比两个线损的差距是否小于.03
|
||
/// </summary>
|
||
/// <param name="initestModel"></param>
|
||
/// <param name="standardInitestModel"></param>
|
||
/// <returns></returns>
|
||
public string Checkini(List<IniModel> initestModel, List<IniModel> standardInitestModel, string exc1name, string exc2name)
|
||
{
|
||
try
|
||
{
|
||
if (initestModel.Count != standardInitestModel.Count)
|
||
{
|
||
return exc1name+"线损的数据条数" + initestModel.Count + "与"+ exc2name + "线损的条数" + standardInitestModel.Count + "不同";
|
||
}
|
||
foreach (var item in initestModel)
|
||
{
|
||
////bool chck = false;
|
||
//foreach (var item1 in standardInitestModel)
|
||
//{
|
||
// if (item.index == item1.index)
|
||
// {
|
||
// chck = true;
|
||
// string difff ="";
|
||
// difff=matchekc(item.LTE_BAND_TX_LOW_LOSS, item1.LTE_BAND_TX_LOW_LOSS);
|
||
// if (difff!="OK")
|
||
// {
|
||
// return "线损的数据index:" + item.index + "LTE_BAND_TX_LOW_LOSS"+ difff;
|
||
// }
|
||
// difff = matchekc(item.LTE_BAND_TX_MID_LOSS, item1.LTE_BAND_TX_MID_LOSS);
|
||
// if (difff != "OK")
|
||
// {
|
||
// return "线损的数据index:" + item.index + "LTE_BAND_TX_MID_LOSS" + difff;
|
||
// }
|
||
// difff = matchekc(item.LTE_BAND_TX_HIGH_LOSS, item1.LTE_BAND_TX_HIGH_LOSS);
|
||
// if (difff != "OK")
|
||
// {
|
||
// return "线损的数据index:" + item.index + "LTE_BAND_TX_HIGH_LOSS" + difff;
|
||
// }
|
||
// difff = matchekc(item.LTE_BAND_RX_LOW_LOSS, item1.LTE_BAND_RX_LOW_LOSS);
|
||
// if (difff != "OK")
|
||
// {
|
||
// return "线损的数据index:" + item.index + "LTE_BAND_RX_LOW_LOSS" + difff;
|
||
// }
|
||
// difff = matchekc(item.LTE_BAND_RX_MID_LOSS, item1.LTE_BAND_RX_MID_LOSS);
|
||
// if (difff != "OK")
|
||
// {
|
||
// return "线损的数据index:" + item.index + "LTE_BAND_RX_MID_LOSS" + difff;
|
||
// }
|
||
// difff = matchekc(item.LTE_BAND_RX_HIGH_LOSS, item1.LTE_BAND_RX_HIGH_LOSS);
|
||
// if (difff != "OK")
|
||
// {
|
||
// return "线损的数据index:" + item.index + "LTE_BAND_RX_HIGH_LOSS" + difff;
|
||
// }
|
||
// }
|
||
//}
|
||
//if (!chck)
|
||
//{
|
||
// return "线损的数据index:" + item.index + "未找到对应的记录";
|
||
//}
|
||
var item2 = standardInitestModel.Find(m=>m.several_line_loss == item.several_line_loss);
|
||
if (item2 == null)
|
||
{
|
||
return exc1name+"线损的数据index:" + item.several_line_loss + "在" +exc2name + "未找到对应的记录";
|
||
}
|
||
string difff = "";
|
||
difff = matchekc(item.LTE_BAND_TX_LOW_LOSS, item2.LTE_BAND_TX_LOW_LOSS);
|
||
if (difff != "OK")
|
||
{
|
||
return exc1name + "线损的数据index:" + item.several_line_loss + "对比"+ exc2name + "LTE_BAND_TX_LOW_LOSS" + difff;
|
||
}
|
||
difff = matchekc(item.LTE_BAND_TX_MID_LOSS, item2.LTE_BAND_TX_MID_LOSS);
|
||
if (difff != "OK")
|
||
{
|
||
return exc1name + "线损的数据index:" + item.several_line_loss + "对比" + exc2name + "LTE_BAND_TX_MID_LOSS" + difff;
|
||
}
|
||
difff = matchekc(item.LTE_BAND_TX_HIGH_LOSS, item2.LTE_BAND_TX_HIGH_LOSS);
|
||
if (difff != "OK")
|
||
{
|
||
return exc1name + "线损的数据index:" + item.several_line_loss + "对比" + exc2name + "LTE_BAND_TX_HIGH_LOSS" + difff;
|
||
}
|
||
difff = matchekc(item.LTE_BAND_RX_LOW_LOSS, item2.LTE_BAND_RX_LOW_LOSS);
|
||
if (difff != "OK")
|
||
{
|
||
return exc1name + "线损的数据index:" + item.several_line_loss + "对比" + exc2name + "LTE_BAND_RX_LOW_LOSS" + difff;
|
||
}
|
||
difff = matchekc(item.LTE_BAND_RX_MID_LOSS, item2.LTE_BAND_RX_MID_LOSS);
|
||
if (difff != "OK")
|
||
{
|
||
return exc1name + "线损的数据index:" + item.several_line_loss + "对比" + exc2name + "LTE_BAND_RX_MID_LOSS" + difff;
|
||
}
|
||
difff = matchekc(item.LTE_BAND_RX_HIGH_LOSS, item2.LTE_BAND_RX_HIGH_LOSS);
|
||
if (difff != "OK")
|
||
{
|
||
return "线损的数据index:" + item.several_line_loss + "对比" + exc2name + "LTE_BAND_RX_HIGH_LOSS" + difff;
|
||
}
|
||
}
|
||
return "OK";
|
||
}
|
||
catch (Exception ee)
|
||
{
|
||
return ee.ToString();
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 判断两个数是否相差大于0.3
|
||
/// </summary>
|
||
/// <param name="tvalue1"></param>
|
||
/// <param name="tvalue2"></param>
|
||
/// <returns></returns>
|
||
public string matchekc(string tvalue1,string tvalue2)
|
||
{
|
||
try
|
||
{
|
||
double value1 = double.Parse(tvalue1);
|
||
double value2 = double.Parse(tvalue2);
|
||
double difference = Math.Abs(value1 - value2);
|
||
if (difference >= 0.5)
|
||
{
|
||
return ("差超过0.5");
|
||
}
|
||
//if (difference >= 0.3)
|
||
//{
|
||
// return ("差超过0.3");
|
||
//}
|
||
return "OK";
|
||
}
|
||
catch (Exception ee) {
|
||
return ee.ToString();
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 将共享文件内的文件移动到其他地方
|
||
/// </summary>
|
||
/// <param name="devcode1"></param>
|
||
/// <param name="type"></param>
|
||
/// <param name="snimei"></param>
|
||
/// <returns></returns>
|
||
/// <exception cref="NotImplementedException"></exception>
|
||
public string moveto(string devcode1, string type, string snimei)
|
||
{
|
||
DateTime dt = sql.db3.GetDate();
|
||
string DateStr = dt.ToString("yyyy-MM-dd");
|
||
string path = "\\\\192.168.2.149\\生产数据-2\\制造二课\\制造二课(模组车间)\\中移上传点检\\日常点检\\" + DateStr+"\\"+ devcode1;
|
||
string pathto = "\\\\192.168.2.149\\生产数据-2\\制造二课\\制造二课(模组车间)\\中移上传点检\\日常点检备份\\" + DateStr + "\\" + devcode1;
|
||
|
||
if (!Directory.Exists(path))
|
||
{
|
||
Directory.CreateDirectory(path);
|
||
}
|
||
DirectoryInfo theFolder1 = new DirectoryInfo(path);
|
||
|
||
DirectoryInfo[] dir12 = theFolder1.GetDirectories();
|
||
if (dir12.Length == 0)
|
||
{
|
||
return "OK";
|
||
}
|
||
|
||
if (!Directory.Exists(pathto))
|
||
{
|
||
Directory.CreateDirectory(pathto);
|
||
}
|
||
foreach (DirectoryInfo NextFolder2 in dir12)
|
||
{
|
||
//if (!Directory.Exists(pathto + "\\" + NextFolder2.Name))
|
||
//{
|
||
// Directory.CreateDirectory(pathto + "\\" + NextFolder2.Name);
|
||
//}
|
||
//FileInfo[] dir11 = NextFolder2.GetFiles();
|
||
//foreach (FileInfo NextFolder3 in dir11)
|
||
//{
|
||
// if (Copy_directory(NextFolder3.FullName, pathto + "\\" + NextFolder2.Name))
|
||
// {
|
||
// if (File.Exists(pathto + "\\" + NextFolder2.Name + "\\" + NextFolder3.Name))
|
||
// {
|
||
// File.Delete(pathto + "\\" + NextFolder2.Name + "\\" + NextFolder3.Name);
|
||
// }
|
||
// }
|
||
// else
|
||
// {
|
||
// return "文件上传失败" + NextFolder2.Name;
|
||
// }
|
||
//}
|
||
NextFolder2.MoveTo(pathto + "\\" + NextFolder2.Name);
|
||
}
|
||
return "OK";
|
||
}
|
||
}
|
||
}
|