From 09028d97f77e2b60816e4a828fcfb87d6645934e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=80=81=E7=8E=8B?= <1702282943@qq.com>
Date: Fri, 30 Jan 2026 09:09:53 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BB=8EH2?=
=?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=B8=BAMySQL?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
backend/pom.xml | 8 +-
.../src/main/resources/application-dev.yml | 21 +-
backend/src/main/resources/application.yml | 4 +
backend/src/main/resources/schema-h2.sql | 242 -----------------
backend/src/main/resources/schema.sql | 254 +++++++++---------
5 files changed, 147 insertions(+), 382 deletions(-)
delete mode 100644 backend/src/main/resources/schema-h2.sql
diff --git a/backend/pom.xml b/backend/pom.xml
index 9af278b..eb331b4 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -54,6 +54,7 @@
com.mysql
mysql-connector-j
+ ${mysql.version}
runtime
@@ -83,13 +84,6 @@
runtime
-
-
- com.h2database
- h2
- runtime
-
-
org.projectlombok
diff --git a/backend/src/main/resources/application-dev.yml b/backend/src/main/resources/application-dev.yml
index 366ffe9..e219fda 100644
--- a/backend/src/main/resources/application-dev.yml
+++ b/backend/src/main/resources/application-dev.yml
@@ -8,33 +8,30 @@ spring:
name: pet-hospital
datasource:
- driver-class-name: org.h2.Driver
- url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL;
- username: sa
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://localhost:3306/pet_hospital_dev?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
+ username: root
password: password
hikari:
- maximum-pool-size: 10
- minimum-idle: 5
+ maximum-pool-size: 20
+ minimum-idle: 10
connection-timeout: 30000
+ idle-timeout: 600000
+ max-lifetime: 1800000
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
- h2:
- console:
- enabled: true
- path: /h2-console
-
jpa:
hibernate:
- ddl-auto: create-drop
+ ddl-auto: update
show-sql: true
sql:
init:
mode: always
- schema-locations: classpath*:schema-h2.sql
+ schema-locations: classpath*:schema.sql
data-locations: classpath*:data.sql
mybatis-plus:
diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml
index b83f286..0001a01 100644
--- a/backend/src/main/resources/application.yml
+++ b/backend/src/main/resources/application.yml
@@ -25,6 +25,10 @@ mybatis-plus:
logic-not-delete-value: 0
mapper-locations: classpath*:mapper/**/*.xml
+# 数据库配置
+database:
+ type: mysql
+
# JWT配置
jwt:
secret: pet-hospital-secret-key-2024-guanpengfei-graduate-design
diff --git a/backend/src/main/resources/schema-h2.sql b/backend/src/main/resources/schema-h2.sql
deleted file mode 100644
index 22298e9..0000000
--- a/backend/src/main/resources/schema-h2.sql
+++ /dev/null
@@ -1,242 +0,0 @@
--- 如果表不存在则创建表,如果存在则添加缺失的列
-
--- 检查并创建appointment表或添加缺失列
-CREATE TABLE IF NOT EXISTS appointment (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- customer_id BIGINT NOT NULL,
- pet_id BIGINT NOT NULL,
- doctor_id BIGINT,
- department VARCHAR(50),
- appointment_date DATE,
- time_slot VARCHAR(20), -- 添加这个缺失的列
- status VARCHAR(20) DEFAULT 'PENDING',
- remark TEXT,
- cancel_time TIMESTAMP NULL,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建visit表
-CREATE TABLE IF NOT EXISTS visit (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- appointment_id BIGINT,
- customer_id BIGINT NOT NULL,
- pet_id BIGINT NOT NULL,
- doctor_id BIGINT NOT NULL,
- symptoms TEXT,
- diagnosis TEXT,
- treatment_plan TEXT,
- status VARCHAR(20) DEFAULT 'PENDING',
- total_amount DECIMAL(10,2),
- payment_status VARCHAR(20) DEFAULT 'UNPAID',
- payment_method VARCHAR(20),
- payment_time TIMESTAMP NULL,
- start_time TIMESTAMP,
- end_time TIMESTAMP,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建prescription表
-CREATE TABLE IF NOT EXISTS prescription (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- visit_id BIGINT,
- doctor_id BIGINT,
- customer_id BIGINT,
- total_amount DECIMAL(10,2),
- status VARCHAR(20) DEFAULT 'DRAFT',
- remark TEXT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建prescription_item表
-CREATE TABLE IF NOT EXISTS prescription_item (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- prescription_id BIGINT NOT NULL,
- drug_id BIGINT NOT NULL,
- quantity INT NOT NULL,
- dosage VARCHAR(100),
- frequency VARCHAR(50),
- duration VARCHAR(50),
- usage_instructions TEXT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建order_info表
-CREATE TABLE IF NOT EXISTS order_info (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- visit_id BIGINT,
- customer_id BIGINT NOT NULL,
- amount DECIMAL(10,2),
- status VARCHAR(20) DEFAULT 'UNPAID',
- payment_method VARCHAR(20),
- payment_time TIMESTAMP NULL,
- remark TEXT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建drug表
-CREATE TABLE IF NOT EXISTS drug (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- name VARCHAR(100) NOT NULL,
- category VARCHAR(50),
- manufacturer VARCHAR(100),
- specification VARCHAR(100),
- unit_price DECIMAL(10,2),
- stock_quantity INT DEFAULT 0,
- unit VARCHAR(20),
- status INT DEFAULT 1,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建pet表
-CREATE TABLE IF NOT EXISTS pet (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- owner_id BIGINT NOT NULL,
- name VARCHAR(50) NOT NULL,
- species VARCHAR(50),
- breed VARCHAR(100),
- gender VARCHAR(10), -- 修改为VARCHAR以支持MALE/FEMALE
- birthday DATE, -- 添加birthday字段而不是age
- weight DOUBLE, -- 添加weight字段
- photo VARCHAR(255), -- 添加photo字段
- remark TEXT, -- 添加remark字段
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建doctor表
-CREATE TABLE IF NOT EXISTS doctor (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- name VARCHAR(50) NOT NULL,
- department VARCHAR(50),
- title VARCHAR(50),
- phone VARCHAR(20),
- email VARCHAR(100),
- avatar VARCHAR(255),
- status INT DEFAULT 1,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建user表
-CREATE TABLE IF NOT EXISTS `user` (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- username VARCHAR(50) NOT NULL UNIQUE,
- phone VARCHAR(20),
- email VARCHAR(100),
- password VARCHAR(255) NOT NULL,
- role VARCHAR(20) DEFAULT 'CUSTOMER',
- status INT DEFAULT 1,
- avatar VARCHAR(255),
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建medical_record表
-CREATE TABLE IF NOT EXISTS medical_record (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- visit_id BIGINT NOT NULL,
- record_type VARCHAR(50), -- CHECKUP体检, DIAGNOSIS诊断, TREATMENT治疗
- content TEXT,
- attachment_urls TEXT,
- doctor_id BIGINT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建message表
-CREATE TABLE IF NOT EXISTS message (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- sender_id BIGINT,
- receiver_id BIGINT NOT NULL,
- content TEXT NOT NULL,
- type VARCHAR(20) DEFAULT 'NOTICE', -- NOTICE通知, CHAT聊天
- status VARCHAR(20) DEFAULT 'UNREAD', -- UNREAD未读, READ已读
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建notice表
-CREATE TABLE IF NOT EXISTS notice (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- title VARCHAR(200) NOT NULL,
- content TEXT NOT NULL,
- publisher_id BIGINT NOT NULL,
- publish_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- status INT DEFAULT 1,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建report表
-CREATE TABLE IF NOT EXISTS report (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- report_type VARCHAR(50) NOT NULL, -- REVENUE收入, CUSTOMER客户, PET宠物, DRUG药品
- report_data JSON,
- period_start DATE,
- period_end DATE,
- generated_by BIGINT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建stock_in表
-CREATE TABLE IF NOT EXISTS stock_in (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- drug_id BIGINT NOT NULL,
- quantity INT NOT NULL,
- unit_price DECIMAL(10,2),
- supplier VARCHAR(100),
- operator_id BIGINT,
- remark TEXT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建stock_out表
-CREATE TABLE IF NOT EXISTS stock_out (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- drug_id BIGINT NOT NULL,
- quantity INT NOT NULL,
- unit_price DECIMAL(10,2),
- purpose VARCHAR(100), -- 用途:销售、损耗等
- operator_id BIGINT,
- remark TEXT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 检查并创建vaccine_record表
-CREATE TABLE IF NOT EXISTS vaccine_record (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- pet_id BIGINT NOT NULL,
- vaccine_name VARCHAR(100) NOT NULL,
- dose_number INT,
- injection_date DATE,
- next_appointment_date DATE,
- doctor_id BIGINT,
- remark TEXT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
\ No newline at end of file
diff --git a/backend/src/main/resources/schema.sql b/backend/src/main/resources/schema.sql
index c28ec10..22298e9 100644
--- a/backend/src/main/resources/schema.sql
+++ b/backend/src/main/resources/schema.sql
@@ -1,79 +1,59 @@
--- 用户表
-CREATE TABLE IF NOT EXISTS `user` (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- username VARCHAR(50) NOT NULL UNIQUE,
- phone VARCHAR(20),
- email VARCHAR(100),
- password VARCHAR(255) NOT NULL,
- role VARCHAR(20) DEFAULT 'CUSTOMER',
- status INT DEFAULT 1,
- avatar VARCHAR(255),
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
+-- 如果表不存在则创建表,如果存在则添加缺失的列
--- 宠物表
-CREATE TABLE IF NOT EXISTS pet (
+-- 检查并创建appointment表或添加缺失列
+CREATE TABLE IF NOT EXISTS appointment (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
- name VARCHAR(50) NOT NULL,
- species VARCHAR(50),
- breed VARCHAR(100),
- gender CHAR(1),
- age INT,
- owner_id BIGINT NOT NULL,
- health_status VARCHAR(100),
- vaccination_status VARCHAR(100),
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 医生表
-CREATE TABLE IF NOT EXISTS doctor (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- name VARCHAR(50) NOT NULL,
+ customer_id BIGINT NOT NULL,
+ pet_id BIGINT NOT NULL,
+ doctor_id BIGINT,
department VARCHAR(50),
- title VARCHAR(50),
- phone VARCHAR(20),
- email VARCHAR(100),
- avatar VARCHAR(255),
- status INT DEFAULT 1,
+ appointment_date DATE,
+ time_slot VARCHAR(20), -- 添加这个缺失的列
+ status VARCHAR(20) DEFAULT 'PENDING',
+ remark TEXT,
+ cancel_time TIMESTAMP NULL,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted INT DEFAULT 0
);
--- 就诊记录表
+-- 检查并创建visit表
CREATE TABLE IF NOT EXISTS visit (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ appointment_id BIGINT,
+ customer_id BIGINT NOT NULL,
pet_id BIGINT NOT NULL,
doctor_id BIGINT NOT NULL,
- customer_id BIGINT NOT NULL,
symptoms TEXT,
diagnosis TEXT,
treatment_plan TEXT,
- visit_date DATE,
status VARCHAR(20) DEFAULT 'PENDING',
+ total_amount DECIMAL(10,2),
+ payment_status VARCHAR(20) DEFAULT 'UNPAID',
+ payment_method VARCHAR(20),
+ payment_time TIMESTAMP NULL,
+ start_time TIMESTAMP,
+ end_time TIMESTAMP,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted INT DEFAULT 0
);
--- 处方表
+-- 检查并创建prescription表
CREATE TABLE IF NOT EXISTS prescription (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
- visit_id BIGINT NOT NULL,
- doctor_id BIGINT NOT NULL,
- customer_id BIGINT NOT NULL,
+ visit_id BIGINT,
+ doctor_id BIGINT,
+ customer_id BIGINT,
total_amount DECIMAL(10,2),
- status VARCHAR(20) DEFAULT 'ACTIVE',
+ status VARCHAR(20) DEFAULT 'DRAFT',
+ remark TEXT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted INT DEFAULT 0
);
--- 处方明细表
+-- 检查并创建prescription_item表
CREATE TABLE IF NOT EXISTS prescription_item (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
prescription_id BIGINT NOT NULL,
@@ -88,7 +68,22 @@ CREATE TABLE IF NOT EXISTS prescription_item (
deleted INT DEFAULT 0
);
--- 药品表
+-- 检查并创建order_info表
+CREATE TABLE IF NOT EXISTS order_info (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ visit_id BIGINT,
+ customer_id BIGINT NOT NULL,
+ amount DECIMAL(10,2),
+ status VARCHAR(20) DEFAULT 'UNPAID',
+ payment_method VARCHAR(20),
+ payment_time TIMESTAMP NULL,
+ remark TEXT,
+ create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ deleted INT DEFAULT 0
+);
+
+-- 检查并创建drug表
CREATE TABLE IF NOT EXISTS drug (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
@@ -104,52 +99,106 @@ CREATE TABLE IF NOT EXISTS drug (
deleted INT DEFAULT 0
);
--- 订单表
-CREATE TABLE IF NOT EXISTS order_info (
+-- 检查并创建pet表
+CREATE TABLE IF NOT EXISTS pet (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
- visit_id BIGINT,
- customer_id BIGINT NOT NULL,
- amount DECIMAL(10,2),
- status VARCHAR(20) DEFAULT 'UNPAID',
- payment_method VARCHAR(20),
- payment_time TIMESTAMP NULL,
- remark TEXT,
+ owner_id BIGINT NOT NULL,
+ name VARCHAR(50) NOT NULL,
+ species VARCHAR(50),
+ breed VARCHAR(100),
+ gender VARCHAR(10), -- 修改为VARCHAR以支持MALE/FEMALE
+ birthday DATE, -- 添加birthday字段而不是age
+ weight DOUBLE, -- 添加weight字段
+ photo VARCHAR(255), -- 添加photo字段
+ remark TEXT, -- 添加remark字段
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted INT DEFAULT 0
);
--- 预约表
-CREATE TABLE IF NOT EXISTS appointment (
+-- 检查并创建doctor表
+CREATE TABLE IF NOT EXISTS doctor (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
- pet_id BIGINT NOT NULL,
- doctor_id BIGINT NOT NULL,
- customer_id BIGINT NOT NULL,
- appointment_date DATE NOT NULL,
- appointment_time TIME NOT NULL,
- reason TEXT,
- status VARCHAR(20) DEFAULT 'PENDING',
+ name VARCHAR(50) NOT NULL,
+ department VARCHAR(50),
+ title VARCHAR(50),
+ phone VARCHAR(20),
+ email VARCHAR(100),
+ avatar VARCHAR(255),
+ status INT DEFAULT 1,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted INT DEFAULT 0
);
--- 疫苗接种记录表
-CREATE TABLE IF NOT EXISTS vaccine_record (
+-- 检查并创建user表
+CREATE TABLE IF NOT EXISTS `user` (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
- pet_id BIGINT NOT NULL,
- vaccine_name VARCHAR(100) NOT NULL,
- dose_number INT,
- injection_date DATE,
- next_appointment_date DATE,
+ username VARCHAR(50) NOT NULL UNIQUE,
+ phone VARCHAR(20),
+ email VARCHAR(100),
+ password VARCHAR(255) NOT NULL,
+ role VARCHAR(20) DEFAULT 'CUSTOMER',
+ status INT DEFAULT 1,
+ avatar VARCHAR(255),
+ create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ deleted INT DEFAULT 0
+);
+
+-- 检查并创建medical_record表
+CREATE TABLE IF NOT EXISTS medical_record (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ visit_id BIGINT NOT NULL,
+ record_type VARCHAR(50), -- CHECKUP体检, DIAGNOSIS诊断, TREATMENT治疗
+ content TEXT,
+ attachment_urls TEXT,
doctor_id BIGINT,
- remark TEXT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted INT DEFAULT 0
);
--- 库存入库表
+-- 检查并创建message表
+CREATE TABLE IF NOT EXISTS message (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ sender_id BIGINT,
+ receiver_id BIGINT NOT NULL,
+ content TEXT NOT NULL,
+ type VARCHAR(20) DEFAULT 'NOTICE', -- NOTICE通知, CHAT聊天
+ status VARCHAR(20) DEFAULT 'UNREAD', -- UNREAD未读, READ已读
+ create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ deleted INT DEFAULT 0
+);
+
+-- 检查并创建notice表
+CREATE TABLE IF NOT EXISTS notice (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ title VARCHAR(200) NOT NULL,
+ content TEXT NOT NULL,
+ publisher_id BIGINT NOT NULL,
+ publish_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ status INT DEFAULT 1,
+ create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ deleted INT DEFAULT 0
+);
+
+-- 检查并创建report表
+CREATE TABLE IF NOT EXISTS report (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ report_type VARCHAR(50) NOT NULL, -- REVENUE收入, CUSTOMER客户, PET宠物, DRUG药品
+ report_data JSON,
+ period_start DATE,
+ period_end DATE,
+ generated_by BIGINT,
+ create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ deleted INT DEFAULT 0
+);
+
+-- 检查并创建stock_in表
CREATE TABLE IF NOT EXISTS stock_in (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
drug_id BIGINT NOT NULL,
@@ -163,7 +212,7 @@ CREATE TABLE IF NOT EXISTS stock_in (
deleted INT DEFAULT 0
);
--- 库存出库表
+-- 检查并创建stock_out表
CREATE TABLE IF NOT EXISTS stock_out (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
drug_id BIGINT NOT NULL,
@@ -177,53 +226,16 @@ CREATE TABLE IF NOT EXISTS stock_out (
deleted INT DEFAULT 0
);
--- 消息表
-CREATE TABLE IF NOT EXISTS message (
+-- 检查并创建vaccine_record表
+CREATE TABLE IF NOT EXISTS vaccine_record (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
- sender_id BIGINT,
- receiver_id BIGINT NOT NULL,
- content TEXT NOT NULL,
- type VARCHAR(20) DEFAULT 'NOTICE', -- NOTICE通知, CHAT聊天
- status VARCHAR(20) DEFAULT 'UNREAD', -- UNREAD未读, READ已读
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 公告表
-CREATE TABLE IF NOT EXISTS notice (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- title VARCHAR(200) NOT NULL,
- content TEXT NOT NULL,
- publisher_id BIGINT NOT NULL,
- publish_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- status INT DEFAULT 1,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 医疗记录表
-CREATE TABLE IF NOT EXISTS medical_record (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- visit_id BIGINT NOT NULL,
- record_type VARCHAR(50), -- CHECKUP体检, DIAGNOSIS诊断, TREATMENT治疗
- content TEXT,
- attachment_urls TEXT,
+ pet_id BIGINT NOT NULL,
+ vaccine_name VARCHAR(100) NOT NULL,
+ dose_number INT,
+ injection_date DATE,
+ next_appointment_date DATE,
doctor_id BIGINT,
- create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- deleted INT DEFAULT 0
-);
-
--- 报表统计表
-CREATE TABLE IF NOT EXISTS report (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- report_type VARCHAR(50) NOT NULL, -- REVENUE收入, CUSTOMER客户, PET宠物, DRUG药品
- report_data JSON,
- period_start DATE,
- period_end DATE,
- generated_by BIGINT,
+ remark TEXT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted INT DEFAULT 0