Browse Source

update

tags/v0
zhaohe 9 months ago
parent
commit
d1548b6d24
  1. 65
      src/main/java/a8k/config/SpringDocConfig.java
  2. 2
      src/main/java/a8k/controler/api/v1/ApiV1ControllerAdvice.java
  3. 4
      src/main/java/a8k/controler/api/v1/app/assistant/ApiRetTestControler.java
  4. 6
      src/main/java/a8k/controler/api/v1/app/basic/AppEventBusControler.java
  5. 48
      src/main/java/a8k/controler/api/v1/app/ctrl/ConsumableScanControler.java
  6. 7
      src/main/java/a8k/controler/api/v1/app/ctrl/DeviceCtrlControler.java
  7. 41
      src/main/java/a8k/controler/api/v1/app/ctrl/DeviceInit.java
  8. 4
      src/main/java/a8k/controler/api/v1/app/ctrl/OsCtrlControler.java
  9. 10
      src/main/java/a8k/controler/api/v1/app/data/A8kProjectCardControler.java
  10. 2
      src/main/java/a8k/controler/api/v1/app/data/ReactionResultControler.java
  11. 4
      src/main/java/a8k/controler/api/v1/app/data/UsrControler.java
  12. 2
      src/main/java/a8k/controler/api/v1/app/setting/AppSettingControler.java
  13. 3
      src/main/java/a8k/controler/api/v1/app/state/AppTubeSettingMgrControler.java
  14. 34
      src/main/java/a8k/controler/api/v1/app/state/ConsumablesMgrControler.java
  15. 8
      src/main/java/a8k/controler/api/v1/app/state/DeviceStateControler.java
  16. 19
      src/main/java/a8k/controler/api/v1/type/EmergencyTubeSetting.java
  17. 25
      src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java
  18. 42
      src/main/java/a8k/service/app/appdata/EmergencyTubeControler.java
  19. 1
      src/main/java/a8k/service/app/appdata/ProjIdCardInfoMgrService.java
  20. 20
      src/main/java/a8k/service/app/appstate/EmergencySamplePosStateMgrService.java
  21. 2
      src/main/java/a8k/service/app/appstate/SensorState.java
  22. 1
      src/main/java/a8k/service/app/devicectrl/ctrlservice/OptScanModuleCtrlService.java
  23. 1
      src/main/java/a8k/service/app/devicectrl/ctrlservice/PlateBoxCtrlService.java
  24. 1
      src/main/java/a8k/service/app/devicectrl/ctrlservice/TurnableMoveCtrlService.java
  25. 2
      src/main/java/a8k/service/bases/appevent/AppEvent.java
  26. 2
      src/main/java/a8k/type/appret/ApiV1Ret.java
  27. 2
      src/main/java/a8k/type/ecode/AECodeError.java
  28. 2
      src/main/java/a8k/type/ecode/AECommonError.java
  29. 2
      src/main/java/a8k/type/ecode/AEConsumeNotEnoughError.java
  30. 3
      src/main/java/a8k/type/ecode/AEHardwareError.java
  31. 2
      src/main/java/a8k/type/ecode/AETubeError.java
  32. 10
      src/main/java/a8k/type/ecode/AEUnkownExceptionError.java
  33. 5
      src/main/java/a8k/type/ecode/AppError.java
  34. 23
      src/main/java/a8k/utils/ZSqlite.java

65
src/main/java/a8k/config/SpringDocConfig.java

@ -17,10 +17,69 @@ public class SpringDocConfig {
@Bean
public GroupedOpenApi publicApi() {
public GroupedOpenApi basicApi() {
return GroupedOpenApi.builder()
.group("A8k前端接口")
.pathsToMatch("/api/v1/app/**")
.group("v1.app.basic")
.packagesToScan("a8k.controler.api.v1.app.basic")
.build();
}
@Bean
public GroupedOpenApi ctrlApi() {
return GroupedOpenApi.builder()
.group("v1.app.ctrl")
.packagesToScan("a8k.controler.api.v1.app.ctrl")
.build();
}
@Bean
public GroupedOpenApi dataApi() {
return GroupedOpenApi.builder()
.group("v1.app.data")
.packagesToScan("a8k.controler.api.v1.app.data")
.build();
}
@Bean
public GroupedOpenApi settingApi() {
return GroupedOpenApi.builder()
.group("v1.app.setting")
.packagesToScan("a8k.controler.api.v1.app.setting")
.build();
}
@Bean
public GroupedOpenApi stateApi() {
return GroupedOpenApi.builder()
.group("v1.app.state")
.packagesToScan("a8k.controler.api.v1.app.state")
.build();
}
@Bean
public GroupedOpenApi allApi() {
return GroupedOpenApi.builder()
.group("v1.app.all")
.packagesToScan("a8k.controler.api.v1.app")
.build();
}
// @Bean
// public GroupedOpenApi testApi() {
// return GroupedOpenApi.builder()
// .group("v1.app.test")
// .packagesToScan("a8k.controler.api.v1.app.test")
// .build();
// }
// assistant
@Bean
public GroupedOpenApi assistantApi() {
return GroupedOpenApi.builder()
.group("v1.app.assistant")
.packagesToScan("a8k.controler.api.v1.app.assistant")
.build();
}
}

2
src/main/java/a8k/controler/api_v1/ApiV1ControllerAdvice.java → src/main/java/a8k/controler/api/v1/ApiV1ControllerAdvice.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1;
package a8k.controler.api.v1;
import a8k.type.appret.ApiV1Ret;
import a8k.type.ecode.AppError;

4
src/main/java/a8k/controler/api_v1/app/ApiRetTestControler.java → src/main/java/a8k/controler/api/v1/app/assistant/ApiRetTestControler.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.assistant;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.hardware.type.a8kcanprotocol.CmdId;
@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Tag(name = "通用返回值结构示例", description = "")
@Slf4j
@Controller
@RequestMapping(value = "api/v1/app/assistant")
@RequestMapping(value = "api/v1/app/apiRetTest")
@ResponseBody
public class ApiRetTestControler {

6
src/main/java/a8k/controler/api_v1/app/AppEventBusControler.java → src/main/java/a8k/controler/api/v1/app/basic/AppEventBusControler.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.basic;
import a8k.service.bases.FrontEndEventRouter;
import a8k.service.bases.appevent.AppEvent;
@ -24,13 +24,13 @@ public class AppEventBusControler {
FrontEndEventRouter frontEndEventRouter;
@Operation(summary = "获取系统设置")
@Operation(summary = "获取一个事件")
@PostMapping("/pollAppEvent")
public ApiV1Ret<AppEvent> pollAppEvent() {
return ApiV1Ret.success(frontEndEventRouter.pollAppEvent());
}
@Operation(summary = "获取系统设置")
@Operation(summary = "获取全部事件")
@PostMapping("/pollAllAppEvents")
public ApiV1Ret<List<AppEvent>> pollAllAppEvents() {
return ApiV1Ret.success(frontEndEventRouter.pollAllAppEvents());

48
src/main/java/a8k/controler/api/v1/app/ctrl/ConsumableScanControler.java

@ -0,0 +1,48 @@
package a8k.controler.api.v1.app.ctrl;
import a8k.service.app.appctrl.AppConsumablesScanService;
import a8k.service.app.appstate.ConsumablesMgrService;
import a8k.type.ConsumableGroup;
import a8k.type.ConsumablesOneChannelScanResultPacket;
import a8k.type.ConsumablesScanResultPacket;
import a8k.type.appret.ApiV1Ret;
import a8k.type.exception.AppException;
import a8k.type.type.TipGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Tag(name = "耗材扫描", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/consumableScan/")
@ResponseBody
public class ConsumableScanControler {
@Resource
AppConsumablesScanService appConsumablesScanService; //耗材扫描模块
@Resource
ConsumablesMgrService consumablesMgrService; //耗材管理模块
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* 耗材扫描
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
@Operation(summary = "扫描耗材(阻塞接口,耗时大概30多秒)")
@PostMapping("/scanConsumables")
public ApiV1Ret<ConsumablesScanResultPacket> scanConsumables() throws AppException {
log.info("扫描耗材");
return ApiV1Ret.success(appConsumablesScanService.scanConsumables());
}
@Operation(summary = "扫描某一组耗材(阻塞接口,耗时大概5秒)")
@PostMapping("/scanOneGroupConsumables")
public ApiV1Ret<ConsumablesOneChannelScanResultPacket> scanOneGroupConsumables(ConsumableGroup group) throws AppException {
log.info("扫描某一组耗材");
return ApiV1Ret.success(appConsumablesScanService.scanOneGroupConsumables(group));
}
}

7
src/main/java/a8k/controler/api_v1/app/DeviceCtrlControler.java → src/main/java/a8k/controler/api/v1/app/ctrl/DeviceCtrlControler.java

@ -1,12 +1,7 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.ctrl;
import a8k.service.app.appctrl.AppDeviceCtrlService;
import a8k.service.app.appstate.GStateService;
import a8k.service.app.appstate.SensorState;
import a8k.service.app.appstate.type.*;
import a8k.type.appret.ApiV1Ret;
import a8k.type.appret.AppRetV1;
import a8k.type.consumables.ConsumableState;
import a8k.type.exception.AppException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;

41
src/main/java/a8k/controler/api/v1/app/ctrl/DeviceInit.java

@ -0,0 +1,41 @@
package a8k.controler.api.v1.app.ctrl;
import a8k.service.app.appctrl.AppDeviceCtrlService;
import a8k.type.appret.ApiV1Ret;
import a8k.type.checkpoint.CheckResult;
import a8k.type.exception.AppException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Tag(name = "设备初始化", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/deviceInit/")
@ResponseBody
public class DeviceInit {
@Resource
AppDeviceCtrlService appDeviceCtrlService;
@Operation(description = "初始化设备")
@PostMapping("/initDevice")
public ApiV1Ret<List<CheckResult>> initDevice() throws AppException {
return ApiV1Ret.success(appDeviceCtrlService.initDevice());
}
@Operation(description = "初始化设备前检查")
@PostMapping("/check")
public ApiV1Ret<List<CheckResult>> check() throws AppException {
return ApiV1Ret.success(appDeviceCtrlService.checkBeforeInitDevice());
}
}

4
src/main/java/a8k/controler/api_v1/app/OsCtrlControler.java → src/main/java/a8k/controler/api/v1/app/ctrl/OsCtrlControler.java

@ -1,10 +1,8 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.ctrl;
import a8k.OS;
import a8k.service.app.appctrl.AppDeviceCtrlService;
import a8k.service.app.appstate.GStateService;
import a8k.type.appret.ApiV1Ret;
import a8k.type.exception.AppException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;

10
src/main/java/a8k/controler/api_v1/app/A8kProjectCardControler.java → src/main/java/a8k/controler/api/v1/app/data/A8kProjectCardControler.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.data;
import a8k.service.app.appdata.ProjIdCardInfoMgrService;
import a8k.service.app.appstate.GStateService;
@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Tag(name = "反应记录", description = "")
@Tag(name = "A8k项目信息卡", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/a8kProjectCardControler/")
@ -41,21 +41,21 @@ public class A8kProjectCardControler {
return ApiV1Ret.success();
}
@Operation(summary = "删除A8k项目信息")
@Operation(summary = "删除A8k项目信息")
@PostMapping("/delete")
public ApiV1Ret<Void> delete(Integer id) {
projIdCardInfoMgrService.delete(id);
return ApiV1Ret.success();
}
@Operation(summary = "删除所有A8k项目信息")
@Operation(summary = "删除所有A8k项目信息")
@PostMapping("/deleteAll")
public ApiV1Ret<Void> deleteAll() {
projIdCardInfoMgrService.deleteAll();
return ApiV1Ret.success();
}
@Operation(summary = "获取A8k项目信息")
@Operation(summary = "获取A8k项目信息(Page)")
@PostMapping("/get")
public ApiV1Ret<CommonPage<A8kProjInfoCardBreif>> get(Integer pageNum, Integer pageSize) {
return ApiV1Ret.success(projIdCardInfoMgrService.get(pageNum, pageSize));

2
src/main/java/a8k/controler/api_v1/app/ReactionResultControler.java → src/main/java/a8k/controler/api/v1/app/data/ReactionResultControler.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.data;
import a8k.service.app.appdata.ReactionRecordMgrService;
import a8k.service.app.appstate.GStateService;

4
src/main/java/a8k/controler/api_v1/app/UsrControler.java → src/main/java/a8k/controler/api/v1/app/data/UsrControler.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.data;
import a8k.service.app.appdata.AppUserMgrService;
import a8k.service.dao.type.AppUser;
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Tag(name = "用户操作", description = "")
@Tag(name = "用户", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/Usr/")

2
src/main/java/a8k/controler/api_v1/app/AppSettingControler.java → src/main/java/a8k/controler/api/v1/app/setting/AppSettingControler.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.setting;
import a8k.service.app.appsetting.AppSettingsMgrService;
import a8k.service.dao.type.AppSetting;

3
src/main/java/a8k/controler/api_v1/app/AppTubeSettingMgrControler.java → src/main/java/a8k/controler/api/v1/app/state/AppTubeSettingMgrControler.java

@ -1,11 +1,10 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.state;
import a8k.service.app.appctrl.AppTubeSettingMgrService;
import a8k.service.app.appstate.GStateService;
import a8k.type.appret.ApiV1Ret;
import a8k.type.exception.AppException;
import a8k.type.tube_setting.TubeHolderSetting;
import a8k.type.type.A8kTubeHolderType;
import a8k.type.type.BloodType;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;

34
src/main/java/a8k/controler/api_v1/app/ConsumablesMgrControler.java → src/main/java/a8k/controler/api/v1/app/state/ConsumablesMgrControler.java

@ -1,11 +1,13 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.state;
import a8k.service.app.appctrl.AppConsumablesScanService;
import a8k.service.app.appstate.ConsumablesMgrService;
import a8k.service.app.appstate.GStateService;
import a8k.type.ConsumableGroup;
import a8k.type.ConsumablesScanResultPacket;
import a8k.type.ConsumablesOneChannelScanResultPacket;
import a8k.type.appret.ApiV1Ret;
import a8k.type.consumables.ConsumableState;
import a8k.type.exception.AppException;
import a8k.type.type.TipGroup;
import io.swagger.v3.oas.annotations.Operation;
@ -17,34 +19,18 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Tag(name = "耗材管理", description = "")
@Tag(name = "耗材设置", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/consumablesMgrControler/")
@RequestMapping(value = "/api/v1/app/consumablesMgr/")
@ResponseBody
public class ConsumablesMgrControler {
@Resource
AppConsumablesScanService appConsumablesScanService; //耗材扫描模块
@Resource
ConsumablesMgrService consumablesMgrService; //耗材管理模块
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* 耗材扫描
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
@Operation(summary = "扫描耗材(阻塞接口,耗时大概30多秒)")
@PostMapping("/scanConsumables")
public ApiV1Ret<ConsumablesScanResultPacket> scanConsumables() throws AppException {
log.info("扫描耗材");
return ApiV1Ret.success(appConsumablesScanService.scanConsumables());
}
@Operation(summary = "扫描某一组耗材(阻塞接口,耗时大概5秒)")
@PostMapping("/scanOneGroupConsumables")
public ApiV1Ret<ConsumablesOneChannelScanResultPacket> scanOneGroupConsumables(ConsumableGroup group) throws AppException {
log.info("扫描某一组耗材");
return ApiV1Ret.success(appConsumablesScanService.scanOneGroupConsumables(group));
}
@Resource
GStateService gstate;
/**
* 设置Tip数量
@ -69,4 +55,10 @@ public class ConsumablesMgrControler {
consumablesMgrService.setCounsumableNum(group, num);
return ApiV1Ret.success();
}
@Operation(summary = "获取<耗材>状态")
@PostMapping("/getConsumablesState")
public ApiV1Ret<ConsumableState> getConsumablesState() {
return ApiV1Ret.success(gstate.getConsumableState());
}
}

8
src/main/java/a8k/controler/api_v1/app/DeviceStateControler.java → src/main/java/a8k/controler/api/v1/app/state/DeviceStateControler.java

@ -1,4 +1,4 @@
package a8k.controler.api_v1.app;
package a8k.controler.api.v1.app.state;
import a8k.service.app.appstate.GStateService;
import a8k.service.app.appstate.SensorState;
@ -57,11 +57,7 @@ public class DeviceStateControler {
return ApiV1Ret.success(gstate.getEmergencyTubePos());
}
@Operation(summary = "获取<耗材>状态")
@PostMapping("/getConsumablesState")
public ApiV1Ret<ConsumableState> getConsumablesState() {
return ApiV1Ret.success(gstate.getConsumableState());
}
@Operation(summary = "获取<传感器>状态")
@PostMapping("/getSensorState")

19
src/main/java/a8k/controler/api/v1/type/EmergencyTubeSetting.java

@ -0,0 +1,19 @@
package a8k.controler.api.v1.type;
import a8k.type.type.BloodType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class EmergencyTubeSetting {
@Schema(description = "usrid")
String userid;
@Schema(description = "sampleBarcode")
String sampleBarcode;
@Schema(description = "血液类型")
BloodType bloodType;
@Schema(description = "待做项目id")
List<Integer> projIds;
}

25
src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java

@ -1,21 +1,12 @@
package a8k.extapi_controler.pagecontrol;
public enum ExtApiTabConfig {
AppDebugHelperService("调试助手", true),
FrontEndEventRouter("基础组件.前端事件路由", true),
AppDeviceCtrlService("应用控制.应用控制", true),
BackgroudProcessCtrlService("应用控制.后台线程控制", true),
AppTubeSettingMgrService("应用控制.试管(样本)配置", true),//OK
EmergencySamplePosStateMgrService("应用控制.急诊位状态管理", true),//OK
AppSettingsMgr("应用数据.设备配置管理", true), //OK
ProjIdCardInfoMgrService("应用数据.项目与ID卡管理", true), //OK
AppReactionResultMgrService("应用数据.反应结果管理", true), //OK
VirtualDeviceSimulationTest("测试.虚拟设备测试", true),
MainflowCtrlTestService("测试.主流程控制测试", true),
LowerDeviceParamMgr("底层参数管理", true),//OK
BackgroudProcessCtrlService("测试模式.后台线程控制", true),
LowerDeviceParamMgr("校准.参数管理", true),//OK
MiniServoReferencePointSetting("校准.舵机参考点设置", true),
ReactionPlatesTransmitControlerCalibration("校准.反应板相关位置校准", true),
TubeFeedingModulePosCalibration("校准.试管入料校准", true),
@ -31,13 +22,11 @@ public enum ExtApiTabConfig {
OptModuleParamCalibration("校准.光学模块参数校准", true),
TemperatureCtrlParamCalibration("校准.温度控制参数校准", true),
VirtualDeviceSimulationTest("测试.虚拟设备测试", true),
MainflowCtrlTestService("测试.主流程控制测试", true),
A8kPipetteCtrlModule("硬件驱动测试.移液枪测试", true),
StepMotorCtrlDriver("硬件驱动测试.步进电机测试", true),
A8kPipetteCtrlModule("硬件驱动.移液枪测试", false),
StepMotorCtrlDriver("硬件驱动.步进电机测试", false),
ActionReactorService("底层调试.单步调试", false),//OK
ReactionPlatesTransmitCtrl("ReactionPlatesTransmitCtrl", false),
HbotControlService("HbotControlService", false),
TubeTubeFeedingModule("硬件控制.入料模块", false),

42
src/main/java/a8k/service/app/appdata/EmergencyTubeControler.java

@ -0,0 +1,42 @@
package a8k.service.app.appdata;
import a8k.controler.api.v1.type.EmergencyTubeSetting;
import a8k.service.app.appstate.EmergencySamplePosStateMgrService;
import a8k.service.app.appstate.GStateService;
import a8k.type.appret.ApiV1Ret;
import a8k.type.exception.AppException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Tag(name = "急诊试管", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/emergencyTube/")
@ResponseBody
public class EmergencyTubeControler {
@Resource
GStateService gstate;
@Resource
EmergencySamplePosStateMgrService emergencySamplePosStateMgrService;
@Operation(summary = "提交紧急样本设置")
@PostMapping("/addNew")
public ApiV1Ret<Void> addNew(EmergencyTubeSetting setting) throws AppException {
emergencySamplePosStateMgrService.commitEmergencySampleSetting(
setting.getUserid(),
setting.getSampleBarcode(),
setting.getBloodType(),
setting.getProjIds()
);
return ApiV1Ret.success();
}
}

1
src/main/java/a8k/service/app/appdata/ProjIdCardInfoMgrService.java

@ -18,7 +18,6 @@ import java.util.ArrayList;
import java.util.List;
@Component
@ExtApiTab(cfg = ExtApiTabConfig.ProjIdCardInfoMgrService)
public class ProjIdCardInfoMgrService {
@Resource
GStateService gstate;

20
src/main/java/a8k/service/app/appstate/EmergencySamplePosStateMgrService.java

@ -21,7 +21,6 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@ExtApiTab(cfg = ExtApiTabConfig.EmergencySamplePosStateMgrService)
@Component
public class EmergencySamplePosStateMgrService {
static Logger logger = org.slf4j.LoggerFactory.getLogger(EmergencySamplePosStateMgrService.class);
@ -44,33 +43,23 @@ public class EmergencySamplePosStateMgrService {
*
* 提交后就默认样本已经放置好了所以需要前台提醒用户需要先暂停设备放好样本
*/
@ExtApiFn(name = "提交紧急样本设置", group = "紧急样本设置")
public void commitEmergencySampleSetting(String userid, String sampleBarcode, BloodType bloodType,//
@EnginnerPageActionParam(name = "逗号分割项目列表(例子1,2,3)") String projIndexList) throws AppException {
List<Integer> projIds) throws AppException {
EmergencyTubePos emergencyTubePos = gstate.getEmergencyTubePos();
Tube tube = emergencyTubePos.tube;
List<Integer> projIndex = new ArrayList<>();
List<ProjBriefInfo> projInfo = new ArrayList<>();
if (gstate.getDeviceWorkState().workState.equals(A8kWorkState.WORKING)) {
throw new AppException(A8kEcode.APPE_ACTION_IS_NOT_ALLOWED_WHEN_WORKING);
}
if(projIndexList == null || projIndexList.isEmpty()) {
if (projIds.isEmpty()) {
throw new AppException(A8kEcode.APPE_PROJ_INDEX_IS_EMPTY);
}
for (String index : projIndexList.split(",")) {
projIndex.add(Integer.parseInt(index));
}
if (projIndex.isEmpty()) {
throw new AppException(A8kEcode.APPE_PROJ_INDEX_IS_EMPTY);
}
projInfo = projCfgMgrService.getProjBriefInfo(projIndex);
if (projInfo == null || projInfo.size() != projIndex.size()) {
projInfo = projCfgMgrService.getProjBriefInfo(projIds);
if (projInfo == null || projInfo.size() != projIds.size()) {
throw new AppException(A8kEcode.APPE_CAN_NOT_FIND_PROJ_INFO);
}
@ -93,7 +82,6 @@ public class EmergencySamplePosStateMgrService {
}
}
@ExtApiFn(name = "获取急诊样本位状态", group = "急诊样本位状态")
public EmergencyTubePos getEmergencyPosRunState() {
return gstate.getEmergencyTubePos();
}

2
src/main/java/a8k/service/app/appstate/SensorState.java

@ -11,6 +11,8 @@ public class SensorState {
Integer incubateBoxTemperature = 25;
@Schema(description = "废液桶满标志")
Boolean wasteBinFullFlag = false;
@Schema(description = "A8K项目卡状态")
Boolean A8kProjCardState = false;
public synchronized Integer getPboxTemperature() {
return pboxTemperature;

1
src/main/java/a8k/service/app/devicectrl/ctrlservice/OptScanModuleCtrlService.java

@ -32,7 +32,6 @@ import org.springframework.util.Assert;
@Component
@Slf4j
@ExtApiTab(cfg = ExtApiTabConfig.ReactionPlatesTransmitCtrl)
public class OptScanModuleCtrlService {
static final Integer overtime = 10000;

1
src/main/java/a8k/service/app/devicectrl/ctrlservice/PlateBoxCtrlService.java

@ -15,7 +15,6 @@ import org.springframework.stereotype.Component;
@Component
@Slf4j
@ExtApiTab(cfg = ExtApiTabConfig.ReactionPlatesTransmitCtrl)
public class PlateBoxCtrlService {
static final Integer overtime = 10000;

1
src/main/java/a8k/service/app/devicectrl/ctrlservice/TurnableMoveCtrlService.java

@ -18,7 +18,6 @@ import org.springframework.stereotype.Component;
@Component
@Slf4j
@ExtApiTab(cfg = ExtApiTabConfig.ReactionPlatesTransmitCtrl)
public class TurnableMoveCtrlService {
static final Integer overtime = 10000;

2
src/main/java/a8k/service/bases/appevent/AppEvent.java

@ -6,7 +6,7 @@ import java.util.UUID;
public class AppEvent {
public String typeName;
public Integer timestamp = (int) (new Date().getTime() / 1000);
public String id = UUID.randomUUID().toString();
// public String id = UUID.randomUUID().toString();
public AppEvent(String typeName) {
this.typeName = typeName;

2
src/main/java/a8k/type/appret/ApiV1Ret.java

@ -13,9 +13,7 @@ import org.springframework.web.method.annotation.HandlerMethodValidationExceptio
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ApiV1Ret<T> {
// 错误信息
@Schema(name = "数据类型")
public String dataType;
@Schema(name = "数据")
public T data;
// 接口请求时间

2
src/main/java/a8k/type/ecode/AECodeError.java

@ -1,8 +1,10 @@
package a8k.type.ecode;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import io.swagger.v3.oas.annotations.media.Schema;
public class AECodeError extends AppError {
@Schema(description = "额外信息")
public String exmsg;
public AECodeError(String exmsg) {

2
src/main/java/a8k/type/ecode/AECommonError.java

@ -1,8 +1,10 @@
package a8k.type.ecode;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import io.swagger.v3.oas.annotations.media.Schema;
public class AECommonError extends AppError {
@Schema(description = "异常信息")
public String exmsg;
public AECommonError(String exmsg) {

2
src/main/java/a8k/type/ecode/AEConsumeNotEnoughError.java

@ -1,8 +1,10 @@
package a8k.type.ecode;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import io.swagger.v3.oas.annotations.media.Schema;
public class AEConsumeNotEnoughError extends AppError {
@Schema(description = "项目名称")
public String projName;
public AEConsumeNotEnoughError(String projName) {

3
src/main/java/a8k/type/ecode/AEHardwareError.java

@ -3,9 +3,12 @@ package a8k.type.ecode;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.hardware.type.a8kcanprotocol.CmdId;
import a8k.hardware.type.a8kcanprotocol.MId;
import io.swagger.v3.oas.annotations.media.Schema;
public class AEHardwareError extends AppError {
@Schema(description = "模块id(辅助调试,直接原始显示就行)")
public MId mid;
@Schema(description = "命令id(辅助调试,直接原始显示就行)")
public CmdId cmdId;
public AEHardwareError(A8kEcode errorCode, MId mid, CmdId cmdId) {

2
src/main/java/a8k/type/ecode/AETubeError.java

@ -1,8 +1,10 @@
package a8k.type.ecode;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import io.swagger.v3.oas.annotations.media.Schema;
public class AETubeError extends AppError {
@Schema(description = "试管在试管架中偏移", example = "1")
public Integer tubeOff;
public AETubeError(A8kEcode ecode, Integer tubeOff) {

10
src/main/java/a8k/type/ecode/AEUnkownExceptionError.java

@ -1,12 +1,22 @@
package a8k.type.ecode;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Arrays;
public class AEUnkownExceptionError extends AppError {
@Schema(description = "异常描述")
public String decription;
@Schema(description = "异常栈信息")
public String stackTrace;
Exception exception;
public AEUnkownExceptionError(Exception exception) {
super(A8kEcode.CODEERROR_UNKOWN_EXCEPTION);
this.decription = exception.getMessage();
this.stackTrace = Arrays.toString(exception.getStackTrace());
this.exception = exception;
}
}

5
src/main/java/a8k/type/ecode/AppError.java

@ -2,11 +2,16 @@ package a8k.type.ecode;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.utils.ZJsonHelper;
import io.swagger.v3.oas.annotations.media.Schema;
public class AppError {
@Schema(description = "错误码")
public A8kEcode code;
public String type;
public AppError(A8kEcode errorCode) {
this.code = errorCode;
this.type = this.getClass().getSimpleName();
}
public String toString() {

23
src/main/java/a8k/utils/ZSqlite.java

@ -3,12 +3,15 @@ package a8k.utils;
import a8k.type.db.CommonPage;
import jakarta.annotation.Nullable;
import lombok.SneakyThrows;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import java.sql.ResultSet;
import java.util.List;
public class ZSqlite<T> {
private static final Logger log = LoggerFactory.getLogger(ZSqlite.class);
JdbcTemplate jdbcTemplate;
Class<T> tClass;
public String tableName;
@ -58,7 +61,11 @@ public class ZSqlite<T> {
}
public T findById(int id) {
return jdbcTemplate.query("select * from " + tableName + " where id = ?", this::rowMapperOne, id);
List<T> list = jdbcTemplate.query("select * from " + tableName + " where id = ?", this::rowMapperList, id);
if (list.isEmpty()) {
return null;
}
return list.get(0);
}
@ -67,10 +74,10 @@ public class ZSqlite<T> {
return tClass.cast(ret);
}
@SneakyThrows public T rowMapperOne(ResultSet rs) {
// return (T) ZSqliteJdbcHelper.rowMapper(rs, tClass);
return tClass.cast(ZSqliteJdbcHelper.rowMapper(rs, tClass));
}
// @SneakyThrows public T rowMapperOne(ResultSet rs) {
// // return (T) ZSqliteJdbcHelper.rowMapper(rs, tClass);
// return tClass.cast(ZSqliteJdbcHelper.rowMapper(rs, tClass));
// }
public Boolean isTableExist() {
return ZSqliteJdbcHelper.isTableExist(jdbcTemplate, tableName);
@ -106,7 +113,11 @@ public class ZSqlite<T> {
}
public T queryOne(String sql, @Nullable Object... args) {
return jdbcTemplate.query(sql, this::rowMapperOne, args);
List<T> list = jdbcTemplate.query(sql, this::rowMapperList, args);
if (list.isEmpty()) {
return null;
}
return list.get(0);
}
public List<T> queryList(String sql, @Nullable Object... args) {

Loading…
Cancel
Save