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 {
|
/// <summary>
|
/// 容器帮助类
|
/// </summary>
|
internal class ContainerHelper
|
{
|
/// <summary>
|
/// 容器绑定货品
|
/// </summary>
|
/// <param name="cnt"></param>
|
/// <param name="cGs"></param>
|
/// <returns></returns>
|
public static string BindingCG(string cnt, List<string> cGs)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
var logs = $"容器:{cnt},货品:{JsonConvert.SerializeObject(cGs)}";
|
try
|
{
|
var cntCgList = db.Queryable<TN_CG_Detail>().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<TN_CG_Detail>();
|
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<TN_CG_Detail>(bindCntCgList).ExecuteCommand() > 0)
|
{
|
LogHelper.Info($"插入容器货品关系表成功,{log}");
|
}
|
else
|
{
|
LogHelper.Info($"插入容器货品关系表失败,{log}");
|
return "容器绑定货品失败," + logs;
|
}
|
|
var cntid = db.Queryable<TN_Container>().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;
|
}
|
}
|
|
/// <summary>
|
/// 容器解绑货品
|
/// </summary>
|
/// <param name="cnt"></param>
|
/// <param name="cGs"></param>
|
/// <returns></returns>
|
public static string UnBindingCG(string cnt, List<string> cGs)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
var logs = $"容器:{cnt},货品:{JsonConvert.SerializeObject(cGs)}";
|
try
|
{
|
var cntCgList = db.Queryable<TN_CG_Detail>().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<TN_CG_Detail>().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<TN_Container>().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;
|
}
|
}
|
}
|
}
|