You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
513 lines
18 KiB
C#
513 lines
18 KiB
C#
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;
|
|
|
|
|
|
//Please add references
|
|
namespace DSWeb.MvcShipping.DAL.WMSStock
|
|
{
|
|
/// <summary>
|
|
/// 数据访问类:WMSDeliver
|
|
/// </summary>
|
|
public partial class WMSEIPStockDAL
|
|
{
|
|
public WMSEIPStockDAL()
|
|
{ }
|
|
#region BasicMethod
|
|
|
|
|
|
//static Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
static public List<EIP_Stock> 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,STOCKUPNO,CUSTOMERNAME,SALECONTRACT,GOODSNAMETT,CORPID,
|
|
convert(char(10),STOCKUPDATE,20) AS STOCKUPDATE,
|
|
convert(char(10),ENTERDATE,20) AS ENTERDATE,
|
|
ISNULL(ISRECVED,0) AS ISRECVED,
|
|
CASE BSStatus WHEN '0' THEN '新建'
|
|
WHEN '1' THEN '待备货' WHEN '2' THEN '备货中'
|
|
WHEN '3' THEN '已备货' WHEN '4' THEN '已装箱'
|
|
ELSE '出库完成' END AS BSSTATUS,ENTEROPERATER,
|
|
REMARK,EXPORTNO
|
|
FROM EIP_StockUp where 1=1 AND BSStatus = '3' AND (IsRecved is null or IsRecved='0') ");
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
if (!string.IsNullOrEmpty(sort))
|
|
{
|
|
var so = JsonConvert.Deserialize<List<SortObjectDeliver>>(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 STOCKUPNO DESC ");
|
|
}
|
|
|
|
int totalCount = 0;
|
|
|
|
StringBuilder sb = PagerHelperEIP.PageSQL(strSql.ToString(), start, limit, out totalCount);
|
|
total = totalCount;
|
|
return SetData(sb);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 执行sql
|
|
/// </summary>
|
|
/// <param name="strSql"></param>
|
|
/// <returns></returns>
|
|
private static List<EIP_Stock> SetData(StringBuilder strSql)
|
|
{
|
|
#region 公共代码
|
|
var headList = new List<EIP_Stock>();
|
|
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_Stock model = new EIP_Stock();
|
|
|
|
if (row != null)
|
|
{
|
|
if (row["BSNO"] != null)
|
|
{
|
|
model.BSNO = row["BSNO"].ToString();
|
|
}
|
|
if (row["BSSTATUS"] != null)
|
|
{
|
|
model.BSSTATUS = row["BSSTATUS"].ToString();
|
|
}
|
|
if (row["STOCKUPNO"] != null)
|
|
{
|
|
model.STOCKUPNO = row["STOCKUPNO"].ToString();
|
|
}
|
|
if (row["CUSTOMERNAME"] != null)
|
|
{
|
|
model.CUSTOMERNAME = row["CUSTOMERNAME"].ToString();
|
|
}
|
|
if (row["SALECONTRACT"] != null)
|
|
{
|
|
model.SALECONTRACT = row["SALECONTRACT"].ToString();
|
|
}
|
|
if (row["GOODSNAMETT"] != null)
|
|
{
|
|
model.GOODSNAMETT = row["GOODSNAMETT"].ToString();
|
|
}
|
|
if (row["STOCKUPDATE"] != null && row["STOCKUPDATE"].ToString() != "")
|
|
{
|
|
model.STOCKUPDATE = row["STOCKUPDATE"].ToString();
|
|
}
|
|
|
|
if (row["REMARK"] != null)
|
|
{
|
|
model.REMARK = row["REMARK"].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["ISRECVED"] != null && row["ISRECVED"].ToString() != "")
|
|
{
|
|
model.ISRECVED = row["ISRECVED"].ToString();
|
|
}
|
|
if (row["EXPORTNO"] != null && row["EXPORTNO"].ToString() != "")
|
|
{
|
|
model.EXPORTNO = row["EXPORTNO"].ToString();
|
|
}
|
|
}
|
|
headList.Add(model);
|
|
}
|
|
row.Close();
|
|
}
|
|
return headList;
|
|
#endregion
|
|
}
|
|
|
|
|
|
static public List<EIP_Tray> 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 s.GID,s.BSNO,s.STOCKUPNO,s.TRAYNO,s.GOODSNAMETT,");
|
|
strSql.Append(" s.TTPKGS,s.TTWEIGHT,s.WMSNO,s.WMSOUTNO,s.ISSTOCKUP,");
|
|
strSql.Append("s.CNTRNO,s.SEALNO,s.STORAGENAME,d.DeliverNO ");
|
|
strSql.Append(" from vw_eip_stock_tray s inner join vw_eip_deliver_tray d");
|
|
strSql.Append(" on s.gid=d.gid ");
|
|
if (strBSNO.Trim() != "")
|
|
{
|
|
strSql.Append(" where s.BSNO='" + strBSNO + "'");
|
|
}
|
|
|
|
|
|
return SetTrayData(strSql);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 执行sql
|
|
/// </summary>
|
|
/// <param name="strSql"></param>
|
|
/// <returns></returns>
|
|
private static List<EIP_Tray> SetTrayData(StringBuilder strSql)
|
|
{
|
|
#region 公共代码
|
|
var headList = new List<EIP_Tray>();
|
|
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["STOCKUPNO"] != null)
|
|
{
|
|
model.STOCKNO = row["STOCKUPNO"].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["DELIVERNO"] != null)
|
|
{
|
|
model.DELIVERNO = row["DELIVERNO"].ToString();
|
|
}
|
|
|
|
if (row["STORAGENAME"] != null)
|
|
{
|
|
model.STORAGENAME = row["STORAGENAME"].ToString();
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
headList.Add(model);
|
|
}
|
|
row.Close();
|
|
}
|
|
return headList;
|
|
#endregion
|
|
}
|
|
public static bool UpdateByStockNo(string bsno, string state)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("update EIP_StockUp 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 UpdateRecvedByStockNo(string bsno)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("update EIP_StockUp set ISRECVED='1' 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 UpdateSealInfo(string TrayNo, string SealNo, string CntrNo)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("update EIP_Tray set SEALNO='" + SealNo + "',CNTRNO='" + CntrNo + "' where TRAYNO='" + TrayNo + "'");
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
|
|
int rst = dbEIP.ExecuteNonQuery(CommandType.Text, strSql.ToString());
|
|
if (rst > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static DBResult UpdateTrayState(string outbsno)
|
|
{
|
|
DBResult result = new DBResult();
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
|
|
using (var conn = dbEIP.CreateConnection())
|
|
{
|
|
conn.Open();
|
|
var tran = conn.BeginTransaction();
|
|
try
|
|
{
|
|
//更新托
|
|
var cmdUpdateTray = dbEIP.GetSqlStringCommand("update EIP_Tray set ISSCAN = '0', ISSTOCKUP = '0' where GID in (select gid from VW_EIP_Stock_Tray where STOCKUPNO ='" + outbsno+"')");
|
|
dbEIP.ExecuteNonQuery(cmdUpdateTray, tran);
|
|
|
|
//更新备货单
|
|
var cmdUpdateStock = dbEIP.GetSqlStringCommand("update EIP_StockUP set BSSTATUS = '1', IsRecved = '0' where STOCKUPNO = '" + outbsno + "'");
|
|
dbEIP.ExecuteNonQuery(cmdUpdateStock, tran);
|
|
|
|
|
|
tran.Commit();
|
|
result.Success = true;
|
|
result.Message = "备货单状态已更新";
|
|
}
|
|
catch (Exception ee)
|
|
{
|
|
|
|
tran.Rollback();
|
|
result.Success = false;
|
|
result.Message = "部分操作失败,请尽快联系管理员解决,并告知返回值" + ee.Message + ",避免造成更大的数据损失!";
|
|
return result;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public static bool ISWMS(string BSNO)
|
|
{
|
|
string strSql = "select top 1 deliverstatus from VW_EIP_Stock_Tray where bsno='" + BSNO + "' ";
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
string deliverstatus = "";
|
|
using (IDataReader reader = dbEIP.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
|
|
while (reader.Read())
|
|
{
|
|
deliverstatus = Convert.ToString(reader["deliverstatus"]);
|
|
|
|
break;
|
|
}
|
|
|
|
reader.Close();
|
|
}
|
|
|
|
if (deliverstatus != "3")
|
|
return false;
|
|
else
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
#endregion BasicMethod
|
|
#region ExtensionMethod
|
|
/// <summary>
|
|
/// 获取待备货列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static DataTable GetStockUpList()
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.AppendLine("SELECT BSNO,STOCKUPNO,CUSTOMERNAME,SALECONTRACT,GOODSNAMETT,CORPID,");
|
|
strSql.AppendLine("convert(char(10),STOCKUPDATE,20) AS STOCKUPDATE,");
|
|
strSql.AppendLine("convert(char(10),ENTERDATE,20) AS ENTERDATE,ENTEROPERATER,");
|
|
strSql.AppendLine("C.SHOWNAME CompanyName,C.COMNAME CompanyFullName");
|
|
strSql.AppendLine("FROM EIP_StockUp SU");
|
|
strSql.AppendLine("JOIN [User] C ON SU.CORPID=C.COMNAME ");
|
|
strSql.AppendLine("where BSStatus = '1' OR BSStatus = '2' ");
|
|
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
var ds = dbEIP.ExecuteDataSet(CommandType.Text, strSql.ToString());
|
|
return ds.Tables[0];
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取待备货列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static DataTable GetTrayListForStockUp(string BSNO)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.AppendLine("SELECT T.GID,T.TRAYNO,T.GOODSNAMETT,T.TTPKGS,T.TTWEIGHT,SU.BSNO,ISNULL(T.ISSCAN,'0') ISSCAN,ISNULL(T.AREANAME,'') AREANAME");
|
|
strSql.AppendLine("FROM EIP_StockUp SU");
|
|
strSql.AppendLine("JOIN EIP_StockTray ST ON SU.BSNO=ST.BSNO");
|
|
strSql.AppendLine("JOIN EIP_Tray T ON T.GID=ST.TRGID");
|
|
strSql.AppendLine($"WHERE SU.BSNO='{BSNO}'");
|
|
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
var ds = dbEIP.ExecuteDataSet(CommandType.Text, strSql.ToString());
|
|
return ds.Tables[0];
|
|
|
|
}
|
|
|
|
public static bool SetStockUp(string trayNO, string bsno, out string msg)
|
|
{
|
|
//检验状态是否可以扫描
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
var sql = $@"SELECT D.BSSTATUS
|
|
FROM EIP_Tray T
|
|
JOIN EIP_Deliver D ON D.BSNO=t.BSNO
|
|
where t.trayno='{trayNO}'";
|
|
object objSta = dbEIP.ExecuteScalar(CommandType.Text, sql);
|
|
if (objSta == DBNull.Value || objSta.ToString() != "3")
|
|
{
|
|
msg = "此托号未入库,不允许扫描备货";
|
|
return false;
|
|
}
|
|
|
|
var strSql = new StringBuilder($"UPDATE EIP_Tray SET ISSCAN=1 WHERE TRAYNO='{trayNO}';");
|
|
strSql.AppendLine("IF (SELECT COUNT(1)");
|
|
strSql.AppendLine("FROM EIP_StockUp SU");
|
|
strSql.AppendLine("JOIN EIP_StockTray ST ON SU.BSNO=ST.BSNO");
|
|
strSql.AppendLine("JOIN EIP_Tray T ON T.GID=ST.TRGID");
|
|
strSql.AppendLine("JOIN EIP_Goods G ON G.TRGID=T.GID");
|
|
strSql.AppendLine($"WHERE (T.ISSCAN=0 OR T.ISSCAN IS NULL) AND SU.BSNO='{bsno}') >0");
|
|
strSql.AppendLine($" UPDATE EIP_StockUp SET BSStatus=2 WHERE BSNO='{bsno}';");
|
|
strSql.AppendLine("ELSE");
|
|
strSql.AppendLine($" UPDATE EIP_StockUp SET BSStatus=3 WHERE BSNO='{bsno}';");
|
|
int count = dbEIP.ExecuteNonQuery(CommandType.Text, strSql.ToString());
|
|
if (count > 0)
|
|
{
|
|
msg = string.Empty;
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
msg = "未找到相关记录";
|
|
return false;
|
|
}
|
|
}
|
|
#endregion ExtensionMethod
|
|
}
|
|
}
|
|
|