diff --git a/src/main/java/com/iflytop/a800/controller/TestController.java b/src/main/java/com/iflytop/a800/controller/TestController.java index e2878c0..4c50a63 100644 --- a/src/main/java/com/iflytop/a800/controller/TestController.java +++ b/src/main/java/com/iflytop/a800/controller/TestController.java @@ -1,11 +1,13 @@ package com.iflytop.a800.controller; import com.fasterxml.jackson.databind.JsonNode; import com.iflytop.a800.TaskManager; +import com.iflytop.a800.device.Device; import com.iflytop.a800.model.*; import com.iflytop.a800.resource.TestTube; import com.iflytop.a800.task.TubeRackTask; import com.iflytop.a800.task.TubeTestTask; import com.iflytop.uf.UfActiveRecord; +import com.iflytop.uf.UfActiveRecordCriteria; import com.iflytop.uf.controller.UfApiControllerBase; import com.iflytop.uf.controller.UfApiResponse; import com.iflytop.uf.model.UfMdbDictItem; @@ -66,7 +68,10 @@ public class TestController extends UfApiControllerBase { @PostMapping("/api/test/test-tube-rack-list") @ResponseBody public UfApiResponse testTubeRackList() { - var tasks = UfActiveRecord.find(MdbTubeRackTestTask.class); + var criteria = new UfActiveRecordCriteria(); + criteria.conditions = new HashMap<>(); + criteria.conditions.put("status", List.of("CONFIGURING","WAITING","PROCESSING")); + var tasks = UfActiveRecord.find(MdbTubeRackTestTask.class, criteria); var list = new ArrayList>(); for ( var task : tasks ) { @@ -193,4 +198,26 @@ public class TestController extends UfApiControllerBase { } return this.success(list); } + + @PostMapping("/api/test/search") + @ResponseBody + public UfApiResponse search(@RequestBody Map params) { + var criteria = new UfActiveRecordCriteria(); + criteria.limit = (Integer)params.get("limit"); + criteria.offset = (Integer)params.get("offset"); + var list = UfActiveRecord.find(MdbTest.class, criteria); + return this.success(Map.of("list", list)); + } + + @PostMapping("/api/test/print") + @ResponseBody + public UfApiResponse print(@RequestBody Map params) { + var printer = Device.getInstance().printer; + List ids = (List) params.get("ids"); + for ( var id : ids ) { + var test = UfActiveRecord.findOne(MdbTest.class, id); + printer.printTest(test); + } + return this.success(); + } }