package controllers import ( "time" "XT_New/utils" "github.com/jinzhu/gorm" "XT_New/enums" "XT_New/models" "XT_New/service" "fmt" "github.com/astaxie/beego" ) func DeviceAPIControllerRegistRouters() { beego.Router("/api/device/initdata", &DeviceAPIController{}, "get:GetDeviceManageInitData") // 设备基本信息 beego.Router("/api/devices", &DeviceAPIController{}, "get:GetDevices") beego.Router("/api/device/baseinfo", &DeviceAPIController{}, "get:GetDeviceBaseInfo") beego.Router("/api/device/create", &DeviceAPIController{}, "post:CreateDevice") beego.Router("/api/device/modify", &DeviceAPIController{}, "post:ModifyDevice") beego.Router("/api/device/disable", &DeviceAPIController{}, "post:DisableDevice") // 分区 beego.Router("/api/device/zones", &DeviceAPIController{}, "get:GetZones") beego.Router("/api/device/zone/create", &DeviceAPIController{}, "post:CreateZone") beego.Router("/api/device/zone/modify", &DeviceAPIController{}, "post:ModifyZone") beego.Router("/api/device/zone/disable", &DeviceAPIController{}, "post:DisableZone") // 分组 beego.Router("/api/device/groups", &DeviceAPIController{}, "get:GetGroups") beego.Router("/api/device/group/create", &DeviceAPIController{}, "post:CreateGroup") beego.Router("/api/device/group/modify", &DeviceAPIController{}, "post:ModifyGroup") beego.Router("/api/device/group/disable", &DeviceAPIController{}, "post:DisableGroup") // 机号 beego.Router("/api/device/numbers", &DeviceAPIController{}, "get:GetNumbers") beego.Router("/api/device/number/create", &DeviceAPIController{}, "post:CreateNumber") beego.Router("/api/device/number/modify", &DeviceAPIController{}, "post:ModifyNumber") beego.Router("/api/device/number/disable", &DeviceAPIController{}, "post:DisableNumber") //透析机管理 beego.Router("/api/management/getallsubregion", &DeviceAPIController{}, "get:GetAllSubregion") //beego.Router("/api/management/savemanageinfo",&DeviceAPIController{},"post:SaveManageInfo") beego.Router("/api/management/getallmachineinfo", &DeviceAPIController{}, "get:GetAllMachineInfo") beego.Router("/api/management/getallmachine", &DeviceAPIController{}, "get:GetAllMachine") beego.Router("/api/management/getmachinedetail", &DeviceAPIController{}, "get:GetMachineDetail") beego.Router("/api/management/getallmachinetwo", &DeviceAPIController{}, "get:GetAllMachineTwo") } type DeviceAPIController struct { BaseAuthAPIController } // /api/device/initdata [get] GetDeviceManageInitData func (this *DeviceAPIController) GetDeviceManageInitData() { adminInfo := this.GetAdminUserInfo() zones, getZonesErr := service.GetAllValidDeviceZonesOne(adminInfo.CurrentOrgId) if getZonesErr != nil { this.ErrorLog("获取设备分区列表失败:%v", getZonesErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } groups, getGroupsErr := service.GetAllValidDeviceGroups(adminInfo.CurrentOrgId) if getGroupsErr != nil { this.ErrorLog("获取设备分组列表失败:%v", getGroupsErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } numbers, getNumbersErr := service.GetAllValidDeviceNumbers(adminInfo.CurrentOrgId) if getNumbersErr != nil { this.ErrorLog("获取设备机号列表失败:%v", getNumbersErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "zones": zones, "groups": groups, "numbers": numbers, }) } // /api/devices [get] GetDevices // @param type?:int 1.透析机 2.水处理机 其他.全部 // @param zone?:int func (this *DeviceAPIController) GetDevices() { type_, _ := this.GetInt("type") zoneID, _ := this.GetInt64("zone") if type_ < 0 || type_ > 2 { type_ = 0 } if zoneID < 0 { zoneID = 0 } adminInfo := this.GetAdminUserInfo() devices, getDevicesErr := service.GetValidDevicesBy(adminInfo.CurrentOrgId, type_, zoneID) if getDevicesErr != nil { this.ErrorLog("获取设备列表失败:%v", getDevicesErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "devices": devices, }) } // /api/device/baseinfo [get] GetDeviceBaseInfo // @param id:int models.Device.ID func (this *DeviceAPIController) GetDeviceBaseInfo() { deviceID, _ := this.GetInt64("id") if deviceID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := this.GetAdminUserInfo() device, getDeviceErr := service.GetDeviceByID(adminInfo.CurrentOrgId, deviceID) if getDeviceErr != nil { this.ErrorLog("获取设备失败:%v", getDeviceErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if device == nil || device.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNotExist) return } if device.DeviceType == 1 { dmDevice, getDMDeviceErr := service.GetDMDeviceByID(adminInfo.CurrentOrgId, device.DMID) if getDMDeviceErr != nil { this.ErrorLog("获取透析机失败:%v", getDMDeviceErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if dmDevice == nil || dmDevice.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNotExist) return } this.ServeSuccessJSON(map[string]interface{}{ "device_type": device.DeviceType, "device_number_id": device.DeviceNumberID, "device_info": dmDevice, }) } else if device.DeviceType == 2 { wteDevice, getWTEDeviceErr := service.GetWTEDeviceByID(adminInfo.CurrentOrgId, device.WTEID) if getWTEDeviceErr != nil { this.ErrorLog("获取水处理机失败:%v", getWTEDeviceErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if wteDevice == nil || wteDevice.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNotExist) return } this.ServeSuccessJSON(map[string]interface{}{ "device_type": device.DeviceType, "device_number_id": device.DeviceNumberID, "device_info": wteDevice, }) } } // /api/device/create [post] CreateDevice // @param type:int 设备类型 1.透析机 2.水处理机 // @param serial_number:string 序列号 // @param name:string 设备名 // @param device_number_id?:int 机号 // @param manufacturer?:string 生产厂家 // @param repair_factory?:string 维修厂家 // @param model?:string 型号 // @param department?:string 使用科室 // @param department_number?:string 科室编号 // @param purchase_date?:int 购买日期 // @param install_date?:int 安装日期 // @param commissioning_date?:int 启用日期 // @param maintainer?:string 维修工程师 // @param maintenance_call?:string 维修联系电话 // @param warranty_period?:string 保修期限 // @param device_status?:int 机器状态 1.使用机 2.备用机 3.急诊机 4.报废机 // @param initial_use_times?:int 初始使用次数 // @param mark?:string 备注 // @param retirement_date?:int 报废日期 // @param retirement_reason?:string 报废原因 // @param service_life?:int 使用年限 // @param working_time?:int 工作时长 // @param treatment_mode?:string 治疗模式 type = 1 // @param reverse_osmosis_mode?:int 反渗模式 type = 2 func (this *DeviceAPIController) CreateDevice() { deviceType, _ := this.GetInt("type") serialNumber := this.GetString("serial_number") deviceName := this.GetString("name") if deviceType < 1 || 2 < deviceType || len(serialNumber) == 0 || len(deviceName) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } deviceNumberID, _ := this.GetInt64("device_number_id") manufacturer := this.GetString("manufacturer") repairFactory := this.GetString("repair_factory") model := this.GetString("model") department := this.GetString("department") departmentNumber := this.GetString("department_number") purchaseDate, _ := this.GetInt64("purchase_date") installDate, _ := this.GetInt64("install_date") commissioningDate, _ := this.GetInt64("commissioning_date") maintainer := this.GetString("maintainer") maintenanceCall := this.GetString("maintenance_call") warrantyPeriod := this.GetString("warranty_period") deviceStatus, _ := this.GetInt("device_status") initialUseTimes, _ := this.GetInt("initial_use_times") mark := this.GetString("mark") retirementDate, _ := this.GetInt64("retirement_date") retirementReason := this.GetString("retirement_reason") serviceLife, _ := this.GetInt("service_life") workingTime, _ := this.GetInt("working_time") treatmentMode := this.GetString("treatment_mode") reverseOsmosisMode, _ := this.GetInt("reverse_osmosis_mode") adminInfo := this.GetAdminUserInfo() var deviceNumber *models.DeviceNumber if deviceNumberID != 0 { var getNumberErr error deviceNumber, getNumberErr = service.GetDeviceNumberByID(adminInfo.CurrentOrgId, deviceNumberID) if getNumberErr != nil { this.ErrorLog("获取机号失败:%v", getNumberErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if deviceNumber == nil || deviceNumber.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNumberNotExist) return } } if deviceStatus < 1 || 4 < deviceStatus { deviceStatus = 0 } if deviceType == 1 { dmDevice := &models.DeviceDM{ OrgID: adminInfo.CurrentOrgId, SerialNumber: serialNumber, Name: deviceName, Manufacturer: manufacturer, RepairFactory: repairFactory, Model: model, Department: department, DepartmentNumber: departmentNumber, PurchaseDate: purchaseDate, InstallDate: installDate, CommissioningDate: commissioningDate, Maintainer: maintainer, MaintenanceCall: maintenanceCall, WarrantyPeriod: warrantyPeriod, DeviceStatus: deviceStatus, InitialUseTimes: initialUseTimes, Mark: mark, RetirementDate: retirementDate, RetirementReason: retirementReason, ServiceLife: serviceLife, WorkingTime: workingTime, TreatmentMode: treatmentMode, } device, createErr := service.CreateDMDevice(dmDevice, deviceNumber) if createErr != nil { this.ErrorLog("创建血透机失败:%v") this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } this.ServeSuccessJSON(map[string]interface{}{ "device": device, }) } else if deviceType == 2 { wteDevice := &models.DeviceWTE{ OrgID: adminInfo.CurrentOrgId, SerialNumber: serialNumber, Name: deviceName, Manufacturer: manufacturer, RepairFactory: repairFactory, Model: model, Department: department, DepartmentNumber: departmentNumber, PurchaseDate: purchaseDate, InstallDate: installDate, CommissioningDate: commissioningDate, Maintainer: maintainer, MaintenanceCall: maintenanceCall, WarrantyPeriod: warrantyPeriod, DeviceStatus: deviceStatus, InitialUseTimes: initialUseTimes, Mark: mark, RetirementDate: retirementDate, RetirementReason: retirementReason, ServiceLife: serviceLife, WorkingTime: workingTime, ReverseOsmosisMode: reverseOsmosisMode, } device, createErr := service.CreateWTEDevice(wteDevice, deviceNumber) if createErr != nil { this.ErrorLog("创建水处理机失败:%v") this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } this.ServeSuccessJSON(map[string]interface{}{ "device": device, }) } } // /api/device/modify [post] ModifyDevice // @param device_id:int 设备 ID(models.Device.ID) // @param serial_number:string 序列号 // @param name:string 设备名 // @param device_number_id?:int 机号 // @param manufacturer?:string 生产厂家 // @param repair_factory?:string 维修厂家 // @param model?:string 型号 // @param department?:string 使用科室 // @param department_number?:string 科室编号 // @param purchase_date?:int 购买日期 // @param install_date?:int 安装日期 // @param commissioning_date?:int 启用日期 // @param maintainer?:string 维修工程师 // @param maintenance_call?:string 维修联系电话 // @param warranty_period?:string 保修期限 // @param device_status?:int 机器状态 1.使用机 2.备用机 3.急诊机 4.报废机 // @param initial_use_times?:int 初始使用次数 // @param mark?:string 备注 // @param retirement_date?:int 报废日期 // @param retirement_reason?:string 报废原因 // @param service_life?:int 使用年限 // @param working_time?:int 工作时长 // @param treatment_mode?:string 治疗模式 type = 1 // @param reverse_osmosis_mode?:int 反渗模式 type = 2 func (this *DeviceAPIController) ModifyDevice() { deviceID, _ := this.GetInt64("device_id") serialNumber := this.GetString("serial_number") deviceName := this.GetString("name") if deviceID <= 0 || len(serialNumber) == 0 || len(deviceName) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } deviceNumberID, _ := this.GetInt64("device_number_id") manufacturer := this.GetString("manufacturer") repairFactory := this.GetString("repair_factory") model := this.GetString("model") department := this.GetString("department") departmentNumber := this.GetString("department_number") purchaseDate, _ := this.GetInt64("purchase_date") installDate, _ := this.GetInt64("install_date") commissioningDate, _ := this.GetInt64("commissioning_date") maintainer := this.GetString("maintainer") maintenanceCall := this.GetString("maintenance_call") warrantyPeriod := this.GetString("warranty_period") deviceStatus, _ := this.GetInt("device_status") initialUseTimes, _ := this.GetInt("initial_use_times") mark := this.GetString("mark") retirementDate, _ := this.GetInt64("retirement_date") retirementReason := this.GetString("retirement_reason") serviceLife, _ := this.GetInt("service_life") workingTime, _ := this.GetInt("working_time") treatmentMode := this.GetString("treatment_mode") reverseOsmosisMode, _ := this.GetInt("reverse_osmosis_mode") adminInfo := this.GetAdminUserInfo() var deviceNumber *models.DeviceNumber if deviceNumberID != 0 { var getNumberErr error deviceNumber, getNumberErr = service.GetDeviceNumberByID(adminInfo.CurrentOrgId, deviceNumberID) if getNumberErr != nil { this.ErrorLog("获取机号失败:%v", getNumberErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if deviceNumber == nil || deviceNumber.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNumberNotExist) return } } if deviceStatus < 1 || 4 < deviceStatus { deviceStatus = 0 } device, getDeviceErr := service.GetDeviceByID(adminInfo.CurrentOrgId, deviceID) if getDeviceErr != nil { this.ErrorLog("获取设备失败:%v", getDeviceErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if device == nil || device.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNotExist) return } if device.DeviceType == 1 { dmDevice, getDMDeviceErr := service.GetDMDeviceByID(adminInfo.CurrentOrgId, device.DMID) if getDMDeviceErr != nil { this.ErrorLog("获取透析机失败:%v", getDMDeviceErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if dmDevice == nil || dmDevice.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNotExist) return } dmDevice.SerialNumber = serialNumber dmDevice.Name = deviceName dmDevice.Manufacturer = manufacturer dmDevice.RepairFactory = repairFactory dmDevice.Model = model dmDevice.Department = department dmDevice.DepartmentNumber = departmentNumber dmDevice.PurchaseDate = purchaseDate dmDevice.InstallDate = installDate dmDevice.CommissioningDate = commissioningDate dmDevice.Maintainer = maintainer dmDevice.MaintenanceCall = maintenanceCall dmDevice.WarrantyPeriod = warrantyPeriod dmDevice.DeviceStatus = deviceStatus dmDevice.InitialUseTimes = initialUseTimes dmDevice.Mark = mark dmDevice.RetirementDate = retirementDate dmDevice.RetirementReason = retirementReason dmDevice.ServiceLife = serviceLife dmDevice.WorkingTime = workingTime dmDevice.TreatmentMode = treatmentMode updateErr := service.UpdateDMDevice(dmDevice, deviceNumber, device) if updateErr != nil { this.ErrorLog("更新血透机失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) return } this.ServeSuccessJSON(map[string]interface{}{ "device": device, }) } else if device.DeviceType == 2 { wteDevice, getWTEDeviceErr := service.GetWTEDeviceByID(adminInfo.CurrentOrgId, device.WTEID) if getWTEDeviceErr != nil { this.ErrorLog("获取水处理机失败:%v", getWTEDeviceErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if wteDevice == nil || wteDevice.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNotExist) return } wteDevice.SerialNumber = serialNumber wteDevice.Name = deviceName wteDevice.Manufacturer = manufacturer wteDevice.RepairFactory = repairFactory wteDevice.Model = model wteDevice.Department = department wteDevice.DepartmentNumber = departmentNumber wteDevice.PurchaseDate = purchaseDate wteDevice.InstallDate = installDate wteDevice.CommissioningDate = commissioningDate wteDevice.Maintainer = maintainer wteDevice.MaintenanceCall = maintenanceCall wteDevice.WarrantyPeriod = warrantyPeriod wteDevice.DeviceStatus = deviceStatus wteDevice.InitialUseTimes = initialUseTimes wteDevice.Mark = mark wteDevice.RetirementDate = retirementDate wteDevice.RetirementReason = retirementReason wteDevice.ServiceLife = serviceLife wteDevice.WorkingTime = workingTime wteDevice.ReverseOsmosisMode = reverseOsmosisMode updateErr := service.UpdateWTEDevice(wteDevice, deviceNumber, device) if updateErr != nil { this.ErrorLog("更新水处理机失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) return } this.ServeSuccessJSON(map[string]interface{}{ "device": device, }) } } // /api/device/disable [post] DisableDevice // @param id:int func (this *DeviceAPIController) DisableDevice() { deviceID, _ := this.GetInt64("id") if deviceID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := this.GetAdminUserInfo() device, getDeviceErr := service.GetDeviceByID(adminUserInfo.CurrentOrgId, deviceID) if getDeviceErr != nil { this.ErrorLog("获取设备失败:%v", getDeviceErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if device == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNotExist) return } if device.Status == 1 { device.Status = 0 device.ModifyTime = time.Now().Unix() updateErr := service.UpdateDevice(device) if updateErr != nil { this.ErrorLog("删除设备失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } this.ServeSuccessJSON(nil) } // /api/device/zones [get] GetZones func (this *DeviceAPIController) GetZones() { adminInfo := this.GetAdminUserInfo() zones, getZonesErr := service.GetAllValidDeviceZonesOne(adminInfo.CurrentOrgId) if getZonesErr != nil { this.ErrorLog("获取设备分区列表失败:%v", getZonesErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "zones": zones, }) } // /api/device/zone/create [post] CreateZone // @param name:string // @param type:int func (this *DeviceAPIController) CreateZone() { name := this.GetString("name") type_, _ := this.GetInt("type") sort, _ := this.GetInt64("sort") if len(name) == 0 || type_ <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := this.GetAdminUserInfo() _, errcode := service.GetZoneByName(name, adminInfo.CurrentOrgId) if errcode == gorm.ErrRecordNotFound { zone, createErr := service.CreateDeviceZone(adminInfo.CurrentOrgId, name, type_, sort) if createErr != nil { this.ErrorLog("创建设备分区失败:%v", createErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } this.ServeSuccessJSON(map[string]interface{}{ "zone": zone, }) } else if errcode == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } } // /api/device/zone/modify [post] ModifyZone // @param id:int // @param name:string // @param type:int func (this *DeviceAPIController) ModifyZone() { id, _ := this.GetInt64("id") name := this.GetString("name") type_, _ := this.GetInt("type") sort, _ := this.GetInt64("sort") if id <= 0 || len(name) == 0 || type_ <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := this.GetAdminUserInfo() zone, getZoneErr := service.GetDeviceZoneByID(adminInfo.CurrentOrgId, id) if getZoneErr != nil { this.ErrorLog("获取设备分区失败:%v", getZoneErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if zone == nil || zone.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceZoneNotExist) return } zone.Name = name zone.Type = type_ zone.Sort = sort zone.ModifyTime = time.Now().Unix() byName, _ := service.GetZoneByNameOne(name, adminInfo.CurrentOrgId) if byName.ID > 0 && byName.ID != id { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } updateErr := service.UpdateDeviceZone(zone) if updateErr != nil { this.ErrorLog("修改设备分区失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) return } this.ServeSuccessJSON(nil) } // /api/device/zone/disable [post] DisableZone // @param id:int func (this *DeviceAPIController) DisableZone() { zoneID, _ := this.GetInt64("id") if zoneID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := this.GetAdminUserInfo() zone, getZoneErr := service.GetDeviceZoneByID(adminUserInfo.CurrentOrgId, zoneID) if getZoneErr != nil { this.ErrorLog("获取设备分区失败:%v", getZoneErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if zone == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceZoneNotExist) return } if zone.Status == 1 { countOfDeviceNumber, getCountErr := service.GetDeviceNumberCountForZoneID(adminUserInfo.CurrentOrgId, zoneID) if getCountErr != nil { this.ErrorLog("获取分区内床位数量失败:%v", getCountErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if countOfDeviceNumber != 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceZoneCannotDisable) return } zone.Status = 0 zone.ModifyTime = time.Now().Unix() updateErr := service.UpdateDeviceZone(zone) if updateErr != nil { this.ErrorLog("删除分区失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } this.ServeSuccessJSON(nil) } // /api/device/groups [get] GetGroups func (this *DeviceAPIController) GetGroups() { adminInfo := this.GetAdminUserInfo() groups, getGroupsErr := service.GetAllValidDeviceGroups(adminInfo.CurrentOrgId) if getGroupsErr != nil { //beego.Error("获取设备分组列表失败:", getGroupsErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "groups": groups, }) } // /api/device/group/create [post] CreateGroup // @param name:string func (this *DeviceAPIController) CreateGroup() { name := this.GetString("name") if len(name) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := this.GetAdminUserInfo() _, errcode := service.GetDeviceGroupName(name, adminInfo.CurrentOrgId) if errcode == gorm.ErrRecordNotFound { group, createErr := service.CreateDeviceGroup(adminInfo.CurrentOrgId, name) if createErr != nil { this.ErrorLog("创建设备分组失败:%v", createErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } this.ServeSuccessJSON(map[string]interface{}{ "group": group, }) } else if errcode == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } } // /api/device/group/modify [post] ModifyGroup // @param id:int // @param name:string func (this *DeviceAPIController) ModifyGroup() { id, _ := this.GetInt64("id") name := this.GetString("name") if id <= 0 || len(name) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := this.GetAdminUserInfo() group, getGroupErr := service.GetDeviceGroupByID(adminInfo.CurrentOrgId, id) if getGroupErr != nil { this.ErrorLog("获取设备分组失败:%v", getGroupErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if group == nil || group.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceGroupNotExist) return } group.Name = name group.ModifyTime = time.Now().Unix() byName, getGroupErr := service.GetUpdateDeviceGroupByName(name, adminInfo.CurrentOrgId) if byName.ID > 0 && byName.ID != id { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } updateErr := service.UpdateDeviceGroup(group) if updateErr != nil { this.ErrorLog("修改设备分组失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) return } this.ServeSuccessJSON(nil) } // /api/device/group/disable [post] DisableGroup // @param id:int func (this *DeviceAPIController) DisableGroup() { groupID, _ := this.GetInt64("id") if groupID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := this.GetAdminUserInfo() group, getGroupErr := service.GetDeviceGroupByID(adminUserInfo.CurrentOrgId, groupID) if getGroupErr != nil { this.ErrorLog("获取设备分组失败:%v", getGroupErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if group == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceGroupNotExist) return } if group.Status == 1 { countOfDeviceNumber, getCountErr := service.GetDeviceNumberCountForGroupID(adminUserInfo.CurrentOrgId, groupID) if getCountErr != nil { this.ErrorLog("获取分组内床位数量失败:%v", getCountErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if countOfDeviceNumber != 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceZoneCannotDisable) return } group.Status = 0 group.ModifyTime = time.Now().Unix() updateErr := service.UpdateDeviceGroup(group) if updateErr != nil { this.ErrorLog("删除分组失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } this.ServeSuccessJSON(nil) } // /api/device/numbers [get] GetNumbers func (this *DeviceAPIController) GetNumbers() { adminInfo := this.GetAdminUserInfo() numbers, getNumbersErr := service.GetAllValidDeviceNumbers(adminInfo.CurrentOrgId) if getNumbersErr != nil { //beego.Error("获取机号列表失败:", getNumbersErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "numbers": numbers, }) } // /api/device/number/create [post] CreateNumber // @param number:string // @param zone:int // @param group:int func (this *DeviceAPIController) CreateNumber() { num := this.GetString("number") zoneID, _ := this.GetInt64("zone") groupID, _ := this.GetInt64("group") sort, _ := this.GetInt64("sort") number_type := this.GetString("number_type") if len(num) == 0 || zoneID <= 0 || groupID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := this.GetAdminUserInfo() zone, getZoneErr := service.GetDeviceZoneByID(adminInfo.CurrentOrgId, zoneID) if getZoneErr != nil { this.ErrorLog("获取设备分区失败:%v", getZoneErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if zone == nil || zone.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceZoneNotExist) return } group, getGroupErr := service.GetDeviceGroupByID(adminInfo.CurrentOrgId, groupID) if getGroupErr != nil { this.ErrorLog("获取设备分组失败:%v", getGroupErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if group == nil || group.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceGroupNotExist) return } _, errcode := service.GetCreateDeviceNumber(num, adminInfo.CurrentOrgId) if errcode == gorm.ErrRecordNotFound { number, createErr := service.CreateDeviceNumber(adminInfo.CurrentOrgId, num, zoneID, groupID, sort, number_type) if createErr != nil { this.ErrorLog("创建机号失败:%v", createErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } numberJson := map[string]interface{}{ "id": number.ID, "number": number.Number, "zone_id": number.ZoneID, "group_id": number.GroupID, "zone_name": zone.Name, "group_name": group.Name, "sort": number.Sort, "number_type": number.NumberType, } this.ServeSuccessJSON(map[string]interface{}{ "number": numberJson, }) } else if errcode == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } } // /api/device/number/modify [post] ModifyNumber // @param id:int // @param number:string // @param zone:int // @param group:int func (this *DeviceAPIController) ModifyNumber() { id, _ := this.GetInt64("id") num := this.GetString("number") zoneID, _ := this.GetInt64("zone") groupID, _ := this.GetInt64("group") sort, _ := this.GetInt64("sort") number_type := this.GetString("number_type") if id <= 0 || len(num) == 0 || zoneID <= 0 || groupID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := this.GetAdminUserInfo() number, getNumberErr := service.GetDeviceNumberByID(adminInfo.CurrentOrgId, id) if getNumberErr != nil { this.ErrorLog("获取机号失败:%v", getNumberErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if number == nil || number.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNumberNotExist) return } zone, getZoneErr := service.GetDeviceZoneByID(adminInfo.CurrentOrgId, zoneID) if getZoneErr != nil { this.ErrorLog("获取设备分区失败:%v", getZoneErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if zone == nil || zone.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceZoneNotExist) return } group, getGroupErr := service.GetDeviceGroupByID(adminInfo.CurrentOrgId, groupID) if getGroupErr != nil { this.ErrorLog("获取设备分组失败:%v", getGroupErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if group == nil || group.Status != 1 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceGroupNotExist) return } number.Number = num number.ZoneID = zoneID number.GroupID = groupID number.Sort = sort number.NumberType = number_type byName, _ := service.GetDeviceNumberByName(num, zoneID, adminInfo.CurrentOrgId) if byName.ID > 0 && byName.ID != id { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } updateErr := service.UpdateDeviceNumber(number) //查询该床位是否绑定设备 _, errcode := service.GetAddMacherByBedId(id, adminInfo.CurrentOrgId) if errcode == nil { //修改设备管理机器分区 addmacher := models.DeviceAddmacher{ ZoneId: zoneID, } service.UpdateAddmacherByBedId(id, addmacher) } if updateErr != nil { this.ErrorLog("修改机号失败:%v", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) return } numberJson := map[string]interface{}{ "id": number.ID, "number": number.Number, "zone_id": number.ZoneID, "group_id": number.GroupID, "zone_name": zone.Name, "group_name": group.Name, "sort": number.Sort, "number_type": number.NumberType, } this.ServeSuccessJSON(map[string]interface{}{ "number": numberJson, }) } // /api/device/number/disable [post] DisableNumber // @param id:int func (this *DeviceAPIController) DisableNumber() { deviceNumberID, _ := this.GetInt64("id") if deviceNumberID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := this.GetAdminUserInfo() deviceNumber, getDeviceNumberErr := service.GetDeviceNumberByID(adminUserInfo.CurrentOrgId, deviceNumberID) if getDeviceNumberErr != nil { this.ErrorLog("获取机号失败:%v", getDeviceNumberErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if deviceNumber == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNumberNotExist) return } if deviceNumber.Status == 1 { countOfDevice, getCountErr := service.GetDeviceCountForDeviceNumberID(adminUserInfo.CurrentOrgId, deviceNumberID) if getCountErr != nil { this.ErrorLog("获取床位的设备数量失败:%v", getCountErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if countOfDevice != 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNumberCannotDisableCuzDevice) return } now := time.Now() todayStr := now.Format("2006-01-02") today, _ := utils.ParseTimeStringToTime("2006-01-02", todayStr) countOfSch, getSchCountErr := service.GetScheduleCountForDeviceNumber(adminUserInfo.CurrentOrgId, deviceNumberID, today.Unix()) if getSchCountErr != nil { this.ErrorLog("获取床位的排班失败:%v", getSchCountErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if countOfSch != 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNumberCannotDisableCuzSchedule) return } countOfSchTempItem, getSchTempItemCountErr := service.GetScheduleTemplateItemCountForDeviceNumber(adminUserInfo.CurrentOrgId, deviceNumberID) if getSchTempItemCountErr != nil { this.ErrorLog("获取床位的排班模板失败:%v", getSchTempItemCountErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if countOfSchTempItem != 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeviceNumberCannotDisableCuzSchTemplate) return } deviceNumber.Status = 0 deviceNumber.ModifyTime = time.Now().Unix() updateErr := service.UpdateDeviceNumber(deviceNumber) if updateErr != nil { this.ErrorLog("删除床位号失败:%V", updateErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } this.ServeSuccessJSON(nil) } func (this *DeviceAPIController) GetAllSubregion() { adminInfo := this.GetAdminUserInfo() zones, getZonesErr := service.GetAllValidDeviceZones(adminInfo.CurrentOrgId) if getZonesErr != nil { this.ErrorLog("获取设备分区列表失败:%v", getZonesErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } numbers, getNumbersErr := service.GetAllValidDeviceNumbers(adminInfo.CurrentOrgId) if getNumbersErr != nil { this.ErrorLog("获取床位失败:%v", getNumbersErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } devicenumber, err := service.GetAllBedNumber(adminInfo.CurrentOrgId) fmt.Println("err", err) this.ServeSuccessJSON(map[string]interface{}{ "zones": zones, "numbers": numbers, "devicenumber": devicenumber, }) } //func (this *DeviceAPIController) 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)) // 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("获取分区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) // unit_type := dataBody["unit_type"].(string) // 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) // } // fmt.Println("治疗模式",treat_types) // 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: 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, // 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) // service.AddTreatMode(deviceAddmacher.ID,orgid,ids) // this.ServeSuccessJSON(map[string]interface{}{ // "addmacher":addmacher, // }) //} func (this *DeviceAPIController) GetAllMachineInfo() { page, _ := this.GetInt64("page") limit, _ := this.GetInt64("limit") searchKey := this.GetString("searchKey") zoneid, _ := this.GetInt64("zoneid") equipmentid, _ := this.GetInt64("equipmentid") statusid, _ := this.GetInt64("statusid") adminUserInfo := this.GetAdminUserInfo() orgid := adminUserInfo.CurrentOrgId addmahcer, total, err := service.GetAllMachineInfo(page, limit, searchKey, zoneid, equipmentid, statusid, orgid) if err != nil { this.ServeFailJsonSend(enums.ErrorCodeDataException, "查询设备失败") return } this.ServeSuccessJSON(map[string]interface{}{ "addmahcer": addmahcer, "total": total, }) } func (this *DeviceAPIController) GetAllMachine() { adminUserInfo := this.GetAdminUserInfo() orgid := adminUserInfo.CurrentOrgId fmt.Println("机构id", orgid) zoneid, _ := this.GetInt64("zoneid") fmt.Println("zoneid", zoneid) //number, err := service.GetZoneId(zoneid, orgid) //classid, _ := this.GetInt64("classid") //fmt.Println("classid", classid) deviceid, _ := this.GetInt64("deviceid") fmt.Println("deviceid", deviceid) //now := time.Now() //var week = int(now.Weekday()) //weeks := int64(week) //fmt.Println("星期几",weeks) timeStr := time.Now().Format("2006-01-02") timeLayout := "2006-01-02 15:04:05" fmt.Println("timeStr:", timeStr) timeStringToTime, err := utils.ParseTimeStringToTime(timeLayout, timeStr+" 00:00:00") timenow := timeStringToTime.Unix() fmt.Println("timenow是什么", timenow) fmt.Println("时间搓", timeStringToTime.Unix()) addmahcer, err := service.GetAllMachine(zoneid, 0, deviceid, timenow, orgid) if err != nil { this.ServeFailJsonSend(enums.ErrorCodeDataException, "查询设备失败") return } this.ServeSuccessJSON(map[string]interface{}{ "addmahcer": addmahcer, }) } func (this *DeviceAPIController) GetMachineDetail() { id, _ := this.GetInt64("id") adminUserInfo := this.GetAdminUserInfo() orgid := adminUserInfo.CurrentOrgId fmt.Println("orgid", orgid) addmacher, err := service.GetMachineDetail(id, orgid) fmt.Print("err", err) warning, err := service.GetTimeWarning(id, orgid) germ, err := service.GetTimeLast(id, orgid) clean, err := service.GetTimeLastData(id, orgid) //zone, err := service.GetZoneName(addmacher.ZoneId, orgid) fmt.Println("报错小明", err) number, err := service.GetAllBedNumberTwo(orgid, id) mode, errr := service.GetTreatModel(id, orgid) fmt.Println("mode是什么", mode) fmt.Println("错误是什么", errr) if err != nil { this.ServeFailJsonSend(enums.ErrorCodeDataException, "查询单个失败") return } this.ServeSuccessJSON(map[string]interface{}{ "addmacher": addmacher, "mode": mode, "number": number, "warning": warning, "germ": germ, "clean": clean, //"zone": zone, }) } func (this *DeviceAPIController) GetAllMachineTwo() { adminUserInfo := this.GetAdminUserInfo() orgid := adminUserInfo.CurrentOrgId fmt.Println("机构id", orgid) zoneid, _ := this.GetInt64("zoneid") fmt.Println("zoneid", zoneid) //number, err := service.GetZoneId(zoneid, orgid) //classid, _ := this.GetInt64("classid") //fmt.Println("classid", classid) deviceid, _ := this.GetInt64("deviceid") fmt.Println("deviceid", deviceid) //now := time.Now() //var week = int(now.Weekday()) //weeks := int64(week) //fmt.Println("星期几",weeks) timeStr := time.Now().Format("2006-01-02") timeLayout := "2006-01-02 15:04:05" fmt.Println("timeStr:", timeStr) timeStringToTime, err := utils.ParseTimeStringToTime(timeLayout, timeStr+" 00:00:00") timenow := timeStringToTime.Unix() fmt.Println("timenow是什么", timenow) fmt.Println("时间搓", timeStringToTime.Unix()) addmahcer, err := service.GetAllMachine(zoneid, 0, deviceid, timenow, orgid) if err != nil { this.ServeFailJsonSend(enums.ErrorCodeDataException, "查询设备失败") return } this.ServeSuccessJSON(map[string]interface{}{ "addmahcer": addmahcer, }) }