总览
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 会自动生成!
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(测试):
CREATE TABLE TRANSFORM (ID NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, -- 自增主键PIPE_ID NUMBER, -- 管道IDOPERATION 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标识
);