Browse Source

调整搪塑称重打印

master
张松男 8 months ago
parent
commit
04ab768a5f
  1. 8
      APPQ5/QMAPP.FJC.DAL/Basic/ProcessParameterDAL.cs
  2. 108
      APPQ5/QMAPP.FJC.TRACING/DataValidators/BFRecordValidator.cs
  3. 2
      APPQ5/QMAPP.FJC.TRACING/DataValidators/ProductTimeValidator.cs
  4. 19
      APPQ5/QMAPP.WinForm/Forms/Injection/SlushMoldingPrintForOldNewForm.cs

8
APPQ5/QMAPP.FJC.DAL/Basic/ProcessParameterDAL.cs

@ -785,7 +785,7 @@ namespace QMAPP.FJC.DAL.Basic
} }
} }
public bool BFParameterRecord(string productcode) public DataTable BFParameterRecord(string productcode)
{ {
try try
{ {
@ -802,12 +802,12 @@ namespace QMAPP.FJC.DAL.Basic
var record = session.GetTable(sql.ToString(), parameters.ToArray()); var record = session.GetTable(sql.ToString(), parameters.ToArray());
if (record.Rows.Count > 0) if (record.Rows.Count > 0)
{ {
var sql2 = $"select * from T_AW_MAINOPERATION where PRODUCTCODE = '{record.Rows[0]["MainCode"].ToString() }' and WORKCELL_CODE = 'PRESS_FIT_BC316'"; var sql2 = $"select * from T_AW_MAINOPERATION where PRODUCTCODE = '{record.Rows[0]["MainCode"].ToString() }' and WORKCELL_CODE = 'PRESS_FIT_BC316'";
var record2 = session.GetTable(sql2.ToString(), new List<DataParameter>().ToArray()); var record2 = session.GetTable(sql2.ToString(), new List<DataParameter>().ToArray());
return record2.Rows.Count > 0; return record2;
} }
return false; return new DataTable();
} }
} }
catch (Exception ex) catch (Exception ex)

108
APPQ5/QMAPP.FJC.TRACING/DataValidators/BFRecordValidator.cs

@ -6,6 +6,9 @@ using QMAPP.FJC.TRACING.DAInterface;
using QMAPP.FJC.Entity.InterfaceData; using QMAPP.FJC.Entity.InterfaceData;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using QMAPP.FJC.Entity.Operation; using QMAPP.FJC.Entity.Operation;
using QMAPP.FJC.DAL.CheckTime;
using QMAPP.FJC.Entity.CheckTime;
using System.Data;
namespace QMAPP.FJC.TRACING.DataValidators namespace QMAPP.FJC.TRACING.DataValidators
{ {
@ -43,17 +46,47 @@ namespace QMAPP.FJC.TRACING.DataValidators
productCodes.Add(product.PRODUCTCODE); productCodes.Add(product.PRODUCTCODE);
var parmDAL = new DAL.Basic.ProcessParameterDAL(); var parmDAL = new DAL.Basic.ProcessParameterDAL();
bool record = false; var record_table = new DataTable();
var ispass = false;
foreach (var barcode in productCodes) foreach (var barcode in productCodes)
{ {
record = parmDAL.BFParameterRecord(product.PRODUCTCODE); var record_table2 = parmDAL.BFParameterRecord(product.PRODUCTCODE);
if (record) if (record_table2.Rows.Count>0)
{ {
record_table = record_table2;
ispass = true;
break; break;
} }
} }
if (record) if (ispass)
{ {
ProductTimeDAL dal = new ProductTimeDAL();
ProductTime timeCheck = dal.GetTimeCheckCfg(data.WorkLocState.WORKLOC_CODE, data.DAI.DA_CODE);
if (timeCheck == null) return new ValidateResult(true, "");
//DataTable checkTable = dal.GetConfigValue(timeCheck, data.DAValue.ToString());
DataRow dataRow = record_table.Rows[0];
var ispass3 = TimeOutCompare(dataRow["CheckColumnValue"].ToString(), timeCheck.Operator, timeCheck.Check_Value, timeCheck.Check_ValueTo, timeCheck.Check_Type);
if (ispass3) return new ValidateResult(true, "");
else
{
var preStatTime = DateTime.Now;
if (!DateTime.TryParse(dataRow["CheckColumnValue"].ToString(), out preStatTime))
{
return new ValidateResult(false, $"检测值CheckColumnValue必须是DateTime类型");
}
DateTime serviceTime = dal.GetServiceDateTime();
TimeSpan ts = serviceTime.Subtract(preStatTime);
return new ValidateResult(false, $"未达到{timeCheck.Operator}{(Convert.ToDecimal(timeCheck.Check_Value) / 3600).ToString("#0.0")}小时验证标准,条码时间{(Convert.ToDecimal(ts.TotalSeconds) / 3600).ToString("#0.0")}小时");
}
return new ValidateResult(true, ""); return new ValidateResult(true, "");
} }
else else
@ -64,5 +97,72 @@ namespace QMAPP.FJC.TRACING.DataValidators
return new ValidateResult(true, ""); return new ValidateResult(true, "");
} }
/// <summary>
/// 比较字符串相等
/// </summary>
/// <param name="pCheckColumnValue"></param>
/// <param name="pOperator"></param>
/// <param name="pCheck_Value"></param>
/// <returns></returns>
public static bool StringEqual(string pCheckColumnValue, string pOperator, string pCheck_Value)
{
return pCheckColumnValue == pCheck_Value;
}
/// <summary>
/// 比较时间是否满足条码
/// </summary>
/// <param name="pCheckColumnValue">校验字段配置的值</param>
/// <param name="pOperator">操作符</param>
/// <param name="pCheck_Value">验证值</param>
/// <returns></returns>
public static bool TimeOutCompare(string pCheckColumnValue, string pOperator, string pCheck_Value, string pCheck_ValueTo, string pCheck_Type)
{
var preStatTime = DateTime.Now;
if (!DateTime.TryParse(pCheckColumnValue, out preStatTime))
{
throw new Exception("检测值CheckColumnValue必须是DateTime类型");
}
int len = 0;
if (!int.TryParse(pCheck_Value, out len))
{
throw new Exception("验证值Check_Value必须是int类型");
}
int len2 = 0;
if (!string.IsNullOrEmpty(pCheck_ValueTo))
{
if (!int.TryParse(pCheck_ValueTo, out len2))
{
throw new Exception("验证值pCheck_ValueTo必须是int类型");
}
}
ProductTimeDAL dal = new ProductTimeDAL();
DateTime serviceTime = dal.GetServiceDateTime();
TimeSpan ts = serviceTime.Subtract(preStatTime);
if (pCheck_Type == "1")
{
switch (pOperator)
{
case ">": return ts.TotalSeconds > len;
case "<": return ts.TotalSeconds < len;
case "=": return ts.TotalSeconds == len;
case ">=": return ts.TotalSeconds >= len;
case "<=": return ts.TotalSeconds <= len;
}
}
else if (pCheck_Type == "2")
{
return pCheckColumnValue == pCheck_Value;
}
else if (pCheck_Type == "3")
{
if (ts.TotalSeconds > len && ts.TotalSeconds < len2) return true;
else return false;
}
return true;
}
} }
} }

2
APPQ5/QMAPP.FJC.TRACING/DataValidators/ProductTimeValidator.cs

@ -27,6 +27,7 @@ namespace QMAPP.FJC.TRACING.DataValidators
else else
{ {
var pCheckColumnValue = data.DAValue.ToString().Substring(Convert.ToInt32(checktime.CodeTimeStart), Convert.ToInt32(checktime.CodeTimeNumber)); var pCheckColumnValue = data.DAValue.ToString().Substring(Convert.ToInt32(checktime.CodeTimeStart), Convert.ToInt32(checktime.CodeTimeNumber));
pCheckColumnValue = pCheckColumnValue.Replace("-", "").Replace(":", "");
pCheckColumnValue = datetime(pCheckColumnValue); pCheckColumnValue = datetime(pCheckColumnValue);
var gettime = string.Empty; var gettime = string.Empty;
var IsCheck = TimeOutCompare(pCheckColumnValue, checktime.Operator, checktime.Check_Value, checktime.Check_ValueTo, checktime.Check_Type,ref gettime); var IsCheck = TimeOutCompare(pCheckColumnValue, checktime.Operator, checktime.Check_Value, checktime.Check_ValueTo, checktime.Check_Type,ref gettime);
@ -35,6 +36,7 @@ namespace QMAPP.FJC.TRACING.DataValidators
{ {
if (checktime.Check_Type == "1") if (checktime.Check_Type == "1")
{ {
gettime = (Convert.ToDouble(gettime) / 3600).ToString("0.0");
return new ValidateResult(false, string.Format("未达到时间验证标准!,设置为{0}{1}小时,当前时间为{2:0.0}小时!", checktime.Operator, time, gettime)); return new ValidateResult(false, string.Format("未达到时间验证标准!,设置为{0}{1}小时,当前时间为{2:0.0}小时!", checktime.Operator, time, gettime));
} }
else else

19
APPQ5/QMAPP.WinForm/Forms/Injection/SlushMoldingPrintForOldNewForm.cs

@ -846,10 +846,21 @@ namespace QMAPP.WinForm.Forms.Injection
WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff") + "--预警区间--" + cfgSlushMolding2_STR); WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff") + "--预警区间--" + cfgSlushMolding2_STR);
if ((SP_End2 <= Weigh_Num || Weigh_Num <= SP_Begin2) && state == true) if ((SP_End2 <= Weigh_Num || Weigh_Num <= SP_Begin2) && state == true)
{ {
this.TBRCV.Text = $"重量{Weigh_Num}!到达{SP_End2},{SP_End}预警区间!请尽快调整重量!"; if (SP_End2 <= Weigh_Num)
infolabel.Text = $"重量{Weigh_Num}!到达{SP_End2},{SP_End}预警区间 \r\n请尽快调整重量!"; {
infolabel.ForeColor = Color.Coral; this.TBRCV.Text = $"重量{Weigh_Num}!到达{SP_End2},{SP_End}预警区间!请尽快调整重量!";
state2 = false; infolabel.Text = $"重量{Weigh_Num}!到达{SP_End2},{SP_End}预警区间 \r\n请尽快调整重量!";
infolabel.ForeColor = Color.Coral;
state2 = false;
}
else if (Weigh_Num <= SP_Begin2)
{
this.TBRCV.Text = $"重量{Weigh_Num}!到达{SP_Begin},{SP_Begin2}预警区间!请尽快调整重量!";
infolabel.Text = $"重量{Weigh_Num}!到达{SP_Begin},{SP_Begin2}预警区间 \r\n请尽快调整重量!";
infolabel.ForeColor = Color.Coral;
state2 = false;
}
} }
if (state == true && state2 == true) if (state == true && state2 == true)
{ {

Loading…
Cancel
Save