123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package service
-
- import (
- "Xcx_New/models"
- "Xcx_New/utils"
- "fmt"
- "github.com/jinzhu/gorm"
- "github.com/robfig/cron"
- "strconv"
- "time"
- )
-
- var createWeekPlanCronJob *cron.Cron
-
- func init() {
- utils.InfoLog("第二次开启自动消毒时任务")
- spec := "0 0 22 * * ?" // 每天22点执行一次
- //spec := "0 */1 * * * ?" // 每1分钟执行一次
- createWeekPlanCronJob = cron.New()
- createWeekDisinfectionCronJob.AddFunc(spec, func() {
- AutoCreateWeekPlanJob()
- })
- }
-
- func BeginAutoCreatePlanJob() {
- createWeekPlanCronJob.Start()
- }
-
- func AutoCreateWeekPlanJob() {
-
- timeStr := time.Now().Format("2006-01-02")
- timeLayout := "2006-01-02 15:04:05"
- fmt.Println("timeStr:", timeStr)
- timeStringToTime, _ := utils.ParseTimeStringToTime(timeLayout, timeStr+" 00:00:00")
- timenow := timeStringToTime.Unix()
- fmt.Println("timenow是什么", timenow)
- //查询当天排班所有机构
- org, errs := GetAllOrgID(timenow)
- fmt.Print("错误是什么", errs)
- fmt.Println("查询有机构失败", err)
- for _, item := range org {
- //查询机构是否开启自动使用登记
- remander, errs := GetRemanderDatas(item.UserOrgId)
- fmt.Print("查询自动使用登记错误", errs)
- //开启
- if remander.IsRun == 1 {
- fmt.Println("机构id", item.UserOrgId)
- //查询当天机构的所有下机病人id
- order, _ := GetAllPatientByOrgID(item.UserOrgId, timenow)
- for _, it := range order {
- fmt.Println("病人", it.PatientId)
-
- //查询病人信息
- patients, err := GetPatientInformation(it.PatientId, it.UserOrgId)
- fmt.Println("查询病人信息报错", err)
- var con = ""
- if patients.IsInfectious == 0 {
- con = ""
- }
- if patients.IsInfectious == 1 {
- con = "无"
- }
- if patients.IsInfectious == 2 {
- con = "有"
- }
-
- //查询病人的班次
- //schedules, _ := GetAllPatientSchedule(it.PatientId, it.UserOrgId,timenow)
- schedules, _ := GetAllPatientSchedule(it.PatientId, it.UserOrgId, timenow)
- fmt.Println("班次", schedules.ScheduleType)
- //查询病人今日的透析模式
- prescription, _ := GetDialysisPrescription(it.PatientId, it.UserOrgId, timenow)
- fmt.Println("透析模式", prescription.ModeId)
-
- //查询病人今日透后评估数据
- dislysis, err := GetAssessmentAfterDissData(it.PatientId, it.UserOrgId, timenow)
- fmt.Println("透后", err)
- // //根据床位号获取设备id
- addmacher, _ := GetEquimentID(schedules.BedId, it.UserOrgId)
- //unitype, err := strconv.ParseInt(addmacher.UnitType, 10, 64)
- fmt.Println(" 设备id", addmacher.ID)
- //根据设备id获取设备类型
- //equimentname, _ := GetAddmacher(addmacher.ID, it.UserOrgId)
-
- fmt.Println("班次", it.SchedualType)
- //查看该设备是否有消毒计划,无怎返回,有则添加
- plan, errplan := GetDisinfection(addmacher.UnitType, it.SchedualType, it.UserOrgId)
- fmt.Print("plan", plan)
- fmt.Println("错误", errplan)
- if errplan == gorm.ErrRecordNotFound {
- fmt.Println("该设备无消毒计划")
- return
- } else if errplan == nil {
- //查询该病人是否有记录,无记录的则添加
- information, errcode := GetInfor(it.PatientId, timenow, it.UserOrgId, it.SchedualType)
- fmt.Println("errcode是什么", errcode)
- fmt.Println("information", information)
- if errcode == gorm.ErrRecordNotFound {
- information := models.DeviceInformation{
- Date: timenow,
- Zone: schedules.PartitionId,
- Class: it.SchedualType,
- BedNumber: schedules.BedId,
- PatientId: schedules.PatientId,
- DialysisMode: prescription.ModeId,
- LongTime: strconv.FormatInt(plan.DisinfecTime, 10),
- Disinfection: 1,
- DialysisConcentration: 1,
- DisinfectionStatus: 1,
- Move: 1,
- UserOrgId: it.UserOrgId,
- DisinfectType: plan.Way, //基表消毒方式
- DisinfectantType: plan.MachineDisinfectant, //基表消毒液
- FluidPath: plan.DisinfectanWay, //液路消毒方式
- Disinfectant: plan.Disinfectant, //液路消毒液
- Ctime: time.Now().Unix(),
- Status: 1,
- SignName: it.FinishNurse,
- EquimentId: addmacher.ID,
- DisinfectionResidue: 2,
- Bed: addmacher.BedNumber,
- StartTime: it.StartTime,
- EndTime: it.EndTime,
- Contagion: con,
- WeightLoss: dislysis.WeightLoss,
- Hyperfiltratio: dislysis.ActualUltrafiltration,
- DialysisHour: strconv.FormatInt(dislysis.ActualTreatmentHour, 10),
- MachineRun: 1,
- }
- err := CreateInformation(&information)
- fmt.Println("报错", err)
- } else if errcode == nil {
-
- } else {
-
- }
- } else {
-
- return
- }
- }
- }
-
- //关闭
- if remander.IsRun == 2 {
- fmt.Print("已关闭")
- }
- }
- }
|