电子药箱通讯服务端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. using RDH.Data.Models;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Xml.Linq;
  8. namespace RDH.Data.BLL
  9. {
  10. public partial class StorageSpaceBLL : BaseOrclSnapshotBLL<StorageSpace>
  11. {
  12. public StorageSpaceBLL() : base()
  13. {
  14. AliasTableName = "s";
  15. }
  16. internal override String TABLE_NAME { get { return "STORAGE_SPACE"; } }//TB_NAME
  17. internal override string ENTITY_NAME { get { return "StorageSpace"; } }
  18. internal override String KEY_COLUMN { get { return "SNAPSHOT_KEY"; } }//KEY_COLUMN
  19. internal override string SNAPSHOT_BASE { get { return "STORAGE_SPACE_BASE"; } }
  20. internal override void InitMaps()
  21. {
  22. ColumnPropMaps.Add("PARENT_KEY", "ParentKey");
  23. ColumnPropMaps.Add("SNAPSHOT_KEY", "SnapshotKey");
  24. ColumnPropMaps.Add("ROW_INDEX", "RowIndex");
  25. ColumnPropMaps.Add("COLUMN_INDEX", "ColumnIndex");
  26. ColumnPropMaps.Add("ROW_SPAN", "RowSpan");
  27. ColumnPropMaps.Add("COLUMN_SPAN", "ColumnSpan");
  28. ColumnPropMaps.Add("CHILDREN_ROWS", "ChildrenRows");
  29. ColumnPropMaps.Add("CHILDREN_COLUMNS", "ChildrenColumns");
  30. ColumnPropMaps.Add("TYPE_CODE", "TypeCode");
  31. ColumnPropMaps.Add("NAME", "Name");
  32. ColumnPropMaps.Add("CODE", "Code");
  33. ColumnPropMaps.Add("SERIAL_NO", "SerialNo");
  34. ColumnPropMaps.Add("DEVICE_KEY", "DeviceKey");
  35. ColumnPropMaps.Add("CREATE_BY", "CreateBy");
  36. ColumnPropMaps.Add("CREATE_TIME", "CreateTime");
  37. ColumnPropMaps.Add("KEY", "Key");
  38. ColumnPropMaps.Add("FLAG", "Flag");
  39. ColumnPropMaps.Add("CLIENT_TIME", "ClientTime");
  40. ColumnPropMaps.Add("SERVER_TIME", "ServerTime");
  41. ColumnPropMaps.Add("EXT01", "Ext01");
  42. ColumnPropMaps.Add("EXT02", "Ext02");
  43. ColumnPropMaps.Add("EXT03", "Ext03");
  44. ColumnPropMaps.Add("EXT04", "Ext04");
  45. ColumnPropMaps.Add("EXT05", "Ext05");
  46. ColumnPropMaps.Add("EXT06", "Ext06");
  47. ColumnPropMaps.Add("EXT07", "Ext07");
  48. ColumnPropMaps.Add("EXT08", "Ext08");
  49. ColumnPropMaps.Add("EXT09", "Ext09");
  50. ColumnPropMaps.Add("EXT10", "Ext10");//COLUMN_MAPS
  51. }
  52. internal override object GetParam(StorageSpace storagespace)
  53. {
  54. return new
  55. {
  56. ParentKey = storagespace.ParentKey,
  57. SnapshotKey = storagespace.SnapshotKey,
  58. RowIndex = storagespace.RowIndex,
  59. ColumnIndex = storagespace.ColumnIndex,
  60. RowSpan = storagespace.RowSpan,
  61. ColumnSpan = storagespace.ColumnSpan,
  62. ChildrenRows = storagespace.ChildrenRows,
  63. ChildrenColumns = storagespace.ChildrenColumns,
  64. TypeCode = storagespace.TypeCode,
  65. Name = storagespace.Name,
  66. Code = storagespace.Code,
  67. SerialNo = storagespace.SerialNo,
  68. DeviceKey = storagespace.DeviceKey,
  69. CreateBy = storagespace.CreateBy,
  70. CreateTime = storagespace.CreateTime,
  71. Key = storagespace.Key,
  72. Flag = storagespace.Flag,
  73. ClientTime = storagespace.ClientTime,
  74. ServerTime = storagespace.ServerTime,
  75. Ext01 = storagespace.Ext01,
  76. Ext02 = storagespace.Ext02,
  77. Ext03 = storagespace.Ext03,
  78. Ext04 = storagespace.Ext04,
  79. Ext05 = storagespace.Ext05,
  80. Ext06 = storagespace.Ext06,
  81. Ext07 = storagespace.Ext07,
  82. Ext08 = storagespace.Ext08,
  83. Ext09 = storagespace.Ext09,
  84. Ext10 = storagespace.Ext10, //Params
  85. };
  86. }
  87. public StorageSpace GetByRoomIdAndSerialNo(String roomId, String serialNo)
  88. {
  89. StringBuilder sqlBuilder = new StringBuilder();
  90. sqlBuilder.Append("SELECT ");
  91. foreach (KeyValuePair<String, String> pair in this.ColumnPropMaps)
  92. {
  93. sqlBuilder.AppendFormat("s.{0} {1},", pair.Key, pair.Value);
  94. }
  95. sqlBuilder.Remove(sqlBuilder.Length - 1, 1);
  96. sqlBuilder.AppendFormat(" FROM {0} s"
  97. + " INNER JOIN dispensing_device d ON d.key=s.device_key"
  98. + " INNER JOIN section sec ON sec.key = d.operation_room_key"
  99. + " INNER JOIN operation_room r ON r.ext01 = sec.key"
  100. + " WHERE s.ext02=:serialNo AND r.room_id =:roomId",
  101. this.TABLE_NAME);
  102. return SqlMapper.Query<StorageSpace>(ConnectionFactory.Current.GetSessionConnection(),
  103. sqlBuilder.ToString(),
  104. new { serialNo = serialNo, roomId = roomId })
  105. .FirstOrDefault();
  106. }
  107. public IEnumerable<StorageSpace> ListMedKitWithDeviceInfo()
  108. {
  109. StringBuilder sqlBuilder = new StringBuilder();
  110. sqlBuilder.Append("SELECT ");
  111. foreach (KeyValuePair<String, String> pair in this.ColumnPropMaps)
  112. {
  113. sqlBuilder.AppendFormat("s.{0} {1},", pair.Key, pair.Value);
  114. }
  115. //DispensingDeviceBLL
  116. sqlBuilder.Append("'' spiltor1,");
  117. DispensingDeviceBLL dispensingDeviceBLL = new DispensingDeviceBLL();
  118. foreach (KeyValuePair<String, String> pair in dispensingDeviceBLL.ColumnPropMaps)
  119. {
  120. sqlBuilder.AppendFormat("d.{0} {1},", pair.Key, pair.Value);
  121. }
  122. //DispensingDeviceBLL
  123. sqlBuilder.Append("'' spiltor2,");
  124. SectionBLL sectionBLL = new SectionBLL();
  125. foreach (KeyValuePair<String, String> pair in sectionBLL.ColumnPropMaps)
  126. {
  127. sqlBuilder.AppendFormat("sec.{0} {1},", pair.Key, pair.Value);
  128. }
  129. sqlBuilder.Remove(sqlBuilder.Length - 1, 1);
  130. sqlBuilder.AppendFormat(" FROM {0} s"
  131. + " INNER JOIN dispensing_device d ON d.key=s.device_key"
  132. + " LEFT JOIN section sec ON sec.key = d.operation_room_key"
  133. + " WHERE s.TYPE_CODE=:storageType"
  134. + " ORDER BY sec.SECTION_NAME,LPAD(s.ext02,2,'0')",
  135. this.TABLE_NAME);
  136. return SqlMapper.Query<StorageSpace, DispensingDevice, Section, StorageSpace>(ConnectionFactory.Current.GetSessionConnection(),
  137. sqlBuilder.ToString(),
  138. (s, d, sec) =>
  139. {
  140. s.DispensingDevice = d;
  141. s.DispensingDevice.SectionInfo = sec;
  142. return s;
  143. },
  144. new { storageType = StorageSpaceTypeCodes.MedicalKitPocket },
  145. splitOn: "spiltor1,spiltor2");
  146. }
  147. }
  148. }