From e0d4973c133f734e65532bd45875fbe3c73767d5 Mon Sep 17 00:00:00 2001 From: sige Date: Thu, 4 Jan 2024 19:13:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E7=AE=A1=E6=9E=B6=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boditech/controller/TestController.java | 53 ++++++++++++---------- .../mapper/TestTubeRackTestTaskMapper.java | 3 ++ .../dreamworks/boditech/service/TestService.java | 14 ++++-- .../com/dreamworks/boditech/utils/AppError.java | 1 + .../static/i18n/messages_zh_CN.properties | 3 +- 5 files changed, 45 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/dreamworks/boditech/controller/TestController.java b/src/main/java/com/dreamworks/boditech/controller/TestController.java index bcbecbe..0c685d7 100644 --- a/src/main/java/com/dreamworks/boditech/controller/TestController.java +++ b/src/main/java/com/dreamworks/boditech/controller/TestController.java @@ -24,17 +24,10 @@ public class TestController extends BaseController { private ProjectService projectService; @ResponseBody - @PostMapping("/api/test/test-tube-rack-save") - public ApiResponse testTubeRackTaskSave(@RequestBody ParamTestTubeRackTaskSave param ) { - MdbTestTubeRackTestTask task = this.testService.testTubeRackTaskSave(param); - return this.success(task); - } - - @ResponseBody @PostMapping("/api/test/test-tube-rack-list") public ApiResponse testTubeRackList() { List> list = new ArrayList<>(); - List racks = this.testService.testTubeRackTaskList(); + List racks = this.testService.regularTaskEditableList(); for ( MdbTestTubeRackTestTask rack : racks ) { Map item = MyCommon.objectToMap(rack); @@ -43,21 +36,7 @@ public class TestController extends BaseController { List> tubeList = new ArrayList<>(); for ( MdbTestTubeRackTestTaskTube tube : tubes ) { Map tubeItem = MyCommon.objectToMap(tube); - - // attach projects to tube - if ( tube.projectIds.isEmpty() ) { - tube.projectIds = "[]"; - } - List projectIds = MyCommon.jsonToObject(tube.projectIds, List.class); - List> projectList = new ArrayList<>(); - for ( Integer projectId : projectIds ) { - Project project = this.projectService.activeProjectGetById(projectId); - Map projectItem = MyCommon.objectToMap(project); - projectItem.remove("steps"); - projectList.add(projectItem); - } - tubeItem.put("projects", projectList); - tubeItem.put("projectIds", projectIds.isEmpty() ? new ArrayList<>() : projectIds); + this.attachProjectsToMap(tubeItem, tube.projectIds); tubeList.add(tubeItem); } item.put("tubes", tubeList); @@ -66,6 +45,34 @@ public class TestController extends BaseController { return this.success(list); } + // attach projects to map + private void attachProjectsToMap(Map map, String projectIdsJsonStr) { + // attach projects to tube + if ( projectIdsJsonStr.isEmpty() ) { + projectIdsJsonStr = "[]"; + } + List projectIds = MyCommon.jsonToObject(projectIdsJsonStr, List.class); + if ( projectIds.isEmpty() ) { + projectIds = new ArrayList<>(); + } + List> projectList = new ArrayList<>(); + for ( Integer projectId : projectIds ) { + Project project = this.projectService.activeProjectGetById(projectId); + Map projectItem = MyCommon.objectToMap(project); + projectItem.remove("steps"); + projectList.add(projectItem); + } + map.put("projects", projectList); + map.put("projectIds", projectIds); + } + + @ResponseBody + @PostMapping("/api/test/test-tube-rack-save") + public ApiResponse testTubeRackTaskSave(@RequestBody ParamTestTubeRackTaskSave param ) { + MdbTestTubeRackTestTask task = this.testService.testTubeRackTaskSave(param); + return this.success(task); + } + @ResponseBody @PostMapping("/api/test/test-tube-rack-delete") public ApiResponse testTubeRackBatchDelete( @RequestBody Map params ) { diff --git a/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java b/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java index fff59a0..d0f860d 100644 --- a/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java +++ b/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java @@ -55,4 +55,7 @@ public interface TestTubeRackTestTaskMapper { @Update("UPDATE btd_test_tube_rack_test_tasks SET status = #{status}, execFinishedAt = #{execFinishedAt} WHERE id = #{id}") void testCancel( MdbTestTubeRackTestTask task ); + + @Select("SELECT * FROM btd_test_tube_rack_test_tasks WHERE status IN ('WAITING','CONFIGURING') ORDER BY id ASC") + List findAllEditableTasks(); } diff --git a/src/main/java/com/dreamworks/boditech/service/TestService.java b/src/main/java/com/dreamworks/boditech/service/TestService.java index a53b37e..c8e79ae 100644 --- a/src/main/java/com/dreamworks/boditech/service/TestService.java +++ b/src/main/java/com/dreamworks/boditech/service/TestService.java @@ -143,11 +143,6 @@ public class TestService { } } - // test tube rack task list - public List testTubeRackTaskList() { - return this.testTubeRackTestTaskMapper.findAll(); - } - // test tube rack task tube list public List testTubeRackTaskTubeListByRackId(Integer rackId) { return this.testTubeRackTestTaskTubeMapper.findAllByRackId(rackId); @@ -162,6 +157,10 @@ public class TestService { // test tube rack task lock public void testTubeRackTestLock(Integer id) { + if ( !this.deviceService.isExecutorRunning() ) { + throw new AppRuntimeException(AppError.DEVICE_EXECUTING_REQUIRED); + } + this.actionLog.log("test-tube-rack-task.lock", id); MdbTestTubeRackTestTask task = this.testTubeRackTestTaskMapper.findById(id); if ( null == task ) { @@ -258,6 +257,11 @@ public class TestService { this.testTubeRackTestTaskMapper.update(task); } + // test tube rack task list + public List regularTaskEditableList() { + return this.testTubeRackTestTaskMapper.findAllEditableTasks(); + } + // regular task start public void regularTaskStart( MdbTestTubeRackTestTask task ) { task.status = MdbTestTubeRackTestTask.STATUS_EXECUTING; diff --git a/src/main/java/com/dreamworks/boditech/utils/AppError.java b/src/main/java/com/dreamworks/boditech/utils/AppError.java index a80b4f7..625a395 100644 --- a/src/main/java/com/dreamworks/boditech/utils/AppError.java +++ b/src/main/java/com/dreamworks/boditech/utils/AppError.java @@ -22,4 +22,5 @@ public enum AppError { DEVICE_CONSUMABLE_NOT_ENOUGH, DEVICE_NOT_STARTED, DEVICE_STOP_FAILED, + DEVICE_EXECUTING_REQUIRED, } diff --git a/src/main/resources/static/i18n/messages_zh_CN.properties b/src/main/resources/static/i18n/messages_zh_CN.properties index 0392368..2899f4e 100644 --- a/src/main/resources/static/i18n/messages_zh_CN.properties +++ b/src/main/resources/static/i18n/messages_zh_CN.properties @@ -2,4 +2,5 @@ device.status.powerOn = 设备已开机 device.status.ready = 设备已就绪 device.status.consumablesLoaded = 耗材已装载 -Error.ACCOUNT_LOGIN_INVALID_ACCOUNT_OR_PIN_CODE = 密码验证失败 \ No newline at end of file +Error.ACCOUNT_LOGIN_INVALID_ACCOUNT_OR_PIN_CODE = 密码验证失败 +Error.DEVICE_EXECUTING_REQUIRED = 请先开始测试 \ No newline at end of file