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.

545 lines
21 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
{
/// <summary>
/// 数据库访问类处理SAP指令导入模块的数据
/// </summary>
public class PredictionOrderImportDal : BaseApp
{
public PredictionOrderImportDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
#region 公共方法
/// <summary>
/// 根据零件号查询零件信息
/// </summary>
/// <param name="partNo">零件号</param>
/// <returns>零件信息</returns>
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);
}
}
/// <summary>
/// 根据厂区代码查询厂区信息
/// </summary>
/// <param name="factoryCode">厂区代码</param>
/// <returns>厂区信息</returns>
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);
}
}
/// <summary>
/// 获取工厂代码
/// </summary>
/// <returns></returns>
public DataTable getFactoryCode()
{
lock (_remotingProxy)
{
string sqlString = "SELECT DISTINCT factory_code from sys_factory where enabled = 'Y' ";
return _remotingProxy.GetDataTable(sqlString);
}
}
/// <summary>
/// 根据库存地查询库存地信息
/// </summary>
/// <param name="erpWarehouse">库存地</param>
/// <returns>库存地信息</returns>
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);
}
}
/// <summary>
/// 根据供应商代码获取供应商信息
/// </summary>
/// <param name="vendorCode"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 根据客户编码获取客户信息
/// </summary>
/// <param name="customCode"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 执行sql语句带事务
/// </summary>
/// <param name="SqlStrings"></param>
/// <param name="Parameters"></param>
/// <returns></returns>
public bool ExecuteSqlTransaction(ArrayList SqlStrings)
{
lock (_remotingProxy)
{
return _remotingProxy.ExecuteSqlTransaction(SqlStrings);
}
}
/// <summary>
/// 执行sql语句带事务
/// </summary>
/// <param name="SqlStrings"></param>
/// <param name="Parameters"></param>
/// <returns></returns>
public bool ExecuteSqlTransaction(List<string> SqlStrings, List<Hashtable> Parameters)
{
lock (_remotingProxy)
{
return _remotingProxy.ExecuteSqlTransaction(SqlStrings, Parameters);
}
}
#endregion
#region 采购计划
/// <summary>
/// 获取周计划编号
/// </summary>
/// <returns></returns>
public string GetWeekNo()
{
lock (_remotingProxy)
{
List<StoreProcedureParameter> parameter = new List<StoreProcedureParameter>();
parameter.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@weekNo", 255));
Hashtable values = _remotingProxy.ExecuteSotreProcedure("sys_create_sapo_wo", parameter);
return values["@weekNo"].ToString();
}
}
/// <summary>
/// 获取订单编号
/// </summary>
/// <returns></returns>
public string GetOrderNo()
{
lock (_remotingProxy)
{
List<StoreProcedureParameter> parameter = new List<StoreProcedureParameter>();
parameter.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@orderNo", 255));
Hashtable values = _remotingProxy.ExecuteSotreProcedure("sys_create_sapo_no", parameter);
return values["@orderNo"].ToString();
}
}
/// <summary>
/// 获取订单编号
/// </summary>
/// <returns></returns>
public string GetMonthOrderNo()
{
lock (_remotingProxy)
{
List<StoreProcedureParameter> parameter = new List<StoreProcedureParameter>();
parameter.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@orderNo", 255));
Hashtable values = _remotingProxy.ExecuteSotreProcedure("sys_create_sapo_mo", parameter);
return values["@orderNo"].ToString();
}
}
/// <summary>
/// 获取插入sap_dspo的语句
/// </summary>
/// <returns></returns>
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();
}
}
/// <summary>
/// 预测计划
/// </summary>
/// <returns></returns>
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();
}
}
/// <summary>
/// 预测计划明细
/// </summary>
/// <returns></returns>
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();
}
}
/// <summary>
/// 正式计划
/// </summary>
/// <returns></returns>
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();
}
}
/// <summary>
/// 获取插入sap_dspo的语句
/// </summary>
/// <returns></returns>
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();
}
}
/// <summary>
/// 通过单号和行号获取订单数据
/// </summary>
/// <param name="ebeln"></param>
/// <param name="evrtp"></param>
/// <returns></returns>
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
///<summary>
/// 发运数据导入
/// </summary>
/// <returns></returns>
public string PredictionOrderImport(string OrderNo,string PartNo, int qty,int userId)
{
lock (_remotingProxy)
{
List<StoreProcedureParameter> Parameters = new List<StoreProcedureParameter>();
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();
}
}
///<summary>
/// 发运数据导入
/// </summary>
/// <returns></returns>
public string LXOrderImport(string OrderNo, string PartNo, int qty, int userId)
{
lock (_remotingProxy)
{
List<StoreProcedureParameter> Parameters = new List<StoreProcedureParameter>();
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();
}
}
///<summary>
/// 单号
/// </summary>
/// <returns></returns>
public string getOrderNo()
{
lock (_remotingProxy)
{
List<StoreProcedureParameter> Parameters = new List<StoreProcedureParameter>();
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();
}
}
}
}