package service import ( "IC/models" "IC/utils" _ "IC/utils" _ "bytes" _ "encoding/json" _ "encoding/xml" _ "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm" _ "io/ioutil" _ "net/http" "strconv" _ "strings" "time" ) type AdminUserList struct { Id int64 `json:"id"` Name string `json:"name"` UserType int64 `json:"user_type"` Status int64 `json:"status"` } func GetAllAdminUsers(orgId, appid int64) (list []*AdminUserList, err error) { err = readUserDb.Table("sgj_user_admin_role as uar").Joins("JOIN sgj_user_admin as ua ON ua.id = uar.admin_user_id").Where("uar.org_id=? and uar.app_id =? and ua.status=1", orgId, appid).Select("ua.id, uar.user_name as name, uar.user_type,uar.status").Scan(&list).Error return } func GetPatientInformation(id int64, orgid int64) (models.Patients, error) { patients := models.Patients{} err := XTReadDB().Where("id = ? AND user_org_id = ?", id, orgid).Find(&patients).Error return patients, err } func GetAllPatientByOrgID(orgid int64, timenow int64) (order []*models.DialysisOrder, err error) { err = XTReadDB().Where("user_org_id = ? AND dialysis_date = ? AND stage = 2 AND status = ?", orgid, timenow, 1).Find(&order).Error return order, err } // 透析处方 func FindPatientPrescribeById(orgID int64, patientsId int64, recordDate int64) (patient models.DialysisPrescription, err error) { err = readDb.Model(&models.DialysisPrescription{}).Where("patient_id = ? and user_org_id=? and status=1 and record_date = ? ", patientsId, orgID, recordDate).First(&patient).Error return } // 透前评估 func FindPredialysisEvaluationById(orgID int64, patientsId int64, recordDate int64) (patient models.PredialysisEvaluation, err error) { err = readDb.Model(&models.PredialysisEvaluation{}).Where("patient_id = ? and user_org_id=? and status=1 and assessment_date = ?", patientsId, orgID, recordDate).First(&patient).Error return } // 透后评估 func FindAssessmentAfterDislysisById(orgID int64, patientsId int64, recordDate int64) (patient models.AssessmentAfterDislysis, err error) { err = readDb.Model(&models.AssessmentAfterDislysis{}).Where("patient_id = ? and user_org_id=? and status=1 and assessment_date =?", patientsId, orgID, recordDate).First(&patient).Error return } // 透析监测 func FindAllMonitorRecord(orgID int64, patientsId int64, recordDate int64) (record []*models.MonitoringRecord, err error) { err = readDb.Model(&models.MonitoringRecord{}).Where("patient_id = ? and user_org_id=? and status=1 and monitoring_date = ?", patientsId, orgID, recordDate).Order("operate_time ASC").Find(&record).Error return } // 临时医嘱 func FindDoctorAdviceOrderById(orgID int64, patientId int64, recordDate int64) (patient []*models.DoctorAdvice, err error) { err = readDb.Model(&models.DoctorAdvice{}). Where("user_org_id=? and status=1 and record_date = ? and advice_type = 2 and patient_id = ?", orgID, recordDate, patientId). Select("id, user_org_id, patient_id, advice_type, advice_date, record_date, start_time, advice_name,advice_desc, reminder_date, drug_spec, drug_spec_unit, single_dose, single_dose_unit, prescribing_number, prescribing_number_unit, delivery_way, execution_frequency, advice_doctor, status, created_time,updated_time, advice_affirm, remark, stop_time, stop_reason, stop_doctor, stop_state, parent_id, execution_time, execution_staff, execution_state, checker, check_state, check_time, groupno, IF(parent_id > 0, parent_id, id) as advice_order").Order("start_time asc, groupno desc, advice_order desc, id asc"). Find(&patient).Error return } func BatchCreateRecord(ps *models.EmrBloodDialyRecord, rdb *gorm.DB) (err error) { err = rdb.Create(&ps).Error return err } func BatchCreateDetail(ps *models.EmrBloodDialyDetail, rdb *gorm.DB) (err error) { err = rdb.Create(&ps).Error return err } func BatchCreateOrder(ps *models.EmrBloodDialyOrder, rdb *gorm.DB) (err error) { err = rdb.Create(&ps).Error return err } // 潍坊内分泌医院 同步健康数据上报 func EmrBloodDiaylOrder() { org := &models.DataUploadConfig{ DbHost: "127.0.0.1", DbPort: "1433", DbPass: "Aa123456", DbUser: "xtzk", DbName: "wfnfm", } if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 { orgDb, err := CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName) if err != nil { utils.ErrorLog("创建数据库连接失败:%v", err) return } // 第二步:获取上一次同步的时间点 syncLastInfo, _ := GetSyncTimeByOrgIDForYs(1041401) var sync_time int64 if syncLastInfo.ID > 0 { sync_time = syncLastInfo.SyncTime + 86400 } else { sync_time = 1664553600 } adminUser, _ := GetAllAdminUsers(10414, 15102) nowTimes := time.Now().Unix() if sync_time < nowTimes { for i := sync_time; i < nowTimes; i = i + 86400 { tempsyncTimes := time.Unix(i, 0).Format("2006-01-02") timeLayout := "2006-01-02 15:04:05" timeStringToTime, _ := utils.ParseTimeStringToTime(timeLayout, tempsyncTimes+" 00:00:00") timenow := timeStringToTime.Unix() orders, _ := GetAllPatientByOrgID(10414, timenow) if len(orders) > 0 { for _, order := range orders { //查询病人信息 patients, _ := GetPatientInformation(order.PatientId, 10414) Records, _ := FindDoctorAdviceOrderById(10414, order.PatientId, timenow) if len(Records) > 0 { for _, record := range Records { emrDetail := &models.EmrBloodDialyOrder{ ReqNo: patients.DialysisNo, OrderType: "1", OrderDate: time.Unix(record.StartTime, 0).Format("2006-01-02 15:04:05"), OrderName: record.AdviceName, Dosage: strconv.FormatFloat(record.PrescribingNumber, 'f', 1, 32) + record.PrescribingNumberUnit, Usage: record.DeliveryWay, ExecDate: time.Unix(record.ExecutionTime, 0).Format("2006-01-02 15:04:05"), Orglevel: "二级", Submitdate: time.Unix(record.CreatedTime, 0).Format("2006-01-02 15:04:05"), Recordstate: "0", Fectchdate: time.Unix(order.CreatedTime, 0).Format("2006-01-02 15:04:05"), OrganizationCode: "", OrganizationName: "", DistrictCode: "370724", DistrictName: "临朐县", Uploadmark: "0", } for _, admin := range adminUser { if record.AdviceDoctor == admin.Id { emrDetail.DoctorName = admin.Name } if record.ExecutionStaff == admin.Id { emrDetail.NurseName = admin.Name } } currentYear := time.Now().Year() //当前年 emrDetail.Businessyear = int64(currentYear) BatchCreateOrder(emrDetail, orgDb) } } } var syncInfo models.MiddleSyncInfo syncInfo.OrgId = 1041401 syncInfo.SyncTime = i syncInfo.SyncResultType = 1 syncInfo.SyncRsultRemark = "同步成功" syncInfo.SyncTotalNum = 0 syncInfo.SyncSuccessNum = 0 syncInfo.SyncInfo = "" syncInfo.CreateTime = time.Now().Unix() syncInfo.UpdateTime = time.Now().Unix() cwderr := CreateSyncInfo(&syncInfo) if cwderr != nil { utils.ErrorLog("创建同步信息失败:%v", cwderr) return } } } } // 第四步:关闭数据库连接 CloseDB(orgDb) } } // 潍坊内分泌医院 同步健康数据上报 func EmrBloodDiaylDetail() { org := &models.DataUploadConfig{ DbHost: "localhost", DbPort: "1433", DbPass: "Aa123456", DbUser: "xtzk", DbName: "wfnfm", } if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 { orgDb, err := CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName) if err != nil { utils.ErrorLog("创建数据库连接失败:%v", err) return } // 第二步:获取上一次同步的时间点 syncLastInfo, _ := GetSyncTimeByOrgIDForYs(1041402) var sync_time int64 if syncLastInfo.ID > 0 { sync_time = syncLastInfo.SyncTime + 86400 } else { sync_time = 1664553600 } nowTimes := time.Now().Unix() if sync_time < nowTimes { for i := sync_time; i < nowTimes; i = i + 86400 { tempsyncTimes := time.Unix(i, 0).Format("2006-01-02") timeLayout := "2006-01-02 15:04:05" timeStringToTime, _ := utils.ParseTimeStringToTime(timeLayout, tempsyncTimes+" 00:00:00") timenow := timeStringToTime.Unix() orders, _ := GetAllPatientByOrgID(10414, timenow) if len(orders) > 0 { for _, order := range orders { //查询病人信息 patients, _ := GetPatientInformation(order.PatientId, 10414) Records, _ := FindAllMonitorRecord(10414, order.PatientId, timenow) if len(Records) > 0 { for _, record := range Records { emrDetail := &models.EmrBloodDialyDetail{ ReqNo: patients.DialysisNo, Patientname: patients.Name, Idcard: patients.IdCardNo, Hospitalcode: "MA3R6UFL9", Hospitalname: "潍坊内分泌与代谢病医院", BdDate: time.Unix(record.MonitoringDate, 0).Format("2006-01-02") + " " + record.MonitoringTime, BdBp: strconv.FormatFloat(record.SystolicBloodPressure, 'f', 1, 32) + "/" + strconv.FormatFloat(record.DiastolicBloodPressure, 'f', 1, 32), BdT: record.DialysateTemperature, BdRate: record.PulseFrequency, BdFlow: record.BloodFlowVolume, BdVbp: record.VenousPressure, BdTmp: record.TransmembranePressure, BdUfvLimit: record.UltrafiltrationVolume, Orglevel: "二级", Submitdate: time.Unix(record.CreatedTime, 0).Format("2006-01-02 15:04:05"), Recordstate: "0", Fectchdate: time.Unix(order.CreatedTime, 0).Format("2006-01-02 15:04:05"), OrganizationCode: "", OrganizationName: "", DistrictCode: "370724", DistrictName: "临朐县", Uploadmark: "0", } currentYear := time.Now().Year() //当前年 emrDetail.Businessyear = int64(currentYear) BatchCreateDetail(emrDetail, orgDb) } } } var syncInfo models.MiddleSyncInfo syncInfo.OrgId = 1041402 syncInfo.SyncTime = i syncInfo.SyncResultType = 1 syncInfo.SyncRsultRemark = "同步成功" syncInfo.SyncTotalNum = 0 syncInfo.SyncSuccessNum = 0 syncInfo.SyncInfo = "" syncInfo.CreateTime = time.Now().Unix() syncInfo.UpdateTime = time.Now().Unix() cwderr := CreateSyncInfo(&syncInfo) if cwderr != nil { utils.ErrorLog("创建同步信息失败:%v", cwderr) return } } } } // 第四步:关闭数据库连接 CloseDB(orgDb) } } // 潍坊内分泌医院 同步健康数据上报 func EmrBloodDiaylRecord() { org := &models.DataUploadConfig{ DbHost: "localhost", DbPort: "1433", DbPass: "Aa123456", DbUser: "xtzk", DbName: "wfnfm", } if len(org.DbHost) > 0 && len(org.DbUser) > 0 && len(org.DbPort) > 0 && len(org.DbPass) > 0 && len(org.DbName) > 0 { orgDb, err := CreateSqlServiceDB(org.DbHost, org.DbPort, org.DbUser, org.DbPass, org.DbName) if err != nil { utils.ErrorLog("创建数据库连接失败:%v", err) return } adminUser, _ := GetAllAdminUsers(10414, 15102) // 第二步:获取上一次同步的时间点 syncLastInfo, _ := GetSyncTimeByOrgIDForYs(1041403) var sync_time int64 if syncLastInfo.ID > 0 { sync_time = syncLastInfo.SyncTime + 86400 } else { sync_time = 1664553600 } nowTimes := time.Now().Unix() if sync_time < nowTimes { for i := sync_time; i < nowTimes; i = i + 86400 { tempsyncTimes := time.Unix(i, 0).Format("2006-01-02") timeLayout := "2006-01-02 15:04:05" timeStringToTime, _ := utils.ParseTimeStringToTime(timeLayout, tempsyncTimes+" 00:00:00") timenow := timeStringToTime.Unix() orders, _ := GetAllPatientByOrgID(10414, timenow) if len(orders) > 0 { for _, order := range orders { //查询病人信息 patients, _ := GetPatientInformation(order.PatientId, 10414) //透析处方 dialysisPrescription, _ := FindPatientPrescribeById(10414, order.PatientId, timenow) //透前评估 PredialysisEvaluation, _ := FindPredialysisEvaluationById(10414, order.PatientId, timenow) //透后评估 AssessmentAfterDislysis, _ := FindAssessmentAfterDislysisById(10414, order.PatientId, timenow) emrRecord := &models.EmrBloodDialyRecord{ ReqNo: patients.DialysisNo, Patientname: patients.Name, Idcard: patients.IdCardNo, Hospitalcode: "MA3R6UFL9", Hospitalname: "潍坊内分泌与代谢病医院", AdmissionId: patients.IdCardNo, BdDate: time.Unix(order.DialysisDate, 0).Format("2006-01-02"), BdMatno: dialysisPrescription.DialyzerPerfusionApparatus, Temperature: PredialysisEvaluation.Temperature, PulseRate: PredialysisEvaluation.PulseFrequency, BreathingRate: PredialysisEvaluation.BreathingRate, PressureH: PredialysisEvaluation.SystolicBloodPressure, PressureL: PredialysisEvaluation.DiastolicBloodPressure, UfvLimit: dialysisPrescription.DewaterAmount * 1000, FirstAnticoagulant: dialysisPrescription.AnticoagulantShouji, BdHours: AssessmentAfterDislysis.ActualTreatmentHour, BdType: dialysisPrescription.ModeId, BdT: 36.5, AnticoagulantTotal: dialysisPrescription.AnticoagulantZongliang, BdCruorContiton: "2", PatientWeight: PredialysisEvaluation.DryWeight, WeightBf: PredialysisEvaluation.WeightBefore, WeightAf: AssessmentAfterDislysis.WeightAfter, WeightBalan: PredialysisEvaluation.WeightBefore - PredialysisEvaluation.WeightBefore, Vascular: "2", Orglevel: "二级", Submitdate: time.Unix(order.CreatedTime, 0).Format("2006-01-02 15:04:05"), Recordstate: "0", Fectchdate: time.Unix(order.CreatedTime, 0).Format("2006-01-02 15:04:05"), OrganizationCode: "", OrganizationName: "", DistrictCode: "370724", DistrictName: "临朐县", Uploadmark: "0", } for _, admin := range adminUser { if dialysisPrescription.Creater == admin.Id { emrRecord.DoctorName = admin.Name } if order.StartNurse == admin.Id { emrRecord.OperName = admin.Name emrRecord.PrimaryName = admin.Name } } if patients.Gender == 1 { emrRecord.SexCode = "1" emrRecord.SexName = "男" } if patients.Gender == 2 { emrRecord.SexCode = "2" emrRecord.SexName = "女" } currentYear := time.Now().Year() //当前年 birthYear := time.Unix(patients.Birthday, 0).Year() emrRecord.Businessyear = int64(currentYear) emrRecord.Age = int64(currentYear) - int64(birthYear) switch dialysisPrescription.Anticoagulant { case 1: emrRecord.Anticoagulant = "无肝素" break case 2: emrRecord.Anticoagulant = "普通肝素" break case 3: emrRecord.Anticoagulant = "低分子肝素" break case 4: emrRecord.Anticoagulant = "阿加曲班" break case 5: emrRecord.Anticoagulant = "枸橼酸钠" break case 6: emrRecord.Anticoagulant = "低分子肝素钙" break case 7: emrRecord.Anticoagulant = "低分子肝素钠" break } switch dialysisPrescription.ModeId { case 1: emrRecord.BdTypeName = "HD" break case 2: emrRecord.BdTypeName = "HDF" break case 3: emrRecord.BdTypeName = "HD+HP" break case 4: emrRecord.BdTypeName = "HP" break case 5: emrRecord.BdTypeName = "HF" break case 6: emrRecord.BdTypeName = "SCUF" break case 7: emrRecord.BdTypeName = "IUF" break case 8: emrRecord.BdTypeName = "HFHD" break case 9: emrRecord.BdTypeName = "HFHD+HP" break case 10: emrRecord.BdTypeName = "PHF" break case 11: emrRecord.BdTypeName = "HFR" break case 12: emrRecord.BdTypeName = "HDF+HP" break default: emrRecord.BdTypeName = "HD" break } if AssessmentAfterDislysis.Cruor == "透析器-0度" || len(AssessmentAfterDislysis.Cruor) <= 0 { emrRecord.BdCruor = "2" emrRecord.BdCruorName = "无凝血" } else { emrRecord.BdCruor = "1" emrRecord.BdCruorName = "有凝血" } BatchCreateRecord(emrRecord, orgDb) } var syncInfo models.MiddleSyncInfo syncInfo.OrgId = 1041403 syncInfo.SyncTime = i syncInfo.SyncResultType = 1 syncInfo.SyncRsultRemark = "同步成功" syncInfo.SyncTotalNum = 0 syncInfo.SyncSuccessNum = 0 syncInfo.SyncInfo = "" syncInfo.CreateTime = time.Now().Unix() syncInfo.UpdateTime = time.Now().Unix() cwderr := CreateSyncInfo(&syncInfo) if cwderr != nil { utils.ErrorLog("创建同步信息失败:%v", cwderr) return } } } } // 第四步:关闭数据库连接 CloseDB(orgDb) } } // 福建天福医院透析中心Lis同步 // func SyncFjtfLis() (err error) { // org_id := int64(10330) // // 第一步:获取上一次同步的时间点 // syncLastInfo, _ := GetSyncTimeByOrgIDForYs(org_id) // var sync_time int64 // if syncLastInfo.ID > 0 { // sync_time = syncLastInfo.SyncTime // } else { // sync_time = 1651334400 // 2022-05-01 00:00:00 // } // sync_time_temp := time.Unix(sync_time,0) // syncTimeStr := sync_time_temp.Format("2006-01-02 15:04:05") // // 第二步:获取所有患者的病历号 // patientList, _ := GetPatientGzjhByOrgId(org_id) // if len(patientList) > 0 { // for _, patient := range patientList { // if len(patient.IdCardNo) > 0 || len(patient.DialysisNo) > 0 { // patient_id := patient.ID // utils.InfoLog("IdCardNo:%v", patient.IdCardNo) // // utils.InfoLog("VipStr:%v", VipStr) // result, _ := FjtjGetLab(patient.IdCardNo,syncTimeStr) // var fjtfLab LabResult // if err := json.Unmarshal([]byte(result), &fjtfLab); err != nil { // utils.ErrorLog("解析失败:%v", err) // } // fmt.Println(fjtfLab) // if len(fjtfLab.Result) > 0 { // // 根据获取的头部lab01获取检查结果 // for _, info := range fjtfLab.Result { // lacResult, _ := FjtjGetLac(info.Lab01) // var fjtfLac LacResult // if err := json.Unmarshal([]byte(lacResult), &fjtfLac); err != nil { // utils.ErrorLog("解析失败:%v", err) // } // fmt.Println(fjtfLac) // for _,cinfo := range fjtfLac.Result{ // project_id := int64(0) // item_id := int64(0) // if len(cinfo.Bbx05a) > 0 { // project_id, _ = GetfjtfProjectID(org_id, cinfo.Bbx05a) // item_id, _ = GetFjtfItemID(org_id, cinfo.Bbx05a, cinfo.Bbx05, project_id) // } else { // project_id, _ = GetfjtfProjectID(org_id, cinfo.Bbx05) // item_id, _ = GetFjtfItemID(org_id, cinfo.Bbx05, cinfo.Bbx05, project_id) // } // tx := writeMiddleDb.Begin() // var inspection models.MiddleInspection // var inspection_reference models.MiddleInspectionReference // loc, _ := time.LoadLocation("Local") // theTime, _ := time.ParseInLocation("2006-01-02 15:04:05", cinfo.Lac25, loc) // record_date := theTime.Unix() // if record_date == 0 { // record_date = time.Now().Unix() // } // inspect_date := time.Unix(record_date, 0).Format("2006-01-02 15:04") // var total int // var RangeOptions string // var RangeMin string // var RangeMax string // // // 判断检查类型 // ItemType := 1 // Range := strings.Split(cinfo.Lac15, "-") // if len(Range) > 1 { // RangeMin = cinfo.Lac13 // RangeMax = cinfo.Lac14 // ItemType = 1 // } else { // ItemType = 2 // RangeOptions = cinfo.Lac15 // } // err = readMiddleDb.Model(&models.MiddleInspectionReference{}).Where("org_id = ? and project_id = ? and item_id = ? and status = 1", org_id, project_id, item_id).Find(&inspection_reference).Count(&total).Error // // if inspection_reference.ID > 0 { // // ItemType = int64(inspection_reference.RangeType) // // } // if total <= 0 { // inspection_reference.OrgId = org_id // if len(cinfo.Bbx05a) > 0 { // inspection_reference.ProjectName = cinfo.Bbx05a // inspection_reference.Project = cinfo.Bbx05a // } else { // inspection_reference.ProjectName = cinfo.Bbx05 // inspection_reference.Project = cinfo.Bbx05 // } // inspection_reference.ProjectId = project_id // inspection_reference.ItemName = cinfo.Bbx05 // inspection_reference.ItemId = item_id // inspection_reference.RangeType = ItemType // inspection_reference.RangeMin = RangeMin // inspection_reference.RangeMax = RangeMax // // inspection_reference.RangeValue = RangeValue // inspection_reference.RangeOptions = RangeOptions // inspection_reference.Unit = cinfo.Bdg02 // inspection_reference.Status = 1 // inspection_reference.CreatedTime = time.Now().Unix() // inspection_reference.UpdatedTime = time.Now().Unix() // inspection_reference.InspectDate = inspect_date // inspection_reference.UTime = inspect_date // err = tx.Model(&models.MiddleInspectionReference{}).Create(&inspection_reference).Error // if err != nil { // tx.Rollback() // } // } // var itotal int // err = readMiddleDb.Model(&models.MiddleInspection{}).Where("org_id = ? and project_id = ? and item_id = ? and record_date = ? and patient_id = ? and status = 1", org_id, project_id, item_id, record_date, patient_id).Find(&inspection).Count(&itotal).Error // if itotal <= 0 { // inspection.PatientId = patient_id // inspection.OrgId = org_id // inspection.ProjectId = project_id // inspection.ItemName = inspection_reference.ItemName // inspection.ProjectName = inspection_reference.ProjectName // inspection.InspectType = ItemType // inspection.ItemId = item_id // inspection.InspectValue = cinfo.Lac10 // inspection.InspectDate = inspect_date // inspection.RecordDate = record_date // inspection.InspectTips = cinfo.Lac11 // inspection.Status = 1 // inspection.CreatedTime = time.Now().Unix() // inspection.UpdatedTime = time.Now().Unix() // inspection.UTime = inspect_date // inspection.HisUserId = strconv.FormatInt(patient_id, 10) // err = tx.Model(&models.MiddleInspection{}).Create(&inspection).Error // if err != nil { // tx.Rollback() // } // } // tx.Commit() // } // } // } // } else { // continue // } // } // } // var syncInfo models.MiddleSyncInfo // syncInfo.OrgId = org_id // syncInfo.SyncTime = time.Now().Unix() // syncInfo.SyncResultType = 1 // syncInfo.SyncRsultRemark = "同步成功" // syncInfo.SyncTotalNum = 0 // syncInfo.SyncSuccessNum = 0 // syncInfo.SyncInfo = "" // syncInfo.CreateTime = time.Now().Unix() // syncInfo.UpdateTime = time.Now().Unix() // cwderr := CreateSyncInfo(&syncInfo) // if cwderr != nil { // utils.ErrorLog("创建同步信息失败:%v", cwderr) // return // } // SyncToFjtftx() // return // } // type LabResult struct { // Msg string `json:"msg"` // Result []struct { // Lab01 int64 `json:"lab01"` // Lab58 string `json:"lab58"` // } `json:"result"` // Code string `json:"code"` // } // func FjtjGetLab(id_card_no string, synctime string) (string, string) { // inputData := make(map[string]interface{}) // inputData["vaa15"] = id_card_no // inputData["begintime"] = synctime // var inputLog string // bytesData, err := json.Marshal(inputData) // inputLog = string(bytesData) // fmt.Println(string(bytesData)) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // reader := bytes.NewReader(bytesData) // url := "http://hip.zptfyy.com/esb/listener/getLab1" // request, err := http.NewRequest("POST", url, reader) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // request.Header.Set("Content-Type", "application/json;charset=UTF-8") // request.Header.Set("code", "xt") // client := http.Client{} // resp, err := client.Do(request) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // respBytes, err := ioutil.ReadAll(resp.Body) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // str := string(respBytes) // return str, inputLog // } // type LacResult struct { // Msg string `json:"msg"` // Result []struct { // Lab01 int64 `json:"labo1"` // Bbx05 string `json:"BBX05"` // Bbx05a string `json:"BBX05A"` // Bfc03 string `json:"BFC03"` // Bdg02 string `json:"BDG02"` // Lac10 string `json:"LAC10"` // Lac11 string `json:"LAC11"` // Lac13 string `json:"LAC13"` // Lac14 string `json:"LAC14"` // Lac15 string `json:"LAC15"` // Lac25 string `json:"LAC25"` // } `json:"result"` // Code string `json:"code"` // } // func FjtjGetLac(lab01 int64) (string, string) { // inputData := make(map[string]interface{}) // inputData["lab01"] = lab01 // var inputLog string // bytesData, err := json.Marshal(inputData) // inputLog = string(bytesData) // fmt.Println(string(bytesData)) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // reader := bytes.NewReader(bytesData) // url := "http://hip.zptfyy.com/esb/listener/getLac1" // request, err := http.NewRequest("POST", url, reader) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // request.Header.Set("Content-Type", "application/json;charset=UTF-8") // request.Header.Set("code", "xt") // client := http.Client{} // resp, err := client.Do(request) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // respBytes, err := ioutil.ReadAll(resp.Body) // if err != nil { // fmt.Println(err.Error()) // return err.Error(), "" // } // str := string(respBytes) // return str, inputLog // } // 根据机构ID和检验检查名称获取该检查的project_id,如没有,则创建一个 // func GetfjtfProjectID(org_id int64, project_name string) (project_id int64, err error) { // var inspection_reference models.MiddleInspectionReference // err = readMiddleDb.Model(&models.MiddleInspectionReference{}).Where("org_id = ? and status = 1 and project_name = ?", org_id, project_name).First(&inspection_reference).Error // if inspection_reference.ID > 0 { // return inspection_reference.ProjectId, err // } else { // err = readMiddleDb.Table("xt_middle_inspection_reference").Where("org_id=? ", org_id).Select("max(project_id) as project_id").Scan(&inspection_reference).Error // if inspection_reference.ProjectId > 0 { // return inspection_reference.ProjectId + 1, err // } else { // return 330001, err // } // } // } // 根据机构ID和检验检查小项名称获取该检查的item_id,如没有,则创建一个 // func GetFjtfItemID(org_id int64,project_name string,item_name string,project_id int64) (item_id int64 ,err error) { // var inspection_reference models.MiddleInspectionReference // err = readMiddleDb.Model(&models.MiddleInspectionReference{}).Where("org_id = ? and status = 1 and project_name = ? and item_name = ?", org_id,project_name,item_name).First(&inspection_reference).Error // if inspection_reference.ID > 0 { // return inspection_reference.ItemId,err // } else { // err := readMiddleDb.Table("xt_middle_inspection_reference").Where("org_id = ? and project_id = ? ", org_id,project_id).Select("max(item_id) as item_id").First(&inspection_reference).Error // utils.InfoLog("inspection_reference: %v",inspection_reference) // if inspection_reference.ItemId > 0 { // return inspection_reference.ItemId + 1,err // } else { // return project_id * 100 + 1 ,err // } // } // } // func SyncToFjtftx() { // utils.TraceLog("检验检查同步任务开始执行") // org_id := int64(10330) // // 第一步:跟进org_id 去中间库查出需要同步的数据 // inspection_references, _ := GetSyncInspectionReferenceByOrgId(org_id) // inspections, _ := GetSyncInspectionByOrgId(org_id) // // 第二步:将数据同步到业务库 // if len(inspection_references) > 0 { // for _, inspection_reference := range inspection_references { // SyncInspectionReference(&inspection_reference) // } // } // if len(inspections) > 0 { // for _, inspection := range inspections { // SyncInspection(&inspection) // } // } // utils.SuccessLog("检验检查同步任务完成") // }