using HH.WCS.Mobox3.AnGang.models;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static HH.WCS.Mobox3.AnGang.dispatch.NDC;
using HH.WCS.Mobox3.AnGang.util;
namespace HH.WCS.Mobox3.AnGang.wms {
///
/// 容器帮助类
///
internal class ContainerHelper
{
///
/// 容器绑定货品
///
///
///
///
public static string BindingCG(string cnt, List cGs)
{
var db = new SqlHelper().GetInstance();
var logs = $"容器:{cnt},货品:{JsonConvert.SerializeObject(cGs)}";
try
{
var cntCgList = db.Queryable().Where(a => cGs.Contains(a.S_CG_ID) && a.S_CNTR_CODE == cnt).ToList();
if (cntCgList.Count > 0)
{
cGs = cGs.Except(cntCgList.Select(a => a.S_CNTR_CODE).ToList()).ToList();
}
var bindCntCgList = new List();
foreach (var item in cGs)
{
bindCntCgList.Add(new TN_CG_Detail() { S_CNTR_CODE = cnt, S_CG_ID = item });
}
var log = JsonConvert.SerializeObject(bindCntCgList);
if (db.Insertable(bindCntCgList).ExecuteCommand() > 0)
{
LogHelper.Info($"插入容器货品关系表成功,{log}");
}
else
{
LogHelper.Info($"插入容器货品关系表失败,{log}");
return "容器绑定货品失败," + logs;
}
var cntid = db.Queryable().First(a => a.S_CODE == cnt);
if (cntid != null)
{
cntid.T_MODIFY = System.DateTime.Now;
log = JsonConvert.SerializeObject(cntid);
if (db.Updateable(cntid).UpdateColumns(it => new { it.T_MODIFY }).ExecuteCommand() > 0)
{
LogHelper.Info($"更新容器表成功,{log}");
}
else
{
LogHelper.Info($"更新容器表失败,{log}");
return "容器绑定货品失败," + logs;
}
}
else
{
LogHelper.Info($"在数据库中未找到该容器,无需更新,容器:{cnt}");
}
return "容器绑定货品成功," + logs;
}
catch (Exception ex)
{
LogHelper.Info($"发生了异常,货位绑定容器失败,");
return "容器绑定货品失败," + ex.Message;
}
}
///
/// 容器解绑货品
///
///
///
///
public static string UnBindingCG(string cnt, List cGs)
{
var db = new SqlHelper().GetInstance();
var logs = $"容器:{cnt},货品:{JsonConvert.SerializeObject(cGs)}";
try
{
var cntCgList = db.Queryable().Where(a => cGs.Contains(a.S_CG_ID) && a.S_CNTR_CODE == cnt).ToList();
if (cntCgList.Count == 0)
{
LogHelper.Info($"容器无需解绑货品,在数据库中未找到{JsonConvert.SerializeObject(cGs)}相关的容器货品关系表信息");
return "容器无需解绑货品,解绑成功" + logs;
}
cGs = cntCgList.Select(a => a.S_CG_ID).ToList();
var log = JsonConvert.SerializeObject(cGs);
if (db.Deleteable().Where(it => cGs.Contains(it.S_CG_ID) && it.S_CNTR_CODE == cnt).ExecuteCommand() > 0)
{
LogHelper.Info($"删除容器货品关系表成功,{log}");
}
else
{
LogHelper.Info($"删除容器货品关系表失败,{log}");
return "容器绑定货品失败," + logs;
}
var CntId = db.Queryable().First(a => a.S_CODE == cnt);
if (CntId != null)
{
CntId.T_MODIFY = System.DateTime.Now;
log = JsonConvert.SerializeObject(CntId);
if (db.Updateable(CntId).UpdateColumns(it => new { it.T_MODIFY }).ExecuteCommand() > 0)
{
LogHelper.Info($"更新容器表成功,{log}");
}
else
{
LogHelper.Info($"更新容器表失败,{log}");
return "容器绑定货品失败," + logs;
}
}
else
{
LogHelper.Info($"在数据库中未找到该容器,无需更新,容器:{cnt}");
}
return "容器解绑货品成功," + logs;
}
catch (Exception ex)
{
LogHelper.Info($"发生了异常,货位解绑容器失败,{ex.Message}");
return "容器解绑货品失败," + logs;
}
}
}
}