diff --git a/Analysis/CenterControl.cs b/Analysis/CenterControl.cs index c6ab28a..93809ad 100644 --- a/Analysis/CenterControl.cs +++ b/Analysis/CenterControl.cs @@ -2,6 +2,7 @@ using DAL; using HslCommunication.Profinet.Siemens; using Newtonsoft.Json; +using NSAnalysis; using NSAnalysis.Properties; using PLCModule; using System; @@ -14,6 +15,7 @@ using System.Linq; using System.Net; using System.Text; using System.Threading; +using System.Threading.Tasks; using System.Windows.Forms; using Telerik.WinControls; using Telerik.WinControls.UI; @@ -24,14 +26,11 @@ namespace NSAnalysis /// /// /// - /// - /// /// 2025.08.29 ---------------------------------------------------- - /// 1、增加对 生成报告数据的备份 √ - /// 2、增加对上传json的记录和重发 - /// 3、增加对 PLC启动测量信号的判断 4、PLC通讯阻塞问题 - /// - /// + /// 1、增加对 生成报告数据的备份 、上传情况的记录√ + /// 2、增加对IOT json报文 上传情况的记录√ + /// 3、增加对 PLC 传输过点信号的 记录 (抵达,测量,离开) √ + /// 4、PLC通讯阻塞问题 √ /// /// /// @@ -110,11 +109,6 @@ namespace NSAnalysis #endregion 全局变量 - // 定义三个文件路径,分别存储 plc, csv 和iot过点数据,位于程序运行目录下 plc.csv iot.csv nextsense.csv - private string strPlcDataPath = Application.StartupPath + "\\plc.csv"; - - private string strIotDataPath = Application.StartupPath + "\\iot.csv"; - private string strNextsenseDataPath = Application.StartupPath + "\\nextsense.csv"; #region 主窗口事件 @@ -442,7 +436,7 @@ namespace NSAnalysis /// /// 解析EH3 CSV文件函数;后续如果Nextsense的csv报告模板变了,修改该函数的行号即可LineNum wsp /// - private void AnalysisNextSenseEH3CSV() + private void AnalysisNextSenseEH3CSV() // 解析EH3 车型 { try { @@ -525,8 +519,7 @@ namespace NSAnalysis MyBase.TraceWriteLine("在数据库表TTempSaveVIN中删除该VIN:" + strCarID); } - // 向 strNextsenseDataPath 文件中插入数据 strCarID - AppendRecord(strCarID, strNextsenseDataPath); + } if (LineNum >= 19) { @@ -839,16 +832,19 @@ namespace NSAnalysis strCaliResult = "NG"; } string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"" + strCarID + "\",\"model\":\"EH3\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"" + strCaliResult + "\",\"detectionTime\":\"" + ConfigDfn.strMeasureTime + "\",\"targetRate\":\"" + strTargetRate + "\",\"rate\":\"" + labResultPercent.Text + "\",\"GapList\":" + strGapList + "}]}"; + MyBase.TraceWriteLine("Update To IOT Data Content: " + strPostData); string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); MyBase.TraceWriteLine("EH3数据上传IOT完成,结果返回为:" + strPostResult); if (strPostResult.Contains("成功")) { MyBase.TraceWriteLine("EH3数据上传IOT成功 ^_^"); + tmdal.InsertIOTUploadLog(strCarID, strPostData, true, labResultPercent.Text); } else { MyBase.TraceWriteLine("EH3数据上传IOT失败!"); + tmdal.InsertIOTUploadLog(strCarID, strPostData, false, labResultPercent.Text); } #endregion IOT上传功能 @@ -874,7 +870,7 @@ namespace NSAnalysis } } - private void AnalysisNextSenseEHYCSV() + private void AnalysisNextSenseEHYCSV() //解析EHY 车型 { try { @@ -957,8 +953,7 @@ namespace NSAnalysis MyBase.TraceWriteLine("在数据库表TTempSaveVIN中删除该VIN:" + strCarID); } - // 向 strNextsenseDataPath 文件中插入数据 strCarID - AppendRecord(strCarID, strNextsenseDataPath); + } if (LineNum >= 19) { @@ -1264,16 +1259,21 @@ namespace NSAnalysis strCaliResult = "NG"; } string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"" + strCarID + "\",\"model\":\"EHY\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"" + strCaliResult + "\",\"detectionTime\":\"" + ConfigDfn.strMeasureTime + "\",\"targetRate\":\"" + strTargetRate + "\",\"rate\":\"" + labResultPercent.Text + "\",\"GapList\":" + strGapList + "}]}"; + MyBase.TraceWriteLine("Update To IOT Data Content: " + strPostData); string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); MyBase.TraceWriteLine("EHY数据上传IOT完成,结果返回为:" + strPostResult); if (strPostResult.Contains("成功")) { MyBase.TraceWriteLine("EHY数据上传IOT成功 ^_^"); + + tmdal.InsertIOTUploadLog(strCarID, strPostData, true, labResultPercent.Text); } else { MyBase.TraceWriteLine("EHY数据上传IOT失败!"); + + tmdal.InsertIOTUploadLog(strCarID, strPostData, false, labResultPercent.Text); } } } @@ -1562,24 +1562,24 @@ namespace NSAnalysis // 将数据写入CSV文件 File.WriteAllText(backupPath, sb.ToString()); // 记录日志,说明备份成功 - MyBase.TraceWriteLine("客户EHY csv报告备份完毕,路径为:" + backupPath); + MyBase.TraceWriteLine("客户 csv报告备份完毕,路径为:" + backupPath); // 往目标路径copy该文件,并记录是否成功 try { File.Copy(backupPath, targetFilePath, true); - if (File.Exists(targetFilePath)) - { - MyBase.TraceWriteLine("客户csv报告生成并复制成功,路径为:" + targetFilePath); - } - else - { - MyBase.TraceWriteLine("客户csv报告复制失败,目标文件不存在:" + targetFilePath); - } + + // 记录上传情况 + bool isUploaded = true; + tmdal.InsertCsvReportUploadLog(strCarID, targetFilePath, backupPath, isUploaded); } catch (Exception ex) { MyBase.TraceWriteLine("客户csv报告复制异常:" + ex.Message); + + // 记录上传情况 + bool isUploaded = false; + tmdal.InsertCsvReportUploadLog(strCarID, targetFilePath, backupPath, isUploaded); } #endregion 解析完报告后,重新生成客户模板报告 @@ -2365,7 +2365,28 @@ namespace NSAnalysis private void tmrReadPLCData_Tick(object sender, EventArgs e) { tmrReadPLCData.Stop(); + // 使用 Task.Run 在后台线程处理PLC数据 + Task.Run(() => + { + try + { + // 这里是原有的PLC数据读取和处理逻辑 + ReadAndProcessPlcData(); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("tmrReadPLCData_Tick exception: " + ex.ToString()); + } + finally + { + // 回到UI线程,安全启动定时器 + this.BeginInvoke((Action)(() => tmrReadPLCData.Start())); + } + }); + } + private void ReadAndProcessPlcData() + { #region 判断PLC是否正常运行 if (ConfigPlc.PlcType == 3 && ConfigPlc.bReConnect && !HslSiemensS7Obj.bConnected) @@ -2399,8 +2420,11 @@ namespace NSAnalysis { PLCDfn.bPlcLiveTick = PlcObject.GetS7ByteData(PlcSignalDfn.PlcLive) == 1; PLCDfn.ReadVINFinishFlag = PlcObject.GetS7ByteData(PlcSignalDfn.ReadVINFinishFlag); + PLCDfn.NSStartMeasure = PlcObject.GetS7ByteData(PlcSignalDfn.NSStartMeasure); + PLCDfn.CarPassFlag = PlcObject.GetS7ByteData(PlcSignalDfn.CarPassFlag); + //从PLC获取VIN码后,通过访问IOT接口 获取汽车类型,再反馈给PLC - if (iLastReadVINFinishFlag == 0 && PLCDfn.ReadVINFinishFlag == 10) + if (iLastReadVINFinishFlag == 0 && PLCDfn.ReadVINFinishFlag == 10) //到达信号 { string strCarID = PlcObject.GetS7StringData(PlcSignalDfn.PartID); //PLCDfn.CarType = PlcObject.GetS7ByteData(PlcSignalDfn.CarType); @@ -2423,6 +2447,26 @@ namespace NSAnalysis MyBase.TraceWriteLine("往PLC写入车型: " + strCarType + " ;车身颜色:" + strCarColor); tmdal.InsertVIN(strCarID); MyBase.TraceWriteLine(strCarID + " 插入到数据库表TTempSaveVIN中完成。"); + + #region 记录PLC过点信息 + try + { + DateTime arriveTime = DateTime.Now; + if (tmdal.ExistsArriveLog(strCarID, arriveTime) == 0) + { + tmdal.InsertArriveLog(strCarID, arriveTime); + } + else + { + MyBase.TraceWriteLine($"车辆 {strCarID} 当天已存在抵达记录,未重复插入。"); + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("记录PLC过点信息异常,异常信息: " + ex.ToString()); + } + + #endregion } else { @@ -2430,8 +2474,36 @@ namespace NSAnalysis } } } - PLCDfn.CarPassFlag = PlcObject.GetS7ByteData(PlcSignalDfn.CarPassFlag); - if (iLastCarPassFlag == 0 && PLCDfn.CarPassFlag == 10) + + if (iLastNSStartMeasure == 0 && PLCDfn.NSStartMeasure == 10) //启动测量信号 + { + string strCarID = PlcObject.GetS7StringData(PlcSignalDfn.PartID); + if (strCarID.Length > 10) + { + // 记录日志,此时该车开始测量 + MyBase.TraceWriteLine($" {strCarID} 机器人安全判断合格,启动NXS测量"); + + #region 记录PLC过点信息 + // 记录启动测量时间 + try + { + DateTime measureStartTime = DateTime.Now; + tmdal.UpdateStartMeasureTime(strCarID, measureStartTime); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("记录测量开始时间异常,异常信息: " + ex.ToString()); + } + #endregion + } + else + { + //记录日志,获取到启动测量信号,但没有获取 车号 + MyBase.TraceWriteLine("报错:获取到启动NXS测量信号,但没有获取 车号 "); + } + } + + if (iLastCarPassFlag == 0 && PLCDfn.CarPassFlag == 10) //离开信号 { string strCarID = PlcObject.GetS7StringData(PlcSignalDfn.PartID); MyBase.TraceWriteLine("读取PLC CarPassFlag 完成信号:0->10;Read PLC VIN is: " + strCarID); @@ -2449,7 +2521,34 @@ namespace NSAnalysis MyBase.TraceWriteLine("Update NG To IOT Data Content: " + strPostData); string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); MyBase.TraceWriteLine("NG数据上传IOT完成,结果返回为:" + strPostResult); + + if (strPostResult.Contains("成功")) + { + MyBase.TraceWriteLine("NG数据上传IOT成功 ^_^"); + + tmdal.InsertIOTUploadLog(strCarID, strPostData, true, "0.00"); + } + else + { + MyBase.TraceWriteLine("NG数据上传IOT失败!"); + + tmdal.InsertIOTUploadLog(strCarID, strPostData, false, "0.00"); + } } + + #region 记录PLC过点信息 + + try + { + DateTime leaveTime = DateTime.Now; + tmdal.UpdateLeaveTime(strTempCarID, leaveTime); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("记录PLC过点信息异常,异常信息: " + ex.ToString()); + } + + #endregion } if (!string.IsNullOrEmpty(strCarID) && strCarID.Length > 10) @@ -2500,6 +2599,8 @@ namespace NSAnalysis MyBase.TraceWriteLine("CarPassFlag 0->10 更新到MaintenceInfo数据库位置1中的VIN为:empty "); } } + + //记录编码器速度等值 if (ConfigDfn.iRecordEncoderFlag == 1) { double dSpeed1 = PlcObject.GetS7Double(PlcSignalDfn.Speed1); @@ -2511,14 +2612,13 @@ namespace NSAnalysis } iLastCarPassFlag = PLCDfn.CarPassFlag; iLastReadVINFinishFlag = PLCDfn.ReadVINFinishFlag; + iLastNSStartMeasure = PLCDfn.NSStartMeasure; #endregion 循环读取PLC数据块中的信息 } catch (Exception ex) { MyBase.TraceWriteLine("tmrReadPLCData_Tick exception: " + ex.ToString()); } - - tmrReadPLCData.Start(); } private void tmrRefreshPLCStatus_Tick(object sender, EventArgs e) @@ -2557,8 +2657,27 @@ namespace NSAnalysis private void tmrWritePLCLive_Tick(object sender, EventArgs e) { - bTickt = !bTickt; - PlcObject.InsertWriteQueue(PlcSignalDfn.SoftLive, Convert.ToByte(bTickt ? 1 : 0)); + // 停止定时器,防止重入 + tmrWritePLCLive.Stop(); + + // 在后台线程写入PLC心跳信号 + Task.Run(() => + { + try + { + bTickt = !bTickt; + PlcObject.InsertWriteQueue(PlcSignalDfn.SoftLive, Convert.ToByte(bTickt ? 1 : 0)); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("tmrWritePLCLive_Tick exception: " + ex.ToString()); + } + finally + { + // 回到UI线程,安全启动定时器 + this.BeginInvoke((Action)(() => tmrWritePLCLive.Start())); + } + }); } private void ReConnectPLC() @@ -2677,6 +2796,10 @@ namespace NSAnalysis { string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"test001\",\"model\":\"EHY\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"OK\",\"detectionTime\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"GapList\":[{\"vin\":\"test001\",\"gfNo\":\"F\",\"pointNumber\":\"L-01\",\"actualValue\":\"-0.30\",\"controlLine\":\"-1.00/1.00\",\"measurementResult\":\"OK\"}]}]}"; MyBase.TraceWriteLine("Test Post Data: " + strPostData); + + //插入记录测试 + tmdal.InsertIOTUploadLog("test001", strPostData, true, labResultPercent.Text); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); MessageBox.Show("测试上传数据完成,获取到的返回值为: " + strPostResult, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); MyBase.TraceWriteLine("测试上传数据完成,获取到的返回值为: " + strPostResult); @@ -3116,25 +3239,7 @@ namespace NSAnalysis } } - public static void AppendRecord(string id, string filePath) - { - try - { - // 如果文件不存在则创建并写入标题行 - if (!File.Exists(filePath)) - { - File.WriteAllText(filePath, "ID,RecordTime\n"); - } - // 追加新记录(ID + 当前时间戳) - string record = $"{id},{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}\n"; - File.AppendAllText(filePath, record); - } - catch (Exception ex) - { - Console.WriteLine($"写入CSV失败: {ex.Message}"); - } - } } public class CheryIOTData diff --git a/Analysis/bin/x64/Debug/DAL.dll b/Analysis/bin/x64/Debug/DAL.dll index 95759f1..493f22e 100644 Binary files a/Analysis/bin/x64/Debug/DAL.dll and b/Analysis/bin/x64/Debug/DAL.dll differ diff --git a/Analysis/bin/x64/Debug/DAL.pdb b/Analysis/bin/x64/Debug/DAL.pdb index 157f6cf..ad2c28e 100644 Binary files a/Analysis/bin/x64/Debug/DAL.pdb and b/Analysis/bin/x64/Debug/DAL.pdb differ diff --git a/Analysis/bin/x64/Debug/Debug.txt b/Analysis/bin/x64/Debug/Debug.txt index d2687c9..ea95a79 100644 --- a/Analysis/bin/x64/Debug/Debug.txt +++ b/Analysis/bin/x64/Debug/Debug.txt @@ -1,34 +1,26 @@ -2025-08-29 22:53:21.911----软件Program Main函数开始执行-- -2025-08-29 22:53:22.122--加载配置文件——>开始 -2025-08-29 22:53:22.436--数据库连接 SqlServerName:127.0.0.1 -2025-08-29 22:53:22.545--数据库连接 SqlUserName:sa -2025-08-29 22:53:22.573--数据库连接 SqlPassword:Hexagon123 -2025-08-29 22:53:22.576--数据库连接 SqlDbName:NextSenseStandardDB -2025-08-29 22:53:22.625--加载配置文件——>完成 -2025-08-29 22:53:22.666--Log in using the original authorization mode. -2025-08-29 22:53:24.548--软件授权成功 -2025-08-29 22:53:27.359--数据库连接 SqlServerName:127.0.0.1 -2025-08-29 22:53:27.361--数据库连接 SqlUserName:sa -2025-08-29 22:53:27.362--数据库连接 SqlPassword:Hexagon123 -2025-08-29 22:53:27.363--数据库连接 SqlDbName:NextSenseStandardDB -2025-08-29 22:53:27.364--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=NextSenseStandardDB;User ID=sa;password=Hexagon123; -2025-08-29 22:53:28.309-- 进入显示车身模式!显示车身界面。 -2025-08-29 22:53:29.581--启动PLC写线程! -2025-08-29 22:53:29.583-- 进入解析CSV文件模式,开始解析扫码CSV文件! -2025-08-29 22:53:29.585--连接PLC.... -2025-08-29 22:53:29.586--软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 -2025-08-29 22:53:29.588--软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY -2025-08-29 22:53:31.222--Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 -2025-08-29 22:53:31.257--Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 -2025-08-29 22:53:31.753--PLC S7连接失败。 -2025-08-29 22:53:32.612--显示右侧EHY车身数据界面。 -2025-08-29 22:53:32.619--连接PLC失败 -2025-08-29 22:55:12.952--Test Post Data: {"serno":"312314141","vin":"LNNAJDDU9RDA00213"} -2025-08-29 22:55:24.984--测试从IOT获取车型信息完成,获取到的原返回值为: Error: System.Net.WebException: 操作超时 - 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) - 在 System.Net.HttpWebRequest.GetRequestStream() - 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\Analysis\CenterControl.cs:行号 1598 -2025-08-29 22:55:25.831--测试从IOT获取车型信息完成,处理后 获取到的返回值为: rror: System.Net.WebException: 操作超时 - 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) - 在 System.Net.HttpWebRequest.GetRequestStream() - 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\Analysis\CenterControl.cs:行号 159 +2025-08-30 01:04:59.360----软件Program Main函数开始执行-- +2025-08-30 01:04:59.362--加载配置文件——>开始 +2025-08-30 01:04:59.389--数据库连接 SqlServerName:127.0.0.1 +2025-08-30 01:04:59.390--数据库连接 SqlUserName:sa +2025-08-30 01:04:59.390--数据库连接 SqlPassword:Hexagon123 +2025-08-30 01:04:59.391--数据库连接 SqlDbName:NextSenseStandardDB +2025-08-30 01:04:59.392--加载配置文件——>完成 +2025-08-30 01:04:59.393--Log in using the original authorization mode. +2025-08-30 01:05:01.417--软件授权成功 +2025-08-30 01:05:02.833--数据库连接 SqlServerName:127.0.0.1 +2025-08-30 01:05:02.834--数据库连接 SqlUserName:sa +2025-08-30 01:05:02.834--数据库连接 SqlPassword:Hexagon123 +2025-08-30 01:05:02.835--数据库连接 SqlDbName:NextSenseStandardDB +2025-08-30 01:05:02.836--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=NextSenseStandardDB;User ID=sa;password=Hexagon123; +2025-08-30 01:05:03.221-- 进入显示车身模式!显示车身界面。 +2025-08-30 01:05:03.999--启动PLC写线程! +2025-08-30 01:05:04.001-- 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-08-30 01:05:04.002--连接PLC.... +2025-08-30 01:05:04.003--软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-08-30 01:05:04.004--软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-08-30 01:05:04.102--PLC S7连接成功。 +2025-08-30 01:05:16.779--连接PLC成功 +2025-08-30 01:05:17.133--Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-08-30 01:05:17.155--Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-08-30 01:05:24.770--显示右侧EHY车身数据界面。 +2025-08-30 01:05:26.498---------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/NSAnalysis.exe b/Analysis/bin/x64/Debug/NSAnalysis.exe index b4ab58d..918d874 100644 Binary files a/Analysis/bin/x64/Debug/NSAnalysis.exe and b/Analysis/bin/x64/Debug/NSAnalysis.exe differ diff --git a/Analysis/bin/x64/Debug/NSAnalysis.pdb b/Analysis/bin/x64/Debug/NSAnalysis.pdb index 950fcf1..dba47ef 100644 Binary files a/Analysis/bin/x64/Debug/NSAnalysis.pdb and b/Analysis/bin/x64/Debug/NSAnalysis.pdb differ diff --git a/DAL/TMeasureMSSQLDAL.cs b/DAL/TMeasureMSSQLDAL.cs index 423f595..c2261e6 100644 --- a/DAL/TMeasureMSSQLDAL.cs +++ b/DAL/TMeasureMSSQLDAL.cs @@ -10,457 +10,575 @@ using System.Data.SqlClient; namespace DAL { - public class TMeasureMSSQLDAL - { - #region Select Function + public class TMeasureMSSQLDAL + { + #region Select Function - public int SelectTMeasureResultCount() - { - string strSql = "select COUNT(*) from TMeasureResult"; - DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return int.Parse(dt.Rows[0][0].ToString()); - } - - public string SelectNo6MeasureResult() - { - string strSql = "select top 6 CarID from TMeasureResult order by MeasureDate desc"; - DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt.Rows[5][0].ToString(); - } - - public DataTable SelectNewestTMeasureResult() - { - string strSql = "select top(1) Id,CarID,MeasureDate,Remark from TMeasureResult order by MeasureDate DESC"; - DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public DataTable SelectTMeasureDataByVIN(string strVIN) - { - string strSql = "select * from TMeasureData where CarID ='" + strVIN + "'"; - DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - - public string SelectOneMeasureValueByCondition(string strCarID, string strMeaPointName, string strDimensionName="G") - { - DataTable dt = new DataTable(); - string strSql = "select MeasureValue from TMeasureData where CarID = '" + strCarID + "' and MeasPointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows.Count>=1) //有可能存在解析两次导致查询两次的问题 - { - return dt.Rows[0][0].ToString(); - } - else - { - return "NoFind"; - } - } - - public bool CheckVINExistInDB(string strVIN) - { - bool bReusult = false; - string strSql = "select Id from TMeasureResult where CarID = '" + strVIN + "'"; - DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows.Count >= 2) - { - bReusult = true; - } - return bReusult; - } - public string SelectCarTypeByVIN(string strVIN) - { - - string strSql = "select CarType from TMeasureResult where CarID = '" + strVIN + "'"; - DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows.Count >= 1) - { - return dt.Rows[0][0].ToString(); - } - else - { - return "unknown"; - } - } - public DataTable SelectMeasureValuebyMeasureNameAndSize(string strMeasureName, string strSizeName, int topCount) - { - string strSql = "select top " + topCount.ToString() + " MeasureValue,NormalValue ,LowerTolVal,UpperTolVal from TMeasureData where MeasPointName='" + strMeasureName + "' and DimensionName='" + strSizeName + "' order by MeasureDate DESC "; - return SQLHelper.ExecuteQuery(strSql, CommandType.Text); - } - - public DataTable SelectAllMeasPointName() - { - string strSql = "select distinct MeasPointName from TMeasureData"; - return SQLHelper.ExecuteQuery(strSql, CommandType.Text); - } - - public DataTable SelectTMeasureDataByCarIDAndTime(string strCarID, string strStartTime, string strEndTime) - { - DataTable dt = new DataTable(); - string strSql = "select CarID, MeasPointName,DimensionName,NormalValue ,LowerTolVal,UpperTolVal,MeasureValue, MeasureDate, MeasureItemResult from TMeasureData where CarID like '%" + strCarID + "%' and MeasureDate >= '" + strStartTime + "' and MeasureDate <= '" + strEndTime + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public DataTable SelectTMeasureDataByCarIDAndMPN(string strCarID, string strMeaPointName) - { - DataTable dt = new DataTable(); - string strSql = "select MeasPointName,DimensionName,LowerTolVal,UpperTolVal,MeasureValue, MeasureItemResult,Remark from TMeasureData where CarID like '%" + strCarID + "%' and MeasPointName like '%" + strMeaPointName + "%' COLLATE Chinese_PRC_CS_AI_WS "; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - public DataTable SelectMeasureItems(string strCarID, string strMeaPointName) - { - DataTable dt = new DataTable(); - string strSql = "select distinct MeasPointName from TMeasureData where CarID like '%" + strCarID + "%' and MeasPointName like '%" + strMeaPointName + "%' COLLATE Chinese_PRC_CS_AI_WS "; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public DataTable SelectAllTMeasureResult() - { - DataTable dt = new DataTable(); - string strSql = "select * from TMeasureResult"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public DataTable SelectTMeasureResultByTime(string strCarID, string strStartTime, string strEndTime) - { - DataTable dt = new DataTable(); - string strSql = "select CarID,SumMeasureItems,GoodMeasureItems,NoGoodMeasureItems,RejectMeasureItems,FPY,MeasureDate,case Result when 1 then '合格' else '不合格' end as Result from TMeasureResult where CarID like '%" + strCarID + "%' and MeasureDate >= '" + strStartTime + "' and MeasureDate <= '" + strEndTime + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public string SelectMaintenanceStation7VIN() - { - DataTable dt = new DataTable(); - string strSql = "select Station7PartID from MaintenanceInfo where Id=1"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt.Rows[0][0].ToString(); - } - public string SelectMaintenanceStationVINbyStationNo(int sno) - { - DataTable dt = new DataTable(); - string strSql = ""; - switch (sno) - { - case 1: - strSql = "select Station1PartID from MaintenanceInfo where Id=1"; - break; - case 2: - strSql = "select Station2PartID from MaintenanceInfo where Id=1"; - break; - case 3: - strSql = "select Station3PartID from MaintenanceInfo where Id=1"; - break; - case 4: - strSql = "select Station4PartID from MaintenanceInfo where Id=1"; - break; - case 5: - strSql = "select Station5PartID from MaintenanceInfo where Id=1"; - break; - case 6: - strSql = "select Station6PartID from MaintenanceInfo where Id=1"; - break; - case 7: - strSql = "select Station7PartID from MaintenanceInfo where Id=1"; - break; - } - if (strSql == "") - { - return "empty"; - } - else - { - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows[0][0] == null) - { - return "empty"; - } - else - { - return dt.Rows[0][0].ToString(); - } - - } - } - - public DataTable SelectAllToleranceByCondition(string strCartType, string strMeaPointName, string strDimensionName) - { - DataTable dt = new DataTable(); - string strSql = "select Id,CarType,MeasurePointName,DimensionName,TolLower,TolUpper, Remark from TTolerance where CarType like '%" + strCartType + "%' and MeasurePointName like '%" + strMeaPointName + "%' and DimensionName like '%" + strDimensionName + "%'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public DataTable SelectAllRangeByCondition(string strCartType, string strMeaPointName) - { - DataTable dt = new DataTable(); - string strSql = "select Id,CarType,RangeName,RangePoint,RangeLower,RangeUpper, Remark from TRange where CarType like '%" + strCartType + "%' and RangeName like '%" + strMeaPointName + "%' "; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public DataTable SelectOneToleranceByCondition(string strCartType, string strMeaPointName, string strDimensionName) - { - DataTable dt = new DataTable(); - string strSql = "select TolLower,TolUpper from TTolerance where CarType = '" + strCartType + "' and MeasurePointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - - public DataTable SelectRangeDatabyCarID(string strCarID) - { - DataTable dt = new DataTable(); - string strSql = "select * from TRangeData where CarID = '" + strCarID + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - public DataTable SelectRangeByCarType(string strCarType) - { - DataTable dt = new DataTable(); - string strSql = "select RangeName,RangePoint,RangeLower,RangeUpper from TRange where CarType = '" + strCarType + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - return dt; - } - public bool CheckMeaPointNameExit(string strCartType, string strMeaPointName, string strDimensionName) - { - DataTable dt = new DataTable(); - string strSql = "select Id,CarType,MeasurePointName,DimensionName,TolLower,TolUpper, Remark from TTolerance where CarType = '" + strCartType + "' and MeasurePointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows.Count > 0) - { - return true; - } - else - { - return false; - } - } - - public bool CheckRangeNameExit(string strCartType, string strRangeName) - { - DataTable dt = new DataTable(); - string strSql = "select Id,CarType from TRange where CarType = '" + strCartType + "' and RangeName = '" + strRangeName + "'" ; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows.Count > 0) - { - return true; - } - else - { - return false; - } - } - public string SelectVINByCSVVIN(string strCSVVIN) - { - DataTable dt = new DataTable(); - string strSql = "select CarVIN from TTempSaveVIN where CarVIN like '%" + strCSVVIN + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows.Count >= 1) - return dt.Rows[0][0].ToString(); - else - { - return "NoFind"; - } - } - - public int CheckMRVINExistOrNotByVIN(string strVIN) // 25.08.27 数据分析到右两次过点记录,导致数据中存在两条相同VIN的记录,这里将 只有一条修改为 >= + public int SelectTMeasureResultCount() { - DataTable dt = new DataTable(); - string strSql = "select CarID from TMeasureResult where CarID = '" + strVIN + "'"; - dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); - if (dt.Rows.Count >= 1) - return 1; - else - { - return 0; - } - } - #endregion + string strSql = "select COUNT(*) from TMeasureResult"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return int.Parse(dt.Rows[0][0].ToString()); + } - #region Insert Function - public int InsertVIN(string strVIN) - { - string strSql = "insert into TTempSaveVIN (CarVIN) values ('" + strVIN + "')"; - return SQLHelper.ExecuteNonQuery(strSql, CommandType.Text); - } + public string SelectNo6MeasureResult() + { + string strSql = "select top 6 CarID from TMeasureResult order by MeasureDate desc"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt.Rows[5][0].ToString(); + } - public int InsertTTolerance(TToleranceModel ttm) - { - string strSql = "insert into TTolerance (CarType,MeasurePointName,DimensionName,TolLower,TolUpper,CreateTime,Remark) values " + - "(@CarType,@MeasurePointName,@DimensionName,@TolLower,@TolUpper,@CreateTime,@Remark)"; - SqlParameter[] paras = new SqlParameter[] - { - new SqlParameter("@CarType",ttm.CarType), - new SqlParameter("@MeasurePointName",ttm.MeasurePointName), - new SqlParameter("@DimensionName",ttm.DimensionName), - new SqlParameter("@TolLower",ttm.TolLower), - new SqlParameter("@TolUpper",ttm.TolUpper), - new SqlParameter("@CreateTime",ttm.CreateTime), - new SqlParameter("@Remark",ttm.Remark), - }; - return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); - } + public DataTable SelectNewestTMeasureResult() + { + string strSql = "select top(1) Id,CarID,MeasureDate,Remark from TMeasureResult order by MeasureDate DESC"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } - public int InsertNewRange(TRangeModel ttm) - { - string strSql = "insert into TRange (CarType,RangeName,RangePoint,RangeLower,RangeUpper,CreateTime,Remark) values " + - "(@CarType,@RangeName,@RangePoint,@RangeLower,@RangeUpper,@CreateTime,@Remark)"; - SqlParameter[] paras = new SqlParameter[] - { - new SqlParameter("@CarType",ttm.CarType), - new SqlParameter("@RangeName",ttm.RangeName), - new SqlParameter("@RangePoint",ttm.RangePoint), - new SqlParameter("@RangeLower",ttm.RangeLower), - new SqlParameter("@RangeUpper",ttm.RangeUpper), - new SqlParameter("@CreateTime",ttm.CreateTime), - new SqlParameter("@Remark",ttm.Remark), - }; - return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); - } - public int InsertTMeasureResult(TMeasureResultModel tmrm) - { - string strSql = "insert into TMeasureResult (CarID,CarType,SumMeasureItems,GoodMeasureItems,NoGoodMeasureItems,RejectMeasureItems,FPY,MeasureDate,Result,Remark) values " + - "(@CarID,@CarType,@SumMeasureItems,@GoodMeasureItems,@NoGoodMeasureItems,@RejectMeasureItems,@FPY,@MeasureDate,@Result,@Remark)"; - SqlParameter[] paras = new SqlParameter[] - { - new SqlParameter("@CarID",tmrm.CarID), - new SqlParameter("@CarType",tmrm.CarType), - new SqlParameter("@SumMeasureItems",tmrm.SumMeasureItems), - new SqlParameter("@GoodMeasureItems",tmrm.GoodMeasureItems), - new SqlParameter("@NoGoodMeasureItems",tmrm.NoGoodMeasureItems), - new SqlParameter("@RejectMeasureItems",tmrm.RejectMeasureItems), - new SqlParameter("@FPY",tmrm.FPY), - new SqlParameter("@MeasureDate",tmrm.MeasureDate), - new SqlParameter("@Result",tmrm.Result), - new SqlParameter("@Remark",tmrm.Remark), - }; - return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); - } + public DataTable SelectTMeasureDataByVIN(string strVIN) + { + string strSql = "select * from TMeasureData where CarID ='" + strVIN + "'"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } - public int InsertTMeasureDatabyDataTable(DataTable dt) - { - return SQLHelper.InsertMeasureDataToDB(dt); - } + public string SelectOneMeasureValueByCondition(string strCarID, string strMeaPointName, string strDimensionName = "G") + { + DataTable dt = new DataTable(); + string strSql = "select MeasureValue from TMeasureData where CarID = '" + strCarID + "' and MeasPointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count >= 1) //有可能存在解析两次导致查询两次的问题 + { + return dt.Rows[0][0].ToString(); + } + else + { + return "NoFind"; + } + } + + public bool CheckVINExistInDB(string strVIN) + { + bool bReusult = false; + string strSql = "select Id from TMeasureResult where CarID = '" + strVIN + "'"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count >= 2) + { + bReusult = true; + } + return bReusult; + } + + public string SelectCarTypeByVIN(string strVIN) + { + string strSql = "select CarType from TMeasureResult where CarID = '" + strVIN + "'"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count >= 1) + { + return dt.Rows[0][0].ToString(); + } + else + { + return "unknown"; + } + } + + public DataTable SelectMeasureValuebyMeasureNameAndSize(string strMeasureName, string strSizeName, int topCount) + { + string strSql = "select top " + topCount.ToString() + " MeasureValue,NormalValue ,LowerTolVal,UpperTolVal from TMeasureData where MeasPointName='" + strMeasureName + "' and DimensionName='" + strSizeName + "' order by MeasureDate DESC "; + return SQLHelper.ExecuteQuery(strSql, CommandType.Text); + } + + public DataTable SelectAllMeasPointName() + { + string strSql = "select distinct MeasPointName from TMeasureData"; + return SQLHelper.ExecuteQuery(strSql, CommandType.Text); + } + + public DataTable SelectTMeasureDataByCarIDAndTime(string strCarID, string strStartTime, string strEndTime) + { + DataTable dt = new DataTable(); + string strSql = "select CarID, MeasPointName,DimensionName,NormalValue ,LowerTolVal,UpperTolVal,MeasureValue, MeasureDate, MeasureItemResult from TMeasureData where CarID like '%" + strCarID + "%' and MeasureDate >= '" + strStartTime + "' and MeasureDate <= '" + strEndTime + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectTMeasureDataByCarIDAndMPN(string strCarID, string strMeaPointName) + { + DataTable dt = new DataTable(); + string strSql = "select MeasPointName,DimensionName,LowerTolVal,UpperTolVal,MeasureValue, MeasureItemResult,Remark from TMeasureData where CarID like '%" + strCarID + "%' and MeasPointName like '%" + strMeaPointName + "%' COLLATE Chinese_PRC_CS_AI_WS "; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectMeasureItems(string strCarID, string strMeaPointName) + { + DataTable dt = new DataTable(); + string strSql = "select distinct MeasPointName from TMeasureData where CarID like '%" + strCarID + "%' and MeasPointName like '%" + strMeaPointName + "%' COLLATE Chinese_PRC_CS_AI_WS "; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectAllTMeasureResult() + { + DataTable dt = new DataTable(); + string strSql = "select * from TMeasureResult"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectTMeasureResultByTime(string strCarID, string strStartTime, string strEndTime) + { + DataTable dt = new DataTable(); + string strSql = "select CarID,SumMeasureItems,GoodMeasureItems,NoGoodMeasureItems,RejectMeasureItems,FPY,MeasureDate,case Result when 1 then '合格' else '不合格' end as Result from TMeasureResult where CarID like '%" + strCarID + "%' and MeasureDate >= '" + strStartTime + "' and MeasureDate <= '" + strEndTime + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public string SelectMaintenanceStation7VIN() + { + DataTable dt = new DataTable(); + string strSql = "select Station7PartID from MaintenanceInfo where Id=1"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt.Rows[0][0].ToString(); + } + + public string SelectMaintenanceStationVINbyStationNo(int sno) + { + DataTable dt = new DataTable(); + string strSql = ""; + switch (sno) + { + case 1: + strSql = "select Station1PartID from MaintenanceInfo where Id=1"; + break; + + case 2: + strSql = "select Station2PartID from MaintenanceInfo where Id=1"; + break; + + case 3: + strSql = "select Station3PartID from MaintenanceInfo where Id=1"; + break; + + case 4: + strSql = "select Station4PartID from MaintenanceInfo where Id=1"; + break; + + case 5: + strSql = "select Station5PartID from MaintenanceInfo where Id=1"; + break; + + case 6: + strSql = "select Station6PartID from MaintenanceInfo where Id=1"; + break; + + case 7: + strSql = "select Station7PartID from MaintenanceInfo where Id=1"; + break; + } + if (strSql == "") + { + return "empty"; + } + else + { + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows[0][0] == null) + { + return "empty"; + } + else + { + return dt.Rows[0][0].ToString(); + } + } + } + + public DataTable SelectAllToleranceByCondition(string strCartType, string strMeaPointName, string strDimensionName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType,MeasurePointName,DimensionName,TolLower,TolUpper, Remark from TTolerance where CarType like '%" + strCartType + "%' and MeasurePointName like '%" + strMeaPointName + "%' and DimensionName like '%" + strDimensionName + "%'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectAllRangeByCondition(string strCartType, string strMeaPointName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType,RangeName,RangePoint,RangeLower,RangeUpper, Remark from TRange where CarType like '%" + strCartType + "%' and RangeName like '%" + strMeaPointName + "%' "; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectOneToleranceByCondition(string strCartType, string strMeaPointName, string strDimensionName) + { + DataTable dt = new DataTable(); + string strSql = "select TolLower,TolUpper from TTolerance where CarType = '" + strCartType + "' and MeasurePointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectRangeDatabyCarID(string strCarID) + { + DataTable dt = new DataTable(); + string strSql = "select * from TRangeData where CarID = '" + strCarID + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectRangeByCarType(string strCarType) + { + DataTable dt = new DataTable(); + string strSql = "select RangeName,RangePoint,RangeLower,RangeUpper from TRange where CarType = '" + strCarType + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public bool CheckMeaPointNameExit(string strCartType, string strMeaPointName, string strDimensionName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType,MeasurePointName,DimensionName,TolLower,TolUpper, Remark from TTolerance where CarType = '" + strCartType + "' and MeasurePointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count > 0) + { + return true; + } + else + { + return false; + } + } + + public bool CheckRangeNameExit(string strCartType, string strRangeName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType from TRange where CarType = '" + strCartType + "' and RangeName = '" + strRangeName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count > 0) + { + return true; + } + else + { + return false; + } + } + + public string SelectVINByCSVVIN(string strCSVVIN) + { + DataTable dt = new DataTable(); + string strSql = "select CarVIN from TTempSaveVIN where CarVIN like '%" + strCSVVIN + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count >= 1) + return dt.Rows[0][0].ToString(); + else + { + return "NoFind"; + } + } + + public int CheckMRVINExistOrNotByVIN(string strVIN) // 25.08.27 数据分析到右两次过点记录,导致数据中存在两条相同VIN的记录,这里将 只有一条修改为 >= + { + DataTable dt = new DataTable(); + string strSql = "select CarID from TMeasureResult where CarID = '" + strVIN + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count >= 1) + return 1; + else + { + return 0; + } + } + + #endregion + + #region Insert Function + + public int InsertVIN(string strVIN) + { + string strSql = "insert into TTempSaveVIN (CarVIN) values ('" + strVIN + "')"; + return SQLHelper.ExecuteNonQuery(strSql, CommandType.Text); + } + + public int InsertTTolerance(TToleranceModel ttm) + { + string strSql = "insert into TTolerance (CarType,MeasurePointName,DimensionName,TolLower,TolUpper,CreateTime,Remark) values " + + "(@CarType,@MeasurePointName,@DimensionName,@TolLower,@TolUpper,@CreateTime,@Remark)"; + SqlParameter[] paras = new SqlParameter[] + { + new SqlParameter("@CarType",ttm.CarType), + new SqlParameter("@MeasurePointName",ttm.MeasurePointName), + new SqlParameter("@DimensionName",ttm.DimensionName), + new SqlParameter("@TolLower",ttm.TolLower), + new SqlParameter("@TolUpper",ttm.TolUpper), + new SqlParameter("@CreateTime",ttm.CreateTime), + new SqlParameter("@Remark",ttm.Remark), + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } + + public int InsertNewRange(TRangeModel ttm) + { + string strSql = "insert into TRange (CarType,RangeName,RangePoint,RangeLower,RangeUpper,CreateTime,Remark) values " + + "(@CarType,@RangeName,@RangePoint,@RangeLower,@RangeUpper,@CreateTime,@Remark)"; + SqlParameter[] paras = new SqlParameter[] + { + new SqlParameter("@CarType",ttm.CarType), + new SqlParameter("@RangeName",ttm.RangeName), + new SqlParameter("@RangePoint",ttm.RangePoint), + new SqlParameter("@RangeLower",ttm.RangeLower), + new SqlParameter("@RangeUpper",ttm.RangeUpper), + new SqlParameter("@CreateTime",ttm.CreateTime), + new SqlParameter("@Remark",ttm.Remark), + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } + + public int InsertTMeasureResult(TMeasureResultModel tmrm) + { + string strSql = "insert into TMeasureResult (CarID,CarType,SumMeasureItems,GoodMeasureItems,NoGoodMeasureItems,RejectMeasureItems,FPY,MeasureDate,Result,Remark) values " + + "(@CarID,@CarType,@SumMeasureItems,@GoodMeasureItems,@NoGoodMeasureItems,@RejectMeasureItems,@FPY,@MeasureDate,@Result,@Remark)"; + SqlParameter[] paras = new SqlParameter[] + { + new SqlParameter("@CarID",tmrm.CarID), + new SqlParameter("@CarType",tmrm.CarType), + new SqlParameter("@SumMeasureItems",tmrm.SumMeasureItems), + new SqlParameter("@GoodMeasureItems",tmrm.GoodMeasureItems), + new SqlParameter("@NoGoodMeasureItems",tmrm.NoGoodMeasureItems), + new SqlParameter("@RejectMeasureItems",tmrm.RejectMeasureItems), + new SqlParameter("@FPY",tmrm.FPY), + new SqlParameter("@MeasureDate",tmrm.MeasureDate), + new SqlParameter("@Result",tmrm.Result), + new SqlParameter("@Remark",tmrm.Remark), + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } + + public int InsertTMeasureDatabyDataTable(DataTable dt) + { + return SQLHelper.InsertMeasureDataToDB(dt); + } + + public int InsertTRangeDatabyDataTable(DataTable dt) + { + return SQLHelper.InsertRangeDataToDB(dt); + } - public int InsertTRangeDatabyDataTable(DataTable dt) - { - return SQLHelper.InsertRangeDataToDB(dt); - } - #endregion + // 记录IOT上传情况 - #region Update Function - public int UpdateTTolerance(TToleranceModel ttm) - { - string strSql = "update TTolerance set CarType=@CarType,MeasurePointName=@MeasurePointName,DimensionName=@DimensionName,TolLower=@TolLower,TolUpper=@TolUpper,CreateTime=@CreateTime,Remark=@Remark where Id=" + ttm.Id.ToString(); - SqlParameter[] paras = new SqlParameter[] - { - new SqlParameter("@Id",ttm.Id), - new SqlParameter("@CarType",ttm.CarType), - new SqlParameter("@MeasurePointName",ttm.MeasurePointName), - new SqlParameter("@DimensionName",ttm.DimensionName), - new SqlParameter("@TolLower",ttm.TolLower), - new SqlParameter("@TolUpper",ttm.TolUpper), - new SqlParameter("@CreateTime",ttm.CreateTime), - new SqlParameter("@Remark",ttm.Remark), - }; - return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); - } + public int InsertIOTUploadLog(string carId, string content, bool isUploaded, string fpy) + { + string strSql = "INSERT INTO IOTUploadLog (CarID, Content, CreateTime, IsUploaded, FPY) VALUES (@CarID, @Content, @CreateTime, @IsUploaded, @FPY)"; + SqlParameter[] paras = new[] + { + new SqlParameter("@CarID", carId), + new SqlParameter("@Content", content), + new SqlParameter("@CreateTime", DateTime.Now), + new SqlParameter("@IsUploaded", isUploaded ? 1 : 0), + new SqlParameter("@FPY", fpy) + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } - public int UpdateTRange(TRangeModel ttm) - { - string strSql = "update TRange set CarType=@CarType,RangeName=@RangeName,RangePoint=@RangePoint,RangeLower=@RangeLower,RangeUpper=@RangeUpper,CreateTime=@CreateTime,Remark=@Remark where Id=" + ttm.Id.ToString(); - SqlParameter[] paras = new SqlParameter[] - { - new SqlParameter("@Id",ttm.Id), - new SqlParameter("@CarType",ttm.CarType), - new SqlParameter("@RangeName",ttm.RangeName), - new SqlParameter("@RangePoint",ttm.RangePoint), - new SqlParameter("@RangeLower",ttm.RangeLower), - new SqlParameter("@RangeUpper",ttm.RangeUpper), - new SqlParameter("@CreateTime",ttm.CreateTime), - new SqlParameter("@Remark",ttm.Remark), - }; - return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); - } - public int updateMaintenceInfoEmpty() - { - string strSql = ""; - string strPartID = "empty"; - strSql = "update MaintenanceInfo set Station1PartID = '" + strPartID + "', Station2PartID = '" + strPartID + "', Station3PartID = '" + strPartID + "', Station4PartID = '" + strPartID + "', Station5PartID = '" + strPartID + "', Station6PartID = '" + strPartID + "', Station7PartID = '" + strPartID + "' where Id=1"; - return SQLHelper.ExecuteNonQuery(strSql, CommandType.Text); - } + //记录 客户CSV报告上传情况 + public int InsertCsvReportUploadLog(string carId, string targetPath, string backupPath, bool isUploaded) + { + string strSql = "INSERT INTO CsvReportUploadLog (CarID, TargetPath, BackupPath, CreateTime, IsUploaded) VALUES (@CarID, @TargetPath, @BackupPath, @CreateTime, @IsUploaded)"; + SqlParameter[] paras = new[] + { + new SqlParameter("@CarID", carId), + new SqlParameter("@TargetPath", targetPath), + new SqlParameter("@BackupPath", backupPath), + new SqlParameter("@CreateTime", DateTime.Now), + new SqlParameter("@IsUploaded", isUploaded ? 1 : 0) + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); - public int updateMaintenceInfo(string strPartID, int iStationNo) - { - string strSql = ""; - switch (iStationNo) - { - case 1: - strSql = "update MaintenanceInfo set Station1PartID = '" + strPartID + "' where Id=1"; - break; + } - case 2: - strSql = "update MaintenanceInfo set Station2PartID = '" + strPartID + "' where Id=1"; - break; - case 3: - strSql = "update MaintenanceInfo set Station3PartID = '" + strPartID + "' where Id=1"; - break; - case 4: - strSql = "update MaintenanceInfo set Station4PartID = '" + strPartID + "' where Id=1"; - break; + public int ExistsArriveLog(string carId, DateTime arriveDate) + { + string sql = "SELECT COUNT(1) FROM PlcCarStationLog WHERE CarID = @CarID AND CONVERT(date, ArriveTime) = @ArriveDate"; + var parameters = new[] + { + new SqlParameter("@CarID", carId), + new SqlParameter("@ArriveDate", arriveDate.Date) + }; + return SQLHelper.ExecuteNonQuery(sql, parameters, CommandType.Text); + } - case 5: - strSql = "update MaintenanceInfo set Station5PartID = '" + strPartID + "' where Id=1"; - break; - case 6: - strSql = "update MaintenanceInfo set Station6PartID = '" + strPartID + "' where Id=1"; - break; - case 7: - strSql = "update MaintenanceInfo set Station7PartID = '" + strPartID + "' where Id=1"; - break; - default: - strSql = "update MaintenanceInfo set Station1PartID = '" + strPartID + "' where Id=1"; - break; - } - return SQLHelper.ExecuteNonQuery(strSql, CommandType.Text); - } + // 插入车辆抵达记录 + public int InsertArriveLog(string carId, DateTime arriveTime) + { + string sql = "INSERT INTO PlcCarStationLog (CarID, ArriveTime, MeasureStatus) VALUES (@CarID, @ArriveTime, @MeasureStatus)"; + var parameters = new[] + { + new SqlParameter("@CarID", carId), + new SqlParameter("@ArriveTime", arriveTime), + new SqlParameter("@MeasureStatus", "未测量") + }; + return SQLHelper.ExecuteNonQuery(sql, parameters, CommandType.Text); + } - #endregion + // 更新启动测量时间 + public int UpdateStartMeasureTime(string carId, DateTime startTime) + { + string sql = "UPDATE PlcCarStationLog SET StartMeasureTime = @StartMeasureTime, MeasureStatus = @MeasureStatus WHERE CarID = @CarID AND StartMeasureTime IS NULL"; + var parameters = new[] + { + new SqlParameter("@StartMeasureTime", startTime), + new SqlParameter("@MeasureStatus", "已启动"), + new SqlParameter("@CarID", carId) + }; + return SQLHelper.ExecuteNonQuery(sql, parameters, CommandType.Text); + } - #region Delete Function + // 更新离开时间 + public int UpdateLeaveTime(string carId, DateTime leaveTime) + { + string sql = "UPDATE PlcCarStationLog SET LeaveTime = @LeaveTime WHERE CarID = @CarID AND LeaveTime IS NULL"; + var parameters = new[] + { + new SqlParameter("@LeaveTime", leaveTime), + new SqlParameter("@CarID", carId) + }; + return SQLHelper.ExecuteNonQuery(sql, parameters, CommandType.Text); + } - public int DeleteOneTolerance(string strObjIDPk) - { - string strOle = "delete from TTolerance where Id = " + strObjIDPk; - return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); - } + // 更新测量状态 + public int UpdateMeasureStatus(string carId, string measureStatus) + { + string sql = "UPDATE PlcCarStationLog SET MeasureStatus = @MeasureStatus WHERE CarID = @CarID"; + var parameters = new[] + { + new SqlParameter("@MeasureStatus", measureStatus), + new SqlParameter("@CarID", carId) + }; + return SQLHelper.ExecuteNonQuery(sql, parameters, CommandType.Text); - public int DeleteOneRange(string strObjIDPk) - { - string strOle = "delete from TRange where Id = " + strObjIDPk; - return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); - } - public int DeleteRangeData(string strCarID) - { - string strOle = "delete from TRangeData where CarID = '" + strCarID+"'"; - return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); - } - public int DeleteOneTTempVIN(string strVIN) - { - string strOle = "delete from TTempSaveVIN where CarVIN = '" + strVIN + "'"; - return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); - } - #endregion - } + } + + #endregion + + #region Update Function + + public int UpdateTTolerance(TToleranceModel ttm) + { + string strSql = "update TTolerance set CarType=@CarType,MeasurePointName=@MeasurePointName,DimensionName=@DimensionName,TolLower=@TolLower,TolUpper=@TolUpper,CreateTime=@CreateTime,Remark=@Remark where Id=" + ttm.Id.ToString(); + SqlParameter[] paras = new SqlParameter[] + { + new SqlParameter("@Id",ttm.Id), + new SqlParameter("@CarType",ttm.CarType), + new SqlParameter("@MeasurePointName",ttm.MeasurePointName), + new SqlParameter("@DimensionName",ttm.DimensionName), + new SqlParameter("@TolLower",ttm.TolLower), + new SqlParameter("@TolUpper",ttm.TolUpper), + new SqlParameter("@CreateTime",ttm.CreateTime), + new SqlParameter("@Remark",ttm.Remark), + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } + + public int UpdateTRange(TRangeModel ttm) + { + string strSql = "update TRange set CarType=@CarType,RangeName=@RangeName,RangePoint=@RangePoint,RangeLower=@RangeLower,RangeUpper=@RangeUpper,CreateTime=@CreateTime,Remark=@Remark where Id=" + ttm.Id.ToString(); + SqlParameter[] paras = new SqlParameter[] + { + new SqlParameter("@Id",ttm.Id), + new SqlParameter("@CarType",ttm.CarType), + new SqlParameter("@RangeName",ttm.RangeName), + new SqlParameter("@RangePoint",ttm.RangePoint), + new SqlParameter("@RangeLower",ttm.RangeLower), + new SqlParameter("@RangeUpper",ttm.RangeUpper), + new SqlParameter("@CreateTime",ttm.CreateTime), + new SqlParameter("@Remark",ttm.Remark), + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } + + public int updateMaintenceInfoEmpty() + { + string strSql = ""; + string strPartID = "empty"; + strSql = "update MaintenanceInfo set Station1PartID = '" + strPartID + "', Station2PartID = '" + strPartID + "', Station3PartID = '" + strPartID + "', Station4PartID = '" + strPartID + "', Station5PartID = '" + strPartID + "', Station6PartID = '" + strPartID + "', Station7PartID = '" + strPartID + "' where Id=1"; + return SQLHelper.ExecuteNonQuery(strSql, CommandType.Text); + } + + public int updateMaintenceInfo(string strPartID, int iStationNo) + { + string strSql = ""; + switch (iStationNo) + { + case 1: + strSql = "update MaintenanceInfo set Station1PartID = '" + strPartID + "' where Id=1"; + break; + + case 2: + strSql = "update MaintenanceInfo set Station2PartID = '" + strPartID + "' where Id=1"; + break; + + case 3: + strSql = "update MaintenanceInfo set Station3PartID = '" + strPartID + "' where Id=1"; + break; + + case 4: + strSql = "update MaintenanceInfo set Station4PartID = '" + strPartID + "' where Id=1"; + break; + + case 5: + strSql = "update MaintenanceInfo set Station5PartID = '" + strPartID + "' where Id=1"; + break; + + case 6: + strSql = "update MaintenanceInfo set Station6PartID = '" + strPartID + "' where Id=1"; + break; + + case 7: + strSql = "update MaintenanceInfo set Station7PartID = '" + strPartID + "' where Id=1"; + break; + + default: + strSql = "update MaintenanceInfo set Station1PartID = '" + strPartID + "' where Id=1"; + break; + } + return SQLHelper.ExecuteNonQuery(strSql, CommandType.Text); + } + + #endregion + + #region Delete Function + + public int DeleteOneTolerance(string strObjIDPk) + { + string strOle = "delete from TTolerance where Id = " + strObjIDPk; + return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); + } + + public int DeleteOneRange(string strObjIDPk) + { + string strOle = "delete from TRange where Id = " + strObjIDPk; + return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); + } + + public int DeleteRangeData(string strCarID) + { + string strOle = "delete from TRangeData where CarID = '" + strCarID + "'"; + return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); + } + + public int DeleteOneTTempVIN(string strVIN) + { + string strOle = "delete from TTempSaveVIN where CarVIN = '" + strVIN + "'"; + return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); + } + + #endregion + } } \ No newline at end of file diff --git a/DAL/bin/Debug/DAL.dll b/DAL/bin/Debug/DAL.dll index 95759f1..493f22e 100644 Binary files a/DAL/bin/Debug/DAL.dll and b/DAL/bin/Debug/DAL.dll differ diff --git a/DAL/bin/Debug/DAL.pdb b/DAL/bin/Debug/DAL.pdb index 157f6cf..ad2c28e 100644 Binary files a/DAL/bin/Debug/DAL.pdb and b/DAL/bin/Debug/DAL.pdb differ