电子药箱通讯服务端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using RDH.Data.Models;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.DirectoryServices;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Xml.Linq;
  9. namespace RDH.Data.BLL
  10. {
  11. public partial class SPILItemTransactionBLL : BaseOrclBLL<SPILItemTransaction>
  12. {
  13. public SPILItemTransactionBLL() : base()
  14. {
  15. AliasTableName = "spilt";
  16. }
  17. internal override String TABLE_NAME { get { return "S_P_I_L_ITEM_TRANSACTION"; } }//TB_NAME
  18. internal override string ENTITY_NAME { get { return "SPILItemTransaction"; } }
  19. internal override String KEY_COLUMN { get { return "KEY"; } }//KEY_COLUMN
  20. internal override void InitMaps()
  21. {
  22. ColumnPropMaps.Add("KEY", "Key");
  23. ColumnPropMaps.Add("ITEM_TRANSACTION_KEY", "ItemTransactionKey");
  24. ColumnPropMaps.Add("STORAGE_SPACE_ITEM_LOT_KEY", "StorageSpaceItemLotKey");
  25. ColumnPropMaps.Add("S_S_I_LOT_SNAPSHOT_KEY", "SSILotSnapshotKey");
  26. ColumnPropMaps.Add("QUANTITY", "Quantity");
  27. ColumnPropMaps.Add("CREATE_BY", "CreateBy");
  28. ColumnPropMaps.Add("CREATE_TIME", "CreateTime");
  29. ColumnPropMaps.Add("FLAG", "Flag");
  30. ColumnPropMaps.Add("CLIENT_TIME", "ClientTime");
  31. ColumnPropMaps.Add("SERVER_TIME", "ServerTime");
  32. ColumnPropMaps.Add("EXT01", "Ext01");
  33. ColumnPropMaps.Add("EXT02", "Ext02");
  34. ColumnPropMaps.Add("EXT03", "Ext03");
  35. ColumnPropMaps.Add("EXT04", "Ext04");
  36. ColumnPropMaps.Add("EXT05", "Ext05");
  37. ColumnPropMaps.Add("EXT06", "Ext06");
  38. ColumnPropMaps.Add("EXT07", "Ext07");
  39. ColumnPropMaps.Add("EXT08", "Ext08");
  40. ColumnPropMaps.Add("EXT09", "Ext09");
  41. ColumnPropMaps.Add("EXT10", "Ext10");
  42. ColumnPropMaps.Add("DEVICE_KEY", "DeviceKey");
  43. ColumnPropMaps.Add("POCKET_HOLES", "PocketHoles");
  44. ColumnPropMaps.Add("ITEM_LOT_KEY", "ItemLotKey");//COLUMN_MAPS
  45. }
  46. internal override object GetParam(SPILItemTransaction spilitemtransaction)
  47. {
  48. return new
  49. {
  50. Key = spilitemtransaction.Key,
  51. ItemTransactionKey = spilitemtransaction.ItemTransactionKey,
  52. StorageSpaceItemLotKey = spilitemtransaction.StorageSpaceItemLotKey,
  53. SSILotSnapshotKey = spilitemtransaction.SSILotSnapshotKey,
  54. Quantity = spilitemtransaction.Quantity,
  55. CreateBy = spilitemtransaction.CreateBy,
  56. CreateTime = spilitemtransaction.CreateTime,
  57. Flag = spilitemtransaction.Flag,
  58. ClientTime = spilitemtransaction.ClientTime,
  59. ServerTime = spilitemtransaction.ServerTime,
  60. Ext01 = spilitemtransaction.Ext01,
  61. Ext02 = spilitemtransaction.Ext02,
  62. Ext03 = spilitemtransaction.Ext03,
  63. Ext04 = spilitemtransaction.Ext04,
  64. Ext05 = spilitemtransaction.Ext05,
  65. Ext06 = spilitemtransaction.Ext06,
  66. Ext07 = spilitemtransaction.Ext07,
  67. Ext08 = spilitemtransaction.Ext08,
  68. Ext09 = spilitemtransaction.Ext09,
  69. Ext10 = spilitemtransaction.Ext10,
  70. DeviceKey = spilitemtransaction.DeviceKey,
  71. PocketHoles = spilitemtransaction.PocketHoles,
  72. ItemLotKey = spilitemtransaction.ItemLotKey, //Params
  73. };
  74. }
  75. public IEnumerable<SPILItemTransaction> ListMekKitDrugLendTransactionByRoom(String roomName)
  76. {
  77. #region sql builder
  78. ItemTransactionBLL itemTransactionBLL = new ItemTransactionBLL();
  79. SqlBuilder sqlBuilder = new SqlBuilder(itemTransactionBLL);
  80. //item
  81. ItemBLL itemBLL = new ItemBLL();
  82. TableJoinInfo itemTable = new TableJoinInfo
  83. {
  84. LeftDal = itemTransactionBLL,
  85. LeftColumnName = "ITEM_KEY",
  86. RightDal = itemBLL,
  87. RightColumnName = "KEY",
  88. JoinType = TableJoinTypes.Inner,
  89. };
  90. sqlBuilder.AppendSelectionTable(itemTable);
  91. //SPILItemTransaction
  92. TableJoinInfo spiltTable = new TableJoinInfo
  93. {
  94. LeftDal = itemTransactionBLL,
  95. LeftColumnName = itemTransactionBLL.KEY_COLUMN,
  96. RightDal = this,
  97. RightColumnName = "ITEM_TRANSACTION_KEY",
  98. JoinType = TableJoinTypes.Inner,
  99. };
  100. sqlBuilder.AppendSelectionTable(spiltTable);
  101. //item lot
  102. ItemLotBLL itemLotBLL = new ItemLotBLL();
  103. TableJoinInfo itemlotTable = new TableJoinInfo
  104. {
  105. LeftDal = this,
  106. LeftColumnName = "ITEM_LOT_KEY",
  107. RightDal = itemLotBLL,
  108. RightColumnName = itemLotBLL.KEY_COLUMN,
  109. JoinType = TableJoinTypes.Inner,
  110. };
  111. sqlBuilder.AppendSelectionTable(itemlotTable);
  112. sqlBuilder.AppendWherePhrases($"{itemTransactionBLL.AliasTableName}.EXT02=:roomName AND NVL({itemTransactionBLL.AliasTableName}.ext10,'0')='0'");
  113. sqlBuilder.AppendWherePhrases($"{itemTransactionBLL.AliasTableName}.TRANSACTION_TYPE='LendByMedKit'");
  114. sqlBuilder.AppendWherePhrases($"(SYSDATE-{itemTransactionBLL.AliasTableName}.CREATE_TIME)<1");
  115. sqlBuilder.AppendOrderPhrases($"{itemTransactionBLL.AliasTableName}.CREATE_TIME DESC");
  116. #endregion
  117. List<SPILItemTransaction> rlt = new List<SPILItemTransaction>();
  118. //只读取一条主表的数据,防止其它操作记录的数据
  119. Guid? itemTransactionKey = null;
  120. SqlMapper.Query<ItemTransaction, Item, SPILItemTransaction, ItemLot, SPILItemTransaction>(ConnectionFactory.Current.GetSessionConnection(),
  121. sqlBuilder.ToString(),
  122. (it, i, spilt, il) =>
  123. {
  124. if (itemTransactionKey == null)
  125. {
  126. itemTransactionKey = it.Key;
  127. }
  128. if (it.Key == itemTransactionKey)
  129. {
  130. spilt.ItemTransaction = it;
  131. it.Item = i;
  132. spilt.ItemLotInfo = il;
  133. rlt.Add(spilt);
  134. }
  135. return spilt;
  136. },
  137. new
  138. {
  139. roomName = roomName
  140. },
  141. splitOn: sqlBuilder.GetSpiltors());
  142. return rlt;
  143. }
  144. }
  145. }