using HH.WCS.Mobox3.YNJT_PT.models;
|
using HH.WCS.Mobox3.YNJT_PT.models.other;
|
using HH.WCS.Mobox3.YNJT_PT.util;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using static HH.WCS.Mobox3.YNJT_PT.dispatch.NDC;
|
|
namespace HH.WCS.Mobox3.YNJT_PT.wms {
|
/// <summary>
|
/// 容器帮助类
|
/// </summary>
|
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')}";
|
}
|
|
/// <summary>
|
/// TN_ContainerHelper.test("4L天然水箱装6入", 50, "335ml东方树叶15入", 30);
|
/// </summary>
|
/// <param name="item1"></param>
|
/// <param name="qty1"></param>
|
/// <param name="item2"></param>
|
/// <param name="qty2"></param>
|
//internal static void test(string item1, int qty1, string item2, int qty2) {
|
// var db = new SqlHelper<object>().GetInstance();
|
// var cntr = db.Queryable<TN_Container>().Includes(a => a.CntrItemRelList).
|
// Where(a => a.CntrItemRelList.Count(b => b.S_ITEM_CODE == item1 && int.Parse(b.F_QTY) > qty1) > 0
|
// && a.CntrItemRelList.Count(b => b.S_ITEM_CODE == item2 && int.Parse(b.F_QTY) > qty2) > 0).First();
|
//}
|
|
/// <summary>
|
/// 判断容器是否有物料信息
|
/// </summary>
|
/// <param name="cntr"></param>
|
/// <returns></returns>
|
internal static bool CheckEmpty(string cntr) {
|
//1.0 查货位容器表
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<LocCntrRel>().Count(a => a.S_LOC_CODE.Trim() == cntr) == 0;
|
|
}
|
|
internal static bool AddCntr(string cntrCode)
|
{
|
var res = false;
|
var db = new SqlHelper<object>().GetInstance();
|
var TN_Container = new Container { S_CODE = cntrCode };
|
try
|
{
|
res = db.Insertable<Container>(TN_Container).ExecuteCommand() > 0;
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Info($"添加容器错误,错误原因:{ex.Message}", "WMS");
|
}
|
return res;
|
}
|
|
internal static bool AddCntr(string cntrCode, string itemCode) {
|
var res = false;
|
var db = new SqlHelper<object>().GetInstance();
|
var TN_Container = new Container { S_CODE = cntrCode };
|
var cntrItemRel = new CntrItemRel { S_CNTR_CODE = cntrCode, S_ITEM_CODE = itemCode };
|
try {
|
db.BeginTran();
|
|
db.Insertable<Container>(TN_Container).ExecuteCommand();
|
db.Insertable<CntrItemRel>(cntrItemRel).ExecuteCommand();
|
|
db.CommitTran();
|
res = true;
|
}
|
catch (Exception ex) {
|
db.RollbackTran();
|
|
}
|
return res;
|
}
|
|
/// <summary>
|
/// 根据容器号获取容器信息
|
/// </summary>
|
/// <param name="cntr"></param>
|
/// <returns></returns>
|
internal static Container GetCntr(string cntr, bool create = false) {
|
//1.0 查货位容器表
|
var db = new SqlHelper<object>().GetInstance();
|
var old = db.Queryable<Container>().Where(a => a.S_CODE == cntr).First();
|
if (old == null && create) {
|
var model = new Container { S_CODE = cntr };
|
if (db.Insertable(model).ExecuteCommand() > 0) {
|
old = model;
|
}
|
}
|
return old;
|
|
}
|
|
/// <summary>
|
/// 根据容器获取物料信息
|
/// </summary>
|
/// <param name="cntr"></param>
|
/// <returns></returns>
|
internal static List<CntrItemRel> GetCntrItemRel(string cntr) {
|
var db = new SqlHelper<object>().GetInstance();
|
var list = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr).ToList();
|
return list;
|
}
|
|
/// <summary>
|
/// 根据容器获取物料信息
|
/// </summary>
|
/// <param name="cntr"></param>
|
/// <returns></returns>
|
internal static bool deleteCntrItemRelByCntr(string cntr)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
var container = ContainerHelper.GetCntr(cntr);
|
if(container != null)
|
{
|
db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr).ExecuteCommand();
|
|
container.N_DETAIL_COUNT = 0;
|
db.Updateable(container).ExecuteCommand();
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 添加容器物料信息
|
/// </summary>
|
/// <returns></returns>
|
public static bool addCntrItemRel( string cntrCode,GreenTireInformation info)
|
{
|
bool res = false;
|
var db = new SqlHelper<object>().GetInstance();
|
var container = ContainerHelper.GetCntr(cntrCode);
|
if (container != null)
|
{
|
try
|
{
|
db.BeginTran();
|
db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand();
|
|
CntrItemRel cntrItemRel = new CntrItemRel()
|
{
|
S_CG_ID = info.BARCODE,
|
S_CNTR_CODE = cntrCode,
|
S_ITEM_CODE = info.ITEMCODE,
|
S_CELL_NO = info.TIRECODE,
|
F_QTY = info.QTY,
|
S_MCN = info.MCN,
|
S_OPR = info.OPR,
|
S_OPR02 = info.OPR02,
|
S_OPR03 = info.OPR03,
|
S_OPR04 = info.OPR04,
|
S_WINDUP = info.WINDUP,
|
S_TXNDATE = info.TXNDATE,
|
S_DATE_SHIFT = info.DATE_SHIFT,
|
S_EFFECTIVE_TIME = info.S_EFFECTIVE_TIME,
|
S_EXPIRATION_TIME = info.S_EXPIRATION_TIME,
|
N_URGENT_FLAG = info.N_URGENT_FLAG,
|
};
|
|
db.Insertable(cntrItemRel).ExecuteCommand();
|
container.N_DETAIL_COUNT = 1;
|
db.Updateable(container).ExecuteCommand();
|
db.CommitTran();
|
res = true;
|
}
|
catch (Exception ex)
|
{
|
db.RollbackTran();
|
}
|
}
|
return res;
|
}
|
|
}
|
}
|