using iTextSharp.text.pdf;
|
using iWare_SCADA_BusinessLogical.Utils;
|
using iWare_SCADA_Model;
|
using System;
|
using System.Collections.Generic;
|
using System.Globalization;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using static log4net.Appender.RollingFileAppender;
|
|
namespace iWare_SCADA_BusinessLogical.BLL
|
{
|
public class CommonManager
|
{
|
public static readonly CommonManager Instance = new CommonManager();
|
/// <summary>
|
/// 解析工件号二维码
|
/// </summary>
|
/// <param name="log"></param>
|
/// <returns></returns>
|
public WorkPieceLog GetWorkPieceID(WorkPieceLog log,LogType type)
|
{
|
try
|
{
|
if(log==null|| log.WorkPieceID.Trim().Length!=22)
|
{
|
Log4NetHelper.WriteErrorLog(type, $"解析工件号{CheckNULLForString(log.WorkPieceID)} {log.Id}二维码时出错,二维码格式不对");
|
return log;
|
}
|
log.WorkPieceIDTo1 = log.WorkPieceID.Substring(0, 2);
|
log.WorkPieceIDTo2 = log.WorkPieceID.Substring(2, 4);
|
log.WorkPieceIDTo3 = log.WorkPieceID.Substring(6, 6);
|
log.WorkPieceIDTo4 = log.WorkPieceID.Substring(12, 2);
|
log.WorkPieceIDTo5 = log.WorkPieceID.Substring(14, 4);
|
log.WorkPieceIDTo6 = log.WorkPieceID.Substring(18, 2);
|
log.WorkPieceIDTo7 = log.WorkPieceID.Substring(20, 2);
|
|
}
|
catch(Exception ex)
|
{
|
Log4NetHelper.WriteErrorLog(type, $"解析工件号{CheckNULLForString(log.WorkPieceID)} {log.Id}二维码时异常:", ex);
|
}
|
return log;
|
}
|
public string CheckNULLForString(string str)
|
{
|
return string.IsNullOrEmpty(str) ? "" : str;
|
}
|
public string CheackPath(string path, int type, int time)
|
{
|
var directory = Path.GetDirectoryName(path);
|
if (!Directory.Exists(directory))
|
{
|
Directory.CreateDirectory(directory);
|
}
|
if (!File.Exists(path))
|
{
|
File.Create(path).Close();
|
}
|
|
string content = "";
|
// 同步来源数据
|
using (StreamReader reader = new StreamReader(path))
|
{
|
content = reader.ReadToEnd();
|
|
Console.WriteLine("读取的内容是:" + content);
|
if (content == null || content == "")
|
{
|
switch (type)
|
{
|
case 1: content = DateTimeHelper.GetDateTime().AddYears(time).ToString(); break;
|
case 2: content = DateTimeHelper.GetDateTime().AddMonths(time).ToString(); break;
|
case 3: content = DateTimeHelper.GetDateTime().AddDays(time).ToString(); break;
|
case 4: content = DateTimeHelper.GetDateTime().AddHours(time).ToString(); break;
|
case 5: content = DateTimeHelper.GetDateTime().AddMinutes(time).ToString(); break;
|
case 6: content = DateTimeHelper.GetDateTime().AddSeconds(time).ToString(); break;
|
default:
|
content = DateTimeHelper.GetDateTime().ToString(); break;
|
}
|
//content = DateTimeHelper.GetDateTime().AddMinutes(-10).ToString();
|
}
|
|
}
|
return content;
|
}
|
/// <summary>
|
/// 解析pdf文件
|
/// </summary>
|
/// <param name="filePath"></param>
|
/// <param name="getPdfValue"></param>
|
/// <returns></returns>
|
public static List<string> ReadPdfConntent(string filePath, string getPdfValue)
|
{
|
List<string> lst = new List<string>();
|
try
|
{
|
|
string pdffilename = filePath;
|
PdfReader pdfreader = new PdfReader(pdffilename);
|
int numberOfPages = pdfreader.NumberOfPages;
|
|
//for (int i = 1; i <= numberOfPages; ++i)
|
//{
|
// lst.Add(iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(pdfreader,i));
|
// text.AppendLine();
|
//}
|
|
string text = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(pdfreader, 1);
|
|
string[] words = text.Split('\n');
|
|
foreach (var item in words)
|
{
|
string value = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(item));
|
|
if (value.Contains(getPdfValue))
|
{
|
string[] splitValue = value.Split(':');
|
lst.Add(splitValue[1].Trim());
|
}
|
}
|
|
pdfreader.Close();
|
return lst;
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
public static DateTime? GetOP60Time(string datetime)
|
{
|
|
try
|
{
|
string regex = @"^(\d{1,2})\.(\d{1,2})\.(\d{4})\/(\d{1,2}):(\d{1,2}):(\d{1,2})";
|
var macth = RegexExtension.Match(datetime, regex, 20000);
|
if (macth.Success)
|
{
|
string date = $"{macth.Groups[3].Value}/{macth.Groups[2].Value}/{macth.Groups[1].Value} {macth.Groups[4].Value}:{macth.Groups[5].Value}:{macth.Groups[6].Value}";
|
|
DateTime Time;
|
if (DateTime.TryParseExact(date, "yyyy/MM/dd HH:mm:ss", CultureInfo.CurrentCulture, DateTimeStyles.None, out Time))
|
{
|
return Time;
|
}
|
|
}
|
return null;
|
}
|
catch (Exception ex)
|
{
|
return null;
|
}
|
}
|
}
|
}
|