一厂MES,含注塑,喷涂,冲孔
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

100 lines
3.5 KiB

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
namespace MESClassLibrary.DAL.Injection
{
public class UniqueDal
{
/// <summary>
/// 生成流水号
/// </summary>
/// <param name="type">类型</param>
/// <param name="len">流水号长度</param>
/// <returns></returns>
public string GetBillNo(string type, int len)
{
string sql = $"exec p_GetBillNo '{type}'";
DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql).Tables[0];
return Convert.ToInt32(dt.Rows[0]["value"]).ToString().PadLeft(len, '0');
}
/// <summary>
/// 生成最新的注塑条码
/// </summary>
/// <param name="stockNo"></param>
/// <param name="batch"></param>
/// <returns></returns>
public string GetSjBarCodeSerialNo(string stockNo, string batch)
{
//if (stockNo.Length != 10)
//{
// throw new Exception($"生成塑件条码错误,因为存货代码[{stockNo}]格式不正确,必须10位长度.");
//}
string s = GetBillNo(stockNo + batch, 4);
string sjBarCode = stockNo + batch + s;
try
{
SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, $" insert into tb_BarCodeUnique(OneBarCode) values('{sjBarCode}')");
return sjBarCode;
}
catch (Exception ex)
{
return GetSjBarCodeSerialNo(stockNo, batch);
}
}
public string GetPackageSerialNo(string partNo, string batch,string packageSize)
{
//if (stockNo.Length != 10)
//{
// throw new Exception($"生成塑件条码错误,因为存货代码[{stockNo}]格式不正确,必须10位长度.");
//}
if (packageSize.Length < 3)
{
packageSize = packageSize.PadLeft(3, '0');
}
string s = GetBillNo(partNo + batch, 4);
string sjBarCode = partNo + "." + batch + "." + packageSize + "." + s;
try
{
SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, $" insert into tb_BarCodeUnique(OneBarCode) values('{sjBarCode}')");
return sjBarCode;
}
catch (Exception ex)
{
return GetPackageSerialNo(partNo, batch, packageSize);
}
}
/// <summary>
/// 小件装配总成条码
/// </summary>
/// <param name="partNo"></param>
/// <param name="size"></param>
/// <returns></returns>
public string GetPunchSerialNo(string partNo, int size, ref string seriaLNo)
{
DateTime time = DateTime.Now;
seriaLNo = GetBillNo(partNo + time.ToString("yyMMdd")+"小件装配总成码", size);
string sjBarCode = partNo + "." + time.ToString("yyMMdd") + ";" + seriaLNo + ";S104;;.1;" + time.ToString("yyyy/MM/dd") + ";";
try
{
SqlHelper.ExecuteNonQuery(SqlHelper.GetConnSting(), CommandType.Text, $" insert into tb_BarCodeUnique(OneBarCode) values('{sjBarCode}')");
return sjBarCode;
}
catch (Exception ex)
{
return GetPunchSerialNo(partNo, size,ref seriaLNo);
}
}
}
}