电子药箱通讯服务端
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

ItemLotBLL.cs 5.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.ServiceModel;
  6. using RDH.Data.Models;
  7. using System.Data;
  8. namespace RDH.Data.BLL
  9. {
  10. public partial class ItemLotBLL : BaseOrclBLL<ItemLot>, IItemLotBLL
  11. {
  12. public ItemLotBLL() : base()
  13. {
  14. AliasTableName = "il";
  15. }
  16. internal override String TABLE_NAME { get { return "ITEM_LOT"; } }//TB_NAME
  17. internal override string ENTITY_NAME { get { return "ItemLot"; } }
  18. internal override String KEY_COLUMN { get { return "KEY"; } }//KEY_COLUMN
  19. internal override void InitMaps()
  20. {
  21. ColumnPropMaps.Add("KEY", "Key");
  22. ColumnPropMaps.Add("EXP_DATE", "ExpDate");
  23. ColumnPropMaps.Add("LOT_NO", "LotNo");
  24. ColumnPropMaps.Add("IS_ACTIVE", "IsActive");
  25. ColumnPropMaps.Add("CREATE_BY", "CreateBy");
  26. ColumnPropMaps.Add("CREATE_TIME", "CreateTime");
  27. ColumnPropMaps.Add("ITEM_KEY", "ItemKey");
  28. ColumnPropMaps.Add("FLAG", "Flag");
  29. ColumnPropMaps.Add("CLIENT_TIME", "ClientTime");
  30. ColumnPropMaps.Add("SERVER_TIME", "ServerTime");
  31. ColumnPropMaps.Add("EXT01", "Ext01");
  32. ColumnPropMaps.Add("EXT02", "Ext02");
  33. ColumnPropMaps.Add("EXT03", "Ext03");
  34. ColumnPropMaps.Add("EXT04", "Ext04");
  35. ColumnPropMaps.Add("EXT05", "Ext05");
  36. ColumnPropMaps.Add("EXT06", "Ext06");
  37. ColumnPropMaps.Add("EXT07", "Ext07");
  38. ColumnPropMaps.Add("EXT08", "Ext08");
  39. ColumnPropMaps.Add("EXT09", "Ext09");
  40. ColumnPropMaps.Add("EXT10", "Ext10");
  41. ColumnPropMaps.Add("ITEM_ID", "ItemId");//COLUMN_MAPS
  42. }
  43. internal override object GetParam(ItemLot itemlot)
  44. {
  45. return new
  46. {
  47. Key = itemlot.Key,
  48. ExpDate = itemlot.ExpDate,
  49. LotNo = itemlot.LotNo,
  50. IsActive = itemlot.IsActive,
  51. IsDelete = itemlot.IsDelete,
  52. CreateBy = itemlot.CreateBy,
  53. CreateTime = itemlot.CreateTime,
  54. ItemKey = itemlot.ItemKey,
  55. Flag = itemlot.Flag,
  56. ClientTime = itemlot.ClientTime,
  57. ServerTime = itemlot.ServerTime,
  58. Ext01 = itemlot.Ext01,
  59. Ext02 = itemlot.Ext02,
  60. Ext03 = itemlot.Ext03,
  61. Ext04 = itemlot.Ext04,
  62. Ext05 = itemlot.Ext05,
  63. Ext06 = itemlot.Ext06,
  64. Ext07 = itemlot.Ext07,
  65. Ext08 = itemlot.Ext08,
  66. Ext09 = itemlot.Ext09,
  67. Ext10 = itemlot.Ext10,
  68. ItemId = itemlot.ItemId, //Params
  69. };
  70. }
  71. public int GetCount(string filter)
  72. {
  73. String sql = "SELECT COUNT(il.key)"
  74. + " FROM item i"
  75. + " LEFT JOIN item_lot il ON i.key=il.item_key"
  76. + " WHERE 1=1";
  77. if (!string.IsNullOrWhiteSpace(filter))
  78. {
  79. sql += string.Format(" AND (UPPER(i.ITEM_COMMON_NAME) like '%{0}%' OR UPPER(i.ITEM_BRAND_NAME) LIKE '%{0}%' OR UPPER(i.PIN_YIN_NAME) LIKE '%{0}%')",
  80. filter.ToUpper());
  81. }
  82. using (IDbCommand command = ConnectionFactory.Current.GetSessionConnection().CreateCommand())
  83. {
  84. command.CommandText = sql;
  85. command.CommandType = System.Data.CommandType.Text;
  86. return Convert.ToInt32(command.ExecuteScalar());
  87. }
  88. }
  89. public List<ItemLot> ListItemLots(String filter, Int32 index, Int32 paseSize)
  90. {
  91. StringBuilder sqlBuilder = new StringBuilder();
  92. sqlBuilder.Append("SELECT t2.*,'' spiltor1,");
  93. ItemBLL bllItem = new ItemBLL();
  94. foreach (KeyValuePair<String, String> pair in bllItem.ColumnPropMaps)
  95. {
  96. sqlBuilder.AppendFormat("i.{0} {1},", pair.Key, pair.Value);
  97. }
  98. sqlBuilder.Remove(sqlBuilder.Length - 1, 1);
  99. sqlBuilder.Append(" FROM (SELECT t1.*,ROWNUM rn FROM (SELECT ");
  100. foreach (KeyValuePair<String, String> pair in this.ColumnPropMaps)
  101. {
  102. sqlBuilder.AppendFormat("{0}.{1} {2},", this.TABLE_NAME, pair.Key, pair.Value);
  103. }
  104. sqlBuilder.Remove(sqlBuilder.Length - 1, 1);
  105. sqlBuilder.AppendFormat(" FROM {0}"
  106. + " RIGHT JOIN {1} ON {1}.KEY={0}.ITEM_KEY ",
  107. //+ " WHERE {0}.IS_ACTIVE = 'True'",
  108. this.TABLE_NAME, bllItem.TABLE_NAME);
  109. if (!String.IsNullOrEmpty(filter))
  110. {
  111. sqlBuilder.AppendFormat(" AND (UPPER({0}.PIN_YIN_NAME) LIKE '%{1}%' OR {0}.ITEM_COMMON_NAME LIKE '%{1}%' OR {0}.ITEM_BRAND_NAME LIKE '%{1}%')",
  112. bllItem.TABLE_NAME, filter.ToUpper());
  113. }
  114. sqlBuilder.Append(" ORDER BY ITEM.Item_Common_Name) t1) t2");
  115. sqlBuilder.AppendFormat(" RIGHT JOIN {0} i ON i.KEY=t2.ItemKey ", bllItem.TABLE_NAME);
  116. sqlBuilder.AppendFormat(" WHERE t2.rn>{0} AND t2.rn<={1}", index.ToString(), (index + paseSize).ToString());
  117. return SqlMapper.Query<ItemLot, Item, ItemLot>(ConnectionFactory.Current.GetSessionConnection(),
  118. sqlBuilder.ToString(),
  119. (l, i) =>
  120. {
  121. if (l == null)
  122. {
  123. l = new ItemLot();
  124. }
  125. l.Item = i;
  126. return l;
  127. },
  128. splitOn: "spiltor1").ToList();
  129. }
  130. }
  131. }