using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using System.Data.SqlClient;
using ApServerProvider;
using System.Collections;
using DbCommon;
using Estsh.Web.Util;
/***************************************************************************************************
*
* 作者:贾文涛
* 创建时间:2015.09.08
* 描述:SAP指令导入模块数据库访问类
* 修改日志:
*
* *************************************************************************************************/
namespace Estsh.Core.Repositories
{
///
/// 数据库访问类,处理SAP指令导入模块的数据
///
public class PredictionOrderImportDal : BaseApp
{
public PredictionOrderImportDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
#region 公共方法
///
/// 根据零件号查询零件信息
///
/// 零件号
/// 零件信息
public DataTable getPartInfo(string partNo)
{
lock (_remotingProxy)
{
string SqlString = "SELECT * FROM dbo.sys_part WHERE part_no=@part_no AND enabled='Y'";
Hashtable Params = new Hashtable(1);
Params.Add("@part_no", partNo);
return _remotingProxy.GetDataTable(SqlString, Params);
}
}
///
/// 根据厂区代码查询厂区信息
///
/// 厂区代码
/// 厂区信息
public DataTable getFactoryInfo(string factoryCode)
{
lock (_remotingProxy)
{
string SqlString = "SELECT * FROM dbo.sys_factory WHERE factory_code = @factory_code AND enabled='Y'";
Hashtable Params = new Hashtable(1);
Params.Add("@factory_code", factoryCode);
return _remotingProxy.GetDataTable(SqlString, Params);
}
}
///
/// 获取工厂代码
///
///
public DataTable getFactoryCode()
{
lock (_remotingProxy)
{
string sqlString = "SELECT DISTINCT factory_code from sys_factory where enabled = 'Y' ";
return _remotingProxy.GetDataTable(sqlString);
}
}
///
/// 根据库存地查询库存地信息
///
/// 库存地
/// 库存地信息
public DataTable getModel(string datamodelno, string deliverydate, string dataTime)
{
lock (_remotingProxy)
{
string SqlString = "SELECT * from g_prediction_plan WHERE model_name = @model_name and delivery_date=@deliverydate and datatime=@dataTime AND enabled = 'Y' ";
Hashtable Params = new Hashtable(3);
Params.Add("@model_name", datamodelno);
Params.Add("@deliverydate", deliverydate);
Params.Add("@dataTime", dataTime);
return _remotingProxy.GetDataTable(SqlString, Params);
}
}
public DataTable getModelname(string ModelTypeName, string modelName)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT * ");
SqlStringBuilder.Append("FROM sys_model ");
SqlStringBuilder.Append("WHERE model_name = @model_name ");
SqlStringBuilder.Append(" AND model_type_id = ( SELECT TOP 1 ");
SqlStringBuilder.Append(" type_id ");
SqlStringBuilder.Append(" FROM dbo.sys_model_type ");
SqlStringBuilder.Append(" WHERE type_name = @ModelTypeName ");
SqlStringBuilder.Append(" AND enabled = 'Y' ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" AND enabled = 'Y' ");
Hashtable Params = new Hashtable(2);
Params.Add("@ModelTypeName", ModelTypeName);
Params.Add("@model_name", modelName);
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString(), Params);
}
}
public DataTable getPartNo(string PartNo)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT * FROM dbo.sys_part WHERE part_no=@PartNo AND enabled='Y' AND part_type=1 ");
Hashtable Params = new Hashtable(2);
Params.Add("@PartNo", PartNo);
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString(), Params);
}
}
///
/// 根据供应商代码获取供应商信息
///
///
///
public DataTable getVendorInfo(string vendorCode)
{
lock (_remotingProxy)
{
string sqlString = "SELECT * from sys_vendor where enabled = 'Y' AND vendor_code = @vendor_code";
Hashtable Params = new Hashtable(1);
Params.Add("@vendor_code", vendorCode);
return _remotingProxy.GetDataTable(sqlString, Params);
}
}
///
/// 根据客户编码获取客户信息
///
///
///
public DataTable getCustomerInfo(string customCode)
{
lock (_remotingProxy)
{
string sqlString = "SELECT * from sys_customer where enabled = 'Y' AND customer_code = @customer_code";
Hashtable Params = new Hashtable(1);
Params.Add("@customer_code", customCode);
return _remotingProxy.GetDataTable(sqlString, Params);
}
}
///
/// 执行sql语句带事务
///
///
///
///
public bool ExecuteSqlTransaction(ArrayList SqlStrings)
{
lock (_remotingProxy)
{
return _remotingProxy.ExecuteSqlTransaction(SqlStrings);
}
}
///
/// 执行sql语句带事务
///
///
///
///
public bool ExecuteSqlTransaction(List SqlStrings, List Parameters)
{
lock (_remotingProxy)
{
return _remotingProxy.ExecuteSqlTransaction(SqlStrings, Parameters);
}
}
#endregion
#region 采购计划
///
/// 获取周计划编号
///
///
public string GetWeekNo()
{
lock (_remotingProxy)
{
List parameter = new List();
parameter.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@weekNo", 255));
Hashtable values = _remotingProxy.ExecuteSotreProcedure("sys_create_sapo_wo", parameter);
return values["@weekNo"].ToString();
}
}
///
/// 获取订单编号
///
///
public string GetOrderNo()
{
lock (_remotingProxy)
{
List parameter = new List();
parameter.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@orderNo", 255));
Hashtable values = _remotingProxy.ExecuteSotreProcedure("sys_create_sapo_no", parameter);
return values["@orderNo"].ToString();
}
}
///
/// 获取订单编号
///
///
public string GetMonthOrderNo()
{
lock (_remotingProxy)
{
List parameter = new List();
parameter.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@orderNo", 255));
Hashtable values = _remotingProxy.ExecuteSotreProcedure("sys_create_sapo_mo", parameter);
return values["@orderNo"].ToString();
}
}
///
/// 获取插入sap_dspo的语句
///
///
public string InsertSAPOData()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.SAP_DSPO (EBELN ,REVNO ,EVRTP ,LIFNR ,MATNR ,ZDEV_NUM, ");
SqlStringBuilder.Append("UNIT ,ZDATE ,ZCJSJ ,WERKS , LGORT , ZPZPS ,ZSTAS ,BSTRF ,RECUSR ,WEEKNO ,MODEL_NO) ");
SqlStringBuilder.Append("VALUES(@EBELN ,@REVNO ,@EVRTP ,@LIFNR ,@MATNR ,@ZDEV_NUM, ");
SqlStringBuilder.Append("@UNIT ,@ZDATE ,@ZCJSJ ,@WERKS , @LGORT , @ZPZPS ,@ZSTAS,@BSTRF,@RECUSR ,@WEEKNO ,@MODEL_NO )");
return SqlStringBuilder.ToString();
}
}
///
/// 预测计划
///
///
public string InsertYCPLANData()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.g_prediction_plan (type_name ,model ,part_class ,model_name ,qty ,delivery_date,dataTime) ");
SqlStringBuilder.Append("VALUES(@type_name ,@model ,@part_class ,@model_name ,@qty ,@delivery_date,@dataTime )");
return SqlStringBuilder.ToString();
}
}
///
/// 预测计划明细
///
///
public string InsertYCPLANDetailData()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.g_prediction_plan_detail (order_seq ,model_name,prediction_plan_id ) ");
SqlStringBuilder.Append("VALUES(ISNULL(( SELECT TOP 1 (order_seq + 1) FROM g_prediction_plan_detail ORDER BY ruid DESC ), 1) ,@datamodelno ,ISNULL(( SELECT MAX(ruid) FROM g_prediction_plan ), 1) )");
return SqlStringBuilder.ToString();
}
}
///
/// 正式计划
///
///
public string InsertZSPLANData()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.g_edi ");
SqlStringBuilder.Append(" ( id , ");
SqlStringBuilder.Append(" PARTNO , ");
SqlStringBuilder.Append(" PASSTIME , ");
SqlStringBuilder.Append(" PNRSTRING , ");
SqlStringBuilder.Append(" PNRSTRINGS , ");
SqlStringBuilder.Append(" GROES , ");
SqlStringBuilder.Append(" VIN , ");
SqlStringBuilder.Append(" model_id , ");
SqlStringBuilder.Append(" status , ");
SqlStringBuilder.Append(" error_message , ");
SqlStringBuilder.Append(" enabled , ");
SqlStringBuilder.Append(" create_ymd , ");
SqlStringBuilder.Append(" create_hms ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append("VALUES ( @strOrderSeq , ");
SqlStringBuilder.Append(" '' , ");
SqlStringBuilder.Append(" '' , ");
SqlStringBuilder.Append(" '' , ");
SqlStringBuilder.Append(" '' , ");
SqlStringBuilder.Append(" '' , ");
SqlStringBuilder.Append(" @strVin , ");
SqlStringBuilder.Append(" (SELECT model_id FROM dbo.sys_model WHERE model_name=@strModel) , ");
SqlStringBuilder.Append(" 0 , ");
SqlStringBuilder.Append(" '' , ");
SqlStringBuilder.Append(" 'N' , ");
SqlStringBuilder.Append(" dbo.get_ymd() , ");
SqlStringBuilder.Append(" dbo.get_hms() ");
SqlStringBuilder.Append(" ) ");
return SqlStringBuilder.ToString();
}
}
///
/// 获取插入sap_dspo的语句
///
///
public string InsertMonthlyPlanData()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO SAP_IF_DF.[dbo].[SWEB_MONTHLY_PLAN] (EBELN ,REVNO ,EVRTP ,LIFNR ,MATNR ,ZDEV_NUM, ");
SqlStringBuilder.Append("UNIT ,ZDATE ,ZCJSJ ,WERKS , LGORT , ZPZPS ,ZSTAS ,BSTRF ,RECUSR ,WEEKNO ,MODEL_NO) ");
SqlStringBuilder.Append("VALUES(@EBELN ,@REVNO ,@EVRTP ,@LIFNR ,@MATNR ,@ZDEV_NUM, ");
SqlStringBuilder.Append("@UNIT ,@ZDATE ,@ZCJSJ ,@WERKS , @LGORT , @ZPZPS ,@ZSTAS,@BSTRF,@RECUSR ,@WEEKNO ,@MODEL_NO )");
return SqlStringBuilder.ToString();
}
}
public DataTable IfZDATE(string zdate, string lifnr, string zcjsj)
{
lock (_remotingProxy)
{
string SqlString = "SELECT * FROM dbo.SAP_DSPO WHERE zdate='" + zdate + "' AND lifnr='" + lifnr + "' AND zcjsj='" + zcjsj + "'";
return _remotingProxy.GetDataTable(SqlString);
}
}
public DataTable IfMZDATE(string zdate, string lifnr, string zcjsj)
{
lock (_remotingProxy)
{
string SqlString = "SELECT * FROM SAP_IF_DF..SWEB_MONTHLY_PLAN WHERE zdate='" + zdate + "' AND lifnr='" + lifnr + "' AND zcjsj='" + zcjsj + "'";
return _remotingProxy.GetDataTable(SqlString);
}
}
public bool delDSPO(string zdate, string lifnr)
{
lock (_remotingProxy)
{
string SqlString = "DELETE dbo.SAP_DSPO WHERE zdate='" + zdate + "' AND lifnr='" + lifnr + "'";
return _remotingProxy.Exists(SqlString);
}
}
public bool delMDSPO(string zdate, string lifnr)
{
lock (_remotingProxy)
{
string SqlString = "DELETE SAP_IF_DF..SWEB_MONTHLY_PLAN WHERE zdate='" + zdate + "' AND lifnr='" + lifnr + "'";
return _remotingProxy.Exists(SqlString);
}
}
public string updateSapDspo(string EBELN, string REVNO, int EVRTP, string LIFNR, string MATNR,
string ZDEV_NUM, string UNIT, string PSTYP, string ZDATE, string ZCJSJ, string WERKS,
string LGORT, string ZPZPS, string ZSTAS, decimal BSTRF)
{
lock (_remotingProxy)
{
string sqlString = string.Format("UPDATE SAP_DSPO SET EBELN = '{0}', REVNO = '{1}', EVRTP = {2}," +
" LIFNR = '{3}', MATNR = '{4}', ZDEV_NUM = '{5}', UNIT = '{6}', PSTYP = '{7}', ZDATE = '{8}', " +
" ZCJSJ = '{9}', WERKS = '{10}', LGORT = '{11}', ZPZPS = '{12}', ZSTAS = '{13}', BSTRF = '{14}',RECYMD = {15},RECHMS = {16} " +
" WHERE EBELN = '{0}' AND EVRTP = {2} ", EBELN, REVNO, EVRTP, LIFNR, MATNR,
ZDEV_NUM, UNIT, PSTYP, ZDATE, ZCJSJ, WERKS, LGORT, ZPZPS, ZSTAS, BSTRF,
"CONVERT(VARCHAR(100),GETDATE(),23)", "CONVERT(VARCHAR(100),GETDATE(),108)");
return sqlString;
}
}
public string insertSapDspo(string EBELN, string REVNO, int EVRTP, string LIFNR, string MATNR,
string ZDEV_NUM, string UNIT, string PSTYP, string ZDATE, string ZCJSJ, string WERKS,
string LGORT, string ZPZPS, string ZSTAS, decimal BSTRF)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO SAP_DSPO (EBELN ,REVNO ,EVRTP ,LIFNR ,MATNR ,ZDEV_NUM, ");
SqlStringBuilder.Append("UNIT ,PSTYP ,ZDATE ,ZCJSJ ,WERKS , LGORT , ZPZPS ,ZSTAS,LOEKZ,BSTRF,PRNNUM) ");
SqlStringBuilder.Append(string.Format("VALUES('{0}','{1}',{2},'{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',{15},{16} )",
EBELN, REVNO, EVRTP, LIFNR, MATNR, ZDEV_NUM, UNIT, PSTYP, ZDATE, ZCJSJ, WERKS, LGORT, ZPZPS, ZSTAS, "", BSTRF, 0));
return SqlStringBuilder.ToString();
}
}
///
/// 通过单号和行号获取订单数据
///
///
///
///
public DataTable getSapDspoInfo(string ebeln, string evrtp)
{
lock (_remotingProxy)
{
string SqlString = "SELECT * FROM SAP_IF_DF.dbo.SAP_DSPO WHERE EBELN = @EBELN AND EVRTP = @EVRTP ";
Hashtable Params = new Hashtable(2);
Params.Add("@EBELN", ebeln);
Params.Add("@EVRTP", evrtp);
return _remotingProxy.GetDataTable(SqlString, Params);
}
}
#endregion
///
/// 发运数据导入
///
///
public string PredictionOrderImport(string OrderNo,string PartNo, int qty,int userId)
{
lock (_remotingProxy)
{
List Parameters = new List();
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderNo", OrderNo));
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@PartNo", PartNo));
Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@qty", qty));
Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@userId", userId));
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@tres", 500));
Hashtable ht = _remotingProxy.ExecuteSotreProcedure("dbo.lx_order_import", Parameters);
if (!ht.ContainsKey("@tres"))
return string.Empty;
return ht["@tres"].ToString();
}
}
///
/// 发运数据导入
///
///
public string LXOrderImport(string OrderNo, string PartNo, int qty, int userId)
{
lock (_remotingProxy)
{
List Parameters = new List();
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderNo", OrderNo));
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@PartNo", PartNo));
Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@qty", qty));
Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@userId", userId));
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@tres", 500));
Hashtable ht = _remotingProxy.ExecuteSotreProcedure("dbo.lx_order_import", Parameters);
if (!ht.ContainsKey("@tres"))
return string.Empty;
return ht["@tres"].ToString();
}
}
///
/// 单号
///
///
public string getOrderNo()
{
lock (_remotingProxy)
{
List Parameters = new List();
Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@msg", 500));
Hashtable ht = _remotingProxy.ExecuteSotreProcedure("dbo.get_order_no", Parameters);
if (!ht.ContainsKey("@msg"))
return string.Empty;
return ht["@msg"].ToString();
}
}
}
}