using HH.WCS.Mobox3.YNJT_BZP.models.other;
using HH.WCS.Mobox3.YNJT_BZP.util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static HH.WCS.Mobox3.YNJT_BZP.dispatch.NDC;
namespace HH.WCS.Mobox3.YNJT_BZP.wms {
///
/// 容器帮助类
///
internal class ContainerHelper {
internal static string GenerateCntrNo() {
var id = SYSHelper.GetSerialNumber("托盘号", "TP");
var date = DateTime.Now.ToString("yyMMdd");
return $"TP{date}{id.ToString().PadLeft(4, '0')}";
}
///
/// 判断容器是否有物料信息
///
///
///
internal static bool CheckEmpty(string cntr) {
//1.0 查货位容器表
var db = new SqlHelper().GetInstance();
return db.Queryable().Count(a => a.S_LOC_CODE.Trim() == cntr) == 0;
}
internal static bool AddCntr(string cntrCode ,int type)
{
var res = true;
var db = new SqlHelper().GetInstance();
try
{
var TN_Container = new Container { S_CODE = cntrCode, N_TYPE = type };
TN_Container.S_TYPE = Container.GetStateStr(type);
res = db.Insertable(TN_Container).ExecuteCommand() > 0;
}
catch (Exception ex)
{
res = false;
}
return res;
}
///
/// 根据容器号获取容器信息
///
///
///
internal static Container GetCntr(string cntr) {
var db = new SqlHelper().GetInstance();
return db.Queryable().Where(a => a.S_CODE == cntr).First();
}
///
/// 根据容器获取物料信息
///
///
///
internal static List GetCntrItemRel(string cntr) {
var db = new SqlHelper().GetInstance();
var list = db.Queryable().Where(a => a.S_CNTR_CODE == cntr).ToList();
return list;
}
internal static bool BindNewCntrItem(string loc,string cntrCode, string itemCode) {
var res = false;
var itemName = ItemHelper.GetItemInfo(itemCode).S_ITEM_NAME;
var db = new SqlHelper().GetInstance();
try {
db.BeginTran();
var cntr = new Container { S_CODE = cntrCode, N_DETAIL_COUNT = 1 };
db.Insertable(cntr).ExecuteCommand();
//获取物料信息,填充到容器货品明细,方便人工查看
var cir = new CntrItemRel { S_CNTR_CODE = cntr.S_CODE.Trim(), F_QTY = 1, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName };
db.Insertable(cir).ExecuteCommand();
var lcr = new LocCntrRel { S_CNTR_CODE = cntrCode, S_LOC_CODE = loc };
db.Insertable(lcr).ExecuteCommand();
db.CommitTran();
res = true;
}
catch (Exception ex) {
db.RollbackTran();
Console.WriteLine(ex.Message);
}
return res;
}
internal static bool addCntrItem(string cntrCode, CntrItemRel cntrItemRel)
{
var res = false;
var db = new SqlHelper().GetInstance();
try
{
db.BeginTran();
var container = db.Queryable().Where(a => a.S_CODE == cntrCode).First();
if (container == null)
{
container = new Container { S_CODE = cntrCode, N_DETAIL_COUNT = 1 };
db.Insertable(container).ExecuteCommand();
}
else
{
container.N_DETAIL_COUNT = 1;
db.Updateable(container).ExecuteCommand();
}
res = db.Insertable(cntrItemRel).ExecuteCommand() > 0;
db.CommitTran();
res = true;
}
catch (Exception ex)
{
db.RollbackTran();
Console.WriteLine(ex.Message);
}
return res;
}
internal static bool deleteCntrItem(string cntrCode)
{
var res = false;
var db = new SqlHelper().GetInstance();
try
{
db.BeginTran();
res = db.Deleteable().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand() > 0;
db.CommitTran();
res = true;
}
catch (Exception ex)
{
db.RollbackTran();
Console.WriteLine(ex.Message);
}
return res;
}
}
}