feat: 物料扫码记录拆分6段并增加段数异常日志
This commit is contained in:
@@ -1747,15 +1747,27 @@ namespace MisDataFunDll
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static DataTable XD_MaterialsVerify(string opName, string engineID, string materialsCode, int MaterialsTypeCode)
|
/// <summary>
|
||||||
|
/// PLC物料扫码校验(含原始码与解析后的 6 段信息)
|
||||||
|
/// 码格式:采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号
|
||||||
|
/// </summary>
|
||||||
|
public static DataTable XD_MaterialsVerify(string opName, string engineID, string materialsCode, int MaterialsTypeCode,
|
||||||
|
string purchaseOrderNo = "", string purchaseLineNo = "", string materialCode = "",
|
||||||
|
string materialBatchNo = "", string materialSerialNo = "", string drawingNo = "")
|
||||||
{
|
{
|
||||||
DataTable dt = new DataTable();
|
DataTable dt = new DataTable();
|
||||||
string produceName = "XD_物料记录_增加";
|
string produceName = "XD_物料记录_增加";
|
||||||
SqlParameter[] thisParms = new SqlParameter[4];
|
SqlParameter[] thisParms = new SqlParameter[10];
|
||||||
thisParms[0] = new System.Data.SqlClient.SqlParameter("@工件编号", engineID);
|
thisParms[0] = new System.Data.SqlClient.SqlParameter("@工位号", opName);
|
||||||
thisParms[1] = new System.Data.SqlClient.SqlParameter("@物料编码", materialsCode);
|
thisParms[1] = new System.Data.SqlClient.SqlParameter("@工件编号", engineID);
|
||||||
thisParms[2] = new System.Data.SqlClient.SqlParameter("@工位号", opName);
|
thisParms[2] = new System.Data.SqlClient.SqlParameter("@物料类型编号", MaterialsTypeCode);
|
||||||
thisParms[3] = new System.Data.SqlClient.SqlParameter("@物料类型编号", MaterialsTypeCode);
|
thisParms[3] = new System.Data.SqlClient.SqlParameter("@码值", materialsCode ?? "");
|
||||||
|
thisParms[4] = new System.Data.SqlClient.SqlParameter("@采购订单号", purchaseOrderNo ?? "");
|
||||||
|
thisParms[5] = new System.Data.SqlClient.SqlParameter("@采购行号", purchaseLineNo ?? "");
|
||||||
|
thisParms[6] = new System.Data.SqlClient.SqlParameter("@物料代码", materialCode ?? "");
|
||||||
|
thisParms[7] = new System.Data.SqlClient.SqlParameter("@物料批次号", materialBatchNo ?? "");
|
||||||
|
thisParms[8] = new System.Data.SqlClient.SqlParameter("@物料流水号", materialSerialNo ?? "");
|
||||||
|
thisParms[9] = new System.Data.SqlClient.SqlParameter("@图号", drawingNo ?? "");
|
||||||
DataAccess.ExecuteStoredProcedure(produceName, ref thisParms, out dt);
|
DataAccess.ExecuteStoredProcedure(produceName, ref thisParms, out dt);
|
||||||
return dt;
|
return dt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ namespace MesServerFunctions
|
|||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PLC物料扫码校验
|
/// PLC物料扫码校验
|
||||||
|
/// 扫码内容格式:采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号
|
||||||
|
/// 示例:GDD030226032500001|10|123800510000065|20260326|00001|8KA.510.10074
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
public void MaterialsVerify(object e)
|
public void MaterialsVerify(object e)
|
||||||
@@ -35,7 +37,21 @@ namespace MesServerFunctions
|
|||||||
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
|
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
|
||||||
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
|
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
|
||||||
|
|
||||||
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode);
|
string purchaseOrderNo = "";
|
||||||
|
string purchaseLineNo = "";
|
||||||
|
string materialCode = "";
|
||||||
|
string materialBatchNo = "";
|
||||||
|
string materialSerialNo = "";
|
||||||
|
string drawingNo = "";
|
||||||
|
int segmentCount = ParseMaterialsCode(MaterialsCode, out purchaseOrderNo, out purchaseLineNo, out materialCode, out materialBatchNo, out materialSerialNo, out drawingNo);
|
||||||
|
if (segmentCount != 6)
|
||||||
|
{
|
||||||
|
string warnMsg = $"【{OpName}】产品:{EngineID} | 物料码:{MaterialsCode} | 物料类型:{MaterialsTypeCode.ToString()} 物料码段数异常({segmentCount}),预期6段(采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号)!";
|
||||||
|
MisDataSaveDate.Helper.ApiLogHelper.SaveMesLog(OpName, "MaterialsVerify " + warnMsg, MisDataSaveDate.Helper.MesLogType.ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode,
|
||||||
|
purchaseOrderNo, purchaseLineNo, materialCode, materialBatchNo, materialSerialNo, drawingNo);
|
||||||
int result = Convert.ToInt32(dt.Rows[0]["result"]);
|
int result = Convert.ToInt32(dt.Rows[0]["result"]);
|
||||||
if (result == 1)
|
if (result == 1)
|
||||||
{
|
{
|
||||||
@@ -58,5 +74,34 @@ namespace MesServerFunctions
|
|||||||
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
|
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 解析物料扫码内容
|
||||||
|
/// 格式:采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号
|
||||||
|
/// 段数不足时,剩余字段保持为空字符串。
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>实际拆分得到的段数</returns>
|
||||||
|
private static int ParseMaterialsCode(string code,
|
||||||
|
out string purchaseOrderNo, out string purchaseLineNo, out string materialCode,
|
||||||
|
out string materialBatchNo, out string materialSerialNo, out string drawingNo)
|
||||||
|
{
|
||||||
|
purchaseOrderNo = "";
|
||||||
|
purchaseLineNo = "";
|
||||||
|
materialCode = "";
|
||||||
|
materialBatchNo = "";
|
||||||
|
materialSerialNo = "";
|
||||||
|
drawingNo = "";
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(code)) return 0;
|
||||||
|
|
||||||
|
string[] parts = code.Split('|');
|
||||||
|
if (parts.Length > 0) purchaseOrderNo = parts[0].Trim();
|
||||||
|
if (parts.Length > 1) purchaseLineNo = parts[1].Trim();
|
||||||
|
if (parts.Length > 2) materialCode = parts[2].Trim();
|
||||||
|
if (parts.Length > 3) materialBatchNo = parts[3].Trim();
|
||||||
|
if (parts.Length > 4) materialSerialNo = parts[4].Trim();
|
||||||
|
if (parts.Length > 5) drawingNo = parts[5].Trim();
|
||||||
|
return parts.Length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ namespace MesServerFunctions
|
|||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PLC物料扫码校验
|
/// PLC物料扫码校验
|
||||||
|
/// 扫码内容格式:采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号
|
||||||
|
/// 示例:GDD030226032500001|10|123800510000065|20260326|00001|8KA.510.10074
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
public void MaterialsVerify(object e)
|
public void MaterialsVerify(object e)
|
||||||
@@ -35,7 +37,21 @@ namespace MesServerFunctions
|
|||||||
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
|
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
|
||||||
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
|
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
|
||||||
|
|
||||||
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode);
|
string purchaseOrderNo = "";
|
||||||
|
string purchaseLineNo = "";
|
||||||
|
string materialCode = "";
|
||||||
|
string materialBatchNo = "";
|
||||||
|
string materialSerialNo = "";
|
||||||
|
string drawingNo = "";
|
||||||
|
int segmentCount = ParseMaterialsCode(MaterialsCode, out purchaseOrderNo, out purchaseLineNo, out materialCode, out materialBatchNo, out materialSerialNo, out drawingNo);
|
||||||
|
if (segmentCount != 6)
|
||||||
|
{
|
||||||
|
string warnMsg = $"【{OpName}】产品:{EngineID} | 物料码:{MaterialsCode} | 物料类型:{MaterialsTypeCode.ToString()} 物料码段数异常({segmentCount}),预期6段(采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号)!";
|
||||||
|
MisDataSaveDate.Helper.ApiLogHelper.SaveMesLog(OpName, "MaterialsVerify " + warnMsg, MisDataSaveDate.Helper.MesLogType.ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode,
|
||||||
|
purchaseOrderNo, purchaseLineNo, materialCode, materialBatchNo, materialSerialNo, drawingNo);
|
||||||
int result = Convert.ToInt32(dt.Rows[0]["result"]);
|
int result = Convert.ToInt32(dt.Rows[0]["result"]);
|
||||||
if (result == 1)
|
if (result == 1)
|
||||||
{
|
{
|
||||||
@@ -58,5 +74,34 @@ namespace MesServerFunctions
|
|||||||
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
|
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 解析物料扫码内容
|
||||||
|
/// 格式:采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号
|
||||||
|
/// 段数不足时,剩余字段保持为空字符串。
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>实际拆分得到的段数</returns>
|
||||||
|
private static int ParseMaterialsCode(string code,
|
||||||
|
out string purchaseOrderNo, out string purchaseLineNo, out string materialCode,
|
||||||
|
out string materialBatchNo, out string materialSerialNo, out string drawingNo)
|
||||||
|
{
|
||||||
|
purchaseOrderNo = "";
|
||||||
|
purchaseLineNo = "";
|
||||||
|
materialCode = "";
|
||||||
|
materialBatchNo = "";
|
||||||
|
materialSerialNo = "";
|
||||||
|
drawingNo = "";
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(code)) return 0;
|
||||||
|
|
||||||
|
string[] parts = code.Split('|');
|
||||||
|
if (parts.Length > 0) purchaseOrderNo = parts[0].Trim();
|
||||||
|
if (parts.Length > 1) purchaseLineNo = parts[1].Trim();
|
||||||
|
if (parts.Length > 2) materialCode = parts[2].Trim();
|
||||||
|
if (parts.Length > 3) materialBatchNo = parts[3].Trim();
|
||||||
|
if (parts.Length > 4) materialSerialNo = parts[4].Trim();
|
||||||
|
if (parts.Length > 5) drawingNo = parts[5].Trim();
|
||||||
|
return parts.Length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ namespace MesServerFunctions
|
|||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PLC物料扫码校验
|
/// PLC物料扫码校验
|
||||||
|
/// 扫码内容格式:采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号
|
||||||
|
/// 示例:GDD030226032500001|10|123800510000065|20260326|00001|8KA.510.10074
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
public void MaterialsVerify(object e)
|
public void MaterialsVerify(object e)
|
||||||
@@ -35,7 +37,21 @@ namespace MesServerFunctions
|
|||||||
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
|
int MaterialsTypeCode = Convert.ToInt32(MIS_BASE.ReadPLC(201, OpName));
|
||||||
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
|
string MaterialsCode = MIS_BASE.ReadPLC(40, OpName).ToString();
|
||||||
|
|
||||||
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode);
|
string purchaseOrderNo = "";
|
||||||
|
string purchaseLineNo = "";
|
||||||
|
string materialCode = "";
|
||||||
|
string materialBatchNo = "";
|
||||||
|
string materialSerialNo = "";
|
||||||
|
string drawingNo = "";
|
||||||
|
int segmentCount = ParseMaterialsCode(MaterialsCode, out purchaseOrderNo, out purchaseLineNo, out materialCode, out materialBatchNo, out materialSerialNo, out drawingNo);
|
||||||
|
if (segmentCount != 6)
|
||||||
|
{
|
||||||
|
string warnMsg = $"【{OpName}】产品:{EngineID} | 物料码:{MaterialsCode} | 物料类型:{MaterialsTypeCode.ToString()} 物料码段数异常({segmentCount}),预期6段(采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号)!";
|
||||||
|
MisDataSaveDate.Helper.ApiLogHelper.SaveMesLog(OpName, "MaterialsVerify " + warnMsg, MisDataSaveDate.Helper.MesLogType.ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
DataTable dt = MisDataFun.XD_MaterialsVerify(OpName, EngineID, MaterialsCode, MaterialsTypeCode,
|
||||||
|
purchaseOrderNo, purchaseLineNo, materialCode, materialBatchNo, materialSerialNo, drawingNo);
|
||||||
int result = Convert.ToInt32(dt.Rows[0]["result"]);
|
int result = Convert.ToInt32(dt.Rows[0]["result"]);
|
||||||
if (result == 1)
|
if (result == 1)
|
||||||
{
|
{
|
||||||
@@ -58,5 +74,34 @@ namespace MesServerFunctions
|
|||||||
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
|
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 解析物料扫码内容
|
||||||
|
/// 格式:采购订单号|采购行号|物料代码|物料批次号|物料流水号|图号
|
||||||
|
/// 段数不足时,剩余字段保持为空字符串。
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>实际拆分得到的段数</returns>
|
||||||
|
private static int ParseMaterialsCode(string code,
|
||||||
|
out string purchaseOrderNo, out string purchaseLineNo, out string materialCode,
|
||||||
|
out string materialBatchNo, out string materialSerialNo, out string drawingNo)
|
||||||
|
{
|
||||||
|
purchaseOrderNo = "";
|
||||||
|
purchaseLineNo = "";
|
||||||
|
materialCode = "";
|
||||||
|
materialBatchNo = "";
|
||||||
|
materialSerialNo = "";
|
||||||
|
drawingNo = "";
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(code)) return 0;
|
||||||
|
|
||||||
|
string[] parts = code.Split('|');
|
||||||
|
if (parts.Length > 0) purchaseOrderNo = parts[0].Trim();
|
||||||
|
if (parts.Length > 1) purchaseLineNo = parts[1].Trim();
|
||||||
|
if (parts.Length > 2) materialCode = parts[2].Trim();
|
||||||
|
if (parts.Length > 3) materialBatchNo = parts[3].Trim();
|
||||||
|
if (parts.Length > 4) materialSerialNo = parts[4].Trim();
|
||||||
|
if (parts.Length > 5) drawingNo = parts[5].Trim();
|
||||||
|
return parts.Length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user