总览
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标识
);