131 lines
4.5 KiB
C#
Raw Normal View History

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>()
.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)
{
try
{
string code = $"{itemCode.Trim()} {DateTime.Now.AddDays(0):yyMMdd}";
string code2 = $"{lot.Trim()}{(controlNo - 1).ToString().PadLeft(4, '0')}0";
2025-03-16 03:17:36 +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();
}
catch (Exception e)
{
throw e;
}
}
public async Task AddLabelResult(LabelResult result)
{
2025-03-21 09:07:39 +08:00
try
{
var mst_item = await _db.Queryable<MST_ITEM>()
.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-03-21 09:07:39 +08:00
var workCenter = await _db.Queryable<MST_ITEM_VERSION>()
.FirstAsync(v => v.ITEM_CODE == result.ITEM_CODE);
result.MFG_LINE = (workCenter?.WORK_CENTER) ?? "TYJP11";
2025-03-21 09:07:39 +08:00
await _db.Insertable(result).ExecuteCommandAsync();
}
catch (Exception e)
2025-03-21 09:07:39 +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
}
}