ConvertHelper.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613
  1. using DBEntity;
  2. using IvfTl.Control.Entity.DBEntitys;
  3. using IvfTl.Control.Entity.DTO;
  4. using IvfTl.Control.Entity.DTO.ApiResultDTO;
  5. using IvfTl.Control.Entity.GlobalEntitys;
  6. using IvfTl.Control.Entity.InitEntitys;
  7. namespace ivf_tl_UtilHelper
  8. {
  9. public static class ConvertHelper
  10. {
  11. public static TLSetting ConvertToTLSetting(tlInfoDTO tlInfo, tlSettingDTO tlSetting)
  12. {
  13. if (tlInfo == null) return null;
  14. TLSetting TLSetting = new TLSetting();
  15. TLSetting.id = tlInfo.id;
  16. TLSetting.tlSn = tlInfo.tlSn;
  17. TLSetting.tlName = tlInfo.tlName;
  18. TLSetting.state = tlInfo.state;
  19. TLSetting.online = tlInfo.online;
  20. TLSetting.softwareVersion = tlInfo.softwareVersion;
  21. TLSetting.protocolAddress = tlInfo.protocolAddress;
  22. TLSetting.installTime = tlInfo.installTime;
  23. TLSetting.address = tlInfo.address;
  24. TLSetting.socketIp = tlInfo.socketIp;
  25. TLSetting.socketPort = tlInfo.socketPort;
  26. TLSetting.alarmIp = tlInfo.alarmIp;
  27. TLSetting.alarmPort = tlInfo.alarmPort;
  28. TLSetting.mqttQueue = tlInfo.mqttQueue;
  29. TLSetting.kafkaTopic = tlInfo.kafkaTopic;
  30. TLSetting.remark = tlInfo.remark;
  31. if (tlSetting == null) return TLSetting;
  32. TLSetting.tmpDir = tlSetting.tmpDir;
  33. TLSetting.autoFocusTime = tlSetting.autoFocusTime;
  34. TLSetting.videoFps = tlSetting.videoFps;
  35. TLSetting.watermarking = tlSetting.watermarking;
  36. TLSetting.bufferBottlerPressureMax = tlSetting.bufferBottlerPressureMax;
  37. TLSetting.bufferBottlerPressureMin = tlSetting.bufferBottlerPressureMin;
  38. TLSetting.pressureAlarmMax = tlSetting.pressureAlarmMax;
  39. TLSetting.pressureAlarmMin = tlSetting.pressureAlarmMin;
  40. TLSetting.temperatureAlarmMax = tlSetting.temperatureAlarmMax;
  41. TLSetting.temperatureAlarmMin = tlSetting.temperatureAlarmMin;
  42. TLSetting.bufferBottlerAerationNum = tlSetting.bufferBottlerAerationNum;
  43. TLSetting.houseAerationNum = tlSetting.houseAerationNum;
  44. TLSetting.ventilationDelay = tlSetting.ventilationDelay;
  45. TLSetting.airSwapFrequency = tlSetting.airSwapFrequency;
  46. TLSetting.airSwapTime = tlSetting.airSwapTime;
  47. TLSetting.valueDelay = tlSetting.valueDelay;
  48. TLSetting.aerationDelay = tlSetting.aerationDelay;
  49. if (tlSetting.newAirSwap == 1)
  50. {
  51. TLSetting.newAirSwap = true;
  52. }
  53. TLSetting.motorDelay = tlSetting.motorDelay;
  54. TLSetting.verticalMotorPulseMax = tlSetting.verticalMotorPulseMax;
  55. TLSetting.photoIntervalPerRound = tlSetting.photoIntervalPerRound;
  56. TLSetting.lightOn = tlSetting.lightOn;
  57. TLSetting.keepDate = tlSetting.keepDate;
  58. TLSetting.heapDate = tlSetting.heapDate;
  59. TLSetting.historyCurveInterval = tlSetting.historyCurveInterval;
  60. TLSetting.mattingAlarmTimes = tlSetting.mattingAlarmTimes;
  61. TLSetting.houseDoorAlarmTime = tlSetting.houseDoorAlarmTime;
  62. TLSetting.temperatureAlarmTime = tlSetting.temperatureAlarmTime;
  63. TLSetting.pressureAlarmTime = tlSetting.pressureAlarmTime;
  64. TLSetting.chartThreshold = tlSetting.chartThreshold;
  65. TLSetting.saveSourcePic = TLSetting.saveSourcePic;
  66. if (tlSetting.compositeVideo == 1)
  67. {
  68. TLSetting.buildVideo = true;
  69. }
  70. // V-047 对焦配置下发链:服务器 init JSON → tlSettingDTO → 运行态 TLSetting
  71. // (喂 PhotoLayerCalculator / 安全门),再经 ConvertToTLSettingDB 落本地 SQLite 缓存。
  72. TLSetting.localAutofocusEnabled = tlSetting.localAutofocusEnabled ?? 0;
  73. TLSetting.focusLayerSpacingPulse = tlSetting.focusLayerSpacingPulse;
  74. TLSetting.focusLayerCount = tlSetting.focusLayerCount;
  75. TLSetting.cleanAutofocusData = tlSetting.cleanAutofocusData; // G4-1:对焦标定保留天数下发
  76. TLSetting.focusLayerDown = tlSetting.focusLayerDown;
  77. TLSetting.focusPeakRatioThreshold = tlSetting.focusPeakRatioThreshold;
  78. return TLSetting;
  79. }
  80. public static TLSetting ConvertToTLSetting(TLSettingDB tLSettingDB)
  81. {
  82. if (tLSettingDB == null) return null;
  83. TLSetting TLSetting = new TLSetting();
  84. TLSetting.id = tLSettingDB.id;
  85. TLSetting.tlSn = tLSettingDB.tlSn;
  86. TLSetting.tlName = tLSettingDB.tlName;
  87. TLSetting.state = tLSettingDB.state;
  88. TLSetting.online = tLSettingDB.online;
  89. TLSetting.softwareVersion = tLSettingDB.softwareVersion;
  90. TLSetting.protocolAddress = tLSettingDB.protocolAddress;
  91. TLSetting.installTime = tLSettingDB.installTime;
  92. TLSetting.address = tLSettingDB.address;
  93. TLSetting.socketIp = tLSettingDB.socketIp;
  94. TLSetting.socketPort = tLSettingDB.socketPort;
  95. TLSetting.alarmIp = tLSettingDB.alarmIp;
  96. TLSetting.alarmPort = tLSettingDB.alarmPort;
  97. TLSetting.mqttQueue = tLSettingDB.mqttQueue;
  98. TLSetting.kafkaTopic = tLSettingDB.kafkaTopic;
  99. TLSetting.remark = tLSettingDB.remark;
  100. TLSetting.tmpDir = tLSettingDB.tmpDir;
  101. TLSetting.autoFocusTime = tLSettingDB.autoFocusTime;
  102. TLSetting.videoFps = tLSettingDB.videoFps;
  103. TLSetting.watermarking = tLSettingDB.watermarking;
  104. TLSetting.bufferBottlerPressureMax = tLSettingDB.bufferBottlerPressureMax;
  105. TLSetting.bufferBottlerPressureMin = tLSettingDB.bufferBottlerPressureMin;
  106. TLSetting.pressureAlarmMax = tLSettingDB.pressureAlarmMax;
  107. TLSetting.pressureAlarmMin = tLSettingDB.pressureAlarmMin;
  108. TLSetting.temperatureAlarmMax = tLSettingDB.temperatureAlarmMax;
  109. TLSetting.temperatureAlarmMin = tLSettingDB.temperatureAlarmMin;
  110. TLSetting.bufferBottlerAerationNum = tLSettingDB.bufferBottlerAerationNum;
  111. TLSetting.houseAerationNum = tLSettingDB.houseAerationNum;
  112. TLSetting.ventilationDelay = tLSettingDB.ventilationDelay;
  113. TLSetting.airSwapFrequency = tLSettingDB.airSwapFrequency;
  114. TLSetting.airSwapTime = tLSettingDB.airSwapTime;
  115. TLSetting.valueDelay = tLSettingDB.valueDelay;
  116. TLSetting.aerationDelay = tLSettingDB.aerationDelay;
  117. if (tLSettingDB.newAirSwap == 1)
  118. {
  119. TLSetting.newAirSwap = true;
  120. }
  121. TLSetting.motorDelay = tLSettingDB.motorDelay;
  122. TLSetting.verticalMotorPulseMax = tLSettingDB.verticalMotorPulseMax;
  123. TLSetting.photoIntervalPerRound = tLSettingDB.photoIntervalPerRound;
  124. TLSetting.lightOn = tLSettingDB.lightOn;
  125. TLSetting.keepDate = tLSettingDB.keepDate;
  126. TLSetting.heapDate = tLSettingDB.heapDate;
  127. TLSetting.historyCurveInterval = tLSettingDB.historyCurveInterval;
  128. TLSetting.mattingAlarmTimes = tLSettingDB.mattingAlarmTimes;
  129. TLSetting.houseDoorAlarmTime = tLSettingDB.houseDoorAlarmTime;
  130. TLSetting.temperatureAlarmTime = tLSettingDB.temperatureAlarmTime;
  131. TLSetting.pressureAlarmTime = tLSettingDB.pressureAlarmTime;
  132. TLSetting.chartThreshold = tLSettingDB.chartThreshold;
  133. // M2-06 场景B本地自动对焦安全门(设备级开关;0关闭降级/1启用本地对焦,默认安全)。
  134. TLSetting.localAutofocusEnabled = tLSettingDB.localAutofocusEnabled;
  135. // V-047 取数链:设备级拍照层配置 本地缓存 → 运行时(喂 PhotoLayerCalculator)。
  136. TLSetting.focusLayerSpacingPulse = tLSettingDB.focusLayerSpacingPulse;
  137. TLSetting.focusLayerCount = tLSettingDB.focusLayerCount;
  138. TLSetting.cleanAutofocusData = tLSettingDB.cleanAutofocusData; // G4-1:本地缓存回读保留天数
  139. TLSetting.focusLayerDown = tLSettingDB.focusLayerDown;
  140. TLSetting.focusPeakRatioThreshold = tLSettingDB.focusPeakRatioThreshold;
  141. TLSetting.saveSourcePic = TLSetting.saveSourcePic;
  142. if (tLSettingDB.compositeVideo == 1)
  143. {
  144. TLSetting.buildVideo = true;
  145. }
  146. return TLSetting;
  147. }
  148. public static TLSettingDB ConvertToTLSettingDB(TLSetting tLSetting)
  149. {
  150. if (tLSetting == null) return null;
  151. TLSettingDB tLSettingDB = new TLSettingDB();
  152. tLSettingDB.id = tLSetting.id;
  153. tLSettingDB.tlSn = tLSetting.tlSn;
  154. tLSettingDB.tlName = tLSetting.tlName;
  155. tLSettingDB.state = tLSetting.state;
  156. tLSettingDB.online = tLSetting.online;
  157. tLSettingDB.softwareVersion = tLSetting.softwareVersion;
  158. tLSettingDB.protocolAddress = tLSetting.protocolAddress;
  159. tLSettingDB.installTime = tLSetting.installTime;
  160. tLSettingDB.address = tLSetting.address;
  161. tLSettingDB.socketIp = tLSetting.socketIp;
  162. tLSettingDB.socketPort = tLSetting.socketPort;
  163. tLSettingDB.alarmIp = tLSetting.alarmIp;
  164. tLSettingDB.alarmPort = tLSetting.alarmPort;
  165. tLSettingDB.mqttQueue = tLSetting.mqttQueue;
  166. tLSettingDB.kafkaTopic = tLSetting.kafkaTopic;
  167. tLSettingDB.remark = tLSetting.remark;
  168. tLSettingDB.tmpDir = tLSetting.tmpDir;
  169. tLSettingDB.autoFocusTime = tLSetting.autoFocusTime;
  170. tLSettingDB.videoFps = tLSetting.videoFps;
  171. tLSettingDB.watermarking = tLSetting.watermarking;
  172. tLSettingDB.bufferBottlerPressureMax = tLSetting.bufferBottlerPressureMax;
  173. tLSettingDB.bufferBottlerPressureMin = tLSetting.bufferBottlerPressureMin;
  174. tLSettingDB.pressureAlarmMax = tLSetting.pressureAlarmMax;
  175. tLSettingDB.pressureAlarmMin = tLSetting.pressureAlarmMin;
  176. tLSettingDB.temperatureAlarmMax = tLSetting.temperatureAlarmMax;
  177. tLSettingDB.temperatureAlarmMin = tLSetting.temperatureAlarmMin;
  178. tLSettingDB.bufferBottlerAerationNum = tLSetting.bufferBottlerAerationNum;
  179. tLSettingDB.houseAerationNum = tLSetting.houseAerationNum;
  180. tLSettingDB.ventilationDelay = tLSetting.ventilationDelay;
  181. tLSettingDB.airSwapFrequency = tLSetting.airSwapFrequency;
  182. tLSettingDB.airSwapTime = tLSetting.airSwapTime;
  183. tLSettingDB.valueDelay = tLSetting.valueDelay;
  184. tLSettingDB.aerationDelay = tLSetting.aerationDelay;
  185. tLSettingDB.historyCurveInterval = tLSetting.historyCurveInterval;
  186. if (tLSetting.newAirSwap)
  187. {
  188. tLSettingDB.newAirSwap = 1;
  189. }
  190. else
  191. {
  192. tLSettingDB.newAirSwap = 0;
  193. }
  194. tLSettingDB.motorDelay = tLSetting.motorDelay;
  195. tLSettingDB.verticalMotorPulseMax = tLSetting.verticalMotorPulseMax;
  196. tLSettingDB.photoIntervalPerRound = tLSetting.photoIntervalPerRound;
  197. tLSettingDB.lightOn = tLSetting.lightOn;
  198. tLSettingDB.keepDate = tLSetting.keepDate;
  199. tLSettingDB.heapDate = tLSetting.heapDate;
  200. tLSettingDB.mattingAlarmTimes = tLSetting.mattingAlarmTimes;
  201. tLSettingDB.houseDoorAlarmTime = tLSetting.houseDoorAlarmTime;
  202. tLSettingDB.temperatureAlarmTime = tLSetting.temperatureAlarmTime;
  203. tLSettingDB.pressureAlarmTime = tLSetting.pressureAlarmTime;
  204. tLSettingDB.chartThreshold = tLSetting.chartThreshold;
  205. // M2-06 场景B本地自动对焦安全门(设备级开关)回写本地缓存,跨重启保留。
  206. tLSettingDB.localAutofocusEnabled = tLSetting.localAutofocusEnabled;
  207. // V-047 取数链:设备级拍照层配置 运行时 → 本地缓存,跨重启保留。
  208. tLSettingDB.focusLayerSpacingPulse = tLSetting.focusLayerSpacingPulse;
  209. tLSettingDB.focusLayerCount = tLSetting.focusLayerCount;
  210. tLSettingDB.cleanAutofocusData = tLSetting.cleanAutofocusData; // G4-1:保留天数写入本地缓存
  211. tLSettingDB.focusLayerDown = tLSetting.focusLayerDown;
  212. tLSettingDB.focusPeakRatioThreshold = tLSetting.focusPeakRatioThreshold;
  213. tLSettingDB.saveSourcePic = tLSetting.saveSourcePic;
  214. if (tLSetting.buildVideo)
  215. {
  216. tLSettingDB.compositeVideo = 1;
  217. }
  218. else
  219. {
  220. tLSettingDB.compositeVideo = 0;
  221. }
  222. return tLSettingDB;
  223. }
  224. public static House ConvertToHouse(houseDTO houseDTO)
  225. {
  226. if (houseDTO == null) return null;
  227. House house = new House();
  228. house.tlSn = houseDTO.tlSn;
  229. house.houseSn = houseDTO.houseSn;
  230. house.houseName = houseDTO.houseName;
  231. house.housePort = houseDTO.housePort;
  232. house.ccdId = houseDTO.ccdId;
  233. house.ccdSn = houseDTO.ccdSn;
  234. house.ccdHeight = houseDTO.ccdHeight;
  235. house.ccdWidth = houseDTO.ccdWidth;
  236. house.targetHeight = houseDTO.targetHeight;
  237. house.targetWidth = houseDTO.targetWidth;
  238. house.verticalMotorSpacePulse = houseDTO.verticalMotorSpacePulse;
  239. house.ccdExposure = houseDTO.ccdExposure;
  240. house.autoFocusNumber = houseDTO.autoFocusNumber;
  241. house.photographPictureNumber = houseDTO.photographPictureNumber;
  242. house.updateFocusNumber = houseDTO.updateFocusNumber;
  243. house.updateClearestNumber = houseDTO.updateClearestNumber;
  244. house.openCcd = houseDTO.openCcd;
  245. house.openPort = houseDTO.openPort;
  246. house.autoFocus = houseDTO.autoFocus == 1;
  247. house.noImagePreview = houseDTO.noImagePreview == 1;
  248. house.inletValveOpeningTime = houseDTO.inletValveOpeningTime;
  249. house.temperatureLowerHeatingPlate = houseDTO.temperatureLowerHeatingPlate;
  250. return house;
  251. }
  252. public static House ConvertToHouse(HouseDB houseDB)
  253. {
  254. if (houseDB == null) return null;
  255. House house = new House();
  256. house.tlSn = houseDB.tlSn;
  257. house.houseSn = houseDB.houseSn;
  258. house.houseName = houseDB.houseName;
  259. house.housePort = houseDB.housePort;
  260. house.ccdId = houseDB.ccdId;
  261. house.ccdSn = houseDB.ccdSn;
  262. house.ccdHeight = houseDB.ccdHeight;
  263. house.ccdWidth = houseDB.ccdWidth;
  264. house.targetHeight = houseDB.targetHeight;
  265. house.targetWidth = houseDB.targetWidth;
  266. house.verticalMotorSpacePulse = houseDB.verticalMotorSpacePulse;
  267. house.ccdExposure = houseDB.ccdExposure;
  268. house.autoFocusNumber = houseDB.autoFocusNumber;
  269. house.photographPictureNumber = houseDB.photographPictureNumber;
  270. house.updateFocusNumber = houseDB.updateFocusNumber;
  271. house.updateClearestNumber = houseDB.updateClearestNumber;
  272. house.openCcd = houseDB.openCcd;
  273. house.openPort = houseDB.openPort;
  274. house.autoFocus = houseDB.autoFocus == 1;
  275. house.noImagePreview = houseDB.noImagePreview == 1;
  276. house.inletValveOpeningTime = houseDB.inletValveOpeningTime;
  277. house.temperatureLowerHeatingPlate = houseDB.temperatureLowerHeatingPlate;
  278. return house;
  279. }
  280. public static HouseDB ConvertToHouseDB(House house)
  281. {
  282. if (house == null) return null;
  283. HouseDB houseDB = new HouseDB();
  284. houseDB.tlSn = house.tlSn;
  285. houseDB.houseSn = house.houseSn;
  286. houseDB.houseName = house.houseName;
  287. houseDB.housePort = house.housePort;
  288. houseDB.ccdId = house.ccdId;
  289. houseDB.ccdSn = house.ccdSn;
  290. houseDB.ccdHeight = house.ccdHeight;
  291. houseDB.ccdWidth = house.ccdWidth;
  292. houseDB.targetHeight = house.targetHeight;
  293. houseDB.targetWidth = house.targetWidth;
  294. houseDB.verticalMotorSpacePulse = house.verticalMotorSpacePulse;
  295. houseDB.ccdExposure = house.ccdExposure;
  296. houseDB.autoFocusNumber = house.autoFocusNumber;
  297. houseDB.photographPictureNumber = house.photographPictureNumber;
  298. houseDB.updateFocusNumber = house.updateFocusNumber;
  299. houseDB.updateClearestNumber = house.updateClearestNumber;
  300. houseDB.openCcd = house.openCcd;
  301. houseDB.openPort = house.openPort;
  302. houseDB.autoFocus = house.autoFocus ? 1 : 0;
  303. houseDB.noImagePreview = house.noImagePreview ? 1 : 0;
  304. houseDB.inletValveOpeningTime = house.inletValveOpeningTime;
  305. houseDB.temperatureLowerHeatingPlate = house.temperatureLowerHeatingPlate;
  306. return houseDB;
  307. }
  308. public static HouseWellSetting ConvertToHouseWellSetting(houseWellSettingDTO houseWellSettingDTO)
  309. {
  310. if (houseWellSettingDTO == null) return null;
  311. HouseWellSetting houseWellSetting = new HouseWellSetting();
  312. houseWellSetting.tlSn = houseWellSettingDTO.tlSn;
  313. houseWellSetting.houseSn = houseWellSettingDTO.houseSn;
  314. houseWellSetting.wellSn = houseWellSettingDTO.wellSn;
  315. houseWellSetting.leftOffset = houseWellSettingDTO.leftOffset;
  316. houseWellSetting.bottomOffset = houseWellSettingDTO.bottomOffset;
  317. houseWellSetting.moveDownLayer = houseWellSettingDTO.moveDownLayer;
  318. houseWellSetting.horizontalMotorPosition = houseWellSettingDTO.horizontalMotorPosition;
  319. houseWellSetting.eepromClearPosition = houseWellSettingDTO.eepromClearPosition;
  320. // V-047 对焦配置下发链:well 级覆盖 服务器 init JSON → DTO → 运行态(空=继承设备级)。
  321. houseWellSetting.focusLayerSpacingPulse = houseWellSettingDTO.focusLayerSpacingPulse;
  322. houseWellSetting.focusLayerCount = houseWellSettingDTO.focusLayerCount;
  323. return houseWellSetting;
  324. }
  325. public static HouseWellSetting ConvertToHouseWellSetting(HouseWellSettingDB houseWellSettingDB)
  326. {
  327. if (houseWellSettingDB == null) return null;
  328. HouseWellSetting houseWellSetting = new HouseWellSetting();
  329. houseWellSetting.tlSn = houseWellSettingDB.tlSn;
  330. houseWellSetting.houseSn = houseWellSettingDB.houseSn;
  331. houseWellSetting.wellSn = houseWellSettingDB.wellSn;
  332. houseWellSetting.leftOffset = houseWellSettingDB.leftOffset;
  333. houseWellSetting.bottomOffset = houseWellSettingDB.bottomOffset;
  334. houseWellSetting.moveDownLayer = houseWellSettingDB.moveDownLayer;
  335. houseWellSetting.horizontalMotorPosition = houseWellSettingDB.horizontalMotorPosition;
  336. houseWellSetting.eepromClearPosition = houseWellSettingDB.eepromClearPosition;
  337. // V-047 取数链:well 级拍照层覆盖 本地缓存 → 运行时(空=继承设备级,喂 PhotoLayerCalculator)。
  338. houseWellSetting.focusLayerSpacingPulse = houseWellSettingDB.focusLayerSpacingPulse;
  339. houseWellSetting.focusLayerCount = houseWellSettingDB.focusLayerCount;
  340. return houseWellSetting;
  341. }
  342. public static HouseWellSettingDB ConvertToHouseWellSettingDB(HouseWellSetting houseWellSetting)
  343. {
  344. if (houseWellSetting == null) return null;
  345. HouseWellSettingDB houseWellSettingDB = new HouseWellSettingDB();
  346. houseWellSettingDB.tlSn = houseWellSetting.tlSn;
  347. houseWellSettingDB.houseSn = houseWellSetting.houseSn;
  348. houseWellSettingDB.wellSn = houseWellSetting.wellSn;
  349. houseWellSettingDB.leftOffset = houseWellSetting.leftOffset;
  350. houseWellSettingDB.bottomOffset = houseWellSetting.bottomOffset;
  351. houseWellSettingDB.moveDownLayer = houseWellSetting.moveDownLayer;
  352. houseWellSettingDB.horizontalMotorPosition = houseWellSetting.horizontalMotorPosition;
  353. houseWellSettingDB.eepromClearPosition = houseWellSetting.eepromClearPosition;
  354. // V-047 取数链:well 级拍照层覆盖 运行时 → 本地缓存,跨重启保留。
  355. houseWellSettingDB.focusLayerSpacingPulse = houseWellSetting.focusLayerSpacingPulse;
  356. houseWellSettingDB.focusLayerCount = houseWellSetting.focusLayerCount;
  357. return houseWellSettingDB;
  358. }
  359. public static HouseWellPhoto ConvertToHouseWellPhoto(positionResultDTO autoFocusPositionDTO)
  360. {
  361. if (autoFocusPositionDTO == null) return null;
  362. HouseWellPhoto houseWellPhoto = new HouseWellPhoto();
  363. houseWellPhoto.tlSn = autoFocusPositionDTO.tlSn;
  364. houseWellPhoto.houseSn = autoFocusPositionDTO.houseSn;
  365. houseWellPhoto.wellSn = autoFocusPositionDTO.wellSn;
  366. houseWellPhoto.verticalMotorPosition = autoFocusPositionDTO.verticalMotorPosition;
  367. houseWellPhoto.clearest = autoFocusPositionDTO.layerNum;
  368. houseWellPhoto.positionType = autoFocusPositionDTO.positionType;
  369. return houseWellPhoto;
  370. }
  371. public static HouseWellPhoto ConvertToHouseWellPhoto(HouseWellPhotoDB houseWellPhotoDb)
  372. {
  373. if (houseWellPhotoDb == null) return null;
  374. HouseWellPhoto houseWellPhoto = new HouseWellPhoto();
  375. houseWellPhoto.tlSn = houseWellPhotoDb.tlSn;
  376. houseWellPhoto.houseSn = houseWellPhotoDb.houseSn;
  377. houseWellPhoto.wellSn = houseWellPhotoDb.wellSn;
  378. houseWellPhoto.verticalMotorPosition = houseWellPhotoDb.verticalMotorPosition;
  379. houseWellPhoto.clearest = houseWellPhotoDb.clearest;
  380. houseWellPhoto.positionType = houseWellPhotoDb.positionType;
  381. return houseWellPhoto;
  382. }
  383. public static HouseWellPhotoDB ConvertToHouseWellPhotoDB(HouseWellPhoto houseWellPhoto)
  384. {
  385. if (houseWellPhoto == null) return null;
  386. HouseWellPhotoDB houseWellPhotoDB = new HouseWellPhotoDB();
  387. houseWellPhotoDB.tlSn = houseWellPhoto.tlSn;
  388. houseWellPhotoDB.houseSn = houseWellPhoto.houseSn;
  389. houseWellPhotoDB.wellSn = houseWellPhoto.wellSn;
  390. houseWellPhotoDB.verticalMotorPosition = houseWellPhoto.verticalMotorPosition;
  391. houseWellPhotoDB.clearest = houseWellPhoto.clearest;
  392. houseWellPhotoDB.positionType = houseWellPhoto.positionType;
  393. return houseWellPhotoDB;
  394. }
  395. public static Embryo ConvertToEmbryo(embryoDTO embryoDTO)
  396. {
  397. if (embryoDTO == null) return null;
  398. Embryo embryo=new Embryo();
  399. embryo.id = embryoDTO.id;
  400. embryo.dishId = embryoDTO.dishId;
  401. embryo.tlSn = embryoDTO.tlSn;
  402. embryo.houseSn= embryoDTO.houseSn;
  403. embryo.wellSn = embryoDTO.wellSn;
  404. embryo.startTime = embryoDTO.startTime;
  405. embryo.state= embryoDTO.state;
  406. embryo.stateTime = embryoDTO.stateTime;
  407. return embryo;
  408. }
  409. public static Embryo ConvertToEmbryo(EmbryoDB embryoDB)
  410. {
  411. if (embryoDB == null) return null;
  412. Embryo embryo = new Embryo();
  413. embryo.id = embryoDB.id;
  414. embryo.dishId = embryoDB.dishId;
  415. embryo.tlSn = embryoDB.tlSn;
  416. embryo.houseSn = embryoDB.houseSn;
  417. embryo.wellSn = embryoDB.wellSn;
  418. embryo.startTime = embryoDB.startTime;
  419. embryo.state = embryoDB.state;
  420. embryo.stateTime = embryoDB.stateTime;
  421. return embryo;
  422. }
  423. public static EmbryoDB ConvertToEmbryoDB(Embryo embryo)
  424. {
  425. if (embryo == null) return null;
  426. EmbryoDB embryoDB = new EmbryoDB();
  427. embryoDB.id = embryo.id;
  428. embryoDB.dishId = embryo.dishId;
  429. embryoDB.tlSn = embryo.tlSn;
  430. embryoDB.houseSn = embryo.houseSn;
  431. embryoDB.wellSn = embryo.wellSn;
  432. embryoDB.startTime = embryo.startTime;
  433. embryoDB.state = embryo.state;
  434. embryoDB.stateTime = embryo.stateTime;
  435. return embryoDB;
  436. }
  437. public static Dish ConvertToDish(dishDTO dishDTO)
  438. {
  439. if (dishDTO == null) return null;
  440. Dish dish = new Dish();
  441. dish.id=dishDTO.id;
  442. dish.tlSn= dishDTO.tlSn;
  443. dish.houseSn= dishDTO.houseSn;
  444. dish.startTime = dishDTO.startTime;
  445. dish.embryoCount = dishDTO.embryoCount;
  446. dish.Embryo = new List<Embryo>();
  447. foreach (var item in dishDTO.embryo)
  448. {
  449. dish.Embryo.Add(ConvertToEmbryo(item));
  450. }
  451. return dish;
  452. }
  453. public static Dish ConvertToDish(DishDB dishDB)
  454. {
  455. if (dishDB == null) return null;
  456. Dish dish = new Dish();
  457. dish.id = dishDB.id;
  458. dish.tlSn = dishDB.tlSn;
  459. dish.houseSn = dishDB.houseSn;
  460. dish.startTime = dishDB.startTime;
  461. dish.embryoCount = dishDB.embryoCount;
  462. dish.Embryo = new List<Embryo>();
  463. dish.endTime = dishDB.endTime;
  464. return dish;
  465. }
  466. public static DishDB ConvertToDishDB(Dish dish)
  467. {
  468. if (dish == null) return null;
  469. DishDB dishDB = new DishDB();
  470. dishDB.id = dish.id;
  471. dishDB.tlSn = dish.tlSn;
  472. dishDB.houseSn = dish.houseSn;
  473. dishDB.startTime = dish.startTime;
  474. dishDB.embryoCount = dish.embryoCount;
  475. dishDB.endTime = dish.endTime;
  476. return dishDB;
  477. }
  478. public static Balance ConvertToBalance(balanceDTO balanceDTO)
  479. {
  480. if (balanceDTO == null) return null;
  481. Balance balance = new Balance();
  482. balance.id=balanceDTO.id;
  483. balance.tlSn = balanceDTO.tlSn;
  484. balance.houseSn = balanceDTO.houseSn;
  485. balance.startTime = balanceDTO.startTime;
  486. return balance;
  487. }
  488. public static Balance ConvertToBalance(BalanceDB balanceDB)
  489. {
  490. if (balanceDB == null) return null;
  491. Balance balance = new Balance();
  492. balance.id = balanceDB.id;
  493. balance.tlSn = balanceDB.tlSn;
  494. balance.houseSn = balanceDB.houseSn;
  495. balance.startTime = balanceDB.startTime;
  496. balance.endTime = balanceDB.endTime;
  497. return balance;
  498. }
  499. public static BalanceDB ConvertToBalanceDB(Balance balance)
  500. {
  501. if (balance == null) return null;
  502. BalanceDB balanceDB = new BalanceDB();
  503. balanceDB.id = balance.id;
  504. balanceDB.tlSn = balance.tlSn;
  505. balanceDB.houseSn = balance.houseSn;
  506. balanceDB.startTime = balance.startTime;
  507. balanceDB.endTime = balance.endTime;
  508. return balanceDB;
  509. }
  510. public static PictureDB ConvertToPictureDB(ImageDTO imageDTO)
  511. {
  512. if (imageDTO == null) return null;
  513. PictureDB pictureDB = new PictureDB();
  514. pictureDB.CCDSN = imageDTO.CcdSn;
  515. pictureDB.Clearest = imageDTO.Clearest;
  516. pictureDB.dishId = (long)imageDTO.EmbryoCultureRecordId;
  517. pictureDB.EmbryoId = (long)imageDTO.EmbryoId;
  518. pictureDB.End = imageDTO.End;
  519. pictureDB.FertilizationTime = imageDTO.FertilizationTime;
  520. pictureDB.HorizontalPosition= imageDTO.HorizontalPosition;
  521. pictureDB.HouseSn = imageDTO.HouseSn;
  522. pictureDB.ImageTime = imageDTO.ImageTime;
  523. pictureDB.PhotographType = imageDTO.PhotographType;
  524. pictureDB.PictureLayer = imageDTO.PictureLayer;
  525. pictureDB.ShootingPosition = imageDTO.ShootingPosition;
  526. pictureDB.SourceImageName = imageDTO.SourceImageName;
  527. pictureDB.SourceImagePath = imageDTO.SourceImagePath;
  528. pictureDB.SourceImageWidth = imageDTO.SourceImageWidth;
  529. pictureDB.SourceImageHeight = imageDTO.SourceImageHeight;
  530. pictureDB.TlSn = imageDTO.TlSn;
  531. pictureDB.WellSn = imageDTO.WellSn;
  532. pictureDB.TotalLayer= imageDTO.TotalLayer;
  533. return pictureDB;
  534. }
  535. public static ImageDTO ConvertToPictureDB(PictureDB pictureDB)
  536. {
  537. if (pictureDB == null) return null;
  538. ImageDTO imageDTO = new ImageDTO();
  539. imageDTO.CcdSn = pictureDB.CCDSN;
  540. imageDTO.Clearest = pictureDB.Clearest;
  541. imageDTO.EmbryoCultureRecordId = (ulong)pictureDB.dishId;
  542. imageDTO.EmbryoId = (ulong)pictureDB.EmbryoId;
  543. imageDTO.End = pictureDB.End;
  544. imageDTO.FertilizationTime = pictureDB.FertilizationTime;
  545. imageDTO.HorizontalPosition = pictureDB.HorizontalPosition;
  546. imageDTO.HouseSn = pictureDB.HouseSn;
  547. imageDTO.ImageTime = pictureDB.ImageTime;
  548. imageDTO.PhotographType = pictureDB.PhotographType;
  549. imageDTO.PictureLayer = pictureDB.PictureLayer;
  550. imageDTO.ShootingPosition = pictureDB.ShootingPosition;
  551. imageDTO.SourceImageName = pictureDB.SourceImageName;
  552. imageDTO.SourceImagePath = pictureDB.SourceImagePath;
  553. imageDTO.SourceImageWidth = pictureDB.SourceImageWidth;
  554. imageDTO.SourceImageHeight = pictureDB.SourceImageHeight;
  555. imageDTO.TlSn = pictureDB.TlSn;
  556. imageDTO.WellSn = pictureDB.WellSn;
  557. imageDTO.TotalLayer = pictureDB.TotalLayer;
  558. return imageDTO;
  559. }
  560. }
  561. }