Files

526 lines
21 KiB
C#
Raw Permalink Normal View History

2026-07-14 13:55:17 +08:00
using JY.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Threading.Tasks;
namespace JY.DAL
{
/// <summary>
///
/// </summary>
public class OpMysqlDataBase : IDbHelper
{
/// <summary>
/// 保存报警数据
/// </summary>
/// <param name="m"></param>
/// <returns></returns>
public int AddAlarmData(AlarmData m)
{
string strSql = string.Format(@"INSERT INTO tb_alarm (AlarmGuid,PLCAdress,AlarmCode,AlarmContent
,AlarmType,AlarmDesc,AlarmState,StartTime,EndTime,Flag)
values('{0}','{1}','{2}','{3}','{4}',{5},'{6}','{7}','{8}',{9})"
, m.AlarmGuid, m.PLCAdress, m.AlarmCode, m.AlarmContent, m.AlarmType, m.AlarmDesc, m.AlarmState
, m.StartTime, m.EndTime, m.Flag);
int result = MySqlHelper<AlarmData>.Execute(strSql);
return result;
}
/// <summary>
/// 删除未更新数据
/// </summary>
/// <param name="strDate1">开始时间</param>
/// <param name="strDate2">结束时间</param>
/// <returns></returns>
public int DeleteAlarmCacheData()
{
string strSql = $@"DELETE FROM tb_alarm WHERE Flag=0";
int result = MySqlHelper<object>.Execute(strSql);
return result;
}
/// <summary>
/// 查询报警信息
/// </summary>
/// <param name="strDate1">开始时间</param>
/// <param name="strDate2">结束时间</param>
/// <returns></returns>
public List<AlarmData> GetAlarmData(string strDate1, string strDate2)
{
string strSql = $@" SELECT PLCAdress ,AlarmContent,AlarmCode,AlarmTime,StartUpTime ,BurningTime
FROM tb_alarm where AlarmTime >= '{ strDate1 }' and AlarmTime <= '{ strDate2 }' ";
var list = MySqlHelper<AlarmData>.Query(strSql);
return list;
}
/// <summary>
/// 查询进站信息
/// </summary>
/// <param name="strCode"></param>
/// <returns></returns>
public List<FeedingData> GetFeedingData(string strCode)
{
string strSql = $@" SELECT * FROM FeedingData where BarCode = '{strCode}' ORDER BY CreateTime";
var list = SqlHelper<FeedingData>.Query(strSql);
return list;
}
/// <summary>
/// 新增产品型号
/// </summary>
/// <param name="entity">机型信息</param>
/// <returns></returns>
public int AddProductModel(ProductModel entity)
{
string strSql = $@"INSERT INTO `tb_productmodel`(`ModelName`, `Remark`)
VALUES ('{entity.ModelName}', '{entity.Remark}')";
int result = MySqlHelper<object>.Execute(strSql);
return result;
}
/// <summary>
/// 删除本地型号
/// </summary>
/// <param name="modeltype">型号</param>
/// <returns></returns>
public void DelProductModel(string modeltype)
{
string strSql = $"delete from tb_productmodel where ModelName='{modeltype}'";
MySqlHelper<object>.Execute(strSql);
}
/// <summary>
/// 获取产品型号列表
/// </summary>
/// <param name="strProdType">产品型号</param>
/// <returns></returns>
public List<ProductModel> GetProductModelList(string strProdType = "")
{
try
{
string strSql = @"SELECT * FROM `tb_productmodel` ";
if (strProdType != "")
{
strSql += string.Format(" where ModelName='{0}'", strProdType);
}
strSql += " order by ModelName";
var list = MySqlHelper<ProductModel>.Query(strSql);
return list;
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 保存产品类型配置参数
/// </summary>
/// <returns></returns>
public bool AddProductParaList(List<ProductPara> list)
{
List<string> listSql = new List<string>();
listSql.Add($@"delete from tb_paralist where ModelName='{list[0].ModelName}'");
foreach (var item in list)
{
listSql.Add($@"INSERT INTO `tb_paralist`(`ModelName`, `ParaName`, `ParaValue`, `Remark`, `UpdateTime`)
VALUES ('{item.ModelName}', '{item.ParaName}', '{item.ParaValue}', '{item.Remark}', '{item.UpdateTime}')");
}
var result = MySqlHelper<object>.ExecuteTransaction(listSql.ToArray());
if (result > 0)
return true;
else
return false;
}
/// <summary>
/// 获取产品参数通过产品型号
/// </summary>
/// <param name="strModelType">产品型号</param>
/// <returns></returns>
public List<ProductPara> GetProductParaByProdModel(string strModelType)
{
string strSql = $@"SELECT pb.ParaName, '{strModelType}' ModelName,pl.ParaValue,pl.Remark,pl.UpdateTime
FROM tb_parabase pb
left join (select * from tb_paralist where ModelName = '{strModelType}' ) as pl
on pb.ParaName = pl.ParaName; ";
var list = MySqlHelper<ProductPara>.Query(strSql);
return list;
}
/// <summary>
/// 标准轴参数保存
/// </summary>
/// <param name="dt"></param>
/// <param name=""></param>
/// <param name="strErr"></param>
/// <returns></returns>
public bool InsertPLCConfigBase(List<PLCConfigBase> list)
{
List<string> listSql = new List<string>();
listSql.Add("delete from tb_plcconfigbase;");
foreach (var item in list)
{
listSql.Add($@"Insert into tb_plcconfigbase (PLCAddress,PLCRemark,OrderNum)
Values ('{item.PLCAddress}','{item.PLCRemark}',{item.OrderNum});");
}
var result = MySqlHelper<object>.ExecuteTransaction(listSql.ToArray());
if (result > 0)
return true;
else
return false;
}
/// <summary>
/// 获取换型操作的基本参数
/// </summary>
/// <returns></returns>
public List<PLCConfigBase> GetPLCConfigBases()
{
string strSql = string.Format(@"SELECT * FROM `tb_plcconfigbase`
ORDER BY OrderNum");
var list = MySqlHelper<PLCConfigBase>.Query(strSql);
return list;
}
/// <summary>
/// 获取PLC换型参数绑定值
/// </summary>
/// <param name="modelName">产品型号</param>
/// <returns></returns>
public List<PLCConfigPara> GetPLCConfigPara(string modelName)
{
string strSql = $@"SELECT '{modelName}' ModelName,pb.PLCAddress,pc.PLCValue,pc.UpdateTime,pb.PLCRemark,pb.OrderNum
FROM tb_plcconfigbase pb
left join (select * from tb_plcconfig where ModelName='{modelName}') pc
on pb.PLCAddress = pc.PLCAddress
order by pb.OrderNum;";
var list = MySqlHelper<PLCConfigPara>.Query(strSql);
return list;
}
/// <summary>
/// 具体型号轴参数保存
/// </summary>
/// <param name="dt"></param>
/// <param name=""></param>
/// <param name="strErr"></param>
/// <returns></returns>
public bool InsertPLCConfigParam(List<PLCConfigPara> list)
{
List<string> listSql = new List<string>();
listSql.Add($"delete from tb_plcconfig where ModelName='{list[0].ModelName}';");
foreach (var item in list)
{
listSql.Add($@"INSERT INTO `tb_plcconfig`(`ModelName`, `PLCAddress`, `PLCValue`, `UpdateDate`)
Values ('{item.ModelName}','{item.PLCAddress}',{item.PLCValue}),'{item.UpdateData}';");
}
var result = MySqlHelper<object>.ExecuteTransaction(listSql.ToArray());
if (result > 0)
return true;
else
return false;
}
/// <summary>
/// 查询历史数据
/// </summary>
/// <param name="strBarCode"></param>
/// <param name="strDate1"></param>
/// <param name="strDate2"></param>
/// <returns></returns>
public DataTable GetTestData(int type, string strBarCode, string strDate1, string strDate2, string flag)
{
string strSql = @" SELECT
tb_testvr.TD 通道,
tb_testvr.BarCode 条码,
tb_testvr.Vol 电压,
tb_testvr.IMP 内阻,
tb_testvr.K K值,
tb_testvr.T 温度,
tb_testvr.Length 长度,
tb_testvr.Wide 宽度,
tb_testvr.LMDistance 极边距,
tb_testvr.Thickness 厚度,
tb_testvr.LCDistance 中心距,
DATE_FORMAT(tb_testvr.TestTime,'%Y-%m-%d %H:%i:%s') 测试时间,
tb_testvr.Result 结果,
tb_testvr.Remark 备注,
case when tb_testvr.Flag=1 then '已上传' else '未上传' end 上传状态,
tb_testvr.ProdType 测试型号,
tb_testvr.OCVType 测试类别,
tb_testvr.EquNo 设备编号,
tb_testvr.TaskCode 任务号
FROM
tb_testvr
where tb_testvr.TestTime >= '" + strDate1 + "' and tb_testvr.TestTime <= '" + strDate2 + "' ";
if (strBarCode != "")
{
strSql += " and tb_testvr.BarCode like '" + strBarCode + "%' ";
}
DataTable dt = MySqlHelper<object>.QueryTable(strSql);
return dt;
}
/// <summary>
/// 查询历史数据
/// </summary>
/// <param name="strBarCode"></param>
/// <param name="strDate1"></param>
/// <param name="strDate2"></param>
/// <returns></returns>
public DataTable GetTestData2(int type,int resultType, string strBarCode, string strDate1, string strDate2, string flag)
{
string strSql = @" SELECT
tb_testvr.TD 通道,
tb_testvr.BarCode 条码,
tb_testvr.Vol 电压,
tb_testvr.IMP 内阻,
tb_testvr.K K值,
tb_testvr.T 温度,
tb_testvr.Length 长度,
tb_testvr.Wide 宽度,
tb_testvr.LMDistance 极边距,
tb_testvr.Thickness 厚度,
tb_testvr.LCDistance 中心距,
DATE_FORMAT(tb_testvr.TestTime,'%Y-%m-%d %H:%i:%s') 测试时间,
tb_testvr.Result 结果,
tb_testvr.Remark 备注,
case when tb_testvr.Flag=1 then '已上传' else '未上传' end 上传状态,
tb_testvr.ProdType 测试型号,
tb_testvr.OCVType 测试类别,
tb_testvr.EquNo 设备编号,
tb_testvr.TaskCode 任务号
FROM
tb_testvr
where tb_testvr.TestTime >= '" + strDate1 + "' and tb_testvr.TestTime <= '" + strDate2 + "' ";
if (strBarCode != "")
{
strSql += " and tb_testvr.BarCode like '" + strBarCode + "%' ";
}
DataTable dt = MySqlHelper<object>.QueryTable(strSql);
return dt;
}
/// <summary>
/// 查询CCD数据
/// </summary>
/// <param name="strWorkerNum"></param>
/// <param name="strDate1"></param>
/// <param name="strDate2"></param>
/// <returns></returns>
public DataTable GetCCDData(string strWorkerNum, string strDate1, string strDate2)
{
string strSql = string.Format(@"SELECT
date_format(data_run.Date, '%m-%d' ) 日期
,data_run.Class 班次
,data_run.Classtype 班别
,data_run.OrderNum 工单号
,data_run.Customer 客户名称
,sum(IFNULL(data_run.TotalNum,0)) 投入总数
,sum(IFNULL(data_run.OK,0)) 良品总数
,sum(IFNULL(data_run.NG,0)) 不良总数
,CAST(IFNULL(CONVERT(((CONVERT((sum(IFNULL(data_run.NG,0))),FLOAT)/CONVERT((sum(IFNULL(data_run.TotalNum,0))),FLOAT))*100),DOUBLE),0) as CHAR(10))+'%' 不良率
,sum(IFNULL(data_run.CanRepaired,0)) 质量缺陷
,sum(IFNULL(data_run.NotRepaired,0)) 非质量缺陷
,sum(IFNULL(data_run.OtherNG,0)) 其他不良
,sum(IFNULL(data_run.SideNG,0)) 侧面不良
,sum(IFNULL(data_run.PositiveNG,0)) 正极不良
,sum(IFNULL(data_run.NegativeNG,0)) 负极不良
,sum(IFNULL(data_run.ChongheNG,0)) 重合不良
,sum(IFNULL(data_run.CodeNG,0)) 喷码不良
,sum(IFNULL(data_run.SideDrumpack,0)) 侧面凹坑鼓包、变形
,sum(IFNULL(data_run.SideDirty,0)) 侧面脏污漏液
,sum(IFNULL(data_run.SideScratches,0)) 侧面凸点、划痕、破皮、膜内异物
,sum(IFNULL(data_run.DPNG,0)) 正极面垫不良多放、漏放
,sum(IFNULL(data_run.PositiveDamage,0)) 正极套膜不良含热缩不良、破损、褶皱、面垫翘起
,sum(IFNULL(data_run.PositiveDirty,0)) 正极套膜脏污
,sum(IFNULL(data_run.PositiveScratches,0)) 盖帽不良含漏液、盖帽脏污氧化生锈,划痕,变形
,sum(IFNULL(data_run.SizeNG,0)) 负极套膜尺寸不良
,sum(IFNULL(data_run.NegativeDamage,0)) 负极套膜不良含套膜褶皱变形、破损、褶皱
,sum(IFNULL(data_run.NegativeDirty,0)) 负极套膜脏污
,sum(IFNULL(data_run.NegativeScratches,0)) 底部不良含漏液、脏污、氧化生锈、划痕、变形
,data_run.Operator 操作员
from data_run where data_run.OrderNum='{0}'", strWorkerNum);
//if (strWorkerNum != "")
//{
// strSql += string.Format(@" and data_run.OrderNum='{0}'", strWorkerNum);
//}
//strSql += " GROUP BY data_run.Class";
DataTable dt = SqlHelper<object>.QueryTable(strSql);
return dt;
}
/// <summary>
/// 按日期查询和时间查询投入产出信息
/// </summary>
/// <param name="strDate"></param>
/// <param name="Hour"></param>
/// <returns></returns>
public List<HourprodEntity> GetProdTotal(string strDate, int Hour)
{
string strSql = string.Format(@"SELECT
FDate
,FHour
,ProdIn
,ProdOut
,TestTime
FROM Tb_HourProd where FDate = '{0}'", strDate);
if (Hour > 0)
{
strSql += string.Format(" and FHour={0}", Hour);
}
var list = MySqlHelper<HourprodEntity>.Query(strSql);
return list;
}
/// <summary>
/// 更新指定时间的小时产出
/// </summary>
/// <param name="enity">小时产出数据</param>
/// <returns></returns>
public int UpdateHourprodData(HourprodEntity enity)
{
try
{
string strSql = $@"select 1 from tb_hourprod where FDate='{enity.FDate}' and FHour={enity.FHour}";
var obj = MySqlHelper<object>.ExecuteScalar(strSql, null);
if (obj != null && obj.ToString().Trim() != "")
{
strSql = $@"update tb_hourprod set ProdIn='{enity.ProdIn}',ProdOut='{enity.ProdOut}', TestTime='{DateTime.Now}'
where FDate='{enity.FDate}' and FHour={enity.FHour}";
}
else
{
strSql = $@"Insert into tb_hourprod(FDate, FHour, ProdIn, ProdOut, TestTime)
values ('{enity.FDate}', '{enity.FHour}', '{enity.ProdIn}', '{enity.ProdOut}', '{DateTime.Now}')";
}
int iresult = MySqlHelper<object>.Execute(strSql);
return iresult;
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 保存进托盘数据
/// </summary>
/// <param name="strDate"></param>
/// <param name="Hour"></param>
/// <returns></returns>
//public int AddInPutTrayID(TrayTestEntry m, ref string strErr)
//{
// string strSql = "INSERT INTO tb_InPutTrayID (TrayID,TestTime,Result,Remark)";
// strSql += string.Format(" values('{0}','{1}','{2}','{3}')", m.TrayID, m.TrayDate, m.TrayResult, m.TrayRemark);
// int list = MySqlHelper<AbnormalCellEntity>.Execute(strSql);
// return list;
//}
/// <summary>
/// 保存空托盘排出数据
/// </summary>
/// <param name="strDate"></param>
/// <param name="Hour"></param>
/// <returns></returns>
//public int AddOutTrayID(TrayTestEntry m, ref string strErr)
//{
// string strSql = "INSERT INTO tb_OutTrayID (TrayID,TestTime,Result,Remark)";
// strSql += string.Format(" values('{0}','{1}','{2}','{3}')", m.TrayID, m.TrayDate, m.TrayResult, m.TrayRemark);
// int list = MySqlHelper<GroovingData>.Execute(strSql);
// return list;
//}
/// <summary>
/// 上料数据保存
/// </summary>
/// <param name="strDate"></param>
/// <param name="Hour"></param>
/// <returns></returns>
//public int AddTestCode(AbnormalCellEntity m, ref string strErr)
//{
// string strSql = "INSERT INTO tb_savebarcode(TD,BarCode,TestTime,NGPosition, NGType,Remark, Flag)";
// strSql += string.Format(" values({0},'{1}','{2}','{3}','{4}','{5}',{6})", m.TD, m.BarCode, m.strDate,m.NGPosition,m.NGType, m.Remark, m.Flag);
// int list = MySqlHelper<AbnormalCellEntity>.Execute(strSql);
// return list;
//}
/// <summary>
/// 滚槽数据保存
/// </summary>
/// <param name="strDate"></param>
/// <param name="Hour"></param>
/// <returns></returns>
//public int AddGroovingData(GroovingData m, ref string strErr)
//{
// string strSql = "INSERT INTO tb_grooving(TD,BarCode,Gear,IsRetest, TestTime, Result, Remark,Worker, Flag)";
// strSql += string.Format(" values({0},'{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8})", m.GradingTD, m.GradingBarCode, m.Gear,
// m.IsRetest, m.GradingstrDate, m.GradingResult, m.GradingRemark, m.StrWorker, m.Flag);
// int list = MySqlHelper<GroovingData>.Execute(strSql);
// return list;
//}
public int AddFeedingData(FeedingData m, ref string strErr)
{
throw new NotImplementedException();
}
public int AddBlankingData(BlankingData m, ref string strErr)
{
throw new NotImplementedException();
}
public int AddInPutTrayID(TrayTestEntry m, ref string strErr)
{
throw new NotImplementedException();
}
public int AddOutTrayID(TrayTestEntry m, ref string strErr)
{
throw new NotImplementedException();
}
public int AddCamInforData(CamInfor m, ref string strErr)
{
throw new NotImplementedException();
}
public int AddAlarmCacheData(string tablename, List<AlarmData> m)
{
throw new NotImplementedException();
}
public List<AlarmData> GetAlarmCacheData()
{
throw new NotImplementedException();
}
public DataTable GetBarInTime(string strBar)
{
throw new NotImplementedException();
}
public int UparInTime(string strBar)
{
throw new NotImplementedException();
}
public string GetAbnormalVoice(string code, bool needInsert = false)
{
throw new NotImplementedException();
}
}
}