Browse Source

update

tags/v0
zhaohe 1 year ago
parent
commit
76f683718f
  1. 4
      src/main/java/a8k/db/ProjectInfo.java
  2. 17
      src/main/java/a8k/service/base/A8kDeviceState.java
  3. 25
      src/main/java/a8k/service/project_mgr/ProjectItemMgrService.java
  4. 4
      src/main/java/a8k/service/state_service/A8kStateMgrService.java

4
src/main/java/a8k/db/ProjectInfo.java

@ -3,6 +3,8 @@ package a8k.db;
import com.iflytop.uf.UfActiveRecord;
import com.iflytop.uf.UfActiveRecordField;
import java.util.Date;
//ref:https://iflytop1.feishu.cn/wiki/HvDlwbEWDi4fgkkL6qSc2iLGnte
public class ProjectInfo extends UfActiveRecord {
@ -14,7 +16,7 @@ public class ProjectInfo extends UfActiveRecord {
public Integer buildIn;//是否是内置如果是内置则不显示作为项目的默认值使用
@UfActiveRecordField
public String insertTime; //插入时间
public String insertTime = new Date().toString(); //插入时间
@UfActiveRecordField
public String projectName; //项目名称

17
src/main/java/a8k/service/base/A8kDeviceState.java

@ -1,5 +1,6 @@
package a8k.service.base;
import a8k.db.ProjectInfo;
import a8k.service.base.consumable.ConsumableItemGroup;
import a8k.service.base.plate.ReactingPlateState;
import a8k.service.base.reaction_result.ReactionResult;
@ -13,19 +14,21 @@ import java.util.List;
public class A8kDeviceState {
//耗材
public ConsumableItemGroup consumableItemGroup = null;
public ConsumableItemGroup consumableItemGroup = null;
//急诊位状态
public EmergencyPosState emergencyPosState = EmergencyPosState.IDLE;
public EmergencyPosState emergencyPosState = EmergencyPosState.IDLE;
//急诊位样本信息
public SampleInfo emergencySampleInfo = null;
public SampleInfo emergencySampleInfo = null;
//急诊位反应结果
public ReactionResult emergencyResult = null;
public ReactionResult emergencyResult = null;
//正在孵育的任务状态
public List<ReactingPlateState> incubatingPlateStates = null;
public List<ReactingPlateState> incubatingPlateStates = null;
//当前正在被处理的试管架状态
public TubeHolder processingTubeHolder = null;
public TubeHolder processingTubeHolder = null;
//温度
public Integer temperature;
public Integer temperature;
//当前ID卡信息
public ProjectInfo curIdCardInfo = null;
Boolean deviceInited = false; //设备是否初始化过
Boolean devicePoweredOffNormally = false; //设备是否正常关机

25
src/main/java/a8k/service/project_mgr/ProjectItemMgrService.java

@ -14,6 +14,9 @@ import a8k.service.appeventbus.appevent.AppEvent;
import a8k.service.hardware.canbus.A8kCanBusService;
import a8k.service.hardware.canbus.protocol.A8kPacket;
import a8k.service.hardware.canbus.protocol.CmdId;
import a8k.service.hardware.canbus.protocol.MId;
import a8k.service.hardware.canbus.protocol.RegIndex;
import a8k.service.state_service.A8kStateMgrService;
import a8k.utils.wq.ZWorkQueue;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
@ -35,10 +38,21 @@ public class ProjectItemMgrService implements AppEventListener {
@Resource
AppEventBusService eventBus;
@Resource
A8kStateMgrService stateMgr;
ZWorkQueue workQueue = new ZWorkQueue(2, 1);
@PostConstruct
public void init() {
try {
if (canBus.moduleGetReg(MId.A8kIdCardReader, RegIndex.kreg_id_card_reader_is_online) == 1) {
logger.info("ID卡读卡器在线");
workQueue.addTask(this::readIDCard);
}
} catch (HardwareException e) {
throw new RuntimeException(e);
}
eventBus.regListener(this);
}
@ -85,7 +99,8 @@ public class ProjectItemMgrService implements AppEventListener {
// 判断是否是新的ProjectInfo by call isNewProjectInfo
// 构造NewAppIDCardDetectEvent
// 发送事件到事件总线上去事件将由 FrontEndEventRouter 路由到前端
//
// 存储项目信息到数据库中
// 调用 stateMgr.setCurrentIdCardInfo(); 将ID卡信息存储到状态管理器中
} catch (HardwareException e) {
throw new RuntimeException(e);
}
@ -101,17 +116,17 @@ public class ProjectItemMgrService implements AppEventListener {
return AppRet.success(dbGetProjectInfos());
}
@EnginnerPageAction(name = "插入项目信息")
public AppRet<String> InsertProjectInfo(ProjectInfo newpinfo) {
@EnginnerPageAction(name = "添加项目信息")
public AppRet<String> addProjectInfo(ProjectInfo newpinfo) {
var pinfo = ProjectInfo.findOne(ProjectInfo.class, Map.of("lotName", newpinfo.lotName));
if (pinfo != null && newpinfo.updateChipVersion < pinfo.updateChipVersion) {
return AppRet.message("新项目版本低于数据库中的项目版本,不更新","");
return AppRet.success("新项目版本低于数据库中的项目版本,不更新");
} else {
if (pinfo != null) {
pinfo.delete();
}
newpinfo.save();
}
return AppRet.message("插入成功","");
return AppRet.success("添加成功");
}
}

4
src/main/java/a8k/service/state_service/A8kStateMgrService.java

@ -2,6 +2,7 @@ package a8k.service.state_service;
import a8k.controler.engineer.utils.EngineerPageTab;
import a8k.controler.engineer.utils.EnginnerPageAction;
import a8k.db.ProjectInfo;
import a8k.service.base.A8kDeviceState;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
@ -28,6 +29,9 @@ public class A8kStateMgrService {
return deviceState;
}
public void setCurrentIdCardInfo(ProjectInfo projectInfo) {
deviceState.curIdCardInfo = projectInfo;
}
}
Loading…
Cancel
Save