using System; using System.Collections.Generic; using System.Linq; using System.Text; using WMS.Model.Base; using WMS.IData;using Oracle.ManagedDataAccess.Client; using System.Data; using WMS.IData.IBase; namespace WMS.SqlServerData.BaseData { public class DocumentTableData : IDocumentTable { //public DataTable GetIndexData(string tb,string val) //{ // string sqlStr = "select "; //} /// /// 获得数据 /// /// /// public DataTable GetDocumentData(string pickName) { StringBuilder strSql = new StringBuilder(); strSql.Append("select * from T_DOCUMENT_TABLE where 1 =1 "); strSql.Append(" and document_type = '" + pickName + "'"); return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } /// /// 增加一条数据 /// public void AddDocumentData(DocumentTableModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into T_DOCUMENT_TABLE("); strSql.Append("DOCUMENT_START,DOCUMENT_TYPE,DOCUMENT_TYPE_VALUE,DOCUMENT_DATE,DOCUMENT_COUNT,DOCUMENT_END)"); strSql.Append(" values ("); strSql.Append(":DOCUMENT_START,:DOCUMENT_TYPE,:DOCUMENT_TYPE_VALUE,:DOCUMENT_DATE,:DOCUMENT_COUNT,:DOCUMENT_MIN)"); OracleParameter[] parameters = { new OracleParameter(":DOCUMENT_START",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_TYPE",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_TYPE_VALUE",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_DATE",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_COUNT", OracleDbType.Decimal,4), new OracleParameter(":DOCUMENT_MIN",OracleDbType.Varchar2,20)}; parameters[0].Value = model.DOCUMENT_START; parameters[1].Value = model.DOCUMENT_TYPE; parameters[2].Value = model.DOCUMENT_TYPE_VALUE; parameters[3].Value = model.DOCUMENT_DATE; parameters[4].Value = model.DOCUMENT_COUNT; parameters[5].Value = model.DOCUMENT_END; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 更新一条数据 /// public void UpdateDocumentData(DocumentTableModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update T_DOCUMENT_TABLE set "); strSql.Append("DOCUMENT_START=:DOCUMENT_START,"); strSql.Append("DOCUMENT_TYPE=:DOCUMENT_TYPE,"); strSql.Append("DOCUMENT_TYPE_VALUE=:DOCUMENT_TYPE_VALUE,"); strSql.Append("DOCUMENT_DATE=:DOCUMENT_DATE,"); strSql.Append("DOCUMENT_COUNT=:DOCUMENT_COUNT,"); strSql.Append("DOCUMENT_END=:DOCUMENT_MIN"); strSql.Append(" where DOCUMENT_START=:DOCUMENT_START and DOCUMENT_TYPE=:DOCUMENT_TYPE and DOCUMENT_TYPE_VALUE=:DOCUMENT_TYPE_VALUE and DOCUMENT_DATE=:DOCUMENT_DATE and DOCUMENT_COUNT=:DOCUMENT_COUNT and DOCUMENT_MIN=:DOCUMENT_MIN "); OracleParameter[] parameters = { new OracleParameter(":DOCUMENT_START",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_TYPE",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_TYPE_VALUE",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_DATE",OracleDbType.Varchar2,20), new OracleParameter(":DOCUMENT_COUNT", OracleDbType.Decimal,4), new OracleParameter(":DOCUMENT_MIN",OracleDbType.Varchar2,20)}; parameters[0].Value = model.DOCUMENT_START; parameters[1].Value = model.DOCUMENT_TYPE; parameters[2].Value = model.DOCUMENT_TYPE_VALUE; parameters[3].Value = model.DOCUMENT_DATE; parameters[4].Value = model.DOCUMENT_COUNT; parameters[5].Value = model.DOCUMENT_END; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 删除一条数据 /// public void DeleteDocumentData(DocumentTableModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("delete from T_DOCUMENT_TABLE "); strSql.Append(" where DOCUMENT_TYPE=:DOCUMENT_TYPE_VALUE"); OracleParameter[] parameters = { new OracleParameter(":DOCUMENT_TYPE_VALUE",OracleDbType.Varchar2,10)}; parameters[0].Value = model.DOCUMENT_TYPE; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 刷新sql /// /// /// public void UpdateSeq(string nameSql) { string sqlStr = " ALTER SEQUENCE "+nameSql+" RESTART WITH 1"; SystemDataObject.Instance.ExecuteSqlCommit(sqlStr); } /// /// 获取seq值 /// /// /// public string GetSeq(string nameSeq) { string val = "1000"; string str = "select cast(next value for " + nameSeq.ToUpper() + " as varchar(100)) as val "; DataTable ds = SystemDataObject.Instance.GetDataTable( str); if (ds != null) { if (ds.Rows.Count > 0) { val= ds.Rows[0][0].ToString(); } } return val; } /// /// 创建SEQ /// /// public void CreateSEQ(DocumentTableModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append(@"Create sequence " + (model.DOCUMENT_TYPE_VALUE).ToUpper() + ""); strSql.Append(" minvalue 1"); strSql.Append(" maxvalue 9999999999 "); strSql.Append(" start with 1"); strSql.Append(" increment by 1"); strSql.Append(" cache 20"); strSql.Append(" cycle"); SystemDataObject.Instance.ExecuteSql(strSql.ToString()); } /// /// 判断SEQ是否已经存在 /// /// /// public int SelectSEQExists(string str) { string sqlStr = "select count(1) a from user_sequences where '" + str.ToUpper() + "'" + " in( select sequence_name from user_sequences)"; DataTable table = SystemDataObject.Instance.GetDataTable(sqlStr); if (table != null) { if (table.Rows.Count > 0) { return Convert.ToInt32(table.Rows[0]["a"].ToString()); } } return 0; } /// /// 根据单据类型获得单据 /// /// /// //public string GetDocumentStream(string strType) //{ // StringBuilder strSql = new StringBuilder(); // strSql.Append("select * from T_DOCUMENT_TABLE where DOCUMENT_TYPE ='" + strType + "'"); // DataTable dt = SystemDataObject.Instance.GetDataTable(strSql.ToString()); // if (dt != null) // { // if (dt.Rows.Count > 0) // { // string strDate = string.Empty; // string strS = string.Empty; // string strSqlSeq = ""; // if (dt.Rows[0]["DOCUMENT_DATE"].ToString().Trim().Length == 8) // { // strDate = DateTime.Now.ToString("yyyyMMdd"); // } // else if (dt.Rows[0]["DOCUMENT_DATE"].ToString().Trim().Length == 6) // { // strDate = DateTime.Now.ToString("yyyyMM"); // } // else // { // strDate = string.Empty; // } // strSqlSeq = "select cast(next value for " + dt.Rows[0]["DOCUMENT_TYPE_VALUE"].ToString() + " as varchar(30) ) DOCUMENT_START"; // DataTable dts = SystemDataObject.Instance.GetDataTable(strSqlSeq); // string strSEQ = dts.Rows[0][0].ToString(); // strS = dt.Rows[0]["DOCUMENT_START"].ToString() + strDate + strSEQ; // return strS; // } // } // return ""; //} /// /// 删除SEQ /// /// public void DropSEQ(DocumentTableModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("drop sequence " + (model.DOCUMENT_TYPE_VALUE).ToUpper() + ""); SystemDataObject.Instance.ExecuteSql(strSql.ToString()); } } }