IDHelper.cs 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. using Common.Model;
  2. using Common.Wechat;
  3. using CoreEntity.DAL;
  4. using CoreEntity.Entity;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Data.SqlClient;
  9. using System.Text;
  10. using ZcPeng.PublicLibrary;
  11. namespace CoreEntity.BAL
  12. {
  13. class IDHelper
  14. {
  15. /// <summary>
  16. /// 订单汇总里面关键的几个字段
  17. ///一个是billno在智友的syscode表中prefix = 'F'的即为最大编号,
  18. ///一个是billcode在智友的billcode表中,需要对应的是采购订单的RULEID(固定5x80rrxrb24q2ktt),
  19. ///从billcode表中取到recnum,billcode的生成规则:PDD+机构标识+8位长度的流水码(recnum,不足补零)例如PDD+Y30+00000058
  20. ///订单明细中没有BILLCODE,但是有billsn,即明细的序号
  21. /// </summary>
  22. /// <returns></returns>
  23. public static long GetRecNo()
  24. {
  25. long id = 0;
  26. #region 查id
  27. string commandTextUser = "Select RecNum From "
  28. + "SysCode Where Prefix=@Prefix";
  29. string resultUser;
  30. DataTable dt = new DataTable();
  31. List<SqlParameter> parametersUser = new List<SqlParameter>();
  32. parametersUser.Add(new SqlParameter("Prefix", 'F'));
  33. //DataAccess.GetValues(commandTextUser, ref dt, parametersUser.ToArray(), out resultUser);
  34. //List<SysCode> users = new List<SysCode>();
  35. //users = (List<SysCode>)ModelConvertHelper<SysCode>.ConvertToModel(dt);
  36. //SysCode user = users.ToArray()[0];
  37. //id = user.RECNUM;
  38. SqlConnection conn = null;
  39. SqlTransaction tran = null;
  40. bool successUser = DataAccess.GetOneValue(commandTextUser, parametersUser.ToArray(), out var v, out resultUser, out conn, out tran, true);
  41. id = long.Parse(v.ToString());
  42. string commandText = "Update " + "SysCode set RecNum = @id +1 " +
  43. " Where Prefix=@Prefix ;" + commandTextUser;
  44. string result;
  45. List<SqlParameter> parameters = new List<SqlParameter>();
  46. parameters.Add(new SqlParameter( "id", id));
  47. parameters.Add(new SqlParameter( "Prefix", 'F'));
  48. List<DataAccessCommand> list = new List<DataAccessCommand>();
  49. list.Add(new DataAccessCommand(commandText, parameters, CommandType.Text, true));
  50. bool success = DataAccess.ExecuteBatchCommands(list, out result,conn,tran);
  51. //bool success = DataAccess.GetOneValue(commandText,parameters, out var v, out result);
  52. //id = (long)v;
  53. #endregion
  54. if (success)
  55. return id + 1;
  56. return 0;
  57. }
  58. public static long GetBillCodeRecNo(string EntId = "E1WB67UEYPG")
  59. {
  60. long id = 0;
  61. #region 查id
  62. string commandTextUser = "select RecNum from "
  63. + "billcode Where ruleid=@ruleid and EntId=@EntId";
  64. string resultUser;
  65. DataTable dt = new DataTable();
  66. List<SqlParameter> parametersUser = new List<SqlParameter>();
  67. parametersUser.Add(new SqlParameter("ruleid", "5x80rrxrb24q2ktt"));
  68. parametersUser.Add(new SqlParameter("EntId", EntId));
  69. //DataAccess.GetValues(commandTextUser, ref dt, parametersUser.ToArray(), out resultUser);
  70. //List<BillCode> users = new List<BillCode>();
  71. //users = (List<BillCode>)ModelConvertHelper<BillCode>.ConvertToModel(dt);
  72. //BillCode user = users.ToArray()[0];
  73. //id = user.RECNUM;
  74. SqlConnection conn = null;
  75. SqlTransaction tran = null;
  76. bool successUser = DataAccess.GetOneValue(commandTextUser, parametersUser.ToArray(), out var v, out resultUser,out conn, out tran, true);
  77. id = long.Parse(v.ToString());
  78. string commandText = "Update " + "billcode set RecNum = @id +1 " +
  79. " Where ruleid=@ruleid and EntId=@EntId;" + commandTextUser;
  80. string result;
  81. List<SqlParameter> parameters = new List<SqlParameter>();
  82. parameters.Add(new SqlParameter( "id", id ));
  83. parameters.Add(new SqlParameter( "ruleid", "5x80rrxrb24q2ktt" ));
  84. parameters.Add(new SqlParameter("EntId", EntId));
  85. List<DataAccessCommand> list = new List<DataAccessCommand>();
  86. list.Add(new DataAccessCommand(commandText, parameters, CommandType.Text, true));
  87. bool success = DataAccess.ExecuteBatchCommands(list, out result, conn, tran);
  88. //bool success = DataAccess.GetOneValue(commandText, parameters, out var v, out result);
  89. //id = (long)v;
  90. #endregion
  91. if (success) return id + 1;
  92. else return 0;
  93. }
  94. public static PGPrice GetPackId(string GoodsId,string EntId = "E1WB67UEYPG")
  95. {
  96. #region 查id
  97. string commandTextUser = " select packId,unit,Meas from PGPrice where IsBase = 'Y' " +
  98. " and goodsid = @GoodsId " +
  99. " and EntId = @EntId ";
  100. string resultUser;
  101. DataTable dt = new DataTable();
  102. List<SqlParameter> parametersUser = new List<SqlParameter>();
  103. parametersUser.Add(new SqlParameter( "GoodsId", GoodsId ));
  104. parametersUser.Add(new SqlParameter("EntId", EntId));
  105. DataAccess.GetValues(commandTextUser, ref dt, parametersUser.ToArray(), out resultUser);
  106. if (dt!= null && dt.Rows.Count > 0)
  107. {
  108. List<PGPrice> users = new List<PGPrice>();
  109. users = (List<PGPrice>)ModelConvertHelper<PGPrice>.ConvertToModel(dt);
  110. PGPrice user = users.ToArray()[0];
  111. return user;
  112. }
  113. else
  114. {
  115. return null;
  116. }
  117. #endregion
  118. }
  119. /// <summary>
  120. /// 付款计划 单据编号BillCode 规则
  121. ///select RecNum,* from billcode where ruleid = '6wfq837d3f6vfdxd'
  122. ///付款计划单据标识:PJH 对应机构机构标识:NPW (默认药业机构) 自动补充:00000001(8位)
  123. /// </summary>
  124. /// <returns></returns>
  125. public static long GetPlanBillCodeRecNo(string EntId = "E1WB67UEYPG")
  126. {
  127. //var connection = @"Data Source =192.168.50.30; Initial Catalog = LJHYBZK; Persist Security Info = True; User ID = sa; Password = xq!@#2014;";
  128. //DataAccess.connectionString = connection;
  129. long id = 0;
  130. #region 查id
  131. string commandTextUser = "select RecNum from "
  132. + "billcode Where ruleid=@ruleid";
  133. string resultUser;
  134. DataTable dt = new DataTable();
  135. List<SqlParameter> parametersUser = new List<SqlParameter>();
  136. parametersUser.Add(new SqlParameter("ruleid", "6wfq837d3f6vfdxd"));
  137. //DataAccess.GetValues(commandTextUser, ref dt, parametersUser.ToArray(), out resultUser);
  138. //List<BillCode> users = new List<BillCode>();
  139. //users = (List<BillCode>)ModelConvertHelper<BillCode>.ConvertToModel(dt);
  140. //BillCode user = users.ToArray()[0];
  141. //id = user.RECNUM;
  142. SqlConnection conn = null;
  143. SqlTransaction tran = null;
  144. bool successUser = DataAccess.GetOneValue(commandTextUser, parametersUser.ToArray(), out var v, out resultUser,out conn,out tran, true);
  145. id = long.Parse(v.ToString());
  146. string commandText = "Update billcode set RecNum = @id +1 " +
  147. " Where ruleid=@ruleid;" + commandTextUser;
  148. string result;
  149. List<SqlParameter> parameters = new List<SqlParameter>();
  150. parameters.Add(new SqlParameter( "id", id ));
  151. parameters.Add(new SqlParameter( "ruleid", "6wfq837d3f6vfdxd" ));
  152. List<DataAccessCommand> list = new List<DataAccessCommand>();
  153. list.Add(new DataAccessCommand(commandText, parameters, CommandType.Text, true));
  154. bool success = DataAccess.ExecuteBatchCommands(list, out result, conn, tran);
  155. //bool success = DataAccess.GetOneValue(commandText, parameters, out var v, out result);
  156. //id = (long)v;
  157. #endregion
  158. if (success) return id + 1;
  159. else return 0;
  160. }
  161. public static void Main(string[] args)
  162. {
  163. var id = IDHelper.GetRecNo();
  164. string orderNo = id.ToString();
  165. StringBuilder sb = new StringBuilder("");
  166. if (orderNo.Length < 8)
  167. {
  168. for (int ik = 0; ik < (8 - orderNo.Length); ik++)
  169. {
  170. sb.Append('0');
  171. }
  172. sb.Append(orderNo);
  173. }
  174. string orgno = OrgDAL.GetOrgNo("","");//PurOrderDAL.ORGID
  175. String OrderCode = "PJH" + orgno//机构标识
  176. + sb.ToString();
  177. Console.Write("文本-:"+id);
  178. }
  179. }
  180. }