parent
e9f135f058
commit
e2c4ae1dbd
@ -0,0 +1,15 @@ |
||||
FROM moxm/java:1.8-full |
||||
|
||||
RUN mkdir -p /dlp-identifyBook |
||||
|
||||
WORKDIR /dlp-identifyBook |
||||
|
||||
ARG JAR_FILE=target/dlp-identifyBook.jar |
||||
|
||||
COPY ${JAR_FILE} dlp-identifyBook.jar |
||||
|
||||
EXPOSE 5299 |
||||
|
||||
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" |
||||
|
||||
CMD sleep 60; java -jar dlp-identifyBook.jar $JAVA_OPTS |
@ -0,0 +1,769 @@ |
||||
/* |
||||
Navicat Premium Data Transfer |
||||
|
||||
Source Server : MariaDB |
||||
Source Server Type : MariaDB |
||||
Source Server Version : 100519 |
||||
Source Host : localhost:3308 |
||||
Source Schema : dlp_identify_book |
||||
|
||||
Target Server Type : MariaDB |
||||
Target Server Version : 100519 |
||||
File Encoding : 65001 |
||||
|
||||
Date: 01/09/2023 11:45:55 |
||||
*/ |
||||
|
||||
SET NAMES utf8mb4; |
||||
SET FOREIGN_KEY_CHECKS = 0; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_business_process_record |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_business_process_record`; |
||||
CREATE TABLE `b_business_process_record` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务流程记录ID', |
||||
`business_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '业务ID', |
||||
`business_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '业务名称', |
||||
`business_type_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '业务类型名称', |
||||
`business_status` int(10) NULL DEFAULT NULL COMMENT '业务状态', |
||||
`message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '意见', |
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', |
||||
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '业务流程记录表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_case_event |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_case_event`; |
||||
CREATE TABLE `b_case_event` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`case_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案件编号', |
||||
`third_party_sys_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '第三方系统(如现勘系统、案事件系统)编号', |
||||
`case_name` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '案件名称任务名称', |
||||
`case_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案件类型', |
||||
`happen_time` datetime(0) NULL DEFAULT NULL COMMENT '案发时间', |
||||
`case_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案发地详细地点', |
||||
`case_area` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案发地行政区划编码(到县一级)', |
||||
`case_own_org_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案件所属机构', |
||||
`case_rank` int(11) NULL DEFAULT 0 COMMENT '案件级别: 0=普通案件, 1=紧急案件, 2=加急案件', |
||||
`case_brief` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案情简要', |
||||
`comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案件备注', |
||||
`data_sources` int(11) NULL DEFAULT 0 COMMENT '数据来源,表示数据是本系统自己产生,还是来自外部系统,0表示系统自身,1表示来自外部', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '案件、事件' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_case_evidence |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_case_evidence`; |
||||
CREATE TABLE `b_case_evidence` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`evidence_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本系统物证编号', |
||||
`case_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '案件Id', |
||||
`third_party_sys_evidence_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '第三方系统(如现勘系统、案事件系统)物证编号', |
||||
`name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证名称', |
||||
`type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证类别:1. 非生物性物证;2. 生物特性物证', |
||||
`field_label_no` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '现场标牌号', |
||||
`source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证来源', |
||||
`color` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证颜色', |
||||
`form` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证性状', |
||||
`fund_name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证情况之承载物名称, 例如 棉签 2 棵, 粉末 少许', |
||||
`fund_quantity` int(11) NULL DEFAULT NULL COMMENT '物证情况之承载物数量, 例如 5 颗, 3包, ', |
||||
`fund_unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证情况之承载物单位, 例如 5 颗, 3包', |
||||
`quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '物证数量, 例如 3.8 克 或 4.5毫升', |
||||
`unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证单位, 例如 3.8 克 或 4.5毫升', |
||||
`additional_properties` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '附加属性, 如:体积3毫升,密码123,型号abc', |
||||
`person_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者姓名', |
||||
`person_cert` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者证件类型', |
||||
`person_id` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者证件号', |
||||
`person_gender` int(11) NULL DEFAULT NULL COMMENT '所有者性别,公安系统编码 1:男 2:女 0:未知', |
||||
`person_nationality` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者国籍', |
||||
`person_nation` int(11) NULL DEFAULT NULL COMMENT '所有者民族编码,公安系统编码', |
||||
`person_address` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者地址', |
||||
`person_age` int(11) NULL DEFAULT NULL COMMENT '所有者年龄', |
||||
`pack` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '包装情况:纸袋,纸盒,纸箱,自定义', |
||||
`storage_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '存储方法:常规,冷藏,特殊', |
||||
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '描述', |
||||
`comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`data_sources` int(11) NULL DEFAULT 0 COMMENT '数据来源,表示数据是本系统自己产生,还是来自外部系统,0表示系统自身,1表示来自外部', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `FK1_case_id`(`case_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '与案件相关的物证信息' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_deliverer |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_deliverer`; |
||||
CREATE TABLE `b_deliverer` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`owner_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检员拥有者userId', |
||||
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检员姓名', |
||||
`position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检员职务', |
||||
`cert` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检员证件名称', |
||||
`idnum` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检员证件编号', |
||||
`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检员电话', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
UNIQUE INDEX `name`(`owner_user_id`, `name`) USING BTREE, |
||||
INDEX `owner_user_id`(`owner_user_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '送检员' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_entrustment |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_entrustment`; |
||||
CREATE TABLE `b_entrustment` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '编号', |
||||
`case_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '案件Id', |
||||
`entrustment_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托编号', |
||||
`third_sys_entrust_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '第三方系统中的委托编号', |
||||
`entrustment_type` int(11) NULL DEFAULT 0 COMMENT '委托类型: 0=正常司法鉴定委托, 1=案前委托', |
||||
`business_type` int(11) NULL DEFAULT 0 COMMENT '业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组', |
||||
`process_instance_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '对应的流程实例Id', |
||||
`identification_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '受理Id, 通过这个可以得到鉴定号', |
||||
`entrustment_time` datetime(0) NULL DEFAULT NULL COMMENT '委托日期, 鉴定委托书打印日期', |
||||
`submitter` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托提交者, 后期可能会转给其他人user_id', |
||||
`submit_time` datetime(0) NULL DEFAULT NULL COMMENT '提交日期, 提交审核的日期', |
||||
`client_org_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定委托单位编码', |
||||
`client_org_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定委托单位名称', |
||||
`client_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '通讯地址', |
||||
`client_postcode` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮政编码', |
||||
`client_tel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话号码', |
||||
`client_fax` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '传真号码', |
||||
`identification_domain` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托鉴定专业', |
||||
`identification_org_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定机构名称', |
||||
`qualitative_analysis` tinyint(1) NULL DEFAULT 1 COMMENT '定性分析', |
||||
`quantitative_analysis` tinyint(1) NULL DEFAULT 1 COMMENT '定量分析', |
||||
`other_identification_requests` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '其他鉴定要求', |
||||
`candidate_drugs` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '候选毒品列表(drug 对象的 json array)', |
||||
`is_client_specified_method` tinyint(1) NULL DEFAULT NULL COMMENT '是否由委托方指定鉴定方法', |
||||
`client_specified_method` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托方指定的鉴定方法', |
||||
`destructive_analysis` tinyint(1) NULL DEFAULT 1 COMMENT '是否有损检验:0=无损,1=有损', |
||||
`other_identification_notes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检验的其他说明(鉴定事项确认书中要求, 审核人填写)', |
||||
`reidentification` tinyint(1) NULL DEFAULT 0 COMMENT '是否重新鉴定:0=否,1=重新鉴定', |
||||
`old_identification_org_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '原鉴定机构', |
||||
`old_identification_document` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '原鉴定文书', |
||||
`old_identification_result` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '原鉴定结果', |
||||
`reidentification_reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '重新鉴定理由', |
||||
`avoid_identifier` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '回避的鉴定人及回避事由, json 格式', |
||||
`specified_identifier` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '指定鉴定人, 委托中指定鉴定人', |
||||
`other_agreement` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '其它约定事项,打印在鉴定事项确认书中的\"约定->其他\"', |
||||
`comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`check_candidate_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '候选审核人, user_id列表, 逗号分隔', |
||||
`check_claim_user` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审核任务认领人', |
||||
`check_claim_time` datetime(0) NULL DEFAULT NULL COMMENT '审核任务认领时间', |
||||
`check_user` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '实际审核人, user_id', |
||||
`check_time` datetime(0) NULL DEFAULT NULL COMMENT '审核时间', |
||||
`check_comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审核意见: (审批通过 审批不通过及原因)', |
||||
`check_times` int(11) NOT NULL DEFAULT 0 COMMENT '审核次数记录', |
||||
`check_all_identification_material_confirmed` tinyint(1) NOT NULL DEFAULT 0 COMMENT '专业全部物证检验状态: 0=未全部审核 1=已全部审核', |
||||
`approve_candidate_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '候选审批人, user_id列表, 逗号分隔', |
||||
`approve_claim_user` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批任务认领人', |
||||
`approve_claim_time` datetime(0) NULL DEFAULT NULL COMMENT '审批任务认领时间', |
||||
`approve_user` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '实际审批人, user_id', |
||||
`approve_time` datetime(0) NULL DEFAULT NULL COMMENT '审批时间', |
||||
`approve_comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批意见: (审批通过 审批不通过及原因)', |
||||
`approve_times` int(11) NOT NULL DEFAULT 0 COMMENT '审批次数:该字段在审核通过时初始化, 值为0或1时代表初审, 2代表复审', |
||||
`deliver_confirm_user` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检确认人user_id', |
||||
`deliver_confirm_time` datetime(0) NULL DEFAULT NULL COMMENT '送检确认时间', |
||||
`deliver_confirm_comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检确认意见', |
||||
`deliver_time` datetime(0) NULL DEFAULT NULL COMMENT '送检日期', |
||||
`deliver_submitter` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检操作提交用户user_id', |
||||
`deliverer1_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人1姓名', |
||||
`deliverer1_position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人1职务', |
||||
`deliverer1_cert` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人1证件名称', |
||||
`deliverer1_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人1证件编号', |
||||
`deliverer1_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人1电话', |
||||
`deliverer2_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人2姓名', |
||||
`deliverer2_position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人2职务', |
||||
`deliverer2_cert` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人2证件名称', |
||||
`deliverer2_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人2证件编号', |
||||
`deliverer2_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检人2电话', |
||||
`accept_claim_user` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '受理任务认领人', |
||||
`accept_claim_time` datetime(0) NULL DEFAULT NULL COMMENT '受理任务认领时间', |
||||
`accept_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '受理编号', |
||||
`accept_user` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '受理人user_id', |
||||
`accept_time` datetime(0) NULL DEFAULT NULL COMMENT '受理时间', |
||||
`accept_comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '受理意见', |
||||
`identification_items_confirm_printed` tinyint(4) NULL DEFAULT 0 COMMENT '鉴定事项确认书是否已经打印', |
||||
`process_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检受理信息, 以 json 格式记录送检受理各环节的文字意见', |
||||
`report_receive_mode` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取方式: 0=自取, 1=代领, 2=邮寄', |
||||
`report_receiver1_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人1的 user id', |
||||
`report_receiver1_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人1的姓名', |
||||
`report_receiver1_position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人1的职务', |
||||
`report_receiver1_cert` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人1的证件类型', |
||||
`report_receiver1_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人1的证件号', |
||||
`report_receiver1_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人1的电话', |
||||
`report_receiver2_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人2的 user id', |
||||
`report_receiver2_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人2的姓名', |
||||
`report_receiver2_position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人2的职务', |
||||
`report_receiver2_cert` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人2的证件类型', |
||||
`report_receiver2_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人2的证件号', |
||||
`report_receiver2_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告领取人2的电话', |
||||
`report_sender_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报告发放人user_id(通常是受理员)', |
||||
`report_sent_time` datetime(0) NULL DEFAULT NULL COMMENT '报告发放时间', |
||||
`report_receiver1_signature` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '报告领取人1领取报告时的签名', |
||||
`report_receiver2_signature` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '报告领取人2领取报告时的签名', |
||||
`sample_receive_mode` int(11) NULL DEFAULT NULL COMMENT '检材领取方式: 0=自取, 1=实验室自行处理', |
||||
`sample_receiver1_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '如果检材领取人1是系统用户, 记录userId', |
||||
`sample_receiver1_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人1姓名', |
||||
`sample_receiver1_position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人1职位', |
||||
`sample_receiver1_cret` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人1证件类型', |
||||
`sample_receiver1_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人1证件号', |
||||
`sample_receiver1_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人1电话', |
||||
`sample_receiver2_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '如果检材领取人2是系统用户, 记录userId', |
||||
`sample_receiver2_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人2姓名', |
||||
`sample_receiver2_position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人2职位', |
||||
`sample_receiver2_cret` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人2证件类型', |
||||
`sample_receiver2_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人2证件号', |
||||
`sample_receiver2_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材领取人2电话', |
||||
`sample_sender_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材发放人, 鉴定机构工作人员user_id', |
||||
`sample_sent_time` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材发放时间', |
||||
`sample_receiver1_person_signature` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '检材领取人1签名', |
||||
`sample_receiver2_person_signnature` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '检材领取人2签名', |
||||
`status` int(11) NOT NULL DEFAULT 0 COMMENT '状态', |
||||
`previous_status` int(11) NULL DEFAULT NULL COMMENT '上一个状态', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`entrustment_letter_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托书pdf路径', |
||||
`identification_items_confirm_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定事项确认书pdf路径', |
||||
`transfer_status` int(11) NULL DEFAULT NULL COMMENT '移交状态, null、 1可移交。2已移交; 记录在另一张移交表', |
||||
`transfer_oper_signnature` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, |
||||
`transfer_get_signnature` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, |
||||
`transfer_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, |
||||
`transfer_no` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, |
||||
`accept_need_professional` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'x需要专业人员受理: 0=不需要 1=需要', |
||||
`data_sources` int(11) NULL DEFAULT 0 COMMENT '数据来源,表示数据是本系统自己产生,还是来自外部系统,0表示系统自身,1表示来自外部', |
||||
`accept_no_third_sys` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '第三方系统的受理编号', |
||||
`entrust_requirement` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定要求', |
||||
`post_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮寄地址', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `idx_case_id`(`case_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '委托' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_entrustment_bundle |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_entrustment_bundle`; |
||||
CREATE TABLE `b_entrustment_bundle` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'entrustment_id', |
||||
`selected_experiment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '\'[]\'' COMMENT '选中的实验, 实验id的json数组', |
||||
`approval_result` tinyint(1) NULL DEFAULT NULL COMMENT '审核审批结果: null=未审, 0=审核审批未通过, 1=审核审批已通过', |
||||
`submit_date` date NULL DEFAULT NULL COMMENT '提交给文书系统的日期', |
||||
`status` int(11) NOT NULL DEFAULT 0 COMMENT '状态: 0=刚创建, 1=已提交给文书系统, 2=文书审核审批通过, 3=已通知委托系统', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '修改人', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '委托与实验关系' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_entrustment_identification_material |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_entrustment_identification_material`; |
||||
CREATE TABLE `b_entrustment_identification_material` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '检材id', |
||||
`im_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材编号', |
||||
`evidence_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '物证id', |
||||
`case_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案件id', |
||||
`entrustment_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托id', |
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材名称', |
||||
`type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材类别:继承所取物证的类别或从物证类别选择', |
||||
`type_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材类别名称:继承所取物证的类别或从物证类别选择', |
||||
`color` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材颜色:继承所取物证颜色或手动填入', |
||||
`form` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材性状:继承所取物证性状或从物证性状类别选择', |
||||
`form_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材性状:继承所取物证性状或从物证性状类别选择', |
||||
`fund_name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许', |
||||
`fund_quantity` int(11) NULL DEFAULT NULL COMMENT '检材情况之承载物数量, 例如 5 颗, 3包', |
||||
`fund_unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材情况之承载物单位, 例如 5 颗, 3包', |
||||
`quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '检材数量, 例如 3.8 克 或 4.5毫升', |
||||
`unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '计量单位, 例如 3.8 克 或 4.5毫升', |
||||
`additional_properties` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '附加属性, 如:体积3毫升,密码123,型号abc', |
||||
`draw_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提取方法', |
||||
`person_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者姓名', |
||||
`person_cert` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者证件类型', |
||||
`person_id` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者证件号', |
||||
`person_gender` int(11) NULL DEFAULT 0 COMMENT '所有者性别,公安系统编码: 1=男 2=女 0=未知', |
||||
`person_nationality` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者国籍', |
||||
`person_nation` int(11) NULL DEFAULT NULL COMMENT '所有者民族编码,公安系统编码', |
||||
`person_address` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者地址', |
||||
`person_age` int(11) NULL DEFAULT NULL COMMENT '所有者年龄', |
||||
`take1_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人1姓名', |
||||
`take1_position` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人1职务', |
||||
`take1_cert` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人1证件名称', |
||||
`take1_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人1证件号', |
||||
`take1_phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人1联系电话', |
||||
`take2_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人2姓名', |
||||
`take2_position` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人2职务', |
||||
`take2_cert` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人2证件名称', |
||||
`take2_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人2证件号', |
||||
`take2_phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集人2联系电话', |
||||
`take_time` datetime(0) NULL DEFAULT NULL COMMENT '采集日期', |
||||
`witness_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '见证人姓名', |
||||
`witness_cert` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '见证人证件名称', |
||||
`witness_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '见证人证件号', |
||||
`pack` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '包装情况:纸袋,纸盒,纸箱,自定义', |
||||
`pack_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '包装情况名称:纸袋,纸盒,纸箱,自定义', |
||||
`storage_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '存储方法:常规,冷藏,特殊', |
||||
`candidate_drugs` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '候选毒品列表(drug 对象的 json array)', |
||||
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '检材概要', |
||||
`check_time` datetime(0) NULL DEFAULT NULL COMMENT '审核时间', |
||||
`check_passed` int(11) NULL DEFAULT 0 COMMENT '审核是否通过: 1=审核通过', |
||||
`approve_time` datetime(0) NULL DEFAULT NULL COMMENT '审批时间', |
||||
`approve_passed` int(11) NULL DEFAULT 0 COMMENT '审批是否通过: 1=审批通过', |
||||
`accept_time` datetime(0) NULL DEFAULT NULL COMMENT '受理时间', |
||||
`accept_passed` int(11) NULL DEFAULT 0 COMMENT '是否受理: 0=未受理, 1=已受理, -1=不予受理', |
||||
`provided_sample1_present` tinyint(1) NULL DEFAULT 1 COMMENT '提供的样本1是否存在, 应该总是存在', |
||||
`provided_sample1_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提供的样本1编号', |
||||
`provided_sample1_fund_quantity` int(11) NULL DEFAULT NULL COMMENT '提供的样本1承载物数量(重量), 例如 5颗, 3包', |
||||
`provided_sample1_quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '提供的样本1数量, 例如 3.8 克 或 4.5毫升', |
||||
`provided_sample2_present` tinyint(1) NULL DEFAULT 0 COMMENT '提供的样本2是否存在', |
||||
`provided_sample2_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提供的样本2编号', |
||||
`provided_sample2_fund_quantity` int(11) NULL DEFAULT NULL COMMENT '提供的样本2承载物数量(重量), 例如 5颗, 3包', |
||||
`provided_sample2_quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '提供的样本2数量, 例如 3.8 克 或 4.5毫升', |
||||
`splited_sample` tinyint(1) NULL DEFAULT 0 COMMENT '是否已分样: 0=未分样, 1=已分样', |
||||
`sample1_present` tinyint(1) NULL DEFAULT 1 COMMENT '样本1是否存在, 应该总是存在', |
||||
`sample1_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本1编号', |
||||
`sample1_fund_quantity` int(11) NULL DEFAULT NULL COMMENT '样本1承载物数量(重量), 例如 5颗, 3包', |
||||
`sample1_quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '样本1数量, 例如 3.8 克 或 4.5毫升', |
||||
`sample1_box_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本1盒子 id', |
||||
`sample2_present` tinyint(1) NULL DEFAULT 0 COMMENT '样本2是否存在', |
||||
`sample2_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本2编号', |
||||
`sample2_fund_quantity` int(11) NULL DEFAULT NULL COMMENT '样本2承载物数量(重量), 例如 5颗, 3包', |
||||
`sample2_quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '样本2数量, 例如 3.8 克 或 4.5毫升', |
||||
`sample2_box_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本2盒子 id', |
||||
`sample1_repeat_weigh` decimal(10, 4) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT '样本1的复秤重量', |
||||
`sample2_repeat_weigh` decimal(10, 4) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT '样本2的复秤重量', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`analysis_option` int(11) NULL DEFAULT NULL COMMENT '分析项目,代替原来的定性分析,定量分析字段 1.定性分析 2.定量分析 3.定性定量分析 4.关联性判断 5。其他', |
||||
`qualitative_analysis` tinyint(1) NULL DEFAULT 1 COMMENT '定性分析', |
||||
`quantitative_analysis` tinyint(1) NULL DEFAULT 1 COMMENT '定量分析', |
||||
`data_sources` int(11) NULL DEFAULT 0 COMMENT '数据来源,表示数据是本系统自己产生,还是来自外部系统,0表示系统自身,1表示来自外部', |
||||
`accept_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材的受理编号', |
||||
`order_no` int(11) NULL DEFAULT NULL COMMENT '委托检材顺序号', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `idx_case_id`(`case_id`) USING BTREE, |
||||
INDEX `idx_evidence_id`(`evidence_id`) USING BTREE, |
||||
INDEX `idx_evidence_no`(`im_no`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '检材信息' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_experiment |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_experiment`; |
||||
CREATE TABLE `b_experiment` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`method_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检验方法id', |
||||
`template_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '模板id', |
||||
`business` int(11) NULL DEFAULT NULL COMMENT '业务类型,字典中的dlp.identification.business项', |
||||
`name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '实验名称', |
||||
`op_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检验人员id', |
||||
`status` int(11) NULL DEFAULT 0 COMMENT '状态: 0=准备中; 1=实验中; 2=实验结束; -1=实验中止', |
||||
`finish_date` date NULL DEFAULT NULL COMMENT '实验完成日期', |
||||
`comments` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注说明', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '修改人', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `create_time`(`create_time`) USING BTREE, |
||||
INDEX `create_by`(`create_by`) USING BTREE, |
||||
INDEX `template_id`(`template_id`) USING BTREE, |
||||
INDEX `op_user_id`(`op_user_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '实验(检验方法的实例)' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_hair_job |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_hair_job`; |
||||
CREATE TABLE `b_hair_job` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`root_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '根任务id', |
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务名称', |
||||
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务内容描述说明', |
||||
`job_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务编号', |
||||
`job_issue_org` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务发布单位', |
||||
`job_exec_org` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务执行单位', |
||||
`job_from` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务来源', |
||||
`expiration_date` datetime(0) NULL DEFAULT NULL COMMENT '任务截止日期', |
||||
`start_date` datetime(0) NULL DEFAULT NULL COMMENT '任务开始日期', |
||||
`comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务备注', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`job_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务类型: 毛发检测/污水检测...', |
||||
`xxxjob_identify_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'xxx任务检测类型: 毛发检测:社区戒毒人员检测、公职人员、招考人员。/污水检测:污水处理厂、自然水体、其它水体。...', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '毛发检测任务' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_hair_job_identification_material |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_hair_job_identification_material`; |
||||
CREATE TABLE `b_hair_job_identification_material` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '检材id', |
||||
`job_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务id', |
||||
`job_root_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '根任务id', |
||||
`im_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材编号', |
||||
`sample1_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'A样编号', |
||||
`sample2_no` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'B样编号', |
||||
`sample1_box_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'A样盒子', |
||||
`sample2_box_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'B样盒子', |
||||
`person_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者姓名', |
||||
`person_card` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有者身份证号', |
||||
`person_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '人员类别', |
||||
`project_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '项目名称', |
||||
`execution_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '社区戒毒人员在社区执行时间是否超过 6 个月', |
||||
`drug_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '曾经吸毒种类', |
||||
`collector` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采样人', |
||||
`collector_group` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采样单位', |
||||
`collect_time` datetime(0) NULL DEFAULT NULL COMMENT '采样时间', |
||||
`collect_place` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采样地点', |
||||
`supervisor` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '监督人员', |
||||
`accept_time` datetime(0) NULL DEFAULT NULL COMMENT '受理时间', |
||||
`accept_passed` int(11) NULL DEFAULT NULL COMMENT '受理是否通过: 0=未受理, 1=受理通过, -1=受理被拒绝', |
||||
`comments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材名称', |
||||
`quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '检材数量', |
||||
`sample1_quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT 'A样数量', |
||||
`sample2_quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT 'B样数量', |
||||
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '计量单位', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `idx_evidence_no`(`im_no`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '毛发任务的检材信息' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_identification |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_identification`; |
||||
CREATE TABLE `b_identification` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`identification_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定号,受理号', |
||||
`status` int(11) NOT NULL DEFAULT 0 COMMENT '状态: 0=鉴定中,-1=已终止, 1=已结束', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人' |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '鉴定表,一个鉴定可能会有多个委托' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_identification_process |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_identification_process`; |
||||
CREATE TABLE `b_identification_process` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '委托ID', |
||||
`inspection_process` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检验过程', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '检验过程' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_identify_book |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_identify_book`; |
||||
CREATE TABLE `b_identify_book` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书消息ID', |
||||
`identify_book_relevance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '父ID', |
||||
`bucket_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '桶名称', |
||||
`path` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书路径', |
||||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书文件名(文件名命名规则:鉴定文书 + \"版本号\") ', |
||||
`version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书版本号(示例:v1.0、v1.1)', |
||||
`remarks` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
INDEX `identify_book_relevance001`(`identify_book_relevance_id`) USING BTREE, |
||||
CONSTRAINT `identify_book_relevance001` FOREIGN KEY (`identify_book_relevance_id`) REFERENCES `b_identify_book_relevance` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '鉴定文书消息表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_identify_book_approve |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_identify_book_approve`; |
||||
CREATE TABLE `b_identify_book_approve` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '鉴定文书审核审批ID', |
||||
`relevance_business_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '业务ID', |
||||
`year` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '年', |
||||
`serial_number` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '序号', |
||||
`annex_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '附件类型集合(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)', |
||||
`book_type` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文书类型:(1:检验报告,2:其它)', |
||||
`inspection_report_number` int(10) NULL DEFAULT NULL COMMENT '检验报告数量(单位:份)', |
||||
`other_number` int(10) NULL DEFAULT NULL COMMENT '其它数量(单位:份)', |
||||
`is_qualified` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '是否合格(1:检验方法、2:检验过程、3:检验图谱、4:检验结果)', |
||||
`process_user_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审核人ID', |
||||
`process_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审核人', |
||||
`process_time` datetime(0) NULL DEFAULT NULL COMMENT '审核时间', |
||||
`process_message` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审核意见', |
||||
`approve_user_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批人ID', |
||||
`approve_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批人', |
||||
`approve_time` datetime(0) NULL DEFAULT NULL COMMENT '审批时间', |
||||
`approve_message` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批意见', |
||||
`path` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书审批记录文件路径', |
||||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书文件名(文件名命名规则:鉴定文书 + \"版本号\"+\"文件类型\") ', |
||||
`version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '版本号', |
||||
`remarks` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '鉴定文书审核审批表 ' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_identify_book_relevance |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_identify_book_relevance`; |
||||
CREATE TABLE `b_identify_book_relevance` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`relevance_business_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联业务ID', |
||||
`year` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '年份', |
||||
`serial_number` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流水号', |
||||
`book_status` int(10) NOT NULL COMMENT '鉴定文书业务状态(-1:待制作,0:已制作/重新制作,1:鉴定文书-提交审核,2:鉴定文书-审核通过),-2:鉴定文书-审核未通过,3:鉴定文书-审核退回修改,4:鉴定文书-审批签发成功,-4:鉴定文书-审批拒绝签发,5:鉴定文书-审批签发退回修改,6:鉴定文书-已领取', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '鉴定文书关联中间表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_modify_supplement_apply |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_modify_supplement_apply`; |
||||
CREATE TABLE `b_modify_supplement_apply` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '鉴定文书修改补充申请ID', |
||||
`year` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '年', |
||||
`serial_number` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流水号', |
||||
`entrustment_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托ID', |
||||
`entrust_dept_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托单位', |
||||
`identify_book_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书编号', |
||||
`entrust_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托人ID', |
||||
`entrust_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托人姓名', |
||||
`apply_time` datetime(0) NULL DEFAULT NULL COMMENT '申请时间', |
||||
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '修改人ID', |
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', |
||||
`update_reason` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '修改原因', |
||||
`update_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '修改内容', |
||||
`entrust_by_sign` longblob NULL COMMENT '委托人签名', |
||||
`entrust_by_sign_date` datetime(0) NULL DEFAULT NULL COMMENT '委托人签名日期', |
||||
`update_way` int(10) NULL DEFAULT NULL COMMENT '修改方式(1:修改存档文件、2:收回原件,重新出具鉴定文书)', |
||||
`update_by_sign` longblob NULL COMMENT '修改人签字', |
||||
`update_by_sign_date` datetime(0) NULL DEFAULT NULL COMMENT '修改人签字日期', |
||||
`status` int(10) NULL DEFAULT 0 COMMENT '业务状态(1:鉴定文书-提交修改补充申请,2:鉴定文书-修改补充-审核通过,-2:鉴定文书-修改补充-审核未通过,3:鉴定文书-修改补充-审批通过,-3:鉴定文书-修改补充-审批通过)', |
||||
`empower_by_sign` longblob NULL COMMENT '授权人签字', |
||||
`empower_by_sign_date` datetime(0) NULL DEFAULT NULL COMMENT '授权人签字日期', |
||||
`empower_by_sign_opinion` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '授权签字人意见', |
||||
`technology_by_sign` longblob NULL COMMENT '技术人员签字', |
||||
`technology_by_sign_date` datetime(0) NULL DEFAULT NULL COMMENT '技术人员签字日期', |
||||
`technology_by_sign_opinion` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '技术人员签字意见', |
||||
`path` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书修改/申请文件路径', |
||||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定文书修改/申请文件名(文件名命名规则:鉴定文书 + \"版本号\"+\"文件类型\") ', |
||||
`remarks` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '鉴定文书修改补充申请表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_receive_identify_book |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_receive_identify_book`; |
||||
CREATE TABLE `b_receive_identify_book` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '领取ID', |
||||
`relevance_business_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '关联业务ID', |
||||
`receive_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '领取方式', |
||||
`recipients_user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '领取人ID', |
||||
`recipients_user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '领取人姓名', |
||||
`recipients_time` datetime(0) NULL DEFAULT NULL COMMENT '领取人时间', |
||||
`operator_user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '经办人ID', |
||||
`operator_user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '经办人姓名', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '领取鉴定文书信息表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_result_entrustment_qualitative |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_result_entrustment_qualitative`; |
||||
CREATE TABLE `b_result_entrustment_qualitative` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`experiment_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '实验id', |
||||
`sample_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, |
||||
`sample_no` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本编号,字符串,必填,长度 200', |
||||
`material_index` int(11) NOT NULL DEFAULT 0 COMMENT '检材序号, 通常是受理的序号', |
||||
`short_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本的简要名称', |
||||
`compound` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '化合物,必填,长度 200', |
||||
`result` tinyint(1) NULL DEFAULT NULL COMMENT 'negative:未检出,positive:检出', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `idx_experiment_id`(`experiment_id`) USING BTREE, |
||||
INDEX `sample_no`(`sample_no`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '委托定性分析检验结果' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_result_entrustment_ration |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_result_entrustment_ration`; |
||||
CREATE TABLE `b_result_entrustment_ration` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`experiment_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '实验id', |
||||
`sample_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, |
||||
`sample_no` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本编号,字符串,必填,长度 200', |
||||
`material_index` int(11) NOT NULL DEFAULT 0 COMMENT '检材序号, 通常是受理的序号', |
||||
`compound` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '化合物,必填,长度 200', |
||||
`result` double NULL DEFAULT NULL COMMENT '定量结果,必填,长度12, 精度8', |
||||
`comments` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注说明', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `experiment_id`(`experiment_id`) USING BTREE, |
||||
INDEX `sample_no`(`sample_no`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '委托定量检验结果' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_sample |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_sample`; |
||||
CREATE TABLE `b_sample` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '样本id', |
||||
`identification_material_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '检材id, 对应委托的检材id或毛发任务的检材id或污水任务的检材id', |
||||
`sample_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本编号', |
||||
`source` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '样本来源: entrustment/hairJob/sewageJob/....', |
||||
`entrustment_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '委托id', |
||||
`sewage_job_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '污水任务id', |
||||
`hair_job_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '毛发任务id', |
||||
`qualitative_analysis` tinyint(1) NULL DEFAULT 1 COMMENT '定性分析', |
||||
`quantitative_analysis` tinyint(1) NULL DEFAULT 1 COMMENT '定量分析', |
||||
`candidate_drugs` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '候选毒品列表(drug 对象的 json array)', |
||||
`fund_name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许', |
||||
`fund_quantity` int(11) NULL DEFAULT NULL COMMENT '检材情况之承载物数量, 如 3 颗 或 1包', |
||||
`fund_unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '检材情况之承载物单位, 例如 5 颗, 3包', |
||||
`quantity` decimal(10, 4) NULL DEFAULT NULL COMMENT '样品数量, 例如 2.3 克 或 3.1 毫升', |
||||
`unit` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '计量单位, 例如 3.8 克 或 4.5毫升', |
||||
`additional_properties` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '附加属性, 如:体积3毫升,密码123,型号abc', |
||||
`draw_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提取方法', |
||||
`box_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '盒子编号', |
||||
`sample_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'A样还是B样', |
||||
`storage_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '存储方法:常规,冷藏,特殊', |
||||
`accept_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '受理时间, 相当于检验开始时间, 用于比对花了多少时间在检验上', |
||||
`status` int(11) NULL DEFAULT NULL COMMENT '状态: 0=已受理,等分配, 1=已分配到检验人员, 2=检验完成', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`holder` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '当前持有者', |
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '样本名称', |
||||
`org_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '送检单位ID', |
||||
`accept_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '受理编号', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '检验用的样本' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_taker |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_taker`; |
||||
CREATE TABLE `b_taker` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, |
||||
`owner_user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集员拥有者userId', |
||||
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集员姓名', |
||||
`position` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集员职务', |
||||
`cert` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集员证件名称', |
||||
`idnum` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集员证件编号', |
||||
`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '采集员电话', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `owner_user_id`(`owner_user_id`) USING BTREE, |
||||
INDEX `taker_name`(`name`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '采集员' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for b_task_notification |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `b_task_notification`; |
||||
CREATE TABLE `b_task_notification` ( |
||||
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消息ID', |
||||
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '消息标题', |
||||
`type` int(10) NULL DEFAULT NULL COMMENT '任务类型(1:鉴定文书-审核,2:鉴定文书-审核退回修改,3:鉴定文书-审批,4:鉴定文书-审批退回修改,5:鉴定文书-签发/领取,6:鉴定文书修改/补充-审核,7:鉴定文书修改/补充-审批)', |
||||
`business_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '业务ID', |
||||
`submitter_user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提交人ID', |
||||
`submitter_user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提交人姓名', |
||||
`submitter_time` datetime(0) NULL DEFAULT NULL COMMENT '提交日期', |
||||
`accept_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鉴定编号', |
||||
`case_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '案件名称', |
||||
`content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '消息内容', |
||||
`transaction_personnel_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '处理人员ID', |
||||
`transaction_personnel_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '办理人姓名', |
||||
`permission_group` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '办理人权限组', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建者', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`status` int(10) NULL DEFAULT 0 COMMENT '处理状态(0: 待处理,1:已处理,2:退回修改,-1:未通过)', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '任务信息表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for examination_methods |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `examination_methods`; |
||||
CREATE TABLE `examination_methods` ( |
||||
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '方法实体类id', |
||||
`method_name` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '方法名', |
||||
`method_basis` int(5) NULL DEFAULT NULL COMMENT '方法依据', |
||||
`method_English_name` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '方法英文名', |
||||
`standard_number` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标准号', |
||||
`publishing_unit` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发布单位', |
||||
`publishing_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间', |
||||
`others` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '其他依据', |
||||
`implement_time` datetime(0) NULL DEFAULT NULL COMMENT '实施时间', |
||||
`suit_range` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '适用范围', |
||||
`normative_references` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '规范性引用文件', |
||||
`term_and_definition` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '术语和定义', |
||||
`principle` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '原理', |
||||
`method_status` int(5) NULL DEFAULT NULL COMMENT '方法当前状态', |
||||
`method_type` int(5) NULL DEFAULT NULL COMMENT '方法类型(标准/非标准)', |
||||
`reagent` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '试剂', |
||||
`instruments_and_equipment` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '仪器和设备', |
||||
`quantitative_result_evaluation` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '定量结果评价', |
||||
`operation_method` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '操作方法', |
||||
`guidelines_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '指导书id', |
||||
`expression_of_results` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '结果表述', |
||||
`review_time` datetime(0) NULL DEFAULT NULL COMMENT '评审时间', |
||||
`reviewer` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '评审人', |
||||
`review_results` int(5) NULL DEFAULT NULL COMMENT '评审结果', |
||||
`review_opinion` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '评审意见', |
||||
`create_time` datetime(0) NULL DEFAULT current_timestamp COMMENT '创建时间--录入时间', |
||||
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人--录入人', |
||||
`update_time` datetime(0) NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`annex_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '附件url', |
||||
`annex_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '附件名称', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '检验方法' ROW_FORMAT = Dynamic; |
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1; |
@ -0,0 +1,17 @@ |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60000', 'root', '鉴定文书管理', '', 60000, 2, '鉴定文书管理', '/book', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:28:23', NULL); |
||||
-- START 鉴定文书制作审核审批签发 -- |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60100', '60000', '鉴定文书制作/审核/审批/领取管理', '', 60100, 1, '鉴定文书制作/审核/审批/领取管理', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60110', '60100', '鉴定文书制作/修改', 'IdentifyBookProductionRrSubmissionProcess', 60110, 1, '文书制作/修改(实验人员)', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60120', '60100', '鉴定文书审核', 'IdentifyBookSH', 60120, 1, '鉴定文书审核(授权签字人)', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60130', '60100', '鉴定文书审批', 'IdentifyBookSP', 60130, 1, '鉴定文书审批(主任)', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60140', '60100', '鉴定文书签发/领取', 'IdentifyBookQF', 60140, 1, '鉴定文书签发/领取(实验人员)', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
|
||||
-- END 鉴定文书制作审核审批 -- |
||||
|
||||
-- START 鉴定文书修改补充申请/审核/审批 -- |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60200', '60000', '鉴定文书修改补充申请/审核/审批管理', '', 60200, 1, '鉴定文书修改补充申请/审核/审批管理', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60210', '60200', '鉴定文修改补充申请/提交', 'IdentifyBookModificationAndSupplementationSQ', 60210, 1, '鉴定文修改补充申请/提交(实验人员)', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60220', '60200', '鉴定文书修改补充审核', 'IdentifyBookModificationAndSupplementationSH', 60220, 1, '鉴定文书修改补充审核(授权签字人)', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
INSERT INTO `dlp_base`.`sys_permission`(`permission_id`, `parent_id`, `name`, `permission`, `sort`, `type`, `comments`, `path`, `icon`, `keep_alive`, `component`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('60230', '60200', '鉴定文书修改补充审批', 'IdentifyBookModificationAndSupplementationSP', 60230, 1, '鉴定文书修改补充审批(主任)', '', 'icon-guanwangfangwen', '0', NULL, '2023-08-25 14:28:23', NULL, '2023-08-25 14:46:29', NULL); |
||||
-- END 鉴定文书修改补充申请/审核/审批 -- |
||||
|
@ -0,0 +1,3 @@ |
||||
INSERT INTO `dlp_base`.`sys_dictionary`(`id`, `module`, `type`, `sort`, `code`, `label`, `css_class`, `list_class`, `default_value`, `description`, `comments`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('dlp.entrustment.identifyBookApproveTemplate', NULL, 'dlp.entrustment', 0, 'identifyBookApproveTemplate', 'NADL-Shaanxi-CX-22-01-2021鉴定文书审批表001.doc', NULL, NULL, 1, NULL, '鉴定文书审批模板', '2021-12-27 17:22:32', '1', '2023-05-26 00:56:13', '1'); |
||||
INSERT INTO `dlp_base`.`sys_dictionary`(`id`, `module`, `type`, `sort`, `code`, `label`, `css_class`, `list_class`, `default_value`, `description`, `comments`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('dlp.entrustment.identifyBookModifySupplementApplyTemplate', NULL, 'dlp.entrustment', 0, 'identifyBookModifySupplementApplyTemplate', 'NADL-Shaanxi-CX-22-02-2021鉴定文书修改补充申请表001.doc', NULL, NULL, 1, NULL, '鉴定文书修改补充申请模板', '2021-12-27 17:22:32', '1', '2023-05-26 00:56:13', '1'); |
||||
INSERT INTO `dlp_base`.`sys_dictionary`(`id`, `module`, `type`, `sort`, `code`, `label`, `css_class`, `list_class`, `default_value`, `description`, `comments`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('dlp.entrustment.identifyBookTemplate', NULL, 'dlp.entrustment', 0, 'identifyBookTemplate', 'NADL-Shaanxi-CX-22-03-2021国家毒品实验室检验鉴定报告文号和格式模板001.docx', NULL, NULL, 1, NULL, '鉴定文书模板', '2021-12-27 17:22:32', '1', '2023-05-26 00:56:09', '1'); |
@ -0,0 +1,269 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>DigitalLaboratoryPlatform</artifactId> |
||||
<version>2022.10.11-snapshots</version> |
||||
</parent> |
||||
<artifactId>dlp-identifyBook</artifactId> |
||||
<packaging>jar</packaging> |
||||
<description>DLP 鉴定文书管理系统</description> |
||||
<properties> |
||||
<maven.compiler.target>1.8</maven.compiler.target> |
||||
<maven.compiler.source>1.8</maven.compiler.source> |
||||
<junit.version>5.7.1</junit.version> |
||||
<dlp.version>2022.10.11-snapshots</dlp.version> |
||||
</properties> |
||||
|
||||
<dependencies> |
||||
<!--注册中心客户端--> |
||||
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery --> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> |
||||
<version>2021.1</version> |
||||
</dependency> |
||||
|
||||
<!--配置中心客户端--> |
||||
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config --> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> |
||||
<version>2021.1</version> |
||||
</dependency> |
||||
|
||||
<!-- swagger --> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-swagger</artifactId> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-web</artifactId> |
||||
<version>2.5.5</version> |
||||
</dependency> |
||||
<!--断路器依赖--> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-feign</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
|
||||
<!--security--> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-security</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
|
||||
<!--JDBC相关--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-jdbc</artifactId> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-test</artifactId> |
||||
<scope>test</scope> |
||||
</dependency> |
||||
|
||||
<!--core 工具类--> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-core</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
|
||||
|
||||
<!-- 数据库 mysql依赖 --> |
||||
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> |
||||
<dependency> |
||||
<groupId>mysql</groupId> |
||||
<artifactId>mysql-connector-java</artifactId> |
||||
<version>8.0.28</version> |
||||
</dependency> |
||||
|
||||
<!--undertow容器--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-undertow</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- log --> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-log</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-oss</artifactId> |
||||
<version>${dlp.version}</version> |
||||
<scope>compile</scope> |
||||
</dependency> |
||||
|
||||
<!-- 业务数据的依赖 --> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-admin-api</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-remote-word2pdf</artifactId> |
||||
<version>${dlp.version}</version> |
||||
<scope>compile</scope> |
||||
</dependency> |
||||
<!-- 鉴定数据依赖 --> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-common-remote-identification</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
<!--检验系统的数据接口--> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-drugtesting-api</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
<!-- TODO poi-tl word 模板处理器 http://deepoove.com/poi-tl --> |
||||
<dependency> |
||||
<groupId>com.deepoove</groupId> |
||||
<artifactId>poi-tl</artifactId> |
||||
<version>1.12.0</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>commons-io</groupId> |
||||
<artifactId>commons-io</artifactId> |
||||
<version>2.11.0</version> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>fr.opensagres.xdocreport</groupId> |
||||
<artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId> |
||||
<version>2.0.3</version> |
||||
</dependency> |
||||
|
||||
<!--QR Code--> |
||||
<dependency> |
||||
<groupId>com.google.zxing</groupId> |
||||
<artifactId>core</artifactId> |
||||
<version>3.5.0</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.google.zxing</groupId> |
||||
<artifactId>javase</artifactId> |
||||
<version>3.5.0</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.googlecode.json-simple</groupId> |
||||
<artifactId>json-simple</artifactId> |
||||
<version>1.1</version> |
||||
</dependency> |
||||
<!--aspose 破解 word转pdf--> |
||||
<dependency> |
||||
<groupId>com.aspose</groupId> |
||||
<artifactId>aspose-words</artifactId> |
||||
<version>1.0.1</version> |
||||
</dependency> |
||||
<!-- MultipartFile 相关--> |
||||
<dependency> |
||||
<groupId>org.springframework</groupId> |
||||
<artifactId>spring-test</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 第三方系统api工具--> |
||||
<dependency> |
||||
<groupId>digital.laboratory.platform</groupId> |
||||
<artifactId>dlp-othersys-api</artifactId> |
||||
<version>${dlp.version}</version> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.apache.maven.plugins</groupId> |
||||
<artifactId>maven-compiler-plugin</artifactId> |
||||
<configuration> |
||||
<compilerArgument>-Xlint:unchecked</compilerArgument> |
||||
</configuration> |
||||
<version>3.8.1</version> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>io.fabric8</groupId> |
||||
<artifactId>docker-maven-plugin</artifactId> |
||||
</plugin> |
||||
|
||||
<plugin> |
||||
<groupId>org.codehaus.mojo</groupId> |
||||
<artifactId>build-helper-maven-plugin</artifactId> |
||||
<version>3.3.0</version> |
||||
<executions> |
||||
<execution> |
||||
<id>timestamp-property</id> |
||||
<goals> |
||||
<goal>timestamp-property</goal> |
||||
</goals> |
||||
<configuration> |
||||
<name>timestamp</name> |
||||
<pattern>yyyy-MM-dd HH:mm:ss</pattern> |
||||
<locale>zh_CN</locale> |
||||
<timeZone>Asia/Shanghai</timeZone> |
||||
</configuration> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
|
||||
|
||||
<plugin> |
||||
<artifactId>maven-resources-plugin</artifactId> |
||||
<version>3.1.0</version> |
||||
<executions> |
||||
<execution> |
||||
<id>copy-resource-one</id> |
||||
<phase>install</phase> |
||||
<goals> |
||||
<goal>copy-resources</goal> |
||||
</goals> |
||||
<configuration> |
||||
<outputDirectory>${basedir}/../../out</outputDirectory> |
||||
<resources> |
||||
<resource> |
||||
<directory>${basedir}/target</directory> |
||||
<includes> |
||||
<include>${project.artifactId}.jar</include> |
||||
</includes> |
||||
</resource> |
||||
</resources> |
||||
</configuration> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
|
||||
</plugins> |
||||
</build> |
||||
<profiles> |
||||
<profile> |
||||
<id>dev</id> |
||||
<properties> |
||||
<!-- 环境标识, 需要与配置文件的名称相对应 --> |
||||
<profiles.active>dev</profiles.active> |
||||
</properties> |
||||
<activation> |
||||
<!-- 默认环境 --> |
||||
<activeByDefault>true</activeByDefault> |
||||
</activation> |
||||
</profile> |
||||
</profiles> |
||||
|
||||
|
||||
</project> |
@ -0,0 +1,22 @@ |
||||
package digital.laboratory.platform.identifybook; |
||||
|
||||
import digital.laboratory.platform.common.feign.annotation.EnableDLPFeignClients; |
||||
import digital.laboratory.platform.common.security.annotation.EnableDLPResourceServer; |
||||
import digital.laboratory.platform.common.swagger.annotation.EnableDLPSwagger2; |
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; |
||||
import org.springframework.scheduling.annotation.EnableAsync; |
||||
|
||||
@EnableDLPSwagger2 |
||||
@EnableDLPFeignClients |
||||
@EnableDiscoveryClient |
||||
@EnableDLPResourceServer |
||||
@SpringBootApplication(scanBasePackages={"digital.laboratory.platform"}) |
||||
public class DlpIdentifyBookApplication { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(DlpIdentifyBookApplication.class, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,130 @@ |
||||
package digital.laboratory.platform.identifybook.config; |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
/** |
||||
* 贵阳禁毒-情报平台推送数据配置 |
||||
*/ |
||||
@Component |
||||
@ConfigurationProperties(prefix = "gyjd.labscare.api") |
||||
public class ApiPathProperties { |
||||
/** |
||||
* api的ip |
||||
*/ |
||||
private String host; |
||||
|
||||
/** |
||||
* 委托书推送的接口 |
||||
*/ |
||||
private String entrustLetter; |
||||
|
||||
/** |
||||
* 确认书推送接口 |
||||
*/ |
||||
private String confirmLetter; |
||||
|
||||
/** |
||||
* 生物检材定性记录 |
||||
*/ |
||||
private String biologyQualitativeRecord; |
||||
|
||||
/** |
||||
* 普通检材定性记录(非红外报告) |
||||
*/ |
||||
private String nonInfraredGeneralQualitativeRecord; |
||||
|
||||
/** |
||||
* 普通检材定性记录(红外报告) |
||||
*/ |
||||
private String infraredGeneralQualitativeRecord; |
||||
|
||||
/** |
||||
* 鉴定报告审批表 |
||||
*/ |
||||
private String appraisalReportApprovalForm; |
||||
|
||||
/** |
||||
* 定性报告 |
||||
*/ |
||||
private String qualitativeReport; |
||||
|
||||
/** |
||||
* 归档报告信息 |
||||
*/ |
||||
private String archiveReportInfo; |
||||
|
||||
/************************************ Getter Setter 方法 ***********************************/ |
||||
/******************************** Getter 方法会拼接上host返回 ***************************/ |
||||
public String getHost() { |
||||
return host; |
||||
} |
||||
|
||||
public void setHost(String host) { |
||||
this.host = host; |
||||
} |
||||
|
||||
public String getEntrustLetter() { |
||||
return host + entrustLetter; |
||||
} |
||||
|
||||
public void setEntrustLetter(String entrustLetter) { |
||||
this.entrustLetter = entrustLetter; |
||||
} |
||||
|
||||
public String getConfirmLetter() { |
||||
return host + confirmLetter; |
||||
} |
||||
|
||||
public void setConfirmLetter(String confirmLetter) { |
||||
this.confirmLetter = confirmLetter; |
||||
} |
||||
|
||||
public String getBiologyQualitativeRecord() { |
||||
return host + biologyQualitativeRecord; |
||||
} |
||||
|
||||
public void setBiologyQualitativeRecord(String biologyQualitativeRecord) { |
||||
this.biologyQualitativeRecord = biologyQualitativeRecord; |
||||
} |
||||
|
||||
public String getNonInfraredGeneralQualitativeRecord() { |
||||
return host + nonInfraredGeneralQualitativeRecord; |
||||
} |
||||
|
||||
public void setNonInfraredGeneralQualitativeRecord(String nonInfraredGeneralQualitativeRecord) { |
||||
this.nonInfraredGeneralQualitativeRecord = nonInfraredGeneralQualitativeRecord; |
||||
} |
||||
|
||||
public String getInfraredGeneralQualitativeRecord() { |
||||
return host + infraredGeneralQualitativeRecord; |
||||
} |
||||
|
||||
public void setInfraredGeneralQualitativeRecord(String infraredGeneralQualitativeRecord) { |
||||
this.infraredGeneralQualitativeRecord = infraredGeneralQualitativeRecord; |
||||
} |
||||
|
||||
public String getAppraisalReportApprovalForm() { |
||||
return host + appraisalReportApprovalForm; |
||||
} |
||||
|
||||
public void setAppraisalReportApprovalForm(String appraisalReportApprovalForm) { |
||||
this.appraisalReportApprovalForm = appraisalReportApprovalForm; |
||||
} |
||||
|
||||
public String getQualitativeReport() { |
||||
return host + qualitativeReport; |
||||
} |
||||
|
||||
public void setQualitativeReport(String qualitativeReport) { |
||||
this.qualitativeReport = qualitativeReport; |
||||
} |
||||
|
||||
public String getArchiveReportInfo() { |
||||
return host + archiveReportInfo; |
||||
} |
||||
|
||||
public void setArchiveReportInfo(String archiveReportInfo) { |
||||
this.archiveReportInfo = archiveReportInfo; |
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
package digital.laboratory.platform.identifybook.config; |
||||
|
||||
import feign.RequestInterceptor; |
||||
import feign.RequestTemplate; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.security.core.Authentication; |
||||
import org.springframework.security.core.context.SecurityContext; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails; |
||||
|
||||
/** |
||||
* Feign 请求拦截器 |
||||
* Feign Client 向业务系统发出请求的时候, 把 Token 带上, 以用户自己的身份调用业务系统。 |
||||
* 目的是在业务系统中识别用户是谁, 允许或禁止用户进行对应的操作。 |
||||
*/ |
||||
|
||||
|
||||
@Configuration |
||||
public class FeignOauth2RequestInterceptor implements RequestInterceptor { |
||||
|
||||
private final String AUTHORIZATION_HEADER = "Authorization"; |
||||
private final String BEARER_TOKEN_TYPE = "Bearer"; |
||||
|
||||
@Override |
||||
public void apply(RequestTemplate requestTemplate) { |
||||
//System.out.println(String.format("======================================================================================"));
|
||||
//System.out.println(String.format("dlp-admin-service, FeignOauth2RequestInterceptor(), feignTarget().name()=%s target.url=%s url=%s path=%s", requestTemplate.feignTarget().name(), requestTemplate.feignTarget().url(), requestTemplate.url(), requestTemplate.path()));
|
||||
|
||||
SecurityContext securityContext = SecurityContextHolder.getContext(); |
||||
Authentication authentication = securityContext.getAuthentication(); |
||||
if (authentication != null && authentication.getDetails() instanceof OAuth2AuthenticationDetails) { |
||||
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) authentication.getDetails(); |
||||
//System.out.println(String.format("FeignOauth2RequestInterceptor() Authorization, token=%s", details.getTokenValue()));
|
||||
requestTemplate.header(AUTHORIZATION_HEADER, String.format("%s %s", BEARER_TOKEN_TYPE, details.getTokenValue())); |
||||
} |
||||
else { |
||||
//System.out.println(String.format("authentication=%s", authentication));
|
||||
|
||||
} |
||||
//System.out.println(String.format("======================================================================================"));
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-27 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("//b-identification-process") |
||||
public class BIdentificationProcessController { |
||||
|
||||
} |
@ -0,0 +1,734 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil; |
||||
import cn.hutool.core.collection.CollUtil; |
||||
import cn.hutool.core.date.LocalDateTimeUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.alibaba.cloud.commons.lang.StringUtils; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import digital.laboratory.platform.common.core.constant.OSSDirectoryConstants; |
||||
import digital.laboratory.platform.common.core.util.ClassUtils; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.feign.RemoteGenerateWordService; |
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser; |
||||
import digital.laboratory.platform.identifybook.dto.EntrustCaseDTO; |
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus; |
||||
import digital.laboratory.platform.identifybook.emums.PermissionGroupEnum; |
||||
import digital.laboratory.platform.identifybook.emums.TaskTypeEnum; |
||||
import digital.laboratory.platform.identifybook.entity.*; |
||||
import digital.laboratory.platform.identifybook.event.PushDataToLabsCareEvent; |
||||
import digital.laboratory.platform.identifybook.handler.AppStartupRunner; |
||||
import digital.laboratory.platform.identifybook.req.BusinessProcessRecordREQ; |
||||
import digital.laboratory.platform.identifybook.service.*; |
||||
import digital.laboratory.platform.identifybook.vo.BusinessProcessRecordVO; |
||||
import digital.laboratory.platform.sys.feign.RemoteUserService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.context.ApplicationContext; |
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication; |
||||
import org.springframework.transaction.annotation.Transactional; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import java.security.Principal; |
||||
import java.time.LocalDateTime; |
||||
import java.time.ZoneId; |
||||
import java.util.Collections; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* <p> |
||||
* 业务流程 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "业务流程-相关接口") |
||||
@RequestMapping("/book/businessProcessRecord") |
||||
public class BusinessProcessRecordController { |
||||
|
||||
private final RemoteUserService remoteUserService; |
||||
|
||||
private final IBusinessProcessRecordService businessProcessRecordService; |
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService; |
||||
private final IIdentifyBookApproveService identifyBookApproveService; |
||||
private final IEntrustmentService entrustmentService; |
||||
|
||||
private final IEntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService; |
||||
// 根据模板身材word工具服务
|
||||
private final RemoteGenerateWordService remoteGenerateWordService; |
||||
|
||||
private final IModifySupplementApplyService modifySupplementApplyService; |
||||
|
||||
private final IReceiveIdentifyBookService receiveIdentifyBookService; |
||||
|
||||
private final ITaskNotificationService taskNotificationService; |
||||
|
||||
private final ApplicationContext applicationContext; |
||||
|
||||
@ApiOperation(value = "通过条件分页查询业务流程记录列表", notes = "通过条件分页查询业务流程记录列表") |
||||
@PostMapping("/search") |
||||
public R<IPage<BusinessProcessRecord>> findBusinessProcessRecordPage(@RequestBody BusinessProcessRecordREQ req){ |
||||
return R.ok(businessProcessRecordService.page(req.getPage(), null)); |
||||
} |
||||
|
||||
@ApiOperation(value = "根据业务ID查询业务流程记录", notes = "根据业务ID查询业务流程记录") |
||||
@PostMapping("/view/{businessId}") |
||||
public R<List<BusinessProcessRecord>> view(@PathVariable(value = "businessId") String businessId){ |
||||
List<BusinessProcessRecord> businessProcessRecordList = businessProcessRecordService.list( |
||||
new LambdaQueryWrapper<BusinessProcessRecord>() |
||||
.eq(BusinessProcessRecord::getBusinessId, businessId) |
||||
.orderByAsc(BusinessProcessRecord::getCreateTime)); |
||||
return R.ok(businessProcessRecordList); |
||||
} |
||||
|
||||
@ApiOperation(value = "鉴定文书审批退回修改—重新提交", notes = "鉴定文书审批退回修改——重新提交") |
||||
@PostMapping("/identifyBookSPTHXGCXTJ") |
||||
public R<List<BusinessProcessRecord>> identifyBookSPTHXGCXTJ(@RequestBody BusinessProcessRecordVO vo, HttpServletRequest request){ |
||||
boolean update = identifyBookRelevanceService.update(new LambdaUpdateWrapper<IdentifyBookRelevance>() |
||||
.set(IdentifyBookRelevance::getBookStatus, vo.getBusinessStatus()) |
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, vo.getBusinessId())); |
||||
if(update){ |
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
|
||||
TaskNotification taskNotification = new TaskNotification(); |
||||
BusinessProcessRecord record = new BusinessProcessRecord(); |
||||
record.setBusinessId(vo.getBusinessId()); |
||||
record.setBusinessName("鉴定文书审批退回修改-重新提交"); |
||||
record.setBusinessStatus(Integer.parseInt(vo.getBusinessStatus())); |
||||
if (BusinessStatus.JD_WS_SH_TG.getCode().equals(vo.getBusinessStatus())){ |
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_TG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "鉴定文书审批退回修改-重新提交"); |
||||
businessProcessRecordService.save(record); |
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1); |
||||
if(flag){ |
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SP.getCode()), |
||||
TaskTypeEnum.JD_WS_SP.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookSP.getCode()); |
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
} |
||||
} |
||||
} |
||||
return R.ok(); |
||||
} |
||||
|
||||
@ApiOperation(value = "鉴定文书(提交/审核/审批/签发)", notes = "鉴定文书(提交/审核/审批/签发)") |
||||
@Transactional |
||||
@PostMapping("/identifyBookTJSHSPQF") |
||||
public R<Object> identifyBookTJSHSPQF(@RequestBody BusinessProcessRecordVO vo, HttpServletRequest request){ |
||||
boolean update = identifyBookRelevanceService.update(new LambdaUpdateWrapper<IdentifyBookRelevance>() |
||||
.set(IdentifyBookRelevance::getBookStatus, vo.getBusinessStatus()) |
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, vo.getBusinessId())); |
||||
|
||||
if(update){ |
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
|
||||
TaskNotification taskNotification = new TaskNotification(); |
||||
BusinessProcessRecord record = new BusinessProcessRecord(); |
||||
record.setBusinessId(vo.getBusinessId()); |
||||
record.setBusinessName("鉴定文书提交审核审批签发"); |
||||
record.setBusinessStatus(Integer.parseInt(vo.getBusinessStatus())); |
||||
|
||||
if(BusinessStatus.JD_WS_TJ_SH.getCode().equals(vo.getBusinessStatus())){ |
||||
|
||||
// 提交审核
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_TJ_SH.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_TJ_SH.getDesc()); |
||||
|
||||
// 主要处理是否是退回修改的业务
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1); |
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SH.getCode()), |
||||
TaskTypeEnum.JD_WS_SH.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookSH.getCode()); |
||||
if(!flag){ |
||||
|
||||
taskNotification.setSubmitterUserId(dlpUser.getId()); |
||||
taskNotification.setSubmitterUserName(dlpUser.getName()); |
||||
Entrustment entrustment = entrustmentService.getById(vo.getBusinessId()); |
||||
taskNotification.setAcceptNo(entrustment.getAcceptNo()); |
||||
//CaseEvent caseEvent = caseEventService.getById(entrustment.getCaseId());
|
||||
taskNotification.setCaseName(entrustment.getCaseName()); |
||||
} |
||||
|
||||
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
|
||||
} else if (BusinessStatus.JD_WS_SH_TG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审核通过-保存或更新鉴定文书审审批表
|
||||
IdentifyBookApprove one = new IdentifyBookApprove(); |
||||
one.setRelevanceBusinessId(vo.getBusinessId()); |
||||
one.setProcessUserBy(dlpUser.getId()); |
||||
one.setProcessUserName(dlpUser.getName()); |
||||
one.setProcessTime(new Date()); |
||||
one.setProcessMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审核通过"); |
||||
one.setAnnexType(vo.getApproveVO().getAnnexType()); |
||||
one.setBookType(vo.getApproveVO().getBookType()); |
||||
one.setInspectionReportNumber(vo.getApproveVO().getInspectionReportNumber()); |
||||
one.setOtherNumber(vo.getApproveVO().getOtherNumber()); |
||||
one.setIsQualified(vo.getApproveVO().getIsQualified()); |
||||
|
||||
identifyBookApproveService.saveOrUpdate(one); |
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_TG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SH_TG.getDesc()); |
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1); |
||||
if(flag){ |
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SP.getCode()), |
||||
TaskTypeEnum.JD_WS_SP.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookSP.getCode()); |
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
} |
||||
|
||||
} else if (BusinessStatus.JD_WS_SH_WTG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审核未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_WTG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SH_WTG.getDesc()); |
||||
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){ |
||||
|
||||
} |
||||
|
||||
} else if (BusinessStatus.JD_WS_SH_TH_XG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审核-退回修改
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_TH_XG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SH_TH_XG.getDesc()); |
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 2); |
||||
if(flag){ |
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SH_TH_XG.getCode()), |
||||
TaskTypeEnum.JD_WS_SH_TH_XG.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookProductionRrSubmissionProcess.getCode()); |
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
} |
||||
|
||||
} else if (BusinessStatus.JD_WS_SP_QF_TG.getCode().equals(vo.getBusinessStatus())){ |
||||
// TODO 审批签发成功--更新鉴定文书并生成鉴定文书审批表
|
||||
IdentifyBookApprove one = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>() |
||||
.eq(IdentifyBookApprove::getRelevanceBusinessId, vo.getBusinessId()) |
||||
.orderByDesc(IdentifyBookApprove::getCreateTime)).get(0); |
||||
|
||||
one.setRelevanceBusinessId(vo.getBusinessId()); |
||||
one.setApproveUserBy(dlpUser.getId()); |
||||
one.setApproveUserName(dlpUser.getName()); |
||||
one.setApproveTime(new Date()); |
||||
one.setApproveMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审批通过"); |
||||
this.generateIdentifyBookApprove(one); |
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SP_QF_TG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SP_QF_TG.getDesc()); |
||||
// 审批签发通过-通知鉴定系统
|
||||
//remoteIdentificationService.putSetReportApplovalPassed(vo.getBusinessId()); 注释掉以前的通知方式
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1); |
||||
if(flag){ |
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_QF_LQ.getCode()), |
||||
TaskTypeEnum.JD_WS_QF_LQ.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookQF.getCode()); |
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
|
||||
// 发布推送事件
|
||||
applicationContext.publishEvent(new PushDataToLabsCareEvent(this, vo.getBusinessId(), Collections.synchronizedSet(CollUtil.newHashSet(5, 6)))); |
||||
// applicationContext.publishEvent(new PushDataToLabsCareEvent(this, vo.getBusinessId(), 6));
|
||||
// applicationContext.publishEvent(new PushDataToLabsCareEvent(this, vo.getBusinessId(), 7));
|
||||
} |
||||
|
||||
} else if (BusinessStatus.JD_WS_SP_QF_WTG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审批签发未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SP_QF_WTG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SP_QF_WTG.getDesc()); |
||||
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){ |
||||
|
||||
} |
||||
|
||||
} else if (BusinessStatus.JD_WS_SP_QF_TH_XG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审批签发退回修改
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SP_QF_TH_XG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SP_QF_TH_XG.getDesc()); |
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 2); |
||||
if(flag){ |
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SP_TH_XG.getCode()), |
||||
TaskTypeEnum.JD_WS_SP_TH_XG.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookProductionRrSubmissionProcess.getCode()); |
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
} |
||||
|
||||
}else if (BusinessStatus.JD_WS_YLQ.getCode().equals(vo.getBusinessStatus())){ |
||||
// TODO 领取成功--生成鉴定文书领取信息
|
||||
ReceiveIdentifyBook receiveIdentifyBook = new ReceiveIdentifyBook(); |
||||
BeanUtil.copyProperties(vo, receiveIdentifyBook); |
||||
if (receiveIdentifyBookService.count(Wrappers.<ReceiveIdentifyBook>lambdaQuery().eq(ReceiveIdentifyBook::getRelevanceBusinessId, vo.getBusinessId())) > 0) { |
||||
return R.failed("文书已被领取,请勿重复领取!"); |
||||
} |
||||
receiveIdentifyBook.setRelevanceBusinessId(vo.getBusinessId()); |
||||
receiveIdentifyBook.setOperatorUserId(dlpUser.getId()); |
||||
receiveIdentifyBook.setOperatorUserName(dlpUser.getName()); |
||||
receiveIdentifyBookService.save(receiveIdentifyBook); |
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_YLQ.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_YLQ.getDesc()); |
||||
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1)){ |
||||
|
||||
} |
||||
|
||||
} else { |
||||
return R.failed("参数-业务状态未定义,请确认传入的业务状态是否正确或联系管理员!!!"); |
||||
} |
||||
if(businessProcessRecordService.save(record)){ |
||||
return R.ok(); |
||||
} |
||||
} |
||||
return R.failed("系统异常,请联系管理员!!!"); |
||||
} |
||||
|
||||
@ApiOperation(value = "鉴定文书修改/补充(提交/审核/审批)", notes = "鉴定文书修改/补充(提交/审核/审批)") |
||||
@Transactional |
||||
@PostMapping("/identifyBookModifySupplementTJSHSP") |
||||
public R<String> identifyBookModifySupplementTJSHSP(@RequestBody BusinessProcessRecordVO vo, HttpServletRequest request){ |
||||
boolean update = modifySupplementApplyService.update(new LambdaUpdateWrapper<ModifySupplementApply>() |
||||
.set(ModifySupplementApply::getStatus, vo.getBusinessStatus()) |
||||
.eq(ModifySupplementApply::getId, vo.getId())); |
||||
if(update){ |
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
|
||||
TaskNotification taskNotification = new TaskNotification(); |
||||
|
||||
ModifySupplementApply modifySupplementApply = modifySupplementApplyService.getById(vo.getId()); |
||||
BusinessProcessRecord record = new BusinessProcessRecord(); |
||||
record.setBusinessId(vo.getBusinessId()); |
||||
record.setBusinessName("鉴定文书修改/补充申请"); |
||||
record.setBusinessStatus(Integer.parseInt(vo.getBusinessStatus())); |
||||
if(BusinessStatus.JD_WS_XG_BC_SQ.getCode().equals(vo.getBusinessStatus())) { |
||||
// 提交审核
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SQ.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SQ.getDesc()); |
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_XG_BC_SH.getCode()), |
||||
TaskTypeEnum.JD_WS_XG_BC_SH.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookModificationAndSupplementationSH.getCode()); |
||||
taskNotification.setSubmitterUserId(dlpUser.getId()); |
||||
taskNotification.setSubmitterUserName(dlpUser.getName()); |
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId()); |
||||
taskNotification.setAcceptNo(entrustment.getAcceptNo()); |
||||
//CaseEvent caseEvent = caseEventService.getById(entrustment.getCaseId());
|
||||
//taskNotification.setCaseName(caseEvent.getCaseName());
|
||||
taskNotification.setCaseName(entrustment.getCaseName()); |
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
} else if (BusinessStatus.JD_WS_XG_BC_SH_TG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审核通过 设置并修改授权审核信息
|
||||
modifySupplementApply.setEmpowerBySignDate(new Date()); |
||||
modifySupplementApply.setEmpowerBySignOpinion(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审核通过"); |
||||
modifySupplementApplyService.updateById(modifySupplementApply); |
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SH_TG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SH_TG.getDesc()); |
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1); |
||||
if(flag){ |
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(), |
||||
Integer.parseInt(TaskTypeEnum.JD_WS_XG_BC_SP.getCode()), |
||||
TaskTypeEnum.JD_WS_XG_BC_SP.getDesc(), |
||||
record.getMessage(), |
||||
PermissionGroupEnum.IdentifyBookModificationAndSupplementationSP.getCode()); |
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId()); |
||||
taskNotification.setCaseName(entrustment.getCaseName()); |
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification); |
||||
} |
||||
} else if (BusinessStatus.JD_WS_XG_BC_SH_WTG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审核未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SH_WTG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SH_WTG.getDesc()); |
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){ |
||||
|
||||
} |
||||
} else if (BusinessStatus.JD_WS_XG_BC_SP_TG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审批通过 设置并修改技术人员审批信息
|
||||
modifySupplementApply.setTechnologyBySignDate(new Date()); |
||||
modifySupplementApply.setTechnologyBySignOpinion(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审核通过"); |
||||
// 生成鉴定文书修改补充申请表
|
||||
this.generateModifySupplementApply(modifySupplementApply); |
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SP_TG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SP_TG.getDesc()); |
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1)){ |
||||
} |
||||
if(modifySupplementApply.getUpdateWay() == 2){ |
||||
// 修改鉴定文书业务状态未 收回原件-重新制作
|
||||
identifyBookRelevanceService.update(new LambdaUpdateWrapper<IdentifyBookRelevance>() |
||||
.set(IdentifyBookRelevance::getBookStatus, BusinessStatus.JD_WS_XG_BC_SH_YJ_CX_ZZ.getCode()) |
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, modifySupplementApply.getEntrustmentId())); |
||||
} |
||||
|
||||
|
||||
} else if (BusinessStatus.JD_WS_XG_BC_SP_WTG.getCode().equals(vo.getBusinessStatus())){ |
||||
// 审批未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SP_WTG.getDesc()); |
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SP_WTG.getDesc()); |
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){ |
||||
|
||||
} |
||||
} else { |
||||
return R.failed("参数-业务状态未定义,请确认传入的业务状态是否正确或联系管理员!!!"); |
||||
} |
||||
if(businessProcessRecordService.save(record)){ |
||||
return R.ok(); |
||||
} |
||||
} |
||||
return R.failed("系统异常,请联系管理员!!!"); |
||||
} |
||||
|
||||
//获取鉴定书的处理记录,按ID排序
|
||||
@ApiOperation(value ="获取鉴定书的处理记录,按ID desc排序",notes = "获取鉴定书的处理记录,按ID desc排序") |
||||
@GetMapping("/getIdentifyBookProcessRecord") |
||||
public R getIdentifyBookProcessRecord(String businessId){ |
||||
List<BusinessProcessRecord> ret= businessProcessRecordService.list(Wrappers.<BusinessProcessRecord>lambdaQuery() |
||||
.eq(BusinessProcessRecord::getBusinessId,businessId) |
||||
.orderByDesc(BusinessProcessRecord::getId)); |
||||
return R.ok(ret); |
||||
} |
||||
/** |
||||
* TODO 生成鉴定文书审批表并保存 |
||||
* @param one 鉴定文书审批表对象 |
||||
*/ |
||||
private void generateIdentifyBookApprove(IdentifyBookApprove one) { |
||||
try { |
||||
EntrustCaseDTO entrustCaseDTO = entrustmentService.getEntrustCaseDTOById(one.getRelevanceBusinessId()); |
||||
IdentifyBookRelevance identifyBookRelevance = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, one.getRelevanceBusinessId())); |
||||
|
||||
// 模板
|
||||
// String templateFileName = "NADL-Shaanxi-CX-22-01-2021鉴定文书审批表001.doc";
|
||||
String templateFileName = AppStartupRunner.getCfg("identifyBookApproveTemplate"); |
||||
// 文件类型
|
||||
String fileType = ".docx"; // 文件类型
|
||||
// 文件版本号
|
||||
String version = "v1.0"; |
||||
// 文件名
|
||||
String fileName = "鉴定文书审批表-" + version; |
||||
|
||||
// 文件路径 + 业务ID +文件名
|
||||
String pathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + one.getRelevanceBusinessId() + "/bookApprove/" + fileName; |
||||
|
||||
Map<String, Object> parameter = ClassUtils.objectToMap(entrustCaseDTO); |
||||
parameter.put("bookYear", identifyBookRelevance.getYear()); |
||||
parameter.put("bookSerialNumber", identifyBookRelevance.getSerialNumber()); |
||||
one.setYear(identifyBookRelevance.getYear()); |
||||
one.setSerialNumber(identifyBookRelevance.getSerialNumber()); |
||||
|
||||
// 获取样本数量
|
||||
long sampleNum = entrustmentIdentificationMaterialService.count(new LambdaQueryWrapper<EntrustmentIdentificationMaterial>() |
||||
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, one.getRelevanceBusinessId())); |
||||
parameter.put("sampleNum", sampleNum); |
||||
|
||||
one.setPath(pathFileName + fileType); |
||||
one.setFileName(fileName + fileType); |
||||
if(StringUtils.isEmpty(one.getYear())){ |
||||
LocalDateTime localDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()); |
||||
String year = LocalDateTimeUtil.format(localDateTime, "yyyy"); |
||||
List<IdentifyBookApprove> list = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>() |
||||
.eq(IdentifyBookApprove::getYear, year) |
||||
.orderByDesc(IdentifyBookApprove::getSerialNumber)); |
||||
if(CollectionUtils.isNotEmpty(list)){ |
||||
int num = Integer.parseInt(list.get(0).getSerialNumber()); |
||||
one.setYear(year); |
||||
one.setSerialNumber(StrUtil.fillBefore((num + 1) + "", '0', 5)); |
||||
} else { |
||||
one.setYear(year); |
||||
one.setSerialNumber(StrUtil.fillBefore( "1", '0', 5)); |
||||
} |
||||
|
||||
} |
||||
parameter.put("year", one.getYear()); |
||||
parameter.put("serialNumber", one.getSerialNumber()); |
||||
// parameter.put("identificationRequestsDesc", IdentifyRequireEnum.findEnumByCode(entrustCaseDTO.getIdentificationRequests()).getDesc());
|
||||
parameter.put("otherIdentificationRequests", StringUtils.isNotEmpty(entrustCaseDTO.getOtherIdentificationRequests())? "其它:" + entrustCaseDTO.getOtherIdentificationRequests(): ""); |
||||
|
||||
// 文书类型:(1:检验报告,2:其它)
|
||||
parameter.put("inspectionReportFlag", false); |
||||
parameter.put("otherFlag", false); |
||||
if(StringUtils.isNotEmpty(one.getBookType())){ |
||||
String[] bookTypeArr = one.getBookType().split(","); |
||||
for (String s : bookTypeArr) { |
||||
if (Integer.parseInt(s) == 1) { |
||||
parameter.put("inspectionReportFlag", true); |
||||
parameter.put("inspectionReportNumber", one.getInspectionReportNumber()); |
||||
} else if (Integer.parseInt(s) == 2) { |
||||
parameter.put("otherFlag", true); |
||||
parameter.put("otherNumber", one.getOtherNumber()); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// 附件(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)
|
||||
parameter.put("jyJlFlag", false); |
||||
parameter.put("jdSxQrsFlag", false); |
||||
parameter.put("jdWtsFlag", false); |
||||
parameter.put("jcZpFlag", false); |
||||
parameter.put("sjrZjFyjFlag", false); |
||||
parameter.put("yJdWsFlag", false); |
||||
if(StringUtils.isNotEmpty(one.getAnnexType())){ |
||||
String[] annexTypeArr = one.getAnnexType().split(","); |
||||
for (String s : annexTypeArr) { |
||||
int num = Integer.parseInt(s); |
||||
if (num == 1) { |
||||
parameter.put("jyJlFlag", true); |
||||
} else if (num == 2) { |
||||
parameter.put("jdSxQrsFlag", true); |
||||
} else if (num == 3) { |
||||
parameter.put("jdWtsFlag", true); |
||||
} else if (num == 4) { |
||||
parameter.put("jcZpFlag", true); |
||||
} else if (num == 5) { |
||||
parameter.put("sjrZjFyjFlag", true); |
||||
} else if (num == 6) { |
||||
parameter.put("yJdWsFlag", true); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// 是否合格(1:检验方法、2:检验过程、3:检验图谱、4:检验结果)
|
||||
parameter.put("jyFfFlag", false); |
||||
parameter.put("jyGcFlag", false); |
||||
parameter.put("jyTpFlag", false); |
||||
parameter.put("jyJgFlag", false); |
||||
if(StringUtils.isNotEmpty(one.getIsQualified())){ |
||||
String[] isQualifiedArr = one.getIsQualified().split(","); |
||||
for (String s : isQualifiedArr) { |
||||
int num = Integer.parseInt(s); |
||||
if (num == 1) { |
||||
parameter.put("jyFfFlag", true); |
||||
} else if (num == 2) { |
||||
parameter.put("jyGcFlag", true); |
||||
} else if (num == 3) { |
||||
parameter.put("jyTpFlag", true); |
||||
} else if (num == 4) { |
||||
parameter.put("jyJgFlag", true); |
||||
} |
||||
} |
||||
} |
||||
// 鉴定文书审核意见
|
||||
parameter.put("processMessage", one.getProcessMessage()); |
||||
// 鉴定文书审核日期
|
||||
parameter.put("processTime", LocalDateTimeUtil.format( |
||||
LocalDateTime.ofInstant(one.getProcessTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日")); |
||||
// 鉴定文书审批意见
|
||||
parameter.put("approveMessage", one.getApproveMessage()); |
||||
// 鉴定文书审批日期
|
||||
parameter.put("approveTime", LocalDateTimeUtil.format( |
||||
LocalDateTime.ofInstant(one.getApproveTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日")); |
||||
// 备注
|
||||
parameter.put("remarks", one.getRemarks()); |
||||
|
||||
// 生成鉴定文书审批表
|
||||
R r = remoteGenerateWordService.generateWord(templateFileName, "", pathFileName, fileType, |
||||
"", null, false, parameter); |
||||
if(r != null && r.getCode() == 0){ |
||||
identifyBookApproveService.updateById(one); |
||||
} else { |
||||
throw new IllegalArgumentException(r.getMsg()); |
||||
} |
||||
}catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* TODO 生成鉴定文书修改/补充申请表 |
||||
* @param modifySupplementApply 修改补充对象 |
||||
*/ |
||||
private void generateModifySupplementApply(ModifySupplementApply modifySupplementApply){ |
||||
|
||||
try { |
||||
IdentifyBookRelevance identifyBookRelevance = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, modifySupplementApply.getEntrustmentId())); |
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId()); |
||||
|
||||
Map<String, Object> parameter = ClassUtils.objectToMap(modifySupplementApply); |
||||
parameter.put("bookYear", identifyBookRelevance.getYear()); |
||||
parameter.put("bookSerialNumber", identifyBookRelevance.getSerialNumber()); |
||||
parameter.put("clientOrgName", entrustment.getClientOrgName()); |
||||
if(StringUtils.isNotEmpty(modifySupplementApply.getEntrustBy()) && StringUtils.isEmpty(modifySupplementApply.getEntrustUserName())){ |
||||
parameter.put("entrustUserName", remoteUserService.innerGetById(modifySupplementApply.getEntrustBy()).getData().getName()); |
||||
} else { |
||||
parameter.put("entrustUserName", modifySupplementApply.getEntrustUserName()); |
||||
} |
||||
|
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getApplyTime())){ |
||||
parameter.put("applyTime", LocalDateTimeUtil.format( |
||||
LocalDateTime.ofInstant(modifySupplementApply.getApplyTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日")); |
||||
} |
||||
// parameter.put("updateUserName", remoteUserService.innerGetById(modifySupplementApply.getUpdateBy()).getData().getName());
|
||||
parameter.put("updateUserName", modifySupplementApply.getUpdateBy()); |
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getUpdateTime())){ |
||||
parameter.put("updateTime", LocalDateTimeUtil.format( |
||||
LocalDateTime.ofInstant(modifySupplementApply.getUpdateTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日")); |
||||
} |
||||
|
||||
|
||||
parameter.put("xgCdWjFlag", false); |
||||
parameter.put("shYjCxCjJdWsFlag", false); |
||||
if(modifySupplementApply.getUpdateWay() == 1){ |
||||
parameter.put("xgCdWjFlag", true); |
||||
}else{ |
||||
parameter.put("shYjCxCjJdWsFlag", true); |
||||
} |
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getEmpowerBySignDate())){ |
||||
parameter.put("empowerBySignDate", LocalDateTimeUtil.format( |
||||
LocalDateTime.ofInstant(modifySupplementApply.getEmpowerBySignDate().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日")); |
||||
} |
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getTechnologyBySignDate())){ |
||||
parameter.put("technologyBySignDate", LocalDateTimeUtil.format( |
||||
LocalDateTime.ofInstant(modifySupplementApply.getTechnologyBySignDate().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日")); |
||||
} |
||||
|
||||
|
||||
// 获取模板文件名
|
||||
String templateFileName = AppStartupRunner.getCfg("identifyBookModifySupplementApplyTemplate"); |
||||
// 文件类型
|
||||
String fileType = ".docx"; // 文件类型
|
||||
// 文件版本号
|
||||
String version = "v1.0"; |
||||
// 文件名
|
||||
String fileName = "鉴定文书修改补充申请-" + version; |
||||
|
||||
// 文件路径 + 业务ID +文件名
|
||||
String pathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + modifySupplementApply.getEntrustmentId() + "/bookModifyApply/" + fileName; |
||||
// 生成鉴定文书审批表
|
||||
R r = remoteGenerateWordService.generateWord(templateFileName, "", pathFileName, fileType, |
||||
"", null, false, parameter); |
||||
if(r != null && r.getCode() == 0){ |
||||
modifySupplementApply.setPath(pathFileName + fileType); |
||||
modifySupplementApply.setFileName(fileName + fileType); |
||||
modifySupplementApplyService.updateById(modifySupplementApply); |
||||
} else { |
||||
throw new IllegalArgumentException(r.getMsg()); |
||||
} |
||||
|
||||
}catch (Exception e){ |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
/** |
||||
* 设置任务通知公共信息 |
||||
* @param taskNotification 任务通知信息 |
||||
* @param businessId 业务ID |
||||
* @param type 任务类型 |
||||
* @param title 任务标题 |
||||
* @param content 任务类容 |
||||
* @param permissionGroup 任务代办人员组 |
||||
*/ |
||||
private void commSetTaskNotification(TaskNotification taskNotification, String businessId, |
||||
int type, String title, String content, String permissionGroup){ |
||||
taskNotification.setBusinessId(businessId); |
||||
taskNotification.setType(type); |
||||
taskNotification.setTitle(title); |
||||
taskNotification.setContent(content); |
||||
taskNotification.setPermissionGroup(permissionGroup); |
||||
} |
||||
|
||||
/** |
||||
* 修改推送任务通知处理状态 |
||||
* @param taskNotification 任务通知基本信息 |
||||
* @return R<Object> |
||||
*/ |
||||
private boolean commUpdateTaskNotification(TaskNotification taskNotification, DLPUser dlpUser, String businessId, int status){ |
||||
|
||||
// 查询并 更新任务为已处理
|
||||
TaskNotification notification = taskNotificationService.getOne(new LambdaQueryWrapper<TaskNotification>() |
||||
.eq(TaskNotification::getBusinessId, businessId) |
||||
.eq(TaskNotification::getStatus, 0) |
||||
.in(TaskNotification::getPermissionGroup, dlpUser.getPermissions())); |
||||
if(ObjectUtils.isNotEmpty(notification)){ |
||||
notification.setStatus(status); |
||||
notification.setTransactionPersonnelId(dlpUser.getId()); |
||||
notification.setTransactionPersonnelName(dlpUser.getName()); |
||||
|
||||
taskNotification.setSubmitterUserId(notification.getSubmitterUserId()); |
||||
taskNotification.setSubmitterUserName(notification.getSubmitterUserName()); |
||||
taskNotification.setAcceptNo(notification.getAcceptNo()); |
||||
taskNotification.setCaseName(notification.getCaseName()); |
||||
return taskNotificationService.updateById(notification); |
||||
} |
||||
return false; |
||||
|
||||
} |
||||
/** |
||||
* 推送任务通知 |
||||
* @param taskNotification |
||||
* @return |
||||
*/ |
||||
private R<Object> commSaveTaskNotification(TaskNotification taskNotification){ |
||||
|
||||
// 设置任务通知
|
||||
boolean save = taskNotificationService.save(taskNotification); |
||||
if(!save){ |
||||
return R.failed("推送任务通知失败"); |
||||
} |
||||
return R.ok(); |
||||
} |
||||
} |
@ -0,0 +1,23 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import digital.laboratory.platform.common.feign.RemoteGenerateWordService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 案件、事件 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@RequestMapping("/book/caseEvent") |
||||
public class CaseEventController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 与案件相关的物证信息 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/caseEvidence") |
||||
public class CaseEvidenceController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 送检员 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/deliverer") |
||||
public class DelivererController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托与实验关系 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/b-entrustment-bundle") |
||||
public class EntrustmentBundleController { |
||||
|
||||
} |
@ -0,0 +1,57 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO; |
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ; |
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Collections; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "委托数据-相关接口") |
||||
@RequestMapping("/book/entrustment") |
||||
public class EntrustmentController { |
||||
|
||||
private final IEntrustmentService entrustmentService; |
||||
|
||||
@ApiOperation(value = "根据委托id查询委托相关详情", notes = "根据委托id查询委托相关详情") |
||||
@GetMapping("/view/{entrustId}") |
||||
public R<EntrustmentDTO> view(@PathVariable(value = "entrustId") String entrustId){ |
||||
EntrustmentDTO entrustmentDTO = entrustmentService.getEntrustmentDTO(entrustId); |
||||
return R.ok(entrustmentDTO); |
||||
} |
||||
|
||||
@ApiOperation(value = "根据条件分页查询委托数据列表", notes = "根据条件分页查询委托数据列表") |
||||
@PostMapping("/findEntrustPage") |
||||
public R<IPage<EntrustmentDTO>> findEntrustPage(@RequestBody EntrustmentREQ req){ |
||||
List<Entrustment> list = entrustmentService.list(); |
||||
List<String> entrustIdList=new ArrayList<>(); |
||||
if(list.size()>0){ |
||||
entrustIdList= list.stream().map(s -> s.getId()).collect(Collectors.toList()); |
||||
} |
||||
entrustmentService.synchronizationTestSysData(entrustIdList);//同步远程数据,同步后的数据不会再同步
|
||||
return R.ok(entrustmentService.findEntrustPage(req.getPage(), req)); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检材信息 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/entrustmentIdentificationMaterial") |
||||
public class EntrustmentIdentificationMaterialController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检验方法 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/examinationMethods") |
||||
public class ExaminationMethodsController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 实验(检验方法的实例) 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/b-experiment") |
||||
public class ExperimentController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 毛发检测任务 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/hairJob") |
||||
public class HairJobController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 毛发任务的检材信息 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/hairJobIdentificationMaterial") |
||||
public class HairJobIdentificationMaterialController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定表,一个鉴定可能会有多个委托 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/identification") |
||||
public class IdentificationController { |
||||
|
||||
} |
@ -0,0 +1,109 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.oss.service.OssFile; |
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookApprove; |
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService; |
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookApproveService; |
||||
import digital.laboratory.platform.identifybook.utils.Word2PdfAsposeUtil; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PathVariable; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.activation.MimetypesFileTypeMap; |
||||
import javax.servlet.ServletOutputStream; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.io.ByteArrayInputStream; |
||||
import java.io.ByteArrayOutputStream; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书审批表 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-25 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "鉴定文书审批表相关接口") |
||||
@RequestMapping("/book/identifyBookApprove") |
||||
public class IdentifyBookApproveController { |
||||
|
||||
private final OssFile ossFile; |
||||
private final IIdentifyBookApproveService identifyBookApproveService; |
||||
private final IEntrustmentService entrustmentService; |
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书审核审批详情", notes = "根据委托ID获取鉴定文书审核审批详情") |
||||
@GetMapping("/view/{entrustId}") |
||||
public R<IdentifyBookApprove> view(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response){ |
||||
try { |
||||
Entrustment entrustment = entrustmentService.getById(entrustId); |
||||
List<String> entrustIds = new ArrayList<>(); |
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId()) |
||||
); |
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){ |
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList())); |
||||
} |
||||
List<IdentifyBookApprove> identifyBookApproveList = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>() |
||||
.in(IdentifyBookApprove::getRelevanceBusinessId, entrustIds) |
||||
.orderByDesc(IdentifyBookApprove::getCreateTime)); |
||||
|
||||
return R.ok(CollectionUtils.isNotEmpty(identifyBookApproveList)? identifyBookApproveList.get(0): null); |
||||
}catch (Exception e){ |
||||
System.out.println("获取鉴定文书审批表异常" + e.getMessage()); |
||||
e.printStackTrace(); |
||||
} |
||||
return R.failed("系统异常!!!"); |
||||
} |
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书审批表文件", notes = "根据委托ID获取鉴定文书审批表文件") |
||||
@GetMapping("/getIdentifyBookApprove/{entrustId}") |
||||
public void getIdentifyBookApprove(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response){ |
||||
try { |
||||
Entrustment entrustment = entrustmentService.getById(entrustId); |
||||
List<String> entrustIds = new ArrayList<>(); |
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId()) |
||||
); |
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){ |
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList())); |
||||
} |
||||
List<IdentifyBookApprove> identifyBookApproveList = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>() |
||||
.in(IdentifyBookApprove::getRelevanceBusinessId, entrustIds) |
||||
.orderByDesc(IdentifyBookApprove::getCreateTime)); |
||||
// 获取文件并转PDF
|
||||
ByteArrayOutputStream bosWord = new ByteArrayOutputStream(); |
||||
ossFile.fileGet(identifyBookApproveList.get(0).getPath(), bosWord); |
||||
ServletOutputStream servletOutputStream = response.getOutputStream(); |
||||
byte[] pdfByte = Word2PdfAsposeUtil.docx2pdf(new ByteArrayInputStream(bosWord.toByteArray())); |
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(pdfByte.length); |
||||
baos.write(pdfByte, 0, pdfByte.length); |
||||
baos.writeTo(servletOutputStream); |
||||
String fileName = identifyBookApproveList.get(0).getFileName(); |
||||
response.setContentType(new MimetypesFileTypeMap().getContentType(fileName.substring(0, fileName.length() - 5) + ".pdf")); |
||||
baos.close(); |
||||
}catch (Exception e){ |
||||
System.out.println("获取鉴定文书审批表异常" + e.getMessage()); |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,238 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
import cn.hutool.core.bean.BeanUtil; |
||||
import com.alibaba.cloud.commons.lang.StringUtils; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import digital.laboratory.platform.common.core.constant.OSSDirectoryConstants; |
||||
import digital.laboratory.platform.common.core.util.ClassUtils; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.feign.RemoteGenerateWordService; |
||||
import digital.laboratory.platform.common.oss.service.OssFile; |
||||
import digital.laboratory.platform.identifybook.dto.EntrustCaseDTO; |
||||
import digital.laboratory.platform.identifybook.entity.*; |
||||
import digital.laboratory.platform.identifybook.handler.AppStartupRunner; |
||||
import digital.laboratory.platform.identifybook.service.*; |
||||
import digital.laboratory.platform.identifybook.vo.ExperimentVO; |
||||
import digital.laboratory.platform.sys.feign.RemoteUserService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiImplicitParam; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.core.env.Environment; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import org.springframework.web.multipart.MultipartFile; |
||||
|
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.io.*; |
||||
import java.math.BigDecimal; |
||||
import java.net.HttpURLConnection; |
||||
import java.net.URL; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.*; |
||||
import java.util.stream.Collectors; |
||||
|
||||
import org.json.simple.JSONObject; |
||||
import org.json.simple.parser.JSONParser; |
||||
import org.json.simple.parser.ParseException; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书-制作/修改 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/22 17:41 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "鉴定文书-制作/修改-相关接口") |
||||
@RequestMapping("/book/identifyBookComm") |
||||
public class IdentifyBookCommController { |
||||
|
||||
|
||||
private final OssFile ossFile; |
||||
|
||||
private final IEntrustmentService entrustmentService; |
||||
|
||||
private final IIdentifyBookService identifyBookService; |
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService; |
||||
|
||||
private final Environment env; |
||||
|
||||
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); |
||||
|
||||
|
||||
@ApiOperation(value = "根据委托ID制作鉴定文书", notes = "根据委托ID制作鉴定文书") |
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID", required = true) |
||||
@GetMapping("/makeIdentifyBook/{entrustId}") |
||||
public R makeIdentifyBook(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response) { |
||||
EntrustCaseDTO entrustCaseDTO = null; |
||||
try { |
||||
entrustCaseDTO = identifyBookService.buildIdentifyBook(entrustId); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
return R.failed("生成鉴定文书异常, 请联系系统管理员!!!"); |
||||
} |
||||
if (entrustCaseDTO == null) { |
||||
return R.failed("实验数据不满足生成文书!"); |
||||
} else { |
||||
return R.ok(entrustCaseDTO, "生成鉴定文书成功!"); |
||||
} |
||||
} |
||||
|
||||
@ApiOperation(value = "根据委托ID和修改后的鉴定文书更新鉴定文书", notes = "根据委托ID和修改后的鉴定文书更新鉴定文书") |
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID", required = true) |
||||
@PostMapping("/updateIdentifyBook/{entrustId}") |
||||
public R updateIdentifyBook(@PathVariable(value = "entrustId") String entrustId, |
||||
@RequestPart("file") MultipartFile file, HttpServletResponse response) { |
||||
try { |
||||
Entrustment entrustment = entrustmentService.getById(entrustId); |
||||
List<String> stringIdsList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())) |
||||
.stream().map(m -> m.getId()) |
||||
.collect(Collectors.toList()); |
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, stringIdsList)); |
||||
// 获取最后一个文书版本数据
|
||||
IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId()); |
||||
|
||||
String version = "v" + new BigDecimal(identifyBook.getVersion().substring(1)).add(new BigDecimal("0.1")); // 版本号
|
||||
String fileName = "鉴定文书-" + version; |
||||
String fileType = ".docx"; // 文件类型
|
||||
String identifyBookPathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + one.getRelevanceBusinessId() + "/book/" + fileName; // 鉴定文书存储路径及文件名
|
||||
// 上传文书
|
||||
ossFile.fileSave(identifyBookPathFileName + fileType, file.getInputStream()); |
||||
// 保存文书相关消息
|
||||
boolean b = this.saveIdentifyBookComm(one.getId(), identifyBookPathFileName + fileType, fileName + fileType, version, "修改文书"); |
||||
if (b) { |
||||
// ossFile.fileGet(identifyBookPathFileName + fileType, response.getOutputStream());
|
||||
// response.setContentType(new MimetypesFileTypeMap().getContentType(fileName + fileType));
|
||||
String uuid = IdWorker.get32UUID(); |
||||
return R.ok(uuid + "#" + identifyBookPathFileName + fileType, "获取文件成功"); |
||||
} |
||||
} catch (Exception e) { |
||||
return R.failed("修改文书上传异常,请联系管理员!!!"); |
||||
} |
||||
|
||||
return R.failed("修改文书上传异常,请联系管理员!!!"); |
||||
} |
||||
|
||||
@ApiOperation(value = "根据委托ID和修改后的鉴定文书更新鉴定文书", notes = "根据委托ID和修改后的鉴定文书更新鉴定文书") |
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID", required = true) |
||||
@PostMapping("/callBackIdentifyBook/{entrustId}") |
||||
public void callBackIdentifyBook(@PathVariable(value = "entrustId") String entrustId, HttpServletRequest request, HttpServletResponse response) { |
||||
log.error("entrustId:: " + entrustId); |
||||
PrintWriter writer = null; |
||||
JSONObject jsonObj = null; |
||||
try { |
||||
writer = response.getWriter(); |
||||
Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A"); |
||||
String body = scanner.hasNext() ? scanner.next() : ""; |
||||
jsonObj = (JSONObject) new JSONParser().parse(body); |
||||
System.out.println(jsonObj); |
||||
System.out.println("===saveeditedfile:" + jsonObj.get("status")); |
||||
/* |
||||
0 - no document with the key identifier could be found, |
||||
1 - document is being edited, |
||||
2 - document is ready for saving, |
||||
3 - document saving error has occurred, |
||||
4 - document is closed with no changes, |
||||
6 - document is being edited, but the current document state is saved, |
||||
7 - error has occurred while force saving the document. |
||||
* */ |
||||
if ((long) jsonObj.get("status") == 2) { |
||||
|
||||
String downloadUri = (String) jsonObj.get("url"); |
||||
URL url = new URL(downloadUri); |
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
||||
InputStream inputStream = connection.getInputStream(); |
||||
Entrustment entrustment = entrustmentService.getById(entrustId); |
||||
List<String> stringIdsList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())) |
||||
.stream().map(m -> m.getId()) |
||||
.collect(Collectors.toList()); |
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, stringIdsList)); |
||||
// 获取最后一个文书版本数据
|
||||
IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId()); |
||||
|
||||
String version = "v" + new BigDecimal(identifyBook.getVersion().substring(1)).add(new BigDecimal("0.1")); // 版本号
|
||||
String fileName = "鉴定文书-" + version; |
||||
String fileType = ".docx"; // 文件类型
|
||||
String identifyBookPathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + one.getRelevanceBusinessId() + "/book/" + fileName; // 鉴定文书存储路径及文件名
|
||||
// 上传文书
|
||||
ByteArrayOutputStream bosWord = new ByteArrayOutputStream(); |
||||
int readPos; |
||||
final byte[] bytes_oss = new byte[1024]; |
||||
while ((readPos = inputStream.read(bytes_oss)) != -1) { |
||||
bosWord.write(bytes_oss, 0, readPos); |
||||
} |
||||
ByteArrayInputStream baisWord = new ByteArrayInputStream(bosWord.toByteArray()); |
||||
boolean b1 = ossFile.fileSave(identifyBookPathFileName + fileType, baisWord); |
||||
if (b1) { |
||||
// 保存文书相关消息
|
||||
this.saveIdentifyBookComm(one.getId(), identifyBookPathFileName + fileType, fileName + fileType, version, "修改文书"); |
||||
} |
||||
|
||||
inputStream.close(); |
||||
connection.disconnect(); |
||||
} |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
} catch (ParseException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
/** |
||||
* status = 1,我们给onlyoffice的服务返回{"error":"0"}的信息,这样onlyoffice会认为回调接口是没问题的,这样就可以在线编辑文档了,否则的话会弹出窗口说明 |
||||
* 在线编辑还没有关闭,前端有人下载文档时,强制保存最新内容 当status 是6时说明有人在编辑时下载文档 |
||||
*/ |
||||
System.out.println(jsonObj.get("status")); |
||||
if ((long) jsonObj.get("status") == 6) { |
||||
//处理当文档正在编辑为关闭时,下载文档
|
||||
if (((String) jsonObj.get("userdata")).equals("sample userdata")) { |
||||
// FileUtil.callBackSaveDocument(jsonObj,filePath,request, response);
|
||||
} |
||||
|
||||
System.out.println("====保存失败:"); |
||||
writer.write("{\"error\":1}"); |
||||
} else { |
||||
//执行删除编辑时下载保存的文件:
|
||||
// FileUtil.deleteTempFile(filePath,request.getParameter("fileName"));
|
||||
writer.write("{\"error\":0}"); |
||||
} |
||||
|
||||
} |
||||
|
||||
/** |
||||
* 保存鉴定文书相关数据 |
||||
* |
||||
* @param identifyBookRelevanceId 关联ID |
||||
* @param path 文件路径及文件名 |
||||
* @param fileName 文件名 |
||||
* @param version 版本号 |
||||
* @return boolean |
||||
*/ |
||||
private boolean saveIdentifyBookComm(String identifyBookRelevanceId, String path, String fileName, |
||||
String version, String remarks) { |
||||
IdentifyBook identifyBook = new IdentifyBook(); |
||||
identifyBook.setIdentifyBookRelevanceId(identifyBookRelevanceId); |
||||
identifyBook.setBucketName(env.getProperty("oss.bucket-name")); |
||||
identifyBook.setPath(path); |
||||
identifyBook.setFileName(fileName); |
||||
identifyBook.setVersion(version); |
||||
identifyBook.setRemarks(remarks); |
||||
return identifyBookService.save(identifyBook); |
||||
} |
||||
} |
@ -0,0 +1,89 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import cn.hutool.core.lang.Assert; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.oss.service.OssFile; |
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBook; |
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance; |
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiImplicitParam; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import org.springframework.web.multipart.MultipartFile; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书信息表 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "鉴定文书详细信息相关接口") |
||||
@RequestMapping("/book/identifyBook") |
||||
public class IdentifyBookController { |
||||
|
||||
private final OssFile ossFile; |
||||
|
||||
private final IIdentifyBookService identifyBookService; |
||||
@ApiOperation(value = "根据根据文书ID查看文书", notes = "根据根据文书ID查看文书") |
||||
@ApiImplicitParam(name = "bookId", value = "文书ID" , required = true) |
||||
@GetMapping("/view/{id}") |
||||
public R findBook(@PathVariable(value = "bookId") String bookId){ |
||||
try { |
||||
|
||||
IdentifyBook identifyBook = identifyBookService.getById(bookId); |
||||
String uuid= IdWorker.get32UUID(); |
||||
return R.ok( uuid+"#"+identifyBook.getPath(), "获取文件成功"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return R.failed("获取鉴定文书失败"); |
||||
} |
||||
|
||||
@ApiOperation(value = "根据根据文书ID删除文书", notes = "根据根据文书ID删除文书") |
||||
@ApiImplicitParam(name = "bookId", value = "文书ID" , required = true) |
||||
@DeleteMapping |
||||
public R deleteById(@PathVariable(value = "bookId") String bookId){ |
||||
try { |
||||
IdentifyBook identifyBook = identifyBookService.getById(bookId); |
||||
ossFile.fileDelete(identifyBook.getFileName()); |
||||
boolean b = identifyBookService.removeById(bookId); |
||||
if(b){ |
||||
return R.ok(b, "删除成功!!!"); |
||||
} |
||||
return R.failed(b, "删除失败!!!"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return R.failed("获取鉴定文书失败"); |
||||
} |
||||
@PostMapping("/uploadBookAttachment") |
||||
@ApiOperation(value = "上传文书的附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)", notes = "上传文书的附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)") |
||||
public R uploadBookAttachment(String attachType,String businessId ,List<MultipartFile> file){ |
||||
Assert.notBlank(attachType,"附件类型参数不能为空"); |
||||
Assert.notBlank(businessId,"业务ID参数不能为空"); |
||||
return R.ok(identifyBookService.uploadIdentifyBookAttachment(attachType,file,businessId)); |
||||
} |
||||
//获取手动上传的文书附件
|
||||
@GetMapping("/getUploadBookAttachment") |
||||
@ApiOperation(value = "获取手动上传的文书附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)", notes = "上传文书的附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)") |
||||
public R getAttachment(String businessId,String attachType){ |
||||
return R.ok(identifyBookService.getAttachment(businessId,attachType)); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,123 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.oss.service.OssFile; |
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBook; |
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance; |
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService; |
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookRelevanceService; |
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookService; |
||||
import digital.laboratory.platform.sys.feign.RemoteUserService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiImplicitParam; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PathVariable; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.activation.MimetypesFileTypeMap; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书关联中间表 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "鉴定文书-相关接口") |
||||
@RequestMapping("/book/identifyBookRelevance") |
||||
public class IdentifyBookRelevanceController { |
||||
|
||||
private final OssFile ossFile; |
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService; |
||||
private final IIdentifyBookService identifyBookService; |
||||
private final IEntrustmentService entrustmentService; |
||||
private final RemoteUserService remoteUserService; |
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书", notes = "根据委托ID获取鉴定文书") |
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID" , required = true) |
||||
@GetMapping("/getBook/{entrustId}") |
||||
public R getBook(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response){ |
||||
try { |
||||
Entrustment entrustment = entrustmentService.getById(entrustId); |
||||
List<String> entrustIds = new ArrayList<>(); |
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId()) |
||||
); |
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){ |
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList())); |
||||
} |
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, entrustIds)); |
||||
if (ObjectUtils.isNotEmpty(one)) { |
||||
IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId()); |
||||
//ossFile.fileGet(identifyBook.getPath(), response.getOutputStream());
|
||||
String uuid= IdWorker.get32UUID(); |
||||
return R.ok( uuid+"#"+identifyBook.getPath(), "获取文件成功"); |
||||
//response.setContentType(new MimetypesFileTypeMap().getContentType(identifyBook.getFileName()));
|
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return R.failed("获取鉴定文书失败"); |
||||
} |
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书制作或修订历史列表", notes = "根据委托ID获取鉴定文书制作或修订历史列表") |
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID" , required = true) |
||||
@GetMapping("/findBookHistory/{entrustId}") |
||||
public R findBookHistory(@PathVariable(value = "entrustId") String entrustId){ |
||||
try { |
||||
Entrustment entrustment = entrustmentService.getById(entrustId); |
||||
List<String> entrustIds = new ArrayList<>(); |
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId,entrustId) |
||||
); |
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){ |
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList())); |
||||
} |
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, entrustIds)); |
||||
if (ObjectUtils.isNotEmpty(one)) { |
||||
// IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId());
|
||||
List<IdentifyBook> identifyBookList = identifyBookService.list(new LambdaQueryWrapper<IdentifyBook>() |
||||
.eq(IdentifyBook::getIdentifyBookRelevanceId, one.getId()) |
||||
.orderByDesc(IdentifyBook::getCreateTime)); |
||||
for (IdentifyBook identifyBook: identifyBookList){ |
||||
if(StringUtils.isNotEmpty(identifyBook.getCreateBy())){ |
||||
identifyBook.setOperateUserName(remoteUserService.innerGetById(identifyBook.getCreateBy()).getData().getName()); |
||||
} |
||||
|
||||
|
||||
} |
||||
return R.ok(identifyBookList); |
||||
} |
||||
return R.ok(null, "该委托还未制作文书!!!"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return R.failed("获取鉴定文书失败"); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,238 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
import cn.hutool.core.bean.BeanUtil; |
||||
import com.alibaba.cloud.commons.lang.StringUtils; |
||||
import com.alibaba.fastjson.JSON; |
||||
import com.alibaba.fastjson.JSONArray; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.identifybook.entity.*; |
||||
import digital.laboratory.platform.identifybook.service.*; |
||||
import digital.laboratory.platform.sys.vo.CommonDataVO; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Comparator; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定数据-控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/18 16:35 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "鉴定数据相关接口") |
||||
@RequestMapping("/book/identifyDataComm") |
||||
public class IdentifyDataCommController { |
||||
|
||||
/** TODO START 委托相关基础信息 **/ |
||||
private final ICaseEventService caseEventService; |
||||
private final ICaseEvidenceService caseEvidenceService; |
||||
private final IDelivererService delivererService; |
||||
private final IEntrustmentService entrustmentService; |
||||
private final IEntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService; |
||||
private final IHairJobService hairJobService; |
||||
private final IHairJobIdentificationMaterialService hairJobIdentificationMaterialService; |
||||
private final IIdentificationService identificationService; |
||||
private final ISampleService sampleService; |
||||
private final ITakerService takerService; |
||||
/** TODO END 委托相关基础信息 **/ |
||||
|
||||
private final IEntrustmentBundleService entrustmentBundleService; |
||||
private final IExperimentService experimentService; |
||||
private final IExaminationMethodsService examinationMethodsService; |
||||
private final IResultEntrustmentQualitativeService resultEntrustmentQualitativeService; |
||||
private final IResultEntrustmentRationService resultEntrustmentRationService; |
||||
private final IBIdentificationProcessService identificationProcessService; |
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService; |
||||
|
||||
|
||||
|
||||
@ApiOperation(value = "保存委托相关数据", notes = "保存委托相关数据") |
||||
@PostMapping("/commonEntrustRelated") |
||||
public R commonEntrustRelated(@RequestBody CommonDataVO commonDataVO){ |
||||
log.info("委托相关信息{}", commonDataVO); |
||||
try { |
||||
if(ObjectUtils.isNotEmpty(commonDataVO)){ |
||||
// 委托信息 检验过程 鉴定状态表
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getEntrustmentList())){ |
||||
log.info("委托信息:{}", commonDataVO.getEntrustmentList()); |
||||
List<Entrustment> entrustmentList = BeanUtil.copyToList(commonDataVO.getEntrustmentList(), Entrustment.class); |
||||
boolean b = entrustmentService.saveOrUpdateBatch(entrustmentList); |
||||
if (b) { |
||||
Entrustment entrustment; |
||||
if(entrustmentList.size() > 1){ |
||||
entrustment = entrustmentList |
||||
.stream() |
||||
.sorted(Comparator.comparing(Entrustment::getCreateTime)) |
||||
.collect(Collectors.toList()).get(0); |
||||
} else { |
||||
entrustment = entrustmentList.get(0); |
||||
} |
||||
List<String> stringIDSList = entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList()); |
||||
IdentifyBookRelevance identifyBookRelevance = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, stringIDSList)); |
||||
if(ObjectUtils.isEmpty(identifyBookRelevance)){ |
||||
String[] arrNo = entrustment.getAcceptNo().split("-"); |
||||
identifyBookRelevance = new IdentifyBookRelevance(); |
||||
identifyBookRelevance.setRelevanceBusinessId(entrustment.getId()); |
||||
identifyBookRelevance.setYear(arrNo[0]); |
||||
identifyBookRelevance.setSerialNumber(arrNo[1]); |
||||
identifyBookRelevance.setBookStatus(-1); |
||||
boolean save = identifyBookRelevanceService.save(identifyBookRelevance); |
||||
if(!save){ |
||||
throw new RuntimeException("保存文书关联消息失败!!!"); |
||||
} |
||||
} |
||||
// 检验过程
|
||||
BIdentificationProcess identificationProcess = new BIdentificationProcess(); |
||||
identificationProcess.setId(entrustment.getId()); |
||||
identificationProcess.setInspectionProcess( |
||||
StringUtils.isNotEmpty(commonDataVO.getIdentificationProcess()) ? commonDataVO.getIdentificationProcess() : ""); |
||||
boolean saveOrUpdate = identificationProcessService.saveOrUpdate(identificationProcess); |
||||
if(!saveOrUpdate){ |
||||
throw new RuntimeException("保存文书关联检验过程失败!!!"); |
||||
} |
||||
log.info("保存或更新委托成功!!!"); |
||||
} |
||||
|
||||
} |
||||
// 委托关联案件信息 --
|
||||
if(ObjectUtils.isNotEmpty(commonDataVO.getCaseEvent())){ |
||||
log.info("委托关联案件信息:{}", commonDataVO.getCaseEvent()); |
||||
CaseEvent caseEvent = new CaseEvent(); |
||||
BeanUtil.copyProperties(commonDataVO.getCaseEvent(), caseEvent); |
||||
boolean b = caseEventService.saveOrUpdate(caseEvent); |
||||
if (b) { |
||||
log.info("保存或更新案件成功!!!"); |
||||
} |
||||
} |
||||
// 委托案件关联物证 --
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getCaseEvidence())){ |
||||
log.info("委托案件关联物证:{}", commonDataVO.getCaseEvidence()); |
||||
List<CaseEvidence> caseEvidenceList = BeanUtil.copyToList(commonDataVO.getCaseEvidence(), CaseEvidence.class); |
||||
boolean b = caseEvidenceService.saveOrUpdateBatch(caseEvidenceList); |
||||
if (b) { |
||||
log.info("保存或更新委托物证成功!!!"); |
||||
} |
||||
} |
||||
// 检材信息
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getEntrustmentIdentificationMaterial())){ |
||||
log.info("检材信息:{}", commonDataVO.getEntrustmentIdentificationMaterial()); |
||||
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList = |
||||
BeanUtil.copyToList(commonDataVO.getEntrustmentIdentificationMaterial(), EntrustmentIdentificationMaterial.class); |
||||
boolean b = entrustmentIdentificationMaterialService.saveOrUpdateBatch(entrustmentIdentificationMaterialList); |
||||
if (b) { |
||||
log.info("保存或更新检材消息成功!!!"); |
||||
} |
||||
} |
||||
// 鉴定表,一个鉴定可能会有多个委托
|
||||
if(ObjectUtils.isNotEmpty(commonDataVO.getIdentification())){ |
||||
log.info("鉴定表,一个鉴定可能会有多个委托:{}", commonDataVO.getIdentification()); |
||||
Identification identification = new Identification(); |
||||
BeanUtil.copyProperties(commonDataVO.getIdentification(), identification); |
||||
boolean b = identificationService.saveOrUpdate(identification); |
||||
if (b) { |
||||
log.info("保存或更新鉴定表成功!!!"); |
||||
} |
||||
} |
||||
// 检验用的样本
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getSample())){ |
||||
log.info("检验用的样本:{}", commonDataVO.getSample()); |
||||
List<Map> copyToList = BeanUtil.copyToList(commonDataVO.getSample(), Map.class); |
||||
// List<Sample> sampleList = BeanUtil.copyToList(commonDataVO.getSample(), Sample.class);
|
||||
List<Sample> sampleList = new ArrayList<>(); |
||||
for (Map map: copyToList){ |
||||
log.info("map.get(sampleInfo): {}",map.get("sampleInfo")); |
||||
// sampleList.add(BeanUtil.copyProperties(map.get("sampleInfo"), Sample.class));
|
||||
//传递过来的数据中 sampleInfo可能为空
|
||||
if(map.get("sampleInfo")!=null){ |
||||
sampleList.add(JSON.parseObject(JSON.toJSONString(map.get("sampleInfo")), Sample.class)); |
||||
}else{ |
||||
log.info("map.get(sampleInfo): {},sampleId={} experimentId={} 这个为空",map.get("sampleInfo"),map.get("sampleId"),map.get("experimentId")); |
||||
} |
||||
|
||||
} |
||||
|
||||
log.info("检验用的样本sampleList:{}", sampleList); |
||||
boolean b = sampleService.saveOrUpdateBatch(sampleList); |
||||
log.info("检验用的样本sampleList-当这里么!!!"); |
||||
if (b) { |
||||
log.info("保存或更新检验用的样本成功!!!"); |
||||
} |
||||
} |
||||
// 委托与实验关系
|
||||
if(ObjectUtils.isNotEmpty(commonDataVO.getEntrustmentBundle())){ |
||||
log.info("委托与实验关系:{}", commonDataVO.getEntrustmentBundle()); |
||||
EntrustmentBundle entrustmentBundle = new EntrustmentBundle(); |
||||
BeanUtil.copyProperties(commonDataVO.getEntrustmentBundle(), entrustmentBundle); |
||||
boolean b = entrustmentBundleService.saveOrUpdate(entrustmentBundle); |
||||
if (b) { |
||||
log.info("保存或更新委托与实验关系成功!!!"); |
||||
} |
||||
} |
||||
// 实验列表
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getExperimentList())){ |
||||
log.info("实验列表:{}", commonDataVO.getExperimentList()); |
||||
List<Experiment> experimentList = BeanUtil.copyToList(commonDataVO.getExperimentList(), Experiment.class); |
||||
boolean b = experimentService.saveOrUpdateBatch(experimentList); |
||||
if (b) { |
||||
log.info("保存或更新实验列表成功!!!"); |
||||
} |
||||
} |
||||
// 检验方法列表
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getMethodList())){ |
||||
log.info("检验方法列表:{}", commonDataVO.getMethodList()); |
||||
List<ExaminationMethods> examinationMethodsList = BeanUtil.copyToList(commonDataVO.getMethodList(), ExaminationMethods.class); |
||||
boolean b = examinationMethodsService.saveOrUpdateBatch(examinationMethodsList); |
||||
if (b) { |
||||
log.info("保存或更新检验方法列表成功!!!"); |
||||
} |
||||
} |
||||
// 定性检验结果
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getResultEntrustmentQualitative())){ |
||||
log.info("定性检验结果:{}", commonDataVO.getResultEntrustmentQualitative()); |
||||
List<ResultEntrustmentQualitative> resultEntrustmentQualitativeList = |
||||
BeanUtil.copyToList(commonDataVO.getResultEntrustmentQualitative(), ResultEntrustmentQualitative.class); |
||||
boolean b = resultEntrustmentQualitativeService.saveOrUpdateBatch(resultEntrustmentQualitativeList); |
||||
if (b) { |
||||
log.info("保存或更新定性检验结果!!!"); |
||||
} |
||||
} |
||||
// 定量检验结果
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getResultEntrustmentRation())){ |
||||
log.info("定量检验结果:{}", commonDataVO.getResultEntrustmentRation()); |
||||
List<ResultEntrustmentRation> resultEntrustmentRationList = |
||||
BeanUtil.copyToList(commonDataVO.getResultEntrustmentRation(), ResultEntrustmentRation.class); |
||||
boolean b = resultEntrustmentRationService.saveOrUpdateBatch(resultEntrustmentRationList); |
||||
if (b) { |
||||
log.info("保存或更新定量检验结果!!!"); |
||||
} |
||||
} |
||||
} |
||||
}catch (Exception e){ |
||||
e.printStackTrace(); |
||||
return R.failed("保存或更新委托及鉴定结果异常,请联系管理员!!!"); |
||||
} |
||||
|
||||
return R.ok(); |
||||
} |
||||
} |
@ -0,0 +1,174 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser; |
||||
import digital.laboratory.platform.common.oss.service.OssFile; |
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus; |
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookApprove; |
||||
import digital.laboratory.platform.identifybook.entity.ModifySupplementApply; |
||||
import digital.laboratory.platform.identifybook.req.ModifySupplementApplyREQ; |
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService; |
||||
import digital.laboratory.platform.identifybook.service.IModifySupplementApplyService; |
||||
import digital.laboratory.platform.identifybook.utils.Word2PdfAsposeUtil; |
||||
import digital.laboratory.platform.sys.feign.RemoteUserService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.activation.MimetypesFileTypeMap; |
||||
import javax.servlet.ServletOutputStream; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.io.ByteArrayInputStream; |
||||
import java.io.ByteArrayOutputStream; |
||||
import java.security.Principal; |
||||
import java.util.Arrays; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书修改补充申请表 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "鉴定文书修改补充申请相关接口") |
||||
@RequestMapping("/book/modifySupplementApply") |
||||
public class ModifySupplementApplyController { |
||||
|
||||
private final OssFile ossFile; |
||||
|
||||
private final IModifySupplementApplyService modifySupplementApplyService; |
||||
|
||||
private final RemoteUserService remoteUserService; |
||||
|
||||
private final IEntrustmentService entrustmentService; |
||||
|
||||
@ApiOperation(value = "保存/更新鉴定文书修改补充申请信息", notes = "保存/更新鉴定文书修改补充申请信息") |
||||
@PostMapping |
||||
public R<ModifySupplementApply> addOrUpdate(@RequestBody ModifySupplementApply modifySupplementApply, HttpServletRequest request){ |
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
// 查询当前是否已经申请并且还没有审批完成的记录
|
||||
ModifySupplementApply existInfo = modifySupplementApplyService |
||||
.getOne(Wrappers.<ModifySupplementApply>lambdaQuery() |
||||
.eq(ModifySupplementApply::getEntrustmentId, modifySupplementApply.getEntrustmentId()) |
||||
.eq(ModifySupplementApply::getApplyBy, dlpUser.getId()) |
||||
.notIn(ModifySupplementApply::getStatus, |
||||
Arrays.asList(BusinessStatus.JD_WS_XG_BC_SP_TG.getCode(), BusinessStatus.JD_WS_XG_BC_SP_WTG.getCode()))); |
||||
if (existInfo != null) { |
||||
throw new RuntimeException("当前您有未审批完成的申请,请先处理当前申请!"); |
||||
} |
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId()); |
||||
String[] split = entrustment.getAcceptNo().split("-"); |
||||
modifySupplementApply.setApplyBy(dlpUser.getId()); |
||||
modifySupplementApply.setYear(split[0]); |
||||
modifySupplementApply.setSerialNumber(split[1]); |
||||
modifySupplementApply.setStatus(0); |
||||
modifySupplementApply.setApplyTime(new Date()); |
||||
modifySupplementApply.setUpdateTime(new Date()); |
||||
if(modifySupplementApplyService.saveOrUpdate(modifySupplementApply)){ |
||||
return R.ok(modifySupplementApply); |
||||
} |
||||
return R.failed("保存或更新失败"); |
||||
} |
||||
|
||||
@ApiOperation(value = "获取当前用户是否有未审批的申请修改记录信息", notes = "获取当前用户是否有未审批的申请修改记录信息") |
||||
@GetMapping("/getNotApproveApplyInfo") |
||||
public R<ModifySupplementApply> getNotApproveApplyInfoByUser(@RequestParam String entrustId, HttpServletRequest request){ |
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
// 查询当前是否已经申请并且还没有审批完成的记录
|
||||
ModifySupplementApply existInfo = modifySupplementApplyService |
||||
.getOne(Wrappers.<ModifySupplementApply>lambdaQuery() |
||||
.eq(ModifySupplementApply::getEntrustmentId, entrustId) |
||||
.eq(ModifySupplementApply::getApplyBy, dlpUser.getId()) |
||||
.notIn(ModifySupplementApply::getStatus, |
||||
Arrays.asList(BusinessStatus.JD_WS_XG_BC_SP_TG.getCode(), BusinessStatus.JD_WS_XG_BC_SP_WTG.getCode()))); |
||||
// 如果查询为空则new一个实例返回
|
||||
return R.ok(existInfo == null ? new ModifySupplementApply() : existInfo); |
||||
} |
||||
|
||||
@ApiOperation(value = "通过鉴定文书修改补充申请ID删除鉴定文书修改补充申请信息", notes = "通过鉴定文书修改补充申请ID删除鉴定文书修改补充申请信息") |
||||
@DeleteMapping("/{id}") |
||||
public R<String> del(@PathVariable("id") String id){ |
||||
if(modifySupplementApplyService.removeById(id)){ |
||||
return R.ok(); |
||||
} |
||||
return R.failed("删除鉴定文书修改补充申请信息失败!!!"); |
||||
} |
||||
|
||||
@ApiOperation(value = "通过鉴定文书修改补充申请ID查询鉴定文书修改补充申请信息", notes = "通过鉴定文书修改补充申请ID查询职鉴定文书修改补充申请信息") |
||||
@GetMapping("/view/{id}") |
||||
public R<ModifySupplementApply> view(@PathVariable("id") String id){ |
||||
ModifySupplementApply modifySupplementApply = modifySupplementApplyService.getById(id); |
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply)){ |
||||
if(StringUtils.isNotEmpty(modifySupplementApply.getEntrustBy()) && StringUtils.isEmpty(modifySupplementApply.getEntrustUserName())){ |
||||
modifySupplementApply.setEntrustUserName( |
||||
remoteUserService.innerGetById(modifySupplementApply.getEntrustBy()).getData().getName()); |
||||
} |
||||
|
||||
return R.ok(modifySupplementApply); |
||||
} |
||||
return R.failed("查询鉴定文书修改补充申请信息失败"); |
||||
} |
||||
|
||||
@ApiOperation(value = "通过条件分页查询鉴定文书修改补充申请信息", notes = "通过条件分页查询鉴定文书修改补充申请信息") |
||||
@PostMapping("/search") |
||||
public R<IPage<ModifySupplementApply>> getCareerCredentialsPage(@RequestBody ModifySupplementApplyREQ req){ |
||||
IPage<ModifySupplementApply> modifySupplementApplyIPage = modifySupplementApplyService.page( |
||||
req.getPage(), null); |
||||
if(CollectionUtils.isNotEmpty(modifySupplementApplyIPage.getRecords())){ |
||||
for (ModifySupplementApply modifySupplementApply: modifySupplementApplyIPage.getRecords()) { |
||||
if(StringUtils.isNotEmpty(modifySupplementApply.getEntrustBy())){ |
||||
modifySupplementApply.setEntrustUserName( |
||||
remoteUserService.innerGetById(modifySupplementApply.getEntrustBy()).getData().getName()); |
||||
} |
||||
} |
||||
} |
||||
return R.ok(modifySupplementApplyIPage); |
||||
} |
||||
|
||||
@ApiOperation(value = "根据鉴定文书修改补充申请ID获取鉴定文书修改补充申请文件", notes = "根据鉴定文书修改补充申请ID获取鉴定文书修改补充申请文件") |
||||
@GetMapping("/getIdentifyBookApprove/{id}") |
||||
public R getModifySupplementApplyWord(@PathVariable(value = "id") String id, HttpServletResponse response){ |
||||
try { |
||||
ModifySupplementApply modifySupplementApply = modifySupplementApplyService.getById(id); |
||||
if (ObjectUtils.isNotEmpty(modifySupplementApply) && StringUtils.isNotEmpty(modifySupplementApply.getPath())){ |
||||
|
||||
ByteArrayOutputStream bosWord = new ByteArrayOutputStream(); |
||||
ossFile.fileGet(modifySupplementApply.getPath(), bosWord); |
||||
// ossFile.fileGet(modifySupplementApply.getPath(), response.getOutputStream());
|
||||
ServletOutputStream servletOutputStream = response.getOutputStream(); |
||||
byte[] pdfByte = Word2PdfAsposeUtil.docx2pdf(new ByteArrayInputStream(bosWord.toByteArray())); |
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(pdfByte.length); |
||||
baos.write(pdfByte, 0, pdfByte.length); |
||||
baos.writeTo(servletOutputStream); |
||||
response.setContentType(new MimetypesFileTypeMap().getContentType( |
||||
modifySupplementApply.getFileName().substring(0, modifySupplementApply.getFileName().length() - 5) + ".pdf")); |
||||
// String uuid= IdWorker.get32UUID();
|
||||
// return R.ok( uuid+"#"+modifySupplementApply.getPath(), "获取文件成功");
|
||||
} |
||||
}catch (Exception e){ |
||||
System.out.println("获取鉴定文书审批表异常" + e.getMessage()); |
||||
e.printStackTrace(); |
||||
} |
||||
return R.failed("获取鉴定文书修改补充申请文件失败"); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,171 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO; |
||||
import digital.laboratory.platform.identifybook.dto.ReceiveIdentifyBookDTO; |
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus; |
||||
import digital.laboratory.platform.identifybook.entity.CaseEvent; |
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import digital.laboratory.platform.identifybook.entity.EntrustmentIdentificationMaterial; |
||||
import digital.laboratory.platform.identifybook.entity.ReceiveIdentifyBook; |
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ; |
||||
import digital.laboratory.platform.identifybook.service.ICaseEventService; |
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentIdentificationMaterialService; |
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService; |
||||
import digital.laboratory.platform.identifybook.service.IReceiveIdentifyBookService; |
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiImplicitParam; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* <p> |
||||
* 领取鉴定文书信息表 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-30 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "领取鉴定文书信息-相关接口") |
||||
@RequestMapping("/book/receiveIdentifyBook") |
||||
public class ReceiveIdentifyBookController { |
||||
|
||||
private final IEntrustmentService entrustmentService; |
||||
|
||||
private final ICaseEventService caseEventService; |
||||
|
||||
private final IEntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService; |
||||
|
||||
private final IReceiveIdentifyBookService receiveIdentifyBookService; |
||||
|
||||
@ApiOperation(value = "根据条件分页查询委托数据列表", notes = "根据条件分页查询委托数据列表") |
||||
@PostMapping("/findReceiveIdentifyBookPage") |
||||
public R<IPage<ReceiveIdentifyBookDTO>> findEntrustPage(@RequestBody EntrustmentREQ req){ |
||||
if(req.getBookStatusList().size() == 1){ |
||||
if(req.getBookStatusList().get(0).equals("4")){ |
||||
IPage<EntrustmentDTO> entrustPage = entrustmentService.findEntrustPage(req.getPage(), req); |
||||
IPage<ReceiveIdentifyBookDTO> bookDTOIPage = new Page<>(); |
||||
bookDTOIPage.setCurrent(entrustPage.getCurrent()); |
||||
bookDTOIPage.setPages(entrustPage.getPages()); |
||||
bookDTOIPage.setSize(entrustPage.getSize()); |
||||
bookDTOIPage.setTotal(entrustPage.getTotal()); |
||||
List<ReceiveIdentifyBookDTO> receiveIdentifyBookDTOList = new ArrayList<>(); |
||||
for (EntrustmentDTO entrustmentDTO: entrustPage.getRecords()){ |
||||
ReceiveIdentifyBookDTO receiveIdentifyBookDTO = new ReceiveIdentifyBookDTO(); |
||||
List<String> stringIDSList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
//.eq(Entrustment::getIdentificationId, entrustmentDTO.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustmentDTO.getId()) |
||||
) |
||||
.stream().map(m -> m.getId()) |
||||
.collect(Collectors.toList()); |
||||
receiveIdentifyBookDTO.setEntrustId(entrustmentDTO.getId()); |
||||
receiveIdentifyBookDTO.setSampleNum(entrustmentDTO.getMaterialNum()); |
||||
BeanUtil.copyProperties(entrustmentDTO, receiveIdentifyBookDTO); |
||||
/* List<ReceiveIdentifyBook> receiveIdentifyBookList = receiveIdentifyBookService.list(new LambdaQueryWrapper<ReceiveIdentifyBook>() |
||||
.in(ReceiveIdentifyBook::getRelevanceBusinessId, stringIDSList)); |
||||
if(CollectionUtils.isNotEmpty(receiveIdentifyBookList)){ |
||||
BeanUtil.copyProperties(receiveIdentifyBookList.get(0), receiveIdentifyBookDTO); |
||||
receiveIdentifyBookDTO.setReceiveId(receiveIdentifyBookList.get(0).getId()); |
||||
receiveIdentifyBookDTO.setStatus(2); |
||||
} else { |
||||
receiveIdentifyBookDTO.setStatus(1); |
||||
}*/ |
||||
receiveIdentifyBookDTO.setCaseName(entrustmentDTO.getCaseName()); |
||||
receiveIdentifyBookDTO.setAcceptNo(entrustmentDTO.getAcceptNo()); |
||||
receiveIdentifyBookDTO.setAcceptTime(entrustmentDTO.getAcceptTime()); |
||||
receiveIdentifyBookDTO.setStatus(1); |
||||
if (StrUtil.isBlank(receiveIdentifyBookDTO.getReceiveWay())) { |
||||
receiveIdentifyBookDTO.setReceiveWay(entrustmentDTO.getReportReceiveMode());//优先使用原来的领取方式
|
||||
receiveIdentifyBookDTO.setPostAddress(entrustmentDTO.getPostAddress()); |
||||
} |
||||
receiveIdentifyBookDTOList.add(receiveIdentifyBookDTO); |
||||
} |
||||
bookDTOIPage.setRecords(receiveIdentifyBookDTOList); |
||||
return R.ok(bookDTOIPage); |
||||
} else { |
||||
BaseRequest<ReceiveIdentifyBook> request = new BaseRequest<>(); |
||||
request.setCurrent(req.getCurrent()); |
||||
request.setSize(req.getSize()); |
||||
IPage<ReceiveIdentifyBookDTO> receiveIdentifyBookDTOIPage = |
||||
receiveIdentifyBookService.pageReceiveIdentifyBook(request.getPage(), req.getKey()); |
||||
if(CollectionUtils.isNotEmpty(receiveIdentifyBookDTOIPage.getRecords())){ |
||||
for (ReceiveIdentifyBookDTO receiveIdentifyBookDTO: receiveIdentifyBookDTOIPage.getRecords()){ |
||||
Entrustment entrustment = entrustmentService.getById(receiveIdentifyBookDTO.getEntrustId()); |
||||
List<String> stringIDSList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId()) |
||||
) |
||||
.stream().map(m -> m.getId()) |
||||
.collect(Collectors.toList()); |
||||
receiveIdentifyBookDTO.setCaseName(entrustment.getCaseName()); |
||||
receiveIdentifyBookDTO.setSampleNum(entrustment.getMaterialNum()); |
||||
receiveIdentifyBookDTO.setAcceptTime(entrustment.getAcceptTime()); |
||||
receiveIdentifyBookDTO.setAcceptNo(entrustment.getAcceptNo()); |
||||
receiveIdentifyBookDTO.setStatus(2); |
||||
if (StrUtil.isBlank(receiveIdentifyBookDTO.getReceiveWay())) { |
||||
receiveIdentifyBookDTO.setReceiveWay(entrustment.getReportReceiveMode());//优先使用原来的领取方式
|
||||
receiveIdentifyBookDTO.setPostAddress(entrustment.getPostAddress()); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
return R.ok(receiveIdentifyBookDTOIPage); |
||||
} |
||||
} |
||||
return R.ok(null,"未查询到数据"); |
||||
|
||||
} |
||||
@ApiOperation(value = "根据委托ID查看发放领取详情", notes = "根据委托ID查看发放领取详情") |
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID" , required = true) |
||||
@GetMapping("/view/{entrustId}") |
||||
public R<ReceiveIdentifyBookDTO> view(@PathVariable(value = "entrustId") String entrustId){ |
||||
Entrustment entrustment = entrustmentService.getById(entrustId); |
||||
List<String> stringIDSList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>() |
||||
.select(Entrustment::getId) |
||||
.eq(Entrustment::getIdentificationId, |
||||
entrustment.getIdentificationId())) |
||||
.stream().map(m -> m.getId()) |
||||
.collect(Collectors.toList()); |
||||
List<ReceiveIdentifyBook> receiveIdentifyBookList = receiveIdentifyBookService.list( |
||||
new LambdaQueryWrapper<ReceiveIdentifyBook>() |
||||
.in(ReceiveIdentifyBook::getRelevanceBusinessId, stringIDSList)); |
||||
if(CollectionUtils.isNotEmpty(receiveIdentifyBookList)){ |
||||
ReceiveIdentifyBookDTO receiveIdentifyBookDTO = new ReceiveIdentifyBookDTO(); |
||||
BeanUtil.copyProperties(receiveIdentifyBookList.get(0), receiveIdentifyBookDTO); |
||||
CaseEvent caseEvent = caseEventService.getById(entrustment.getCaseId()); |
||||
receiveIdentifyBookDTO.setReceiveId(receiveIdentifyBookList.get(0).getId()); |
||||
receiveIdentifyBookDTO.setEntrustId(receiveIdentifyBookList.get(0).getRelevanceBusinessId()); |
||||
receiveIdentifyBookDTO.setDeliverer1Name(entrustment.getDeliverer1Name()); |
||||
receiveIdentifyBookDTO.setDeliverer2Name(entrustment.getDeliverer2Name()); |
||||
receiveIdentifyBookDTO.setDeliverTime(entrustment.getDeliverTime()); |
||||
receiveIdentifyBookDTO.setIdentificationDomain(entrustment.getIdentificationDomain()); |
||||
receiveIdentifyBookDTO.setCaseNo(caseEvent.getCaseNo()); |
||||
receiveIdentifyBookDTO.setThirdPartySysNo(caseEvent.getThirdPartySysNo()); |
||||
receiveIdentifyBookDTO.setCaseName(caseEvent.getCaseName()); |
||||
receiveIdentifyBookDTO.setSampleNum(entrustment.getMaterialNum()); |
||||
return R.ok(receiveIdentifyBookDTO); |
||||
} |
||||
|
||||
return R.failed("为获取到相关数据!!!!"); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托定性分析检验结果 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/resultEntrustmentQualitative") |
||||
public class ResultEntrustmentQualitativeController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托定量检验结果 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/resultEntrustmentRation") |
||||
public class ResultEntrustmentRationController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检验用的样本 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/sample") |
||||
public class SampleController { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 采集员 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/book/taker") |
||||
public class TakerController { |
||||
|
||||
} |
@ -0,0 +1,53 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser; |
||||
import digital.laboratory.platform.identifybook.entity.TaskNotification; |
||||
import digital.laboratory.platform.identifybook.req.TaskNotificationREQ; |
||||
import digital.laboratory.platform.identifybook.service.ITaskNotificationService; |
||||
import digital.laboratory.platform.identifybook.vo.TaskNotificationVO; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import java.security.Principal; |
||||
|
||||
/** |
||||
* <p> |
||||
* 任务信息表 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-31 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api(tags = "审核审批签发-相关接口") |
||||
@RequestMapping("/book/taskNotification") |
||||
public class TaskNotificationController { |
||||
|
||||
private final ITaskNotificationService taskNotificationService; |
||||
|
||||
@ApiOperation(value = "根据条件分页查询任务/任务记录列表", notes = "根据条件分页查询任务/任务记录列表") |
||||
@PostMapping("/findTaskNotification") |
||||
public R<IPage<TaskNotificationVO>> findTaskNotification(@RequestBody TaskNotificationREQ req, HttpServletRequest theHttpServletRequest){ |
||||
// 获取当前登录用户信息
|
||||
Principal principal = theHttpServletRequest.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
IPage<TaskNotificationVO> page = taskNotificationService.queryTaskNotificationPage(req, dlpUser); |
||||
return R.ok(page); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,108 @@ |
||||
package digital.laboratory.platform.identifybook.controller; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser; |
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus; |
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance; |
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService; |
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookRelevanceService; |
||||
import digital.laboratory.platform.identifybook.service.ITaskNotificationService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import java.security.Principal; |
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.stream.Collectors; |
||||
import java.util.stream.Stream; |
||||
|
||||
/** |
||||
* <p> |
||||
* 公共数据统计 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-31 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@Api( tags = "公共数据统计-相关接口管理") |
||||
@RequestMapping("/book/commDataStatistics") |
||||
public class commDataStatisticsController { |
||||
|
||||
private final ITaskNotificationService taskNotificationService; |
||||
|
||||
private final IEntrustmentService entrustmentService; |
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService; |
||||
|
||||
@ApiOperation(value = "综合统计", notes = "综合统计") |
||||
@GetMapping("/comprehensiveStatistics") |
||||
public R comprehensiveStatistics(HttpServletRequest theHttpServletRequest){ |
||||
Principal principal = theHttpServletRequest.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
Map<String, Object> mapTotal= new HashMap<>(); |
||||
// 鉴定文书列表任务统计
|
||||
long countWSLBSum = entrustmentService.countWSLBSum(Stream.of(-1, -2, 3, -4, 5, 7).collect(Collectors.toList())); |
||||
// 审核审批签发任务统计
|
||||
long countRWSum = taskNotificationService.countRWSum(dlpUser); |
||||
// 鉴定文书签发领取任务统计
|
||||
long countQFLQSum = identifyBookRelevanceService.count(new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.eq(IdentifyBookRelevance::getBookStatus, BusinessStatus.JD_WS_SP_QF_TG.getCode())); |
||||
|
||||
mapTotal.put("countWSLBSum", countWSLBSum); |
||||
mapTotal.put("countRWSum", countRWSum); |
||||
mapTotal.put("countQFLQSum", countQFLQSum); |
||||
return R.ok(mapTotal, "countWSLBSum:鉴定文书列表统计结果,countRWSum:审核审批任务统计结果,countQFLQSum:签发领取任务结果"); |
||||
|
||||
} |
||||
|
||||
@ApiOperation(value = "审核审批任务统计", notes = "审核审批任务统计") |
||||
@GetMapping("/reviewAndApprovalTaskStatistics") |
||||
public R reviewAndApprovalTaskStatistics(HttpServletRequest theHttpServletRequest){ |
||||
// 获取当前登录用户信息
|
||||
Principal principal = theHttpServletRequest.getUserPrincipal(); |
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); |
||||
|
||||
return R.ok(taskNotificationService.countRWSum(dlpUser)); |
||||
|
||||
} |
||||
|
||||
@ApiOperation(value = "鉴定文书任务列表/待制作/退回修改任务统计", notes = "鉴定文书任务列表/待制作/退回修改任务统计") |
||||
@GetMapping("/identifyBookDZZORTHXGTaskStatistics") |
||||
public R identifyBookDZZORTHXGTaskStatistics(){ |
||||
Map<String, Object> mapTotal= new HashMap<>(); |
||||
// 鉴定文书任务列表/待制作统计
|
||||
long countWSLBDZZSum = entrustmentService.countWSLBSum(Stream.of(-1).collect(Collectors.toList())); |
||||
// 鉴定文书任务列表/退回修改/补充
|
||||
long countWSLBTHXGSum = entrustmentService.countWSLBSum(Stream.of(3, 5).collect(Collectors.toList())); |
||||
// 鉴定文书任务列表/重新制作
|
||||
long countWSLBCXZZSum = entrustmentService.countWSLBSum(Stream.of(-2, -4, 7).collect(Collectors.toList())); |
||||
mapTotal.put("countWSLBDZZSum", countWSLBDZZSum); |
||||
mapTotal.put("countWSLBTHXGSum", countWSLBTHXGSum); |
||||
mapTotal.put("countWSLBCXZZSum", countWSLBCXZZSum); |
||||
|
||||
return R.ok(mapTotal, "countWSLBDZZSum:鉴定文书待制作任务统计结果、countWSLBTHXGSum:鉴定文书退回修改任务统计结果、countWSLBCXZZSum:鉴定文书任务列表/重新制作"); |
||||
|
||||
} |
||||
|
||||
@ApiOperation(value = "鉴定文书签发待领取任务统计", notes = "鉴定文书签发待领取任务统计") |
||||
@GetMapping("/identifyBookQFDLQTaskStatistics") |
||||
public R identifyBookQFDLQTaskStatistics(){ |
||||
return R.ok(identifyBookRelevanceService.count( |
||||
new LambdaQueryWrapper<IdentifyBookRelevance>() |
||||
.eq(IdentifyBookRelevance::getBookStatus, BusinessStatus.JD_WS_SP_QF_TG.getCode()))); |
||||
|
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,130 @@ |
||||
package digital.laboratory.platform.identifybook.dto; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* <p> |
||||
* |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/24 10:15 |
||||
*/ |
||||
@Data |
||||
@ApiModel(value = "EntrustCaseDTO对象", description = "封装委托及案件相关属性") |
||||
public class EntrustCaseDTO { |
||||
|
||||
@ApiModelProperty(value = "委托Id") |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "委托编号") |
||||
private String entrustmentNo; |
||||
|
||||
@ApiModelProperty(value = "对应的流程实例Id") |
||||
private String processInstanceId; |
||||
|
||||
@ApiModelProperty(value = "受理Id, 通过这个可以得到鉴定号") |
||||
private String identificationId; |
||||
|
||||
@ApiModelProperty(value = "鉴定委托单位名称") |
||||
private String clientOrgName; |
||||
|
||||
@ApiModelProperty(value = "委托鉴定专业") |
||||
private String identificationDomain; |
||||
|
||||
@ApiModelProperty(value = "鉴定机构名称") |
||||
private String identificationOrgName; |
||||
|
||||
@ApiModelProperty(value = "鉴定要求") |
||||
private String entrustRequirement; |
||||
|
||||
@ApiModelProperty(value = "其他鉴定要求") |
||||
private String otherIdentificationRequests; |
||||
|
||||
@ApiModelProperty(value = "是否由委托方指定鉴定方法") |
||||
private Boolean isClientSpecifiedMethod; |
||||
|
||||
@ApiModelProperty(value = "委托方指定的鉴定方法") |
||||
private String clientSpecifiedMethod; |
||||
|
||||
@ApiModelProperty(value = "检验的其他说明(鉴定事项确认书中要求, 审核人填写)") |
||||
private String otherIdentificationNotes; |
||||
|
||||
@ApiModelProperty(value = "送检人1姓名") |
||||
private String deliverer1Name; |
||||
|
||||
@ApiModelProperty(value = "送检人1职务") |
||||
private String deliverer1Position; |
||||
|
||||
@ApiModelProperty(value = "送检人1证件名称") |
||||
private String deliverer1Cert; |
||||
|
||||
@ApiModelProperty(value = "送检人1证件编号") |
||||
private String deliverer1Id; |
||||
|
||||
@ApiModelProperty(value = "送检人1电话") |
||||
private String deliverer1Phone; |
||||
|
||||
@ApiModelProperty(value = "送检人2姓名") |
||||
private String deliverer2Name; |
||||
|
||||
@ApiModelProperty(value = "送检人2职务") |
||||
private String deliverer2Position; |
||||
|
||||
@ApiModelProperty(value = "送检人2证件名称") |
||||
private String deliverer2Cert; |
||||
|
||||
@ApiModelProperty(value = "送检人2证件编号") |
||||
private String deliverer2Id; |
||||
|
||||
@ApiModelProperty(value = "送检人2电话") |
||||
private String deliverer2Phone; |
||||
|
||||
@ApiModelProperty(value = "鉴定编号") |
||||
private String identificationNo; |
||||
|
||||
@ApiModelProperty(value = "受理编号") |
||||
private String acceptNo; |
||||
|
||||
@ApiModelProperty(value = "受理人user_id") |
||||
private String acceptUser; |
||||
|
||||
@ApiModelProperty(value = "受理时间") |
||||
private Date acceptTime; |
||||
|
||||
@ApiModelProperty(value = "受理意见") |
||||
private String acceptComments; |
||||
|
||||
@ApiModelProperty(value = "案件编号") |
||||
private String caseNo; |
||||
|
||||
@ApiModelProperty(value = "第三方系统(如现勘系统、案事件系统)编号") |
||||
private String thirdPartySysNo; |
||||
|
||||
@ApiModelProperty(value = "案件名称任务名称") |
||||
private String caseName; |
||||
|
||||
@ApiModelProperty(value = "案发时间") |
||||
private Date happenTime; |
||||
|
||||
@ApiModelProperty(value = "案发地详细地点") |
||||
private String caseAddress; |
||||
|
||||
@ApiModelProperty(value = "案件所属机构") |
||||
private String caseOwnOrgId; |
||||
|
||||
@ApiModelProperty(value = "案情简要") |
||||
private String caseBrief; |
||||
|
||||
@ApiModelProperty(value = "业务类型:业务类型 10000 委托检验鉴定 10001-NPS案件 10002-毛发案件 20000 任务检验鉴定 20001-毛发任务 20002-污水任务 30000 筛查检验鉴定 30001-筛查") |
||||
private Integer businessType; |
||||
|
||||
@ApiModelProperty(value="原始系统中的委托ID") |
||||
private String synEntrustId; |
||||
|
||||
|
||||
} |
@ -0,0 +1,54 @@ |
||||
package digital.laboratory.platform.identifybook.dto; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* <p> |
||||
* |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/25 15:27 |
||||
*/ |
||||
|
||||
@Data |
||||
@ApiModel(value = "EntrustmentDTO对象", description = "封装委托相关属性") |
||||
public class EntrustmentDTO extends Entrustment { |
||||
|
||||
@ApiModelProperty(value = "案件编号") |
||||
private String caseNo; |
||||
|
||||
@ApiModelProperty(value = "案件名称任务名称") |
||||
private String caseName; |
||||
|
||||
@ApiModelProperty(value = "案情简要") |
||||
private String caseBrief; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书年份") |
||||
private String year; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书序号") |
||||
private String serialNumber; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书业务状态(-1:待制作,0:已制作/重新制作,1:鉴定文书-提交审核,2:鉴定文书-审核通过),-2:鉴定文书-审核未通过,3:鉴定文书-审核退回修改,4:鉴定文书-审批签发成功,-4:鉴定文书-审批拒绝签发,5:鉴定文书-审批签发退回修改") |
||||
private Integer bookStatus; |
||||
|
||||
@ApiModelProperty(value = "鉴定人") |
||||
private String appraisalUserName; |
||||
|
||||
@ApiModelProperty(value = "鉴定开始时间") |
||||
private String inspectionStartDate; |
||||
|
||||
@ApiModelProperty(value = "鉴定结束时间") |
||||
private String finishDate; |
||||
|
||||
@ApiModelProperty("补送集合") |
||||
private List<EntrustmentDTO> children; |
||||
|
||||
|
||||
} |
@ -0,0 +1,99 @@ |
||||
package digital.laboratory.platform.identifybook.dto; |
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.time.LocalDateTime; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* <p> |
||||
* 领取鉴定文书相关信息 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-30 |
||||
*/ |
||||
@Data |
||||
@ApiModel(value="ReceiveIdentifyBookDTO对象", description="领取鉴定文书相关信息") |
||||
public class ReceiveIdentifyBookDTO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "委托ID") |
||||
private String entrustId; |
||||
|
||||
/** |
||||
* 业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组 |
||||
*/ |
||||
@ApiModelProperty(value="业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组") |
||||
private Integer businessType; |
||||
|
||||
@ApiModelProperty(value = "领取ID") |
||||
private String receiveId; |
||||
|
||||
@ApiModelProperty(value = "领取方式") |
||||
private String receiveWay; |
||||
|
||||
@ApiModelProperty(value="邮寄地址") |
||||
private String postAddress; |
||||
|
||||
@ApiModelProperty(value = "领取人ID") |
||||
private String recipientsUserId; |
||||
|
||||
@ApiModelProperty(value = "领取人姓名") |
||||
private String recipientsUserName; |
||||
|
||||
@ApiModelProperty(value = "领取时间") |
||||
private Date recipientsTime; |
||||
|
||||
@ApiModelProperty(value = "经办人ID") |
||||
private String operatorUserId; |
||||
|
||||
@ApiModelProperty(value = "经办人姓名") |
||||
private String operatorUserName; |
||||
|
||||
@ApiModelProperty(value="案件编号") |
||||
private String caseNo; |
||||
|
||||
@ApiModelProperty(value="受理编号") |
||||
private String acceptNo; |
||||
|
||||
@ApiModelProperty(value="第三方系统(如现勘系统、案事件系统)编号") |
||||
private String thirdPartySysNo; |
||||
|
||||
@ApiModelProperty(value="案件名称任务名称") |
||||
private String caseName; |
||||
|
||||
@ApiModelProperty(value="送检人1姓名") |
||||
private String deliverer1Name; |
||||
|
||||
@ApiModelProperty(value="送检人2姓名") |
||||
private String deliverer2Name; |
||||
|
||||
@ApiModelProperty(value="送检日期") |
||||
private LocalDateTime deliverTime; |
||||
|
||||
@ApiModelProperty(value="受理时间") |
||||
@JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8") |
||||
private LocalDateTime acceptTime; |
||||
|
||||
@ApiModelProperty(value="检验项目") |
||||
private String identificationDomain; |
||||
|
||||
@ApiModelProperty(value="检材数量") |
||||
private Integer sampleNum; |
||||
|
||||
@ApiModelProperty(value="领取/发放状态(1:待发放,2:已发放)") |
||||
private Integer status; |
||||
|
||||
@ApiModelProperty(value="原始系统中的委托ID") |
||||
private String synEntrustId; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书业务状态(-1:待制作,0:已制作/重新制作,1:鉴定文书-提交审核,2:鉴定文书-审核通过),-2:鉴定文书-审核未通过,3:鉴定文书-审核退回修改,4:鉴定文书-审批签发成功,-4:鉴定文书-审批拒绝签发,5:鉴定文书-审批签发退回修改,6:鉴定文书-已领取") |
||||
private Integer bookStatus; |
||||
} |
@ -0,0 +1,43 @@ |
||||
package digital.laboratory.platform.identifybook.emums; |
||||
|
||||
import lombok.Getter; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.Map; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @author ChenJiangBao |
||||
* @version 1.0 |
||||
* @description: 附件类型集合(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书) |
||||
* @date 2025/4/2 10:12 |
||||
*/ |
||||
@Getter |
||||
public enum AnnexTypeEnum { |
||||
// 附件类型集合(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)
|
||||
INSPECTION_RECORD("1", "检验记录(含原始记录,检验图表)"), |
||||
IDENTIFICATION_CONFIRMATION("2", "鉴定事项确认书"), |
||||
ENTRUST_LETTER("3", "鉴定委托书或鉴定聘请书"), |
||||
MATERIAL_PHOTO("4", "检材照片"), |
||||
EXAMINER_ID_COPY("5", "送检人证件复印件"), |
||||
ORIGINAL_DOCUMENT("6", "原鉴定文书"), |
||||
; |
||||
|
||||
private final String code; |
||||
private final String desc; |
||||
|
||||
AnnexTypeEnum(String code, String desc) { |
||||
this.code = code; |
||||
this.desc = desc; |
||||
} |
||||
|
||||
// 使用 Map 提高查找效率
|
||||
private static final Map<String, AnnexTypeEnum> CODE_MAP = |
||||
Arrays.stream(AnnexTypeEnum.values()) |
||||
.collect(Collectors.toMap(AnnexTypeEnum::getCode, e -> e)); |
||||
|
||||
// 根据 code 获取枚举
|
||||
public static AnnexTypeEnum fromCode(String code) { |
||||
return CODE_MAP.get(code); |
||||
} |
||||
} |
@ -0,0 +1,54 @@ |
||||
package digital.laboratory.platform.identifybook.emums; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Getter; |
||||
|
||||
/** |
||||
* <p> |
||||
* 业务状态枚举 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/12 16:20 |
||||
*/ |
||||
@Getter |
||||
@AllArgsConstructor |
||||
@ApiModel("业务状态") |
||||
public enum BusinessStatus { |
||||
JD_WS_YZZ("0", "已制作/重新制作鉴定文书"), |
||||
/** START 鉴定文书审核/审批/签发 **/ |
||||
JD_WS_TJ_SH("1","鉴定文书-提交审核"), |
||||
JD_WS_SH_TG("2","鉴定文书-审核通过"), |
||||
JD_WS_SH_WTG("-2","鉴定文书-审核未通过"), |
||||
JD_WS_SH_TH_XG("3","鉴定文书-审核退回修改"), |
||||
|
||||
JD_WS_SP_QF_TG("4","鉴定文书-审批签发成功"), |
||||
JD_WS_SP_QF_WTG("-4","鉴定文书-审批签发拒绝"), |
||||
JD_WS_SP_QF_TH_XG("5","鉴定文书-审批签发退回修改"), |
||||
|
||||
JD_WS_YLQ("6","鉴定文书-已领取"), |
||||
/** END 年度人员培训计划-提交/审核/审批业务状态 **/ |
||||
|
||||
/** START 鉴定文书修改/补充申请业务状态 **/ |
||||
JD_WS_XG_BC_SQ("1","鉴定文书-提交修改补充申请"), |
||||
JD_WS_XG_BC_SH_TG("2","鉴定文书-修改补充-审核通过"), |
||||
JD_WS_XG_BC_SH_WTG("-2","鉴定文书-修改补充-审核未通过"), |
||||
JD_WS_XG_BC_SP_TG("3","鉴定文书-修改补充-审批通过"), |
||||
JD_WS_XG_BC_SP_WTG("-3","鉴定文书-修改补充-审批不通过"), |
||||
JD_WS_XG_BC_SH_YJ_CX_ZZ("7","收回原件,重新出具鉴定文书"), |
||||
/** END 鉴定文书修改/补充申请业务状态 **/ |
||||
; |
||||
|
||||
private final String code; |
||||
private final String desc; |
||||
|
||||
public static BusinessStatus findEnumByCode(String code) { |
||||
for (BusinessStatus status : BusinessStatus.values()) { |
||||
if (status.code.equals(code)) { |
||||
return status; |
||||
} |
||||
} |
||||
throw new IllegalArgumentException("code is not support"); |
||||
} |
||||
} |
@ -0,0 +1,38 @@ |
||||
package digital.laboratory.platform.identifybook.emums; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Getter; |
||||
|
||||
/** |
||||
* <p> |
||||
* 定性/定量分析枚举 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/26 10:40 |
||||
*/ |
||||
@Getter |
||||
@AllArgsConstructor |
||||
@ApiModel("业务状态") |
||||
public enum IdentifyRequireEnum { |
||||
|
||||
QUALITATIVE_ANALYSIS(1, "对送检检材进行 ”定性“ 检测"), |
||||
QUANTITATIVE_ANALYSIS(2, "对送检检材进行 ”定量“ 检测"), |
||||
QUANTITATIVE_ANALYSIS_QUANTITATIVE_ANALYSIS(3, "对送检检材进行 ”定性,定量“ 检测"), |
||||
RELEVANCE(4, "对送检检材进行 ”关联性“ 检测"), |
||||
OTHER(5, "其它") |
||||
; |
||||
|
||||
private final Integer code; |
||||
private final String desc; |
||||
|
||||
public static IdentifyRequireEnum findEnumByCode(Integer code) { |
||||
for (IdentifyRequireEnum requireEnum : IdentifyRequireEnum.values()) { |
||||
if (requireEnum.code.equals(code)) { |
||||
return requireEnum; |
||||
} |
||||
} |
||||
throw new IllegalArgumentException("code is not support"); |
||||
} |
||||
} |
@ -0,0 +1,54 @@ |
||||
package digital.laboratory.platform.identifybook.emums; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Getter; |
||||
|
||||
/** |
||||
* <p> |
||||
* |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/8/9 16:20 |
||||
*/ |
||||
@Getter |
||||
@AllArgsConstructor |
||||
@ApiModel("权限组枚举") |
||||
public enum PermissionGroupEnum { |
||||
|
||||
/** |
||||
* 鉴定文书-制作/提交/退回修改(实验人员) |
||||
*/ |
||||
IdentifyBookProductionRrSubmissionProcess("IdentifyBookProductionRrSubmissionProcess", "鉴定文书-制作/提交/退回修改"), |
||||
/** |
||||
* 鉴定文书-审核(授权签字人) |
||||
*/ |
||||
IdentifyBookSH("IdentifyBookSH", "鉴定文书-审核"), |
||||
/** |
||||
* 鉴定文书-审批(主任) |
||||
*/ |
||||
IdentifyBookSP("IdentifyBookSP", "鉴定文书-审批(主任)"), |
||||
/** |
||||
* 鉴定文书-签发((实验人员) |
||||
*/ |
||||
IdentifyBookQF("IdentifyBookQF", "鉴定文书-签发"), |
||||
|
||||
/** |
||||
* 鉴定文书-修改补充申请/提交审核 (实验人员) |
||||
*/ |
||||
IdentifyBookModificationAndSupplementationSQ("IdentifyBookModificationAndSupplementationSQ", "鉴定文书-修改补充申请/提交审核"), |
||||
/** |
||||
* 鉴定文书-修改补充审核 (授权签字人) |
||||
*/ |
||||
IdentifyBookModificationAndSupplementationSH("IdentifyBookModificationAndSupplementationSH", "鉴定文书-修改补充审核 "), |
||||
/** |
||||
* 鉴定文书-修改补充审批 (主任) |
||||
*/ |
||||
IdentifyBookModificationAndSupplementationSP("IdentifyBookModificationAndSupplementationSP", "鉴定文书-修改补充审批 ") |
||||
; |
||||
|
||||
|
||||
private final String code; |
||||
private final String desc; |
||||
} |
@ -0,0 +1,39 @@ |
||||
package digital.laboratory.platform.identifybook.emums; |
||||
|
||||
import lombok.Getter; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.Map; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @author ChenJiangBao |
||||
* @version 1.0 |
||||
* @description: 报告领取方式: 0=自取, 1=代领, 2=邮寄 |
||||
* @date 2025/4/2 10:12 |
||||
*/ |
||||
@Getter |
||||
public enum ReceiveWayEnum { |
||||
// 报告领取方式: 0=自取, 1=代领, 2=邮寄
|
||||
SELF_PICKUP("0", "自取"), |
||||
PROXY_PICKUP("1", "代领"), |
||||
MAIL("2", "邮寄"); |
||||
|
||||
private final String code; |
||||
private final String desc; |
||||
|
||||
ReceiveWayEnum(String code, String desc) { |
||||
this.code = code; |
||||
this.desc = desc; |
||||
} |
||||
|
||||
// 使用 Map 提高查找效率
|
||||
private static final Map<String, ReceiveWayEnum> CODE_MAP = |
||||
Arrays.stream(ReceiveWayEnum.values()) |
||||
.collect(Collectors.toMap(ReceiveWayEnum::getCode, e -> e)); |
||||
|
||||
// 根据 code 获取枚举
|
||||
public static ReceiveWayEnum fromCode(String code) { |
||||
return CODE_MAP.get(code); |
||||
} |
||||
} |
@ -0,0 +1,24 @@ |
||||
package digital.laboratory.platform.identifybook.emums; |
||||
|
||||
import io.swagger.annotations.ApiModel; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Getter; |
||||
|
||||
@Getter |
||||
@AllArgsConstructor |
||||
@ApiModel("任务类型枚举") |
||||
public enum TaskTypeEnum { |
||||
|
||||
JD_WS_SH("1","鉴定文书-审核"), |
||||
JD_WS_SH_TH_XG("2","鉴定文书-审核退回修改"), |
||||
JD_WS_SP("3","鉴定文书-审批"), |
||||
JD_WS_SP_TH_XG("4","鉴定文书-审批退回修改"), |
||||
JD_WS_QF_LQ("5","鉴定文书-签发/领取"), |
||||
JD_WS_XG_BC_SH("6","鉴定文书修改/补充-审核"), |
||||
JD_WS_XG_BC_SP("7","鉴定文书修改/补充-审批") |
||||
|
||||
; |
||||
|
||||
private final String code; |
||||
private final String desc; |
||||
} |
@ -0,0 +1,40 @@ |
||||
package digital.laboratory.platform.identifybook.emums; |
||||
|
||||
import lombok.Getter; |
||||
|
||||
/** |
||||
* 重量/体积单位 枚举 |
||||
*/ |
||||
@Getter |
||||
public enum UnitEnums { |
||||
|
||||
UNIT_SOLID_G("g", "克"), |
||||
|
||||
UNIT_SOLID_MG("mg", "毫克"), |
||||
|
||||
UNIT_SOLID_KG("kg", "公斤"), |
||||
|
||||
UNIT_LIQUID_L("l", "升"), |
||||
|
||||
UNIT_LIQUID_ML("ml", "毫升"), |
||||
; |
||||
|
||||
private final String code; |
||||
|
||||
private final String desc; |
||||
|
||||
UnitEnums(String code, String desc) { |
||||
this.code = code; |
||||
this.desc = desc; |
||||
} |
||||
|
||||
// 根据单位获取单位描述,没有就返回原先的字符
|
||||
public static String fromUnit(String code) { |
||||
for (UnitEnums unitEnums : values()) { |
||||
if (unitEnums.getCode().equals(code)) { |
||||
return unitEnums.getDesc(); |
||||
} |
||||
} |
||||
return code; |
||||
} |
||||
} |
@ -0,0 +1,15 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 回避的鉴定人 |
||||
* 作为委托的一个属性, 由委托方指定某些鉴定人需要回避 |
||||
*/ |
||||
|
||||
@Data |
||||
public class AvoidIdentifier { |
||||
String userId; // 用户 Id
|
||||
String name; // 这是鉴定人的姓名
|
||||
String reason; // 回避的原因(事由)
|
||||
} |
@ -0,0 +1,36 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-27 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@ApiModel(value="BIdentificationProcess对象", description="") |
||||
public class BIdentificationProcess implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "委托ID") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "检验过程") |
||||
@TableField("inspection_process") |
||||
private String inspectionProcess; |
||||
|
||||
|
||||
} |
@ -0,0 +1,58 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField; |
||||
import com.baomidou.mybatisplus.annotation.*; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.Date; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 业务流程记录表 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_business_process_record") |
||||
@ApiModel(value="BusinessProcessRecord对象", description="业务流程记录表") |
||||
public class BusinessProcessRecord implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "业务流程记录ID") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "业务ID") |
||||
private String businessId; |
||||
|
||||
@ApiModelProperty(value = "业务名称") |
||||
private String businessName; |
||||
|
||||
@ApiModelProperty(value = "业务类型名称") |
||||
private String businessTypeName; |
||||
|
||||
@ApiModelProperty(value = "业务状态") |
||||
private Integer businessStatus; |
||||
|
||||
@ApiModelProperty(value = "意见") |
||||
private String message; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
@TableField(fill = FieldFill.INSERT) |
||||
@JSONField( format = "yyyy-MM-dd HH:mm:ss") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
@TableField(fill = FieldFill.INSERT) |
||||
private String createBy; |
||||
|
||||
} |
@ -0,0 +1,113 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 案件、事件 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_case_event") |
||||
@ApiModel(value="CaseEvent对象", description="案件、事件") |
||||
public class CaseEvent extends BaseEntity { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
/** |
||||
* id |
||||
*/ |
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID) |
||||
@ApiModelProperty(value="id") |
||||
private String id; |
||||
|
||||
/** |
||||
* 案件编号 |
||||
*/ |
||||
@ApiModelProperty(value="案件编号") |
||||
private String caseNo; |
||||
|
||||
/** |
||||
* 第三方系统(如现勘系统、案事件系统)编号 |
||||
*/ |
||||
@ApiModelProperty(value="第三方系统(如现勘系统、案事件系统)编号") |
||||
private String thirdPartySysNo; |
||||
|
||||
/** |
||||
* 案件名称任务名称 |
||||
*/ |
||||
@ApiModelProperty(value="案件名称任务名称") |
||||
private String caseName; |
||||
|
||||
/** |
||||
* 案件类型 |
||||
*/ |
||||
@ApiModelProperty(value="案件类型") |
||||
private String caseType; |
||||
|
||||
/** |
||||
* 案发时间 |
||||
*/ |
||||
@ApiModelProperty(value="案发时间") |
||||
private LocalDateTime happenTime; |
||||
|
||||
/** |
||||
* 案发地详细地点 |
||||
*/ |
||||
@ApiModelProperty(value="案发地详细地点") |
||||
private String caseAddress; |
||||
|
||||
/** |
||||
* 案发地行政区划编码(到县一级) |
||||
*/ |
||||
@ApiModelProperty(value="案发地行政区划编码(到县一级)") |
||||
private String caseArea; |
||||
|
||||
/** |
||||
* 案件所属机构 |
||||
*/ |
||||
@ApiModelProperty(value="案件所属机构") |
||||
private String caseOwnOrgId; |
||||
|
||||
/** |
||||
* 案件级别: 0=普通案件, 1=紧急案件, 2=加急案件 |
||||
*/ |
||||
@ApiModelProperty(value="案件级别: 0=普通案件, 1=紧急案件, 2=加急案件") |
||||
private Integer caseRank; |
||||
|
||||
/** |
||||
* 案情简要 |
||||
*/ |
||||
@ApiModelProperty(value="案情简要") |
||||
private String caseBrief; |
||||
|
||||
/** |
||||
* 案件备注 |
||||
*/ |
||||
@ApiModelProperty(value="案件备注") |
||||
private String comments; |
||||
|
||||
/** |
||||
* 数据来源,用于区别数据来自自身系统还是外部系统 |
||||
*/ |
||||
@ApiModelProperty(value="数据来源") |
||||
private Integer dataSources; |
||||
|
||||
|
||||
} |
@ -0,0 +1,211 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; |
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 与案件相关的物证信息 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_case_evidence") |
||||
@ApiModel(value="CaseEvidence对象", description="与案件相关的物证信息") |
||||
public class CaseEvidence extends BaseEntity { |
||||
|
||||
/** |
||||
* id |
||||
*/ |
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID) |
||||
@ApiModelProperty(value="id") |
||||
private String id; |
||||
|
||||
/** |
||||
* 本系统物证编号 |
||||
*/ |
||||
@ApiModelProperty(value="本系统物证编号") |
||||
private String evidenceNo; |
||||
|
||||
/** |
||||
* 案件Id |
||||
*/ |
||||
@ApiModelProperty(value="案件Id") |
||||
private String caseId; |
||||
|
||||
/** |
||||
* 第三方系统(如现勘系统、案事件系统)物证编号 |
||||
*/ |
||||
@ApiModelProperty(value="第三方系统(如现勘系统、案事件系统)物证编号") |
||||
private String thirdPartySysEvidenceNo; |
||||
|
||||
/** |
||||
* 物证名称 |
||||
*/ |
||||
@ApiModelProperty(value="物证名称") |
||||
private String name; |
||||
|
||||
/** |
||||
* 物证类别:1. 非生物性物证;2. 生物特性物证 |
||||
*/ |
||||
@ApiModelProperty(value="物证类别:1. 非生物性物证;2. 生物特性物证") |
||||
private String type; |
||||
|
||||
/** |
||||
* 现场标牌号 |
||||
*/ |
||||
@ApiModelProperty(value="现场标牌号") |
||||
private String fieldLabelNo; |
||||
|
||||
/** |
||||
* 物证来源 |
||||
*/ |
||||
@ApiModelProperty(value="物证来源") |
||||
private String source; |
||||
|
||||
/** |
||||
* 物证颜色 |
||||
*/ |
||||
@ApiModelProperty(value="物证颜色") |
||||
private String color; |
||||
|
||||
/** |
||||
* 物证性状 |
||||
*/ |
||||
@ApiModelProperty(value="物证性状") |
||||
private String form; |
||||
|
||||
/** |
||||
* 物证情况之承载物名称, 例如 棉签 2 棵, 粉末 少许 |
||||
*/ |
||||
@ApiModelProperty(value="物证情况之承载物名称, 例如 棉签 2 棵, 粉末 少许") |
||||
private String fundName; |
||||
|
||||
/** |
||||
* 物证情况之承载物数量, 例如 5 颗, 3包, |
||||
*/ |
||||
@ApiModelProperty(value="物证情况之承载物数量, 例如 5 颗, 3包, ") |
||||
private Integer fundQuantity; |
||||
|
||||
/** |
||||
* 物证情况之承载物单位, 例如 5 颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value="物证情况之承载物单位, 例如 5 颗, 3包") |
||||
private String fundUnit; |
||||
|
||||
/** |
||||
* 物证数量, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value="物证数量, 例如 3.8 克 或 4.5毫升") |
||||
private BigDecimal quantity; |
||||
|
||||
/** |
||||
* 物证单位, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value="物证单位, 例如 3.8 克 或 4.5毫升") |
||||
private String unit; |
||||
|
||||
/** |
||||
* 附加属性, 如:体积3毫升,密码123,型号abc |
||||
*/ |
||||
@ApiModelProperty(value="附加属性, 如:体积3毫升,密码123,型号abc") |
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<IMAdditionalProperty> additionalProperties; |
||||
|
||||
/** |
||||
* 所有者姓名 |
||||
*/ |
||||
@ApiModelProperty(value="所有者姓名") |
||||
private String personName; |
||||
|
||||
/** |
||||
* 所有者证件类型 |
||||
*/ |
||||
@ApiModelProperty(value="所有者证件类型") |
||||
private String personCert; |
||||
|
||||
/** |
||||
* 所有者证件号 |
||||
*/ |
||||
@ApiModelProperty(value="所有者证件号") |
||||
private String personId; |
||||
|
||||
/** |
||||
* 所有者性别,公安系统编码 1:男 2:女 0:未知 |
||||
*/ |
||||
@ApiModelProperty(value="所有者性别,公安系统编码 1:男 2:女 0:未知") |
||||
private Integer personGender; |
||||
|
||||
/** |
||||
* 所有者国籍 |
||||
*/ |
||||
@ApiModelProperty(value="所有者国籍") |
||||
private String personNationality; |
||||
|
||||
/** |
||||
* 所有者民族编码,公安系统编码 |
||||
*/ |
||||
@ApiModelProperty(value="所有者民族编码,公安系统编码") |
||||
private Integer personNation; |
||||
|
||||
/** |
||||
* 所有者地址 |
||||
*/ |
||||
@ApiModelProperty(value="所有者地址") |
||||
private String personAddress; |
||||
|
||||
/** |
||||
* 所有者年龄 |
||||
*/ |
||||
@ApiModelProperty(value="所有者年龄") |
||||
private Integer personAge; |
||||
|
||||
/** |
||||
* 包装情况:纸袋,纸盒,纸箱,自定义 |
||||
*/ |
||||
@ApiModelProperty(value="包装情况:纸袋,纸盒,纸箱,自定义") |
||||
private String pack; |
||||
|
||||
/** |
||||
* 存储方法:常规,冷藏,特殊 |
||||
*/ |
||||
@ApiModelProperty(value="存储方法:常规,冷藏,特殊") |
||||
private String storageMethod; |
||||
|
||||
/** |
||||
* 描述 |
||||
*/ |
||||
@ApiModelProperty(value="描述") |
||||
private String description; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
@ApiModelProperty(value="备注") |
||||
private String comments; |
||||
|
||||
/** |
||||
* 数据来源,用于区别数据来自自身系统还是外部系统 |
||||
*/ |
||||
@ApiModelProperty(value="数据来源") |
||||
private Integer dataSources; |
||||
|
||||
|
||||
} |
@ -0,0 +1,63 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 送检员 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_deliverer") |
||||
@ApiModel(value="Deliverer对象", description="送检员") |
||||
public class Deliverer implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "送检员拥有者userId") |
||||
private String ownerUserId; |
||||
|
||||
@ApiModelProperty(value = "送检员姓名") |
||||
private String name; |
||||
|
||||
@ApiModelProperty(value = "送检员职务") |
||||
private String position; |
||||
|
||||
@ApiModelProperty(value = "送检员证件名称") |
||||
private String cert; |
||||
|
||||
@ApiModelProperty(value = "送检员证件编号") |
||||
private String idnum; |
||||
|
||||
@ApiModelProperty(value = "送检员电话") |
||||
private String phone; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "更新人") |
||||
private String updateBy; |
||||
|
||||
|
||||
} |
@ -0,0 +1,763 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; |
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import digital.laboratory.platform.sys.entity.DrugLite; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_entrustment") |
||||
@ApiModel(value="Entrustment对象", description="委托") |
||||
public class Entrustment extends BaseEntity { |
||||
|
||||
/** |
||||
* 编号 |
||||
*/ |
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID) |
||||
@ApiModelProperty(value="编号") |
||||
private String id; |
||||
|
||||
/** |
||||
* 案件Id |
||||
*/ |
||||
@ApiModelProperty(value="案件Id") |
||||
private String caseId; |
||||
/** |
||||
* 案件名称 |
||||
*/ |
||||
@ApiModelProperty(value="案件名称") |
||||
private String caseName; |
||||
|
||||
/** |
||||
* 案情简要 |
||||
*/ |
||||
@ApiModelProperty(value="案情简要") |
||||
private String caseBrief; |
||||
|
||||
|
||||
/** |
||||
* 委托编号 |
||||
*/ |
||||
@ApiModelProperty(value="委托编号") |
||||
private String entrustmentNo; |
||||
|
||||
/** |
||||
* 委托类型: 0=正常司法鉴定委托, 1=案前委托 |
||||
*/ |
||||
@ApiModelProperty(value="委托类型: 0=正常司法鉴定委托, 1=案前委托") |
||||
private Integer entrustmentType; |
||||
|
||||
/** |
||||
* 业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组 |
||||
*/ |
||||
@ApiModelProperty(value="业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组") |
||||
private Integer businessType; |
||||
|
||||
/** |
||||
* 对应的流程实例Id |
||||
*/ |
||||
@ApiModelProperty(value="对应的流程实例Id") |
||||
private String processInstanceId; |
||||
|
||||
/** |
||||
* 受理Id, 通过这个可以得到鉴定号 |
||||
*/ |
||||
@ApiModelProperty(value="受理Id, 通过这个可以得到鉴定号") |
||||
private String identificationId; |
||||
|
||||
/** |
||||
* 委托日期, 鉴定委托书打印日期 |
||||
*/ |
||||
@ApiModelProperty(value="委托日期, 鉴定委托书打印日期") |
||||
private LocalDateTime entrustmentTime; |
||||
|
||||
/** |
||||
* 委托提交者, 后期可能会转给其他人user_id |
||||
*/ |
||||
@ApiModelProperty(value="委托提交者, 后期可能会转给其他人user_id") |
||||
private String submitter; |
||||
|
||||
/** |
||||
* 提交日期, 提交审核的日期 |
||||
*/ |
||||
@ApiModelProperty(value="提交日期, 提交审核的日期") |
||||
private LocalDateTime submitTime; |
||||
|
||||
/** |
||||
* 鉴定委托单位编码 |
||||
*/ |
||||
@ApiModelProperty(value="鉴定委托单位编码") |
||||
private String clientOrgId; |
||||
|
||||
/** |
||||
* 鉴定委托单位名称 |
||||
*/ |
||||
@ApiModelProperty(value="鉴定委托单位名称") |
||||
private String clientOrgName; |
||||
|
||||
/** |
||||
* 通讯地址 |
||||
*/ |
||||
@ApiModelProperty(value="通讯地址") |
||||
private String clientAddress; |
||||
|
||||
/** |
||||
* 邮政编码 |
||||
*/ |
||||
@ApiModelProperty(value="邮政编码") |
||||
private String clientPostcode; |
||||
|
||||
/** |
||||
* 电话号码 |
||||
*/ |
||||
@ApiModelProperty(value="电话号码") |
||||
private String clientTel; |
||||
|
||||
/** |
||||
* 传真号码 |
||||
*/ |
||||
@ApiModelProperty(value="传真号码") |
||||
private String clientFax; |
||||
|
||||
/** |
||||
* 委托鉴定专业 |
||||
*/ |
||||
@ApiModelProperty(value="委托鉴定专业") |
||||
private String identificationDomain; |
||||
|
||||
/** |
||||
* 鉴定机构名称 |
||||
*/ |
||||
@ApiModelProperty(value="鉴定机构名称") |
||||
private String identificationOrgName; |
||||
|
||||
/** |
||||
* 定性分析 |
||||
*/ |
||||
@ApiModelProperty(value="定性分析") |
||||
private Boolean qualitativeAnalysis; |
||||
|
||||
/** |
||||
* 定量分析 |
||||
*/ |
||||
@ApiModelProperty(value="定量分析") |
||||
private Boolean quantitativeAnalysis; |
||||
|
||||
/** |
||||
* 其他鉴定要求 |
||||
*/ |
||||
@ApiModelProperty(value="其他鉴定要求") |
||||
private String otherIdentificationRequests; |
||||
|
||||
/** |
||||
* 候选毒品列表(drug 对象的 json array) |
||||
*/ |
||||
@ApiModelProperty(value="候选毒品列表(drug 对象的 json array)") |
||||
//@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<DrugLite> candidateDrugs; |
||||
|
||||
/** |
||||
* 是否由委托方指定鉴定方法 |
||||
*/ |
||||
@ApiModelProperty(value="是否由委托方指定鉴定方法") |
||||
private Boolean isClientSpecifiedMethod; |
||||
|
||||
/** |
||||
* 委托方指定的鉴定方法 |
||||
*/ |
||||
@ApiModelProperty(value="委托方指定的鉴定方法") |
||||
private String clientSpecifiedMethod; |
||||
|
||||
/** |
||||
* 是否有损检验:0=无损,1=有损 |
||||
*/ |
||||
@ApiModelProperty(value="是否有损检验:0=无损,1=有损") |
||||
private Boolean destructiveAnalysis; |
||||
|
||||
/** |
||||
* 检验的其他说明(鉴定事项确认书中要求, 审核人填写) |
||||
*/ |
||||
@ApiModelProperty(value="检验的其他说明(鉴定事项确认书中要求, 审核人填写)") |
||||
private String otherIdentificationNotes; |
||||
|
||||
/** |
||||
* 是否重新鉴定:0=否,1=重新鉴定 |
||||
*/ |
||||
@ApiModelProperty(value="是否重新鉴定:0=否,1=重新鉴定") |
||||
private Boolean reidentification; |
||||
|
||||
/** |
||||
* 原鉴定机构 |
||||
*/ |
||||
@ApiModelProperty(value="原鉴定机构") |
||||
private String oldIdentificationOrgName; |
||||
|
||||
/** |
||||
* 原鉴定文书 |
||||
*/ |
||||
@ApiModelProperty(value="原鉴定文书") |
||||
private String oldIdentificationDocument; |
||||
|
||||
/** |
||||
* 原鉴定结果 |
||||
*/ |
||||
@ApiModelProperty(value="原鉴定结果") |
||||
private String oldIdentificationResult; |
||||
|
||||
/** |
||||
* 重新鉴定理由 |
||||
*/ |
||||
@ApiModelProperty(value="重新鉴定理由") |
||||
private String reidentificationReason; |
||||
|
||||
/** |
||||
* 回避的鉴定人及回避事由, json 格式 |
||||
*/ |
||||
@ApiModelProperty(value="回避的鉴定人及回避事由, json 格式") |
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<AvoidIdentifier> avoidIdentifier; |
||||
|
||||
/** |
||||
* 指定鉴定人, 委托中指定鉴定人 |
||||
*/ |
||||
@ApiModelProperty(value="指定鉴定人, 委托中指定鉴定人") |
||||
private String specifiedIdentifier; |
||||
|
||||
/** |
||||
* 其它约定事项,打印在鉴定事项确认书中的"约定->其他" |
||||
*/ |
||||
@ApiModelProperty(value="其它约定事项,打印在鉴定事项确认书中的\"约定->其他\"") |
||||
private String otherAgreement; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
@ApiModelProperty(value="备注") |
||||
private String comments; |
||||
|
||||
/** |
||||
* 候选审核人, user_id列表, 逗号分隔 |
||||
*/ |
||||
@ApiModelProperty(value="候选审核人, user_id列表, 逗号分隔") |
||||
private String checkCandidateUser; |
||||
|
||||
/** |
||||
* 审核任务认领人 |
||||
*/ |
||||
@ApiModelProperty(value="审核任务认领人") |
||||
private String checkClaimUser; |
||||
|
||||
/** |
||||
* 审核任务认领时间 |
||||
*/ |
||||
@ApiModelProperty(value="审核任务认领时间") |
||||
private LocalDateTime checkClaimTime; |
||||
|
||||
/** |
||||
* 实际审核人, user_id |
||||
*/ |
||||
@ApiModelProperty(value="实际审核人, user_id") |
||||
private String checkUser; |
||||
|
||||
/** |
||||
* 审核时间 |
||||
*/ |
||||
@ApiModelProperty(value="审核时间") |
||||
private LocalDateTime checkTime; |
||||
|
||||
/** |
||||
* 审核意见: (审批通过 审批不通过及原因) |
||||
*/ |
||||
@ApiModelProperty(value="审核意见: (审批通过 审批不通过及原因)") |
||||
private String checkComments; |
||||
|
||||
/** |
||||
* 审核次数记录 |
||||
*/ |
||||
@ApiModelProperty(value="审核次数记录") |
||||
private Integer checkTimes; |
||||
|
||||
/** |
||||
* 专业全部物证检验状态: 0=未全部审核 1=已全部审核 |
||||
*/ |
||||
@ApiModelProperty(value="专业全部物证检验状态: 0=未全部审核 1=已全部审核") |
||||
private Boolean checkAllIdentificationMaterialConfirmed; |
||||
|
||||
/** |
||||
* 候选审批人, user_id列表, 逗号分隔 |
||||
*/ |
||||
@ApiModelProperty(value="候选审批人, user_id列表, 逗号分隔") |
||||
private String approveCandidateUser; |
||||
|
||||
/** |
||||
* 审批任务认领人 |
||||
*/ |
||||
@ApiModelProperty(value="审批任务认领人") |
||||
private String approveClaimUser; |
||||
|
||||
/** |
||||
* 审批任务认领时间 |
||||
*/ |
||||
@ApiModelProperty(value="审批任务认领时间") |
||||
private LocalDateTime approveClaimTime; |
||||
|
||||
/** |
||||
* 实际审批人, user_id |
||||
*/ |
||||
@ApiModelProperty(value="实际审批人, user_id") |
||||
private String approveUser; |
||||
|
||||
/** |
||||
* 审批时间 |
||||
*/ |
||||
@ApiModelProperty(value="审批时间") |
||||
private LocalDateTime approveTime; |
||||
|
||||
/** |
||||
* 审批意见: (审批通过 审批不通过及原因) |
||||
*/ |
||||
@ApiModelProperty(value="审批意见: (审批通过 审批不通过及原因)") |
||||
private String approveComments; |
||||
|
||||
/** |
||||
* 审批次数:该字段在审核通过时初始化, 值为0或1时代表初审, 2代表复审 |
||||
*/ |
||||
@ApiModelProperty(value="审批次数:该字段在审核通过时初始化, 值为0或1时代表初审, 2代表复审") |
||||
private Integer approveTimes; |
||||
|
||||
/** |
||||
* 送检确认人user_id |
||||
*/ |
||||
@ApiModelProperty(value="送检确认人user_id") |
||||
private String deliverConfirmUser; |
||||
|
||||
/** |
||||
* 送检确认时间 |
||||
*/ |
||||
@ApiModelProperty(value="送检确认时间") |
||||
private LocalDateTime deliverConfirmTime; |
||||
|
||||
/** |
||||
* 送检确认意见 |
||||
*/ |
||||
@ApiModelProperty(value="送检确认意见") |
||||
private String deliverConfirmComments; |
||||
|
||||
/** |
||||
* 送检日期 |
||||
*/ |
||||
@ApiModelProperty(value="送检日期") |
||||
private LocalDateTime deliverTime; |
||||
|
||||
/** |
||||
* 送检操作提交用户user_id |
||||
*/ |
||||
@ApiModelProperty(value="送检操作提交用户user_id") |
||||
private String deliverSubmitter; |
||||
|
||||
// /**
|
||||
// * 如果送检人1是系统用户, 记录用户id
|
||||
// */
|
||||
// @ApiModelProperty(value="如果送检人1是系统用户, 记录用户id")
|
||||
// private String deliverer1UserId;
|
||||
|
||||
/** |
||||
* 送检人1姓名 |
||||
*/ |
||||
@ApiModelProperty(value="送检人1姓名") |
||||
private String deliverer1Name; |
||||
|
||||
/** |
||||
* 送检人1职务 |
||||
*/ |
||||
@ApiModelProperty(value="送检人1职务") |
||||
private String deliverer1Position; |
||||
|
||||
/** |
||||
* 送检人1证件名称 |
||||
*/ |
||||
@ApiModelProperty(value="送检人1证件名称") |
||||
private String deliverer1Cert; |
||||
|
||||
/** |
||||
* 送检人1证件编号 |
||||
*/ |
||||
@ApiModelProperty(value="送检人1证件编号") |
||||
private String deliverer1Id; |
||||
|
||||
/** |
||||
* 送检人1电话 |
||||
*/ |
||||
@ApiModelProperty(value="送检人1电话") |
||||
private String deliverer1Phone; |
||||
|
||||
// /**
|
||||
// * 如果送检人2是系统用户, 记录用户id
|
||||
// */
|
||||
// @ApiModelProperty(value="如果送检人2是系统用户, 记录用户id")
|
||||
// private String deliverer2UserId;
|
||||
|
||||
/** |
||||
* 送检人2姓名 |
||||
*/ |
||||
@ApiModelProperty(value="送检人2姓名") |
||||
private String deliverer2Name; |
||||
|
||||
/** |
||||
* 送检人2职务 |
||||
*/ |
||||
@ApiModelProperty(value="送检人2职务") |
||||
private String deliverer2Position; |
||||
|
||||
/** |
||||
* 送检人2证件名称 |
||||
*/ |
||||
@ApiModelProperty(value="送检人2证件名称") |
||||
private String deliverer2Cert; |
||||
|
||||
/** |
||||
* 送检人2证件编号 |
||||
*/ |
||||
@ApiModelProperty(value="送检人2证件编号") |
||||
private String deliverer2Id; |
||||
|
||||
/** |
||||
* 送检人2电话 |
||||
*/ |
||||
@ApiModelProperty(value="送检人2电话") |
||||
private String deliverer2Phone; |
||||
|
||||
// /**
|
||||
// * 受理任务认领人
|
||||
// */
|
||||
// @ApiModelProperty(value="受理任务认领人")
|
||||
// private String acceptClaimUser;
|
||||
//
|
||||
// /**
|
||||
// * 受理任务认领时间
|
||||
// */
|
||||
// @ApiModelProperty(value="受理任务认领时间")
|
||||
// private LocalDateTime acceptClaimTime;
|
||||
|
||||
/** |
||||
* 受理编号 |
||||
*/ |
||||
@ApiModelProperty(value="受理编号") |
||||
private String acceptNo; |
||||
|
||||
/** |
||||
* 受理人user_id |
||||
*/ |
||||
@ApiModelProperty(value="受理人user_id") |
||||
private String acceptUser; |
||||
|
||||
/** |
||||
* 受理时间 |
||||
*/ |
||||
@ApiModelProperty(value="受理时间") |
||||
private LocalDateTime acceptTime; |
||||
|
||||
/** |
||||
* 受理意见 |
||||
*/ |
||||
@ApiModelProperty(value="受理意见") |
||||
private String acceptComments; |
||||
|
||||
/** |
||||
* 鉴定事项确认书是否已经打印 |
||||
*/ |
||||
@ApiModelProperty(value="鉴定事项确认书是否已经打印") |
||||
private Boolean identificationItemsConfirmPrinted; |
||||
|
||||
|
||||
/** |
||||
* 送检受理信息, 以 json 格式记录送检受理各环节的文字意见 |
||||
*/ |
||||
@ApiModelProperty(value="送检受理信息, 以 json 格式记录送检受理各环节的文字意见") |
||||
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<UpdateInfo> processInfo; |
||||
|
||||
/** |
||||
* 报告领取方式: 0=自取, 1=代领, 2=邮寄 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取方式: 0=自取, 1=代领, 2=邮寄") |
||||
private String reportReceiveMode; |
||||
|
||||
/** |
||||
* 报告领取人1的 user id |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人1的 user id") |
||||
private String reportReceiver1UserId; |
||||
|
||||
/** |
||||
* 报告领取人1的姓名 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人1的姓名") |
||||
private String reportReceiver1Name; |
||||
|
||||
/** |
||||
* 报告领取人1的职务 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人1的职务") |
||||
private String reportReceiver1Position; |
||||
|
||||
/** |
||||
* 报告领取人1的证件类型 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人1的证件类型") |
||||
private String reportReceiver1Cert; |
||||
|
||||
/** |
||||
* 报告领取人1的证件号 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人1的证件号") |
||||
private String reportReceiver1Id; |
||||
|
||||
/** |
||||
* 报告领取人1的电话 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人1的电话") |
||||
private String reportReceiver1Phone; |
||||
|
||||
/** |
||||
* 报告领取人2的 user id |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人2的 user id") |
||||
private String reportReceiver2UserId; |
||||
|
||||
/** |
||||
* 报告领取人2的姓名 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人2的姓名") |
||||
private String reportReceiver2Name; |
||||
|
||||
/** |
||||
* 报告领取人2的职务 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人2的职务") |
||||
private String reportReceiver2Position; |
||||
|
||||
/** |
||||
* 报告领取人2的证件类型 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人2的证件类型") |
||||
private String reportReceiver2Cert; |
||||
|
||||
/** |
||||
* 报告领取人2的证件号 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人2的证件号") |
||||
private String reportReceiver2Id; |
||||
|
||||
/** |
||||
* 报告领取人2的电话 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人2的电话") |
||||
private String reportReceiver2Phone; |
||||
|
||||
/** |
||||
* 报告发放人user_id(通常是受理员) |
||||
*/ |
||||
@ApiModelProperty(value="报告发放人user_id(通常是受理员)") |
||||
private String reportSenderUserId; |
||||
|
||||
/** |
||||
* 报告发放时间 |
||||
*/ |
||||
@ApiModelProperty(value="报告发放时间") |
||||
private LocalDateTime reportSentTime; |
||||
|
||||
/** |
||||
* 报告领取人1领取报告时的签名 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人1领取报告时的签名") |
||||
private String reportReceiver1Signature; |
||||
|
||||
/** |
||||
* 报告领取人2领取报告时的签名 |
||||
*/ |
||||
@ApiModelProperty(value="报告领取人2领取报告时的签名") |
||||
private String reportReceiver2Signature; |
||||
|
||||
/** |
||||
* 检材领取方式: 0=自取, 1=实验室自行处理 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取方式: 0=自取, 1=实验室自行处理") |
||||
private Integer sampleReceiveMode; |
||||
|
||||
/** |
||||
* 如果检材领取人1是系统用户, 记录userId |
||||
*/ |
||||
@ApiModelProperty(value="如果检材领取人1是系统用户, 记录userId") |
||||
private String sampleReceiver1UserId; |
||||
|
||||
/** |
||||
* 检材领取人1姓名 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人1姓名") |
||||
private String sampleReceiver1Name; |
||||
|
||||
/** |
||||
* 检材领取人1职位 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人1职位") |
||||
private String sampleReceiver1Position; |
||||
|
||||
/** |
||||
* 检材领取人1证件类型 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人1证件类型") |
||||
private String sampleReceiver1Cret; |
||||
|
||||
/** |
||||
* 检材领取人1证件号 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人1证件号") |
||||
private String sampleReceiver1Id; |
||||
|
||||
/** |
||||
* 检材领取人1电话 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人1电话") |
||||
private String sampleReceiver1Phone; |
||||
|
||||
/** |
||||
* 如果检材领取人2是系统用户, 记录userId |
||||
*/ |
||||
@ApiModelProperty(value="如果检材领取人2是系统用户, 记录userId") |
||||
private String sampleReceiver2UserId; |
||||
|
||||
/** |
||||
* 检材领取人2姓名 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人2姓名") |
||||
private String sampleReceiver2Name; |
||||
|
||||
/** |
||||
* 检材领取人2职位 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人2职位") |
||||
private String sampleReceiver2Position; |
||||
|
||||
/** |
||||
* 检材领取人2证件类型 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人2证件类型") |
||||
private String sampleReceiver2Cret; |
||||
|
||||
/** |
||||
* 检材领取人2证件号 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人2证件号") |
||||
private String sampleReceiver2Id; |
||||
|
||||
/** |
||||
* 检材领取人2电话 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人2电话") |
||||
private String sampleReceiver2Phone; |
||||
|
||||
/** |
||||
* 检材发放人, 鉴定机构工作人员user_id |
||||
*/ |
||||
@ApiModelProperty(value="检材发放人, 鉴定机构工作人员user_id") |
||||
private String sampleSenderUserId; |
||||
|
||||
/** |
||||
* 检材发放时间 |
||||
*/ |
||||
@ApiModelProperty(value="检材发放时间") |
||||
private String sampleSentTime; |
||||
|
||||
/** |
||||
* 检材领取人1签名 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人1签名") |
||||
private String sampleReceiver1PersonSignature; |
||||
|
||||
/** |
||||
* 检材领取人2签名 |
||||
*/ |
||||
@ApiModelProperty(value="检材领取人2签名") |
||||
private String sampleReceiver2PersonSignnature; |
||||
|
||||
/** |
||||
* 状态 |
||||
*/ |
||||
@ApiModelProperty(value="状态") |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 上一个状态 |
||||
*/ |
||||
@ApiModelProperty(value="上一个状态") |
||||
private Integer previousStatus; |
||||
|
||||
/** |
||||
* 数据来源,用于区别数据来自自身系统还是外部系统 |
||||
*/ |
||||
@ApiModelProperty(value="数据来源") |
||||
private Integer dataSources; |
||||
|
||||
/** |
||||
* 第三方数据系统中的委托编号, |
||||
*/ |
||||
@ApiModelProperty(value="禁毒数据平台的委托编号") |
||||
private String thirdSysEntrustNo; |
||||
|
||||
/** |
||||
* 第三方系统受理编号, |
||||
*/ |
||||
@ApiModelProperty(value="第三方系统受理编号") |
||||
private String acceptNoThirdSys; |
||||
/** |
||||
* 鉴定要求, |
||||
*/ |
||||
@ApiModelProperty(value="鉴定要求") |
||||
private String entrustRequirement; |
||||
/** |
||||
* 邮寄地址, |
||||
*/ |
||||
@ApiModelProperty(value="邮寄地址") |
||||
private String postAddress; |
||||
@ApiModelProperty(value="原始系统中的委托ID") |
||||
private String synEntrustId; |
||||
|
||||
@ApiModelProperty(value="检材数量") |
||||
private Integer materialNum; |
||||
|
||||
@ApiModelProperty("是否推送数据到LabsCare的标识," + |
||||
"[" + |
||||
"EntrustLetter:true 代表推送委托书成功 | " + |
||||
"ItemConfirmLetter:true 代表推送鉴定事项确认书成功 | " + |
||||
"BiologyQualitativeRecord:true 代表推送生物定性检验记录成功" + |
||||
"" + |
||||
"]" + |
||||
"如果这个字段为空则表示失败,如果两个推送都成功,以英文逗号分隔") |
||||
private String pushFlag; |
||||
|
||||
} |
@ -0,0 +1,64 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托与实验关系 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName(value = "b_entrustment_bundle", autoResultMap = true) |
||||
@ApiModel(value="BEntrustmentBundle对象", description="委托与实验关系") |
||||
public class EntrustmentBundle implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "entrustment_id") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value="选中的实验, 实验id的json数组") |
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<String> selectedExperiment; |
||||
|
||||
@ApiModelProperty(value = "审核审批结果: null=未审, 0=审核审批未通过, 1=审核审批已通过") |
||||
private Boolean approvalResult; |
||||
|
||||
@ApiModelProperty(value = "提交给文书系统的日期") |
||||
private Date submitDate; |
||||
|
||||
@ApiModelProperty(value = "状态: 0=刚创建, 1=已提交给文书系统, 2=文书审核审批通过, 3=已通知委托系统") |
||||
private Integer status; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "修改人") |
||||
private String updateBy; |
||||
|
||||
|
||||
} |
@ -0,0 +1,538 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils; |
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.util.List; |
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; |
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import digital.laboratory.platform.sys.entity.DrugLite; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检材信息 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_entrustment_identification_material") |
||||
@ApiModel(value="EntrustmentIdentificationMaterial对象", description="检材信息") |
||||
public class EntrustmentIdentificationMaterial extends BaseEntity { |
||||
|
||||
/** |
||||
* 检材id |
||||
*/ |
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID) |
||||
@ApiModelProperty(value = "检材id") |
||||
private String id; |
||||
|
||||
/** |
||||
* 检材编号 |
||||
*/ |
||||
@ApiModelProperty(value = "检材编号") |
||||
private String imNo; |
||||
|
||||
/** |
||||
* 物证id |
||||
*/ |
||||
@ApiModelProperty(value = "物证id") |
||||
private String evidenceId; |
||||
|
||||
/** |
||||
* 案件id |
||||
*/ |
||||
@ApiModelProperty(value = "案件id") |
||||
private String caseId; |
||||
|
||||
/** |
||||
* 委托id |
||||
*/ |
||||
@ApiModelProperty(value = "委托id") |
||||
private String entrustmentId; |
||||
|
||||
/** |
||||
* 检材名称 |
||||
*/ |
||||
@ApiModelProperty(value = "检材名称") |
||||
private String name; |
||||
|
||||
/** |
||||
* 检材类别:继承所取物证的类别或从物证类别选择 |
||||
*/ |
||||
@ApiModelProperty(value = "检材类别:继承所取物证的类别或从物证类别选择") |
||||
private String type; |
||||
|
||||
/** |
||||
* 检材类别名称:继承所取物证的类别或从物证类别选择 |
||||
* 2023/5/31 在咸阳分中心添加 |
||||
*/ |
||||
@ApiModelProperty(value = "检材类别名称:继承所取物证的类别或从物证类别选择") |
||||
private String typeName; |
||||
|
||||
/** |
||||
* 检材颜色:继承所取物证颜色或手动填入 |
||||
*/ |
||||
@ApiModelProperty(value = "检材颜色:继承所取物证颜色或手动填入") |
||||
private String color; |
||||
|
||||
/** |
||||
* 检材性状:继承所取物证性状或从物证性状类别选择 |
||||
*/ |
||||
@ApiModelProperty(value = "检材性状:继承所取物证性状或从物证性状类别选择") |
||||
private String form; |
||||
|
||||
/** |
||||
* 检材性状:继承所取物证性状或从物证性状类别选择 |
||||
* * 2023/5/31 在咸阳分中心添加 |
||||
*/ |
||||
@ApiModelProperty(value = "检材性状名称:继承所取物证性状或从物证性状类别选择") |
||||
private String formName; |
||||
|
||||
/** |
||||
* 检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许 |
||||
*/ |
||||
@ApiModelProperty(value = "检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许") |
||||
private String fundName; |
||||
|
||||
/** |
||||
* 检材情况之承载物数量, 例如 5 颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value = "检材情况之承载物数量, 例如 5 颗, 3包") |
||||
private Integer fundQuantity; |
||||
|
||||
/** |
||||
* 检材情况之承载物单位, 例如 5 颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value = "检材情况之承载物单位, 例如 5 颗, 3包") |
||||
private String fundUnit; |
||||
|
||||
/** |
||||
* 检材数量, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value = "检材数量, 例如 3.8 克 或 4.5毫升") |
||||
private BigDecimal quantity; |
||||
|
||||
/** |
||||
* 计量单位, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value = "计量单位, 例如 3.8 克 或 4.5毫升") |
||||
private String unit; |
||||
|
||||
/** |
||||
* 附加属性, 如:体积3毫升,密码123,型号abc |
||||
*/ |
||||
@ApiModelProperty(value = "附加属性, 如:体积3毫升,密码123,型号abc") |
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<IMAdditionalProperty> additionalProperties; |
||||
|
||||
/** |
||||
* 提取方法 |
||||
*/ |
||||
@ApiModelProperty(value = "提取方法") |
||||
private String drawWay; |
||||
|
||||
/** |
||||
* 所有者姓名 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者姓名") |
||||
private String personName; |
||||
|
||||
/** |
||||
* 所有者证件类型 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者证件类型") |
||||
private String personCert; |
||||
|
||||
/** |
||||
* 所有者证件号 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者证件号") |
||||
private String personId; |
||||
|
||||
/** |
||||
* 所有者性别,公安系统编码: 1=男 2=女 0=未知 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者性别,公安系统编码: 1=男 2=女 0=未知") |
||||
private Integer personGender; |
||||
|
||||
/** |
||||
* 所有者国籍 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者国籍") |
||||
private String personNationality; |
||||
|
||||
/** |
||||
* 所有者民族编码,公安系统编码 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者民族编码,公安系统编码") |
||||
private Integer personNation; |
||||
|
||||
/** |
||||
* 所有者地址 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者地址") |
||||
private String personAddress; |
||||
|
||||
/** |
||||
* 所有者年龄 |
||||
*/ |
||||
@ApiModelProperty(value = "所有者年龄") |
||||
private Integer personAge; |
||||
|
||||
/** |
||||
* 采集人1姓名 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人1姓名") |
||||
private String take1Name; |
||||
|
||||
/** |
||||
* 采集人1职务 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人1职务") |
||||
private String take1Position; |
||||
|
||||
/** |
||||
* 采集人1证件名称 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人1证件名称") |
||||
private String take1Cert; |
||||
|
||||
/** |
||||
* 采集人1证件号 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人1证件号") |
||||
private String take1Id; |
||||
|
||||
/** |
||||
* 采集人1联系电话 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人1联系电话") |
||||
private String take1Phone; |
||||
|
||||
/** |
||||
* 采集人2姓名 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人2姓名") |
||||
private String take2Name; |
||||
|
||||
/** |
||||
* 采集人2职务 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人2职务") |
||||
private String take2Position; |
||||
|
||||
/** |
||||
* 采集人2证件名称 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人2证件名称") |
||||
private String take2Cert; |
||||
|
||||
/** |
||||
* 采集人2证件号 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人2证件号") |
||||
private String take2Id; |
||||
|
||||
/** |
||||
* 采集人2联系电话 |
||||
*/ |
||||
@ApiModelProperty(value = "采集人2联系电话") |
||||
private String take2Phone; |
||||
|
||||
/** |
||||
* 采集日期 |
||||
*/ |
||||
@ApiModelProperty(value = "采集日期") |
||||
private LocalDateTime takeTime; |
||||
|
||||
/** |
||||
* 见证人姓名 |
||||
*/ |
||||
@ApiModelProperty(value = "见证人姓名") |
||||
private String witnessName; |
||||
|
||||
/** |
||||
* 见证人证件名称 |
||||
*/ |
||||
@ApiModelProperty(value = "见证人证件名称") |
||||
private String witnessCert; |
||||
|
||||
/** |
||||
* 见证人证件号 |
||||
*/ |
||||
@ApiModelProperty(value = "见证人证件号") |
||||
private String witnessId; |
||||
|
||||
/** |
||||
* 包装情况:纸袋,纸盒,纸箱,自定义 |
||||
*/ |
||||
@ApiModelProperty(value = "包装情况:纸袋,纸盒,纸箱,自定义") |
||||
private String pack; |
||||
|
||||
/** |
||||
* 包装情况名称:纸袋,纸盒,纸箱,自定义 |
||||
* 2023/5/31 在咸阳分中心添加 |
||||
*/ |
||||
@ApiModelProperty(value = "包装情况名称:纸袋,纸盒,纸箱,自定义") |
||||
private String packName; |
||||
|
||||
/** |
||||
* 存储方法:常规,冷藏,特殊 |
||||
*/ |
||||
@ApiModelProperty(value = "存储方法:常规,冷藏,特殊") |
||||
private String storageMethod; |
||||
|
||||
/** |
||||
* 候选毒品列表(drug 对象的 json array) |
||||
*/ |
||||
@ApiModelProperty(value = "候选毒品列表(drug 对象的 json array)") |
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<DrugLite> candidateDrugs; |
||||
|
||||
/** |
||||
* 检材概要 |
||||
*/ |
||||
@ApiModelProperty(value = "检材概要") |
||||
private String description; |
||||
|
||||
/** |
||||
* 审核时间 |
||||
*/ |
||||
@ApiModelProperty(value = "审核时间") |
||||
private LocalDateTime checkTime; |
||||
|
||||
/** |
||||
* 审核是否通过: 1=审核通过 |
||||
*/ |
||||
@ApiModelProperty(value = "审核是否通过: 1=审核通过") |
||||
private Integer checkPassed; |
||||
|
||||
/** |
||||
* 审批时间 |
||||
*/ |
||||
@ApiModelProperty(value = "审批时间") |
||||
private LocalDateTime approveTime; |
||||
|
||||
/** |
||||
* 审批是否通过: 1=审批通过 |
||||
*/ |
||||
@ApiModelProperty(value = "审批是否通过: 1=审批通过") |
||||
private Integer approvePassed; |
||||
|
||||
/** |
||||
* 受理时间 |
||||
*/ |
||||
@ApiModelProperty(value = "受理时间") |
||||
private LocalDateTime acceptTime; |
||||
|
||||
/** |
||||
* 是否受理: 0=未受理, 1=已受理, -1=不予受理 |
||||
*/ |
||||
@ApiModelProperty(value = "是否受理: 0=未受理, 1=已受理, -1=不予受理") |
||||
private Integer acceptPassed; |
||||
|
||||
/** |
||||
* 提供的样本1是否存在, 应该总是存在 |
||||
*/ |
||||
// @ApiModelProperty(value="提供的样本1是否存在, 应该总是存在")
|
||||
// private Boolean providedSample1Present;
|
||||
|
||||
/** |
||||
* 提供的样本1编号 |
||||
*/ |
||||
@ApiModelProperty(value = "提供的样本1编号") |
||||
private String providedSample1No; |
||||
|
||||
/** |
||||
* 提供的样本1承载物数量(重量), 例如 5颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value = "提供的样本1承载物数量(重量), 例如 5颗, 3包") |
||||
private Integer providedSample1FundQuantity; |
||||
|
||||
/** |
||||
* 提供的样本1数量, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value = "提供的样本1数量, 例如 3.8 克 或 4.5毫升") |
||||
private BigDecimal providedSample1Quantity; |
||||
|
||||
/** |
||||
* 提供的样本2是否存在 |
||||
*/ |
||||
@ApiModelProperty(value = "提供的样本2是否存在") |
||||
private Boolean providedSample2Present; |
||||
|
||||
/** |
||||
* 提供的样本2编号 |
||||
*/ |
||||
@ApiModelProperty(value = "提供的样本2编号") |
||||
private String providedSample2No; |
||||
|
||||
/** |
||||
* 提供的样本2承载物数量(重量), 例如 5颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value = "提供的样本2承载物数量(重量), 例如 5颗, 3包") |
||||
private Integer providedSample2FundQuantity; |
||||
|
||||
/** |
||||
* 提供的样本2数量, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value = "提供的样本2数量, 例如 3.8 克 或 4.5毫升") |
||||
private BigDecimal providedSample2Quantity; |
||||
|
||||
/** |
||||
* 是否已分样: 0=未分样, 1=已分样 |
||||
*/ |
||||
@ApiModelProperty(value = "是否已分样: 0=未分样, 1=已分样") |
||||
private Boolean splitedSample; |
||||
|
||||
/** |
||||
* 样本1是否存在, 应该总是存在 |
||||
*/ |
||||
// @ApiModelProperty(value="样本1是否存在, 应该总是存在")
|
||||
// private Boolean sample1Present;
|
||||
|
||||
/** |
||||
* 样本1编号 |
||||
*/ |
||||
@ApiModelProperty(value = "样本1编号") |
||||
private String sample1No; |
||||
|
||||
/** |
||||
* 样本1承载物数量(重量), 例如 5颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value = "样本1承载物数量(重量), 例如 5颗, 3包") |
||||
private Integer sample1FundQuantity; |
||||
|
||||
/** |
||||
* 样本1数量, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value = "样本1数量, 例如 3.8 克 或 4.5毫升") |
||||
private BigDecimal sample1Quantity; |
||||
|
||||
/** |
||||
* 样本1盒子 id |
||||
*/ |
||||
@ApiModelProperty(value = "样本1盒子 id") |
||||
private String sample1BoxId; |
||||
|
||||
/** |
||||
* 样本2是否存在 |
||||
*/ |
||||
@ApiModelProperty(value = "样本2是否存在") |
||||
private Boolean sample2Present; |
||||
|
||||
/** |
||||
* 样本2编号 |
||||
*/ |
||||
@ApiModelProperty(value = "样本2编号") |
||||
private String sample2No; |
||||
|
||||
/** |
||||
* 样本2承载物数量(重量), 例如 5颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value = "样本2承载物数量(重量), 例如 5颗, 3包") |
||||
private Integer sample2FundQuantity; |
||||
|
||||
/** |
||||
* 样本2数量, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value = "样本2数量, 例如 3.8 克 或 4.5毫升") |
||||
private BigDecimal sample2Quantity; |
||||
|
||||
/** |
||||
* 样本2盒子 id |
||||
*/ |
||||
@ApiModelProperty(value = "样本2盒子 id") |
||||
private String sample2BoxId; |
||||
//add by xy 2023-04-15,记录复秤的结果而增加的字段信息
|
||||
/** |
||||
* 样本1复秤后的重量 |
||||
*/ |
||||
@ApiModelProperty(value = "样本1的复秤重量") |
||||
private BigDecimal sample1RepeatWeigh; |
||||
/** |
||||
* 样本2复秤后的重量 |
||||
*/ |
||||
@ApiModelProperty(value = "样本2的复秤重量") |
||||
private BigDecimal sample2RepeatWeigh; |
||||
|
||||
/** |
||||
* 分析项目 定性分析,定量分析,定性定量分析,关联性判断 其他 |
||||
* 1.定性分析 2.定量分析 3.定性定量分析 4.关联性判断 5。其他 |
||||
*/ |
||||
private Integer analysisOption; |
||||
|
||||
/** |
||||
* 数据来源,用于区别数据来自自身系统还是外部系统 |
||||
*/ |
||||
@ApiModelProperty(value = "数据来源") |
||||
private Integer dataSources; |
||||
/** |
||||
* 检材受理编号,一般是绑定检材所属的委托的受理编号 |
||||
*/ |
||||
@ApiModelProperty(value = "检材受理编号") |
||||
private String acceptNo; |
||||
/** |
||||
* 打印委托书的时候需要对检材的序号,但是这个时候检材又没有受理,所以添加一个顺序号 |
||||
*/ |
||||
@ApiModelProperty(value = "委托检材顺序号,由系统根据录入顺序生成") |
||||
private Integer orderNo; |
||||
|
||||
public String getOrderNo1() { |
||||
return this.orderNo + "号检材"; |
||||
} |
||||
|
||||
public String getSampleCondition() { |
||||
if (this.getSample2FundQuantity() != null && this.getSample2FundQuantity() > 0) { |
||||
return this.getSample2FundQuantity() + this.getFundUnit(); |
||||
} else { |
||||
return ""; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 获取检材的描述性编号(简短称呼),如果还没有受理之前,是没有受理编号的,所以未受理之前,使用不了这个函数 |
||||
* |
||||
* @return |
||||
*/ |
||||
public String getShortNameDes() { |
||||
String acceptNo = this.getAcceptNo(); |
||||
if (StringUtils.isNotBlank(acceptNo)) { |
||||
int seqNo = Integer.parseInt(acceptNo.substring(acceptNo.lastIndexOf("-") + 1)); |
||||
return seqNo + "号"; |
||||
} else { |
||||
return "0号"; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 取检材的序号 |
||||
* |
||||
* @return |
||||
*/ |
||||
public int getIndex() { |
||||
String acceptNo = this.getAcceptNo(); |
||||
if (StringUtils.isNotBlank(acceptNo)) { |
||||
int seqNo = Integer.parseInt(acceptNo.substring(acceptNo.lastIndexOf("-") + 1)); |
||||
return seqNo; |
||||
} else { |
||||
return 0; |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,127 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import java.io.Serializable; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检验方法 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("examination_methods") |
||||
@ApiModel(value="ExaminationMethods对象", description="检验方法") |
||||
public class ExaminationMethods implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "方法实体类id") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "方法名") |
||||
private String methodName; |
||||
|
||||
@ApiModelProperty(value = "方法依据") |
||||
private Integer methodBasis; |
||||
|
||||
@ApiModelProperty(value = "方法英文名") |
||||
@TableField("method_English_name") |
||||
private String methodEnglishName; |
||||
|
||||
@ApiModelProperty(value = "标准号") |
||||
private String standardNumber; |
||||
|
||||
@ApiModelProperty(value = "发布单位") |
||||
private String publishingUnit; |
||||
|
||||
@ApiModelProperty(value = "发布时间") |
||||
private Date publishingTime; |
||||
|
||||
@ApiModelProperty(value = "其他依据") |
||||
private String others; |
||||
|
||||
@ApiModelProperty(value = "实施时间") |
||||
private Date implementTime; |
||||
|
||||
@ApiModelProperty(value = "适用范围") |
||||
private String suitRange; |
||||
|
||||
@ApiModelProperty(value = "规范性引用文件") |
||||
private String normativeReferences; |
||||
|
||||
@ApiModelProperty(value = "术语和定义") |
||||
private String termAndDefinition; |
||||
|
||||
@ApiModelProperty(value = "原理") |
||||
private String principle; |
||||
|
||||
@ApiModelProperty(value = "方法当前状态") |
||||
private Integer methodStatus; |
||||
|
||||
@ApiModelProperty(value = "方法类型(标准/非标准)") |
||||
private Integer methodType; |
||||
|
||||
@ApiModelProperty(value = "试剂") |
||||
private String reagent; |
||||
|
||||
@ApiModelProperty(value = "仪器和设备") |
||||
private String instrumentsAndEquipment; |
||||
|
||||
@ApiModelProperty(value = "定量结果评价") |
||||
private String quantitativeResultEvaluation; |
||||
|
||||
@ApiModelProperty(value = "操作方法") |
||||
private String operationMethod; |
||||
|
||||
@ApiModelProperty(value = "指导书id") |
||||
private String guidelinesId; |
||||
|
||||
@ApiModelProperty(value = "结果表述") |
||||
private String expressionOfResults; |
||||
|
||||
@ApiModelProperty(value = "评审时间") |
||||
private Date reviewTime; |
||||
|
||||
@ApiModelProperty(value = "评审人") |
||||
private String reviewer; |
||||
|
||||
@ApiModelProperty(value = "评审结果") |
||||
private Integer reviewResults; |
||||
|
||||
@ApiModelProperty(value = "评审意见") |
||||
private String reviewOpinion; |
||||
|
||||
@ApiModelProperty(value = "创建时间--录入时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人--录入人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "更新人") |
||||
private String updateBy; |
||||
|
||||
@ApiModelProperty(value = "附件url") |
||||
private String annexUrl; |
||||
|
||||
@ApiModelProperty(value = "附件名称") |
||||
private String annexName; |
||||
|
||||
|
||||
} |
@ -0,0 +1,70 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 实验(检验方法的实例) |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_experiment") |
||||
@ApiModel(value="BExperiment对象", description="实验(检验方法的实例)") |
||||
public class Experiment implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "检验方法id") |
||||
private String methodId; |
||||
|
||||
@ApiModelProperty(value = "模板id") |
||||
private String templateId; |
||||
|
||||
@ApiModelProperty(value = "业务类型,字典中的dlp.identification.business项") |
||||
private Integer business; |
||||
|
||||
@ApiModelProperty(value = "实验名称") |
||||
private String name; |
||||
|
||||
@ApiModelProperty(value = "检验人员id") |
||||
private String opUserId; |
||||
|
||||
@ApiModelProperty(value = "状态: 0=准备中; 1=实验中; 2=实验结束; -1=实验中止") |
||||
private Integer status; |
||||
|
||||
@ApiModelProperty(value = "实验完成日期") |
||||
private Date finishDate; |
||||
|
||||
@ApiModelProperty(value = "备注说明") |
||||
private String comments; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "修改人") |
||||
private String updateBy; |
||||
|
||||
|
||||
} |
@ -0,0 +1,81 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 毛发检测任务 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_hair_job") |
||||
@ApiModel(value="HairJob对象", description="毛发检测任务") |
||||
public class HairJob implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "根任务id") |
||||
private String rootId; |
||||
|
||||
@ApiModelProperty(value = "任务名称") |
||||
private String name; |
||||
|
||||
@ApiModelProperty(value = "任务内容描述说明") |
||||
private String description; |
||||
|
||||
@ApiModelProperty(value = "任务编号") |
||||
private String jobNo; |
||||
|
||||
@ApiModelProperty(value = "任务发布单位") |
||||
private String jobIssueOrg; |
||||
|
||||
@ApiModelProperty(value = "任务执行单位") |
||||
private String jobExecOrg; |
||||
|
||||
@ApiModelProperty(value = "任务来源") |
||||
private String jobFrom; |
||||
|
||||
@ApiModelProperty(value = "任务截止日期") |
||||
private Date expirationDate; |
||||
|
||||
@ApiModelProperty(value = "任务开始日期") |
||||
private Date startDate; |
||||
|
||||
@ApiModelProperty(value = "任务备注") |
||||
private String comments; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "更新人") |
||||
private String updateBy; |
||||
|
||||
@ApiModelProperty(value = "任务类型: 毛发检测/污水检测...") |
||||
private String jobType; |
||||
|
||||
@ApiModelProperty(value = "xxx任务检测类型: 毛发检测:社区戒毒人员检测、公职人员、招考人员。/污水检测:污水处理厂、自然水体、其它水体。...") |
||||
private String xxxjobIdentifyType; |
||||
|
||||
|
||||
} |
@ -0,0 +1,125 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import java.math.BigDecimal; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 毛发任务的检材信息 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_hair_job_identification_material") |
||||
@ApiModel(value="HairJobIdentificationMaterial对象", description="毛发任务的检材信息") |
||||
public class HairJobIdentificationMaterial implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "检材id") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "任务id") |
||||
private String jobId; |
||||
|
||||
@ApiModelProperty(value = "根任务id") |
||||
private String jobRootId; |
||||
|
||||
@ApiModelProperty(value = "检材编号") |
||||
private String imNo; |
||||
|
||||
@ApiModelProperty(value = "A样编号") |
||||
private String sample1No; |
||||
|
||||
@ApiModelProperty(value = "B样编号") |
||||
private String sample2No; |
||||
|
||||
@ApiModelProperty(value = "A样盒子") |
||||
private String sample1BoxId; |
||||
|
||||
@ApiModelProperty(value = "B样盒子") |
||||
private String sample2BoxId; |
||||
|
||||
@ApiModelProperty(value = "所有者姓名") |
||||
private String personName; |
||||
|
||||
@ApiModelProperty(value = "所有者身份证号") |
||||
private String personCard; |
||||
|
||||
@ApiModelProperty(value = "人员类别") |
||||
private String personType; |
||||
|
||||
@ApiModelProperty(value = "项目名称") |
||||
private String projectName; |
||||
|
||||
@ApiModelProperty(value = "社区戒毒人员在社区执行时间是否超过 6 个月") |
||||
private String executionTime; |
||||
|
||||
@ApiModelProperty(value = "曾经吸毒种类") |
||||
private String drugType; |
||||
|
||||
@ApiModelProperty(value = "采样人") |
||||
private String collector; |
||||
|
||||
@ApiModelProperty(value = "采样单位") |
||||
private String collectorGroup; |
||||
|
||||
@ApiModelProperty(value = "采样时间") |
||||
private Date collectTime; |
||||
|
||||
@ApiModelProperty(value = "采样地点") |
||||
private String collectPlace; |
||||
|
||||
@ApiModelProperty(value = "监督人员") |
||||
private String supervisor; |
||||
|
||||
@ApiModelProperty(value = "受理时间") |
||||
private Date acceptTime; |
||||
|
||||
@ApiModelProperty(value = "受理是否通过: 0=未受理, 1=受理通过, -1=受理被拒绝") |
||||
private Integer acceptPassed; |
||||
|
||||
@ApiModelProperty(value = "备注") |
||||
private String comments; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "更新人") |
||||
private String updateBy; |
||||
|
||||
@ApiModelProperty(value = "检材名称") |
||||
private String name; |
||||
|
||||
@ApiModelProperty(value = "检材数量") |
||||
private BigDecimal quantity; |
||||
|
||||
@ApiModelProperty(value = "A样数量") |
||||
private BigDecimal sample1Quantity; |
||||
|
||||
@ApiModelProperty(value = "B样数量") |
||||
private BigDecimal sample2Quantity; |
||||
|
||||
@ApiModelProperty(value = "计量单位") |
||||
private String unit; |
||||
|
||||
|
||||
} |
@ -0,0 +1,22 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 检材的附加属性 |
||||
*/ |
||||
@Data |
||||
public class IMAdditionalProperty { |
||||
String propertyName; // 中文名称: 体积、重量、性状、颜色、品牌、型号、密码等等
|
||||
String quantity; // 重量、体积等等的量值, 或型号、密码的值
|
||||
String unit; // 仅对有计量单位的属性, 如: 克、毫克、升等等, 品牌、型号、密码等属性没有单位
|
||||
|
||||
public IMAdditionalProperty() { |
||||
|
||||
} |
||||
public IMAdditionalProperty(String propertyName, String quantity, String unit) { |
||||
this.propertyName = propertyName; |
||||
this.quantity = quantity; |
||||
this.unit = unit; |
||||
} |
||||
} |
@ -0,0 +1,46 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue; |
||||
import com.fasterxml.jackson.annotation.JsonValue; |
||||
import lombok.Getter; |
||||
import lombok.RequiredArgsConstructor; |
||||
|
||||
/** |
||||
* 样本的状态 |
||||
* 这个字段主要设想为页面显示时可以看见样本的动向 |
||||
*/ |
||||
@Getter |
||||
@RequiredArgsConstructor |
||||
public enum IMTSampleStatus { |
||||
|
||||
OUTBOUND(1,"未入库"),//出库
|
||||
|
||||
INBOUND(2,"已入库"), |
||||
|
||||
TRANSFER(4,"流转中"),//流转中
|
||||
|
||||
UNDER_INSPECTION(6,"检验中"), |
||||
|
||||
TO_BE_DESTROYED(7,"审核通过待销毁"), |
||||
|
||||
DESTROYED(8,"已销毁"), |
||||
|
||||
COLLECTING(9,"领用出库中"), |
||||
|
||||
|
||||
RETURN_OUT(10,"已经退还出库"), |
||||
|
||||
RELEASE(11,"已发布销毁公示,待出库销毁"), |
||||
APPLY(12,"申请中"), |
||||
|
||||
|
||||
IDENTIFYING(13,"检验中"), |
||||
IDENTIFIED(14,"检验结束"); |
||||
|
||||
|
||||
|
||||
@EnumValue//标记数据库存的值是status
|
||||
private final int status; |
||||
@JsonValue//标记返回前端字段
|
||||
private final String description; |
||||
} |
@ -0,0 +1,40 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import java.util.Date; |
||||
import java.io.Serializable; |
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定表,一个鉴定可能会有多个委托 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_identification") |
||||
@ApiModel(value="Identification对象", description="鉴定表,一个鉴定可能会有多个委托") |
||||
public class Identification extends BaseEntity implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "鉴定号,受理号") |
||||
private String identificationNo; |
||||
|
||||
@ApiModelProperty(value = "状态: 0=鉴定中,-1=已终止, 1=已结束") |
||||
private Integer status; |
||||
|
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,60 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import java.util.Date; |
||||
import java.io.Serializable; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书消息表 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_identify_book") |
||||
@ApiModel(value="IdentifyBook对象", description="鉴定文书消息表") |
||||
public class IdentifyBook extends BaseEntity implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书消息ID") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "父ID") |
||||
private String identifyBookRelevanceId; |
||||
|
||||
@ApiModelProperty(value = "文件桶") |
||||
private String bucketName; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书路径") |
||||
private String path; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书文件名(文件名命名贵州:鉴定文书 + 业务数据编号 + 版本号) ") |
||||
private String fileName; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书版本号(示例:v1.0、v1.1)") |
||||
private String version; |
||||
|
||||
@ApiModelProperty(value = "备注") |
||||
private String remarks; |
||||
|
||||
@ApiModelProperty(value = "制作或修改人") |
||||
@TableField(exist = false) |
||||
private String operateUserName; |
||||
|
||||
|
||||
} |
@ -0,0 +1,95 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.*; |
||||
|
||||
import java.util.Date; |
||||
import java.io.Serializable; |
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书审批表 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-25 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_identify_book_approve") |
||||
@ApiModel(value="IdentifyBookApprove对象", description="鉴定文书审批表 ") |
||||
public class IdentifyBookApprove extends BaseEntity implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书审核审批表ID") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "业务ID") |
||||
private String relevanceBusinessId; |
||||
|
||||
@ApiModelProperty(value = "年") |
||||
private String year; |
||||
|
||||
@ApiModelProperty(value = "序号") |
||||
private String serialNumber; |
||||
|
||||
@ApiModelProperty(value = "附件类型集合(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)注:选择多个示例(1,2,...)其中”,“是英文") |
||||
private String annexType; |
||||
|
||||
@ApiModelProperty(value = "文书类型:(1:检验报告,2:其它)注:选择多个示例(1,2,...)其中”,“是英文") |
||||
private String bookType; |
||||
|
||||
@ApiModelProperty(value = "检验报告数量(单位: 份)") |
||||
private Integer inspectionReportNumber; |
||||
|
||||
@ApiModelProperty(value = "其它数量(单位:份)") |
||||
private Integer otherNumber; |
||||
|
||||
@ApiModelProperty(value = "是否合格(1:检验方法、2:检验过程、3:检验图谱、4:检验结果)注:选择多个示例(1,2,...)其中”,“是英文") |
||||
private String isQualified; |
||||
|
||||
@ApiModelProperty(value = "审核人ID") |
||||
private String processUserBy; |
||||
|
||||
@ApiModelProperty(value = "审核人") |
||||
private String processUserName; |
||||
|
||||
@ApiModelProperty(value = "审核时间") |
||||
private Date processTime; |
||||
|
||||
@ApiModelProperty(value = "审核意见") |
||||
private String processMessage; |
||||
|
||||
@ApiModelProperty(value = "审批人ID") |
||||
private String approveUserBy; |
||||
|
||||
@ApiModelProperty(value = "审批人") |
||||
private String approveUserName; |
||||
|
||||
@ApiModelProperty(value = "审批时间") |
||||
private Date approveTime; |
||||
|
||||
@ApiModelProperty(value = "审批意见") |
||||
private String approveMessage; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书审批记录文件路径") |
||||
private String path; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书文件名(文件名命名规则:鉴定文书 + 版本号 + 文件类型) ") |
||||
private String fileName; |
||||
|
||||
@ApiModelProperty(value = "版本号") |
||||
private String version; |
||||
|
||||
@ApiModelProperty(value = "备注") |
||||
private String remarks; |
||||
|
||||
|
||||
} |
@ -0,0 +1,44 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书关联中间表 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_identify_book_relevance") |
||||
@ApiModel(value="IdentifyBookRelevance对象", description="鉴定文书关联中间表") |
||||
public class IdentifyBookRelevance implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "关联业务ID") |
||||
private String relevanceBusinessId; |
||||
|
||||
@ApiModelProperty(value = "年") |
||||
private String year; |
||||
|
||||
@ApiModelProperty(value = "流水号") |
||||
private String serialNumber; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书业务状态(-1:待制作,0:已制作/重新制作,1:鉴定文书-提交审核,2:鉴定文书-审核通过),-2:鉴定文书-审核未通过,3:鉴定文书-审核退回修改,4:鉴定文书-审批签发成功,-4:鉴定文书-审批拒绝签发,5:鉴定文书-审批签发退回修改,6:鉴定文书-已领取") |
||||
private Integer bookStatus; |
||||
|
||||
|
||||
} |
@ -0,0 +1,113 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.sql.Blob; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书修改补充申请表 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_modify_supplement_apply") |
||||
@ApiModel(value="ModifySupplementApply对象", description="鉴定文书修改补充申请表") |
||||
public class ModifySupplementApply implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书修改补充申请ID") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "年") |
||||
private String year; |
||||
|
||||
@ApiModelProperty(value = "流水号") |
||||
private String serialNumber; |
||||
|
||||
@ApiModelProperty(value = "委托ID", required = true) |
||||
private String entrustmentId; |
||||
|
||||
@ApiModelProperty(value = "委托人ID") |
||||
private String entrustBy; |
||||
|
||||
@ApiModelProperty(value = "申请时间") |
||||
private Date applyTime; |
||||
|
||||
@ApiModelProperty(value = "申请人id") |
||||
private String applyBy; |
||||
|
||||
@ApiModelProperty(value = "修改人") |
||||
private String updateBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "修改原因") |
||||
private String updateReason; |
||||
|
||||
@ApiModelProperty(value = "修改内容") |
||||
private String updateContent; |
||||
|
||||
@ApiModelProperty(value = "委托人签名") |
||||
private Blob entrustBySign; |
||||
|
||||
@ApiModelProperty(value = "委托人签名日期") |
||||
private Date entrustBySignDate; |
||||
|
||||
@ApiModelProperty(value = "修改方式(1:修改存档文件、2:收回原件,重新出具鉴定文书)") |
||||
private Integer updateWay; |
||||
|
||||
@ApiModelProperty(value = "修改人签字") |
||||
private Blob updateBySign; |
||||
|
||||
@ApiModelProperty(value = "修改人签字日期") |
||||
private Date updateBySignDate; |
||||
|
||||
@ApiModelProperty(value = "业务状态(1:鉴定文书-提交修改补充申请,2:鉴定文书-修改补充-审核通过,-2:鉴定文书-修改补充-审核未通过,3:鉴定文书-修改补充-审批通过,-3:鉴定文书-修改补充-审批不通过)") |
||||
private Integer status; |
||||
|
||||
@ApiModelProperty(value = "授权人签字") |
||||
private Blob empowerBySign; |
||||
|
||||
@ApiModelProperty(value = "授权人签字日期") |
||||
private Date empowerBySignDate; |
||||
|
||||
@ApiModelProperty(value = "授权签字人意见") |
||||
private String empowerBySignOpinion; |
||||
|
||||
@ApiModelProperty(value = "技术人员签字") |
||||
private Blob technologyBySign; |
||||
|
||||
@ApiModelProperty(value = "技术人员签字日期") |
||||
private Date technologyBySignDate; |
||||
|
||||
@ApiModelProperty(value = "技术人员签字意见") |
||||
private String technologyBySignOpinion; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书修改/申请文件路径") |
||||
private String path; |
||||
|
||||
@ApiModelProperty(value = "鉴定文书修改/申请文件名(文件名命名规则:鉴定文书 + 文件类型) ") |
||||
private String fileName; |
||||
|
||||
@ApiModelProperty(value = "备注") |
||||
private String remarks; |
||||
|
||||
@ApiModelProperty(value = "委托人姓名") |
||||
private String entrustUserName; |
||||
|
||||
} |
@ -0,0 +1,58 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 领取鉴定文书信息表 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-30 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_receive_identify_book") |
||||
@ApiModel(value="ReceiveIdentifyBook对象", description="领取鉴定文书信息表") |
||||
public class ReceiveIdentifyBook implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "领取ID") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "关联业务ID") |
||||
private String relevanceBusinessId; |
||||
|
||||
@ApiModelProperty(value = "领取方式") |
||||
private String receiveWay; |
||||
|
||||
@ApiModelProperty(value="邮寄地址") |
||||
private String postAddress; |
||||
|
||||
@ApiModelProperty(value = "领取人ID") |
||||
private String recipientsUserId; |
||||
|
||||
@ApiModelProperty(value = "领取人姓名") |
||||
private String recipientsUserName; |
||||
|
||||
@ApiModelProperty(value = "领取人时间") |
||||
private Date recipientsTime; |
||||
|
||||
@ApiModelProperty(value = "经办人ID") |
||||
private String operatorUserId; |
||||
|
||||
@ApiModelProperty(value = "经办人姓名") |
||||
private String operatorUserName; |
||||
|
||||
|
||||
} |
@ -0,0 +1,66 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托定性分析检验结果 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_result_entrustment_qualitative") |
||||
@ApiModel(value="BResultEntrustmentQualitative对象", description="委托定性分析检验结果") |
||||
public class ResultEntrustmentQualitative implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "实验id") |
||||
private String experimentId; |
||||
|
||||
private String sampleId; |
||||
|
||||
@ApiModelProperty(value = "样本编号,字符串,必填,长度 200") |
||||
private String sampleNo; |
||||
|
||||
@ApiModelProperty(value = "检材序号, 通常是受理的序号") |
||||
private Integer materialIndex; |
||||
|
||||
@ApiModelProperty(value = "样本的简要名称") |
||||
private String shortName; |
||||
|
||||
@ApiModelProperty(value = "化合物,必填,长度 200") |
||||
private String compound; |
||||
|
||||
@ApiModelProperty(value = "negative:未检出,positive:检出") |
||||
private Boolean result; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "更新人") |
||||
private String updateBy; |
||||
|
||||
|
||||
} |
@ -0,0 +1,66 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托定量检验结果 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_result_entrustment_ration") |
||||
@ApiModel(value="BResultEntrustmentRation对象", description="委托定量检验结果") |
||||
public class ResultEntrustmentRation implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "实验id") |
||||
private String experimentId; |
||||
|
||||
private String sampleId; |
||||
|
||||
@ApiModelProperty(value = "样本编号,字符串,必填,长度 200") |
||||
private String sampleNo; |
||||
|
||||
@ApiModelProperty(value = "检材序号, 通常是受理的序号") |
||||
private Integer materialIndex; |
||||
|
||||
@ApiModelProperty(value = "化合物,必填,长度 200") |
||||
private String compound; |
||||
|
||||
@ApiModelProperty(value = "定量结果,必填,长度12, 精度8") |
||||
private Double result; |
||||
|
||||
@ApiModelProperty(value = "备注说明") |
||||
private String comments; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "更新人") |
||||
private String updateBy; |
||||
|
||||
|
||||
} |
@ -0,0 +1,196 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; |
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import digital.laboratory.platform.sys.entity.DrugLite; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检验用的样本 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName(value = "b_sample", autoResultMap = true) |
||||
@ApiModel(value="Sample对象", description="检验用的样本") |
||||
public class Sample extends BaseEntity { |
||||
|
||||
/** |
||||
* 样本id |
||||
*/ |
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID) |
||||
@ApiModelProperty(value = "样本id") |
||||
private String id; |
||||
|
||||
/** |
||||
* 检材id, 对应委托的检材id或毛发任务的检材id或污水任务的检材id |
||||
*/ |
||||
@ApiModelProperty(value = "检材id, 对应委托的检材id或毛发任务的检材id或污水任务的检材id") |
||||
private String identificationMaterialId; |
||||
|
||||
/** |
||||
* 样本编号 |
||||
*/ |
||||
@ApiModelProperty(value = "样本编号") |
||||
private String sampleNo; |
||||
|
||||
/** |
||||
* 样本来源: entrustment/hairJob/sewageJob/.... |
||||
*/ |
||||
@ApiModelProperty(value = "样本来源: entrustment/hairJob/sewageJob/....") |
||||
private String source; |
||||
|
||||
/** |
||||
* 委托id |
||||
*/ |
||||
@ApiModelProperty(value="委托id") |
||||
private String entrustmentId; |
||||
|
||||
/** |
||||
* 污水任务id |
||||
*/ |
||||
@ApiModelProperty(value="污水任务id") |
||||
private String sewageJobId; |
||||
|
||||
/** |
||||
* 毛发任务id |
||||
*/ |
||||
@ApiModelProperty(value="毛发任务id") |
||||
private String hairJobId; |
||||
|
||||
/** |
||||
* 定性分析 |
||||
*/ |
||||
@ApiModelProperty(value="定性分析") |
||||
private Boolean qualitativeAnalysis; |
||||
|
||||
/** |
||||
* 定量分析 |
||||
*/ |
||||
@ApiModelProperty(value="定量分析") |
||||
private Boolean quantitativeAnalysis; |
||||
|
||||
/** |
||||
* 候选毒品列表(drug 对象的 json array) |
||||
*/ |
||||
@ApiModelProperty(value="候选毒品列表(drug 对象的 json array)") |
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<DrugLite> candidateDrugs; |
||||
|
||||
/** |
||||
* 检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许 |
||||
*/ |
||||
@ApiModelProperty(value="检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许") |
||||
private String fundName; |
||||
|
||||
/** |
||||
* 检材情况之承载物数量, 如 3 颗 或 1包 |
||||
*/ |
||||
@ApiModelProperty(value="检材情况之承载物数量, 如 3 颗 或 1包") |
||||
private Integer fundQuantity; |
||||
|
||||
/** |
||||
* 检材情况之承载物单位, 例如 5 颗, 3包 |
||||
*/ |
||||
@ApiModelProperty(value="检材情况之承载物单位, 例如 5 颗, 3包") |
||||
private String fundUnit; |
||||
|
||||
/** |
||||
* 样品数量, 例如 2.3 克 或 3.1 毫升 |
||||
*/ |
||||
@ApiModelProperty(value="样品数量, 例如 2.3 克 或 3.1 毫升") |
||||
private BigDecimal quantity; |
||||
|
||||
/** |
||||
* 计量单位, 例如 3.8 克 或 4.5毫升 |
||||
*/ |
||||
@ApiModelProperty(value="计量单位, 例如 3.8 克 或 4.5毫升") |
||||
private String unit; |
||||
|
||||
/** |
||||
* 附加属性, 如:体积3毫升,密码123,型号abc |
||||
*/ |
||||
@ApiModelProperty(value="附加属性, 如:体积3毫升,密码123,型号abc") |
||||
@TableField(typeHandler = FastjsonTypeHandler.class) |
||||
private List<IMAdditionalProperty> additionalProperties; |
||||
|
||||
/** |
||||
* 提取方法 |
||||
*/ |
||||
@ApiModelProperty(value="提取方法") |
||||
private String drawWay; |
||||
|
||||
/** |
||||
* 盒子编号 |
||||
*/ |
||||
@ApiModelProperty(value="盒子编号") |
||||
private String boxId; |
||||
|
||||
/** |
||||
* A样还是B样 |
||||
*/ |
||||
@ApiModelProperty(value="A样还是B样") |
||||
private String sampleType; |
||||
|
||||
/** |
||||
* 存储方法:常规,冷藏,特殊 |
||||
*/ |
||||
@ApiModelProperty(value="存储方法:常规,冷藏,特殊") |
||||
private String storageMethod; |
||||
|
||||
/** |
||||
* 受理时间, 相当于检验开始时间, 用于比对花了多少时间在检验上 |
||||
*/ |
||||
@ApiModelProperty(value="受理时间, 相当于检验开始时间, 用于比对花了多少时间在检验上") |
||||
private LocalDateTime acceptTime; |
||||
|
||||
/** |
||||
* 状态: 0=已受理,等分配, 1=已分配到检验人员, 2=检验完成 |
||||
*/ |
||||
// @ApiModelProperty(value="状态: 0=已受理,等分配, 1=已分配到检验人员, 2=检验完成")
|
||||
// private Integer status;
|
||||
@ApiModelProperty(value = "状态: 0=已受理,等分配, 1=已分配到检验人员, 2=检验完成") |
||||
private IMTSampleStatus status; |
||||
|
||||
/** |
||||
* 当前持有者 |
||||
*/ |
||||
@ApiModelProperty(value="当前持有者") |
||||
private String holder; |
||||
|
||||
/** |
||||
* 送检单位id |
||||
*/ |
||||
@ApiModelProperty(value="送检单位id") |
||||
private String orgId; |
||||
|
||||
/** |
||||
* 样本名称 |
||||
*/ |
||||
@ApiModelProperty(value="样本名称") |
||||
private String name; |
||||
|
||||
@ApiModelProperty(value = "检材受理编号") |
||||
private String acceptNo; |
||||
|
||||
|
||||
} |
@ -0,0 +1,63 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import java.util.Date; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import java.io.Serializable; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 采集员 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_taker") |
||||
@ApiModel(value="Taker对象", description="采集员") |
||||
public class Taker implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "采集员拥有者userId") |
||||
private String ownerUserId; |
||||
|
||||
@ApiModelProperty(value = "采集员姓名") |
||||
private String name; |
||||
|
||||
@ApiModelProperty(value = "采集员职务") |
||||
private String position; |
||||
|
||||
@ApiModelProperty(value = "采集员证件名称") |
||||
private String cert; |
||||
|
||||
@ApiModelProperty(value = "采集员证件编号") |
||||
private String idnum; |
||||
|
||||
@ApiModelProperty(value = "采集员电话") |
||||
private String phone; |
||||
|
||||
@ApiModelProperty(value = "创建时间") |
||||
private Date createTime; |
||||
|
||||
@ApiModelProperty(value = "创建人") |
||||
private String createBy; |
||||
|
||||
@ApiModelProperty(value = "修改时间") |
||||
private Date updateTime; |
||||
|
||||
@ApiModelProperty(value = "更新人") |
||||
private String updateBy; |
||||
|
||||
|
||||
} |
@ -0,0 +1,75 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField; |
||||
import com.baomidou.mybatisplus.annotation.*; |
||||
|
||||
import java.util.Date; |
||||
import java.io.Serializable; |
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
|
||||
/** |
||||
* <p> |
||||
* 任务信息表 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-31 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@TableName("b_task_notification") |
||||
@ApiModel(value="TaskNotification对象", description="任务信息表") |
||||
public class TaskNotification extends BaseEntity implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "消息ID") |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
@ApiModelProperty(value = "消息标题") |
||||
private String title; |
||||
|
||||
@ApiModelProperty(value = "任务类型(1:鉴定文书-审核,2:鉴定文书-审核退回修改,3:鉴定文书-审批,4:鉴定文书-审批退回修改,5:鉴定文书-签发/领取,6:鉴定文书修改/补充-审核,7:鉴定文书修改/补充-审批)") |
||||
private Integer type; |
||||
|
||||
@ApiModelProperty(value = "业务ID") |
||||
private String businessId; |
||||
|
||||
@ApiModelProperty(value = "提交人ID") |
||||
private String submitterUserId; |
||||
|
||||
@ApiModelProperty(value = "提交人姓名") |
||||
private String submitterUserName; |
||||
|
||||
@ApiModelProperty(value = "提交日期") |
||||
private Date submitterTime; |
||||
|
||||
@ApiModelProperty(value = "鉴定编号") |
||||
private String acceptNo; |
||||
|
||||
@ApiModelProperty(value = "案件名称") |
||||
private String caseName; |
||||
|
||||
@ApiModelProperty(value = "消息内容") |
||||
private String content; |
||||
|
||||
@ApiModelProperty(value = "处理人员ID") |
||||
private String transactionPersonnelId; |
||||
|
||||
@ApiModelProperty(value = "办理人姓名") |
||||
private String transactionPersonnelName; |
||||
|
||||
@ApiModelProperty(value = "办理人权限组") |
||||
private String permissionGroup; |
||||
|
||||
@ApiModelProperty(value = "处理状态(0: 待处理,1:已处理,2:退回修改,-1:未通过)") |
||||
private Integer status; |
||||
|
||||
|
||||
} |
@ -0,0 +1,41 @@ |
||||
package digital.laboratory.platform.identifybook.entity; |
||||
|
||||
import cn.hutool.core.date.DateUtil; |
||||
import lombok.Data; |
||||
|
||||
// 本类的实例对应 Entrustment 对象中的 ProcessInfo 字段。
|
||||
@Data |
||||
public class UpdateInfo { |
||||
String userId; |
||||
String userName; |
||||
String orgId; |
||||
String orgName; |
||||
|
||||
// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
|
||||
// @JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
//@JSONField(format ="yyyy-MM-dd HH:mm:ss")
|
||||
//LocalDateTime processTime;
|
||||
String processTime; // 如果使用 LocalDateTime 类型, 序列化和反序列化的时候老是有格式转换的错误, 我们其实对内容不需要再加工, 直接保存字符串算了
|
||||
|
||||
String operation; // 动作, 例如: 录入、审核、审批 等
|
||||
Integer opCode; // 动作码, 通常: 1=通过, -1=拒绝
|
||||
|
||||
public UpdateInfo() { |
||||
} |
||||
|
||||
public UpdateInfo(String userId, |
||||
String userName, |
||||
String orgId, |
||||
String orgName, |
||||
String operation, |
||||
Integer opCode) { |
||||
this.userId = userId; |
||||
this.userName = userName; |
||||
this.orgId = orgId; |
||||
this.orgName = orgName; |
||||
this.processTime = DateUtil.now(); |
||||
this.operation = operation; |
||||
this.opCode = opCode; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,39 @@ |
||||
package digital.laboratory.platform.identifybook.event; |
||||
|
||||
import lombok.Getter; |
||||
import org.springframework.context.ApplicationEvent; |
||||
|
||||
import java.time.Clock; |
||||
import java.util.Set; |
||||
|
||||
/** |
||||
* 推送数据到LabsCare 数据平台上的spring 事件 |
||||
*/ |
||||
@Getter |
||||
public class PushDataToLabsCareEvent extends ApplicationEvent { |
||||
|
||||
/** |
||||
* 委托id |
||||
*/ |
||||
private final String entrustId; |
||||
|
||||
/** |
||||
* 推送的数据类型, 1 鉴定委托书数据 | 2 鉴定事项确认书数据 | 3 生物检材定性记录报告数据 | 4 普通检材定性记录非红外报告数据 |
||||
* 5 鉴定报告审批表数据 | 6 定性报告数据 | 7 归档报告信息数据 |
||||
*/ |
||||
private final Set<Integer> pushType; |
||||
|
||||
public PushDataToLabsCareEvent(Object source, String entrustId, Set<Integer> pushType) { |
||||
super(source); |
||||
this.entrustId = entrustId; |
||||
this.pushType = pushType; |
||||
} |
||||
|
||||
public PushDataToLabsCareEvent(Object source, Clock clock, String entrustId, Set<Integer> pushType) { |
||||
super(source, clock); |
||||
this.entrustId = entrustId; |
||||
this.pushType = pushType; |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,67 @@ |
||||
package digital.laboratory.platform.identifybook.handler; |
||||
|
||||
import digital.laboratory.platform.common.core.constant.CommonConstants; |
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.sys.entity.Dictionary; |
||||
import digital.laboratory.platform.sys.feign.RemoteDictionaryService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.boot.ApplicationArguments; |
||||
import org.springframework.boot.ApplicationRunner; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.Optional; |
||||
|
||||
/** |
||||
* App 启动类 |
||||
* 当 Spring Application 启动完成后, 会调用这个类的 run() 方法进行一些最后的初始化。 |
||||
* 我们在这个方法中从数据库加载一些全局的配置 |
||||
* |
||||
* @author Zhang Xiaolong |
||||
*/ |
||||
|
||||
@Component |
||||
@RequiredArgsConstructor |
||||
public class AppStartupRunner implements ApplicationRunner { |
||||
|
||||
private final RemoteDictionaryService remoteDictionaryService; |
||||
|
||||
public static Map<String, String> entrustmentConfig = new HashMap<>(); |
||||
|
||||
public static String getCfg(String code) { |
||||
return entrustmentConfig.get(code); |
||||
} |
||||
|
||||
/** |
||||
* |
||||
* @param args 参数 |
||||
* @throws Exception 异常 |
||||
* |
||||
* // @SysLog("委托受理模块初始化") 这里不能使用 @SysLog(), 因为 SysLog 还没有初始化
|
||||
*/ |
||||
@Override |
||||
public void run(ApplicationArguments args) throws Exception { |
||||
// BusinessCodeUtils.removeSymbols("x-*/)——0*&……%¥#@xasdf!*&^&%^ 中文、/+)(()\n\\xx\rx");
|
||||
|
||||
{ |
||||
// 加载 entrustment 在字典中的配置
|
||||
R<List<Dictionary>> r = remoteDictionaryService.getDictionaryByType(CommonConstants.DLP_TYPE_ENTRUSTMENT); |
||||
if (Optional.ofNullable(r).isPresent() && (r.getData() != null)) { |
||||
List<Dictionary> itemList = r.getData(); |
||||
for (Dictionary item : itemList) { |
||||
entrustmentConfig.put(item.getCode(), item.getLabel()); |
||||
} |
||||
} |
||||
|
||||
for (String key : entrustmentConfig.keySet()) { |
||||
System.out.println(String.format("entrustmentConfig[%s]=%s", key, entrustmentConfig.get(key))); |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,67 @@ |
||||
package digital.laboratory.platform.identifybook.listener; |
||||
|
||||
|
||||
import digital.laboratory.platform.identifybook.event.PushDataToLabsCareEvent; |
||||
import digital.laboratory.platform.identifybook.service.PushDataToLabsCareService; |
||||
import digital.laboratory.platform.identifybook.threadpool.GlobalThreadPool; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.context.ApplicationListener; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import javax.annotation.Resource; |
||||
import java.util.concurrent.CompletableFuture; |
||||
|
||||
/** |
||||
* 监听有关推送数据到LabsCare 平台的事件, 采用异步 |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class PushDataToLabsCareEventListener implements ApplicationListener<PushDataToLabsCareEvent> { |
||||
|
||||
@Resource |
||||
private PushDataToLabsCareService pushDataToLabsCareService; |
||||
|
||||
/** |
||||
* 处理委托数据推送事件 |
||||
* |
||||
* @param event 委托数据推送事件对象 |
||||
*/ |
||||
@Override |
||||
public void onApplicationEvent(PushDataToLabsCareEvent event) { |
||||
CompletableFuture.runAsync(() -> { |
||||
event.getPushType().forEach(pushType -> { |
||||
// 处理不同的推送类型
|
||||
switch (pushType) { |
||||
case 5: // 推送鉴定报告审批表数据
|
||||
try { |
||||
pushDataToLabsCareService.pushAppraisalReportApprovalFormData(event.getEntrustId()); |
||||
} catch (Exception e) { |
||||
log.error("委托id为 {} 的鉴定报告审批表数据推送失败!", event.getEntrustId(), e); |
||||
} |
||||
break; |
||||
case 6: // 推送定性报告数据
|
||||
try { |
||||
pushDataToLabsCareService.pushQualitativeReportData(event.getEntrustId()); |
||||
} catch (Exception e) { |
||||
log.error("委托id为 {} 的定性报告数据推送失败!", event.getEntrustId(), e); |
||||
} |
||||
break; |
||||
case 7: // 推送定性报告数据
|
||||
try { |
||||
pushDataToLabsCareService.pushArchiveReportInfoData(event.getEntrustId()); |
||||
} catch (Exception e) { |
||||
log.error("委托id为 {} 的归档报告信息数据推送失败!", event.getEntrustId(), e); |
||||
} |
||||
break; |
||||
default: |
||||
log.warn("未知的推送类型: {}", event.getPushType()); |
||||
break; |
||||
} |
||||
}); |
||||
}, GlobalThreadPool.getInstance()).exceptionally(e -> { |
||||
log.error("推送数据到 LabsCare 失败", e); |
||||
return null; |
||||
}); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BIdentificationProcess; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-27 |
||||
*/ |
||||
@Mapper |
||||
public interface BIdentificationProcessMapper extends BaseMapper<BIdentificationProcess> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BusinessProcessRecord; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 业务流程记录表 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Mapper |
||||
public interface BusinessProcessRecordMapper extends BaseMapper<BusinessProcessRecord> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.CaseEvent; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 案件、事件 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface CaseEventMapper extends BaseMapper<CaseEvent> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.CaseEvidence; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 与案件相关的物证信息 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface CaseEvidenceMapper extends BaseMapper<CaseEvidence> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Deliverer; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 送检员 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface DelivererMapper extends BaseMapper<Deliverer> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.EntrustmentBundle; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托与实验关系 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Mapper |
||||
public interface EntrustmentBundleMapper extends BaseMapper<EntrustmentBundle> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.EntrustmentIdentificationMaterial; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检材信息 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface EntrustmentIdentificationMaterialMapper extends BaseMapper<EntrustmentIdentificationMaterial> { |
||||
|
||||
} |
@ -0,0 +1,34 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import digital.laboratory.platform.identifybook.dto.EntrustCaseDTO; |
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO; |
||||
import digital.laboratory.platform.identifybook.entity.Entrustment; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface EntrustmentMapper extends BaseMapper<Entrustment> { |
||||
|
||||
EntrustCaseDTO getEntrustCaseDTOById(@Param(value = "entrustId") String entrustId); |
||||
|
||||
IPage<EntrustmentDTO> findEntrustPage(IPage<EntrustmentDTO> page, @Param(value = "req") EntrustmentREQ req); |
||||
|
||||
List<EntrustmentDTO> findEntrust(@Param(value = "id") String id, @Param(value = "identificationId") String identificationId); |
||||
|
||||
EntrustmentDTO getEntrustmentDTO(@Param(value = "entrustId") String entrustId); |
||||
|
||||
long countWSLBSum(@Param("bookStatusList") List<Integer> bookStatusList); |
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ExaminationMethods; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检验方法 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Mapper |
||||
public interface ExaminationMethodsMapper extends BaseMapper<ExaminationMethods> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Experiment; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 实验(检验方法的实例) Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Mapper |
||||
public interface ExperimentMapper extends BaseMapper<Experiment> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.HairJobIdentificationMaterial; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 毛发任务的检材信息 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface HairJobIdentificationMaterialMapper extends BaseMapper<HairJobIdentificationMaterial> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.HairJob; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 毛发检测任务 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface HairJobMapper extends BaseMapper<HairJob> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Identification; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定表,一个鉴定可能会有多个委托 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface IdentificationMapper extends BaseMapper<Identification> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookApprove; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书审批表 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-25 |
||||
*/ |
||||
@Mapper |
||||
public interface IdentifyBookApproveMapper extends BaseMapper<IdentifyBookApprove> { |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBook; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书消息表 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Mapper |
||||
public interface IdentifyBookMapper extends BaseMapper<IdentifyBook> { |
||||
|
||||
IdentifyBook getMaxVersionIdentifyBook(@Param(value = "fkId") String fkId); |
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书关联中间表 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Mapper |
||||
public interface IdentifyBookRelevanceMapper extends BaseMapper<IdentifyBookRelevance> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ModifySupplementApply; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 鉴定文书修改补充申请表 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-22 |
||||
*/ |
||||
@Mapper |
||||
public interface ModifySupplementApplyMapper extends BaseMapper<ModifySupplementApply> { |
||||
|
||||
} |
@ -0,0 +1,22 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import digital.laboratory.platform.identifybook.dto.ReceiveIdentifyBookDTO; |
||||
import digital.laboratory.platform.identifybook.entity.ReceiveIdentifyBook; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
/** |
||||
* <p> |
||||
* 领取鉴定文书信息表 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-30 |
||||
*/ |
||||
@Mapper |
||||
public interface ReceiveIdentifyBookMapper extends BaseMapper<ReceiveIdentifyBook> { |
||||
|
||||
IPage<ReceiveIdentifyBookDTO> pageReceiveIdentifyBook(IPage<ReceiveIdentifyBook> page, @Param(value = "key") String key); |
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ResultEntrustmentQualitative; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托定性分析检验结果 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Mapper |
||||
public interface ResultEntrustmentQualitativeMapper extends BaseMapper<ResultEntrustmentQualitative> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ResultEntrustmentRation; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托定量检验结果 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-17 |
||||
*/ |
||||
@Mapper |
||||
public interface ResultEntrustmentRationMapper extends BaseMapper<ResultEntrustmentRation> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Sample; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 检验用的样本 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface SampleMapper extends BaseMapper<Sample> { |
||||
|
||||
} |
@ -0,0 +1,18 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Taker; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* 采集员 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Mapper |
||||
public interface TakerMapper extends BaseMapper<Taker> { |
||||
|
||||
} |
@ -0,0 +1,26 @@ |
||||
package digital.laboratory.platform.identifybook.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.core.toolkit.Constants; |
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO; |
||||
import digital.laboratory.platform.identifybook.entity.TaskNotification; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ; |
||||
import digital.laboratory.platform.identifybook.vo.TaskNotificationVO; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
/** |
||||
* <p> |
||||
* 任务信息表 Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-08-31 |
||||
*/ |
||||
@Mapper |
||||
public interface TaskNotificationMapper extends BaseMapper<TaskNotification> { |
||||
IPage<TaskNotificationVO> queryTaskNotificationPage(IPage<TaskNotification> page, @Param(Constants.WRAPPER) QueryWrapper<TaskNotification> qw); |
||||
} |
@ -0,0 +1,21 @@ |
||||
package digital.laboratory.platform.identifybook.req; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BusinessProcessRecord; |
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest; |
||||
import io.swagger.annotations.ApiModel; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* <p> |
||||
* |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/26 0:31 |
||||
*/ |
||||
@Data |
||||
@ApiModel(value="BusinessProcessRecordREQ对象", description="封装条件属性") |
||||
public class BusinessProcessRecordREQ extends BaseRequest<BusinessProcessRecord> implements Serializable { |
||||
} |
@ -0,0 +1,36 @@ |
||||
package digital.laboratory.platform.identifybook.req; |
||||
|
||||
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO; |
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* <p> |
||||
* 委托 |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023-05-17 |
||||
*/ |
||||
@Data |
||||
@ApiModel(value="EntrustmentREQ对象", description="封装条件属性") |
||||
public class EntrustmentREQ extends BaseRequest<EntrustmentDTO> implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@ApiModelProperty(value = "参数key") |
||||
private String key; |
||||
|
||||
@ApiModelProperty(value = "鉴定委托单位编码") |
||||
private String clientOrgId; |
||||
|
||||
@ApiModelProperty(value = "状态") |
||||
private List<String> bookStatusList; |
||||
} |
@ -0,0 +1,30 @@ |
||||
package digital.laboratory.platform.identifybook.req; |
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ModifySupplementApply; |
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* <p> |
||||
* |
||||
* </p> |
||||
* |
||||
* @author 旌霖科技-www.jinglin.com |
||||
* @since 2023/5/26 0:08 |
||||
*/ |
||||
|
||||
@Data |
||||
@ApiModel(value="ModifySupplementApplyREQ对象", description="封装条件属性") |
||||
public class ModifySupplementApplyREQ extends BaseRequest<ModifySupplementApply> implements Serializable { |
||||
|
||||
@ApiModelProperty(value = "任务模糊查询:(鉴定文书编号/委托人姓名)") |
||||
private String key; |
||||
|
||||
@ApiModelProperty(value = "业务状态(1:鉴定文书-提交修改补充申请,2:鉴定文书-修改补充-审核通过,-2:鉴定文书-修改补充-审核未通过,3:鉴定文书-修改补充-审批通过,-3:鉴定文书-修改补充-审批通过)") |
||||
private String status; |
||||
|
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue