package controllers

import (
	"Xcx_New/enums"
	"Xcx_New/models"
	"Xcx_New/service"
	"Xcx_New/utils"
	"encoding/json"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/jinzhu/gorm"
	"strconv"
	"time"
	"unsafe"
)

type MachineApiController struct {
	BaseAuthAPIController
}

func ManageRouters() {
	beego.Router("/api/management/savemanageinfo", &MachineApiController{}, "post:SaveManageInfo")
	beego.Router("/api/management/updatemachineinfo", &MachineApiController{}, "post:UpdateMachineInfo")
	beego.Router("/api/manage/updatemacheinettwo", &MachineApiController{}, "post:Updatemacheinetwo")
	beego.Router("/api/management/getallequimentname", &MachineApiController{}, "get:GetAllEquimentName")
	beego.Router("/api/management/saveplan", &MachineApiController{}, "post:SavePlan")
	beego.Router("/api/management/getallplan", &MachineApiController{}, "get:GetAllPlan")
	beego.Router("/api/management/getallplandetail", &MachineApiController{}, "get:GetAllPlanDetail")
	beego.Router("/api/management/geteditmachine", &MachineApiController{}, "get:GetEditMahchine")
	beego.Router("/api/staff/deleteplans", &MachineApiController{}, "delete:DeletePlans")
	beego.Router("/api/manage/editplandetail", &MachineApiController{}, "get:EditPlanDetail")
	beego.Router("/api/manage/updateplaninfo", &MachineApiController{}, "post:UpdatePlanInfo")
	beego.Router("/api/manage/getcomprehensive", &MachineApiController{}, "get:GetComprehensive")
	beego.Router("/api/manage/saveinformation", &MachineApiController{}, "Post:SaveInformation")
	beego.Router("/api/manage/getpatientinfo", &MachineApiController{}, "Get:GetPatientInfo")
	beego.Router("/api/manage/changeclass", &MachineApiController{}, "Get:GetPatient")
	beego.Router("/api/manage/changepatient", &MachineApiController{}, "Get:ChangePatient")
	beego.Router("/api/manage/getallorganization", &MachineApiController{}, "Get:GetAllOrganization")
	beego.Router("/api/manage/getregisterinfo", &MachineApiController{}, "Get:GetRegisterInfo")
	beego.Router("/api/manage/getinformationdata", &MachineApiController{}, "Get:GetInformationData")
	beego.Router("/api/manage/getorgname", &MachineApiController{}, "Get:GetOrgName")
	beego.Router("/api/manage/savebacteria", &MachineApiController{}, "Post:SaveBacteria")
	beego.Router("/api/manage/savelincomycin", &MachineApiController{}, "Post:SaveLinconmycin")
	beego.Router("/api/manage/savequalitycontrol", &MachineApiController{}, "Post:SaveQualityControl")
	beego.Router("/api/manage/getallqulityinfo", &MachineApiController{}, "Get:GetAllQulityInfo")
	beego.Router("/api/manage/editculture", &MachineApiController{}, "Get:EditCulture")
	beego.Router("/api/manage/updateculture", &MachineApiController{}, "Post:UpdateCulture")
	beego.Router("/api/manage/deletecultrue", &MachineApiController{}, "delete:DeleteCultrue")
	beego.Router("/api/manage/editdialystate", &MachineApiController{}, "Get:EditDialystate")
	beego.Router("/api/manage/updatedialystate", &MachineApiController{}, "Post:Updatedialystate")
	beego.Router("/api/manage/deletedialystate", &MachineApiController{}, "delete:DeleteDialystate")
	beego.Router("/api/manage/edition", &MachineApiController{}, "Get:Edition")
	beego.Router("/api/manage/updateion", &MachineApiController{}, "Post:UpdateIon")
	beego.Router("/api/manage/deleteion", &MachineApiController{}, "delete:DeleteIon")
	beego.Router("/api/manage/query", &MachineApiController{}, "Get:GetQuery")
	beego.Router("/api/manage/saverepair", &MachineApiController{}, "Post:SaveRepair")
	beego.Router("/api/manage/getallrepair", &MachineApiController{}, "Get:GetAllRepair")
	beego.Router("/api/manage/editrepair", &MachineApiController{}, "Get:EditRepair")
	beego.Router("/api/manage/updaterepair", &MachineApiController{}, "Post:UpdateRepair")
	beego.Router("/api/manage/deleterepair", &MachineApiController{}, "delete:DeleteRepair")
	beego.Router("/api/manage/queryrepair", &MachineApiController{}, "Get:GetRepair")
	beego.Router("/api/manage/edituser", &MachineApiController{}, "Get:EditUser")
	beego.Router("/api/manage/deleteform", &MachineApiController{}, "delete:DeleteForm")
	beego.Router("/api/manage/updateform", &MachineApiController{}, "Post:UpdateForm")
	beego.Router("/api/manage/queryinfo", &MachineApiController{}, "Get:QueryInfo")
	beego.Router("/api/manage/insertautodata", &MachineApiController{}, "Get:InsertAutoData")
	beego.Router("/api/manage/getallequittype", &MachineApiController{}, "Get:GetAllEquitType")
	beego.Router("/api/manage/getuserform", &MachineApiController{}, "Get:GetUserForm")
	beego.Router("/api/manage/getbedform", &MachineApiController{}, "Get:GetBedForm")
	beego.Router("/api/manage/gettotalcount", &MachineApiController{}, "Get:GetTotalCount")
	beego.Router("/api/manage/getotalnumber", &MachineApiController{}, "Get:GetTotalNumber")
	beego.Router("/api/manage/gettimewarning", &MachineApiController{}, "Get:GetTimeWarning")
	beego.Router("/api/manage/savemanageinfotwo", &MachineApiController{}, "post:SaveManageinfoTwo")
	beego.Router("/api/management/updatemachineinfotwo", &MachineApiController{}, "post:UpdateMachinetwo")
	beego.Router("/api/manage/getallpatient", &MachineApiController{}, "get:GetAllpatient")
	beego.Router("/api/manage/changebed", &MachineApiController{}, "get:ChangeBed")
	beego.Router("/api/manage/getpatientdetail", &MachineApiController{}, "get:GetPatientDetail")
	beego.Router("/api/manage/changrun", &MachineApiController{}, "post:SaveReminder")
	beego.Router("/api/manage/getremanderdata", &MachineApiController{}, "get:GetRemanderData")
	beego.Router("/api/manage/opendelete", &MachineApiController{}, "delete:OpenDelete")
	beego.Router("/api/manage/deleteuserlogin", &MachineApiController{}, "delete:DeleteUserLogin")
	beego.Router("/api/manage/deletecultrues", &MachineApiController{}, "delete:DeleteCultrues")
	beego.Router("/api/manage/deletedialystates", &MachineApiController{}, "delete:DeleteDialystates")
	beego.Router("/api/manage/deleteions", &MachineApiController{}, "delete:Deleteions")
	beego.Router("/api/manage/deleterepairs", &MachineApiController{}, "delete:DeleteRepairs")
	beego.Router("/api/manage/savemode", &MachineApiController{}, "post:SaveMode")
	beego.Router("/api/manage/getallmode", &MachineApiController{}, "get:GetAllMode")
	beego.Router("/api/manage/editmode", &MachineApiController{}, "get:EditMode")
	beego.Router("/api/manage/updatemode", &MachineApiController{}, "post:UpdateMode")
	beego.Router("/api/manage/deletemode", &MachineApiController{}, "delete:DeleteMode")
	beego.Router("/api/manage/selectchange", &MachineApiController{}, "Get:SelectChange")
	beego.Router("/api/manage/selectbed", &MachineApiController{}, "get:SelectBed")
	beego.Router("/api/manage/getime", &MachineApiController{}, "get:GetTimeData")
	beego.Router("/api/manage/deleteimages", &MachineApiController{}, "delete:DeleteImages")
	beego.Router("/api/manage/getusermachtotalcount", &MachineApiController{}, "Get:GetUserMachTotalCount")
	beego.Router("/api/manage/getusertotalcount", &MachineApiController{}, "Get:GetUserTotalCount")
	beego.Router("/api/manage/deletemanagement", &MachineApiController{}, "Get:DeleteManagement")

	beego.Router("/api/manage/saveoxygenates", &MachineApiController{}, "Post:SaveOxygenates")
	beego.Router("/api/manage/savehardwater", &MachineApiController{}, "Post:SaveHardWater")
	beego.Router("/api/manage/savewater", &MachineApiController{}, "Post:SaveWater")
	beego.Router("/api/manage/savedeviceph", &MachineApiController{}, "Post:SaveDevicePH")
	beego.Router("/api/manage/editoxygenates", &MachineApiController{}, "Get:EditOxygenates")
	beego.Router("/api/manage/updateoxygenates", &MachineApiController{}, "Post:UpdateOxygenates")
	beego.Router("/api/manage/edithardwater", &MachineApiController{}, "Get:EditHardWater")
	beego.Router("/api/manage/editwater", &MachineApiController{}, "Get:EditWater")
	beego.Router("/api/manage/editdeviceph", &MachineApiController{}, "Get:EditDevicePh")
	beego.Router("/api/manage/getalldoctlist", &MachineApiController{}, "Get:GetAllDoctorList")
	beego.Router("/api/manage/saveairdisinfect", &MachineApiController{}, "Get:SaveAirDisinfect")
	beego.Router("/api/manage/getairlist", &MachineApiController{}, "Get:GetAirList")
	beego.Router("/api/manage/getairdisinfctdetal", &MachineApiController{}, "Get:GetAirDisinfetDetail")
	beego.Router("/api/manage/updateairdisinfect", &MachineApiController{}, "Get:UpdateAirDisinfect")
	beego.Router("/api/manage/deleteairdisinfect", &MachineApiController{}, "Get:DeleteAirDisinfect")
	beego.Router("/api/manage/savebodydisinfect", &MachineApiController{}, "Get:SaveBodyDisinfect")
	beego.Router("/api/manage/getbodylist", &MachineApiController{}, "Get:GetBodyList")
	beego.Router("/api/manage/getbodydisinfectdetal", &MachineApiController{}, "Get:GetBodyDisinfetDetail")
	beego.Router("/api/manage/updatebodydisinfect", &MachineApiController{}, "Get:UpdateBodyDisinfect")
	beego.Router("/api/manage/deletebodydisinfect", &MachineApiController{}, "Get:DeleteBodyDisInfect")
	beego.Router("/api/manage/updatehadwater", &MachineApiController{}, "Post:UpdateHadWater")
	beego.Router("/api/manage/updatewater", &MachineApiController{}, "Post:UpdateWater")
	beego.Router("/api/manage/updatedeviceph", &MachineApiController{}, "Post:UpdateDevicePh")
	beego.Router("/api/manage/deleteoxygenates", &MachineApiController{}, "Get:DeleteOxygenates")
	beego.Router("/api/manage/deletehadwater", &MachineApiController{}, "Get:DeleteHadWater")
	beego.Router("/api/manage/deletewater", &MachineApiController{}, "Get:DeleteWater")
	beego.Router("/api/manage/deletedeviceph", &MachineApiController{}, "Get:DeleteDevicePh")

}

func (this *MachineApiController) SaveManageInfo() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("机构id", orgid)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	//fmt.Println("err", err)
	//serial_numbe := int64(dataBody["serial_number"].(float64))
	serial_numbe := dataBody["serial_number"].(string)
	//fmt.Println("序列号", serial_numbe)
	device_type := int64(dataBody["device_type"].(float64))
	//fmt.Println("设备类型", device_type)
	bed_number := int64(dataBody["bed_number"].(float64))
	//	fmt.Println("床位号", bed_number)
	//通过床位id获取区号id
	number, err := service.GetZoneId(bed_number, orgid)
	//fmt.Println("number", number)
	//	fmt.Println("获取分区id错误", err)
	device_name := dataBody["device_name"].(string)
	//	fmt.Println("设备名称", device_name)
	manufacture_factory := dataBody["manufacture_factory"].(string)
	//fmt.Println("生产厂家", manufacture_factory)
	service_manufacturer := dataBody["service_manufacturer"].(string)
	//	fmt.Println("维修厂家", service_manufacturer)
	unittype := int64(dataBody["unit_type"].(float64))
	unit_type := strconv.FormatInt(unittype, 10)
	//	fmt.Println("设备型号", unit_type)
	use_section := dataBody["use_section"].(string)
	//fmt.Println("使用科室", use_section)
	section_number := dataBody["section_number"].(string)
	//	fmt.Println("科室编号", section_number)
	buy_date := dataBody["buy_date"].(string)
	//	fmt.Println("buy_date", buy_date)
	timeLayout := "2006-01-02 15:04:05"
	theTime, err := utils.ParseTimeStringToTime(timeLayout, buy_date+" 00:00:00")
	buydate := theTime.Unix()
	int_num := *(*int)(unsafe.Pointer(&buydate))
	if int_num < 0 {
		buydate = 0
	}
	//	fmt.Println("购买日期", buydate)

	install_date := dataBody["install_date"].(string)
	toTime, err := utils.ParseTimeStringToTime(timeLayout, install_date+" 00:00:00")
	installdate := toTime.Unix()
	buy_num := *(*int)(unsafe.Pointer(&installdate))
	if buy_num < 0 {
		installdate = 0
	}
	//fmt.Println("安装日期", installdate)

	start_date := dataBody["start_date"].(string)
	stringToTime, err := utils.ParseTimeStringToTime(timeLayout, start_date+" 00:00:00")
	startdate := stringToTime.Unix()
	start_num := *(*int)(unsafe.Pointer(&startdate))
	if start_num < 0 {
		startdate = 0
	}
	//	fmt.Println("启用日期", startdate)

	maintenance_engineer := dataBody["maintenance_engineer"].(string)
	//fmt.Println("维修工程", maintenance_engineer)
	telephone := dataBody["telephone"].(string)
	//fmt.Println("telephone", telephone)
	guarantee_date := dataBody["guarantee_date"].(string)
	//	fmt.Println("保修期限", guarantee_date)
	machine_status := int64(dataBody["machine_status"].(float64))
	//fmt.Println("机器状态", machine_status)
	user_total := dataBody["user_total"].(string)
	//fmt.Println("初次使用次数", user_total)
	disinfection_mode := int64(dataBody["Disinfection_mode"].(float64))
	//fmt.Println("消毒方式", disinfection_mode)
	remarks := dataBody["remarks"].(string)
	//fmt.Println("备注", remarks)
	rubbish_date := dataBody["rubbish_date"].(string)
	timeStringToTime, err := utils.ParseTimeStringToTime(timeLayout, rubbish_date+" 00:00:00")
	rubbishdate := timeStringToTime.Unix()
	rubb_num := *(*int)(unsafe.Pointer(&rubbishdate))
	if rubb_num < 0 {
		rubbishdate = 0
	}
	//fmt.Println("报废日期", rubbishdate)
	rubbish_reason := int64(dataBody["rubbish_reason"].(float64))
	//fmt.Println("报废原因", rubbish_reason)
	user_year := dataBody["user_year"].(string)
	//	fmt.Println("使用年限", user_year)
	work_time := dataBody["work_time"].(string)
	//fmt.Println("工作时长", work_time)
	treat_types := dataBody["treat_type"].([]interface{})
	revers := int64(dataBody["revers_mode"].(float64))
	//fmt.Println("反渗模式", revers)
	ids := make([]int64, 0)
	for _, treat := range treat_types {
		id := int64(treat.(float64))
		ids = append(ids, id)
	}

	//查询机位号是否绑定设备
	thisAddmacher, err := service.GetEquitmentByBedID(bed_number, orgid)
	if thisAddmacher.ID > 0 {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeEquitNoExist)
		return
	}

	addmacher := &models.DeviceAddmacher{
		SerialNumber: serial_numbe,
		DeviceType:   device_type,
		BedNumber:    number.Number,
		BedId:        bed_number,
		//ZoneId:              number.ZoneID,
		DeviceName:          device_name,
		ManufactureFactory:  manufacture_factory,
		ServiceManufacturer: service_manufacturer,
		UnitType:            unittype,
		UseSection:          use_section,
		SectionNumber:       section_number,
		BuyDate:             buydate,
		InstallDate:         installdate,
		StartDate:           startdate,
		MaintenaceEngineer:  maintenance_engineer,
		Telephone:           telephone,
		GuaranteeDate:       guarantee_date,
		MachineStatus:       machine_status,
		UserTotal:           user_total,
		DisinfectionMode:    disinfection_mode,
		Remarks:             remarks,
		RubbishDate:         rubbishdate,
		RubbishReason:       rubbish_reason,
		UserYear:            user_year,
		WorkTime:            work_time,
		ReversMode:          revers,
		Status:              1,
		Ctime:               time.Now().Unix(),
		UserOrgId:           orgid,
	}
	err = service.CreateMacher(addmacher)
	//fmt.Println("什么原因啊", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
		return
	}
	deviceAddmacher, err := service.GetLastMacherData(orgid)
	//	fmt.Println("错误是什么", err)
	equimentname := models.DeviceEquimentname{
		EquitmentName: unit_type,
		Status:        1,
		UserOrgId:     orgid,
		Ctime:         time.Now().Unix(),
		EquitmentId:   deviceAddmacher.ID,
		BedId:         bed_number,
	}

	error := service.AddTreatMode(deviceAddmacher.ID, orgid, ids)
	fmt.Println("error:", error)
	name, errcode := service.GetEquitmentName(unit_type, orgid)
	fmt.Print("错误", errcode)
	fmt.Print("name", name)
	err = service.CreateEquimentName(equimentname)
	//if errcode == gorm.ErrRecordNotFound {
	//	err = service.CreateEquimentName(equimentname)
	//} else if errcode == nil {
	//	fmt.Print("设备类型已经存在")
	//} else {
	//	fmt.Print("设备类型已经存在")
	//}
	fmt.Println("添加设备型号失败", err)
	this.ServeSuccessJSON(map[string]interface{}{
		"addmacher": addmacher,
	})
}

func (this *MachineApiController) UpdateMachineInfo() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("机构id", orgid)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	//fmt.Println("错误是", err)
	id := int64(dataBody["id"].(float64))
	fmt.Println("id是什么", id)
	//serial_number := int64(dataBody["serial_number"].(float64))
	serial_number := dataBody["serial_number"].(string)
	fmt.Println("序列号", serial_number)
	device_type := int64(dataBody["devicetype"].(float64))
	fmt.Println("设备类型", device_type)

	bed_number := int64(dataBody["bed_number"].(float64))
	fmt.Println("机位号", bed_number)

	number, err := service.GetZoneId(bed_number, orgid)
	//fmt.Println("number是多少", number)
	device_name := dataBody["device_name"].(string)
	//fmt.Println("设备名称", device_name)
	manufacture_factory := dataBody["manufacture_factory"].(string)
	//fmt.Println("生产厂家", manufacture_factory)
	service_manufacturer := dataBody["service_manufacturer"].(string)
	//fmt.Println("维修厂家", service_manufacturer)
	unit_type := int64(dataBody["unit_type"].(float64))
	//unit_type := strconv.FormatInt(unittype, 10)
	fmt.Println("设备型号", unit_type)

	use_section := dataBody["use_section"].(string)
	//fmt.Println("使用科室", use_section)
	section_number := dataBody["section_number"].(string)
	//fmt.Println("科室编号", section_number)
	buy_date := dataBody["buy_date"].(string)
	//	fmt.Println("buy_date", buy_date)
	timeLayout := "2006-01-02 15:04:05"
	theTime, err := utils.ParseTimeStringToTime(timeLayout, buy_date+" 00:00:00")
	buydate := theTime.Unix()
	int_num := *(*int)(unsafe.Pointer(&buydate))
	if int_num < 0 {
		buydate = 0
	}
	fmt.Println("购买日期", buydate)
	install_date := dataBody["install_date"].(string)
	toTime, err := utils.ParseTimeStringToTime(timeLayout, install_date+" 00:00:00")
	installdate := toTime.Unix()
	buy_num := *(*int)(unsafe.Pointer(&installdate))
	if buy_num < 0 {
		installdate = 0
	}
	//fmt.Println("安装日期", installdate)

	start_date := dataBody["start_date"].(string)
	stringToTime, err := utils.ParseTimeStringToTime(timeLayout, start_date+" 00:00:00")
	startdate := stringToTime.Unix()
	start_num := *(*int)(unsafe.Pointer(&startdate))
	if start_num < 0 {
		startdate = 0
	}
	//fmt.Println("启用日期", startdate)
	maintenance_engineer := dataBody["maintenance_engineer"].(string)
	//fmt.Println("维修工程", maintenance_engineer)
	telephone := dataBody["telephone"].(string)
	//fmt.Println("telephone", telephone)
	guarantee_date := dataBody["guarantee_date"].(string)
	//fmt.Println("保修期限", guarantee_date)
	machine_status := int64(dataBody["machine_status"].(float64))
	//fmt.Println("机器状态", machine_status)
	user_total := dataBody["user_total"].(string)
	//fmt.Println("初次使用次数", user_total)
	remarks := dataBody["remarks"].(string)
	//fmt.Println("备注", remarks)
	rubbish_date := dataBody["rubbish_date"].(string)
	timeStringToTime, err := utils.ParseTimeStringToTime(timeLayout, rubbish_date+" 00:00:00")
	rubbishdate := timeStringToTime.Unix()
	rubb_num := *(*int)(unsafe.Pointer(&rubbishdate))
	if rubb_num < 0 {
		rubbishdate = 0
	}
	//fmt.Println("报废日期", rubbishdate)
	rubbish_reason := int64(dataBody["rubbish_reason"].(float64))
	//fmt.Println("报废原因", rubbish_reason)
	user_year := dataBody["user_year"].(string)
	//fmt.Println("使用年限", user_year)
	work_time := dataBody["work_time"].(string)
	//fmt.Println("工作时长", work_time)
	treat_types := dataBody["treat_type"].([]interface{})
	ids := make([]int64, 0)
	for _, treat := range treat_types {
		id := int64(treat.(float64))
		ids = append(ids, id)
	}
	fmt.Println("ids", ids)
	//service.GetModeName(unit_type)
	thisAddmacher, err := service.GetEquitmentByBedID(bed_number, orgid)
	if thisAddmacher.ID > 0 && thisAddmacher.ID != id {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisNoExist)
		return
	}
	addmacher := models.DeviceAddmacher{
		ID:                  id,
		SerialNumber:        serial_number,
		DeviceType:          device_type,
		BedNumber:           number.Number,
		BedId:               bed_number,
		DeviceName:          device_name,
		ManufactureFactory:  manufacture_factory,
		ServiceManufacturer: service_manufacturer,
		UnitType:            unit_type,
		UseSection:          use_section,
		SectionNumber:       section_number,
		BuyDate:             buydate,
		InstallDate:         installdate,
		StartDate:           startdate,
		MaintenaceEngineer:  maintenance_engineer,
		Telephone:           telephone,
		GuaranteeDate:       guarantee_date,
		MachineStatus:       machine_status,
		UserTotal:           user_total,
		Remarks:             remarks,
		RubbishDate:         rubbishdate,
		RubbishReason:       rubbish_reason,
		UserYear:            user_year,
		WorkTime:            work_time,
	}
	//fmt.Println("addmacher", addmacher)
	err = service.UpdateMachine(id, orgid, &addmacher)
	//mt.Println("报错", err)
	//zone, err := service.GetZoneName(number.ZoneID, orgid)
	//fmt.Println("zoneerr",err)
	errors := service.UpdateTreatMode(id, orgid, ids)
	fmt.Println("更新透析模式失败", errors)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"addmacher": addmacher,
	})
}

func (this *MachineApiController) UpdateMachinetwo() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("机构id", orgid)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	//fmt.Println("错误是", err)
	id := int64(dataBody["id"].(float64))
	//fmt.Println("id是什么", id)
	//serial_number := int64(dataBody["serial_number"].(float64))
	bed_nunmber := dataBody["beds"].(string)
	//fmt.Print("机位号z", bes)
	// bed_nunmber := strconv.FormatInt(bes,10)
	serial_number := dataBody["serial_number"].(string)
	//fmt.Println("序列号", serial_number)
	device_type := int64(dataBody["devicetype"].(float64))
	//fmt.Println("设备类型", device_type)
	//	bed_nunmber := dataBody["bed_number"].(string)
	//fmt.Println("床位好", bed_nunmber)
	device_name := dataBody["device_name"].(string)
	//fmt.Println("设备名称", device_name)
	manufacture_factory := dataBody["manufacture_factory"].(string)
	//fmt.Println("生产厂家", manufacture_factory)
	service_manufacturer := dataBody["service_manufacturer"].(string)
	//fmt.Println("维修厂家", service_manufacturer)
	unit_type := int64(dataBody["unit_type"].(float64))
	//unit_type := strconv.FormatInt(unittype, 10)
	//fmt.Println("设备型号", unit_type)
	use_section := dataBody["use_section"].(string)
	//fmt.Println("使用科室", use_section)
	section_number := dataBody["section_number"].(string)
	//fmt.Println("科室编号", section_number)
	buy_date := dataBody["buy_date"].(string)
	//fmt.Println("buy_date", buy_date)
	timeLayout := "2006-01-02 15:04:05"
	theTime, err := utils.ParseTimeStringToTime(timeLayout, buy_date+" 00:00:00")
	buydate := theTime.Unix()
	int_num := *(*int)(unsafe.Pointer(&buydate))
	if int_num < 0 {
		buydate = 0
	}
	//fmt.Println("购买日期", buydate)
	install_date := dataBody["install_date"].(string)
	toTime, err := utils.ParseTimeStringToTime(timeLayout, install_date+" 00:00:00")
	installdate := toTime.Unix()
	buy_num := *(*int)(unsafe.Pointer(&installdate))
	if buy_num < 0 {
		installdate = 0
	}
	//fmt.Println("安装日期", installdate)

	start_date := dataBody["start_date"].(string)
	stringToTime, err := utils.ParseTimeStringToTime(timeLayout, start_date+" 00:00:00")
	startdate := stringToTime.Unix()
	start_num := *(*int)(unsafe.Pointer(&startdate))
	if start_num < 0 {
		startdate = 0
	}
	//fmt.Println("启用日期", startdate)
	maintenance_engineer := dataBody["maintenance_engineer"].(string)
	//fmt.Println("维修工程", maintenance_engineer)
	telephone := dataBody["telephone"].(string)
	//fmt.Println("telephone", telephone)
	guarantee_date := dataBody["guarantee_date"].(string)
	//fmt.Println("保修期限", guarantee_date)
	machine_status := int64(dataBody["machine_status"].(float64))
	//fmt.Println("机器状态", machine_status)
	user_total := dataBody["user_total"].(string)
	//fmt.Println("初次使用次数", user_total)
	remarks := dataBody["remarks"].(string)
	//fmt.Println("备注", remarks)
	rubbish_date := dataBody["rubbish_date"].(string)
	timeStringToTime, err := utils.ParseTimeStringToTime(timeLayout, rubbish_date+" 00:00:00")
	rubbishdate := timeStringToTime.Unix()
	rubb_num := *(*int)(unsafe.Pointer(&rubbishdate))
	if rubb_num < 0 {
		rubbishdate = 0
	}
	//fmt.Println("报废日期", rubbishdate)
	rubbish_reason := int64(dataBody["rubbish_reason"].(float64))
	//fmt.Println("报废原因", rubbish_reason)
	user_year := dataBody["user_year"].(string)
	//fmt.Println("使用年限", user_year)
	work_time := dataBody["work_time"].(string)
	//fmt.Println("工作时长", work_time)
	disinfection_mode := int64(dataBody["Disinfection_mode"].(float64))

	revers_modes := int64(dataBody["revers_mode"].(float64))

	addmacher := models.DeviceAddmacher{
		ID:                  id,
		SerialNumber:        serial_number,
		DeviceType:          device_type,
		BedNumber:           bed_nunmber,
		DeviceName:          device_name,
		ManufactureFactory:  manufacture_factory,
		ServiceManufacturer: service_manufacturer,
		UnitType:            unit_type,
		UseSection:          use_section,
		SectionNumber:       section_number,
		BuyDate:             buydate,
		InstallDate:         installdate,
		StartDate:           startdate,
		MaintenaceEngineer:  maintenance_engineer,
		Telephone:           telephone,
		GuaranteeDate:       guarantee_date,
		MachineStatus:       machine_status,
		UserTotal:           user_total,
		Remarks:             remarks,
		RubbishDate:         rubbishdate,
		RubbishReason:       rubbish_reason,
		UserYear:            user_year,
		WorkTime:            work_time,
		DisinfectionMode:    disinfection_mode,
		ReversMode:          revers_modes,
	}
	fmt.Println("addmacher", addmacher)
	err = service.UpdateMachine(id, orgid, &addmacher)
	fmt.Println("报错", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"addmacher": addmacher,
	})
}

func (this *MachineApiController) Updatemacheinetwo() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("机构id", orgid)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	//fmt.Println("错误是", err)
	id := int64(dataBody["id"].(float64))
	//fmt.Println("id是什么", id)
	//serial_number := int64(dataBody["serial_number"].(float64))
	serial_number := dataBody["serial_number"].(string)
	//fmt.Println("序列号", serial_number)
	device_type := int64(dataBody["devicetype"].(float64))
	//fmt.Println("设备类型", device_type)

	//bed_number := int64(dataBody["bed_number"].(float64))
	//fmt.Println("机位号", bed_number)
	bednumber := dataBody["bed_numbers"].(string)
	//fmt.Println("机位号", bednumber)

	//number, err := service.GetZoneId(bed_number, orgid)

	//fmt.Println("number是多少", number)
	device_name := dataBody["device_name"].(string)
	//fmt.Println("设备名称", device_name)
	manufacture_factory := dataBody["manufacture_factory"].(string)
	//fmt.Println("生产厂家", manufacture_factory)
	service_manufacturer := dataBody["service_manufacturer"].(string)
	//fmt.Println("维修厂家", service_manufacturer)
	unittype := int64(dataBody["unit_type"].(float64))
	//unit_type := strconv.FormatInt(unittype, 10)
	//fmt.Println("设备型号", unit_type)
	use_section := dataBody["use_section"].(string)
	//fmt.Println("使用科室", use_section)
	section_number := dataBody["section_number"].(string)
	//fmt.Println("科室编号", section_number)
	buy_date := dataBody["buy_date"].(string)
	//fmt.Println("buy_date", buy_date)
	timeLayout := "2006-01-02 15:04:05"
	theTime, err := utils.ParseTimeStringToTime(timeLayout, buy_date+" 00:00:00")
	buydate := theTime.Unix()
	int_num := *(*int)(unsafe.Pointer(&buydate))
	if int_num < 0 {
		buydate = 0
	}
	//fmt.Println("购买日期", buydate)
	install_date := dataBody["install_date"].(string)
	toTime, err := utils.ParseTimeStringToTime(timeLayout, install_date+" 00:00:00")
	installdate := toTime.Unix()
	buy_num := *(*int)(unsafe.Pointer(&installdate))
	if buy_num < 0 {
		installdate = 0
	}
	//fmt.Println("安装日期", installdate)

	start_date := dataBody["start_date"].(string)
	stringToTime, err := utils.ParseTimeStringToTime(timeLayout, start_date+" 00:00:00")
	startdate := stringToTime.Unix()
	start_num := *(*int)(unsafe.Pointer(&startdate))
	if start_num < 0 {
		startdate = 0
	}
	//fmt.Println("启用日期", startdate)
	maintenance_engineer := dataBody["maintenance_engineer"].(string)
	//fmt.Println("维修工程", maintenance_engineer)
	telephone := dataBody["telephone"].(string)
	//fmt.Println("telephone", telephone)
	guarantee_date := dataBody["guarantee_date"].(string)
	//fmt.Println("保修期限", guarantee_date)
	machine_status := int64(dataBody["machine_status"].(float64))
	//fmt.Println("机器状态", machine_status)
	user_total := dataBody["user_total"].(string)
	//fmt.Println("初次使用次数", user_total)
	remarks := dataBody["remarks"].(string)
	//fmt.Println("备注", remarks)
	rubbish_date := dataBody["rubbish_date"].(string)
	timeStringToTime, err := utils.ParseTimeStringToTime(timeLayout, rubbish_date+" 00:00:00")
	rubbishdate := timeStringToTime.Unix()
	rubb_num := *(*int)(unsafe.Pointer(&rubbishdate))
	if rubb_num < 0 {
		rubbishdate = 0
	}
	//fmt.Println("报废日期", rubbishdate)
	rubbish_reason := int64(dataBody["rubbish_reason"].(float64))
	//fmt.Println("报废原因", rubbish_reason)
	user_year := dataBody["user_year"].(string)
	//fmt.Println("使用年限", user_year)
	work_time := dataBody["work_time"].(string)
	//fmt.Println("工作时长", work_time)
	addmacher := models.DeviceAddmacher{
		ID:                  id,
		SerialNumber:        serial_number,
		DeviceType:          device_type,
		BedNumber:           bednumber,
		DeviceName:          device_name,
		ManufactureFactory:  manufacture_factory,
		ServiceManufacturer: service_manufacturer,
		UnitType:            unittype,
		UseSection:          use_section,
		SectionNumber:       section_number,
		BuyDate:             buydate,
		InstallDate:         installdate,
		StartDate:           startdate,
		MaintenaceEngineer:  maintenance_engineer,
		Telephone:           telephone,
		GuaranteeDate:       guarantee_date,
		MachineStatus:       machine_status,
		UserTotal:           user_total,
		Remarks:             remarks,
		RubbishDate:         rubbishdate,
		RubbishReason:       rubbish_reason,
		UserYear:            user_year,
		WorkTime:            work_time,
	}
	//fmt.Println("addmacher", addmacher)
	err = service.UpdateMachine(id, orgid, &addmacher)
	//fmt.Println("报错", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"addmacher": addmacher,
	})
}

func (this *MachineApiController) GetAllEquimentName() {
	adminUser := this.GetAdminUserInfo()
	orgid := adminUser.CurrentOrgId
	equit, err := service.GetAllEquimentName(orgid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"equit": equit,
	})
}

func (this *MachineApiController) SavePlan() {
	id, _ := this.GetInt64("id")
	//fmt.Println("设备id", id)
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("机构id", orgid)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	//fmt.Println("错误是", err)
	device_type := int64(dataBody["device_type"].(float64))
	//fmt.Println("设备型号", device_type)

	disinfec_time := dataBody["disinfec_time"].(string)
	//fmt.Println("消毒时长", disinfec_time)

	time := dataBody["time"].([]interface{})
	//fmt.Println("时间", time)

	ids := make([]int64, 0)
	for _, t := range time {
		id := int64(t.(float64))
		ids = append(ids, id)
	}
	//fmt.Println("ids", ids)

	classtime := dataBody["class_time"].([]interface{})
	//fmt.Println("班次", classtime)

	classids := make([]int64, 0)
	for _, class := range classtime {
		id := int64(class.(float64))
		classids = append(classids, id)
	}

	//fmt.Println("classids", classids)

	way := int64(dataBody["way"].(float64))
	//fmt.Println("基表消毒方式", way)

	machinedisinfectant := int64(dataBody["machine_disinfectant"].(float64))
	//fmt.Println("基表消毒液", machinedisinfectant)

	disinfectantway := int64(dataBody["disinfectant_way"].(float64))
	//fmt.Println("液路消毒方式", disinfectantway)

	disinfectant := int64(dataBody["disinfectant"].(float64))
	//fmt.Println("液路消毒液", disinfectant)
	bed, err := service.GetBed(id)
	_, errcode := service.QueryPlan(orgid, device_type, ids, classids, id)
	fmt.Print("errcode ---------", errcode)
	if errcode == gorm.ErrRecordNotFound {
		err = service.AddPlan(orgid, device_type, disinfec_time, ids, classids, way, machinedisinfectant, disinfectantway, disinfectant, id, bed.BedId)
		if err != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加计划失败")
			return
		}
		this.ServeSuccessJSON(map[string]interface{}{
			"msg": "msg",
		})
	} else if errcode == nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "已存在")
		return
	} else {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "已存在")
		return
	}

}

func (this *MachineApiController) GetAllPlan() {
	adminUserin := this.GetAdminUserInfo()
	orgid := adminUserin.CurrentOrgId
	plan, err := service.GetAllPlan(orgid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"plan": plan,
	})
}

func (this *MachineApiController) GetAllPlanDetail() {
	//id, _ := this.GetInt64("id")
	//更据设备ID获取设备型号
	//fmt.Print("=================失败ID",id)
	unitype := this.GetString("unitype")
	deviceType, err2 := service.GetDeviceType(unitype)
	fmt.Print("eer2", err2)
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("orgid", orgid)
	plandetail, err := service.GetAllPlanDetail(deviceType.ID, orgid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "更新设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"plandetail": plandetail,
	})
}

func (this *MachineApiController) GetEditMahchine() {
	id, _ := this.GetInt64("id")
	fmt.Print("id", id)
}

func (this *MachineApiController) DeletePlans() {
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	if err != nil {
		utils.ErrorLog(err.Error())
		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
		return
	}

	idsInters := dataBody["ids"].([]interface{})
	if len(idsInters) == 0 {
		if err != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:（没有选择会员）")
			return
		}
	}

	ids := make([]int64, 0)
	for _, idsInter := range idsInters {
		id := int64(idsInter.(float64))
		ids = append(ids, id)
	}
	err = service.DeletePlans(OrgID, ids)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) EditPlanDetail() {
	id, _ := this.GetInt64("id")
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	plan, err := service.GetPlanDetailById(id, orgId)
	fmt.Println("err", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"plan": plan,
	})
}

func (this *MachineApiController) UpdatePlanInfo() {

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	//fmt.Println("错误是", err)
	id := int64(dataBody["id"].(float64))
	//fmt.Println("id", id)
	device_type := int64(dataBody["device_type"].(float64))
	//fmt.Println("设备型号", device_type)

	disinfec_time := int64(dataBody["disinfec_time"].(float64))
	//fmt.Println("消毒时长", disinfec_time)

	time := int64(dataBody["time"].(float64))
	//fmt.Println("时间", time)
	classtime := int64(dataBody["class_time"].(float64))
	//fmt.Println("班次", classtime)
	way := int64(dataBody["way"].(float64))
	//fmt.Println("基表消毒方式", way)

	machinedisinfectant := int64(dataBody["machine_disinfectant"].(float64))
	//fmt.Println("基表消毒液", machinedisinfectant)

	disinfectantway := int64(dataBody["disinfectant_way"].(float64))
	fmt.Println("液路消毒方式", disinfectantway)

	disinfectant := int64(dataBody["disinfectant"].(float64))
	//fmt.Println("液路消毒液", disinfectant)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("orgid", orgid)
	plan := models.DevicePlan{
		DeviceType:          device_type,
		DisinfecTime:        disinfec_time,
		Time:                time,
		Classtime:           classtime,
		Way:                 way,
		MachineDisinfectant: machinedisinfectant,
		DisinfectanWay:      disinfectantway,
		Disinfectant:        disinfectant,
	}
	err = service.UpdatePlanInfo(id, orgid, plan)

	fmt.Println("err", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"plan": plan,
	})
}

func (this *MachineApiController) GetComprehensive() {
	zone, _ := this.GetInt64("zone")
	//fmt.Println("分区", zone)
	number, _ := this.GetInt64("number")
	//fmt.Println("机号", number)
	devicetype, _ := this.GetInt64("devicetype")
	//fmt.Println("type", devicetype)
	year, _ := this.GetInt64("year")
	//fmt.Println("year", year)

	startTime := this.GetString("starttime")
	//fmt.Println("开始时间", startTime)
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", startTime+" 00:00:00", loc)
	starts := theTime.Unix()
	//fmt.Println("开始日期", starts)

	endtime := this.GetString("endtime")
	location, _ := time.ParseInLocation(timeLayout+" 15:04:05", endtime+" 00:00:00", loc)
	end := location.Unix()
	//fmt.Println("endtime", end)
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	macher, err := service.GetComprehensive(zone, number, devicetype, year, starts, end, orgid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"macher": macher,
	})
}

func (this *MachineApiController) GetPatientInfo() {
	adminUser := this.GetAdminUserInfo()
	orgid := adminUser.CurrentOrgId
	//fmt.Println("机构id", orgid)
	id, _ := this.GetInt64("id")
	//fmt.Println("设备id", id)
	addmacher, _ := service.GetBedId(id)
	//fmt.Println("addmacher", addmacher.BedId)
	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)
	//fmt.Println("时间搓", timeStringToTime.Unix())
	//获取当天床位号排班的所有病人
	schedules, err := service.GetPatientInfo(addmacher.BedId, timenow, orgid)
	//fmt.Println("错误", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"schedules": schedules,
	})
}

func (this *MachineApiController) GetPatient() {
	adminUser := this.GetAdminUserInfo()
	orgid := adminUser.CurrentOrgId
	//fmt.Println("机构id", orgid)
	equitid, _ := this.GetInt64("equitid")
	//fmt.Println("设备id", equitid)
	addmacher, _ := service.GetBedId(equitid)
	id, _ := this.GetInt64("id")
	//fmt.Println("班次id", id)
	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)
	schedules, err := service.GetPatient(addmacher.BedId, orgid, id, timenow)

	//fmt.Println("schedules", schedules.PartitionId)
	//获取区号姓名
	zone, _ := service.GetPartitionName(schedules.PartitionId)
	//获取机位号
	number, _ := service.GetPatientNumber(schedules.BedId)
	//获取上机时间和下机时间
	order, _ := service.GetDialysisOrder(timenow, schedules.PatientId, orgid)

	//获取透析方式
	prescription, _ := service.GetDialysisWay(timenow, schedules.PatientId, orgid)

	//获取透析时长
	dislysis, _ := service.GetDialysisTime(timenow, schedules.PatientId, orgid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"patients":     schedules,
		"zone":         zone,
		"number":       number,
		"order":        order,
		"prescription": prescription,
		"dislysis":     dislysis,
	})
}

func (this *MachineApiController) GetAllOrganization() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	//fmt.Println("orgid", orgid)
	appid := adminUserInfo.CurrentAppId
	//fmt.Println("appid", appid)
	approle, err := service.GetAllOrganization(orgid, appid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"approle": approle,
	})
}

func (this *MachineApiController) SaveInformation() {
	eid, _ := this.GetInt64("eid")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	//fmt.Println("错误是", err)
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)

	date := dataBody["date"].(string)
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	startdate := theTime.Unix()
	//fmt.Println("日期", startdate)

	classtype := int64(dataBody["classtype"].(float64))
	//fmt.Println("班次", classtype)

	zone := int64(dataBody["zone"].(float64))
	//fmt.Println("分区", zone)

	bednumber := int64(dataBody["bed_number"].(float64))
	//fmt.Println("床位号", bednumber)

	number, err := service.GetNumbers(bednumber, orgid)

	patient_time := int64(dataBody["patient_id"].(float64))
	//fmt.Println("患者", patient_time)

	contagion := dataBody["contagion"].(string)
	//fmt.Println("传染病", contagion)

	dialysis_mode := int64(dataBody["dialysis_mode"].(float64))
	//fmt.Println("透析方式", dialysis_mode)

	startDateStr := dataBody["start_time"].(string)
	//fmt.Println("上机时间", startDateStr)
	startDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", startDateStr)
	//fmt.Println("上机时间", startDate.Unix())

	endDateStr := dataBody["end_time"].(string)
	endDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", endDateStr)
	//fmt.Println("下机时间", endDate.Unix())

	dialysis_time := dataBody["dialysis_time"].(string)
	//fmt.Println("透析时长", dialysis_time)

	//hyperfiletration := dataBody["hyperfiltratio"].(string)
	hyperfiletration := dataBody["hyperfiltratio"].(float64)
	//hyperfiletration := strconv.FormatInt(hyperfiltratios, 10)
	fmt.Println("实际超滤量", hyperfiletration)

	//weight_loss := dataBody["weight_loss"].(string)
	weight_loss := dataBody["weight_loss"].(float64)
	//weight_loss := strconv.FormatInt(weightloss, 10)
	fmt.Println("体重减少", weight_loss)

	warining_value := dataBody["warning_value"].(string)
	fmt.Println("预警值", warining_value)

	//user_total := dataBody["user_total"].(string)
	//fmt.Println("使用次数",user_total)
	usertotal := int64(dataBody["user_total"].(float64))
	user_total := strconv.FormatInt(usertotal, 10)

	run := int64(dataBody["run"].(float64))
	//fmt.Println("运行", run)

	failure_stage := int64(dataBody["failure_stage"].(float64))
	//fmt.Println("故事发生阶段", failure_stage)

	falult_desciription := dataBody["fault_description"].(string)
	//fmt.Println("故障描述", falult_desciription)

	code_information := dataBody["code_information"].(string)
	//fmt.Println("故障提示及代码", code_information)

	//机器消毒
	disinfect_type := int64(dataBody["disinfect_type"].(float64))
	//fmt.Println("消毒方式", disinfect_type)

	disinfectant_type := int64(dataBody["disinfectant_type"].(float64))
	//fmt.Println("消毒液", disinfectant_type)

	disinfection := int64(dataBody["disinfection"].(float64))
	//fmt.Println("消毒状态", disinfection)

	machine_run := int64(dataBody["machine_run"].(float64))
	//fmt.Println("运行", machine_run)

	//液路
	fluid_path := int64(dataBody["fluid_path"].(float64))
	//fmt.Println("液路消毒方式", fluid_path)

	disinfectant := int64(dataBody["disinfectant"].(float64))
	//fmt.Println("消毒液", disinfectant)

	disinfection_status := int64(dataBody["disinfection_status"].(float64))
	//fmt.Println("消毒状态", disinfection_status)

	disinfection_residue := int64(dataBody["disinfection_residue"].(float64))
	//fmt.Println("消毒液残留", disinfection_residue)

	longtime := dataBody["longtime"].(string)
	//fmt.Println("消毒时长", longtime)

	start_DateStr := dataBody["starttime"].(string)
	//fmt.Println("出发时间", startDateStr)
	start_Date, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", start_DateStr)
	//fmt.Println("触发事件", start_Date.Unix())

	end_DateStr := dataBody["endtime"].(string)
	//fmt.Println("出发时间", startDateStr)
	end_Date, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", end_DateStr)
	//fmt.Println("触发事件", end_Date.Unix())

	dialysis_checked := int64(dataBody["dialysis_checked"].(float64))
	//fmt.Println("更换", dialysis_checked)

	dialysis_name := int64(dataBody["dialysis_name"].(float64))
	//fmt.Println("名称", dialysis_name)

	norms := dataBody["norms"].(string)
	//fmt.Println("规格", norms)

	dialysis_concentration := int64(dataBody["dialysis_concentration"].(float64))
	//fmt.Println("浓度", dialysis_concentration)

	germ_checked := int64(dataBody["germ_checked"].(float64))
	//fmt.Println("更换", germ_checked)

	germ_name := int64(dataBody["germ_name"].(float64))
	//fmt.Println("名称", germ_name)

	germ_number := dataBody["germ_number"].(string)
	//fmt.Println("数量", germ_number)

	clean := int64(dataBody["clean"].(float64))
	//fmt.Println("清洁", clean)

	sign_name := int64(dataBody["sign_name"].(float64))
	//fmt.Println("签名", sign_name)

	information, errinfor := service.GetInformation(eid, startdate, orgid)
	fmt.Print("errinfor", errinfor)
	fmt.Print("information", information)
	if errinfor == gorm.ErrRecordNotFound {
		infor := models.DeviceInformation{
			Date:  startdate,
			Class: classtype,
			//	Zone:                  zone,
			BedNumber:             bednumber,
			PatientId:             patient_time,
			Contagion:             contagion,
			DialysisMode:          dialysis_mode,
			StartTime:             startDate.Unix(),
			EndTime:               endDate.Unix(),
			DialysisHour:          dialysis_time,
			Hyperfiltratio:        hyperfiletration,
			WeightLoss:            weight_loss,
			WarningValue:          warining_value,
			UserTotal:             user_total,
			Move:                  run,
			FailureStage:          failure_stage,
			FaultDescription:      falult_desciription,
			CodeInformation:       code_information,
			DisinfectantType:      disinfectant_type,
			DisinfectType:         disinfect_type,
			Disinfection:          disinfection,
			MachineRun:            machine_run,
			FluidPath:             fluid_path,
			Disinfectant:          disinfectant,
			DisinfectionStatus:    disinfection_status,
			DisinfectionResidue:   disinfection_residue,
			LongTime:              longtime,
			DisinfecStartime:      start_Date.Unix(),
			DisinfecEndtime:       end_Date.Unix(),
			DialysisChecked:       dialysis_checked,
			DialysisName:          dialysis_name,
			Norms:                 norms,
			DialysisConcentration: dialysis_concentration,
			GermChecked:           germ_checked,
			GermName:              germ_name,
			GermNumber:            germ_number,
			Clean:                 clean,
			SignName:              sign_name,
			Ctime:                 time.Now().Unix(),
			Status:                1,
			UserOrgId:             orgid,
			EquimentId:            eid,
			Bed:                   number.Number,
			Stime:                 startdate,
		}
		err = service.CreateUserInformation(&infor)
		fmt.Println("使用登记错误是什么", err)
		this.ServeSuccessJSON(map[string]interface{}{
			"information": infor,
		})
	} else if errinfor == nil {
		infor := models.DeviceInformation{
			Date:                  startdate,
			Class:                 classtype,
			Zone:                  zone,
			BedNumber:             bednumber,
			PatientId:             patient_time,
			Contagion:             contagion,
			DialysisMode:          dialysis_mode,
			StartTime:             startDate.Unix(),
			EndTime:               endDate.Unix(),
			DialysisHour:          dialysis_time,
			Hyperfiltratio:        hyperfiletration,
			WeightLoss:            weight_loss,
			WarningValue:          warining_value,
			UserTotal:             user_total,
			Move:                  run,
			FailureStage:          failure_stage,
			FaultDescription:      falult_desciription,
			CodeInformation:       code_information,
			DisinfectantType:      disinfectant_type,
			DisinfectType:         disinfect_type,
			Disinfection:          disinfection,
			MachineRun:            machine_run,
			FluidPath:             fluid_path,
			Disinfectant:          disinfectant,
			DisinfectionStatus:    disinfection_status,
			DisinfectionResidue:   disinfection_residue,
			LongTime:              longtime,
			DisinfecStartime:      start_Date.Unix(),
			DisinfecEndtime:       end_Date.Unix(),
			DialysisChecked:       dialysis_checked,
			DialysisName:          dialysis_name,
			Norms:                 norms,
			DialysisConcentration: dialysis_concentration,
			GermChecked:           germ_checked,
			GermName:              germ_name,
			GermNumber:            germ_number,
			Clean:                 clean,
			SignName:              sign_name,
			Ctime:                 time.Now().Unix(),
			Status:                1,
			UserOrgId:             orgid,
			EquimentId:            eid,
			Bed:                   number.Number,
		}
		informationdata, err := service.GetLastInformationdata(eid, startdate, orgid)
		fmt.Print("informationdata----", informationdata.ID)
		errors := service.UpadateForm(informationdata.ID, orgid, &infor)
		//fmt.Print("报错", errors)
		if errors != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
			return
		}
		this.ServeSuccessJSON(map[string]interface{}{
			"infor": infor,
		})
	} else {

	}
}

func (this *MachineApiController) ChangePatient() {
	adminUser := this.GetAdminUserInfo()
	orgid := adminUser.CurrentOrgId
	fmt.Println("机构id", orgid)
	equitid, _ := this.GetInt64("equitid")
	fmt.Println("equitid", equitid)
	id, _ := this.GetInt64("id")
	fmt.Println("id", id)
}

func (this *MachineApiController) GetRegisterInfo() {
	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)
	adminUser := this.GetAdminUserInfo()
	orgid := adminUser.CurrentOrgId
	appid := adminUser.CurrentAppId
	id, _ := this.GetInt64("id")
	//fmt.Println("设备id", id)
	information, err := service.GetRegisterInfo(orgid, id, timenow)
	fmt.Print("错误", err)
	role, err := service.GetSignName(information.SignName, orgid, appid)
	dislysis, _ := service.GetDialysisTime(timenow, information.PatientId, orgid)

	//if err != nil {
	//	//	this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
	//	//	return
	//	//}
	this.ServeSuccessJSON(map[string]interface{}{
		"information": information,
		"role":        role,
		"dislysis":    dislysis,
	})
}

func (this *MachineApiController) GetInformationData() {
	limit, _ := this.GetInt64("limit")
	//fmt.Println("limit2", limit)
	page, _ := this.GetInt64("page")
	//fmt.Println("page", page)
	adminUser := this.GetAdminUserInfo()
	orgId := adminUser.CurrentOrgId
	information, total, err := service.GetInformationData(limit, page, orgId)

	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"information": information,
		"total":       total,
	})
}
func (this *MachineApiController) GetOrgName() {
	adminUser := this.GetAdminUserInfo()
	orgid := adminUser.CurrentOrgId
	org, err := service.GetOrgName(orgid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"org": org,
	})
}

func (this *MachineApiController) SaveBacteria() {
	id, _ := this.GetInt64("id")

	addmacher, _ := service.GetBedId(id)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	date := dataBody["date"].(string)

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	state_date := theTime.Unix()

	specimen := int64(dataBody["specimen"].(float64))

	cona := dataBody["concentrate_noa"].(string)

	conb := dataBody["concentrate_nob"].(string)

	samplingLoactiona := int64(dataBody["sampling_locationa"].(float64))

	detectionUnit := dataBody["detection_unit"].(string)

	sampler := int64(dataBody["sampler"].(float64))

	reportDate := dataBody["reporting_date"].(string)
	reportTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDate+" 00:00:00", loc)
	repDate := reportTime.Unix()

	detectionResult := dataBody["detection_result"].(string)
	sort := dataBody["sort"].(string)

	examination := dataBody["pass_examination"].(string)
	pass_examination, err := strconv.ParseInt(examination, 10, 64)
	modifications := int64(dataBody["modifications"].(float64))
	culture := models.DeviceCulture{
		BedId:             addmacher.BedId,
		SpelingDate:       state_date,
		Specimen:          specimen,
		ConcentrateNoa:    cona,
		ConcentrateNob:    conb,
		SamplingLocationa: samplingLoactiona,
		DetectionUnit:     detectionUnit,
		Sampler:           sampler,
		ReportingDate:     repDate,
		DetectionResult:   detectionResult,
		Ctime:             time.Now().Unix(),
		Status:            1,
		UserOrgId:         orgid,
		EquitmentId:       id,
		Bed:               addmacher.BedNumber,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}

	err = service.CreateCulture(&culture)
	//fmt.Println("创建细菌检测", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "添加失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"culture": culture,
	})
}

func (this *MachineApiController) SaveLinconmycin() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	id, _ := this.GetInt64("id")

	addmacher, _ := service.GetBedId(id)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	date := dataBody["sampling_date"].(string)
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	samp_date := theTime.Unix()
	specimen := int64(dataBody["specimenb"].(float64))

	cona := dataBody["concentrate_noc"].(string)

	conb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	detectionUnit := dataBody["detection_unit"].(string)

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDate := dataBody["reporting_dateb"].(string)
	reportTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDate+" 00:00:00", loc)
	repDate := reportTime.Unix()

	detectionResult := dataBody["detection_resultb"].(string)

	sort := dataBody["sort"].(string)

	modifications := int64(dataBody["modifications"].(float64))
	examination := dataBody["pass_examination"].(string)
	pass_examination, _ := strconv.ParseInt(examination, 10, 64)
	dialysate := models.DeviceDialysate{
		SamplingDate:      samp_date,
		Specimenb:         specimen,
		ConcentrateNoc:    cona,
		ConcentratebNod:   conb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    repDate,
		DetectionResultb:  detectionResult,
		Ctime:             time.Now().Unix(),
		Status:            1,
		UserOrgId:         orgid,
		BedId:             addmacher.BedId,
		EquitmentId:       id,
		Bed:               addmacher.BedNumber,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.CreateDialysate(&dialysate)
	//fmt.Println("报错", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "添加失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"dialysate": dialysate,
	})
}

func (this *MachineApiController) SaveQualityControl() {
	id, _ := this.GetInt64("id")

	addmacher, _ := service.GetBedId(id)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")

	// 透析液离子浓度检测
	dateb := dataBody["dateb"].(string)
	inLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", dateb+" 00:00:00", loc)
	dateB := inLocation.Unix()

	samplerc := int64(dataBody["samplerc"].(float64))

	concentratenof := dataBody["concentrate_nof"].(string)

	concentrateonog := dataBody["concentrate_nog"].(string)

	dateReportc := dataBody["date_reportc"].(string)
	parseInLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", dateReportc+" 00:00:00", loc)
	datec := parseInLocation.Unix()

	actualNa := dataBody["actual_na"].(string)

	actualPna := dataBody["actual_pna"].(string)

	actualK := dataBody["actual_k"].(string)

	actualCa := dataBody["actual_ca"].(string)

	actualCi := dataBody["actual_ci"].(string)

	actualHco := dataBody["actual_hco"].(string)

	actualMg := dataBody["actual_mg"].(string)

	actulaPH := dataBody["actual_ph"].(string)

	remakes := dataBody["remakes"].(string)

	detectionUnit := dataBody["detection_unit"].(string)

	sort := dataBody["sort"].(string)

	modifications := int64(dataBody["modifications"].(float64))
	examination := dataBody["pass_examination"].(string)
	pass_examination, _ := strconv.ParseInt(examination, 10, 64)

	ion := models.DeviceIon{
		SamplingDate:    dateB,
		Samplerc:        samplerc,
		DetectionUnit:   detectionUnit,
		ConcentrateNof:  concentratenof,
		ConcentrateNog:  concentrateonog,
		DateReportc:     datec,
		ActualNa:        actualNa,
		ActualPna:       actualPna,
		ActualK:         actualK,
		ActualCa:        actualCa,
		ActualCi:        actualCi,
		ActualHco:       actualHco,
		ActualMg:        actualMg,
		ActualPh:        actulaPH,
		Remakes:         remakes,
		EquitmentId:     id,
		Status:          1,
		UserOrgId:       orgid,
		Ctime:           time.Now().Unix(),
		BedId:           addmacher.BedId,
		Bed:             addmacher.BedNumber,
		Sort:            sort,
		PassExamination: pass_examination,
		Modifications:   modifications,
	}

	createIon := service.CreateIon(&ion)
	fmt.Println("报错", createIon)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "添加失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"ion": ion,
	})
}

func (this *MachineApiController) GetAllQulityInfo() {
	adminUser := this.GetAdminUserInfo()
	orgID := adminUser.CurrentOrgId
	cultures, err := service.GetAllCulture(orgID)
	dialysate, _ := service.GetAllDialysate(orgID)
	ions, _ := service.GetAllDeviceIon(orgID)

	oxygenates, _ := service.GetAllDeviceOxygenates(orgID)
	water, err := service.GetAllHadWater(orgID)
	deviceWater, err := service.GetDeviceWater(orgID)
	devicePh, err := service.GetDevicePH(orgID)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "添加失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"cultures":    cultures,
		"dialysate":   dialysate,
		"ions":        ions,
		"oxygenates":  oxygenates,
		"hadwater":    water,
		"deviceWater": deviceWater,
		"devicePh":    devicePh,
	})
}

func (this *MachineApiController) EditCulture() {
	id, _ := this.GetInt64("id")
	//fmt.Println("id", id)
	userid, _ := this.GetInt64("userid")
	//fmt.Println("userid", userid)
	role, _ := service.GetSampler(userid)
	culture, err := service.GetCultureById(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"culture": culture,
		"role":    role,
	})
}

func (this *MachineApiController) UpdateCulture() {
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	id := int64(dataBody["id"].(float64))

	date := dataBody["date"].(string)

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	state_date := theTime.Unix()

	specimen := int64(dataBody["specimen"].(float64))

	cona := dataBody["concentrate_noa"].(string)

	conb := dataBody["concentrate_nob"].(string)

	samplingLoactiona := int64(dataBody["sampling_locationa"].(float64))

	detectionUnit := dataBody["detection_unit"].(string)

	sampler := int64(dataBody["sampler"].(float64))

	reportDate := dataBody["reporting_date"].(string)
	reportTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDate+" 00:00:00", loc)
	repDate := reportTime.Unix()

	detectionResult := dataBody["detection_result"].(string)

	sort := dataBody["sort"].(string)
	pass_examination := int64(dataBody["pass_examination"].(float64))
	modifications := int64(dataBody["modifications"].(float64))
	adminUser := this.GetAdminUserInfo()
	orgId := adminUser.CurrentOrgId
	culture := models.DeviceCulture{
		SpelingDate:       state_date,
		Specimen:          specimen,
		ConcentrateNoa:    cona,
		ConcentrateNob:    conb,
		SamplingLocationa: samplingLoactiona,
		DetectionUnit:     detectionUnit,
		Sampler:           sampler,
		ReportingDate:     repDate,
		DetectionResult:   detectionResult,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.UpdateCulture(id, orgId, &culture)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"culture": culture,
	})
}

func (this *MachineApiController) DeleteCultrue() {
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	if err != nil {
		utils.ErrorLog(err.Error())
		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
		return
	}

	idsInters := dataBody["ids"].([]interface{})
	if len(idsInters) == 0 {
		if err != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:（没有选择会员）")
			return
		}
	}

	ids := make([]int64, 0)
	for _, idsInter := range idsInters {
		id := int64(idsInter.(float64))
		ids = append(ids, id)
	}
	fmt.Println("ids", ids)
	err = service.DeleteCultrue(OrgID, ids)
	fmt.Println("err", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return

}

func (this *MachineApiController) EditDialystate() {
	id, _ := this.GetInt64("id")
	fmt.Println("id是什么", id)
	dialysate, err := service.GetDialystate(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"dialysate": dialysate,
	})

}

func (this *MachineApiController) Updatedialystate() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)
	samplingDate := dataBody["sampling_date"].(string)
	sampdate, _ := time.ParseInLocation(timeLayout+" 15:04:05", samplingDate+" 00:00:00", loc)
	samp_date := sampdate.Unix()
	fmt.Println("取样日期", samp_date)
	specimentb := int64(dataBody["specimenb"].(float64))
	fmt.Println("取样标本", specimentb)
	concentratec := dataBody["concentrate_noc"].(string)
	fmt.Println("A浓缩液批号", concentratec)
	concentraeb := dataBody["concentrateb_nod"].(string)
	fmt.Println("B浓缩", concentraeb)
	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))
	fmt.Println("采样部位", samplinglocationb)
	samplerb := int64(dataBody["samplerb"].(float64))
	fmt.Println("取样者", samplerb)
	reportDateb := dataBody["reporting_dateb"].(string)
	//fmt.Println("日期", reportDateb)
	location, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDateb+" 00:00:00", loc)
	report_date := location.Unix()
	fmt.Println("出报告2日期", report_date)
	detectionResultb := dataBody["detection_resultb"].(string)
	fmt.Println("检测结果", detectionResultb)
	detectionUnit := dataBody["detection_unit"].(string)
	fmt.Println("检测单位", detectionUnit)

	sort := dataBody["sort"].(string)
	pass_examination := int64(dataBody["pass_examination"].(float64))
	modifications := int64(dataBody["modifications"].(float64))
	adminUser := this.GetAdminUserInfo()
	orgid := adminUser.CurrentOrgId
	dialysate := models.DeviceDialysate{
		SamplingDate:      samp_date,
		Specimenb:         specimentb,
		ConcentrateNoc:    concentratec,
		ConcentratebNod:   concentraeb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    report_date,
		DetectionResultb:  detectionResultb,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.Updatedialystate(id, orgid, &dialysate)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"dialysate": dialysate,
	})
}

func (this *MachineApiController) DeleteDialystate() {
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	if err != nil {
		utils.ErrorLog(err.Error())
		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
		return
	}

	idsInters := dataBody["ids"].([]interface{})
	if len(idsInters) == 0 {
		if err != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:（没有选择会员）")
			return
		}
	}

	ids := make([]int64, 0)
	for _, idsInter := range idsInters {
		id := int64(idsInter.(float64))
		ids = append(ids, id)
	}
	fmt.Println("ids", ids)
	err = service.DeleteDialystate(OrgID, ids)
	fmt.Println("err", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) Edition() {
	id, _ := this.GetInt64("id")
	fmt.Println("id", id)
	ion, err := service.GetIon(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"ion": ion,
	})
}

func (this *MachineApiController) UpdateIon() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)
	dateb := dataBody["dateb"].(string)
	inLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", dateb+" 00:00:00", loc)
	dateB := inLocation.Unix()

	samplerc := int64(dataBody["samplerc"].(float64))

	concentratenof := dataBody["concentrate_nof"].(string)

	concentrateonog := dataBody["concentrate_nog"].(string)

	dateReportc := dataBody["date_reportc"].(string)
	parseInLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", dateReportc+" 00:00:00", loc)
	datec := parseInLocation.Unix()

	actualNa := dataBody["actual_na"].(string)

	actualPna := dataBody["actual_pna"].(string)

	actualK := dataBody["actual_k"].(string)

	actualCa := dataBody["actual_ca"].(string)

	actualCi := dataBody["actual_ci"].(string)

	actualHco := dataBody["actual_hco"].(string)

	actualMg := dataBody["actual_mg"].(string)

	actulaPH := dataBody["actual_ph"].(string)

	remakes := dataBody["remakes"].(string)

	detectionUnit := dataBody["detection_unit"].(string)

	sort := dataBody["sort"].(string)
	pass_examination := int64(dataBody["pass_examination"].(float64))
	modifications := int64(dataBody["modifications"].(float64))
	ion := models.DeviceIon{
		SamplingDate:    dateB,
		Samplerc:        samplerc,
		DetectionUnit:   detectionUnit,
		ConcentrateNof:  concentratenof,
		ConcentrateNog:  concentrateonog,
		DateReportc:     datec,
		ActualNa:        actualNa,
		ActualPna:       actualPna,
		ActualK:         actualK,
		ActualCa:        actualCa,
		ActualCi:        actualCi,
		ActualHco:       actualHco,
		ActualMg:        actualMg,
		ActualPh:        actulaPH,
		Remakes:         remakes,
		Sort:            sort,
		PassExamination: pass_examination,
		Modifications:   modifications,
	}
	adminUser := this.GetAdminUserInfo()
	orgId := adminUser.CurrentOrgId
	err = service.UpdateIon(id, orgId, &ion)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"ion": ion,
	})
}

func (this *MachineApiController) DeleteIon() {
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	if err != nil {
		utils.ErrorLog(err.Error())
		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
		return
	}

	idsInters := dataBody["ids"].([]interface{})
	if len(idsInters) == 0 {
		if err != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:（没有选择会员）")
			return
		}
	}

	ids := make([]int64, 0)
	for _, idsInter := range idsInters {
		id := int64(idsInter.(float64))
		ids = append(ids, id)
	}
	fmt.Println("ids", ids)
	err = service.DeleteIon(OrgID, ids)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) GetQuery() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	fmt.Println("orgid", OrgID)
	bedid, _ := this.GetInt64("bedid")
	fmt.Println("bedid", bedid)
	startime := this.GetString("startime")
	fmt.Println("starttime", startime)
	inLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", startime+" 00:00:00", loc)
	start := inLocation.Unix()
	fmt.Println("start", start)
	endtime := this.GetString("endtime")
	fmt.Println("endtime", endtime)
	endLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", endtime+" 00:00:00", loc)
	end := endLocation.Unix()
	fmt.Println("end", end)
	cultures, err := service.GetCultureData(bedid, start, end, OrgID)
	fmt.Print(err)
	dialysate, err := service.GetDialysateData(bedid, start, end, OrgID)
	ions, err := service.GetDeviceIonData(bedid, start, end, OrgID)

	oxygenates, err := service.GetOxygenates(bedid, start, end, OrgID)
	hadwater, err := service.GetHardWater(bedid, start, end, OrgID)
	water, err := service.GetWater(bedid, start, end, OrgID)
	deviceph, err := service.GetDevicePh(bedid, start, end, OrgID)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"cultures":   cultures,
		"dialysate":  dialysate,
		"ions":       ions,
		"oxygenates": oxygenates,
		"hadwater":   hadwater,
		"water":      water,
		"deviceph":   deviceph,
	})
}

func (this *MachineApiController) SaveRepair() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	adminUserInfo := this.GetAdminUserInfo()
	id, _ := this.GetInt64("id")
	fmt.Println("id", id)
	addmacher, _ := service.GetBedId(id)
	OrgID := adminUserInfo.CurrentOrgId
	fmt.Println("orgid", OrgID)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	gua_date := dataBody["guarantee_date"].(string)
	fmt.Println("保修日期", gua_date)
	inLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", gua_date+" 00:00:00", loc)
	guaDate := inLocation.Unix()
	fmt.Println("保修日期", guaDate)

	startDateStr := dataBody["start_time"].(string)
	fmt.Println("出发时间", startDateStr)
	startDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", startDateStr)
	fmt.Println("触发事件", startDate.Unix())

	arriveDateStr := dataBody["arrive_time"].(string)
	fmt.Println("到达时间", arriveDateStr)
	arriveDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", arriveDateStr)
	fmt.Println("到达时间", arriveDate.Unix())

	finishDateStr := dataBody["finish_time"].(string)
	fmt.Println("完成时间", finishDateStr)
	finishDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", finishDateStr)
	fmt.Println("完成时间", finishDate.Unix())

	totaldistance := dataBody["total_distance"].(string)
	fmt.Println("总公里输", totaldistance)

	failurestate := int64(dataBody["failure_stage"].(float64))
	fmt.Println("故事范式阶段", failurestate)

	codeInformation := dataBody["code_information"].(string)
	fmt.Println("故事提示信息及代码", codeInformation)

	faultdescription := dataBody["fault_description"].(string)
	fmt.Println("故障描述", faultdescription)

	causeAnalysis := dataBody["cause_analysis"].(string)
	fmt.Println("原因分析", causeAnalysis)

	treatmentprocess := dataBody["treatment_process"].(string)
	fmt.Println("处理过程", treatmentprocess)

	images := dataBody["images"].(string)
	fmt.Println("上传图片", images)

	exclude := int64(dataBody["exclude"].(float64))
	fmt.Println("故障是否排除", exclude)

	reason := dataBody["reason"].(string)
	fmt.Println("原因", reason)

	imageName := dataBody["imageName"].(string)

	repair := models.DeviceRepair{
		BedId:            addmacher.BedId,
		EquitmentId:      id,
		GuaranteeDate:    guaDate,
		StartTime:        startDate.Unix(),
		ArriveTime:       arriveDate.Unix(),
		FinishTime:       finishDate.Unix(),
		TotalDistance:    totaldistance,
		FailureStage:     failurestate,
		FaultDescription: faultdescription,
		CauseAnalysis:    causeAnalysis,
		TreatmentProcess: treatmentprocess,
		Images:           images,
		Exclude:          exclude,
		Reason:           reason,
		Status:           1,
		UserOrgId:        OrgID,
		Ctime:            time.Now().Unix(),
		CodeInformation:  codeInformation,
		ImageName:        imageName,
	}
	err = service.CreateRepair(&repair)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"repair": repair,
	})
}

func (this *MachineApiController) GetAllRepair() {
	limit, _ := this.GetInt64("limit")
	page, _ := this.GetInt64("page")
	adminUser := this.GetAdminUserInfo()
	orgID := adminUser.CurrentOrgId
	repair, total, err := service.GetAllRepair(orgID, limit, page)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"repair": repair,
		"total":  total,
	})
}

func (this *MachineApiController) EditRepair() {
	id, _ := this.GetInt64("id")
	fmt.Println("id", id)
	repair, err := service.EditRepair(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"repair": repair,
	})
}

func (this *MachineApiController) UpdateRepair() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	fmt.Println("orgid", OrgID)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	id := int64(dataBody["id"].(float64))
	gua_date := dataBody["guarantee_date"].(string)
	fmt.Println("保修日期", gua_date)
	inLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", gua_date+" 00:00:00", loc)
	guaDate := inLocation.Unix()
	fmt.Println("保修日期", guaDate)

	startDateStr := dataBody["start_time"].(string)
	fmt.Println("出发时间", startDateStr)
	startDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", startDateStr)
	fmt.Println("触发事件", startDate.Unix())

	arriveDateStr := dataBody["arrive_time"].(string)
	fmt.Println("到达时间", arriveDateStr)
	arriveDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", arriveDateStr)
	fmt.Println("到达时间", arriveDate.Unix())

	finishDateStr := dataBody["finish_time"].(string)
	fmt.Println("完成时间", finishDateStr)
	finishDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", finishDateStr)
	fmt.Println("完成时间", finishDate.Unix())

	totaldistance := dataBody["total_distance"].(string)
	fmt.Println("总公里输", totaldistance)

	failurestate := int64(dataBody["failure_stage"].(float64))
	fmt.Println("故事范式阶段", failurestate)

	codeInformation := dataBody["code_information"].(string)
	fmt.Println("故事提示信息及代码", codeInformation)

	faultdescription := dataBody["fault_description"].(string)
	fmt.Println("故障描述", faultdescription)

	causeAnalysis := dataBody["cause_analysis"].(string)
	fmt.Println("原因分析", causeAnalysis)

	treatmentprocess := dataBody["treatment_process"].(string)
	fmt.Println("处理过程", treatmentprocess)

	images := dataBody["images"].(string)
	fmt.Println("上传图片", images)

	exclude := int64(dataBody["exclude"].(float64))
	fmt.Println("故障是否排除", exclude)

	reason := dataBody["reason"].(string)
	fmt.Println("原因", reason)

	imageName := dataBody["image_name"].(string)
	deviceRepair := models.DeviceRepair{
		GuaranteeDate:    guaDate,
		StartTime:        startDate.Unix(),
		ArriveTime:       arriveDate.Unix(),
		FinishTime:       finishDate.Unix(),
		TotalDistance:    totaldistance,
		FailureStage:     failurestate,
		FaultDescription: faultdescription,
		CauseAnalysis:    causeAnalysis,
		TreatmentProcess: treatmentprocess,
		Images:           images,
		Exclude:          exclude,
		Reason:           reason,
		CodeInformation:  codeInformation,
		ImageName:        imageName,
	}
	err = service.UpdateRepair(id, OrgID, &deviceRepair)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"repair": deviceRepair,
	})
}

func (this *MachineApiController) DeleteRepair() {
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	if err != nil {
		utils.ErrorLog(err.Error())
		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
		return
	}

	idsInters := dataBody["ids"].([]interface{})
	if len(idsInters) == 0 {
		if err != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:（没有选择会员）")
			return
		}
	}

	ids := make([]int64, 0)
	for _, idsInter := range idsInters {
		id := int64(idsInter.(float64))
		ids = append(ids, id)
	}
	fmt.Println("ids", ids)
	err = service.DeleteRepair(OrgID, ids)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) GetRepair() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	fmt.Println("orgid", OrgID)
	bedid, _ := this.GetInt64("bedid")
	fmt.Println("bedid", bedid)
	startime := this.GetString("startime")
	fmt.Println("starttime", startime)
	inLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", startime+" 00:00:00", loc)
	start := inLocation.Unix()
	fmt.Println("start", start)
	endtime := this.GetString("endtime")
	fmt.Println("endtime", endtime)
	endLocation, _ := time.ParseInLocation(timeLayout+" 15:04:05", endtime+" 00:00:00", loc)
	end := endLocation.Unix()
	fmt.Println("end", end)
	repair, err := service.GetRepair(bedid, start, end, OrgID)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"repair": repair,
	})
}

func (this *MachineApiController) EditUser() {
	adminUser := this.GetAdminUserInfo()
	orgId := adminUser.CurrentOrgId
	id, _ := this.GetInt64("id")
	fmt.Println("id", id)
	patientid, _ := this.GetInt64("patientid")
	device, err := service.GetUserInformation(id)
	//获取初次使用记录
	macher, err := service.GetUserTotalByMacher(device.EquimentId)
	count, err := service.GetUserTotalCount(orgId, device.BedNumber)
	patients, err := service.GetPatientInfoMation(patientid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"device":   device,
		"patients": patients,
		"count":    count,
		"macher":   macher,
	})
}

func (this *MachineApiController) DeleteForm() {
	adminUserInfo := this.GetAdminUserInfo()
	OrgID := adminUserInfo.CurrentOrgId
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	if err != nil {
		utils.ErrorLog(err.Error())
		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
		return
	}

	idsInters := dataBody["ids"].([]interface{})
	if len(idsInters) == 0 {
		if err != nil {
			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:（没有选择会员）")
			return
		}
	}

	ids := make([]int64, 0)
	for _, idsInter := range idsInters {
		id := int64(idsInter.(float64))
		ids = append(ids, id)
	}
	fmt.Println("ids", ids)
	err = service.DeleteForm(OrgID, ids)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败:（"+err.Error()+"）")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) UpdateForm() {
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("错误是", err)
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	date := dataBody["spling_date"].(string)
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	startdate := theTime.Unix()
	fmt.Println("日期", startdate)

	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)
	classtype := int64(dataBody["classtype"].(float64))
	fmt.Println("班次", classtype)
	zone := int64(dataBody["zone"].(float64))
	fmt.Println("分区", zone)
	bednumber := int64(dataBody["bed_number"].(float64))
	fmt.Println("床位号", bednumber)
	number, _ := service.GetNumbers(bednumber, orgid)
	patient_id := int64(dataBody["patient_id"].(float64))
	fmt.Println("患者", patient_id)
	contagion := dataBody["contagion"].(string)
	fmt.Println("传染病", contagion)
	dialysis_mode := int64(dataBody["dialysis_mode"].(float64))
	fmt.Println("透析方式", dialysis_mode)

	startDateStr := dataBody["start_time"].(string)
	fmt.Println("上机时间", startDateStr)
	startDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", startDateStr)
	fmt.Println("上机时间", startDate.Unix())

	endDateStr := dataBody["end_time"].(string)
	fmt.Println("上机时间", startDateStr)
	endDate, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", endDateStr)
	fmt.Println("上机时间", endDate.Unix())

	dialysis_time := dataBody["dialysis_time"].(string)
	fmt.Println("透析时长", dialysis_time)

	hyperfiletration := dataBody["hyperfiltratio"].(float64)
	fmt.Println("实际超滤量", hyperfiletration)
	weight_loss := dataBody["weight_loss"].(float64)
	fmt.Println("体重减少", weight_loss)
	warining_value := dataBody["warning_value"].(string)
	fmt.Println("预警值", warining_value)
	//user_total := int64(dataBody["user_total"].(float64))
	user_total := dataBody["user_total"].(string)
	fmt.Println("使用次数", user_total)
	run := int64(dataBody["run"].(float64))
	fmt.Println("运行", run)
	failure_stage := int64(dataBody["failure_stage"].(float64))
	fmt.Println("故事发生阶段", failure_stage)
	falult_desciription := dataBody["fault_description"].(string)
	fmt.Println("故障描述", falult_desciription)
	code_information := dataBody["code_information"].(string)
	fmt.Println("故障提示及代码", code_information)
	//机器消毒
	disinfect_type := int64(dataBody["disinfect_type"].(float64))
	fmt.Println("消毒方式", disinfect_type)
	disinfectant_type := int64(dataBody["disinfectant_type"].(float64))
	fmt.Println("消毒液", disinfectant_type)
	disinfection := int64(dataBody["disinfection"].(float64))
	fmt.Println("消毒状态", disinfection)
	machine_run := int64(dataBody["machine_run"].(float64))
	fmt.Println("运行", machine_run)
	//液路
	fluid_path := int64(dataBody["fluid_path"].(float64))
	fmt.Println("液路消毒方式", fluid_path)
	disinfectant := int64(dataBody["disinfectant"].(float64))
	fmt.Println("消毒液", disinfectant)
	disinfection_status := int64(dataBody["disinfection_status"].(float64))
	fmt.Println("消毒状态", disinfection_status)
	disinfection_residue := int64(dataBody["disinfection_residue"].(float64))
	fmt.Println("消毒液残留", disinfection_residue)
	longtime := dataBody["longtime"].(string)
	fmt.Println("消毒时长", longtime)

	starttime := dataBody["starttime"].(string)
	disstarttime, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", starttime)
	distartime := disstarttime.Unix()
	if distartime < 0 {
		distartime = 0
	}
	//fmt.Println("开始消毒时间====", distartime)

	entime := dataBody["endtime"].(string)
	disendtime, _ := utils.ParseTimeStringToTime("2006-01-02 15:04", entime)
	diendtime := disendtime.Unix()
	fmt.Println("结束消毒时间", diendtime)

	if diendtime < 0 {
		diendtime = 0
	}

	dialysis_checked := int64(dataBody["dialysis_checked"].(float64))
	//fmt.Println("更换", dialysis_checked)
	dialysis_name := int64(dataBody["dialysis_name"].(float64))
	fmt.Println("名称", dialysis_name)
	norms := dataBody["norms"].(string)
	fmt.Println("规格", norms)
	dialysis_concentration := int64(dataBody["dialysis_concentration"].(float64))
	fmt.Println("浓度", dialysis_concentration)
	germ_checked := int64(dataBody["germ_checked"].(float64))
	fmt.Println("更换", germ_checked)
	germ_name := int64(dataBody["germ_name"].(float64))
	fmt.Println("名称", germ_name)
	//germ_number := int64(dataBody["germ_number"].(float64))
	germ_number := dataBody["germ_number"].(string)
	fmt.Println("数量", germ_number)
	clean := int64(dataBody["clean"].(float64))
	fmt.Println("清洁", clean)
	sign_name := int64(dataBody["sign_name"].(float64))
	fmt.Println("签名", sign_name)
	equitment_id := int64(dataBody["equiment_id"].(float64))
	fmt.Println("设备ID", equitment_id)

	addmacher := models.DeviceAddmacher{
		BedId: bednumber,
	}
	//更新床位号
	err = service.UpdateAddMacherBedID(equitment_id, orgid, &addmacher)
	fmt.Println("更新设备失败", err)
	//更新区号
	deviceNumber := models.DeviceNumber{
		ZoneID: zone,
	}
	err = service.UpdatedZoneID(bednumber, orgid, &deviceNumber)
	fmt.Println("更新区号失败", err)
	information := models.DeviceInformation{
		Date:                  startdate,
		Class:                 classtype,
		Zone:                  zone,
		BedNumber:             bednumber,
		Contagion:             contagion,
		DialysisMode:          dialysis_mode,
		StartTime:             startDate.Unix(),
		EndTime:               endDate.Unix(),
		DialysisHour:          dialysis_time,
		Hyperfiltratio:        hyperfiletration,
		WeightLoss:            weight_loss,
		WarningValue:          warining_value,
		UserTotal:             user_total,
		Move:                  run,
		FailureStage:          failure_stage,
		FaultDescription:      falult_desciription,
		CodeInformation:       code_information,
		DisinfectantType:      disinfectant_type,
		DisinfectType:         disinfect_type,
		Disinfection:          disinfection,
		MachineRun:            machine_run,
		FluidPath:             fluid_path,
		Disinfectant:          disinfectant,
		DisinfectionStatus:    disinfection_status,
		DisinfectionResidue:   disinfection_residue,
		LongTime:              longtime,
		DisinfecStartime:      distartime,
		DisinfecEndtime:       diendtime,
		DialysisChecked:       dialysis_checked,
		DialysisName:          dialysis_name,
		Norms:                 norms,
		DialysisConcentration: dialysis_concentration,
		GermChecked:           germ_checked,
		GermName:              germ_name,
		GermNumber:            germ_number,
		Clean:                 clean,
		SignName:              sign_name,
		Ctime:                 time.Now().Unix(),
		Status:                1,
		UserOrgId:             orgid,
		EquimentId:            id,
		Bed:                   number.Number,
		PatientId:             patient_id,
	}
	err = service.UpadateForm(id, orgid, &information)
	fmt.Println("报错", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "修改失败:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"information": information,
	})
}

func (this *MachineApiController) QueryInfo() {
	zone, _ := this.GetInt64("zone")
	fmt.Println("zone", zone)
	//bed, _ := this.GetInt64("bed")
	//fmt.Println("bed", bed)
	bed, _ := this.GetInt64("bed")
	startime := this.GetString("startime")
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", startime+" 00:00:00", loc)
	startdate := theTime.Unix()
	fmt.Println("开始时间", startdate)
	endtime := this.GetString("endtime")
	theTimes, _ := time.ParseInLocation(timeLayout+" 15:04:05", endtime+" 00:00:00", loc)
	endtimes := theTimes.Unix()
	fmt.Println("结束", endtimes)
	limit, _ := this.GetInt64("limit")
	fmt.Println("limit", limit)
	page, _ := this.GetInt64("page")
	fmt.Println("page", page)
	adminUser := this.GetAdminUserInfo()
	orgId := adminUser.CurrentOrgId
	infor, total, err := service.QueryInfo(bed, startdate, endtimes, orgId, limit, page)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"infor": infor,
		"total": total,
	})
}

func (this *MachineApiController) InsertAutoData() {
	id, _ := this.GetInt64("id")
	addmacher, _ := service.GetBedId(id)
	fmt.Println("床位号", addmacher.BedId)
	adminUser := this.GetAdminUserInfo()
	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)
	orgId := adminUser.CurrentOrgId
	dialysis, err := service.GetPatientID(id, orgId, timenow)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"dialysis": dialysis,
	})
}

func (this *MachineApiController) GetAllEquitType() {
	adminUserInfo := this.GetAdminUserInfo()
	orgID := adminUserInfo.CurrentOrgId
	fmt.Println("orgId", orgID)
	//equitname, err := service.GetAllEquitType(orgID)
	//name, err := service.GetAllEquitName(orgID)
	mode, err := service.GetAllMode(orgID)
	fmt.Print(err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"mode": mode,
	})
}

func (this *MachineApiController) GetUserForm() {
	id, _ := this.GetInt64("id")
	fmt.Println("id是什么", id)
	limit, _ := this.GetInt64("limit")
	fmt.Println("limit", limit)
	page, _ := this.GetInt64("page")
	fmt.Println("page", page)
	adminUserInfo := this.GetAdminUserInfo()
	orgID := adminUserInfo.CurrentOrgId
	fmt.Println("orgId", orgID)
	information, total, err := service.GetUserForm(id, orgID, limit, page)
	fmt.Print("information", information)
	fmt.Println("错误", err)
	addmacher, _ := service.GetBedNumber(id, orgID)
	fmt.Println("addmacher", addmacher)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"information": information,
		"total":       total,
		"addmacher":   addmacher,
	})
}

func (this *MachineApiController) GetBedForm() {
	adminUser := this.GetAdminUserInfo()
	orgId := adminUser.CurrentOrgId
	id, _ := this.GetInt64("id")
	fmt.Println("id", id)
	addmacher, err := service.GetZoneForm(id)
	bed, err := service.GetZoneId(addmacher.BedId, orgId)
	fmt.Println("bed--------------------", bed.ZoneID)
	number, err := service.GetBedForm(bed.ZoneID)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"addmacher": addmacher,
		"number":    number,
	})
}

func (this *MachineApiController) GetTotalCount() {
	info := this.GetAdminUserInfo()
	orgid := info.CurrentOrgId
	_, total, err := service.GetTotalCount(orgid)
	fmt.Print("------------------------------声优", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"total": total,
	})
}

func (this *MachineApiController) GetTotalNumber() {
	id, _ := this.GetInt64("id")
	fmt.Println("id", id)
	info := this.GetAdminUserInfo()
	orgId := info.CurrentOrgId
	total, _ := service.GetTotalNumber(id, orgId)
	//fmt.Println("total",total)
	//fmt.Println("====================真的",err)
	//if err != nil {
	//	this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
	//	return
	//}
	this.ServeSuccessJSON(map[string]interface{}{
		"total": total,
	})
}

func (this *MachineApiController) GetTimeWarning() {

	id, _ := this.GetInt64("id")
	fmt.Println("设备id", id)
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	//获取透析机消毒液更换的最后一次更换日期
	information, err := service.GetTimeWarning(id, orgId)
	//获取透析机消毒液细菌过滤器的最后一次更换日期
	deviceInformation, err := service.GetTimeLast(id, orgId)

	//获取空气滤网清洁最后一次更换日期
	clean, err := service.GetTimeLastData(id, orgId)

	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "查询:（"+err.Error()+"）")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"informations":      information,
		"deviceInformation": deviceInformation,
		"clean":             clean,
	})
}

func (this *MachineApiController) SaveManageinfoTwo() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	fmt.Println("机构id", orgid)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	serial_numbe := dataBody["serial_number"].(string)
	fmt.Println("序列号", serial_numbe)
	device_type := int64(dataBody["device_type"].(float64))
	fmt.Println("设备类型", device_type)
	//bed_number := dataBody["beds"].(string)
	//fmt.Println("床位号", bed_number)
	bed_number := this.GetString("beds")
	device_name := dataBody["device_name"].(string)
	fmt.Println("设备名称", device_name)
	manufacture_factory := dataBody["manufacture_factory"].(string)
	fmt.Println("生产厂家", manufacture_factory)
	service_manufacturer := dataBody["service_manufacturer"].(string)
	fmt.Println("维修厂家", service_manufacturer)
	unit_type := int64(dataBody["unit_type"].(float64))
	//unit_type := strconv.FormatInt(unittype, 10)
	//fmt.Println("设备型号", unit_type)
	use_section := dataBody["use_section"].(string)
	fmt.Println("使用科室", use_section)
	section_number := dataBody["section_number"].(string)
	fmt.Println("科室编号", section_number)
	buy_date := dataBody["buy_date"].(string)
	fmt.Println("buy_date", buy_date)
	timeLayout := "2006-01-02 15:04:05"
	theTime, err := utils.ParseTimeStringToTime(timeLayout, buy_date+" 00:00:00")
	buydate := theTime.Unix()
	int_num := *(*int)(unsafe.Pointer(&buydate))
	if int_num < 0 {
		buydate = 0
	}
	fmt.Println("购买日期", buydate)

	install_date := dataBody["install_date"].(string)
	toTime, err := utils.ParseTimeStringToTime(timeLayout, install_date+" 00:00:00")
	installdate := toTime.Unix()
	buy_num := *(*int)(unsafe.Pointer(&installdate))
	if buy_num < 0 {
		installdate = 0
	}
	fmt.Println("安装日期", installdate)

	start_date := dataBody["start_date"].(string)
	stringToTime, err := utils.ParseTimeStringToTime(timeLayout, start_date+" 00:00:00")
	startdate := stringToTime.Unix()
	start_num := *(*int)(unsafe.Pointer(&startdate))
	if start_num < 0 {
		startdate = 0
	}
	fmt.Println("启用日期", startdate)

	maintenance_engineer := dataBody["maintenance_engineer"].(string)
	fmt.Println("维修工程", maintenance_engineer)
	telephone := dataBody["telephone"].(string)
	fmt.Println("telephone", telephone)
	guarantee_date := dataBody["guarantee_date"].(string)
	fmt.Println("保修期限", guarantee_date)
	machine_status := int64(dataBody["machine_status"].(float64))
	fmt.Println("机器状态", machine_status)
	disinfection_mode := int64(dataBody["Disinfection_mode"].(float64))
	fmt.Println("消毒方式", disinfection_mode)
	remarks := dataBody["remarks"].(string)
	fmt.Println("备注", remarks)
	rubbish_date := dataBody["rubbish_date"].(string)
	timeStringToTime, err := utils.ParseTimeStringToTime(timeLayout, rubbish_date+" 00:00:00")
	rubbishdate := timeStringToTime.Unix()
	rubb_num := *(*int)(unsafe.Pointer(&rubbishdate))
	if rubb_num < 0 {
		rubbishdate = 0
	}
	fmt.Println("报废日期", rubbishdate)
	rubbish_reason := int64(dataBody["rubbish_reason"].(float64))
	fmt.Println("报废原因", rubbish_reason)
	user_year := dataBody["user_year"].(string)
	fmt.Println("使用年限", user_year)
	work_time := dataBody["work_time"].(string)
	fmt.Println("工作时长", work_time)
	revers := int64(dataBody["revers_mode"].(float64))
	fmt.Println("反渗模式", revers)

	addmacher := &models.DeviceAddmacher{
		SerialNumber:        serial_numbe,
		DeviceType:          device_type,
		BedNumber:           bed_number,
		DeviceName:          device_name,
		ManufactureFactory:  manufacture_factory,
		ServiceManufacturer: service_manufacturer,
		UnitType:            unit_type,
		UseSection:          use_section,
		SectionNumber:       section_number,
		BuyDate:             buydate,
		InstallDate:         installdate,
		StartDate:           startdate,
		MaintenaceEngineer:  maintenance_engineer,
		Telephone:           telephone,
		GuaranteeDate:       guarantee_date,
		MachineStatus:       machine_status,
		DisinfectionMode:    disinfection_mode,
		Remarks:             remarks,
		RubbishDate:         rubbishdate,
		RubbishReason:       rubbish_reason,
		UserYear:            user_year,
		WorkTime:            work_time,
		ReversMode:          revers,
		Status:              1,
		Ctime:               time.Now().Unix(),
		UserOrgId:           orgid,
	}
	err = service.CreateMacher(addmacher)
	fmt.Println("什么原因啊", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"addmacher": addmacher,
	})
}

func (this *MachineApiController) GetAllpatient() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	allpatient, err := service.GetAllpatient(orgid)
	fmt.Print(err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"allpatient": allpatient,
	})
}

func (this *MachineApiController) ChangeBed() {
	id, _ := this.GetInt64("id")
	fmt.Print("id", id)
	info := this.GetAdminUserInfo()
	orgId := info.CurrentOrgId
	bed, err := service.ChangeBed(id, orgId)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"bed": bed,
	})
}

func (this *MachineApiController) GetPatientDetail() {
	id, _ := this.GetInt64("id")
	fmt.Print("id", id)
	info := this.GetAdminUserInfo()
	orgid := info.CurrentOrgId
	patient, err := service.GetPatientDetail(id, orgid)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加设备失败")
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"patient": patient,
	})
}

func (this *MachineApiController) SaveReminder() {
	id, _ := this.GetInt64("id")
	fmt.Print("码字", id)
	info := this.GetAdminUserInfo()
	orgId := info.CurrentOrgId
	remander := models.DeviceRemander{
		IsRun:     id,
		Status:    1,
		UserOrgId: orgId,
		Ctime:     time.Now().Unix(),
	}
	data, errs := service.GetRemanderData(orgId)
	if errs == gorm.ErrRecordNotFound {
		err := service.CreateRemander(&remander).Error()
		fmt.Print(err)
	} else if errs == nil {
		deviceRemander := models.DeviceRemander{
			ID:        data.ID,
			IsRun:     id,
			Status:    1,
			UserOrgId: orgId,
			Mtime:     time.Now().Unix(),
		}
		err := service.UpdateRemander(&deviceRemander)
		if err != nil {
			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
			return
		}
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"id": id,
	})
	return
}

func (this *MachineApiController) GetRemanderData() {
	info := this.GetAdminUserInfo()
	orgid := info.CurrentOrgId
	data, err := service.GetRemanderData(orgid)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"remander": data,
	})
}

func (this *MachineApiController) OpenDelete() {
	id, _ := this.GetInt64("id")
	err := service.DeletePlan(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) DeleteUserLogin() {
	id, _ := this.GetInt64("id")
	err := service.DeleteUserLogin(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) DeleteCultrues() {
	id, _ := this.GetInt64("id")
	err := service.DeleteCultrues(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) DeleteDialystates() {
	id, _ := this.GetInt64("id")
	err := service.DeleteDialystates(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) Deleteions() {
	id, _ := this.GetInt64("id")
	err := service.DeleteIons(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) DeleteRepairs() {
	id, _ := this.GetInt64("id")
	err := service.DeleteRepairs(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) SaveMode() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	fmt.Println("机构id", orgid)
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	device_mode := dataBody["device_mode"].(string)
	mode := models.DeviceMode{
		DeviceMode: device_mode,
		UserOrgId:  orgid,
		Status:     1,
		Ctime:      time.Now().Unix(),
	}
	_, errcode := service.GetMode(device_mode, orgid)
	if errcode == gorm.ErrRecordNotFound {
		err = service.SaveMode(&mode)
	} else if errcode == nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	} else {
	}
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"mode": mode,
	})
}

func (this *MachineApiController) GetAllMode() {
	fmt.Println("进来了没哟")
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	mode, err := service.GetAllMode(orgid)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"mode": mode,
	})
}

func (this *MachineApiController) EditMode() {
	id, _ := this.GetInt64("id")
	mode, err := service.GetModeById(id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"mode": mode,
	})
}

func (this *MachineApiController) UpdateMode() {
	id, _ := this.GetInt64("id")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	device_mode := dataBody["device_mode"].(string)
	mode := models.DeviceMode{DeviceMode: device_mode}
	err = service.UpdateMode(id, mode)

	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"mode": mode,
	})
}

func (this *MachineApiController) DeleteMode() {
	id, _ := this.GetInt64("id")
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	_, errcode := service.QueryDeviceMode(id, orgid)
	if errcode == gorm.ErrRecordNotFound {
		service.DeleteMode(id)
		returnData := make(map[string]interface{}, 0)
		returnData["msg"] = "ok"
		this.ServeSuccessJSON(returnData)
		return
	} else if errcode == nil {
		return
	} else {
		fmt.Print("设备型号已存在")
	}

}

func (this *MachineApiController) SelectChange() {
	id, _ := this.GetInt64("id")
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	change, err := service.SelectChange(id, orgid)
	//fmt.Print("---------------------------", err)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"change": change,
	})

}

func (this *MachineApiController) SelectBed() {
	id, _ := this.GetInt64("id")
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	bed, err := service.SelectBed(id, orgid)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"zone": bed,
	})
}

func (this *MachineApiController) GetTimeData() {
	equitid, _ := this.GetInt64("equitid")
	fmt.Print("equitid", equitid)
	timeLayout := "2006-01-02 15:04:05"
	todaytime := this.GetString("todaytime")
	theTime, _ := utils.ParseTimeStringToTime(timeLayout, todaytime+" 00:00:00")
	fmt.Print("时间", theTime.Unix())
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	timeData, err := service.GetTimeData(equitid, orgid, theTime.Unix())
	fmt.Print("报错", err)
	timeDataTwo, err := service.GetTimeTwo(equitid, orgid, theTime.Unix())
	timeDataThree, err := service.GetTimeThree(equitid, orgid, theTime.Unix())
	fmt.Print("err报错了没有", err)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"timeData":      timeData,
		"timeDataTwo":   timeDataTwo,
		"timeDataThree": timeDataThree,
	})
}

func (this *MachineApiController) DeleteImages() {
	id, _ := this.GetInt64("id")
	err := service.DeleteImages(id)
	fmt.Print("err", err)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) GetUserMachTotalCount() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	count, err := service.GetUserMachTotalCount(orgid)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"count": count,
	})
}

func (this *MachineApiController) GetUserTotalCount() {
	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId
	id, _ := this.GetInt64("id")
	count, err := service.GetUserTotalCount(orgid, id)
	addmacher, err := service.GetUserTotal(orgid, id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"count":     count,
		"addmacher": addmacher,
	})
}

func (this *MachineApiController) DeleteManagement() {
	id, _ := this.GetInt64("id")
	_, err := service.DeleteEquit(id)
	if err != nil {
		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除失败")
		return
	}
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) SaveOxygenates() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	id, _ := this.GetInt64("id")

	addmacher, _ := service.GetBedId(id)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	date := dataBody["sampling_date"].(string)
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	samp_date := theTime.Unix()
	specimen := int64(dataBody["specimenb"].(float64))

	cona := dataBody["concentrate_noc"].(string)

	conb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	detectionUnit := dataBody["detection_unit"].(string)

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDate := dataBody["reporting_dateb"].(string)
	reportTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDate+" 00:00:00", loc)
	repDate := reportTime.Unix()

	detectionResult := dataBody["detection_resultb"].(string)

	sort := dataBody["sort"].(string)

	modifications := int64(dataBody["modifications"].(float64))
	examination := dataBody["pass_examination"].(string)
	pass_examination, _ := strconv.ParseInt(examination, 10, 64)
	oxygenates := models.XtDeviceOxygenates{
		SamplingDate:      samp_date,
		Specimenb:         specimen,
		ConcentrateNoc:    cona,
		ConcentratebNod:   conb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    repDate,
		DetectionResultb:  detectionResult,
		Ctime:             time.Now().Unix(),
		Status:            1,
		UserOrgId:         orgid,
		BedId:             addmacher.BedId,
		EquitmentId:       id,
		Bed:               addmacher.BedNumber,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.CreateOxygenates(&oxygenates)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"oxygenates": oxygenates,
	})
}

func (this *MachineApiController) SaveHardWater() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	id, _ := this.GetInt64("id")

	addmacher, _ := service.GetBedId(id)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	date := dataBody["sampling_date"].(string)
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	samp_date := theTime.Unix()
	specimen := int64(dataBody["specimenb"].(float64))

	cona := dataBody["concentrate_noc"].(string)

	conb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	detectionUnit := dataBody["detection_unit"].(string)

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDate := dataBody["reporting_dateb"].(string)
	reportTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDate+" 00:00:00", loc)
	repDate := reportTime.Unix()

	detectionResult := dataBody["detection_resultb"].(string)

	sort := dataBody["sort"].(string)

	modifications := int64(dataBody["modifications"].(float64))
	examination := dataBody["pass_examination"].(string)
	pass_examination, _ := strconv.ParseInt(examination, 10, 64)
	hadwater := models.XtDeviceHadwater{
		SamplingDate:      samp_date,
		Specimenb:         specimen,
		ConcentrateNoc:    cona,
		ConcentratebNod:   conb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    repDate,
		DetectionResultb:  detectionResult,
		Ctime:             time.Now().Unix(),
		Status:            1,
		UserOrgId:         orgid,
		BedId:             addmacher.BedId,
		EquitmentId:       id,
		Bed:               addmacher.BedNumber,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}

	err = service.CreateHadWater(&hadwater)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"hadwater": hadwater,
	})
}

func (this *MachineApiController) SaveWater() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	id, _ := this.GetInt64("id")

	addmacher, _ := service.GetBedId(id)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	date := dataBody["sampling_date"].(string)
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	samp_date := theTime.Unix()
	specimen := int64(dataBody["specimenb"].(float64))

	cona := dataBody["concentrate_noc"].(string)

	conb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	detectionUnit := dataBody["detection_unit"].(string)

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDate := dataBody["reporting_dateb"].(string)
	reportTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDate+" 00:00:00", loc)
	repDate := reportTime.Unix()

	detectionResult := dataBody["detection_resultb"].(string)

	sort := dataBody["sort"].(string)

	modifications := int64(dataBody["modifications"].(float64))
	examination := dataBody["pass_examination"].(string)
	pass_examination, _ := strconv.ParseInt(examination, 10, 64)
	deviceWater := models.XtDeviceWater{
		SamplingDate:      samp_date,
		Specimenb:         specimen,
		ConcentrateNoc:    cona,
		ConcentratebNod:   conb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    repDate,
		DetectionResultb:  detectionResult,
		Ctime:             time.Now().Unix(),
		Status:            1,
		UserOrgId:         orgid,
		BedId:             addmacher.BedId,
		EquitmentId:       id,
		Bed:               addmacher.BedNumber,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.CreateWater(&deviceWater)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"deviceWater": deviceWater,
	})
}

func (this *MachineApiController) SaveDevicePH() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	id, _ := this.GetInt64("id")

	addmacher, _ := service.GetBedId(id)

	adminUserInfo := this.GetAdminUserInfo()
	orgid := adminUserInfo.CurrentOrgId

	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)

	date := dataBody["sampling_date"].(string)
	theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", date+" 00:00:00", loc)
	samp_date := theTime.Unix()
	specimen := int64(dataBody["specimenb"].(float64))

	cona := dataBody["concentrate_noc"].(string)

	conb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	detectionUnit := dataBody["detection_unit"].(string)

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDate := dataBody["reporting_dateb"].(string)
	reportTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDate+" 00:00:00", loc)
	repDate := reportTime.Unix()

	detectionResult := dataBody["detection_resultb"].(string)

	sort := dataBody["sort"].(string)

	modifications := int64(dataBody["modifications"].(float64))
	examination := dataBody["pass_examination"].(string)
	pass_examination, _ := strconv.ParseInt(examination, 10, 64)
	devicePh := models.XtDevicePh{
		SamplingDate:      samp_date,
		Specimenb:         specimen,
		ConcentrateNoc:    cona,
		ConcentratebNod:   conb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    repDate,
		DetectionResultb:  detectionResult,
		Ctime:             time.Now().Unix(),
		Status:            1,
		UserOrgId:         orgid,
		BedId:             addmacher.BedId,
		EquitmentId:       id,
		Bed:               addmacher.BedNumber,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.CreateDevicePh(&devicePh)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"devicePh": devicePh,
	})
}

func (this *MachineApiController) EditOxygenates() {

	id, _ := this.GetInt64("id")
	oxygenates, err := service.GetOxygenatesById(id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"oxygenates": oxygenates,
	})
}

func (this *MachineApiController) UpdateOxygenates() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)
	samplingDate := dataBody["sampling_date"].(string)
	sampdate, _ := time.ParseInLocation(timeLayout+" 15:04:05", samplingDate+" 00:00:00", loc)
	samp_date := sampdate.Unix()

	specimentb := int64(dataBody["specimenb"].(float64))

	concentratec := dataBody["concentrate_noc"].(string)

	concentraeb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDateb := dataBody["reporting_dateb"].(string)

	location, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDateb+" 00:00:00", loc)
	report_date := location.Unix()

	detectionResultb := dataBody["detection_resultb"].(string)

	detectionUnit := dataBody["detection_unit"].(string)

	sort := dataBody["sort"].(string)
	pass_examination := int64(dataBody["pass_examination"].(float64))
	modifications := int64(dataBody["modifications"].(float64))
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	oxygenates := models.XtDeviceOxygenates{
		SamplingDate:      samp_date,
		Specimenb:         specimentb,
		ConcentrateNoc:    concentratec,
		ConcentratebNod:   concentraeb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    report_date,
		DetectionResultb:  detectionResultb,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}

	err = service.UpdateOxygenates(id, orgId, &oxygenates)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"oxygenates": oxygenates,
	})
}

func (this *MachineApiController) EditHardWater() {

	id, _ := this.GetInt64("id")
	hardWater, err := service.GetHardWaterById(id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"hardWater": hardWater,
	})
}

func (this *MachineApiController) EditWater() {

	id, _ := this.GetInt64("id")
	water, err := service.GetWaterById(id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"water": water,
	})
}

func (this *MachineApiController) EditDevicePh() {

	id, _ := this.GetInt64("id")
	deviceph, err := service.GetDevicePhById(id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"deviceph": deviceph,
	})
}

func (this *MachineApiController) GetAllDoctorList() {

	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	appId := this.GetAdminUserInfo().CurrentAppId
	list, err := service.GetAllDoctorTwo(orgId, appId)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"list": list,
	})
}

func (this *MachineApiController) SaveAirDisinfect() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	check_out, err := this.GetInt64("check_out")
	class, err := this.GetInt64("class")
	create_time := this.GetString("created_time")
	createTime, err := time.ParseInLocation(timeLayout+" 15:04:05", create_time+" 00:00:00", loc)
	creator, err := this.GetInt64("creator")
	detection_result := this.GetString("detection_result")
	detection_time := this.GetString("detection_time")
	detectionTime, err := time.ParseInLocation(timeLayout+" 15:04:05", detection_time+" 00:00:00", loc)
	disinfection_fluid := this.GetString("disinfection_fluid")
	disinfection_methods := this.GetString("disinfection_methods")
	modifications, _ := this.GetInt64("modifications")
	sort := this.GetString("sort")
	upload_time := this.GetString("upload_time")
	uploadTime, err := time.ParseInLocation(timeLayout+" 15:04:05", upload_time+" 00:00:00", loc)
	start_time := this.GetString("start_time")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	detection := models.XtAerialDetection{
		CheckOut:            check_out,
		Class:               class,
		CreatedTime:         createTime.Unix(),
		Creator:             creator,
		DetectionResult:     detection_result,
		DetectionTime:       detectionTime.Unix(),
		DisinfectionFluid:   disinfection_fluid,
		DisinfectionMethods: disinfection_methods,
		Modifications:       modifications,
		Sort:                sort,
		UploadTime:          uploadTime.Unix(),
		StartTime:           startTime.Unix(),
		UserOrgId:           orgId,
		Ctime:               time.Now().Unix(),
		Status:              1,
	}

	err = service.CreateAerialDetection(&detection)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"list": detection,
	})
}

func (this *MachineApiController) GetAirList() {

	limit, _ := this.GetInt64("limit")
	page, _ := this.GetInt64("page")
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	list, total, err := service.GetAirList(limit, page, orgId)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"list":  list,
		"total": total,
	})
}

func (this *MachineApiController) GetAirDisinfetDetail() {
	id, _ := this.GetInt64("id")
	detail, err := service.GetAirDisinfectDetail(id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"detail": detail,
	})
}

func (this *MachineApiController) UpdateAirDisinfect() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	check_out, err := this.GetInt64("check_out")
	class, err := this.GetInt64("class")
	create_time := this.GetString("created_time")

	createTime, err := time.ParseInLocation(timeLayout+" 15:04:05", create_time+" 00:00:00", loc)
	creator, err := this.GetInt64("creator")
	detection_result := this.GetString("detection_result")
	detection_time := this.GetString("detection_time")
	detectionTime, err := time.ParseInLocation(timeLayout+" 15:04:05", detection_time+" 00:00:00", loc)
	disinfection_fluid := this.GetString("disinfection_fluid")
	disinfection_methods := this.GetString("disinfection_methods")
	modifications, _ := this.GetInt64("modifications")
	sort := this.GetString("sort")
	upload_time := this.GetString("upload_time")
	uploadTime, err := time.ParseInLocation(timeLayout+" 15:04:05", upload_time+" 00:00:00", loc)
	start_time := this.GetString("start_time")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	id, _ := this.GetInt64("id")
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	detection := models.XtAerialDetection{
		CheckOut:            check_out,
		Class:               class,
		CreatedTime:         createTime.Unix(),
		Creator:             creator,
		DetectionResult:     detection_result,
		DetectionTime:       detectionTime.Unix(),
		DisinfectionFluid:   disinfection_fluid,
		DisinfectionMethods: disinfection_methods,
		Modifications:       modifications,
		Sort:                sort,
		UploadTime:          uploadTime.Unix(),
		StartTime:           startTime.Unix(),
		UserOrgId:           orgId,
		Ctime:               time.Now().Unix(),
		Status:              1,
	}
	err = service.UpdateAeriaDetection(&detection, id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"detection": detection,
	})
}

func (this *MachineApiController) DeleteAirDisinfect() {

	id, _ := this.GetInt64("id")
	err := service.DeleteAirDisinfect(id)
	fmt.Println(err)
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) SaveBodyDisinfect() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	check_out, err := this.GetInt64("check_out")
	class, err := this.GetInt64("class")
	create_time := this.GetString("created_time")
	createTime, err := time.ParseInLocation(timeLayout+" 15:04:05", create_time+" 00:00:00", loc)
	creator, err := this.GetInt64("creator")
	detection_result := this.GetString("detection_result")
	detection_time := this.GetString("detection_time")
	detectionTime, err := time.ParseInLocation(timeLayout+" 15:04:05", detection_time+" 00:00:00", loc)
	disinfection_fluid := this.GetString("disinfection_fluid")
	disinfection_methods := this.GetString("disinfection_methods")
	modifications, _ := this.GetInt64("modifications")
	sort := this.GetString("sort")
	upload_time := this.GetString("upload_time")
	uploadTime, err := time.ParseInLocation(timeLayout+" 15:04:05", upload_time+" 00:00:00", loc)
	start_time := this.GetString("start_time")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	detection := models.XtBodyDetection{
		CheckOut:            check_out,
		Class:               class,
		CreatedTime:         createTime.Unix(),
		Creator:             creator,
		DetectionResult:     detection_result,
		DetectionTime:       detectionTime.Unix(),
		DisinfectionFluid:   disinfection_fluid,
		DisinfectionMethods: disinfection_methods,
		Modifications:       modifications,
		Sort:                sort,
		UploadTime:          uploadTime.Unix(),
		StartTime:           startTime.Unix(),
		UserOrgId:           orgId,
		Ctime:               time.Now().Unix(),
		Status:              1,
	}

	err = service.SaveBodyDetection(&detection)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"detection": detection,
	})
}

func (this *MachineApiController) GetBodyList() {

	limit, _ := this.GetInt64("limit")
	page, _ := this.GetInt64("page")
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	list, total, err := service.GetBodyList(limit, page, orgId)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"list":  list,
		"total": total,
	})
}

func (this *MachineApiController) GetBodyDisinfetDetail() {

	id, _ := this.GetInt64("id")
	detail, err := service.GetBodyDisinfectDetail(id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"detail": detail,
	})
}

func (this *MachineApiController) UpdateBodyDisinfect() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	check_out, _ := this.GetInt64("check_out")
	class, _ := this.GetInt64("class")
	create_time := this.GetString("created_time")

	createTime, err := time.ParseInLocation(timeLayout+" 15:04:05", create_time+" 00:00:00", loc)
	creator, err := this.GetInt64("creator")
	detection_result := this.GetString("detection_result")
	detection_time := this.GetString("detection_time")
	detectionTime, err := time.ParseInLocation(timeLayout+" 15:04:05", detection_time+" 00:00:00", loc)
	disinfection_fluid := this.GetString("disinfection_fluid")
	disinfection_methods := this.GetString("disinfection_methods")
	modifications, _ := this.GetInt64("modifications")
	sort := this.GetString("sort")
	upload_time := this.GetString("upload_time")
	uploadTime, err := time.ParseInLocation(timeLayout+" 15:04:05", upload_time+" 00:00:00", loc)
	start_time := this.GetString("start_time")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	id, _ := this.GetInt64("id")
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	detection := models.XtBodyDetection{
		CheckOut:            check_out,
		Class:               class,
		CreatedTime:         createTime.Unix(),
		Creator:             creator,
		DetectionResult:     detection_result,
		DetectionTime:       detectionTime.Unix(),
		DisinfectionFluid:   disinfection_fluid,
		DisinfectionMethods: disinfection_methods,
		Modifications:       modifications,
		Sort:                sort,
		UploadTime:          uploadTime.Unix(),
		StartTime:           startTime.Unix(),
		UserOrgId:           orgId,
		Ctime:               time.Now().Unix(),
		Status:              1,
	}

	err = service.UpdateBodyDetection(&detection, id)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"detection": detection,
	})
}

func (this *MachineApiController) DeleteBodyDisInfect() {

	id, _ := this.GetInt64("id")
	err := service.DeleteBodyDisInfect(id)
	fmt.Println(err)
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) UpdateHadWater() {

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)
	samplingDate := dataBody["sampling_date"].(string)
	sampdate, _ := time.ParseInLocation(timeLayout+" 15:04:05", samplingDate+" 00:00:00", loc)
	samp_date := sampdate.Unix()

	specimentb := int64(dataBody["specimenb"].(float64))

	concentratec := dataBody["concentrate_noc"].(string)

	concentraeb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDateb := dataBody["reporting_dateb"].(string)

	location, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDateb+" 00:00:00", loc)
	report_date := location.Unix()

	detectionResultb := dataBody["detection_resultb"].(string)

	detectionUnit := dataBody["detection_unit"].(string)

	sort := dataBody["sort"].(string)
	pass_examination := int64(dataBody["pass_examination"].(float64))
	modifications := int64(dataBody["modifications"].(float64))
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	hadWater := models.XtDeviceHadwater{
		SamplingDate:      samp_date,
		Specimenb:         specimentb,
		ConcentrateNoc:    concentratec,
		ConcentratebNod:   concentraeb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    report_date,
		DetectionResultb:  detectionResultb,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.UpdateHadWater(id, orgId, &hadWater)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"hadWater": hadWater,
	})
}

func (this *MachineApiController) UpdateWater() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)
	samplingDate := dataBody["sampling_date"].(string)
	sampdate, _ := time.ParseInLocation(timeLayout+" 15:04:05", samplingDate+" 00:00:00", loc)
	samp_date := sampdate.Unix()

	specimentb := int64(dataBody["specimenb"].(float64))

	concentratec := dataBody["concentrate_noc"].(string)

	concentraeb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDateb := dataBody["reporting_dateb"].(string)

	location, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDateb+" 00:00:00", loc)
	report_date := location.Unix()

	detectionResultb := dataBody["detection_resultb"].(string)

	detectionUnit := dataBody["detection_unit"].(string)
	sort := dataBody["sort"].(string)
	pass_examination := int64(dataBody["pass_examination"].(float64))
	modifications := int64(dataBody["modifications"].(float64))
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	hadWater := models.XtDeviceWater{
		SamplingDate:      samp_date,
		Specimenb:         specimentb,
		ConcentrateNoc:    concentratec,
		ConcentratebNod:   concentraeb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    report_date,
		DetectionResultb:  detectionResultb,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.UpdateDeviceWater(id, orgId, &hadWater)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"hadWater": hadWater,
	})
}

func (this *MachineApiController) UpdateDevicePh() {
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	dataBody := make(map[string]interface{}, 0)
	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
	fmt.Println("err", err)
	id := int64(dataBody["id"].(float64))
	fmt.Println("id", id)
	samplingDate := dataBody["sampling_date"].(string)
	sampdate, _ := time.ParseInLocation(timeLayout+" 15:04:05", samplingDate+" 00:00:00", loc)
	samp_date := sampdate.Unix()

	specimentb := int64(dataBody["specimenb"].(float64))

	concentratec := dataBody["concentrate_noc"].(string)

	concentraeb := dataBody["concentrateb_nod"].(string)

	samplinglocationb := int64(dataBody["sampling_locationb"].(float64))

	samplerb := int64(dataBody["samplerb"].(float64))

	reportDateb := dataBody["reporting_dateb"].(string)

	location, _ := time.ParseInLocation(timeLayout+" 15:04:05", reportDateb+" 00:00:00", loc)
	report_date := location.Unix()

	detectionResultb := dataBody["detection_resultb"].(string)

	detectionUnit := dataBody["detection_unit"].(string)

	sort := dataBody["sort"].(string)
	pass_examination := int64(dataBody["pass_examination"].(float64))
	modifications := int64(dataBody["modifications"].(float64))
	adminUserInfo := this.GetAdminUserInfo()
	orgId := adminUserInfo.CurrentOrgId
	hadWater := models.XtDevicePh{
		SamplingDate:      samp_date,
		Specimenb:         specimentb,
		ConcentrateNoc:    concentratec,
		ConcentratebNod:   concentraeb,
		SamplingLocationb: samplinglocationb,
		DetectionUnit:     detectionUnit,
		Samplerb:          samplerb,
		ReportingDateb:    report_date,
		DetectionResultb:  detectionResultb,
		Sort:              sort,
		PassExamination:   pass_examination,
		Modifications:     modifications,
	}
	err = service.UpdateDivicePh(id, orgId, &hadWater)
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateConfig)
		return
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"hadWater": hadWater,
	})
}

func (this *MachineApiController) DeleteOxygenates() {

	id, _ := this.GetInt64("id")
	err := service.DeleteOxygenates(id)
	fmt.Println(err)
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) DeleteHadWater() {

	id, _ := this.GetInt64("id")
	err := service.DeleteHadWater(id)
	fmt.Println(err)
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) DeleteWater() {
	id, _ := this.GetInt64("id")
	err := service.DeleteWater(id)
	fmt.Println(err)
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}

func (this *MachineApiController) DeleteDevicePh() {
	id, _ := this.GetInt64("id")
	err := service.DeleteDevicePh(id)
	fmt.Println(err)
	returnData := make(map[string]interface{}, 0)
	returnData["msg"] = "ok"
	this.ServeSuccessJSON(returnData)
	return
}
