若依代码生成90%+功能不需要写代码了
效果描述:
通过手机完成H5页面中二维码扫描识别;同时触发关联控件(下拉选择框)数据载入;选择数据后自动填充关联字段数据
效果如下:
页面入口

页面详情

如上图所示,在企业微信中打开页面,二维码扫描控件初始化准备完成,等待用户扫描
计划单号:
二维码扫描控件支持手动输入及触发扫描事件(如 加载下拉数据)
产品编码:
扫描后,轻触产品编码下拉,屏幕底部会显示可选数据项,滑动使数据项高亮后,点击 完成以确认选择。
计划行号等
自动填充字段,当完成数据项选择后,这些字段自动填充无需手动输入。
开发实现
完成以上效果的代码 包含三部分 后台,PC,移动端
流程约定
此单据为开工单,上游数据是领料单。所以需要有领料和开工两个数据对象
设计数据结构
前提,完成数据库表结构设计,
领料
CREATE TABLE `br_hbmaout` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`plan_docno` varchar(30) NOT NULL DEFAULT '' COMMENT '计划单号',
`plan_lineid` varchar(30) NOT NULL DEFAULT '' COMMENT '计划行ID',
`pro_itemcode` varchar(30) NOT NULL DEFAULT '' COMMENT '产品编码',
`material_code` varchar(30) NOT NULL DEFAULT '' COMMENT '原料编码',
`mat_quantity` decimal(10,2) NOT NULL COMMENT '领料数量',
`approve_result` varchar(20) NOT NULL DEFAULT '' COMMENT '审批结果',
`approval_status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT '审批状态',
`process_instance_id` varchar(64) DEFAULT NULL COMMENT '流程实例ID',
`start_by` varchar(64) DEFAULT NULL COMMENT '流程启动人',
`start_time` datetime DEFAULT NULL COMMENT '流程启动时间',
`remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注信息',
`maout_docno` varchar(45) NOT NULL COMMENT '领料单号',
`create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_plan_docno` (`plan_docno`),
KEY `idx_material_code` (`material_code`),
KEY `idx_approval_status` (`approval_status`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='领料表';
开工
CREATE TABLE `br_hbplando` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '单据ID',
`machine_code` varchar(100) DEFAULT '' COMMENT '机器编码',
`maout_docno` varchar(45) NOT NULL COMMENT '领料单号',
`machine_name` varchar(100) DEFAULT '' COMMENT '机器名称',
`plan_docno` varchar(30) NOT NULL DEFAULT '' COMMENT '计划单号',
`plan_lineid` varchar(30) NOT NULL DEFAULT '' COMMENT '计划行ID',
`pro_itemcode` varchar(30) NOT NULL DEFAULT '' COMMENT '产品编码',
`material_code` varchar(30) NOT NULL DEFAULT '' COMMENT '原料编码',
`operator` varchar(100) DEFAULT '' COMMENT '操作员',
`plando_docno` varchar(30) NOT NULL DEFAULT '' COMMENT '开工单号',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '备注信息',
`approve_result` VARCHAR(20) DEFAULT '' COMMENT '审批结果',
`approval_status` VARCHAR(20) DEFAULT 'draft' COMMENT '审批状态',
`process_instance_id` VARCHAR(64) COMMENT '流程实例ID',
`start_by` VARCHAR(64) COMMENT '流程启动人',
`start_time` DATETIME COMMENT '流程启动时间',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='开工单';
代码生成
对字段属性设置
完成后的效果:

属性说明:
显示类型

扫描二维码:
此控件可以完成二维码扫描
如果需要扫描联动数据下拉框加载,选择此类型后,需要在 编码前缀 字段 中输入联动的字段 java 属性:maoutDocno
自定义下拉框
选择字典类型并滑到页面底部,请选择对象引用相关字段,另外,把数据载入API地址设置在 编码前缀 字段,例如:/hbpro/proplanhb/code
对应字段:maoutDocno
此控件完成数据列表展示及选择数据后填充相关字段

编码前缀:
在选择 自定义下拉框时,此处填写下拉框数据加载的 api ,如:/hbpro/hbmaout/keyword (此API 是系统后台内置的模糊匹配数据查询功能)
字典类型:

联动字段赋值设置
完成选择下拉数据后填充其它字段功能对应的代码配置(用于生成代码)

生成代码

浙公网安备 33010602011771号