2025-03-16 03:17:36 +08:00
|
|
|
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)
|
|
|
|
{
|
2025-03-17 02:52:27 +08:00
|
|
|
if (grade == "AA")
|
|
|
|
grade = "1";
|
2025-03-16 03:17:36 +08:00
|
|
|
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>()
|
2025-03-20 20:45:38 +08:00
|
|
|
.SetColumns(i => new MST_BOXNO_SEQ_NON_DATE
|
|
|
|
{
|
|
|
|
LastNo = controlNo,
|
|
|
|
ModifiedTime = DateTime.Now,
|
|
|
|
ModifiedBy = "seyounth"
|
|
|
|
})
|
2025-03-16 03:17:36 +08:00
|
|
|
.Where(i => i.BeId == "2240" &&
|
|
|
|
i.ItemCode == variety.Code &&
|
|
|
|
i.CheckCode == checkCode).ExecuteCommandAsync();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public async Task<LabelResult> GetLabelResult(string itemCode, string lot, int controlNo)
|
|
|
|
{
|
2025-03-19 02:42:56 +08:00
|
|
|
try
|
|
|
|
{
|
|
|
|
string code = $"{itemCode.Trim()} {DateTime.Now.AddDays(0):yyMMdd}";
|
2025-03-20 20:45:38 +08:00
|
|
|
string code2 = $"{lot.Trim()}{(controlNo - 1).ToString().PadLeft(4, '0')}0";
|
2025-03-16 03:17:36 +08:00
|
|
|
|
2025-03-19 02:42:56 +08:00
|
|
|
// 使用 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();
|
2025-03-20 20:45:38 +08:00
|
|
|
}
|
|
|
|
catch (Exception e)
|
2025-03-19 02:42:56 +08:00
|
|
|
{
|
|
|
|
throw e;
|
|
|
|
}
|
2025-03-20 20:45:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public async Task AddLabelResult(LabelResult result)
|
|
|
|
{
|
2025-03-21 09:07:39 +08:00
|
|
|
try
|
|
|
|
{
|
|
|
|
var mst_item = await _db.Queryable<MST_ITEM>()
|
2025-04-10 16:20:00 +08:00
|
|
|
.FirstAsync(t => t.BE_ID == "2240"
|
|
|
|
&& t.ITEM_CODE == result.ITEM_CODE
|
|
|
|
&& t.ITEM_CODE_TYPE == "FERT");
|
2025-03-21 09:07:39 +08:00
|
|
|
result.WMS_UOM = mst_item.WMS_UOM_ID;
|
|
|
|
result.ERP_UOM = mst_item.ERP_UOM_ID;
|
2025-04-10 16:20:00 +08:00
|
|
|
|
2025-03-21 09:07:39 +08:00
|
|
|
var workCenter = await _db.Queryable<MST_ITEM_VERSION>()
|
|
|
|
.FirstAsync(v => v.ITEM_CODE == result.ITEM_CODE);
|
2025-04-10 16:20:00 +08:00
|
|
|
result.MFG_LINE = (workCenter?.WORK_CENTER) ?? "TYJP11";
|
2025-03-21 09:07:39 +08:00
|
|
|
await _db.Insertable(result).ExecuteCommandAsync();
|
2025-04-10 16:20:00 +08:00
|
|
|
}
|
|
|
|
catch (Exception e)
|
2025-03-21 09:07:39 +08:00
|
|
|
{
|
|
|
|
}
|
2025-04-10 16:20:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public async Task AddPdaPutawayRecord(string barcode)
|
|
|
|
{
|
|
|
|
await _db.Insertable(new PDA_PUTAWAY
|
|
|
|
{
|
|
|
|
BE_ID = "2240",
|
|
|
|
BARCODE_TYPE = "1111111",
|
|
|
|
BAR_CODE = barcode,
|
|
|
|
SCAN_DATE = DateTime.Now,
|
|
|
|
ISSUE_FLAG = "N",
|
|
|
|
SCAN_TYPE = "",
|
|
|
|
PALLET_NO = "",
|
|
|
|
LOCATION = "",
|
|
|
|
PDA_USER_ID = "TY_ACP",
|
|
|
|
CREATED_BY = "seyounth",
|
|
|
|
STATUS = "R"
|
|
|
|
}).ExecuteCommandAsync();
|
|
|
|
await _db.Updateable<LabelResult>()
|
|
|
|
.Where(x => x.BAR_CODE == barcode)
|
|
|
|
.SetColumns(x => x.TRI_INTERFACE_YN, "Y").ExecuteCommandAsync();
|
2025-03-16 03:17:36 +08:00
|
|
|
}
|
|
|
|
}
|