Browse Source

调整搪塑称重打印

master
张松男 9 months ago
parent
commit
04ab768a5f
  1. 6
      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. 11
      APPQ5/QMAPP.WinForm/Forms/Injection/SlushMoldingPrintForOldNewForm.cs

6
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
{
@ -804,10 +804,10 @@ namespace QMAPP.FJC.DAL.Basic
{
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());
return record2.Rows.Count > 0;
return record2;
}
return false;
return new DataTable();
}
}
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 System.Text.RegularExpressions;
using QMAPP.FJC.Entity.Operation;
using QMAPP.FJC.DAL.CheckTime;
using QMAPP.FJC.Entity.CheckTime;
using System.Data;
namespace QMAPP.FJC.TRACING.DataValidators
{
@ -43,17 +46,47 @@ namespace QMAPP.FJC.TRACING.DataValidators
productCodes.Add(product.PRODUCTCODE);
var parmDAL = new DAL.Basic.ProcessParameterDAL();
bool record = false;
var record_table = new DataTable();
var ispass = false;
foreach (var barcode in productCodes)
{
record = parmDAL.BFParameterRecord(product.PRODUCTCODE);
if (record)
var record_table2 = parmDAL.BFParameterRecord(product.PRODUCTCODE);
if (record_table2.Rows.Count>0)
{
record_table = record_table2;
ispass = true;
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, "");
}
else
@ -64,5 +97,72 @@ namespace QMAPP.FJC.TRACING.DataValidators
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
{
var pCheckColumnValue = data.DAValue.ToString().Substring(Convert.ToInt32(checktime.CodeTimeStart), Convert.ToInt32(checktime.CodeTimeNumber));
pCheckColumnValue = pCheckColumnValue.Replace("-", "").Replace(":", "");
pCheckColumnValue = datetime(pCheckColumnValue);
var gettime = string.Empty;
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")
{
gettime = (Convert.ToDouble(gettime) / 3600).ToString("0.0");
return new ValidateResult(false, string.Format("未达到时间验证标准!,设置为{0}{1}小时,当前时间为{2:0.0}小时!", checktime.Operator, time, gettime));
}
else

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

@ -845,12 +845,23 @@ namespace QMAPP.WinForm.Forms.Injection
var SP_End2 = Convert.ToInt32(SP2[1]);
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)
{
this.TBRCV.Text = $"重量{Weigh_Num}!到达{SP_End2},{SP_End}预警区间!请尽快调整重量!";
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)
{
this.TBRCV.Text = "";

Loading…
Cancel
Save