package controllers import ( "Data_Upload_Api/enums" "Data_Upload_Api/models/sz" "Data_Upload_Api/service" "Data_Upload_Api/service/city" "Data_Upload_Api/utils" _"fmt" "github.com/astaxie/beego" _"github.com/jinzhu/gorm" _"math" _"strconv" _"strings" _ "strings" _"time" ) type SyncController struct { BaseAPIController } func SyncAPIRegisterRouters() { beego.Router("/sync/upload/hqyy", &SyncController{}, "get:SyncToHqyy") beego.Router("/sync/upload/lg2h", &SyncController{}, "get:SyncToLg2h") beego.Router("/sync/upload/smzy", &SyncController{}, "get:SyncToSmzy") } func (c *SyncController) SyncToLg2h() { // 第一步:到上报配置表中找到深圳需要上报的机构 // sz_province, _ := beego.AppConfig.Int64("sz_province") // sz_city, _ := beego.AppConfig.Int64("sz_city") // configs, _ := service.FindAllDataUploadConfigOrgInfo(sz_province, sz_city, 3) org := &sz.DataUploadConfig{ OrgId: 9598, ProvinceId: 19, CityId: 291, DepartmentName: "深圳市龙岗区第二人民医院", HospitalId: "455835506", InstType: 1, DbHost: "183.62.158.36", DbPort: "61433", DbPass: "LG2H+9897", DbUser: "sa", DbName: "xtzk", } // for _, org := range configs { // 第二步:跟进配置,创建数据库连接 if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 { orgDb, err := service.CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName) if err != nil { utils.ErrorLog("创建数据库连接失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } // 第三步:开始同步数据 // 同步医院信息 t_hd_hospital city.SyncHospital(orgDb, org.OrgId, org.HospitalId, org.InstType, org.DepartmentName) // 同步水处理器 t_hd_wm city.SyncWMS(orgDb, org.OrgId, org.HospitalId) // // 同步员工 t_hd_staff city.SyncStaff(orgDb, org.OrgId, org.HospitalId) // // 同步病人 t_hd_patient city.SyncPatient(orgDb, org.OrgId, org.HospitalId) // // 同步排班 t_hd_shift city.SyncShift(orgDb, org.OrgId, org.HospitalId) // 同步处方 t_hd_ps city.SyncPs(orgDb, org.OrgId, org.HospitalId) // 同步处方药品 t_hd_ps city.SyncPsMedicine(orgDb, org.OrgId, org.HospitalId) // // 同步转院信息 t_hd_patient_out city.SyncPatientOut(orgDb, org.OrgId, org.HospitalId) // 同步处方信息 t_hd_doctors_advice city.SyncDoctorAdvice(orgDb, org.OrgId, org.HospitalId) // 同步透中信息 t_hd_middle city.SyncMiddle(orgDb, org.OrgId, org.HospitalId) // // 同步设备 t_hd_other_machine city.SyncOtherMachine(orgDb, org.OrgId, org.HospitalId) // // 同步维修 t_hd_maintain city.SyncMachineRepair(orgDb, org.OrgId, org.HospitalId) // // 同步设备 t_hd_dm city.SyncDM(orgDb, org.OrgId, org.HospitalId) // // 同步患者透析记录 t_hd_dialysis city.SyncDialysis(orgDb, org.OrgId, org.HospitalId) // 同步透析床位分区 t_hd_division city.SyncDivision(orgDb, org.OrgId, org.HospitalId) // 患者通路信息表(T_HD_ACCESS) city.SyncAccess(orgDb, org.OrgId, org.HospitalId) // 透析床位表(T_HD_SICKBED) city.SyncSickbed(orgDb, org.OrgId, org.HospitalId) // 患者诊断信息表(T_HD_DIAGNOSIS) city.SyncDiagnosis(orgDb, org.OrgId, org.HospitalId) // 患者传染病检查记录表(T_HD_INFECTION city.SyncInfection(orgDb, org.OrgId, org.HospitalId) // 透析并发症记录表(T_HD_COMPLICATION) city.SyncComplication(orgDb, org.OrgId, org.HospitalId) // 血透患者检测结果表(T_HD_LIS_REPORT) city.SyncLisReport(orgDb, org.OrgId, org.HospitalId) // 血透患者检验结果指标表(T_HD_LIS_INDICATORS) city.SyncLisIndicators(orgDb, org.OrgId, org.HospitalId) // 第四步:关闭数据库连接 service.CloseDB(orgDb) } // } c.ServeSuccessJSON(map[string]interface{}{ "resultList": "12345", }) return } func (c *SyncController) SyncToHqyy() { // 第一步:到上报配置表中找到深圳需要上报的机构 // sz_province, _ := beego.AppConfig.Int64("sz_province") // sz_city, _ := beego.AppConfig.Int64("sz_city") // configs, _ := service.FindAllDataUploadConfigOrgInfo(sz_province, sz_city, 3) org := &sz.DataUploadConfig{ OrgId: 9442, ProvinceId: 19, CityId: 291, DepartmentName: "暨南大学附属深圳华侨医院", HospitalId: "73307826X", InstType: 1, DbHost: "183.11.232.26", DbPort: "3306", DbPass: "1Q2W3e4r!@#$", DbUser: "sa", DbName: "xtzk", } // for _, org := range configs { // 第二步:跟进配置,创建数据库连接 if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 { orgDb, err := service.CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName) if err != nil { utils.ErrorLog("创建数据库连接失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } // 第三步:开始同步数据 // 同步医院信息 t_hd_hospital city.SyncHospital(orgDb, org.OrgId, org.HospitalId, org.InstType, org.DepartmentName) // 同步水处理器 t_hd_wm city.SyncWMS(orgDb, org.OrgId, org.HospitalId) // // 同步员工 t_hd_staff city.SyncStaff(orgDb, org.OrgId, org.HospitalId) // // 同步病人 t_hd_patient city.SyncPatient(orgDb, org.OrgId, org.HospitalId) // // 同步排班 t_hd_shift city.SyncShift(orgDb, org.OrgId, org.HospitalId) // 同步处方 t_hd_ps city.SyncPs(orgDb, org.OrgId, org.HospitalId) // 同步处方药品 t_hd_ps city.SyncPsMedicine(orgDb, org.OrgId, org.HospitalId) // // 同步转院信息 t_hd_patient_out city.SyncPatientOut(orgDb, org.OrgId, org.HospitalId) // 同步处方信息 t_hd_doctors_advice city.SyncDoctorAdvice(orgDb, org.OrgId, org.HospitalId) // 同步透中信息 t_hd_middle city.SyncMiddle(orgDb, org.OrgId, org.HospitalId) // // 同步设备 t_hd_other_machine city.SyncOtherMachine(orgDb, org.OrgId, org.HospitalId) // // 同步维修 t_hd_maintain city.SyncMachineRepair(orgDb, org.OrgId, org.HospitalId) // // 同步设备 t_hd_dm city.SyncDM(orgDb, org.OrgId, org.HospitalId) // // 同步患者透析记录 t_hd_dialysis city.SyncDialysis(orgDb, org.OrgId, org.HospitalId) // 同步透析床位分区 t_hd_division city.SyncDivision(orgDb, org.OrgId, org.HospitalId) // 患者通路信息表(T_HD_ACCESS) city.SyncAccess(orgDb, org.OrgId, org.HospitalId) // 透析床位表(T_HD_SICKBED) city.SyncSickbed(orgDb, org.OrgId, org.HospitalId) // 患者诊断信息表(T_HD_DIAGNOSIS) city.SyncDiagnosis(orgDb, org.OrgId, org.HospitalId) // 患者传染病检查记录表(T_HD_INFECTION city.SyncInfection(orgDb, org.OrgId, org.HospitalId) // 透析并发症记录表(T_HD_COMPLICATION) city.SyncComplication(orgDb, org.OrgId, org.HospitalId) // 血透患者检测结果表(T_HD_LIS_REPORT) city.SyncLisReport(orgDb, org.OrgId, org.HospitalId) // 血透患者检验结果指标表(T_HD_LIS_INDICATORS) city.SyncLisIndicators(orgDb, org.OrgId, org.HospitalId) // 第四步:关闭数据库连接 service.CloseDB(orgDb) } // } c.ServeSuccessJSON(map[string]interface{}{ "resultList": "12345", }) return } func (c *SyncController) SyncToSmzy() { // 第一步:到上报配置表中找到深圳需要上报的机构 // sz_province, _ := beego.AppConfig.Int64("sz_province") // sz_city, _ := beego.AppConfig.Int64("sz_city") // configs, _ := service.FindAllDataUploadConfigOrgInfo(sz_province, sz_city, 3) org := &sz.DataUploadConfig{ OrgId: 9504, ProvinceId: 19, CityId: 291, DepartmentName: "深圳生命之源血液透析中心", HospitalId: "MA5EU4PC0", InstType: 1, DbHost: "localhost", DbPort: "1433", DbPass: "1Q2W3e4r!@#$", DbUser: "sa", DbName: "xtzk", } // for _, org := range configs { // 第二步:跟进配置,创建数据库连接 if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 { orgDb, err := service.CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName) if err != nil { utils.ErrorLog("创建数据库连接失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } // 第三步:开始同步数据 // 同步医院信息 t_hd_hospital city.SyncHospital(orgDb, org.OrgId, org.HospitalId, org.InstType, org.DepartmentName) // 同步水处理器 t_hd_wm city.SyncWMS(orgDb, org.OrgId, org.HospitalId) // // 同步员工 t_hd_staff city.SyncStaff(orgDb, org.OrgId, org.HospitalId) // // 同步病人 t_hd_patient city.SyncPatient(orgDb, org.OrgId, org.HospitalId) // // 同步排班 t_hd_shift city.SyncShift(orgDb, org.OrgId, org.HospitalId) // 同步处方 t_hd_ps city.SyncPs(orgDb, org.OrgId, org.HospitalId) // 同步处方药品 t_hd_ps city.SyncPsMedicine(orgDb, org.OrgId, org.HospitalId) // // 同步转院信息 t_hd_patient_out city.SyncPatientOut(orgDb, org.OrgId, org.HospitalId) // 同步处方信息 t_hd_doctors_advice city.SyncDoctorAdvice(orgDb, org.OrgId, org.HospitalId) // 同步透中信息 t_hd_middle city.SyncMiddle(orgDb, org.OrgId, org.HospitalId) // // 同步设备 t_hd_other_machine city.SyncOtherMachine(orgDb, org.OrgId, org.HospitalId) // // 同步维修 t_hd_maintain city.SyncMachineRepair(orgDb, org.OrgId, org.HospitalId) // // 同步设备 t_hd_dm city.SyncDM(orgDb, org.OrgId, org.HospitalId) // // 同步患者透析记录 t_hd_dialysis city.SyncDialysis(orgDb, org.OrgId, org.HospitalId) // 同步透析床位分区 t_hd_division city.SyncDivision(orgDb, org.OrgId, org.HospitalId) // 患者通路信息表(T_HD_ACCESS) city.SyncAccess(orgDb, org.OrgId, org.HospitalId) // 透析床位表(T_HD_SICKBED) city.SyncSickbed(orgDb, org.OrgId, org.HospitalId) // 患者诊断信息表(T_HD_DIAGNOSIS) city.SyncDiagnosis(orgDb, org.OrgId, org.HospitalId) // 患者传染病检查记录表(T_HD_INFECTION city.SyncInfection(orgDb, org.OrgId, org.HospitalId) // 透析并发症记录表(T_HD_COMPLICATION) city.SyncComplication(orgDb, org.OrgId, org.HospitalId) // 血透患者检测结果表(T_HD_LIS_REPORT) city.SyncLisReport(orgDb, org.OrgId, org.HospitalId) // 血透患者检验结果指标表(T_HD_LIS_INDICATORS) city.SyncLisIndicators(orgDb, org.OrgId, org.HospitalId) // 第四步:关闭数据库连接 service.CloseDB(orgDb) } // } c.ServeSuccessJSON(map[string]interface{}{ "resultList": "12345", }) return }