|
|
package com.dreamworks.boditech.controller; import com.dreamworks.boditech.controller.entity.ApiResponse; import com.dreamworks.boditech.driver.actuator.ActModuleTestCardBoxCaseTemperature; import com.dreamworks.boditech.driver.actuator.ActuatorModule; import com.dreamworks.boditech.driver.entity.ParamBufferTubeUpdateByBox; import com.dreamworks.boditech.driver.entity.ParamLargeBufferTubeUpdate; import com.dreamworks.boditech.driver.entity.ParamPipetteTipUpdate; import com.dreamworks.boditech.driver.entity.ParamTestCardUpdateByBox; import com.dreamworks.boditech.driver.task.Task; import com.dreamworks.boditech.service.DeviceService; import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;
import java.io.IOException; import java.util.*;
@Controller public class DeviceController extends BaseController { @Resource private DeviceService deviceService;
@ResponseBody @PostMapping("/api/device/power-off") public ApiResponse powerOff() { DeviceService theDeviceService = this.deviceService; TimerTask timerTask = new TimerTask() { @Override public void run() { theDeviceService.powerOff(); } }; Timer timer = new Timer(); timer.schedule(timerTask, 1000); return this.success(); }
@ResponseBody @PostMapping("/api/device/reboot") public ApiResponse reboot() { DeviceService theDeviceService = this.deviceService; TimerTask timerTask = new TimerTask() { @Override public void run() { theDeviceService.reboot(); } }; Timer timer = new Timer(); timer.schedule(timerTask, 1000); return this.success(); }
/** * load consumable resources * @return api response */ @ResponseBody @PostMapping("/api/device/load") public ApiResponse load() { this.deviceService.load(); return this.success(); }
@ResponseBody @PostMapping("/api/device/unload") public ApiResponse unload() { this.deviceService.unload(); return this.success(); }
@ResponseBody @PostMapping("/api/device/temperature-get") public ApiResponse temperatureGet() { Integer mid = ActuatorModule.TEST_CARD_BOX_CASE_TEMPERATURE; ActModuleTestCardBoxCaseTemperature module = (ActModuleTestCardBoxCaseTemperature)this.deviceService.device.getActuator(mid); Double temperature = module.getTemperature(); return this.success(Map.of( "testCardBoxCase", temperature )); }
@ResponseBody @PostMapping("/api/device/pipette-tip-update-by-box") public ApiResponse pipetteTipUpdate( @RequestBody ParamPipetteTipUpdate param ) { this.deviceService.pipetteTipUpdateByBox(param); return this.success(); }
@ResponseBody @PostMapping("/api/device/pipette-tip-box-status-get") public ApiResponse pipetteTipStatusGet() { return this.success(this.deviceService.device.pipetteTips.getAll()); }
@ResponseBody @PostMapping("/api/device/start") public ApiResponse start() { this.deviceService.start(); return this.success(); }
@ResponseBody @PostMapping("/api/device/service-status-get") public ApiResponse serviceStatusGet() { String deviceConnection = this.deviceService.device.getConnectionStatus(); // @TODO : 想个办法获取数据库连接状态
String databaseConnection = "connected"; return this.success(Map.of( "deviceConnection", deviceConnection, "databaseConnection", databaseConnection )); }
@ResponseBody @PostMapping("/api/device/init") public ApiResponse init() { // this.deviceService.reset(false);
return this.success(); }
@ResponseBody @PostMapping("/api/device/restore") public ApiResponse restore() { this.deviceService.reset(true); return this.success(); }
@ResponseBody @RequestMapping("/api/device/id-chip-status-get") public ApiResponse statusGet() { return this.success(Map.of( "status" , "OFFLINE" )); }
@ResponseBody @PostMapping("/api/device/test-card-load") public ApiResponse testCardLoad(@RequestHeader(name="IS-FS-READY",required = false) String isFsReady ) { // @TODO : 删除该标记
if ( "NO".equals(isFsReady) ) { return this.success(); }
this.deviceService.testCardLoad(); return this.success(); }
@ResponseBody @PostMapping("/api/device/test-card-update-by-box") public ApiResponse testCardUpdateByBox( @RequestBody ParamTestCardUpdateByBox update ) { this.deviceService.testCardUpdateByBox(update); return this.success(); }
@ResponseBody @PostMapping("/api/device/test-card-status-get") public ApiResponse testCardStatusGet() { return this.success(this.deviceService.device.testCards.getAllBoxes()); }
@ResponseBody @PostMapping("/api/device/buffer-tube-load") public ApiResponse bufferTubeLoad() { // List<CsmBufferTube> list = this.deviceService.bufferTubeLoad();
return this.success(); }
@ResponseBody @PostMapping("/api/device/buffer-tube-update-by-box") public ApiResponse bufferTubeUpdateByBox( @RequestBody ParamBufferTubeUpdateByBox param) { this.deviceService.bufferTubeUpdateByBox(param); return this.success(); }
@ResponseBody @PostMapping("/api/device/buffer-tube-status-get") public ApiResponse bufferTubeStatusGet() { return this.success(this.deviceService.device.bufferTubes.getAllBoxes()); }
@ResponseBody @PostMapping("/api/device/large-buffer-tube-load") public ApiResponse largeBufferTubeLoad() { // List< CsmLargeBufferTube> list = this.deviceService.largeBufferTubeLoad();
return this.success(); }
@ResponseBody @PostMapping("/api/device/large-buffer-tube-update") public ApiResponse largeBufferTubeUpdate(@RequestBody ParamLargeBufferTubeUpdate param) { this.deviceService.largeBufferTubeUpdate(param); return this.success(); }
@ResponseBody @PostMapping("/api/device/large-buffer-tube-status-get") public ApiResponse largeBufferTubeStatusGet() { return this.success(this.deviceService.device.largeBufferTubes.getAll()); }
@ResponseBody @PostMapping("/api/device/emergency-slot-status-get") public ApiResponse emergencySlotStatusGet() { return this.success(Map.of( "slotA", Map.of("status","EMPTY"), "slotB", Map.of("status","EMPTY") )); }
@ResponseBody @PostMapping("/api/device/status-get") public ApiResponse status() { return this.success(Map.of( "status", "WAIT_FOR_TUBE_RACK" )); }
@ResponseBody @PostMapping("/api/device/stop") public ApiResponse stop() { // this.deviceService.stop();
return this.success(); }
@ResponseBody @PostMapping("/api/device/pause") public ApiResponse pause() { return this.success(); }
@ResponseBody @PostMapping("/api/device/resume") public ApiResponse resume() { return this.success(); }
@ResponseBody @PostMapping("/api/device/trash-box-status-get") public ApiResponse trashBoxStatusGet() { return this.success(Map.of( "status", "EMPTY" )); }
@ResponseBody @PostMapping("/api/device/incubator-status-get") public ApiResponse incubatorStatusGet() { List<Map<String,Object>> slots = new ArrayList<>(); for ( int i=0; i<20; i++) { Map<String,Object> slot = new HashMap<>(); slot.put("index", Integer.toString(i)); slot.put("status", "INUSE"); slot.put("task", Map.of( "recordUUID", "202110-01", "samplePID", "ABCD1234", "sampleUID", "016", "projectName", "hsCRP", "lotCode", "1234567890", "tubeIndex", "05", "tubeType", "WB", "sampleType", "FB", "incubateStartedAt", "2012-12-15 00:00:44", "incubateTime", "3600" )); slots.add(slot); }
return this.success(Map.of( "temperature", 37, "slots", slots )); }
@ResponseBody @PostMapping("/api/device/test-tube-rack-status-get") public ApiResponse testTubeRackStatusGet() { List<Map<String,Object>> tubes = new ArrayList<>(); for ( int i=0; i<10; i++ ) { List<Map<String,Object>> tasks = new ArrayList<>(); for ( int ti=0; ti<3; ti++ ) { Map<String,Object> task = new HashMap<>(); task.put("projectName", "hsCRP"); task.put("projectId", "01"); tasks.add(task); }
Map<String,Object> tube = new HashMap<>(); tube.put("index", Integer.toString(i)); tube.put("status", "WAITING"); tube.put("sampleUID", "016"); tube.put("sampleType","FB"); tube.put("projects",tasks); tubes.add(tube); }
return this.success(Map.of( "type" , "AUTO", "tubes", tubes )); } }
|