17 changed files with 177 additions and 83 deletions
-
BINapp.db
-
5pom.xml
-
1src/main/java/a8k/SpringBootBeanUtil.java
-
8src/main/java/a8k/service/app/appctrl/ConsumablesScanService.java
-
11src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ3_APPLAY_RESOURCE.java
-
15src/main/java/a8k/service/app/appdata/AppProjInfoMgrService.java
-
6src/main/java/a8k/service/app/appdata/AppReactionResultMgrService.java
-
14src/main/java/a8k/service/app/appstate/TubeStateMgrService.java
-
4src/main/java/a8k/service/app/appstate/type/ProjProcessContext.java
-
13src/main/java/a8k/service/db/A8kProjInfoDBService.java
-
52src/main/java/a8k/service/db/A8kProjOptConfigDBService.java
-
25src/main/java/a8k/service/db/type/A8kProjOptConfig.java
-
65src/main/java/a8k/service/db/type/A8kProjectInfo.java
-
4src/main/java/a8k/service/db/type/a8kidcard/zenum/A8kOptType.java
-
4src/main/java/a8k/service/db/type/a8kidcard/zenum/A8kReactionFlowType.java
-
13src/main/java/a8k/utils/A8kProjCfg.java
-
2src/main/resources/zapp_a8k_proj_info.csv
@ -0,0 +1,52 @@ |
|||
package a8k.service.db; |
|||
|
|||
import a8k.service.app.appdata.UtilsProjectColorAllocer; |
|||
import a8k.service.db.type.A8kProjOptConfig; |
|||
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 A8kProjOptConfigDBService { |
|||
private static final Logger logger = LoggerFactory.getLogger(A8kProjOptConfigDBService.class); |
|||
private static final String tableName = "zapp_a8k_project_opt_config"; |
|||
private static final Class<?> tClass = A8kProjOptConfig.class; |
|||
|
|||
|
|||
@Resource |
|||
JdbcTemplate jdbcTemplate; |
|||
|
|||
@Resource |
|||
UtilsProjectColorAllocer colorAllocer; |
|||
|
|||
@PostConstruct |
|||
void init() { |
|||
if (!ZSqliteJdbcHelper.isTableExist(jdbcTemplate, tableName)) { |
|||
ZSqliteJdbcHelper.createTable(jdbcTemplate, tableName, tClass); |
|||
} |
|||
} |
|||
|
|||
@SneakyThrows private A8kProjOptConfig rowMapper(ResultSet rs, int rowNum) { |
|||
return (A8kProjOptConfig) ZSqliteJdbcHelper.rowMapper(rs, tClass); |
|||
} |
|||
|
|||
public List<A8kProjOptConfig> findByProjIndex(Integer projIndex) { |
|||
List<A8kProjOptConfig> list = jdbcTemplate.query("select * from " + tableName + " where projIndex = ?;", this::rowMapper, projIndex); |
|||
if (list.isEmpty()) { |
|||
return null; |
|||
} |
|||
return list; |
|||
} |
|||
|
|||
public void add(A8kProjOptConfig val) { |
|||
ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, val); |
|||
} |
|||
} |
@ -0,0 +1,25 @@ |
|||
package a8k.service.db.type; |
|||
|
|||
import a8k.service.db.type.a8kidcard.zenum.A8kOptType; |
|||
import a8k.service.db.type.a8kprojinfo.OptScanDirection; |
|||
import a8k.service.db.type.a8kprojinfo.PeakName; |
|||
|
|||
import java.util.List; |
|||
|
|||
public class A8kProjOptConfig { |
|||
public int id; |
|||
public Integer projIndex; //项目INDEX |
|||
public String projName; //项目名称 |
|||
public Integer subProjIndex;//子项目INDEX |
|||
/*光学配置*/ |
|||
public String subProjName; //子项目 名称 |
|||
public String subProjShortName; //子项目 缩写名称 |
|||
public A8kOptType subProjOptType; //子项目 光学类型 |
|||
public Integer subProjScanRange; //子项目 扫描范围 |
|||
public OptScanDirection subProjScanDirection; //子项目 扫描方向 |
|||
public Integer subProjPeakNum; //子项目 峰的数量 |
|||
public List<PeakName> subProjPeakNames; //子项目 峰的名称 |
|||
public List<Integer> subProjPeakPos; //子项目 峰的位置 |
|||
public Integer subProjOptLaserAmplFactor; //子项目 发射放大系数 |
|||
public Integer subProjOptScanFactor; //子项目 扫描放大系数 |
|||
} |
@ -1,66 +1,33 @@ |
|||
package a8k.service.db.type; |
|||
|
|||
import a8k.optalgo.type.Peak; |
|||
import a8k.service.db.type.a8kidcard.zenum.A8kOptType; |
|||
import a8k.service.db.type.a8kidcard.zenum.A8kReactionFlowType; |
|||
import a8k.service.db.type.a8kprojinfo.OptScanDirection; |
|||
import a8k.service.db.type.a8kprojinfo.PeakName; |
|||
|
|||
import java.util.List; |
|||
|
|||
public class A8kProjectInfo { |
|||
public int id; |
|||
public String color; //项目颜色 |
|||
|
|||
/*基础配置*/ |
|||
public Integer projIndex; //项目index |
|||
public String projName; //项目名称 |
|||
|
|||
public String projShortName;//项目缩写词 |
|||
public Integer projNum; //是否是多联卡 |
|||
public Integer reactionTemperature; //反应温度 |
|||
public String color; //项目颜色 |
|||
|
|||
//流程类型 |
|||
/*流程类型*/ |
|||
public A8kReactionFlowType reactionFlowType; //反应流程 |
|||
|
|||
//样本配置 |
|||
public Integer wBloodSampleVolUl; // 全血样本量 0x0037 |
|||
public Integer serumSampleVolUl; // 血清/血浆样本量 0x0038 |
|||
public Integer shakeTimes; // 摇匀次数 |
|||
|
|||
//缓冲液配置 |
|||
public Integer bigBufferSampleUl; // 大瓶缓冲液取样量 |
|||
|
|||
//样本处理逻辑 |
|||
public Integer tubeMixingCount; //试管混匀次数 0x0039 |
|||
|
|||
//混合液配置 |
|||
public Integer mixLiquidReactionTime; // 混合液反应时间 |
|||
public Integer mixLiquidAspirMixingCnt; // 混合混匀次数 |
|||
|
|||
//孵育配置 |
|||
public Integer reactionPlateIncubationTime; // 反应板孵育时间 |
|||
public Integer reactionPlateDropletVol; // 反应板滴样量 |
|||
/*样本配置*/ |
|||
public Integer wBloodSampleVolUl; //全血样本量ul |
|||
public Integer serumSampleVolUl; //血清/血浆样本量ul |
|||
public Integer shakeTimes; //摇匀次数 |
|||
|
|||
//光学配置 |
|||
public String subProj0_name; //子项目名称 |
|||
public A8kOptType subProj0_optType; //F,T |
|||
public Integer subProj0_scanRange; //扫描范围 |
|||
public OptScanDirection subProj0_scanDirection; //扫描方向 |
|||
public Integer subProj0_peakNum; //峰的数量 |
|||
public List<PeakName> subProj0_peakNames; //峰的名称 |
|||
public List<Integer> subProj0_peakPos; //峰的位置 |
|||
/*缓冲液配置*/ |
|||
public Integer bigBufferSampleUl; //大瓶缓冲液取样量ul |
|||
|
|||
public String subProj1_name; //子项目名称 |
|||
public A8kOptType subProj1_optType; //F,T |
|||
public Integer subProj1_scanRange; //扫描范围 |
|||
public OptScanDirection subProj1_scanDirection; //扫描方向 |
|||
public Integer subProj1_peakNum; //峰的数量 |
|||
public List<PeakName> subProj1_peakNames; //峰的名称 |
|||
public List<Integer> subProj1_peakPos; //峰的位置 |
|||
/*混合液配置*/ |
|||
public Integer mixLiquidAspirMixingCnt; //混合混匀次数 |
|||
|
|||
public String subProj2_name; //子项目名称 |
|||
public A8kOptType subProj2_optType; //F,T |
|||
public Integer subProj2_scanRange; //扫描范围 |
|||
public OptScanDirection subProj2_scanDirection; //扫描方向 |
|||
public Integer subProj2_peakNum; //峰的数量 |
|||
public List<PeakName> subProj2_peakNames; //峰的名称 |
|||
public List<Integer> subProj2_peakPos; //峰的位置 |
|||
/*孵育配置*/ |
|||
public Integer reactionPlateIncubationTime; //反应板孵育时间Min |
|||
public Integer reactionPlateDropletVolUl; //反应板滴样量ul |
|||
} |
@ -1,6 +1,6 @@ |
|||
package a8k.service.db.type.a8kidcard.zenum; |
|||
|
|||
public enum A8kOptType { |
|||
Fopt, |
|||
Topt, |
|||
F, |
|||
T, |
|||
} |
@ -0,0 +1,13 @@ |
|||
package a8k.utils; |
|||
|
|||
import a8k.service.db.type.A8kIdCardInfo; |
|||
import a8k.service.db.type.A8kProjOptConfig; |
|||
import a8k.service.db.type.A8kProjectInfo; |
|||
|
|||
import java.util.List; |
|||
|
|||
public class A8kProjCfg { |
|||
public A8kProjectInfo projectInfo; |
|||
public A8kIdCardInfo idCardInfo; |
|||
public List<A8kProjOptConfig> projOptConfigList; |
|||
} |
@ -0,0 +1,2 @@ |
|||
projIndex,projName,projShortName,projNum,reactionTemperature,color,reactionFlowType,wBloodSampleVolUl,serumSampleVolUl,shakeTimes,bigBufferSampleUl,mixLiquidAspirMixingCnt,reactionPlateIncubationTime,reactionPlateDropletVolUl,subProj1_name,subProj1_shortName,subProj1_optType,subProj1_scanRange,subProj1_scanDirection,subProj1_peakNum,subProj1_peakNames,subProj1_peakPos,subProj1_optLaserAmplFactor,subProj1_optScanFactor,subProj2_name,subProj2_shortName,subProj2_optType,subProj2_scanRange,subProj2_scanDirection,subProj2_peakNum,subProj2_peakNames,subProj2_peakPos,subProj2_optLaserAmplFactor,subProj2_optScanFactor,subProj3_name,subProj3_shortName,subProj3_optType,subProj3_scanRange,subProj3_scanDirection,subProj3_peakNum,subProj3_peakNames,subProj3_peakPos,subProj3_optLaserAmplFactor,subProj3_optScanFactor |
|||
项目index,项目名称,项目缩写词,是否是多联卡,反应温度,项目颜色,反应流程,全血样本量ul,血清/血浆样本量ul,摇匀次数,大瓶缓冲液取样量ul,混合混匀次数,反应板孵育时间Min,反应板滴样量ul,子项目1_名称,子项目1_缩写名称,子项目1_光学类型,子项目1_扫描范围,子项目1_扫描方向,子项目1_峰的数量,子项目1_峰的名称,子项目1_峰的位置,子项目1_发射放大系数,子项目1_扫描放大系数,子项目2_名称,子项目1_缩写名称,子项目2_光学类型,子项目2_扫描范围,子项目2_扫描方向,子项目2_峰的数量,子项目2_峰的名称,子项目2_峰的位置,子项目2_发射放大系数,子项目2_扫描放大系数,子项目3_名称,子项目1_缩写名称,子项目3_光学类型,子项目3_扫描范围,子项目3_扫描方向,子项目3_峰的数量,子项目3_峰的名称,子项目3_峰的位置,子项目3_发射放大系数,子项目3_扫描放大系数 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue