using System; using System.Data; using System.Collections.Generic; using System.Text; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.Areas.CommMng.Models; using HcUtility.Comm; using DSWeb.MvcShipping.Models.WMSDeliver; using DSWeb.Areas.CommMng.DAL; using DSWeb.MvcShipping.Helper; using DSWeb.MvcShipping.Models.MsStevedores; using DSWeb.MvcShipping.DAL.MsSysParamSet; using System.Data.SqlClient; using DSWeb.DataAccess; using DSWeb.EntityDA; using DSWeb.MvcShipping.Models.WMSNew; //Please add references namespace DSWeb.MvcShipping.DAL.WMSDeliver { /// /// 数据访问类:WMSDeliver /// public partial class WMSEIPSDeliverDAL { public WMSEIPSDeliverDAL() { } #region BasicMethod //static Database dbEIP = DatabaseFactory.CreateDatabase("EIP"); static public List GetDataList(string strCondition, int start, int limit, string userid, string username, string companyid, out int total, string sort = null) { /* var rangstr = GetRangDAStr("index", userid, username, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } */ var strSql = new StringBuilder(); strSql.Append(@"SELECT BSNO,DeliverNo,CustomerName,convert(char(10),DeliverDate,20) AS DeliverDate, convert(char(10),EnterDate,20) AS EnterDate,Factory,BuyContract,TruckNo,Driver,EnterOperater,GoodsNameTT, CASE BSStatus WHEN '0' THEN '新建' WHEN '1' THEN '入库请求' WHEN '2' THEN '接受入库请求' ELSE '已入库' END AS BSStatus,CORPID,REMARK FROM EIP_Deliver where 1=1 and BSStatus <> '0' "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } if (!string.IsNullOrEmpty(sort)) { var so = JsonConvert.Deserialize>(sort); string orderbyStr = " order by "; foreach (var s in so) { orderbyStr += s.property + " " + s.direction + ","; } orderbyStr = orderbyStr.Substring(0, orderbyStr.Length - 1); strSql.Append(orderbyStr); } else { strSql.Append(" order by DeliverNo DESC "); } int totalCount = 0; StringBuilder sb = PagerHelperEIP.PageSQL(strSql.ToString(), start, limit, out totalCount); total = totalCount; return SetData(sb); } /// /// 执行sql /// /// /// private static List SetData(StringBuilder strSql) { #region 公共代码 var headList = new List(); Database dbEIP = DatabaseFactory.CreateDatabase("EIP"); SqlCommand cmd = new SqlCommand(); cmd.CommandText = strSql.ToString(); cmd.CommandTimeout = 120000; //要加这一句 using (IDataReader row = dbEIP.ExecuteReader(cmd)) { while (row.Read()) { EIP_Deliver model = new EIP_Deliver(); #region 动软 if (row["BSNO"] != null) { model.BSNO = row["BSNO"].ToString(); } if (row["BSSTATUS"] != null) { model.BSSTATUS = row["BSSTATUS"].ToString(); } if (row["DELIVERNO"] != null) { model.DELIVERNO = row["DELIVERNO"].ToString(); } if (row["CUSTOMERNAME"] != null) { model.CUSTOMERNAME = row["CUSTOMERNAME"].ToString(); } if (row["FACTORY"] != null) { model.FACTORY = row["FACTORY"].ToString(); } if (row["BUYCONTRACT"] != null) { model.BUYCONTRACT = row["BUYCONTRACT"].ToString(); } if (row["GOODSNAMETT"] != null) { model.GOODSNAMETT = row["GOODSNAMETT"].ToString(); } if (row["DELIVERDATE"] != null && row["DELIVERDATE"].ToString() != "") { model.DELIVERDATE = row["DELIVERDATE"].ToString(); } if (row["DRIVER"] != null) { model.DRIVER = row["DRIVER"].ToString(); } if (row["TRUCKNO"] != null) { model.TRUCKNO = row["TRUCKNO"].ToString(); } if (row["ENTEROPERATER"] != null) { model.ENTEROPERATER = row["ENTEROPERATER"].ToString(); } if (row["ENTERDATE"] != null && row["ENTERDATE"].ToString() != "") { model.ENTERDATE = row["ENTERDATE"].ToString(); } if (row["CORPID"] != null && row["CORPID"].ToString() != "") { model.CORPID = row["CORPID"].ToString(); } if (row["REMARK"] != null && row["REMARK"].ToString() != "") { model.REMARK = row["REMARK"].ToString(); } #endregion headList.Add(model); } row.Close(); } return headList; #endregion } static public List GetTrayList(string strBSNO) { /* var rangstr = GetRangDAStr("index", userid, username, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } */ var strSql = new StringBuilder(); strSql.Append("select GID,BSNO,STOCKNO,TRAYNO,GOODSNAMETT,TTPKGS,TTWEIGHT,WMSNO,WMSOUTNO,ISSTOCKUP, "); strSql.Append("CNTRNO,SEALNO,REMARK,CORPID "); strSql.Append(" FROM EIP_Tray "); if (strBSNO.Trim() != "") { strSql.Append(" where BSNO='" + strBSNO + "'"); } return SetTrayData(strSql); } /// /// 执行sql /// /// /// private static List SetTrayData(StringBuilder strSql) { #region 公共代码 var headList = new List(); Database dbEIP = DatabaseFactory.CreateDatabase("EIP"); SqlCommand cmd = new SqlCommand(); cmd.CommandText = strSql.ToString(); cmd.CommandTimeout = 120000; //要加这一句 using (IDataReader row = dbEIP.ExecuteReader(cmd)) { while (row.Read()) { EIP_Tray model = new EIP_Tray(); #region 动软 if (row != null) { if (row["GID"] != null) { model.GID = row["GID"].ToString(); } if (row["BSNO"] != null) { model.BSNO = row["BSNO"].ToString(); } if (row["STOCKNO"] != null) { model.STOCKNO = row["STOCKNO"].ToString(); } if (row["TRAYNO"] != null) { model.TRAYNO = row["TRAYNO"].ToString(); } if (row["GOODSNAMETT"] != null) { model.GOODSNAMETT = row["GOODSNAMETT"].ToString(); } if (row["TTPKGS"] != null && row["TTPKGS"].ToString() != "") { model.TTPKGS = (row["TTPKGS"].ToString()); } if (row["TTWEIGHT"] != null && row["TTWEIGHT"].ToString() != "") { model.TTWEIGHT = (row["TTWEIGHT"].ToString()); } if (row["WMSNO"] != null) { model.WMSNO = row["WMSNO"].ToString(); } if (row["WMSOUTNO"] != null) { model.WMSOUTNO = row["WMSOUTNO"].ToString(); } if (row["ISSTOCKUP"] != null) { model.ISSTOCKUP = row["ISSTOCKUP"].ToString(); } if (row["CNTRNO"] != null) { model.CNTRNO = row["CNTRNO"].ToString(); } if (row["SEALNO"] != null) { model.SEALNO = row["SEALNO"].ToString(); } if (row["REMARK"] != null) { model.REMARK = row["REMARK"].ToString(); } if (row["CORPID"] != null) { model.REMARK = row["CORPID"].ToString(); } } #endregion headList.Add(model); } row.Close(); } return headList; #endregion } public static bool UpdateByDeliverNo(string bsno, string state,bool flag) { StringBuilder strSql = new StringBuilder(); if (flag) { strSql.Append("update EIP_Deliver set BSSTATUS='" + state + "' where BSNO IN (" + bsno + ")"); } else { strSql.Append("update EIP_Deliver set BSSTATUS='" + state + "' where BSNO='" + bsno + "'"); } Database dbEIP = DatabaseFactory.CreateDatabase("EIP"); int rst = dbEIP.ExecuteNonQuery(CommandType.Text, strSql.ToString()); if (rst > 0) { return true; } else { return false; } } public static bool UpdateTrayNo(string gid, string trayNo, string storageName) { StringBuilder strSql = new StringBuilder(); strSql.Append("update EIP_Tray set TRAYNO='" + trayNo + "',STORAGENAME='" + storageName + "' where GID='" + gid + "'"); Database dbEIP = DatabaseFactory.CreateDatabase("EIP"); int rst = dbEIP.ExecuteNonQuery(CommandType.Text, strSql.ToString()); if (rst > 0) { return true; } else { return false; } } static public List GetGoodsList(string strTRGID) { /* var rangstr = GetRangDAStr("index", userid, username, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } */ var strSql = new StringBuilder(); strSql.Append("select GID,BSNO,TRGID,SPECS,GOODSNAME,PKGS,UNIT,WEIGHT,REMARK,REMNANT,CONTRACTNUM,TRAYNO "); strSql.Append(" FROM EIP_Goods "); if (strTRGID.Trim() != "") { strSql.Append(" where TRGID='" + strTRGID + "'"); } return SetGoodsData(strSql); } /// /// 执行sql /// /// /// private static List SetGoodsData(StringBuilder strSql) { #region 公共代码 var headList = new List(); Database dbEIP = DatabaseFactory.CreateDatabase("EIP"); SqlCommand cmd = new SqlCommand(); cmd.CommandText = strSql.ToString(); cmd.CommandTimeout = 120000; //要加这一句 using (IDataReader row = dbEIP.ExecuteReader(cmd)) { while (row.Read()) { EIP_Goods model = new EIP_Goods(); #region 动软 if (row != null) { if (row["GID"] != null) { model.GID = row["GID"].ToString(); } if (row["BSNO"] != null) { model.BSNO = row["BSNO"].ToString(); } if (row["TRGID"] != null) { model.TRGID = row["TRGID"].ToString(); } if (row["SPECS"] != null) { model.SPECS = row["SPECS"].ToString(); } if (row["GOODSNAME"] != null) { model.GOODSNAME = row["GOODSNAME"].ToString(); } if (row["PKGS"] != null && row["PKGS"].ToString() != "") { model.PKGS = int.Parse(row["PKGS"].ToString()); } if (row["UNIT"] != null) { model.UNIT = row["UNIT"].ToString(); } if (row["WEIGHT"] != null && row["WEIGHT"].ToString() != "") { model.WEIGHT = decimal.Parse(row["WEIGHT"].ToString()); } if (row["REMARK"] != null) { model.REMARK = row["REMARK"].ToString(); } if (row["REMNANT"] != null && row["REMNANT"].ToString() != "") { model.REMNANT = int.Parse(row["REMNANT"].ToString()); } if (row["CONTRACTNUM"] != null && row["CONTRACTNUM"].ToString() != "") { model.CONTRACTNUM = decimal.Parse(row["CONTRACTNUM"].ToString()); } if (row["TRAYNO"] != null) { model.TRAYNO = row["TRAYNO"].ToString(); } } #endregion headList.Add(model); } row.Close(); } return headList; #endregion } static public bool DeliverToWMS(string data,string userid) { var deliverList = JsonConvert.Deserialize>(data); bool flag = false; string msg = ""; foreach (var item in deliverList) { try { WMSNew wms = new WMSNew(); wms.GID = item.BSNO; wms.WMSNO = item.DELIVERNO; wms.CUSTOMERNAME = item.CUSTOMERNAME; wms.FACTORY = item.FACTORY; wms.CONTRACTNO = item.BUYCONTRACT; wms.GOODSNAME = item.GOODSNAMETT; wms.WMSDATE = item.DELIVERDATE; wms.CREATEUSER = item.ENTEROPERATER; wms.CREATETIME = item.ENTERDATE; wms.CHARGEUNIT = "托"; wms.STARTBILLINGDATE = item.DELIVERDATE; wms.ARCLIENT = item.CUSTOMERNAME; wms.CORPID = item.CORPID; wms.GOODSNAMEID = item.GOODSNAMETT; wms.STORAGENAME = BasicDataRefDAL.GetHTStorageName(); wms.GOODSPACKSTOCK = "0"; wms.GOODSSTOCK = "0"; wms.GOODSPACK = "0"; wms.GOODSRKSL = "0"; wms.GOODSPACKACTUAL = "0"; wms.GOODSRKSLACTUAL = "0"; wms.MARKETVALUE = "0"; wms.BANKVALUE = "0"; wms.GOODSKGS = "0"; wms.ISCHANGE = "0"; wms.REMARK = item.REMARK; wms.ISLOCK = "0"; wms.TiDanJianShu = "0"; wms.DbOperationType = DbOperationType.DbotIns; wms.ModelUIStatus = "I"; List trayList = WMSEIPSDeliverDAL.GetTrayList(item.BSNO); List wmsInList = new List(); WMSNewIN wmsIn = new WMSNewIN(); int tmpPack = 0; decimal tmpKgs = 0; foreach (var itemTray in trayList) { wmsIn.GID = itemTray.GID; wmsIn.ASSOCIATEDNO = item.BSNO; wmsIn.TRAYNO = itemTray.TRAYNO; wmsIn.GOODSNAME = itemTray.GOODSNAMETT; wmsIn.JIANSHU1 = itemTray.TTPKGS; wmsIn.GOODSPACK = itemTray.TTPKGS; wmsIn.GOODSPACKSTOCK = itemTray.TTPKGS; tmpPack += Convert.ToInt32(itemTray.TTPKGS); //wmsIn.GOODSKGS = itemTray.TTWEIGHT; //wmsIn.GOODSSTOCK = itemTray.TTWEIGHT; wmsIn.GOODSKGS = "1"; wmsIn.GOODSSTOCK = "1"; tmpKgs += 1; wmsIn.GOODSRKSL = "1"; wmsIn.CHARGEUNIT = "托"; wmsIn.REMARK = itemTray.REMARK; wmsIn.GOODSNAMEID = itemTray.GOODSNAMETT; wmsIn.STORAGENAME = wms.STORAGENAME; wmsIn.CONTRACTNO = wms.CONTRACTNO; WMSDeliverDAL.AddWMSIN(wmsIn); List goodsList = WMSEIPSDeliverDAL.GetGoodsList(itemTray.GID); foreach (var itemGoods in goodsList) { WMSDeliverDAL.AddGoods(itemGoods); } } wms.GOODSPACK = Convert.ToString(tmpPack); wms.GOODSKGS = Convert.ToString(tmpKgs); wms.GOODSSTOCK = Convert.ToString(tmpKgs); wms.GOODSPACKSTOCK = Convert.ToString(tmpPack); WMSDeliverDAL.Add(wms); //更新EIP中送货单状态 flag = WMSEIPSDeliverDAL.UpdateByDeliverNo(item.BSNO, "2",false); } catch (Exception ee) { msg = ee.Message; } } return flag; } #endregion BasicMethod #region ExtensionMethod public static DataSet GetTrayAndGoodsListWithDeliver(string deliverNO) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("SELECT DELIVERNO,GOODSNAMETT,BSNO,CUSTOMERNAME,BUYCONTRACT,"); strSql.AppendLine("convert(char(10),DeliverDate,20) AS DeliverDate,"); strSql.AppendLine("convert(char(10),EnterDate,20) AS EnterDate,"); strSql.AppendLine("Factory,BuyContract,TruckNo,Driver,EnterOperater,BSStatus,CORPID,"); strSql.AppendLine("CASE BSStatus WHEN '0' THEN '新建' WHEN '1' THEN '入库请求' WHEN '2' THEN '接受入库请求' ELSE '已入库' END AS BSStatusName,"); strSql.AppendLine("C.SHOWNAME CompanyName,C.COMNAME CompanyFullName"); strSql.AppendLine("FROM EIP_Deliver D"); strSql.AppendLine("JOIN [USER] C ON D.CORPID=C.COMNAME"); strSql.AppendLine($"WHERE DELIVERNO='{deliverNO}';"); strSql.AppendLine("SELECT T.GID,T.TRAYNO,T.GOODSNAMETT,T.TTPKGS,T.TTWEIGHT,D.BSNO"); strSql.AppendLine("from EIP_Tray T"); strSql.AppendLine("JOIN EIP_DeliverTray DT ON T.GID=DT.TRGID"); strSql.AppendLine("JOIN EIP_Deliver D ON DT.BSNO=D.BSNO"); strSql.AppendLine($"WHERE D.DELIVERNO='{deliverNO}';"); strSql.AppendLine("SELECT G.* from EIP_Tray T"); strSql.AppendLine("JOIN EIP_DeliverTray DT ON T.GID=DT.TRGID"); strSql.AppendLine("JOIN EIP_Deliver D ON DT.BSNO=D.BSNO"); strSql.AppendLine("JOIN EIP_Goods G ON G.TRGID=T.GID"); strSql.AppendLine($"WHERE D.DELIVERNO='{deliverNO}';"); Database dbEIP = DatabaseFactory.CreateDatabase("EIP"); return dbEIP.ExecuteDataSet(CommandType.Text, strSql.ToString()); } #endregion ExtensionMethod } }