Browse Source

update

tags/v0
zhaohe 7 months ago
parent
commit
07fd54bff5
  1. 11
      src/main/java/a8k/app/a8ktype/error/AppError.java
  2. 18
      src/main/java/a8k/app/a8ktype/state/DeviceWorkState.java
  3. 1
      src/main/java/a8k/app/hardware/type/a8kcanprotocol/A8kEcode.java
  4. 5
      src/main/java/a8k/app/service/mainctrl/mainflowctrl/MainFlowCtrlScheduler.java
  5. 13
      src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/P30ScanTubeHolderTask.java
  6. 7
      src/main/java/a8k/app/service/statemgr/DeviceWorkStateMgrService.java
  7. 7
      src/main/java/a8k/extui/page/frond_end_test/VirtualEventGeneratorPage.java

11
src/main/java/a8k/app/a8ktype/error/AppError.java

@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
public class AppError implements Serializable {
public class AppError implements Serializable {
@Schema(description = "错误码")
public A8kEcode code;
public String type;
@ -27,4 +27,13 @@ public class AppError implements Serializable {
public String toString() {
return ZJsonHelper.objectToJson(this);
}
public Boolean eq(A8kEcode... ecode) {
for (A8kEcode e : ecode) {
if (e == code) {
return true;
}
}
return false;
}
}

18
src/main/java/a8k/app/a8ktype/state/DeviceWorkState.java

@ -21,10 +21,12 @@ public class DeviceWorkState implements Serializable {
public A8kWorkState lastWorkState = A8kWorkState.IDLE; //上一个工作状态
public Boolean stopActionPending = false; //停止动作等待
public Boolean pauseActionPending = false; //暂停动作等待
public Boolean resumeActionPending = false; //恢复动作等待
public Boolean startActionPending = false; //开始动作等待
public Boolean stopActionPending = false; //停止动作等待
public Boolean pauseActionPending = false; //暂停动作等待
public Boolean resumeActionPending = false; //恢复动作等待
public Boolean startActionPending = false; //开始动作等待
public Boolean consumeNotEnoughErrorFlag = false;
@Schema(description = "当前状态是否切换完成")
public Boolean isPending() {
@ -32,10 +34,10 @@ public class DeviceWorkState implements Serializable {
}
public void clearPending() {
stopActionPending = false;
pauseActionPending = false;
resumeActionPending = false;
startActionPending = false;
stopActionPending = false;
pauseActionPending = false;
resumeActionPending = false;
startActionPending = false;
}
}

1
src/main/java/a8k/app/hardware/type/a8kcanprotocol/A8kEcode.java

@ -216,4 +216,5 @@ public enum A8kEcode {
}
}

5
src/main/java/a8k/app/service/mainctrl/mainflowctrl/MainFlowCtrlScheduler.java

@ -103,22 +103,25 @@ public class MainFlowCtrlScheduler implements ApplicationListener<ApplicationSta
synchronized public void startWork() throws AppException {
checkBeforeCall();
deviceWorkStateMgrService.setStartActionPending(true);
deviceWorkStateMgrService.setConsumeNotEnoughErrorFlag(false);
}
synchronized public void stopWork() throws AppException {
checkBeforeCall();
deviceWorkStateMgrService.setStopActionPending(true);
deviceWorkStateMgrService.setConsumeNotEnoughErrorFlag(false);
}
synchronized public void pauseWork() throws AppException {
checkBeforeCall();
deviceWorkStateMgrService.setPauseActionPending(true);
deviceWorkStateMgrService.setConsumeNotEnoughErrorFlag(false);
}
synchronized public void continueWork() throws AppException {
checkBeforeCall();
deviceWorkStateMgrService.setResumeActionPending(true);
deviceWorkStateMgrService.setConsumeNotEnoughErrorFlag(false);
}
A8kActionTask guessNextAction() {

13
src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/P30ScanTubeHolderTask.java

@ -87,7 +87,9 @@ public class P30ScanTubeHolderTask extends A8kActionTask {
}
public Boolean isReady() {
return tubeStateMgrService.isTubeHolderProcessCompleted() && getTubeholderEnterPosPPS();
return tubeStateMgrService.isTubeHolderProcessCompleted() &&
getTubeholderEnterPosPPS() &&
!deviceWorkStateMgrService.getDeviceWorkState().consumeNotEnoughErrorFlag;
}
public String toDisplayString() {
@ -133,10 +135,6 @@ public class P30ScanTubeHolderTask extends A8kActionTask {
}
//TODO:添加请求后台的代码
//
// state.tubeStates[i].bloodType = ;
// state.tubeStates[i].sampleBarcode = setting.tubeSettings[i].sampleBarcode;
// state.tubeStates[i].userid = setting.tubeSettings[i].userid;
// state.tubeStates[i].projId = setting.tubeSettings[i].projId;
if (tube.getProjIds().isEmpty()) {
log.warn("试管{}待做项目为空", i);
}
@ -215,6 +213,9 @@ public class P30ScanTubeHolderTask extends A8kActionTask {
//添加试管架到系统中
AppError error = tubeStateMgrService.newTubeHolder(tubeholder);
if (error != null) {
if (error.eq(A8kEcode.APPE_CONSUME_NOT_ENOUGH, A8kEcode.APPE_TIP_NOT_ENOUGH)) {
deviceWorkStateMgrService.setConsumeNotEnoughErrorFlag(true);
}
ebus.pushEvent(new AppWarningNotifyEvent(error));
doEjectHodler();
return false;
@ -229,7 +230,7 @@ public class P30ScanTubeHolderTask extends A8kActionTask {
public List<AppError> doAction() {
//获取试管架配置
TubeHolderSetting tubeSetting = tubeSettingMgrService.getThelastActiveTubeHolderSettingAndLock();
Boolean suc = false;
Boolean suc;
try {
suc = priDoAction(tubeSetting);
} catch (AppException e) {

7
src/main/java/a8k/app/service/statemgr/DeviceWorkStateMgrService.java

@ -62,5 +62,12 @@ public class DeviceWorkStateMgrService {
deviceWorkState.fatalErrorFlag = fatalErrorFlag;
}
synchronized public void setConsumeNotEnoughErrorFlag(Boolean consumeNotEnoughErrorFlag) {
deviceWorkState.consumeNotEnoughErrorFlag = consumeNotEnoughErrorFlag;
}
synchronized public Boolean getConsumeNotEnoughErrorFlag() {
return deviceWorkState.consumeNotEnoughErrorFlag;
}
}

7
src/main/java/a8k/extui/page/frond_end_test/VirtualEventGeneratorPage.java

@ -1,18 +1,13 @@
package a8k.extui.page.frond_end_test;
import a8k.app.a8ktype.appevent.*;
import a8k.app.a8ktype.error.AEConsumeNotEnoughError;
import a8k.app.a8ktype.error.AETubeError;
import a8k.app.a8ktype.ui.*;
import a8k.app.factory.ZAppPromoptFactory;
import a8k.app.service.bases.AppEventBusService;
import a8k.app.service.bases.FrontEndMessageBoxAndEventMgr;
import a8k.app.service.statemgr.ConsumableStateAnalyzer;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtUIPageCfg;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
@ -26,8 +21,6 @@ public class VirtualEventGeneratorPage {
@Resource
ExtApiPageMgr extApiPageMgr;
ZAppPromoptTable buildZAppPromoptTable() {
ZAppPromoptTable table = new ZAppPromoptTable();
table.addHeader("耗材名称", "需求量", "使用量");

Loading…
Cancel
Save