【自用】管材流转项目 数据库恢复之 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标识
);
相关推荐
孤傲小二~阿沐25 分钟前
PostgreSQL的学习心得和知识总结(一百六十三)|深入理解PostgreSQL数据库之 GUC参数compute_query_id 的使用和实现
数据库·postgresql
master-dragon1 小时前
实际项目中的一个OOM和事务的问题
数据库
SEO-狼术3 小时前
Design interfaces that prioritize Crack
数据库
04Koi.3 小时前
Redis--高并发分布式结构
数据库·redis·分布式
james东3 小时前
Redis中的Big key排查和解决思路
数据库·redis·缓存
G丶AEOM3 小时前
Redis Sentinel(哨兵) 和 Redis Cluster(集群)
数据库·redis·缓存
好记性+烂笔头4 小时前
hbase读写操作后hdfs内存占用太大的问题
数据库·hdfs·hbase
zhlh_xt4 小时前
Python 助力 DBA:高效批量管理数据库服务器的多线程解决方案-多库查询汇总工具实现
数据库·python·sqlserver·dba·dba 自动化工具
shaoweijava4 小时前
私人诊所管理系统(源码+数据库+报告)
java·开发语言·数据库·spring boot·mysql·mybatis