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.

475 lines
13 KiB
C#

5 months ago
using NewLife.Log;
using WorkerSynReport.Data;
using WorkerSynReport.Plc;
namespace WorkerSynReport;
public class ReportReadDb
{
/// <summary>
/// 解决算法有问题
/// </summary>
/// <param name="deviceno"></param>
/// <param name="entity"></param>
public static void ReadReport()
{
DB2107Helper dB2107Helper = new DB2107Helper();
NormalStatusEntity normal = dB2107Helper.NormalStatus;
if (normal.RdyRpt_D1)
{
XTrace.WriteLine("干混机1读取报表");
InsertD(1);
PlcConnect.Instance.Write("DB2107.5.6", false);
}
if (normal.RdyRpt_D2)
{
XTrace.WriteLine("干混机2读取报表");
InsertD(2);
PlcConnect.Instance.Write("DB2107.5.7", false);
}
if (normal.RdyRpt_D3)
{
XTrace.WriteLine("干混机3读取报表");
InsertD(3);
PlcConnect.Instance.Write("DB2107.6.0", false);
}
if (normal.RdyRpt_D4)
{
XTrace.WriteLine("干混机4读取报表");
InsertD(4);
PlcConnect.Instance.Write("DB2107.6.1", false);
}
if (normal.RdyRpt_G1)
{
XTrace.WriteLine("糊化机1读取报表");
InsertG(1);
PlcConnect.Instance.Write("DB2107.6.2", false);
}
if (normal.RdyRpt_G2)
{
XTrace.WriteLine("糊化机2读取报表");
InsertG(2);
PlcConnect.Instance.Write("DB2107.6.3", false);
}
if (normal.RdyRpt_G3)
{
XTrace.WriteLine("糊化机3读取报表");
InsertG(3);
PlcConnect.Instance.Write("DB2107.6.4", false);
}
if (normal.RdyRpt_G4)
{
XTrace.WriteLine("糊化机4读取报表");
InsertG(4);
PlcConnect.Instance.Write("DB2107.6.5", false);
}
if (normal.RdyRpt_G5)
{
XTrace.WriteLine("糊化机5读取报表");
InsertG(5);
PlcConnect.Instance.Write("DB2107.6.6", false);
}
if (normal.RdyRpt_G6)
{
XTrace.WriteLine("糊化机6读取报表");
InsertG(6);
PlcConnect.Instance.Write("DB2107.6.7", false);
}
if (normal.RdyRpt_G7)
{
XTrace.WriteLine("糊化机7读取报表");
InsertG(7);
PlcConnect.Instance.Write("DB2107.7.0", false);
}
if (normal.RdyRpt_G8)
{
XTrace.WriteLine("糊化机8读取报表");
InsertG(8);
PlcConnect.Instance.Write("DB2107.7.1", false);
}
if (normal.RdyRpt_M1)
{
XTrace.WriteLine("湿混机1读取报表");
InsertM(1);
PlcConnect.Instance.Write("DB2107.7.2", false);
}
if (normal.RdyRpt_M2)
{
XTrace.WriteLine("湿混机2读取报表");
InsertM(2);
PlcConnect.Instance.Write("DB2107.7.3", false);
}
if (normal.RdyRpt_M3)
{
XTrace.WriteLine("湿混机3读取报表");
InsertM(3);
PlcConnect.Instance.Write("DB2107.7.4", false);
}
if (normal.RdyRpt_M4)
{
XTrace.WriteLine("湿混机4读取报表");
InsertM(4);
PlcConnect.Instance.Write("DB2107.7.5", false);
}
if (normal.RdyRpt_M5)
{
XTrace.WriteLine("湿混机5读取报表");
InsertM(5);
PlcConnect.Instance.Write("DB2107.7.6", false);
}
if (normal.RdyRpt_M6)
{
XTrace.WriteLine("湿混机6读取报表");
InsertM(6);
PlcConnect.Instance.Write("DB2107.7.7", false);
}
if (normal.RdyRpt_M7)
{
XTrace.WriteLine("湿混机7读取报表");
InsertM(7);
PlcConnect.Instance.Write("DB2107.8.0", false);
}
if (normal.RdyRpt_M8)
{
XTrace.WriteLine("湿混机8读取报表");
InsertM(8);
PlcConnect.Instance.Write("DB2107.8.1", false);
}
}
private static void InsertD(int no)
{
DB2106Helper dB2106 = new DB2106Helper();
Dryer_ dryer = null;
switch (no)
{
case 1:
dryer = dB2106.DryReport.Dryer_A;
break;
case 2:
dryer = dB2106.DryReport.Dryer_B;
break;
case 3:
dryer = dB2106.DryReport.Dryer_C;
break;
case 4:
dryer = dB2106.DryReport.Dryer_D;
break;
}
Report_Dry dry = new Report_Dry();
List<Report_DryDos_Detail> lsDos = new List<Report_DryDos_Detail>();
List<Report_DryMixer_Detail> lsMix = new List<Report_DryMixer_Detail>();
dry.reportId = Guid.NewGuid().ToString("N");
dry.recipeCode = 0;
dry.recipeName = "";
dry.planCode = 0;
dry.planName = "";
dry.recordTime = DateTime.Now;
dry.dryNo = no;
dry.Batch = 0;
foreach (var item in dryer.Dos)
{
if (item.EqNo != 0)
{
lsDos.Add(new Report_DryDos_Detail()
{
reportId = dry.reportId,
eqNo = item.EqNo,
batch = item.Batch,
matCode = item.MatCode,
setToler = item.SetToler,
setValue = item.SetValue,
actToler = item.ActToler,
actValue = item.ActValue,
recordTime = DateTime.Now
});
}
}
foreach (var item in dryer.Mix)
{
if (item.EqNo != 0)
{
lsMix.Add(new Report_DryMixer_Detail()
{
reportId = dry.reportId,
actCode = item.ActCode,
eqNo = item.EqNo,
mixBatch = item.MixBatch,
mixStep = item.MixStep,
mixSpeed = item.MixSpeed,
mixTemp = item.MixTemp,
mixTime = item.MixTime,
recordTime = DateTime.Now
});
}
}
if (lsDos.Any())
{
dry.Batch = lsDos.Where(x => x.batch > 0).Select(x => x.batch).First();
FreeSqlUnit.Instance.Insert(dry).ExecuteAffrows();
FreeSqlUnit.Instance.Insert(lsDos).ExecuteAffrows();
FreeSqlUnit.Instance.Insert(lsMix).ExecuteAffrows();
}
}
private static void InsertG(int no)
{
DB2106Helper dB2106 = new DB2106Helper();
Gel_ gel = null;
switch (no)
{
case 1:
gel = dB2106.GelReport.Gel_A;
break;
case 2:
gel = dB2106.GelReport.Gel_B;
break;
case 3:
gel = dB2106.GelReport.Gel_C;
break;
case 4:
gel = dB2106.GelReport.Gel_D;
break;
case 5:
gel = dB2106.GelReport.Gel_E;
break;
case 6:
gel = dB2106.GelReport.Gel_F;
break;
case 7:
gel = dB2106.GelReport.Gel_G;
break;
case 8:
gel = dB2106.GelReport.Gel_H;
break;
}
Report_Gel gelDb = new Report_Gel();
gelDb.reportId = Guid.NewGuid().ToString("N");
gelDb.recipeCode = 0;
gelDb.recipeName = "";
gelDb.planCode = 0;
gelDb.planName = "";
gelDb.recordTime = DateTime.Now;
gelDb.gelNo = no;
gelDb.Batch = 0;
List<Report_GelDoser_Detail> lsdetail = new List<Report_GelDoser_Detail>();
List<Report_GelMixing_Detail> lsMixing = new List<Report_GelMixing_Detail>();
var dosList = gel.GelDosing;
foreach (var dos in dosList)
{
if (dos.EqNo != 0)
{
lsdetail.Add(new Report_GelDoser_Detail()
{
eqNo = dos.EqNo,
batch = dos.Batch,
matCode = dos.MatCode,
setValue = dos.SetValue,
setToler = dos.SetToler,
actToLer = dos.ActToler,
actValue = dos.ActValue,
reportId = gelDb.reportId,
recordTime = DateTime.Now,
kinds = 1
});
}
else
{
break;
}
}
var mixList = gel.GelMixing;
foreach (var mix in mixList)
{
if (mix.EqNo != 0)
{
lsMixing.Add(new Report_GelMixing_Detail()
{
eqNo = mix.EqNo,
mixBatch = mix.MixBatch,
mixStep = mix.MixStep,
actCode = mix.ActCode,
mixTime = mix.MixTime,
mixSpeed = mix.MixSpeed,
mixTemp = mix.MixTemp,
reportId = gelDb.reportId,
recordTime = DateTime.Now,
});
}
}
var hotWater = gel.HotWater;
if (hotWater != null)
{
lsdetail.Add(new Report_GelDoser_Detail()
{
eqNo = hotWater.EqNo,
batch = hotWater.Batch,
matCode = hotWater.MatCode,
setValue = hotWater.SetValue,
setToler = hotWater.SetToler,
actToLer = hotWater.ActToler,
actValue = hotWater.ActValue,
reportId = gelDb.reportId,
recordTime = DateTime.Now,
kinds = 2
});
}
var coolWater = gel.CoolWater;
if (coolWater != null)
{
lsdetail.Add(new Report_GelDoser_Detail()
{
eqNo = coolWater.EqNo,
batch = coolWater.Batch,
matCode = coolWater.MatCode,
setValue = coolWater.SetValue,
setToler = coolWater.SetToler,
actToLer = coolWater.ActToler,
actValue = coolWater.ActValue,
reportId = gelDb.reportId,
recordTime = DateTime.Now,
kinds = 3
});
}
if (null != lsdetail && lsdetail.Any())
{
gelDb.Batch = lsdetail.Select(x => x.batch).FirstOrDefault();
FreeSqlUnit.Instance.Insert(gelDb).ExecuteAffrows();
FreeSqlUnit.Instance.Insert(lsdetail).ExecuteAffrows();
FreeSqlUnit.Instance.Insert(lsMixing).ExecuteAffrows();
}
}
private static void InsertM(int no)
{
DB2106Helper dB2106 = new DB2106Helper();
List<Report_WMixE> ls = null;
switch (no)
{
case 1:
ls = dB2106.WetReport.WetMixing_A;
break;
case 2:
ls = dB2106.WetReport.WetMixing_B;
break;
case 3:
ls = dB2106.WetReport.WetMixing_C;
break;
case 4:
ls = dB2106.WetReport.WetMixing_D;
break;
case 5:
ls = dB2106.WetReport.WetMixing_E;
break;
case 6:
ls = dB2106.WetReport.WetMixing_F;
break;
case 7:
ls = dB2106.WetReport.WetMixing_G;
break;
case 8:
ls = dB2106.WetReport.WetMixing_H;
break;
}
Report_WetMixer report = new Report_WetMixer();
report.reportId = Guid.NewGuid().ToString("N");
report.recipeCode = 0;
report.recipeName = "";
report.planCode = 0;
report.planName = "";
report.recordTime = DateTime.Now;
report.reportTime = DateTime.Now;
report.WetNo = no;
report.Batch = report.Batch;
List<Report_WetMixer_Detail> lde = new List<Report_WetMixer_Detail>();
foreach (var item in ls)
{
if (item.EqNo != 0)
{
lde.Add(new Report_WetMixer_Detail()
{
recordTime = DateTime.Now,
reportId = report.reportId,
eqNo = item.EqNo,
mixBatch = item.MixBatch,
mixSpeed = item.MixSpeed,
actCode = item.ActCode,
mixTemp = item.MixTemp,
mixStep = item.MixStep,
mixTime = item.MixTime,
actTolerence = item.ActTolerence,
actWeight = item.ActWeight,
});
}
else
{
break;
}
}
if (lde.Count > 0)
{
report.Batch = lde.Select(x => x.mixBatch).First();
FreeSqlUnit.Instance.Insert(report).ExecuteAffrows();
FreeSqlUnit.Instance.Insert(lde).ExecuteAffrows();
}
}
}