2025-03-16 03:17:36 +08:00

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();
}
}