【自用】管材流转项目 数据库恢复之 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标识
);
相关推荐
不羁。。1 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
yangchanghua1113 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance3 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai3 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白3 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务3 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂7 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.8 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚10 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队11 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术