| | |
| | | using System; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Configuration; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows; |
| | | |
| | | namespace WFormReadData_SMR |
| | | { |
| | |
| | | } |
| | | public DBHelper() |
| | | { |
| | | //sServer = "47.96.97.237,15127"; |
| | | //sDataBase = "HX_LMESsys"; |
| | | //sUser = "HX_USER"; |
| | | //sPassword = "lc@841022"; |
| | | //斯莫尔 |
| | | sServer = "10.11.18.195"; |
| | | sDataBase = "HX_LMESsys_test"; |
| | | sUser = "HX_USER"; |
| | | sPassword = "lc@841022"; |
| | | sServer = GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "Config/SQLAPI.config", "sServer"); //"10.11.18.195"; |
| | | sDataBase = GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "Config/SQLAPI.config", "sDataBase"); //"HX_LMESsys_test"; |
| | | sUser = GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "Config/SQLAPI.config", "sUser"); //"HX_USER"; |
| | | sPassword = GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "Config/SQLAPI.config", "sPassword");// "lc@841022"; |
| | | } |
| | | |
| | | public static String GetConfigKey(String configPath, String key) |
| | | { |
| | | Configuration ConfigurationInstance = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap() |
| | | { |
| | | ExeConfigFilename = configPath |
| | | }, ConfigurationUserLevel.None); |
| | | |
| | | |
| | | if (ConfigurationInstance.AppSettings.Settings[key] != null) |
| | | return ConfigurationInstance.AppSettings.Settings[key].Value; |
| | | else |
| | | |
| | | return string.Empty; |
| | | } |
| | | |
| | | |
| | | private bool CnOpen()//OPEN数据库连接 |
| | | { |
| | |
| | | return null; |
| | | } |
| | | } |
| | | public static Int64 isLong(object message) |
| | | { |
| | | try |
| | | { |
| | | return Convert.ToInt64(message); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return 0; |
| | | } |
| | | } |
| | | public static string isStrNull(object message) |
| | | { |
| | | try |
| | | { |
| | | if (message == null) |
| | | { |
| | | return ""; |
| | | } |
| | | else |
| | | { |
| | | return message.ToString().Trim(); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | public static int isInt(object message) |
| | | { |
| | | try |
| | | { |
| | | return Convert.ToInt16(message); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | public Int64 CreateBillID_Prod(string BillCode, ref string sReturn) |
| | | { |
| | | try |
| | | { |
| | | string BillType = ""; |
| | | DataSet Ds; |
| | | Int64 lID; |
| | | Ds = RunProcReturn("exec h_p_Xt_GetMaxBillID '" + BillCode + "'", "h_p_Xt_GetMaxBillID"); |
| | | if (Ds == null || Ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | lID = -1; |
| | | } |
| | | else |
| | | { |
| | | lID = DBHelper.isLong(Ds.Tables[0].Rows[0]["HBillNo"]); |
| | | } |
| | | CnClose(); |
| | | CnDispose(); |
| | | Ds = null; |
| | | return lID; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return -2; |
| | | } |
| | | } |
| | | private static readonly object lockObj = new object(); |
| | | //写日志 |
| | | public static void CustomWriteLog(object obj, string FileName, string filePath = "Vlog", bool isAppend = true) |
| | | { |
| | | try |
| | | { |
| | | lock (lockObj) |
| | | { |
| | | filePath = $@"{filePath}\{FileName}.txt"; |
| | | |
| | | filePath = AppDomain.CurrentDomain.BaseDirectory + filePath; |
| | | |
| | | if (!System.IO.Directory.Exists(Path.GetDirectoryName(filePath))) |
| | | { |
| | | System.IO.Directory.CreateDirectory(Path.GetDirectoryName(filePath)); |
| | | } |
| | | |
| | | bool fileExists = System.IO.File.Exists(filePath); |
| | | //不存在 则创建该文件 |
| | | if (!fileExists) |
| | | { |
| | | System.IO.File.Create(filePath).Close(); |
| | | } |
| | | |
| | | using (StreamWriter writer = new StreamWriter(filePath, isAppend)) |
| | | { |
| | | //存在的时候才写一行 |
| | | if (fileExists && isAppend) |
| | | { |
| | | writer.WriteLine(); |
| | | } |
| | | |
| | | var content = obj is string ? obj : JsonConvert.SerializeObject(obj); |
| | | writer.WriteLine($"{DateTime.Now} {content}"); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | |
| | | //得到最大单据号 |
| | | public string CreateBillCode(string BillCode, ref string sReturn, bool Add) |
| | | { |
| | | Int64 BillCodeMode; |
| | | string Profix; |
| | | Int64 Glida; |
| | | Int32 CodeLen; |
| | | string sBillNo = ""; |
| | | char c = Convert.ToChar("0"); |
| | | string sKjYear = DateTime.Today.Year.ToString(); |
| | | string sPeriod = DateTime.Today.Month.ToString(); |
| | | string sDay = DateTime.Today.Day.ToString(); |
| | | //得到单据号表 信息 |
| | | DataSet Ds = new DataSet(); |
| | | Ds = RunProcReturn("Select * from Gy_BillNumber where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | BillCodeMode = DBHelper.isLong(Ds.Tables[0].Rows[0]["BillCodeMode"].ToString()); |
| | | Profix = DBHelper.isStrNull(Ds.Tables[0].Rows[0]["Profix"].ToString()); |
| | | Glida = DBHelper.isLong(Ds.Tables[0].Rows[0]["Glida"].ToString()); |
| | | CodeLen = DBHelper.isInt(Ds.Tables[0].Rows[0]["CodeLen"].ToString()); |
| | | } |
| | | else |
| | | { |
| | | return ""; |
| | | } |
| | | // |
| | | string sStr; |
| | | switch (BillCodeMode) |
| | | { |
| | | case 0: |
| | | switch (Glida) |
| | | { |
| | | case 0://纯流水号 |
| | | Ds = RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length); |
| | | sBillNo = Profix.Trim() + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim(); |
| | | } |
| | | else //插入新记录 |
| | | { |
| | | sStr = new string(c, CodeLen - 1); |
| | | RunProc("insert into Gy_MaxNum(BillCode,NowNumber) values('" + BillCode.Trim() + "',1)"); |
| | | sBillNo = Profix.Trim() + sStr + 1; |
| | | } |
| | | if (Add == true) |
| | | { |
| | | RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "'"); |
| | | } |
| | | return sBillNo; |
| | | |
| | | case 1://根据 YY年+MM月 日 + 流水号 生成单据号 (日 采用了 仓库的字段) |
| | | sKjYear = sKjYear.Substring(2, 2); |
| | | sPeriod = "0" + sPeriod; |
| | | sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); |
| | | sDay = ""; |
| | | Ds = RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length); |
| | | sBillNo = Profix.Trim() + sKjYear + sPeriod + sDay + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim(); |
| | | } |
| | | else //插入新记录 |
| | | { |
| | | sStr = new string(c, CodeLen - 1); |
| | | RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber) values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)"); |
| | | sBillNo = Profix.Trim() + sKjYear + sPeriod + sDay + sStr + "1"; |
| | | } |
| | | if (Add == true) |
| | | { |
| | | RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'"); |
| | | } |
| | | return sBillNo; |
| | | case 2: //根据年+月+日 生成单据号 |
| | | Ds = RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'", "Gy_MaxNum"); |
| | | if (Ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length); |
| | | sBillNo = Profix.Trim() + sKjYear + DBHelper.isStrNull(("0" + sPeriod)).Substring(DBHelper.isStrNull(("0" + sPeriod)).Length - 2, 2) + DBHelper.isStrNull(("0" + sDay)).Substring(DBHelper.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim(); |
| | | } |
| | | else //插入新记录 |
| | | { |
| | | sStr = new string(c, CodeLen - 1); |
| | | RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber) values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)"); |
| | | sBillNo = Profix.Trim() + sKjYear + DBHelper.isStrNull(("0" + sPeriod)).Substring(DBHelper.isStrNull(("0" + sPeriod)).Length - 2, 2) + DBHelper.isStrNull(("0" + sDay)).Substring(DBHelper.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + 1; |
| | | } |
| | | if (Add == true) |
| | | { |
| | | RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'"); |
| | | } |
| | | return sBillNo; |
| | | |
| | | |
| | | default: |
| | | return sBillNo; |
| | | |
| | | } |
| | | |
| | | case 1: |
| | | return sBillNo; |
| | | |
| | | default: |
| | | return sBillNo; |
| | | |
| | | } |
| | | CnClose(); |
| | | CnDispose(); |
| | | } |
| | | } |
| | | } |