初始化贵阳禁毒检验鉴定

This commit is contained in:
2025-03-17 10:28:39 +08:00
parent 2728002cf3
commit 6e2e5fdd5b
194 changed files with 22737 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
${AnsiColor.BRIGHT_GREEN}
_ _ _ _ _ _
__| | |_ __ __| |_ __ _ _ __ _| |_ ___ ___| |_(_)_ __ __ _
/ _` | | '_ \ _____ / _` | '__| | | |/ _` | __/ _ \/ __| __| | '_ \ / _` |
| (_| | | |_) |_____| (_| | | | |_| | (_| | || __/\__ \ |_| | | | | (_| |
\__,_|_| .__/ \__,_|_| \__,_|\__, |\__\___||___/\__|_|_| |_|\__, |
|_| |___/ |___/
检验鉴定系统(Dlp-drugTesting)
版本: ${version}
创建: ${timestamp}
${AnsiColor.DEFAULT}

View File

@@ -0,0 +1,56 @@
logging:
level:
digital.laboratory.platform.camera.mapper: debug
server:
port: 5240
mybatis:
mapper-locations: classpath*:mapper/*.xml
spring:
application:
name: @artifactId@
cloud:
nacos:
discovery:
server-addr: ${NACOS_HOST:dlp-nacos}:${NACOS_PORT:8848}
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
file-extension: yml
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
profiles:
active: @profiles.active@
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: dlp
password: 7990016
url: jdbc:mysql://dlp-mysql:3306/dlp_inspection_system?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
# hikari:
# # 指定 Hikari 连接池的最大连接数为 30。这个配置项表示连接池中允许的最大连接数超过这个数量的连接请求将被阻塞
# maximum-pool-size: 30
# data-source-properties:
# # 开启 MySQL JDBC 驱动的批处理功能。设置为 true 可以让 MySQL 驱动在批量操作时使用 rewriteBatchedStatements 特性,提高批量插入的效率。
# rewriteBatchedStatements: true
# # 启用服务器端预处理语句。设置为 true 时,将使用 MySQL 服务器端的预处理语句功能,可提高性能。
# useServerPrepStmts: true
# # 启用预处理语句缓存。设置为 true 时,将启用预处理语句缓存功能,可以提高 SQL 语句的执行效率。
# cachePrepStmts: true
# # 使用本地会话状态。设置为 true 时,将使用本地会话状态来执行 SQL 语句,可能会提高性能。
# useLocalSessionState: true
servlet:
multipart:
# 默认最大上传文件大小为1M, 单个文件大小
max-file-size: 20MB
# 默认最大请求大小为10M, 总上传的数据大小
max-request-size: 50MB
location: /tmp/upload
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
oss:
endpoint: http://dlp-minio:9000
accessKey: dlp
secretKey: 87990016
bucket-name: dlpfiles

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.inspection.mapper.SampleInfoMapper">
<resultMap id="sampleInfoMap" type="digital.laboratory.platform.inspetion.api.entity.SampleInfo">
<id property="id" column="id"/>
<result property="sampleName" column="sample_name"></result>
<result property="acceptNo" column="accept_no"></result>
<result property="quality" column="quality"></result>
<result property="unit" column="unit"></result>
<result property="sampleQuality" column="sample_quality"></result>
<result property="sampleQualityUnit" column="sample_quality_unit"></result>
<result property="source" column="source"></result>
<result property="businessId" column="business_id"></result>
<result property="status" column="status"></result>
<result property="form" column="form"></result>
<result property="businessType" column="business_type"></result>
<result property="color" column="color"></result>
<result property="analysisOption" column="analysisOption"></result>
<result property="orderNo" column="orderNo"></result>
<result property="targetObject" column="target_object" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"></result>
</resultMap>
<resultMap id="sampleInfoVoMap" type="digital.laboratory.platform.inspection.vo.SampleInfoVo"
extends="sampleInfoMap">
<result property="businessTypeName" column="business_type_name"></result>
</resultMap>
<select id="getSampleInfoList" resultMap="sampleInfoMap">
SELECT *
FROM b_sampleinfo
WHERE id in (SELECT sample_id
FROM b_assignmentinfo
WHERE business_id = (#{businessId})
and test_user = #{testUser})
and `status` = 1
order by accept_no asc
</select>
<select id="getFullSampleInfoList" resultMap="sampleInfoVoMap">
SELECT *,
CASE
WHEN business_type = '10001' THEN '缴获物检验'
WHEN business_type = '10002' THEN '生物样本案件'
WHEN business_type = '20001' THEN '毛发任务'
WHEN business_type = '20002' THEN '污水任务'
WHEN business_type = '30001' THEN '筛查事件'
ELSE ''
END as business_type_name
FROM b_sampleinfo ${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.inspection.mapper.SampleInjectorMapper">
<resultMap id="sampleInjectorMap" type="digital.laboratory.platform.inspection.entity.SampleInjector">
<id property="id" column="id"/>
<result property="type" column="type"></result>
<result property="injectorInfo" column="injector_Info"></result>
<result property="testId" column="test_id"></result>
<result property="blankStartPosition" column="blank_start_position"></result>
<result property="insertNumber" column="insert_number"></result>
<result property="resetFlag" column="reset_flag"></result>
</resultMap>
<sql id="mergeSampleAndStandardSql">
SELECT T.id,
T.number,
T.test_id,
T.result_concentration
FROM (SELECT id, sample_no AS number, test_id, result_concentration
FROM b_test_record_sample_solution
UNION ALL
SELECT id, number, test_id, result_concentration
FROM b_test_record_standard_solution) T
</sql>
<select id="queryMaterialList" resultType="digital.laboratory.platform.inspection.vo.TestRecordSolutionVO">
<include refid="mergeSampleAndStandardSql"></include>
${ew.customSqlSegment}
</select>
<select id="queryResultConcentrationList" resultType="digital.laboratory.platform.inspection.vo.ResultConcentrationVO">
<include refid="mergeSampleAndStandardSql"></include>
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.inspection.mapper.TestRecordInstrumentConditionMapper">
<resultMap id="testRecordMap" type="digital.laboratory.platform.inspection.entity.TestRecordInstrumentCondition">
<id property="id" column="id"/>
<result property="testId" column="test_Id"/>
<result property="conditionData" column="condition_data"
typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
</resultMap>
<resultMap id="testRecordInstrumentConditionVoMap" type="digital.laboratory.platform.inspection.vo.TestRecordInstrumentConditionVo"
extends="testRecordMap">
<result property="testSerialNumber" column="test_serial_number"/>
<result property="testUserName" column="test_user_name"/>
</resultMap>
<sql id="getTestRecordInstrumentConditionVoMapSQL">
select ic.*, (select t.test_serial_number from b_test_record t where t.id = ic.test_id) as test_serial_number
from b_test_record_use_condition ic
order by create_time desc
</sql>
<select id="getTestRecordInstrumentConditionVoMapByTestId" resultMap="testRecordInstrumentConditionVoMap">
select ic.*, (select t.test_serial_number from b_test_record t where t.id = ic.test_id) as test_serial_number
from b_test_record_use_condition ic
where ic.test_id = #{testId}
order by create_time desc
</select>
<select id="getTestRecordInstrumentConditionVoMapPage" resultMap="testRecordInstrumentConditionVoMap">
<include refid="getTestRecordInstrumentConditionVoMapSQL"></include>
${ew.customSqlSegment}
</select>
<select id="getTestRecordInstrumentConditionVoMapList" resultMap="testRecordInstrumentConditionVoMap">
<include refid="getTestRecordInstrumentConditionVoMapSQL"></include>
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.inspection.mapper.TestRecordMapper">
<resultMap id="testRecordMap" type="digital.laboratory.platform.inspetion.api.entity.TestRecord">
<id property="id" column="id"/>
<result property="testUserId" column="test_user_id"/>
<result property="businessType" column="business_type"/>
<result property="testSerialNumber" column="test_serial_number"/>
<result property="sampleTestList" column="sample_test_list" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="deviceIdList" column="device_id_list" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="reagentConsumablesList" column="reagent_consumables_list" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="standardSolution" column="standard_solution" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="sampleSolution" column="sample_solution" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="testMethodList" column="test_method_list" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="deviceUseCondition" column="device_use_condition" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="testAtlas" column="test_atlas"/>
</resultMap>
<resultMap id="testRecordMapVo" type="digital.laboratory.platform.inspetion.api.vo.TestRecordVo"
extends="testRecordMap">
<result property="testUserName" column="test_user_name"></result>
</resultMap>
<select id="getTestRecordMapById" resultMap="testRecordMapVo">
select t.*,
(select u.name from dlp_base.sys_user u where u.user_id = t.test_user_id) as test_user_name
from b_test_record t
where t.id = #{id}
</select>
<sql id="getTestRecordMapSQL">
select t.*,
(select u.name from dlp_base.sys_user u where u.user_id = t.test_user_id) as test_user_name
from b_test_record t
</sql>
<select id="getTestRecordMapPage" resultMap="testRecordMapVo">
<include refid="getTestRecordMapSQL"></include>
${ew.customSqlSegment}
</select>
<select id="getTestRecordMapList" resultMap="testRecordMapVo">
<include refid="getTestRecordMapSQL"></include>
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.inspection.mapper.TestRecordSampleDataMapper">
<resultMap id="testRecordMap" type="digital.laboratory.platform.inspection.vo.TestResultBusinessVO">
<id property="id" column="id"/>
<result property="id" column="id"/>
<result property="businessType" column="business_type"/>
<result property="materialType" column="material_type"/>
<result property="reportConfig" column="report_config" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="caseName" column="case_name" />
<result property="type" column="type"/>
<result property="compounds" column="compounds"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by" />
<result property="status" column="device_use_condition" />
</resultMap>
<!-- 合并委托、任务、筛查表-->
<sql id="queryCommoneBusinessSql">
SELECT T.id,
T.material_type,
T.business_type,
T.case_name,
T.type,
T.compounds,
T.report_config,
T.create_time,
T.create_by,
T.status,
T.task_start_date
FROM (SELECT id, material_type, case_name, business_type, "" AS compounds, "" AS report_config, 10000 AS type, create_time, create_by, status, "" AS task_start_date
FROM b_entrustinfo
UNION ALL
SELECT id, "" AS material_type, case_name, business_type, "" AS compounds, "" AS report_config,30000 AS type, create_time, create_by, 3 AS status, "" AS task_start_date
FROM b_case_screen
UNION ALL
SELECT id, "" AS material_type, task_name AS case_name, business_type, compounds, report_config, 20000 AS type, create_time, create_by, 3 AS status, task_start_date
FROM b_taskinfo) T
</sql>
<!-- 通过业务id查询委托表、筛查表、任务表-->
<select id="queryESTBusinessInfoList" resultType="digital.laboratory.platform.inspection.vo.ESTBusinessInfoVO">
<include refid="queryCommoneBusinessSql"></include>
${ew.customSqlSegment}
</select>
<!-- 实验结果查询中分页查询-->
<select id="queryTestResultTaskPage" resultType="digital.laboratory.platform.inspection.vo.TestResultBusinessVO">
<include refid="queryCommoneBusinessSql"></include>
${ew.customSqlSegment}
</select>
<!-- 实验结果查询中列表查询-->
<select id="queryTestResultTaskList" resultType="digital.laboratory.platform.inspection.vo.TestResultBusinessVO">
<include refid="queryCommoneBusinessSql"></include>
${ew.customSqlSegment}
</select>
<!-- 检验数据、样本溶液、检材连表查询-->
<sql id="joinDataSolutionSampleQuerySql">
SELECT
rs.id AS sample_data_id, -- 检验数据id
rs.data_result_json, -- 数据json
rs.compound_name, -- 化合物名称
rs.is_detected, -- 是否检出
rs.test_id, -- 实验id
rs.name, -- name
ss.sample_no, -- 溶液编号
si.id AS material_id, -- 检材id
si.sample_name, -- 检材名称
si.business_id, -- 业务id可能是委托、任务、筛查
si.order_no -- 委托中检材的序号
FROM
`b_test_record_sampledata` rs
LEFT JOIN `b_test_record_sample_solution` ss ON rs.sample_no = ss.sample_no
LEFT JOIN `b_sampleinfo` si ON si.id = ss.material_id OR rs.sample_no = si.accept_no -- 如果溶液关联id 不存在则通过检材受理编号关联
</sql>
<select id="queryDataSolutionSampleDTOList" resultType="digital.laboratory.platform.inspection.dto.DataSolutionSampleDTO">
<include refid="joinDataSolutionSampleQuerySql"></include>
${ew.customSqlSegment}
</select>
<!-- 根据业务id 查询检材内容然后通过检材id关联查询溶液最后通过溶液编号查询数据-->
<sql id="getTestDataByBusinessSql">
SELECT
rs.id AS sample_data_id, -- 检验数据id
rs.data_result_json, -- 数据json
rs.compound_name, -- 化合物名称
rs.is_detected, -- 是否检出
rs.test_id, -- 实验id
si.accept_no AS sample_no, -- 检材受理编号
si.id AS material_id, -- 检材id
si.sample_name, -- 检材名称
rs.sample_concentration, -- 对应的检材化合物浓度
si.business_id -- 业务id可能是委托、任务、筛查
FROM
`b_sampleinfo` si
LEFT JOIN `b_test_record_sampledata` rs ON rs.sample_no = si.accept_no
</sql>
<select id="getTestDataListByBusiness" resultType="digital.laboratory.platform.inspection.dto.DataSolutionSampleDTO">
<include refid="getTestDataByBusinessSql"></include>
${ew.customSqlSegment}
</select>
<!-- 获取任务检验数据的sql-->
<sql id="queryTaskTestDataSql">
SELECT
rs.id AS sample_data_id,-- 检验数据id
rs.data_result_json,-- 数据json
rs.compound_name,-- 化合物名称
rs.is_detected,-- 是否检出
rs.test_id,-- 实验id
rs.status, -- 任务数据的审核状态
rs.sample_concentration, -- 对应的检材化合物浓度
ss.sample_no,-- 溶液编号
si.id AS material_id,-- 检材id
si.accept_no, -- 检材编号
si.sample_name,-- 检材名称
si.business_id, -- 业务id可能是委托、任务、筛查
ti.task_name,
ti.business_type,
ti.create_time
FROM
`b_test_record_sampledata` rs
LEFT JOIN `b_test_record_sample_solution` ss ON rs.sample_no = ss.sample_no
LEFT JOIN `b_sampleinfo` si ON si.id = ss.material_id
JOIN b_taskinfo ti ON si.business_id = ti.Id
</sql>
<select id="queryWaitApproveTaskTestDataList" resultType="digital.laboratory.platform.inspection.dto.TaskTestDataDTO">
<include refid="queryTaskTestDataSql"></include>
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.inspection.mapper.TestRecordStandardSolutionMapper">
<resultMap id="testRecordStandardSolutionMap"
type="digital.laboratory.platform.inspection.entity.TestRecordStandardSolution">
<id property="id" column="id"/>
<result property="number" column="number"/>
<result property="standardName" column="standard_name"/>
<result property="dilutionName" column="dilution_name"/>
<result property="constantVolume" column="constant_volume"/>
<result property="dilutionFactor" column="dilution_factor"/>
<result property="originalConcentration" column="original_concentration"/>
<result property="resultConcentration" column="result_concentration"/>
<result property="weighingMoving" column="weighing_moving"/>
<result property="testId" column="test_id"/>
<result property="reagentCount" column="reagent_count"/>
<result property="madeDate" column="made_date"/>
<result property="expirationDate" column="expiration_date"/>
<result property="standardSubstanceNumList" column="standard_substance_num_list"
typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
</resultMap>
<resultMap id="testRecordStandardSolutionVoMap"
type="digital.laboratory.platform.inspection.vo.TestRecordStandardSolutionVo"
extends="testRecordStandardSolutionMap">
<result property="orderNum" column="order_num"></result>
</resultMap>
<sql id="getTestRecordStandardSolutionMapSQL">
SELECT ts.*, RIGHT (ts.number, 1) as order_num
FROM b_test_record_standard_solution ts
where test_id = #{testId}
order by ts.number asc
</sql>
<select id="getTestRecordStandardSolutionMapPage" resultMap="testRecordStandardSolutionVoMap">
<include refid="getTestRecordStandardSolutionMapSQL"></include>
</select>
<select id="getTestRecordStandardSolutionMapList" resultMap="testRecordStandardSolutionVoMap">
<include refid="getTestRecordStandardSolutionMapSQL"></include>
</select>
</mapper>

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="digital.laboratory.platform.inspection.mapper.TestTemplateMapper">
<resultMap id="testTemplateMap" type="digital.laboratory.platform.inspection.entity.TestTemplate">
<id property="id" column="id"/>
<result property="nature" column="nature"/>
<result property="status" column="status"/>
<result property="author" column="author"/>
<result property="useCount" column="use_count"/>
<result property="createDate" column="create_date"/>
<result property="publishDate" column="publish_date"/>
<result property="introduce" column="introduce"/>
<result property="deviceIdList" column="device_id_list" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="reagentConsumables" column="reagent_consumables" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="testMethods" column="test_methods" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="deviceUseCondition" column="device_use_condition" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
</resultMap>
<resultMap id="testTemplateMapVo" type="digital.laboratory.platform.inspection.vo.TestTemplateVo"
extends="testTemplateMap">
<result property="authorName" column="author_name"></result>
</resultMap>
<select id="getTestTemplateMapById" resultMap="testTemplateMapVo">
select t.*,
(select u.name from dlp_base.sys_user u where u.user_id = t.author) as author_name
from b_test_template t
where t.id = #{id}
</select>
<sql id="getTestTemplateMapSQL">
select t.*,
(select u.name from dlp_base.sys_user u where u.user_id = t.author) as author_name
from b_test_template t
</sql>
<select id="getTestTemplateMapPage" resultMap="testTemplateMapVo">
<include refid="getTestTemplateMapSQL"></include>
${ew.customSqlSegment}
</select>
<select id="getTestTemplateMapList" resultMap="testTemplateMapVo">
<include refid="getTestTemplateMapSQL"></include>
${ew.customSqlSegment}
</select>
</mapper>