526 lines
21 KiB
C#
526 lines
21 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
|