Files
CJLR-Analysis/Analysis/DAL/TMeasureMSSQLDAL.cs
T
HM-CN\zhengxuan.zhang dd24937c1f #003 完善分发配置
2025-08-05 09:13:50 +08:00

357 lines
13 KiB
C#

using NSAnalysis.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;
namespace DAL
{
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 DataTable SelectTaskByCondition(string strModelName, string strModelCode, string strStatus)
{
DataTable dt = new DataTable();
StringBuilder strSql = new StringBuilder(@"SELECT id, modelsName, modelsCode, position,
sourceFile, targetFile, status, create_date,
readType
FROM CJLR.dbo.CJLR_TASK_RELEASE
WHERE is_delete = 1 AND readType = 1 "); // 默认只查询未删除记录
List<SqlParameter> paras = new List<SqlParameter>();
if (!string.IsNullOrEmpty(strModelName))
{
strSql.Append(" AND modelsName LIKE '%' + @ModelName + '%'");
paras.Add(new SqlParameter("@ModelName", strModelName));
}
if (!string.IsNullOrEmpty(strModelCode))
{
strSql.Append(" AND modelsCode LIKE '%' + @ModelCode + '%'");
paras.Add(new SqlParameter("@ModelCode", strModelCode));
}
// 状态查询优化
if (!string.IsNullOrEmpty(strStatus) && strStatus != "all")
{
strSql.Append(" AND status = @Status");
paras.Add(new SqlParameter("@Status", strStatus));
}
// 增加 ORDER BY create_date DESC
strSql.Append(" ORDER BY create_date DESC");
dt = SQLHelper.ExecuteQuery(strSql.ToString(), paras.ToArray(), 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 bool CheckTaskExit(string strModelsName, string strModelsCode, string strReadType)
{
DataTable dt = new DataTable();
// 构建 SQL 查询语句
string strSql = $"SELECT Id FROM CJLR.dbo.CJLR_TASK_RELEASE " +
$"WHERE modelsName = '{strModelsName}' " +
$"AND modelsCode = '{strModelsCode}' " +
$"AND readType = {(strReadType)}";
// 执行查询
dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text);
// 检查结果
return dt.Rows.Count > 0; // 任务存在返回 true,否则返回 false
}
#endregion
#region Insert Function
// 插入分发配置
public int InsertTask(CjlrTaskReleaseModel model)
{
const string strSql = @"INSERT INTO CJLR.dbo.CJLR_TASK_RELEASE
(modelsName, modelsCode, position, sourceFile, targetFile,
status, create_date, is_delete, readType)
VALUES
(@modelsName, @modelsCode, @position, @sourceFile, @targetFile,
@status, @create_date, @is_delete, @readType);
SELECT SCOPE_IDENTITY();";
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@modelsName", model.ModelsName ?? (object)DBNull.Value),
new SqlParameter("@modelsCode", model.ModelsCode ?? (object)DBNull.Value),
new SqlParameter("@position", model.Position ?? (object)DBNull.Value),
new SqlParameter("@sourceFile", model.SourceFile ?? (object)DBNull.Value),
new SqlParameter("@targetFile", model.TargetFile ?? (object)DBNull.Value),
new SqlParameter("@status", model.Status ?? (object)DBNull.Value),
new SqlParameter("@create_date", model.CreateDate == default ?
DateTime.Now : model.CreateDate),
new SqlParameter("@is_delete", model.IsDelete),
new SqlParameter("@readType", model.ReadType)
};
object result = SQLHelper.ExecuteNonQuery(strSql, parameters, CommandType.Text);
return Convert.ToInt32(result);
}
// 插入分发详细记录
public int InsertModel(CjlrTaskReleaseModel model)
{
string strSql = "INSERT INTO CJLR_TASK_RELEASE_DETAIL " +
"(modelsName, modelsCode, position, sourceFile, targetFile, status, createDate, isDelete, readType) " +
"VALUES (@modelsName, @modelsCode, @position, @sourceFile, @targetFile, @status, @createDate, @isDelete, @readType)";
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@modelsName", model.ModelsName ?? (object)DBNull.Value),
new SqlParameter("@modelsCode", model.ModelsCode ?? (object)DBNull.Value),
new SqlParameter("@position", model.Position ?? (object)DBNull.Value),
new SqlParameter("@sourceFile", model.SourceFile ?? (object)DBNull.Value),
new SqlParameter("@targetFile", model.TargetFile ?? (object)DBNull.Value),
new SqlParameter("@status", model.Status ?? (object)DBNull.Value),
new SqlParameter("@createDate", model.CreateDate == default ?
DateTime.Parse("2024-01-31 14:37:00") : model.CreateDate),
new SqlParameter("@isDelete", model.IsDelete),
new SqlParameter("@readType", model.ReadType)
};
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);
}
#endregion
#region Update Function
// 更新分发配置
public int UpdateTaskRelease(CjlrTaskReleaseModel cjlrTaskRelease)
{
string strSql = @"
UPDATE CJLR.dbo.CJLR_TASK_RELEASE
SET
ModelsName = @ModelsName,
ModelsCode = @ModelsCode,
Position = @Position,
SourceFile = @SourceFile,
TargetFile = @TargetFile,
Status = @Status,
create_date = @create_date,
is_delete = @is_delete,
readType = @readType
WHERE
Id = @Id;";
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@ModelsName", cjlrTaskRelease.ModelsName ?? (object)DBNull.Value),
new SqlParameter("@ModelsCode", cjlrTaskRelease.ModelsCode ?? (object)DBNull.Value),
new SqlParameter("@position", cjlrTaskRelease.Position ?? (object)DBNull.Value),
new SqlParameter("@sourceFile", cjlrTaskRelease.SourceFile ?? (object)DBNull.Value),
new SqlParameter("@targetFile", cjlrTaskRelease.TargetFile ?? (object)DBNull.Value),
new SqlParameter("@status", cjlrTaskRelease.Status ?? (object)DBNull.Value),
new SqlParameter("@create_date", cjlrTaskRelease.CreateDate),
new SqlParameter("@is_delete", cjlrTaskRelease.IsDelete),
new SqlParameter("@readType", cjlrTaskRelease.ReadType),
new SqlParameter("@id", cjlrTaskRelease.Id)
};
return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text);
}
// 更新的方式标记删除
public int UpdateIsDelete(string modelsName, string modelsCode)
{
// SQL 更新语句
string strOle = "UPDATE CJLR_TASK_RELEASE SET is_delete = 0 WHERE modelsName = @modelsName AND modelsCode = @modelsCode";
// 创建参数
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@modelsName", modelsName),
new SqlParameter("@modelsCode", modelsCode)
};
// 执行更新操作
return SQLHelper.ExecuteNonQuery(strOle, parameters, CommandType.Text);
}
#endregion
#region Delete Function
public int DeleteOneTolerance(string modelsCode)
{
// 使用参数化查询以防止 SQL 注入
string strOle = "DELETE FROM CJLR_TASK_RELEASE WHERE modelsCode = @modelsCode";
// 创建一个 SqlParameter 来替代直接拼接字符串
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@modelsCode", modelsCode),
};
// 执行非查询操作
return SQLHelper.ExecuteNonQuery(strOle, parameters, CommandType.Text);
}
#endregion
}
}