【自用】管材流转项目 数据库恢复之 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标识
);
相关推荐
AI-好学者2 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
其实防守也摸鱼4 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚4 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔7254 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
霁月的小屋4 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
Database_Cool_5 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云
玖玥拾5 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
IvorySQL6 小时前
PG 日报|社区讨论重构 pg_hba 配置文件格式
数据库·人工智能·postgresql·重构·ivorysql
逝水无殇6 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
罗政8 小时前
PDF 批量合并工具:本地 AI 自动排序、识别正文日期与合同编号
数据库·pdf·php