sync.go 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package controllers
  2. import (
  3. "Data_Upload_Api/enums"
  4. "Data_Upload_Api/models/sz"
  5. "Data_Upload_Api/service"
  6. "Data_Upload_Api/service/city"
  7. "Data_Upload_Api/utils"
  8. "fmt"
  9. _ "fmt"
  10. "github.com/astaxie/beego"
  11. _ "github.com/jinzhu/gorm"
  12. _ "math"
  13. _ "strconv"
  14. _ "strings"
  15. _ "time"
  16. )
  17. type SyncController struct {
  18. BaseAPIController
  19. }
  20. func SyncAPIRegisterRouters() {
  21. beego.Router("/sync/upload/hqyy", &SyncController{}, "get:SyncToHqyy")
  22. beego.Router("/sync/upload/lg2h", &SyncController{}, "get:SyncToLg2h")
  23. beego.Router("/sync/upload/smzy", &SyncController{}, "get:SyncToSmzy")
  24. beego.Router("/sync/upload/smyy", &SyncController{}, "get:SyncToTesgt")
  25. }
  26. func (c *SyncController) SyncToLg2h() {
  27. // 第一步:到上报配置表中找到深圳需要上报的机构
  28. // sz_province, _ := beego.AppConfig.Int64("sz_province")
  29. // sz_city, _ := beego.AppConfig.Int64("sz_city")
  30. // configs, _ := service.FindAllDataUploadConfigOrgInfo(sz_province, sz_city, 3)
  31. org := &sz.DataUploadConfig{
  32. OrgId: 9598,
  33. ProvinceId: 19,
  34. CityId: 291,
  35. DepartmentName: "深圳市龙岗区第二人民医院",
  36. HospitalId: "455835506",
  37. InstType: 1,
  38. DbHost: "183.62.158.36",
  39. DbPort: "61433",
  40. DbPass: "LG2H+9897",
  41. DbUser: "sa",
  42. DbName: "xtzk",
  43. }
  44. // for _, org := range configs {
  45. // 第二步:跟进配置,创建数据库连接
  46. if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 {
  47. orgDb, err := service.CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName)
  48. if err != nil {
  49. utils.ErrorLog("创建数据库连接失败:%v", err)
  50. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  51. return
  52. }
  53. fmt.Println("触发了没有22222222")
  54. // 第三步:开始同步数据
  55. // 同步医院信息 t_hd_hospital
  56. // city.SyncHospital(orgDb, org.OrgId, org.HospitalId, org.InstType, org.DepartmentName)
  57. // // 同步水处理器 t_hd_wm
  58. // city.SyncWMS(orgDb, org.OrgId, org.HospitalId)
  59. // // // 同步员工 t_hd_staff
  60. // city.SyncStaff(orgDb, org.OrgId, org.HospitalId)
  61. // // // 同步病人 t_hd_patient
  62. // city.SyncPatient(orgDb, org.OrgId, org.HospitalId)
  63. // // // 同步排班 t_hd_shift
  64. // city.SyncShift(orgDb, org.OrgId, org.HospitalId)
  65. // // 同步处方 t_hd_ps
  66. // city.SyncPs(orgDb, org.OrgId, org.HospitalId)
  67. // // 同步处方药品 t_hd_ps
  68. // city.SyncPsMedicine(orgDb, org.OrgId, org.HospitalId)
  69. // // // 同步转院信息 t_hd_patient_out
  70. // city.SyncPatientOut(orgDb, org.OrgId, org.HospitalId)
  71. // // 同步处方信息 t_hd_doctors_advice
  72. // city.SyncDoctorAdvice(orgDb, org.OrgId, org.HospitalId)
  73. // // 同步透中信息 t_hd_middle
  74. // city.SyncMiddle(orgDb, org.OrgId, org.HospitalId)
  75. // // // 同步设备 t_hd_other_machine
  76. // city.SyncOtherMachine(orgDb, org.OrgId, org.HospitalId)
  77. // // // 同步维修 t_hd_maintain
  78. // city.SyncMachineRepair(orgDb, org.OrgId, org.HospitalId)
  79. // // // 同步设备 t_hd_dm
  80. // city.SyncDM(orgDb, org.OrgId, org.HospitalId)
  81. // // // 同步患者透析记录 t_hd_dialysis
  82. // city.SyncDialysis(orgDb, org.OrgId, org.HospitalId)
  83. // // 同步透析床位分区 t_hd_division
  84. // city.SyncDivision(orgDb, org.OrgId, org.HospitalId)
  85. // // 患者通路信息表(T_HD_ACCESS)
  86. // city.SyncAccess(orgDb, org.OrgId, org.HospitalId)
  87. // // 透析床位表(T_HD_SICKBED)
  88. // city.SyncSickbed(orgDb, org.OrgId, org.HospitalId)
  89. // // 患者诊断信息表(T_HD_DIAGNOSIS)
  90. // city.SyncDiagnosis(orgDb, org.OrgId, org.HospitalId)
  91. // 患者传染病检查记录表(T_HD_INFECTION
  92. //city.SyncInfection(orgDb, org.OrgId, org.HospitalId)
  93. // // 透析并发症记录表(T_HD_COMPLICATION)
  94. // city.SyncComplication(orgDb, org.OrgId, org.HospitalId)
  95. // // 血透患者检测结果表(T_HD_LIS_REPORT)
  96. // city.SyncLisReport(orgDb, org.OrgId, org.HospitalId)
  97. // // 血透患者检验结果指标表(T_HD_LIS_INDICATORS)
  98. // city.SyncLisIndicators(orgDb, org.OrgId, org.HospitalId)
  99. // 透析机透析液细菌培养检测记录表(t_hd_dm_dialysate_bc)
  100. // city.SyncLisCulture(orgDb,org.OrgId,org.HospitalId)
  101. //透析机透析液内毒素检测记录表(T_HD_DM_DIALYSATE_BC)
  102. // city.SyncDialysate(orgDb,org.OrgId,org.HospitalId)
  103. //物表消毒记录表(T_HD_SURFACE_DISINFECT)
  104. // city.SyncLisBodyDetection(orgDb,org.OrgId,org.HospitalId)
  105. // 第四步:关闭数据库连接
  106. //透析用水游离氯检测表(T_HD_WATER_FC)
  107. // city.SyncLisWaterFc(orgDb,org.OrgId,org.HospitalId)
  108. //透析用水有毒化学物检测表(T_HD_WATER_NC)
  109. // city.SynLisWaterNc(orgDb,org.OrgId,org.HospitalId)
  110. //透析用水PH值检测表(T_HD_WATER_PH)
  111. // city.SynLisWaterPh(orgDb,org.OrgId,org.HospitalId)
  112. //透析用水水硬度检测表(T_HD_WATER_WH)
  113. // city.SynListHadWater(orgDb,org.OrgId,org.HospitalId)
  114. //导管感染记录表(T_HD_CI)
  115. // city.SynListHdCi(orgDb,org.OrgId,org.HospitalId)
  116. //导管感染转归记录表(T_HD_CI_OUTCOME)
  117. // city.SynLisHdCiOutCome(orgDb,org.OrgId,org.HospitalId)
  118. //透析室空气消毒记录表(T_HD_AIR_DISINFECT)
  119. // city.SyncLisAirDetection(orgDb,org.OrgId,org.HospitalId)
  120. //透析用水细菌培养检测表(T_HD_WATER_BC)
  121. // city.SyncLisWaterBc(orgDb,org.OrgId,org.HospitalId)
  122. //透析用水内毒素检测表(T_HD_WATER_EN)
  123. // city.SyncLisWaterEn(orgDb,org.OrgId,org.HospitalId)
  124. // 第四步:关闭数据库连接
  125. service.CloseDB(orgDb)
  126. }
  127. // }
  128. c.ServeSuccessJSON(map[string]interface{}{
  129. "resultList": "12345",
  130. })
  131. return
  132. }
  133. func (c *SyncController) SyncToHqyy() {
  134. // 第一步:到上报配置表中找到深圳需要上报的机构
  135. // sz_province, _ := beego.AppConfig.Int64("sz_province")
  136. // sz_city, _ := beego.AppConfig.Int64("sz_city")
  137. // configs, _ := service.FindAllDataUploadConfigOrgInfo(sz_province, sz_city, 3)
  138. org := &sz.DataUploadConfig{
  139. OrgId: 9442,
  140. ProvinceId: 19,
  141. CityId: 291,
  142. DepartmentName: "暨南大学附属深圳华侨医院",
  143. HospitalId: "73307826X",
  144. InstType: 1,
  145. DbHost: "183.11.232.26",
  146. DbPort: "3306",
  147. DbPass: "1Q2W3e4r!@#$",
  148. DbUser: "sa",
  149. DbName: "xtzk",
  150. }
  151. // for _, org := range configs {
  152. // 第二步:跟进配置,创建数据库连接
  153. if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 {
  154. orgDb, err := service.CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName)
  155. if err != nil {
  156. utils.ErrorLog("创建数据库连接失败:%v", err)
  157. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  158. return
  159. }
  160. // 第三步:开始同步数据
  161. // 同步医院信息 t_hd_hospital
  162. city.SyncHospital(orgDb, org.OrgId, org.HospitalId, org.InstType, org.DepartmentName)
  163. // 同步水处理器 t_hd_wm
  164. city.SyncWMS(orgDb, org.OrgId, org.HospitalId)
  165. // // 同步员工 t_hd_staff
  166. city.SyncStaff(orgDb, org.OrgId, org.HospitalId)
  167. // // 同步病人 t_hd_patient
  168. city.SyncPatient(orgDb, org.OrgId, org.HospitalId)
  169. // // 同步排班 t_hd_shift
  170. city.SyncShift(orgDb, org.OrgId, org.HospitalId)
  171. // 同步处方 t_hd_ps
  172. city.SyncPs(orgDb, org.OrgId, org.HospitalId)
  173. // 同步处方药品 t_hd_ps
  174. city.SyncPsMedicine(orgDb, org.OrgId, org.HospitalId)
  175. // // 同步转院信息 t_hd_patient_out
  176. city.SyncPatientOut(orgDb, org.OrgId, org.HospitalId)
  177. // 同步处方信息 t_hd_doctors_advice
  178. city.SyncDoctorAdvice(orgDb, org.OrgId, org.HospitalId)
  179. // 同步透中信息 t_hd_middle
  180. city.SyncMiddle(orgDb, org.OrgId, org.HospitalId)
  181. // // 同步设备 t_hd_other_machine
  182. city.SyncOtherMachine(orgDb, org.OrgId, org.HospitalId)
  183. // // 同步维修 t_hd_maintain
  184. city.SyncMachineRepair(orgDb, org.OrgId, org.HospitalId)
  185. // // 同步设备 t_hd_dm
  186. city.SyncDM(orgDb, org.OrgId, org.HospitalId)
  187. // // 同步患者透析记录 t_hd_dialysis
  188. city.SyncDialysis(orgDb, org.OrgId, org.HospitalId)
  189. // 同步透析床位分区 t_hd_division
  190. city.SyncDivision(orgDb, org.OrgId, org.HospitalId)
  191. // 患者通路信息表(T_HD_ACCESS)
  192. city.SyncAccess(orgDb, org.OrgId, org.HospitalId)
  193. // 透析床位表(T_HD_SICKBED)
  194. city.SyncSickbed(orgDb, org.OrgId, org.HospitalId)
  195. // 患者诊断信息表(T_HD_DIAGNOSIS)
  196. city.SyncDiagnosis(orgDb, org.OrgId, org.HospitalId)
  197. // 患者传染病检查记录表(T_HD_INFECTION
  198. city.SyncInfection(orgDb, org.OrgId, org.HospitalId)
  199. // 透析并发症记录表(T_HD_COMPLICATION)
  200. city.SyncComplication(orgDb, org.OrgId, org.HospitalId)
  201. // 血透患者检测结果表(T_HD_LIS_REPORT)
  202. city.SyncLisReport(orgDb, org.OrgId, org.HospitalId)
  203. // 血透患者检验结果指标表(T_HD_LIS_INDICATORS)
  204. city.SyncLisIndicators(orgDb, org.OrgId, org.HospitalId)
  205. // 第四步:关闭数据库连接
  206. service.CloseDB(orgDb)
  207. }
  208. // }
  209. c.ServeSuccessJSON(map[string]interface{}{
  210. "resultList": "12345",
  211. })
  212. return
  213. }
  214. func (c *SyncController) SyncToSmzy() {
  215. // 第一步:到上报配置表中找到深圳需要上报的机构
  216. // sz_province, _ := beego.AppConfig.Int64("sz_province")
  217. // sz_city, _ := beego.AppConfig.Int64("sz_city")
  218. // configs, _ := service.FindAllDataUploadConfigOrgInfo(sz_province, sz_city, 3)
  219. org := &sz.DataUploadConfig{
  220. OrgId: 9504,
  221. ProvinceId: 19,
  222. CityId: 291,
  223. DepartmentName: "深圳生命之源血液透析中心",
  224. HospitalId: "MA5EU4PC0",
  225. InstType: 1,
  226. DbHost: "localhost",
  227. DbPort: "1433",
  228. DbPass: "1Q2W3e4r!@#$",
  229. DbUser: "sa",
  230. DbName: "xtzk",
  231. }
  232. // for _, org := range configs {
  233. // 第二步:跟进配置,创建数据库连接
  234. if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 {
  235. orgDb, err := service.CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName)
  236. if err != nil {
  237. utils.ErrorLog("创建数据库连接失败:%v", err)
  238. c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  239. return
  240. }
  241. // 第三步:开始同步数据
  242. // 同步医院信息 t_hd_hospital
  243. city.SyncHospital(orgDb, org.OrgId, org.HospitalId, org.InstType, org.DepartmentName)
  244. // 同步水处理器 t_hd_wm
  245. city.SyncWMS(orgDb, org.OrgId, org.HospitalId)
  246. // // 同步员工 t_hd_staff
  247. city.SyncStaff(orgDb, org.OrgId, org.HospitalId)
  248. // // 同步病人 t_hd_patient
  249. city.SyncPatient(orgDb, org.OrgId, org.HospitalId)
  250. // // 同步排班 t_hd_shift
  251. city.SyncShift(orgDb, org.OrgId, org.HospitalId)
  252. // 同步处方 t_hd_ps
  253. city.SyncPs(orgDb, org.OrgId, org.HospitalId)
  254. // 同步处方药品 t_hd_ps
  255. city.SyncPsMedicine(orgDb, org.OrgId, org.HospitalId)
  256. // // 同步转院信息 t_hd_patient_out
  257. city.SyncPatientOut(orgDb, org.OrgId, org.HospitalId)
  258. // 同步处方信息 t_hd_doctors_advice
  259. city.SyncDoctorAdvice(orgDb, org.OrgId, org.HospitalId)
  260. // 同步透中信息 t_hd_middle
  261. city.SyncMiddle(orgDb, org.OrgId, org.HospitalId)
  262. // // 同步设备 t_hd_other_machine
  263. city.SyncOtherMachine(orgDb, org.OrgId, org.HospitalId)
  264. // // 同步维修 t_hd_maintain
  265. city.SyncMachineRepair(orgDb, org.OrgId, org.HospitalId)
  266. // // 同步设备 t_hd_dm
  267. city.SyncDM(orgDb, org.OrgId, org.HospitalId)
  268. // // 同步患者透析记录 t_hd_dialysis
  269. city.SyncDialysis(orgDb, org.OrgId, org.HospitalId)
  270. // 同步透析床位分区 t_hd_division
  271. city.SyncDivision(orgDb, org.OrgId, org.HospitalId)
  272. // 患者通路信息表(T_HD_ACCESS)
  273. city.SyncAccess(orgDb, org.OrgId, org.HospitalId)
  274. // 透析床位表(T_HD_SICKBED)
  275. city.SyncSickbed(orgDb, org.OrgId, org.HospitalId)
  276. // 患者诊断信息表(T_HD_DIAGNOSIS)
  277. city.SyncDiagnosis(orgDb, org.OrgId, org.HospitalId)
  278. // 患者传染病检查记录表(T_HD_INFECTION
  279. city.SyncInfection(orgDb, org.OrgId, org.HospitalId)
  280. // 透析并发症记录表(T_HD_COMPLICATION)
  281. city.SyncComplication(orgDb, org.OrgId, org.HospitalId)
  282. // 血透患者检测结果表(T_HD_LIS_REPORT)
  283. city.SyncLisReport(orgDb, org.OrgId, org.HospitalId)
  284. // 血透患者检验结果指标表(T_HD_LIS_INDICATORS)
  285. city.SyncLisIndicators(orgDb, org.OrgId, org.HospitalId)
  286. // 第四步:关闭数据库连接
  287. service.CloseDB(orgDb)
  288. }
  289. // }
  290. c.ServeSuccessJSON(map[string]interface{}{
  291. "resultList": "12345",
  292. })
  293. return
  294. }
  295. func (c *SyncController) SyncToTesgt() {
  296. fmt.Println("c出发飞阿道夫阿道夫阿方阿方")
  297. //city.GetInspectionData(10028)
  298. }