using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace MESClassLibrary.DAL.Injection { public class UniqueDal { /// /// 生成流水号 /// /// 类型 /// 流水号长度 /// 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'); } /// /// 生成最新的注塑条码 /// /// /// /// 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); } } } }