77 lines
2.8 KiB
C#
77 lines
2.8 KiB
C#
using Seyounth.Hyosung.Data.Models;
|
|
using Seyounth.Hyosung.Data.Services.Hyosung.Entities;
|
|
using SqlSugar;
|
|
|
|
namespace Seyounth.Hyosung.Data.Services.Hyosung;
|
|
|
|
public class HyosungWmsService : IHyosungWmsService
|
|
{
|
|
private ISqlSugarClient _db = new SqlSugarClient(new ConnectionConfig
|
|
{
|
|
DbType = DbType.SqlServer,
|
|
ConnectionString =
|
|
$"Data Source=192.168.2.11;User Id=TY_ACP;Password=ty@_acp20y;database=HSWMS;Encrypt=True;TrustServerCertificate=True;Pooling=true;Min Pool Size=1",
|
|
IsAutoCloseConnection = true,
|
|
});
|
|
|
|
public async Task<int> GetControlNo(Variety variety, string grade)
|
|
{
|
|
var checkCode = $"02025{grade}{variety.Lot.ToString().Substring(1, 3)}";
|
|
var x = await _db.Queryable<MST_BOXNO_SEQ_NON_DATE>().Where(x =>
|
|
x.BeId == "2240" && x.ItemCode == variety.Code && x.CheckCode == checkCode).FirstAsync();
|
|
if (x?.LastNo is null)
|
|
return 1;
|
|
return x.LastNo.Value + 1;
|
|
}
|
|
|
|
public async Task<MST_ITEM_2240_V> GetItemInfoByItemCode(string itemCode)
|
|
{
|
|
return await _db.Queryable<MST_ITEM_2240_V>()
|
|
.FirstAsync(t => t.ITEM_CODE == itemCode);
|
|
}
|
|
|
|
public async Task UpdateControlNo(Variety variety, int controlNo)
|
|
{
|
|
var checkCode = $"02025{variety.Lot}";
|
|
if (controlNo is 1)
|
|
{
|
|
var entity = new MST_BOXNO_SEQ_NON_DATE()
|
|
{
|
|
BeId = "2240",
|
|
CheckCode = checkCode,
|
|
LastNo = 1,
|
|
CreatedBy = "seyounth",
|
|
CreatedTime = DateTime.Now,
|
|
ModifiedBy = "seyounth",
|
|
ModifiedTime = DateTime.Now,
|
|
ItemCode = variety.Code
|
|
};
|
|
await _db.Insertable(entity).ExecuteCommandAsync();
|
|
}
|
|
else
|
|
{
|
|
await _db.Updateable<MST_BOXNO_SEQ_NON_DATE>()
|
|
.SetColumns(i => i.LastNo == controlNo
|
|
&& i.ModifiedTime == DateTime.Now
|
|
&& i.ModifiedBy == "seyounth")
|
|
.Where(i => i.BeId == "2240" &&
|
|
i.ItemCode == variety.Code &&
|
|
i.CheckCode == checkCode).ExecuteCommandAsync();
|
|
}
|
|
}
|
|
|
|
public async Task<LabelResult> GetLabelResult(string itemCode, string lot, int controlNo)
|
|
{
|
|
string code = $"{itemCode.Trim()} {DateTime.Now.AddDays(0):yyMMdd}";
|
|
string code2 = $"{lot.Trim()}{controlNo.ToString().PadLeft(4, '0')}0";
|
|
|
|
// 使用 SqlSugar 进行查询
|
|
return await _db.Queryable<LabelResult>()
|
|
.Where(x =>
|
|
x.BAR_CODE.Substring(0, 24) == code &&
|
|
x.BAR_CODE.Substring(x.BAR_CODE.Length - 9, 9) == code2 &&
|
|
x.BE_ID == 2240
|
|
)
|
|
.FirstAsync();
|
|
}
|
|
} |