【自用】管材流转项目 数据库恢复之 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标识
);
相关推荐
远方160939 分钟前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
GUIQU.2 小时前
【Oracle】数据仓库
数据库·oracle
恰薯条的屑海鸥2 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
咖啡啡不加糖2 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存
曼汐 .2 小时前
数据库管理与高可用-MySQL高可用
数据库·mysql
2301_793102493 小时前
Linux——MySql数据库
linux·数据库
喵叔哟3 小时前
第4章:Cypher查询语言基础
数据库
刘 大 望3 小时前
数据库-联合查询(内连接外连接),子查询,合并查询
java·数据库·sql·mysql
从零开始学习人工智能3 小时前
Doris 数据库深度解析:架构、原理与实战应用
数据库·架构
LiRuiJie4 小时前
深入剖析MySQL锁机制,多事务并发场景锁竞争
数据库·mysql