357 lines
13 KiB
C#
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
|
|
}
|
|
} |