diff --git a/app.db b/app.db index df393ae..314467e 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/a8k/controler/extapi/pagecontrol/ExtApiTabConfig.java b/src/main/java/a8k/controler/extapi/pagecontrol/ExtApiTabConfig.java index c183e4e..4e351eb 100644 --- a/src/main/java/a8k/controler/extapi/pagecontrol/ExtApiTabConfig.java +++ b/src/main/java/a8k/controler/extapi/pagecontrol/ExtApiTabConfig.java @@ -12,6 +12,7 @@ public enum ExtApiTabConfig { AppSettingsMgr("应用数据.设备配置管理", true), //OK AppProjectItemMgrService("应用数据.ID卡状态管理", true), //OK AppProjInfoMgrService("应用数据.项目信息管理", true), //OK + AppSampleMgrService("应用数据.样本管理", true), //OK ActionReactorService("基础组件.单步调试", true),//OK AppFrontEndEventRouter("基础组件.前端事件路由", true), diff --git a/src/main/java/a8k/dbservice/SampleRecordDBService.java b/src/main/java/a8k/dbservice/SampleRecordDBService.java new file mode 100644 index 0000000..574fb01 --- /dev/null +++ b/src/main/java/a8k/dbservice/SampleRecordDBService.java @@ -0,0 +1,54 @@ +package a8k.dbservice; + +import a8k.dbservice.type.A8kPresetProjInfo; +import a8k.dbservice.type.SampleRecord; +import a8k.service.appdata.UtilsProjectColorAllocer; +import a8k.utils.ZSqliteJdbcHelper; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import lombok.SneakyThrows; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; + +import java.sql.ResultSet; +import java.util.List; + +@Component +public class SampleRecordDBService { + private static final Logger logger = LoggerFactory.getLogger(SampleRecordDBService.class); + private static final String tableName = "zapp_a8k_sample_record"; + private static Class tClass = SampleRecord.class; + + + @Resource + JdbcTemplate jdbcTemplate; + + @Resource + UtilsProjectColorAllocer colorAllocer; + + @PostConstruct + void init() { + if (!ZSqliteJdbcHelper.isTableExist(jdbcTemplate, tableName)) { + ZSqliteJdbcHelper.createTable(jdbcTemplate, tableName, tClass); + } + } + + @SneakyThrows public SampleRecord rowMapper(ResultSet rs, int rowNum) { + return (SampleRecord) ZSqliteJdbcHelper.rowMapper(rs, tClass); + } + + public List getAll() { + return jdbcTemplate.query("select * from " + tableName, this::rowMapper); + } + + public void add(SampleRecord record) { + ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, record); + } + + public void update(SampleRecord record) { + ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, tClass, record); + } + +} diff --git a/src/main/java/a8k/dbservice/type/SampleRecord.java b/src/main/java/a8k/dbservice/type/SampleRecord.java new file mode 100644 index 0000000..cb02605 --- /dev/null +++ b/src/main/java/a8k/dbservice/type/SampleRecord.java @@ -0,0 +1,21 @@ +package a8k.dbservice.type; + +import a8k.type.type.BloodType; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 提交一组试管架配置时,提交10个样本的信息 + */ +public class SampleRecord { + public int id = 0; + public String sampleid; // generated by system , year%100+month+day+时分 241230_1203_01 + public Date data; + public Boolean isHighTube = false; + public BloodType bloodType = BloodType.WHOLE_BLOOD; //血液类型 + public String sampleBarcode = ""; //用于请求用户信息的条码ID + public String userid = ""; //用户输入的样本ID,不做逻辑,只做展示 + public List projIndex = new ArrayList<>(); //项目代码,逗号分隔 +} diff --git a/src/main/java/a8k/service/appdata/AppReactionResultMgrService.java b/src/main/java/a8k/service/appdata/AppReactionResultMgrService.java new file mode 100644 index 0000000..d9496ce --- /dev/null +++ b/src/main/java/a8k/service/appdata/AppReactionResultMgrService.java @@ -0,0 +1,4 @@ +package a8k.service.appdata; + +public class AppReactionResultMgrService { +} diff --git a/src/main/java/a8k/service/appdata/AppSampleMgrService.java b/src/main/java/a8k/service/appdata/AppSampleMgrService.java new file mode 100644 index 0000000..a6fb221 --- /dev/null +++ b/src/main/java/a8k/service/appdata/AppSampleMgrService.java @@ -0,0 +1,15 @@ +package a8k.service.appdata; + +import a8k.controler.extapi.pagecontrol.ExtApiTabConfig; +import a8k.controler.extapi.utils.ExtApiTab; +import a8k.dbservice.SampleRecordDBService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Component; + +@Component +@ExtApiTab(cfg = ExtApiTabConfig.AppSettingsMgr) +public class AppSampleMgrService { + + @Resource + SampleRecordDBService sampleRecordDBService; +} diff --git a/src/main/java/a8k/service/appdevicectrl/AppEmergencySamplePosStateMgrService.java b/src/main/java/a8k/service/appdevicectrl/AppEmergencySamplePosStateMgrService.java index 883f1da..275981b 100644 --- a/src/main/java/a8k/service/appdevicectrl/AppEmergencySamplePosStateMgrService.java +++ b/src/main/java/a8k/service/appdevicectrl/AppEmergencySamplePosStateMgrService.java @@ -40,20 +40,20 @@ public class AppEmergencySamplePosStateMgrService { /** * 提交紧急样本设置 * @param userid 用户ID - * @param barcodeid 样本条码 + * @param sampleBarcode 样本条码 * @param bloodType 血型 * @param projIndexList * * 提交后就默认样本已经放置好了,所以需要前台提醒用户需要先暂停设备,放好样本 */ @ExtApiFn(name = "提交紧急样本设置", group = "紧急样本设置") - public void commitEmergencySampleSetting(String userid, String barcodeid, BloodType bloodType,// + public void commitEmergencySampleSetting(String userid, String sampleBarcode, BloodType bloodType,// @EnginnerPageActionParam(name = "逗号分割项目列表(例子1,2,3)") String projIndexList) throws AppException { EmergencyPosRunState state = gstate.getEmergencyPosRunState(); if (state.state.equals(EmergencySampleState.IDLE) || state.state.equals(EmergencySampleState.FINISHED)) { - state.userid = userid; - state.bloodType = bloodType; - state.barcodeid = barcodeid; + state.userid = userid; + state.bloodType = bloodType; + state.sampleBarcode = sampleBarcode; state.projIndex.clear(); for (String index : projIndexList.split(",")) { state.projIndex.add(Integer.parseInt(index)); diff --git a/src/main/java/a8k/service/appstate/type/EmergencyPosRunState.java b/src/main/java/a8k/service/appstate/type/EmergencyPosRunState.java index f119278..4ea6bb8 100644 --- a/src/main/java/a8k/service/appstate/type/EmergencyPosRunState.java +++ b/src/main/java/a8k/service/appstate/type/EmergencyPosRunState.java @@ -7,10 +7,10 @@ import java.util.ArrayList; import java.util.List; public class EmergencyPosRunState { - public String userid = ""; //用户输入的样本ID,不做逻辑,只做展示 - public String barcodeid = ""; //用于请求用户信息的条码ID - public List projIndex = new ArrayList<>(); //项目代码 - public BloodType bloodType = BloodType.WHOLE_BLOOD; //血型 + public String userid = ""; //用户输入的样本ID,不做逻辑,只做展示 + public String sampleBarcode = ""; //用于请求用户信息的条码ID + public List projIndex = new ArrayList<>(); //项目代码 + public BloodType bloodType = BloodType.WHOLE_BLOOD; //血型 public EmergencySampleState state = EmergencySampleState.IDLE; //急诊位状态 } diff --git a/src/main/java/a8k/service/appstate/type/ReactingPlateState.java b/src/main/java/a8k/service/appstate/type/ReactingPlateState.java index ce6e7c4..c45500e 100644 --- a/src/main/java/a8k/service/appstate/type/ReactingPlateState.java +++ b/src/main/java/a8k/service/appstate/type/ReactingPlateState.java @@ -1,7 +1,6 @@ package a8k.service.appstate.type; import a8k.service.bak_appbase.result.ReactionResult; -import a8k.type.sampleinfo.SampleInfo; import a8k.service.bak_appbase.progress.ReactionPlateProgress; import java.util.Date; diff --git a/src/main/java/a8k/type/sampleinfo/SampleInfo.java b/src/main/java/a8k/type/sampleinfo/SampleInfo.java index 8f4ee09..5303397 100644 --- a/src/main/java/a8k/type/sampleinfo/SampleInfo.java +++ b/src/main/java/a8k/type/sampleinfo/SampleInfo.java @@ -4,9 +4,3 @@ import a8k.type.type.BloodType; import java.util.List; -public class SampleInfo { - public String userid; //用户输入的样本ID,不做逻辑,只做展示 - public String barcodeid; //用于请求用户信息的条码ID - public List projIndex = null; //项目代码 - public BloodType bloodType = BloodType.WHOLE_BLOOD; //血型 -}