DROP TABLE IF EXISTS t_organization;
CREATE TABLE t_organization(
                               `id` INT AUTO_INCREMENT COMMENT '主键' ,
                               `name` VARCHAR(255)   COMMENT '机构名称' ,
                               `code` VARCHAR(100)   COMMENT '机构编号' ,
                               `type` TINYINT(4)  DEFAULT 0 COMMENT '机构类型(0集团  1水厂)' ,
                               `province_code` VARCHAR(100)   COMMENT '省的code' ,
                               `city_code` VARCHAR(100)   COMMENT '市的code' ,
                               `country_code` VARCHAR(100)   COMMENT '区县的code' ,
                               `concat` VARCHAR(100)   COMMENT '联系人' ,
                               `phone` VARCHAR(100)   COMMENT '联系电话' ,
                               `status` TINYINT(4)  DEFAULT 0 COMMENT '状态（0正常 1停用）' ,
                               `parent_id` BIGINT  DEFAULT 0 COMMENT '父ID（如果没有，默认是0）' ,
                               `top_id` BIGINT  DEFAULT 0 COMMENT '最上层ID（如果没有，默认是0）' ,
                               `sort` INT   COMMENT '排序' ,
                               `address` VARCHAR(255)   COMMENT '详细地址' ,
                               `longitude` VARCHAR(100)   COMMENT '经度' ,
                               `latitude` VARCHAR(100)   COMMENT '纬度' ,
                               `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                               `revision` INT   COMMENT '乐观锁' ,
                               `create_by` VARCHAR(100)   COMMENT '创建人' ,
                               `create_time` DATETIME   COMMENT '创建时间' ,
                               `update_by` VARCHAR(100)   COMMENT '更新人' ,
                               `update_time` DATETIME   COMMENT '更新时间' ,
                               `remark` VARCHAR(500)   COMMENT '备注' ,
                               PRIMARY KEY (id)
)  COMMENT = '机构管理表';



DROP TABLE IF EXISTS t_device;
CREATE TABLE t_device(
                         `id` INT AUTO_INCREMENT COMMENT '主键' ,
                         `name` VARCHAR(100)   COMMENT '设备名称' ,
                         `sn` VARCHAR(100)   COMMENT '设备SN' ,
                         `model` VARCHAR(100)   COMMENT '设备型号' ,
                         `organization_id` BIGINT   COMMENT '所属水厂ID' ,
                         `usage` TINYINT(4)   COMMENT '设备用途(1:化验室，2：连续检测)' ,
                         `status` TINYINT(4)   COMMENT '使用状态（0：使用；1：停用）' ,
                         `maintainer` VARCHAR(100)   COMMENT '维护人员' ,
                         `maintainer_phone` VARCHAR(100)   COMMENT '维护人员电话' ,
                         `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                         `revision` INT   COMMENT '乐观锁' ,
                         `create_by` VARCHAR(100)   COMMENT '创建人' ,
                         `create_time` DATETIME   COMMENT '创建时间' ,
                         `update_by` VARCHAR(100)   COMMENT '更新人' ,
                         `update_time` DATETIME   COMMENT '更新时间' ,
                         `remark` VARCHAR(500)   COMMENT '备注' ,
                         PRIMARY KEY (id)
)  COMMENT = '机构设备表';


DROP TABLE IF EXISTS t_assay_workflow;
CREATE TABLE t_assay_workflow(
                                 `id` INT AUTO_INCREMENT COMMENT '主键' ,
                                 `name` VARCHAR(100)   COMMENT '化验流程名称' ,
                                 `code` VARCHAR(100)   COMMENT '化验流程编号' ,
                                 `organization_id` BIGINT   COMMENT '所属水厂ID' ,
                                 `device_id` BIGINT   COMMENT '所属设备ID' ,
                                 `total_steps` BIGINT   COMMENT '化验总步数' ,
                                 `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                                 `revision` INT   COMMENT '乐观锁' ,
                                 `create_by` VARCHAR(100)   COMMENT '创建人' ,
                                 `create_time` DATETIME   COMMENT '创建时间' ,
                                 `update_by` VARCHAR(100)   COMMENT '更新人' ,
                                 `update_time` DATETIME   COMMENT '更新时间' ,
                                 `remark` VARCHAR(500)   COMMENT '备注' ,
                                 PRIMARY KEY (id)
)  COMMENT = '化验流程表';


DROP TABLE IF EXISTS t_assay_workflow_item;
CREATE TABLE t_assay_workflow_item(
                                      `id` INT AUTO_INCREMENT COMMENT '主键' ,
                                      `workflow_id` BIGINT   COMMENT '化验流程ID' ,
                                      `position_id` BIGINT   COMMENT '取样点位ID' ,
                                      `item_id` BIGINT   COMMENT '化验项目ID' ,
                                      `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                                      `revision` INT   COMMENT '乐观锁' ,
                                      `create_by` VARCHAR(100)   COMMENT '创建人' ,
                                      `create_time` DATETIME   COMMENT '创建时间' ,
                                      `update_by` VARCHAR(100)   COMMENT '更新人' ,
                                      `update_time` DATETIME   COMMENT '更新时间' ,
                                      `remark` VARCHAR(500)   COMMENT '备注' ,
                                      PRIMARY KEY (id)
)  COMMENT = '化验流程-化验内容明细表';


DROP TABLE IF EXISTS t_position;
CREATE TABLE t_position(
                           `id` INT AUTO_INCREMENT COMMENT '主键' ,
                           `organization_id` BIGINT   COMMENT '所属水厂ID' ,
                           `device_id` BIGINT   COMMENT '所属设备ID' ,
                           `code` VARCHAR(100)   COMMENT '取样点位编号' ,
                           `name` VARCHAR(100)   COMMENT '取样点位名称' ,
                           `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                           `revision` INT   COMMENT '乐观锁' ,
                           `create_by` VARCHAR(100)   COMMENT '创建人' ,
                           `create_time` DATETIME   COMMENT '创建时间' ,
                           `update_by` VARCHAR(100)   COMMENT '更新人' ,
                           `update_time` DATETIME   COMMENT '更新时间' ,
                           `remark` VARCHAR(500)   COMMENT '备注' ,
                           PRIMARY KEY (id)
)  COMMENT = '取样点位表';


DROP TABLE IF EXISTS t_assay_item;
CREATE TABLE t_assay_item(
                             `id` INT AUTO_INCREMENT COMMENT '主键' ,
                             `code` VARCHAR(100)   COMMENT '化验项目编号' ,
                             `name` VARCHAR(100)   COMMENT '化验项目名称' ,
                             `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                             `revision` INT   COMMENT '乐观锁' ,
                             `create_by` VARCHAR(100)   COMMENT '创建人' ,
                             `create_time` DATETIME   COMMENT '创建时间' ,
                             `update_by` VARCHAR(100)   COMMENT '更新人' ,
                             `update_time` DATETIME   COMMENT '更新时间' ,
                             `remark` VARCHAR(500)   COMMENT '备注' ,
                             PRIMARY KEY (id)
)  COMMENT = '化验项目表';




DROP TABLE IF EXISTS t_assay_item_extra;
CREATE TABLE t_assay_item_extra(
                                   `id` INT AUTO_INCREMENT COMMENT '主键' ,
                                   `item_id` BIGINT   COMMENT '化验项目ID' ,
                                   `type` TINYINT(4)   COMMENT '类型（0废液 1药剂）' ,
                                   `relative_id` BIGINT   COMMENT '药剂ID 或者是废液ID（0酸性 1碱性 2中性）' ,
                                   `amount` DECIMAL(24,2)   COMMENT '产生量/消耗量' ,
                                   `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                                   `revision` INT   COMMENT '乐观锁' ,
                                   `create_by` VARCHAR(100)   COMMENT '创建人' ,
                                   `create_time` DATETIME   COMMENT '创建时间' ,
                                   `update_by` VARCHAR(100)   COMMENT '更新人' ,
                                   `update_time` DATETIME   COMMENT '更新时间' ,
                                   `remark` VARCHAR(500)   COMMENT '备注' ,
                                   PRIMARY KEY (id)
)  COMMENT = '化验项目-废液药剂配置表';


DROP TABLE IF EXISTS t_medicine;
CREATE TABLE t_medicine(
                           `id` INT AUTO_INCREMENT COMMENT '主键' ,
                           `code` VARCHAR(100)   COMMENT '药剂编号' ,
                           `name` VARCHAR(100)   COMMENT '药剂名称' ,
                           `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                           `revision` INT   COMMENT '乐观锁' ,
                           `create_by` VARCHAR(100)   COMMENT '创建人' ,
                           `create_time` DATETIME   COMMENT '创建时间' ,
                           `update_by` VARCHAR(100)   COMMENT '更新人' ,
                           `update_time` DATETIME   COMMENT '更新时间' ,
                           `remark` VARCHAR(500)   COMMENT '备注' ,
                           PRIMARY KEY (id)
)  COMMENT = '药剂管理表';


DROP TABLE IF EXISTS t_quality_conf;
CREATE TABLE t_quality_conf(
                               `id` INT AUTO_INCREMENT COMMENT '主键' ,
                               `organization_id` BIGINT   COMMENT '所属水厂ID' ,
                               `item_id` BIGINT   COMMENT '化验项目ID' ,
                               `result_value` DECIMAL(24,2)   COMMENT '质控值' ,
                               `float_rate` DECIMAL(24,2)   COMMENT '浮动率' ,
                               `high_value` DECIMAL(24,2)   COMMENT '上限值' ,
                               `low_value` DECIMAL(24,2)   COMMENT '下限值' ,
                               `begin_time` DATETIME   COMMENT '有效期-开始时间' ,
                               `end_time` DATETIME   COMMENT '有效期-截止时间' ,
                               `del_flag` TINYINT(2)  DEFAULT 0 COMMENT '删除标志（0代表存在 2代表删除）' ,
                               `revision` INT   COMMENT '乐观锁' ,
                               `create_by` VARCHAR(100)   COMMENT '创建人' ,
                               `create_time` DATETIME   COMMENT '创建时间' ,
                               `update_by` VARCHAR(100)   COMMENT '更新人' ,
                               `update_time` DATETIME   COMMENT '更新时间' ,
                               `remark` VARCHAR(500)   COMMENT '备注' ,
                               PRIMARY KEY (id)
)  COMMENT = '质控样配置表';



CREATE TABLE `sys_region` (
                              `region_id` int NOT NULL,
                              `region_cod` varchar(100) DEFAULT NULL,
                              `region_name` varchar(100) DEFAULT NULL,
                              `parent_id` int DEFAULT NULL,
                              `region_level` int DEFAULT NULL,
                              `region_sort` int DEFAULT NULL,
                              `name_en` varchar(100) DEFAULT NULL,
                              `region_nation` varchar(10) DEFAULT NULL,
                              PRIMARY KEY (`region_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;



CREATE TABLE `z_assay` (
                           `assay_id` int NOT NULL COMMENT 'id',
                           `assay_no` varchar(50) DEFAULT NULL COMMENT '化验唯一编号',
                           `device_no` varchar(10) DEFAULT NULL COMMENT '设备编号',
                           `assay_type` char(2) DEFAULT NULL COMMENT '化验类型',
                           `assay_bigprocess` varchar(10) DEFAULT NULL COMMENT '化验实时大流程',
                           `assay_smallprocess` varchar(50) DEFAULT NULL COMMENT '化验实时小流程',
                           `begin_time` varchar(20) DEFAULT NULL COMMENT '化验开始时间',
                           `end_time` varchar(20) DEFAULT NULL COMMENT '化验结束时间',
                           `assay_date` varchar(10) DEFAULT NULL COMMENT '化验日期',
                           `assay_by` varchar(10) DEFAULT NULL COMMENT '化验人',
                           `create_by` varchar(20) DEFAULT NULL COMMENT '创建人',
                           `create_time` varchar(20) DEFAULT NULL COMMENT '创建时间',
                           `update_by` varchar(20) DEFAULT NULL COMMENT '更新人',
                           `update_time` varchar(20) DEFAULT NULL COMMENT '更新时间',
                           `version` varchar(20) DEFAULT NULL COMMENT '化验版本',
                           `step_name` varchar(50) DEFAULT NULL COMMENT '流程名',
                           `step_total` varchar(50) DEFAULT NULL COMMENT '总步进',
                           `step_now` varchar(50) DEFAULT NULL COMMENT '当前步进',
                           `step_info1` varchar(50) DEFAULT NULL COMMENT '步进信息1',
                           `step_info2` varchar(50) DEFAULT NULL COMMENT '步进信息2',
                           `step_info3` varchar(50) DEFAULT NULL COMMENT '步进信息3',
                           `assay_status` varchar(5) DEFAULT NULL COMMENT '化验状态',
                           `assay_method` varchar(2) DEFAULT NULL COMMENT '化验方式(0-自动化验，1-手动化验)',
                           `C_PanguSyncSourceTimestamp` datetime DEFAULT NULL,
                           PRIMARY KEY (`assay_id`),
                           KEY `I_PanguSyncSourceTimestamp` (`C_PanguSyncSourceTimestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='化验项目信息';




CREATE TABLE `z_assay_result` (
                                  `result_id` int NOT NULL COMMENT 'id',
                                  `assay_no` varchar(50) DEFAULT NULL COMMENT '化验唯一编号',
                                  `result_no` varchar(50) DEFAULT NULL COMMENT '结果编号',
                                  `sample_no` varchar(50) DEFAULT NULL COMMENT '样品编号',
                                  `sample_volume` double DEFAULT NULL COMMENT '样品体积',
                                  `device_no` varchar(50) DEFAULT NULL COMMENT '化验设备编号',
                                  `assay_item` varchar(50) DEFAULT NULL COMMENT '化验项目',
                                  `result_concentration` double DEFAULT NULL COMMENT '化验浓度值',
                                  `result_abs` double DEFAULT NULL COMMENT '化验ABS值（吸光度）',
                                  `result_date` varchar(10) DEFAULT NULL COMMENT '结果日期',
                                  `result_time` varchar(20) DEFAULT NULL COMMENT '结果时间',
                                  `curve_k0` double DEFAULT NULL COMMENT '曲线k0',
                                  `curve_k1` double DEFAULT NULL COMMENT '曲线k1',
                                  `curve_id` int DEFAULT NULL COMMENT '曲线唯一id',
                                  `create_by` varchar(64) DEFAULT NULL,
                                  `create_time` varchar(20) DEFAULT NULL,
                                  `update_by` varchar(64) DEFAULT NULL,
                                  `update_time` varchar(20) DEFAULT NULL,
                                  `j_1901_s0_1` double DEFAULT NULL,
                                  `j_1901_d0_1` double DEFAULT NULL,
                                  `j_1901_R0_1` double DEFAULT NULL,
                                  `j_1901_s_1` double DEFAULT NULL,
                                  `j_1901_d_1` double DEFAULT NULL,
                                  `j_1901_r_1` double DEFAULT NULL,
                                  `j_1901_s0_2` double DEFAULT NULL,
                                  `j_1901_d0_2` double DEFAULT NULL,
                                  `j_1901_r0_2` double DEFAULT NULL,
                                  `j_1901_s_2` double DEFAULT NULL,
                                  `j_1901_d_2` double DEFAULT NULL,
                                  `j_1901_r_2` double DEFAULT NULL,
                                  `assay_type` varchar(50) DEFAULT NULL COMMENT '化验分类',
                                  `sample_post` int DEFAULT NULL COMMENT '样品位',
                                  `result_wendu` double DEFAULT NULL COMMENT '化验温度',
                                  `result_shidu` double DEFAULT NULL COMMENT '化验湿度',
                                  `original_concentration` double DEFAULT NULL COMMENT '原始浓度值',
                                  `curve_no` varchar(20) DEFAULT NULL COMMENT '曲线编号',
                                  `read_flag` varchar(1) DEFAULT NULL COMMENT '(0:未读，1:已读)',
                                  `C_PanguSyncSourceTimestamp` datetime DEFAULT NULL,
                                  PRIMARY KEY (`result_id`),
                                  KEY `index_assayno` (`assay_no`),
                                  KEY `index_assaydate` (`result_date`),
                                  KEY `index_assayitem` (`assay_item`),
                                  KEY `I_PanguSyncSourceTimestamp` (`C_PanguSyncSourceTimestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='化验结果明细';

