Browse Source

update

tags/v0
zhaohe 9 months ago
parent
commit
9d17c58011
  1. 93
      src/main/java/a8k/controler/api_v1/app/AppTubeSettingMgrControler.java
  2. 48
      src/main/java/a8k/controler/api_v1/app/DeviceInitControler.java
  3. 35
      src/main/java/a8k/service/app/appctrl/AppTubeSettingMgrService.java
  4. 4
      src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java
  5. 2
      src/main/java/a8k/service/test/MainflowCtrlTestService.java
  6. 2
      src/main/java/a8k/service/test/TestStateMgrService.java
  7. 7
      src/main/java/a8k/type/tube_setting/TubeHolderSetting.java
  8. 10
      src/main/java/a8k/type/tube_setting/TubeSetting.java
  9. 2
      src/main/java/a8k/type/type/A8kTubeHolderType.java
  10. 4
      src/main/java/a8k/type/type/BloodType.java

93
src/main/java/a8k/controler/api_v1/app/AppTubeSettingMgrControler.java

@ -0,0 +1,93 @@
package a8k.controler.api_v1.app;
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;
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/appTubeSettingMgr/")
@ResponseBody
public class AppTubeSettingMgrControler {
@Resource
AppTubeSettingMgrService appTubeSettingMgrService;
@Resource
GStateService gstate;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// EXTERNAL API
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@Operation(summary = "获取试管架配置")
@PostMapping("/TubeHolderSetting")
public ApiV1Ret<List<TubeHolderSetting>> getTubeHolderSettings() {
return ApiV1Ret.success(gstate.getTubeHolderSettings());
}
//添加试管架返回整个列表
@Operation(summary = "添加<试管架>配置")
@PostMapping("/newTubeHolderSetting")
public ApiV1Ret<Void> newTubeHolderSetting() {
appTubeSettingMgrService.newTubeHolderSetting();
return ApiV1Ret.success();
}
@Operation(summary = "删除<试管架>配置")
@PostMapping("/removeTubeHolderSetting")
public ApiV1Ret<Void> removeTubeHolderSetting(String uuid) throws AppException {
appTubeSettingMgrService.removeTubeHolderSetting(uuid);
return ApiV1Ret.success();
}
@Operation(summary = "设置<试管架>激活状态")
@PostMapping("/setActiveState")
public ApiV1Ret<Void> setActiveState(String uuid, Boolean active) throws AppException {
appTubeSettingMgrService.setActiveState(uuid, active);
return ApiV1Ret.success();
}
// @Operation(summary = "设置<试管架>类型")
// @PostMapping("/setTubeHolderType")
// public ApiV1Ret<Void> setTubeHolderType(String uuid, A8kTubeHolderType type) throws AppException {
// appTubeSettingMgrService.setTubeHolderType(uuid, type);
// return ApiV1Ret.success();
// }
@Operation(summary = "复位<试管>配置")
@PostMapping("/resetTubeSetting")
public ApiV1Ret<Void> resetTubeSetting(String uuid, Integer tubeIndex) throws AppException {
appTubeSettingMgrService.resetTubeSetting(uuid, tubeIndex);
return ApiV1Ret.success();
}
@Operation(summary = "修改<试管>用户信息配置")
@PostMapping("/setTubeSettingUserIdAndSampleBarcode")
public ApiV1Ret<Void> setTubeSettingUserIdAndSampleBarcode(String uuid, Integer tubeIndex, String userid, String sampleBarcode) throws AppException {
appTubeSettingMgrService.setTubeSettingUserIdAndSampleBarcode(uuid, tubeIndex, userid, sampleBarcode);
return ApiV1Ret.success();
}
@Operation(summary = "修改<试管>配置(ps:projIndex格式为逗号分割的数字)")
@PostMapping("/setTubeSetting")
public ApiV1Ret<Void> setTubeSetting(String uuid, Integer tubeIndex, BloodType bloodType, String projIndex) throws AppException {
appTubeSettingMgrService.setTubeSetting(uuid, tubeIndex, bloodType, projIndex);
return ApiV1Ret.success();
}
}

48
src/main/java/a8k/controler/api_v1/app/DeviceInitControler.java

@ -1,48 +0,0 @@
package a8k.controler.api_v1.app;
import a8k.service.app.appctrl.AppDeviceCtrlService;
import a8k.service.app.background.BackgroudProcessCtrlService;
import a8k.service.app.devicectrl.ctrlservice.DeviceInitCtrlService;
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 jdk.jfr.Description;
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 DeviceInitControler {
@Resource
BackgroudProcessCtrlService backgroudProcessCtrlService;
@Resource
DeviceInitCtrlService deviceInitCtrlService;
@Operation(summary = "设备初始化前检查")
@PostMapping("/checkBeforeInitDevice")
public ApiV1Ret<List<CheckResult>> checkBeforeInitDevice() throws AppException {
return ApiV1Ret.success(deviceInitCtrlService.checkBeforeInitDevice());
}
@Operation(summary = "设备初始化(阻塞接口)")
@PostMapping("/initDevice")
public ApiV1Ret<List<CheckResult>> initDevice() throws AppException {
backgroudProcessCtrlService.startProcess();
return ApiV1Ret.success(deviceInitCtrlService.deviceMoveToZero());
}
}

35
src/main/java/a8k/service/app/appctrl/AppTubeSettingMgrService.java

@ -3,9 +3,6 @@ package a8k.service.app.appctrl;
import a8k.service.bases.AppEventBusService;
import a8k.service.bases.appevent.AppTubeholderSettingUpdateEvent;
import a8k.service.app.appstate.GStateService;
import a8k.extapi_controler.utils.ExtApiTab;
import a8k.extapi_controler.utils.ExtApiFn;
import a8k.extapi_controler.pagecontrol.ExtApiTabConfig;
import a8k.type.exception.AppException;
import a8k.type.type.A8kTubeHolderType;
import a8k.type.type.BloodType;
@ -21,19 +18,9 @@ import java.util.ArrayList;
import java.util.List;
@Component
@ExtApiTab(cfg = ExtApiTabConfig.AppTubeSettingMgrService)
public class AppTubeSettingMgrService {
static Logger logger = LoggerFactory.getLogger(AppTubeSettingMgrService.class);
static class ORDER {
static final int getA8kDeviceCfg = 1;
static final int addCfg = 2;
static final int removeCfg = 3;
static final int activeCfg = 4;
static final int setTubeSettingU = 5;
static final int clearTubeProjectCfg = 6;
static final int setTubeSetting = 7;
}
@Resource
GStateService gState;
@ -68,13 +55,13 @@ public class AppTubeSettingMgrService {
// EXTERNAL API
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ExtApiFn(name = "获取试管架配置", group = "配置读取", order = ORDER.getA8kDeviceCfg)
synchronized public List<TubeHolderSetting> getTubeHolderSettings() {
return gState.getTubeHolderSettings();
}
//添加试管架返回整个列表
@ExtApiFn(name = "添加<试管架>配置", group = "试管架", order = ORDER.addCfg)
synchronized public List<TubeHolderSetting> newTubeHolderSetting() {
var newSetting = new TubeHolderSetting();
logger.info("newTubeHolderSetting {}", newSetting.uuid);
@ -91,7 +78,7 @@ public class AppTubeSettingMgrService {
return newSetting;
}
@ExtApiFn(name = "删除<试管架>配置", group = "试管架", order = ORDER.removeCfg)
synchronized public List<TubeHolderSetting> removeTubeHolderSetting(String uuid) throws AppException {
logger.info("removeTubeHolderSetting {}", uuid);
getTubeHolderSettingAndCheckIsEditable(uuid);
@ -100,8 +87,8 @@ public class AppTubeSettingMgrService {
}
@ExtApiFn(name = "设置<试管架>激活状态", group = "试管架", order = ORDER.activeCfg)
synchronized public List<TubeHolderSetting> tubeHodlerSettingSetActiveState(String uuid, Boolean active) throws AppException {
synchronized public List<TubeHolderSetting> setActiveState(String uuid, Boolean active) throws AppException {
logger.info("tubeHodlerSettingSetActiveState {} {}", uuid, active);
TubeHolderSetting setting = getTubeHolderSettingAndCheckIsEditable(uuid);
@ -109,15 +96,15 @@ public class AppTubeSettingMgrService {
return getTubeHolderSettings();
}
@ExtApiFn(name = "设置<试管架>类型", group = "试管架", order = ORDER.activeCfg)
synchronized public List<TubeHolderSetting> tubeHodlerSettingSetTubeHolderType(String uuid, A8kTubeHolderType type) throws AppException {
synchronized public List<TubeHolderSetting> setTubeHolderType(String uuid, A8kTubeHolderType type) throws AppException {
logger.info("tubeHodlerSettingSetTubeHolderType {} {}", uuid, type);
TubeHolderSetting setting = getTubeHolderSettingAndCheckIsEditable(uuid);
setting.tubeHolderType = type;
return getTubeHolderSettings();
}
@ExtApiFn(name = "复位<试管>配置", group = "试管", order = ORDER.clearTubeProjectCfg)
synchronized public List<TubeHolderSetting> resetTubeSetting(String uuid, Integer tubeIndex) throws AppException {
logger.info("resetTubeSetting {} {}", uuid, tubeIndex);
TubeHolderSetting thSetting = getTubeHolderSettingAndCheckIsEditable(uuid);
@ -126,7 +113,7 @@ public class AppTubeSettingMgrService {
}
@ExtApiFn(name = "修改<试管>用户信息配置", group = "试管", order = ORDER.setTubeSettingU)
synchronized public List<TubeHolderSetting> setTubeSettingUserIdAndSampleBarcode(String uuid, Integer tubeIndex, String userid, String sampleBarcode) throws AppException {
logger.info("setTubeSettingUserIdAndSampleBarcode {} {} {} {}", uuid, tubeIndex, userid, sampleBarcode);
TubeHolderSetting thSetting = getTubeHolderSettingAndCheckIsEditable(uuid);
@ -136,7 +123,7 @@ public class AppTubeSettingMgrService {
return getTubeHolderSettings();
}
@ExtApiFn(name = "修改<试管>配置(ps:projIndex格式为逗号分割的数字)", group = "试管", order = ORDER.setTubeSetting)
synchronized public List<TubeHolderSetting> setTubeSetting(String uuid, Integer tubeIndex, BloodType bloodType, String projIndex) throws AppException {
logger.info("setTubeSetting {} {} {} {}", uuid, tubeIndex, bloodType, projIndex);
TubeHolderSetting thSetting = getTubeHolderSettingAndCheckIsEditable(uuid);
@ -148,7 +135,7 @@ public class AppTubeSettingMgrService {
}
var tubeSetting = thSetting.tubeSettings[tubeIndex];
tubeSetting.bloodType = bloodType;
tubeSetting.projIndex = projIndexList;
tubeSetting.projId = projIndexList;
return getTubeHolderSettings();
}

4
src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java

@ -122,10 +122,10 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction {
tube.setBloodType(setting.tubeSettings[i].bloodType);
tube.setSampleBarcode(setting.tubeSettings[i].sampleBarcode);
tube.setUserid(setting.tubeSettings[i].userid);
tube.setProjInfo(appProjInfoMgr.getProjBriefInfo(setting.tubeSettings[i].projIndex));
tube.setProjInfo(appProjInfoMgr.getProjBriefInfo(setting.tubeSettings[i].projId));
if (tube.getProjInfo() == null) {
logger.error("项目信息不存在,{}", setting.tubeSettings[i].projIndex);
logger.error("项目信息不存在,{}", setting.tubeSettings[i].projId);
return A8kEcode.APPE_PROJ_INFO_IS_NOT_EXIST;
}
}

2
src/main/java/a8k/service/test/MainflowCtrlTestService.java

@ -114,7 +114,7 @@ public class MainflowCtrlTestService {
for (int i = 0; i < setting.tubeSettings.length; i++) {
if (i < tubeNum) {
setting.tubeSettings[i].userid = "FAUID" + i;
setting.tubeSettings[i].projIndex = projIndex;
setting.tubeSettings[i].projId = projIndex;
}
}
return setting;

2
src/main/java/a8k/service/test/TestStateMgrService.java

@ -111,7 +111,7 @@ public TubeHolderSetting createOneActiveTubeHolderSetting(A8kTubeHolderType type
for (int i = 0; i < setting.tubeSettings.length; i++) {
if (i < tubeNum) {
setting.tubeSettings[i].userid = "FAUID" + i;
setting.tubeSettings[i].projIndex = projIndex;
setting.tubeSettings[i].projId = projIndex;
}
}
return setting;

7
src/main/java/a8k/type/tube_setting/TubeHolderSetting.java

@ -1,15 +1,22 @@
package a8k.type.tube_setting;
import a8k.type.type.A8kTubeHolderType;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.ArrayList;
import java.util.UUID;
@Schema(description = "试管架配置")
public class TubeHolderSetting {
@Schema(description = "唯一标识")
public String uuid = UUID.randomUUID().toString(); //唯一标识
@Schema(description = "是否激活")
public Boolean active = false;//是否激活
@Schema(description = "试管架类型")
public A8kTubeHolderType tubeHolderType = A8kTubeHolderType.BloodTube; //试管架类型
@Schema(description = "试管配置")
public TubeSetting[] tubeSettings = new TubeSetting[10];
@Schema(description = "是否锁定(锁住后,该配置不允许被修改)")
public Boolean lock = false;//如果后台已经使用前端不允许修改
public TubeHolderSetting() {

10
src/main/java/a8k/type/tube_setting/TubeSetting.java

@ -1,22 +1,28 @@
package a8k.type.tube_setting;
import a8k.type.type.BloodType;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.ArrayList;
import java.util.List;
@Schema(description = "试管配置")
public class TubeSetting {
public int tubeIndex;
@Schema(description = "用户输入的样本ID,不做逻辑,只做展示(允许为空)")
public String userid = ""; //用户输入的样本ID不做逻辑只做展示
@Schema(description = "用于请求用户信息的条码ID")
public String sampleBarcode = ""; //用于请求用户信息的条码ID
public List<Integer> projIndex = new ArrayList<>(); //项目编码,标明需要做的项目
@Schema(description = "项目编码,标明需要做的项目")
public List<Integer> projId = new ArrayList<>(); //项目编码,标明需要做的项目
@Schema(description = "血型")
public BloodType bloodType = BloodType.WHOLE_BLOOD; //血型
public void reset() {
userid = "";
sampleBarcode = "";
projIndex = new ArrayList<>();
projId = new ArrayList<>();
bloodType = BloodType.WHOLE_BLOOD;
}
}

2
src/main/java/a8k/type/type/A8kTubeHolderType.java

@ -1,6 +1,8 @@
package a8k.type.type;
import io.swagger.v3.oas.annotations.media.Schema;
@Schema(description = "试管架类型")
public enum A8kTubeHolderType {
BloodTube("0000"), //全血试管

4
src/main/java/a8k/type/type/BloodType.java

@ -2,6 +2,10 @@ package a8k.type.type;
import io.swagger.v3.oas.annotations.media.Schema;
@Schema(description = """
血液类型:
* WHOLE_BLOOD:全血
* SERUM_OR_PLASMA:血清或者血浆""")
public enum BloodType {
WHOLE_BLOOD,//全血
SERUM_OR_PLASMA,//血清或者血浆

Loading…
Cancel
Save