【自用】管材流转项目 数据库恢复之 PIPE 表 && 二维码相关 && 各个表恢复 SQL

总览

1.后端前端和数据库 PIPE 页面的关系

2.后端批量生成二维码 jpg 图片

3.为了保证 PIPE 正常使用的调整

4.TRANSFORM(流转表)

一、后端前端和数据库 PIPE 页面的关系

1.前端

关于PIPE页面,首先,在前端,我们已经做好了所有需要的内容。

主要的流程是,后端将会发送 BASE64 格式的二维码至前端并由 CANVAS2 进行实时渲染。

2.后端

后端是中枢,在实体类中,能够得到数据库需要的主要字段。

后端从数据库中得到数据,然后返回前端没什么好说的,后端其实也没什么好改动的。

但是有一点需要说:

在这个路径下面,这个类,它里面包含了批量在后端渲染二维码并输出至设定目录的功能,供甲方使用。
这样就可以批量生成二维码JPG格式图品,然后进行二维码实体的制作。

PipeDemo\src\main\java\com\gangguan\pipedemo\utils\Base64ToPicture.java

3.数据库

PIPE 表设计

为什么 QRCODE 字段使用了 VARCHAR2(2200)?
这是因为它要存储 BASE64 格式的二维码,如果是 VARCHAR2(255),装不下

如果此时在前端页面操作 新建一个 PIPE,那么就会报错后端 500 错误。

但实际问题是因为后端报错了 ------ 后端报错的实际原因是因为数据库报错了。==

PIPE 相关SQL:
创建一个表 PIPE 然后插入两条测试数据。
请注意,此时,QRCODE 是不能够正常显示的,因为需要将 QRCODE 字段内容替换成 BASE64。

但实际上不需要替换,只需要在前端页面使用 Form 新增一个 PIPE 就好了,BASE64 会自动生成!

sql 复制代码
CREATE TABLE PIPE (
    ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
    PRODUCE_TIME TIMESTAMP,
    NAME VARCHAR2(255),
    LENGTH VARCHAR2(255),
    MODEL VARCHAR2(255),
    DEPARTMENT_NAME VARCHAR2(255),
    QRCODE VARCHAR2(2200),
    STATUS VARCHAR2(255),
    PIPE_ID VARCHAR2(255),
    TRANSFORM_TIMES NUMBER,
    FIX_TIME DATE
);

INSERT INTO PIPE (PRODUCE_TIME, NAME, LENGTH, MODEL, DEPARTMENT_NAME, QRCODE, STATUS, PIPE_ID, TRANSFORM_TIMES, FIX_TIME)
VALUES (
    TO_TIMESTAMP('2023-12-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS'), 
    '管道A', 
    '10米', 
    '型号X1', 
    '生产部门', 
    'QRCODE12345', 
    '正常', 
    'PIPE12345', 
    2, 
    TO_DATE('2023-12-10', 'YYYY-MM-DD')
);

INSERT INTO PIPE (PRODUCE_TIME, NAME, LENGTH, MODEL, DEPARTMENT_NAME, QRCODE, STATUS, PIPE_ID, TRANSFORM_TIMES, FIX_TIME)
VALUES (
    TO_TIMESTAMP('2023-11-20 14:30:00', 'YYYY-MM-DD HH24:MI:SS'), 
    '管道B', 
    '15米', 
    '型号Y2', 
    '工程部门', 
    'QRCODE67890', 
    '维修中', 
    'PIPE67890', 
    5, 
    TO_DATE('2023-12-05', 'YYYY-MM-DD')
);

二、后端批量生成二维码 jpg 图片

1.未完待续

2.

三、为了保证 PIPE 正常使用的调整

1.未完待续

2.

四、TRANSFORM(流转表)

重建表 && 插入测试数据 SQL(测试):

sql 复制代码
CREATE TABLE TRANSFORM (
    ID               NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,  -- 自增主键
    PIPE_ID          NUMBER,  -- 管道ID
    OPERATION        VARCHAR2(255),  -- 操作内容
    OPERATION_TIME   TIMESTAMP,  -- 操作时间
    OPERATION_PERSON VARCHAR2(255),  -- 操作人员
    CURRENT_DEPARTMENT_NAME VARCHAR2(255),  -- 当前部门名称
    USER_DEPARTMENT_NAME VARCHAR2(255),  -- 用户部门名称
    PIPE_ID_ID       VARCHAR2(255)  -- 管道ID的其他标识
);

INSERT INTO TRANSFORM (
    PIPE_ID,
    OPERATION,
    OPERATION_TIME,
    OPERATION_PERSON,
    CURRENT_DEPARTMENT_NAME,
    USER_DEPARTMENT_NAME,
    PIPE_ID_ID
) VALUES (
    101,  -- 管道ID
    '检查设备状态',  -- 操作内容
    TO_TIMESTAMP('2024-12-12 10:00:00', 'YYYY-MM-DD HH24:MI:SS'),  -- 操作时间
    '张三',  -- 操作人员
    '技术部',  -- 当前部门名称
    '维护部',  -- 用户部门名称
    'P001'  -- 管道ID标识
);

INSERT INTO TRANSFORM (
    PIPE_ID,
    OPERATION,
    OPERATION_TIME,
    OPERATION_PERSON,
    CURRENT_DEPARTMENT_NAME,
    USER_DEPARTMENT_NAME,
    PIPE_ID_ID
) VALUES (
    102,  -- 管道ID
    '更换设备',  -- 操作内容
    TO_TIMESTAMP('2024-12-12 11:00:00', 'YYYY-MM-DD HH24:MI:SS'),  -- 操作时间
    '李四',  -- 操作人员
    '生产部',  -- 当前部门名称
    '仓储部',  -- 用户部门名称
    'P002'  -- 管道ID标识
);
相关推荐
GISer_Qing2 分钟前
ASP.NET Core 8.0学习笔记(二十七)——数据迁移:Migrations深入与其他迁移命令
数据库·c#·.netcore·entityframework
蓝桉80218 分钟前
图片爬取案例
开发语言·数据库·python
Ljw...32 分钟前
DeepSeek+Kimi生成高质量PPT
数据库·c++·powerpoint·ppt·deepseek
m0_7482405439 分钟前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite
生产队队长41 分钟前
ThinkPHP:配置Redis并使用
android·数据库·redis
致奋斗的我们1 小时前
HAProxy介绍与编译安装
linux·汇编·数据库·mysql·青少年编程·haproxy·openeurler
偏右右1 小时前
UNION 联合查询
数据库·sql
Mr-Apple1 小时前
MySQL的Union和OR查询
android·数据库·mysql
YGGP2 小时前
【每日八股】Redis篇(二):数据结构
数据结构·数据库·redis
愉悦的麻婆豆腐3 小时前
Neo4j使用neo4j-admin导入csv数据方法
数据库·neo4j