上传
This commit is contained in:
59
BLL/BLL.csproj
Normal file
59
BLL/BLL.csproj
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{02A200E7-551A-4DD7-B23A-AFAA9DBECF81}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>BLL</RootNamespace>
|
||||
<AssemblyName>BLL</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="SqlSugar, Version=5.0.3.0, Culture=neutral, PublicKeyToken=null" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CheckBLL.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Model\Model.csproj">
|
||||
<Project>{5A80DE64-FCD5-4D7C-8A1E-4199412D80BD}</Project>
|
||||
<Name>Model</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Tool\Tool.csproj">
|
||||
<Project>{cc8994b7-1312-45e6-abda-92413692feb3}</Project>
|
||||
<Name>Tool</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
775
BLL/CheckBLL.cs
Normal file
775
BLL/CheckBLL.cs
Normal file
@ -0,0 +1,775 @@
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
36
BLL/Properties/AssemblyInfo.cs
Normal file
36
BLL/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("BLL")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("BLL")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2024")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("02a200e7-551a-4dd7-b23a-afaa9dbecf81")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
BIN
BLL/bin/Debug/BLL.dll
Normal file
BIN
BLL/bin/Debug/BLL.dll
Normal file
Binary file not shown.
BIN
BLL/bin/Debug/BLL.pdb
Normal file
BIN
BLL/bin/Debug/BLL.pdb
Normal file
Binary file not shown.
BIN
BLL/bin/Debug/Model.dll
Normal file
BIN
BLL/bin/Debug/Model.dll
Normal file
Binary file not shown.
BIN
BLL/bin/Debug/Model.pdb
Normal file
BIN
BLL/bin/Debug/Model.pdb
Normal file
Binary file not shown.
BIN
BLL/bin/Debug/SqlSugar.dll
Normal file
BIN
BLL/bin/Debug/SqlSugar.dll
Normal file
Binary file not shown.
BIN
BLL/bin/Debug/Tool.dll
Normal file
BIN
BLL/bin/Debug/Tool.dll
Normal file
Binary file not shown.
BIN
BLL/bin/Debug/Tool.pdb
Normal file
BIN
BLL/bin/Debug/Tool.pdb
Normal file
Binary file not shown.
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5.2", FrameworkDisplayName = ".NET Framework 4.5.2")]
|
BIN
BLL/obj/Debug/BLL.csproj.AssemblyReference.cache
Normal file
BIN
BLL/obj/Debug/BLL.csproj.AssemblyReference.cache
Normal file
Binary file not shown.
1
BLL/obj/Debug/BLL.csproj.CoreCompileInputs.cache
Normal file
1
BLL/obj/Debug/BLL.csproj.CoreCompileInputs.cache
Normal file
@ -0,0 +1 @@
|
||||
b1a84f9457003ac7d2ad72352989e29f41b8275d375cf8d680061b79df40335e
|
11
BLL/obj/Debug/BLL.csproj.FileListAbsolute.txt
Normal file
11
BLL/obj/Debug/BLL.csproj.FileListAbsolute.txt
Normal file
@ -0,0 +1,11 @@
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\bin\Debug\BLL.dll
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\bin\Debug\BLL.pdb
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\obj\Debug\BLL.csproj.AssemblyReference.cache
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\obj\Debug\BLL.csproj.CoreCompileInputs.cache
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\obj\Debug\BLL.dll
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\obj\Debug\BLL.pdb
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\bin\Debug\Model.dll
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\bin\Debug\Tool.dll
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\bin\Debug\Model.pdb
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\bin\Debug\Tool.pdb
|
||||
D:\桌面文件夹\Desktop\中移版本库\金机点检\BLL\obj\Debug\BLL.csproj.Up2Date
|
0
BLL/obj/Debug/BLL.csproj.Up2Date
Normal file
0
BLL/obj/Debug/BLL.csproj.Up2Date
Normal file
BIN
BLL/obj/Debug/BLL.dll
Normal file
BIN
BLL/obj/Debug/BLL.dll
Normal file
Binary file not shown.
BIN
BLL/obj/Debug/BLL.pdb
Normal file
BIN
BLL/obj/Debug/BLL.pdb
Normal file
Binary file not shown.
BIN
BLL/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Normal file
BIN
BLL/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Normal file
Binary file not shown.
Reference in New Issue
Block a user