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; } } } }