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