using NewLife.Log; using WorkerSynReport.Data; using WorkerSynReport.Plc; namespace WorkerSynReport; public class ReportReadDb { /// /// 解决算法有问题 /// /// /// 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 lsDos = new List(); List lsMix = new List(); 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 lsdetail = new List(); List lsMixing = new List(); 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 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 lde = new List(); 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(); } } }