text: /*
  Navicat MySQL Data Transfer
  
  Source Server         : localhost
  Source Server Version : 50547
  Source Host           : localhost:3306
  Source Database       : generator
  
  Target Server Type    : MYSQL
  Target Server Version : 50547
  File Encoding         : 65001
  
  Date: 2018-11-19 10:46:34
  */
  
  SET FOREIGN_KEY_CHECKS=0;
  
  -- ----------------------------
  -- Table structure for generator_column
  -- ----------------------------
  DROP TABLE IF EXISTS `generator_column`;
  CREATE TABLE `generator_column` (
    `id` varchar(32) NOT NULL COMMENT '字段主键',
    `table_id` varchar(32) DEFAULT NULL COMMENT '关联表的ID',
    `column_name` varchar(200) DEFAULT NULL COMMENT '字段名',
    `type_name` varchar(200) DEFAULT NULL COMMENT '字段类型名称',
    `column_size` varchar(10) DEFAULT NULL COMMENT '字段长度',
    `decimal_digits` varchar(10) DEFAULT NULL COMMENT '小数部分的位数',
    `parmary_key` tinyint(2) DEFAULT NULL COMMENT '是否为主键',
    `imported_key` tinyint(2) DEFAULT NULL COMMENT '是否为外键',
    `column_def` varchar(200) DEFAULT NULL COMMENT '默认值',
    `nullable` tinyint(200) DEFAULT NULL COMMENT '是否允许为空',
    `java_type` varchar(500) DEFAULT NULL COMMENT 'JAVA类型',
    `java_field` varchar(200) DEFAULT NULL COMMENT 'JAVA字段名',
    `listable` char(1) DEFAULT NULL COMMENT '是否列表字段',
    `queryable` char(1) DEFAULT NULL COMMENT '是否查询字段',
    `formable` varchar(45) DEFAULT NULL COMMENT '是否表单显示',
    `query_type` varchar(200) DEFAULT NULL COMMENT '查询方式（等于、不等于、大于、小于、范围、左LIKE、右LIKE、左右LIKE）',
    `input_type` varchar(200) DEFAULT NULL COMMENT '字段生成方案（文本框、文本域、下拉框、复选框、单选框、字典选择、人员选择、部门选择、区域选择）',
    `dict_group` varchar(200) DEFAULT NULL COMMENT '字典分组',
    `sort` int(10) DEFAULT NULL,
    `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
    `create_date` datetime DEFAULT NULL COMMENT '创建时间',
    `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
    `update_date` datetime DEFAULT NULL COMMENT '更新时间',
    `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息',
    `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标记（0：正常；1：删除）',
    `regex_valid` varchar(20) DEFAULT NULL COMMENT '验证规则',
    `valid_type` varchar(20) DEFAULT NULL COMMENT '校验类型',
    `max_size` int(5) DEFAULT NULL COMMENT '最大长度',
    `min_size` int(5) DEFAULT NULL COMMENT '最小长度',
    `max_value` varchar(30) DEFAULT NULL COMMENT '最大值',
    `min_value` varchar(30) DEFAULT NULL COMMENT '最小值',
    `nullmsg` varchar(255) DEFAULT NULL COMMENT '为空提示',
    `query_model` varchar(20) DEFAULT NULL COMMENT '查询模式',
    `form_type` varchar(20) DEFAULT NULL COMMENT '显示表单类型',
    `foreign_table` varchar(45) DEFAULT NULL COMMENT '外键表',
    PRIMARY KEY (`id`),
    KEY `codegen_table_column_del_flag` (`del_flag`),
    KEY `table_id` (`table_id`),
    CONSTRAINT `generator_column_ibfk_1` FOREIGN KEY (`table_id`) REFERENCES `generator_table` (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='代码字段表';
  
  -- ----------------------------
  -- Records of generator_column
  -- ----------------------------
  INSERT INTO `generator_column` VALUES ('1acd2c7dbb49471bb46bd101b832c441', '1981c7b455b247b184a2628b1e3ad851', 'send_data', 'varchar', '255', '0', '0', '0', '', '1', 'String', 'sendData', '1', '0', '1', 'eq', null, '', '5', null, null, null, null, 'send_data', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('1bd4713aa7d04b1c8db24dc3efde71d1', '2fda5794b01a4136bb30db7ac6529f7d', 'del_flag', 'CHAR', '1', '0', '0', '0', null, '1', 'String', 'delFlag', '1', '0', '1', 'eq', null, null, '9', null, null, null, null, '删除标记', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('2346d0758c9e403f897ab36c8db41b60', '2fda5794b01a4136bb30db7ac6529f7d', 'update_by', 'VARCHAR', '32', '0', '0', '0', null, '1', 'String', 'updateBy', '1', '0', '1', 'eq', null, null, '7', null, null, null, null, 'update_by', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('25e30be807f249fb900191aca8359a94', '1981c7b455b247b184a2628b1e3ad851', 'content', 'varchar', '65535', '0', '0', '0', '', '1', 'String', 'content', '1', '0', '1', 'eq', null, '', '4', null, null, null, null, '模板类型', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('3519ae89755c49fa9a96023559ac4832', '1981c7b455b247b184a2628b1e3ad851', 'send_code', 'varchar', '255', '0', '0', '0', '', '0', 'String', 'sendCode', '1', '0', '1', 'eq', null, '', '6', null, null, null, null, '发送编码', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('35d2492a3ab64565ab6ff895f3a56d72', '1981c7b455b247b184a2628b1e3ad851', 'subject', 'varchar', '255', '0', '0', '0', '', '1', 'String', 'subject', '1', '0', '1', 'eq', null, '', '3', null, null, null, null, '主题', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('35d7e0c01d1e492dbcb712882a7e9d7c', '18191b5c7993466391e28b20b86e96f1', 'address', 'VARCHAR', '250', '0', '0', '0', null, '1', 'String', 'address', '1', '0', '1', 'eq', null, null, '3', null, null, null, null, '地址', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('3b1f0f25b0004b128b10dbf4d9004723', 'a5715cd52e87466cb495e862385b1a87', 'id', 'VARCHAR', '32', '0', '1', '0', null, '0', 'String', 'id', '1', '0', '1', 'eq', null, null, '1', null, null, null, null, 'id', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('5b75a356060c423190f9d5fd5ecd9c78', '18191b5c7993466391e28b20b86e96f1', 'group', 'VARCHAR', '10', '0', '0', '0', null, '1', 'String', 'group', '1', '0', '1', 'eq', null, null, '7', null, null, null, null, '组团', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('5db23e1f035c45fba8308722616ba4eb', '2fda5794b01a4136bb30db7ac6529f7d', 'create_date', 'DATETIME', '19', '0', '0', '0', null, '1', 'Date', 'createDate', '1', '0', '1', 'eq', null, null, '6', null, null, null, null, 'create_date', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('694a7dcd6a43499bbcf5ded1b0b3858f', '27a45390c6c24039a4129ab1d4107129', 'dest_code', 'VARCHAR', '50', '0', '0', '0', null, '1', 'String', 'destCode', '1', '0', '1', 'eq', null, null, '6', null, null, null, null, '扩展号码', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('6e3d2b95f812423ca370101f730303a8', '27a45390c6c24039a4129ab1d4107129', 'sign_name', 'VARCHAR', '20', '0', '0', '0', null, '1', 'String', 'signName', '1', '0', '1', 'eq', null, null, '5', null, null, null, null, '签名信息', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('6fa171ab4d764f58ab63b65be05843f0', '2fda5794b01a4136bb30db7ac6529f7d', 'parent_ids', 'VARCHAR', '1000', '0', '0', '0', null, '1', 'String', 'parentIds', '1', '0', '1', 'eq', null, null, '4', null, null, null, null, '父节点路径', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('6fb43adc818e4e0aaf5dbb9eba28b38e', '18191b5c7993466391e28b20b86e96f1', 'phone', 'VARCHAR', '30', '0', '0', '0', null, '1', 'String', 'phone', '1', '0', '1', 'eq', null, null, '4', null, null, null, null, 'phone', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('7f193930c2ef4b128278dde58d6ec100', '27a45390c6c24039a4129ab1d4107129', 'phone_number', 'VARCHAR', '20', '0', '0', '0', null, '1', 'String', 'phoneNumber', '1', '0', '1', 'eq', null, null, '2', null, null, null, null, '联系电话', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('85e1e33eb7c34ed29754dd57f1802f88', '1981c7b455b247b184a2628b1e3ad851', 'del_flag', 'varchar', '1', '0', '0', '0', '0', '0', 'String', 'delFlag', '1', '0', '1', 'eq', null, '', '11', null, null, null, null, '删除标记（0：正常；1：删除）', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('8e4e6d83edf94ef89be058d2698e1cf9', '18191b5c7993466391e28b20b86e96f1', 'id', 'VARCHAR', '32', '0', '0', '0', null, '1', 'String', 'id', '1', '0', '1', 'eq', null, null, '1', null, null, null, null, 'id', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('9fae0b97788646339aa48be5a1905dca', '2fda5794b01a4136bb30db7ac6529f7d', 'create_by', 'VARCHAR', '32', '0', '0', '0', null, '1', 'String', 'createBy', '1', '0', '1', 'eq', null, null, '5', null, null, null, null, 'create_by', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('a43345ec8d094c60ad8fd7bee4bfc7c2', 'a5715cd52e87466cb495e862385b1a87', 'sms_code', 'VARCHAR', '11', '0', '0', '0', null, '1', 'String', 'smsCode', '1', '0', '1', 'eq', null, null, '3', null, null, null, null, 'sms_code', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('a6e09e193e714c18b8560306377ab96f', '2fda5794b01a4136bb30db7ac6529f7d', 'parent_id', 'VARCHAR', '32', '0', '0', '0', null, '1', 'String', 'parentId', '1', '0', '1', 'eq', null, null, '3', null, null, null, null, '父节点', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('aa8d7c2937f140f1b2eb3e322e000eaa', '18191b5c7993466391e28b20b86e96f1', 'type', 'VARCHAR', '5', '0', '0', '0', null, '1', 'String', 'type', '1', '0', '1', 'eq', null, null, '5', null, null, null, null, '类型', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('abd3a1af5c5540fcb8fefe2c2466f938', '2fda5794b01a4136bb30db7ac6529f7d', 'name', 'VARCHAR', '100', '0', '0', '0', null, '1', 'String', 'name', '1', '0', '1', 'eq', null, null, '2', null, null, null, null, '机构名称', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('bbed25213b374c1fbc1d9bb154402f0f', '2fda5794b01a4136bb30db7ac6529f7d', 'remarks', 'VARCHAR', '255', '0', '0', '0', null, '1', 'String', 'remarks', '1', '0', '1', 'eq', null, null, '10', null, null, null, null, 'remarks', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('bf612b6a903c483587465ea6c66b1a59', '27a45390c6c24039a4129ab1d4107129', 'content', 'VARCHAR', '20', '0', '0', '0', null, '1', 'String', 'content', '1', '0', '1', 'eq', null, null, '4', null, null, null, null, '发送内容', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('c08a4ddb1fba4da1b3d5d0d50d97dbfd', '27a45390c6c24039a4129ab1d4107129', 'send_time', 'DATETIME', '19', '0', '0', '0', null, '1', 'Date', 'sendTime', '1', '0', '1', 'eq', null, null, '3', null, null, null, null, '发送时间', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('c3770449d0cb47b6af994f55b47191a3', '1981c7b455b247b184a2628b1e3ad851', 'remarks', 'varchar', '255', '0', '0', '0', '', '1', 'String', 'remarks', '1', '0', '1', 'eq', null, '', '12', null, null, null, null, '备注信息', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('ce8db22a558b4806b619d76c2bef6f26', '1981c7b455b247b184a2628b1e3ad851', 'response_date', 'varchar', '19', '0', '0', '0', '', '1', 'Date', 'responseDate', '1', '0', '1', 'eq', null, '', '7', null, null, null, null, '响应时间', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('d4a6f4695b814143925e67a232b81be1', 'a5715cd52e87466cb495e862385b1a87', 'phone', 'VARCHAR', '11', '0', '0', '0', null, '1', 'String', 'phone', '1', '0', '1', 'eq', null, null, '2', null, null, null, null, 'phone', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('d84ddd3631fc43dba03b74687452713c', '1981c7b455b247b184a2628b1e3ad851', 'email', 'varchar', '2147483647', '0', '0', '0', '', '0', 'String', 'email', '1', '0', '1', 'eq', null, '', '2', null, null, null, null, '联系电话', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('da2e0d7135234d0492d6eee9919f32ee', '2fda5794b01a4136bb30db7ac6529f7d', 'id', 'VARCHAR', '32', '0', '1', '0', null, '0', 'String', 'id', '1', '0', '1', 'eq', null, null, '1', null, null, null, null, 'id', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('de2b8fb426784cf295b4dff933b717ee', '27a45390c6c24039a4129ab1d4107129', 'sequence_id', 'INT', '10', '0', '0', '0', null, '1', 'Integer', 'sequenceId', '1', '0', '1', 'eq', null, null, '7', null, null, null, null, '序列号', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('dff1c805c6404feab3e9b88c48ccc8d0', '2fda5794b01a4136bb30db7ac6529f7d', 'update_date', 'DATETIME', '19', '0', '0', '0', null, '1', 'Date', 'updateDate', '1', '0', '1', 'eq', null, null, '8', null, null, null, null, 'update_date', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('e00f2884f1bf4bcbaa5c0ca7783b6c77', '1981c7b455b247b184a2628b1e3ad851', 'id', 'varchar', '32', '0', '1', '0', '', '0', 'String', 'id', '1', '0', '1', 'eq', null, '', '1', null, null, null, null, 'id', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('ef68bf60c8ea4e439319aa5028edf352', '1981c7b455b247b184a2628b1e3ad851', 'msg', 'varchar', '250', '0', '0', '0', '', '1', 'String', 'msg', '1', '0', '1', 'eq', null, '', '9', null, null, null, null, '返回消息', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('f5769c041846473581ecc401ee6af944', '27a45390c6c24039a4129ab1d4107129', 'id', 'VARCHAR', '32', '0', '1', '0', null, '0', 'String', 'id', '1', '0', '1', 'eq', null, null, '1', null, null, null, null, 'id', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('f9224bdc131e479fbbb098d14adde10b', '18191b5c7993466391e28b20b86e96f1', 'name', 'VARCHAR', '100', '0', '0', '0', null, '1', 'String', 'name', '1', '0', '1', 'eq', null, null, '2', null, null, null, null, '姓名', '0', null, null, null, null, null, null, null, null, 'input', null);
  INSERT INTO `generator_column` VALUES ('fa77ab0ca75e42e3b227b47575051a06', '1981c7b455b247b184a2628b1e3ad851', 'status', 'varchar', '4', '0', '0', '0', '', '1', 'String', 'status', '1', '0', '1', 'eq', null, '', '10', null, null, null, null, '发送状态', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('fc3051f969404612ab700f50786cf7a5', '1981c7b455b247b184a2628b1e3ad851', 'try_num', 'varchar', '10', '0', '0', '0', '', '1', 'Integer', 'tryNum', '1', '0', '1', 'eq', null, '', '8', null, null, null, null, '重发次数', '0', '', '', null, null, '', '', '', 'input', 'input', null);
  INSERT INTO `generator_column` VALUES ('ff98041474c343639435e24ffe5287f0', '18191b5c7993466391e28b20b86e96f1', 'money', 'VARCHAR', '5', '0', '0', '0', null, '1', 'String', 'money', '1', '0', '1', 'eq', null, null, '6', null, null, null, null, '金额', '0', null, null, null, null, null, null, null, null, 'input', null);
  
  -- ----------------------------
  -- Table structure for generator_data_source
  -- ----------------------------
  DROP TABLE IF EXISTS `generator_data_source`;
  CREATE TABLE `generator_data_source` (
    `id` varchar(32) NOT NULL COMMENT '主键',
    `db_key` varchar(50) NOT NULL COMMENT '索引关键字',
    `description` varchar(50) NOT NULL COMMENT '描述',
    `driver_class` varchar(50) NOT NULL COMMENT '驱动',
    `url` varchar(200) NOT NULL COMMENT 'URL',
    `db_user` varchar(50) NOT NULL COMMENT '帐号',
    `db_password` varchar(50) DEFAULT NULL COMMENT '密码',
    `db_type` varchar(50) DEFAULT NULL COMMENT '数据库类型',
    `db_name` varchar(50) DEFAULT NULL COMMENT '数据库名称',
    `create_by` varchar(32) DEFAULT NULL COMMENT 'create_by',
    `create_date` datetime DEFAULT NULL COMMENT 'create_date',
    `update_by` varchar(32) DEFAULT NULL COMMENT 'update_by',
    `update_date` datetime DEFAULT NULL COMMENT 'update_date',
    `remarks` varchar(255) DEFAULT NULL COMMENT 'remarks',
    `del_flag` char(1) DEFAULT NULL COMMENT 'del_flag',
    PRIMARY KEY (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据源';
  
  -- ----------------------------
  -- Records of generator_data_source
  -- ----------------------------
  INSERT INTO `generator_data_source` VALUES ('b9640b52e56f4d038eab0a4cbfff14c5', 'jeewebschool', '', 'com.mysql.jdbc.Driver', 'jdbc:mysql://localhost/jeeweb_school?useUnicode=true&amp;amp;characterEncoding=UTF-8', 'root', 'gliwang123456', 'MySql', 'jeeweb_school', null, null, null, null, null, null);
  INSERT INTO `generator_data_source` VALUES ('e3a81b00c064430a8623de0f576d31ef', 'jeewebbbs', 'jeeweb升级版本', 'com.mysql.jdbc.Driver', 'jdbc:mysql://localhost/jeeweb_bbs?useUnicode=true&amp;amp;characterEncoding=UTF-8', 'root', 'gliwang123456', 'MySql', 'jeeweb_bbs', null, null, null, null, null, null);
  
  -- ----------------------------
  -- Table structure for generator_scheme
  -- ----------------------------
  DROP TABLE IF EXISTS `generator_scheme`;
  CREATE TABLE `generator_scheme` (
    `id` varchar(32) NOT NULL COMMENT '编号',
    `table_type` varchar(2000) DEFAULT NULL COMMENT '表类型',
    `module_name` varchar(30) DEFAULT NULL COMMENT '生成模块名',
    `entity_name` varchar(30) DEFAULT NULL COMMENT '实体名',
    `table_name` varchar(30) DEFAULT NULL COMMENT '表名',
    `function_name` varchar(500) DEFAULT NULL COMMENT '生成功能名',
    `function_desc` varchar(100) DEFAULT NULL COMMENT '生成功能名（简写）',
    `function_author` varchar(100) DEFAULT NULL COMMENT '生成功能作者',
    `table_id` varchar(200) DEFAULT NULL COMMENT '生成表编号',
    `template_scheme_id` varchar(32) DEFAULT NULL COMMENT '模板ID',
    `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
    `create_date` datetime DEFAULT NULL COMMENT '创建时间',
    `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
    `update_date` datetime DEFAULT NULL COMMENT '更新时间',
    `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息',
    `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标记（0：正常；1：删除）',
    PRIMARY KEY (`id`),
    KEY `codegen_scheme_del_flag` (`del_flag`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='生成方案';
  
  -- ----------------------------
  -- Records of generator_scheme
  -- ----------------------------
  INSERT INTO `generator_scheme` VALUES ('011e85177c2b455794eca07775fd80e4', null, null, 'ProductOrder', 'product_order', '产品订单', '产品订单', '王存见', 'ae56f0a7c3b8414a9e834545733a6606', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('01a6d3313c9d488babad1c2e3d2c7281', null, null, 'SignIn', 'sign_in', '签到', '签到', '王存见', '98be318d9c8f427592904ee825c665ec', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('03117125b1ae49dc93cdfd683cb47039', null, null, 'TestOk', 't_test_ok', '测试OK', '测试OK', '王存见', '4cb8efdb946c454da090672927b127e8', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('2698f8eee6c648288149538e8937ff7a', null, null, 'Posts', 'bbs_posts', '主题', '主题', '王存见', '444953f30e2744f089a7552941dea1a9', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('2c1bf816844a4feeb39377b1d8731a0b', null, null, 'Case', 'case', 'case', 'case', '王存见', 'bd5b42360bc74fc0aafe7217b32296b7', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('32068931af3b4086ab8ade1e692a877c', null, null, 'EmailTemplate', 'email_template', '邮件模板', '邮件模板', '王存见', '2e059f9d5406486096f912201e111d60', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('3853f703e495498fa8b6984b5afe57c7', null, null, 'LoginLog', 'sys_login_log', '登陆日志', '登陆日志', 'sys', '26ecf1ac2ff74519afe8d93f890347de', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('393e9bc61359477abea56f20b0166864', null, null, 'OperationLog', 'sys_operation_log', '操作日志', '操作日志', '王存见', 'fb4ab1422c4a450683cd4f69ef6d2382', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('3e9d3cbb4af145da81e8b8676c8842a7', null, null, 'SignInStatus', 'sign_status', '登陆状态', '登陆状态状态', '王存见', '71ada3f9b3b2404d9f24d0938d2991bd', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('4fe8230fa837467383bf9cf32c11d752', null, null, 'Message', 'sys_message', '系统消息', '系统消息', '王存见', '4cfaec63631b4f5e92c7eb00bdbe1f2e', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('60b23fec36404f1ea2fea2e8bffba186', null, null, 'SmsRevLog', 'sms_rev_log', '短信接收日志', '短信接收日志', '王存见', '27a45390c6c24039a4129ab1d4107129', '4cd509aa109b45748ff06417eb5175f4', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('638b3089d54641b390f6776d8d647380', null, null, 'MessageTemplate', 'sys_message_template', '消息模版', '消息模版', '王存见', 'c28a362b273042b08cd84e748d4531d9', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('6bca4a45a6ed4d518d46937329989638', null, null, 'Praise', 'example_praise', '点赞', '点赞', '王存见', 'db573db8fc244ff6b9d99fb285d9e13a', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('843fab6f8b284cb49eb56da5ad16437e', null, null, 'ProductPurchase', 'product_purchase', '购买产品', '购买产品', '王存见', '835ed1ccdf0b41ea856c25815f6c2dda', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('872e3cdab3ac413591c5a472d59cc5d3', null, null, 'SchoolHouseLinkmanSendLog', 'school_house_linkman_send_log', '发送日志', '发送日志', '王存见', 'a5715cd52e87466cb495e862385b1a87', '4cd509aa109b45748ff06417eb5175f4', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('8a5540b13c734608bcfeb1082d5ccff4', null, null, 'Comment', 'bbs_comment', '评论', '评论', '王存见', 'bb03cefff0784df5a1870a6493a1ca38', '1e868adeb89f4b1bb93de557c9f7bde5', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('98dea8dcca024c1e8a02d15dae91b0c9', null, null, 'SchoolHouseLinkman', 'school_house_linkman', 'school_house_linkman', 'school_house_linkman', null, '0dae82fb2f3446d490cf0f527af4e393', null, null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('a0f42d41df224a7ea22d22b7e78dc559', null, null, 'Example', 'example', 'example', 'example', '王存见', 'f783ba49ccd04868a8ee034b3eaabcd1', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('a33d7d10d0594ce5ab74cac9df663161', null, null, 'EmailSendLog', 'email_send_log', '邮件发送日志', '邮件发送日志', '王存见', '1981c7b455b247b184a2628b1e3ad851', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('a404d59415454a59b50eaac96983644a', null, null, 'ScheduleJobLog', 'task_schedule_job_log', '任务日志', '任务日志', '王存见', '7f22d6a6c2b64bf7ae02a950081a988a', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('a6f1894e42954969b90895bbf24f224b', null, null, 'EmailSendLog', 'email_send_log', 'email_send_log', 'email_send_log', null, '31ad85e154154bfe98feae7788f5c324', null, null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('afe9caebd30245818455f4b0c9c499e7', null, null, 'PostsCollection', 'posts_collection', '收藏', '收藏', '王存见', 'b944dce9fcfb41478db4d0337bf14886', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('bd02d8b0d40b4b158977e344baf9c97e', null, null, 'Praise', 'bss_praise', '点赞', '点赞', '王存见', '9f8f9fc603e34437a219a37162a432a3', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('c7da4ab09edc4a4aa5744d6242a39828', null, null, 'PostsColumn', 'bbs_posts_column', '帖子栏目', '帖子栏目', '王存见', 'ff2362bb9c244e99952559420efe16df', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('cebfa9c28a4d4444acecaaae24edb687', null, null, 'Praise', 'case_praise', '点赞', '点赞', '王存见', 'e2e4d3b52ef240dbb10538d0ad107558', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('d8d8981c054f4b9995b5fa0b88895758', null, null, 'TestOk', 't_test_ok', '备注备注备注备注备注', '备注备注备注备注备注', '王存见', '4efa888ee41d4deebee9c6a8b139fd44', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('d9550faa5a1d451cae94e9e7318f22ab', null, null, 'SysOrganization', 'sys_organization', 'sys_organization', 'sys_organization', '王存见', '2fda5794b01a4136bb30db7ac6529f7d', '1e868adeb89f4b1bb93de557c9f7bde5', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('ddc51f38986743e4b5addad4ce3a967b', null, null, 'Product', 'product', '产品管理', '产品管理', '王存见', '82ff3e641c1c4cbbb2c37ddcf1c30879', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('e6fe5e1c6dd54409bdf3643a0a37ca00', null, null, 'SmsTemplate', 'sms_template', '短信模板', '短信模板', '王存见', '3b6d22c731ce4e4e8d3a35ff8ddb3230', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('e9873e5fed57461c8a203e617733c1e4', null, null, 'FrontCmsArticle', 'front_cms_article', 'front_cms_article', 'front_cms_article', null, '81e5ff5faab0475e9f1b82064765ce4b', null, null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('f1e758e648c24d2e90e61dcce2f67b8e', null, null, 'SchoolHouseLinkman', 'school_house_linkman', '联系人', '联系人', '王存见', '18191b5c7993466391e28b20b86e96f1', '4cd509aa109b45748ff06417eb5175f4', null, null, null, null, null, '0');
  INSERT INTO `generator_scheme` VALUES ('fb081eb60f2049ed8e876b6ea8f84b26', null, null, 'SmsSendLog', 'sms_send_log', '发送日志', '发送日志', '王存见', '6a3fe7d30b3642d09fbb2cc4a5fc42c0', '67f7f85896dc4755b9f2e25888795a54', null, null, null, null, null, '0');
  
  -- ----------------------------
  -- Table structure for generator_table
  -- ----------------------------
  DROP TABLE IF EXISTS `generator_table`;
  CREATE TABLE `generator_table` (
    `id` varchar(32) NOT NULL COMMENT '生成方案主键',
    `source_id` varchar(32) DEFAULT NULL COMMENT '数据源ID',
    `title` varchar(200) DEFAULT NULL COMMENT '实体名称',
    `table_name` varchar(200) DEFAULT NULL COMMENT '实体名称',
    `table_type` varchar(10) DEFAULT NULL COMMENT '表的类型',
    `table_pk_type` varchar(5) DEFAULT NULL COMMENT '数据主键类型',
    `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
    `create_date` datetime DEFAULT NULL COMMENT '创建时间',
    `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
    `update_date` datetime DEFAULT NULL COMMENT '更新时间',
    `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息',
    `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标记（0：正常；1：删除）',
    `sync_database` tinyint(1) DEFAULT NULL COMMENT '是否同步数据库',
    `class_name` varchar(50) DEFAULT NULL COMMENT '实体名称',
    `is_test` tinyint(1) DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `codegen_scheme_del_flag` (`del_flag`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='代码生成信息';
  
  -- ----------------------------
  -- Records of generator_table
  -- ----------------------------
  INSERT INTO `generator_table` VALUES ('18191b5c7993466391e28b20b86e96f1', 'b9640b52e56f4d038eab0a4cbfff14c5', 'school_house_linkman', 'school_house_linkman', null, null, null, null, null, null, 'school_house_linkman', '0', '1', null, '0');
  INSERT INTO `generator_table` VALUES ('1981c7b455b247b184a2628b1e3ad851', 'e3a81b00c064430a8623de0f576d31ef', 'email_send_log', 't_test_template', null, null, null, null, null, null, 't_test_template', '0', '0', null, '1');
  INSERT INTO `generator_table` VALUES ('27a45390c6c24039a4129ab1d4107129', 'b9640b52e56f4d038eab0a4cbfff14c5', 'sms_rev_log', 'sms_rev_log', null, null, null, null, null, null, 'sms_rev_log', '0', '1', null, '0');
  INSERT INTO `generator_table` VALUES ('2fda5794b01a4136bb30db7ac6529f7d', 'e3a81b00c064430a8623de0f576d31ef', 'sys_organization', 'sys_organization', null, null, null, null, null, null, 'sys_organization', '0', '1', null, '0');
  INSERT INTO `generator_table` VALUES ('a5715cd52e87466cb495e862385b1a87', 'b9640b52e56f4d038eab0a4cbfff14c5', 'school_house_linkman_send_log', 'school_house_linkman_send_log', null, null, null, null, null, null, 'school_house_linkman_send_log', '0', '1', null, '0');
  
  -- ----------------------------
  -- Table structure for generator_template
  -- ----------------------------
  DROP TABLE IF EXISTS `generator_template`;
  CREATE TABLE `generator_template` (
    `id` varchar(32) NOT NULL COMMENT '主键',
    `name` varchar(32) NOT NULL COMMENT '模板名称',
    `key` varchar(32) DEFAULT NULL COMMENT '标识',
    `enable_package` varchar(4) DEFAULT NULL COMMENT '是否是class',
    `target_package` varchar(500) DEFAULT NULL COMMENT '目标包路径',
    `target_path` varchar(500) DEFAULT NULL COMMENT '生成目标目录',
    `template_content` text NOT NULL COMMENT '模板内容',
    `scheme_id` varchar(32) DEFAULT NULL COMMENT '方案ID',
    `name_format` varchar(50) DEFAULT NULL COMMENT '文件名格式',
    `name_underline` varchar(4) DEFAULT NULL COMMENT '是否开启用户驼峰转下划线模式',
    `sort` tinyint(4) DEFAULT NULL COMMENT '排序',
    PRIMARY KEY (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='生成模板';
  
  -- ----------------------------
  -- Records of generator_template
  -- ----------------------------
  INSERT INTO `generator_template` VALUES ('04bee1369949447ca309eb1bb134000d', '数据控制层', 'mapper', '1', 'cn.jeewe.bbs.mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport com.baomidou.mybatisplus.mapper.BaseMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', '67f7f85896dc4755b9f2e25888795a54', '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('06ee634a160d46798070f7aa058002e1', '控制器', 'controller', '1', 'cn.gov.gzst.[moduleName].controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.bbs.aspectj.annotation.Log;\r\nimport cn.jeeweb.bbs.aspectj.enums.LogType;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.DuplicateValid;\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.http.ValidResponse;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.BeanUtils;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.ui.ModelMap;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n	@Autowired\r\n	private I${entityName?cap_first}Service ${entityName?cap_first}Service;\r\n\r\n\r\n	@GetMapping\r\n	@RequiresMethodPermissions(&quot;view&quot;)\r\n	public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		return displayModelAndView(&quot;list&quot;);\r\n	}\r\n\r\n	/**\r\n	 * 根据页码和每页记录数，以及查询条件动态加载数据\r\n	 *\r\n	 * @param request\r\n	 * @param response\r\n	 * @throws IOException\r\n	 */\r\n	@RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n	@PageableDefaults(sort = &quot;id=desc&quot;)\r\n	@Log(logType = LogType.SELECT)\r\n	@RequiresMethodPermissions(&quot;list&quot;)\r\n	public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws IOException {\r\n		EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n		propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n		// 预处理\r\n		QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n		SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n		PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?cap_first}Service.list(queryable,entityWrapper));\r\n		String content = JSON.toJSONString(pagejson, filter);\r\n		StringUtils.printJson(response,content);\r\n	}\r\n\r\n	@GetMapping(value = &quot;add&quot;)\r\n	public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;add&quot;)\r\n	@Log(logType = LogType.INSERT)\r\n	@RequiresMethodPermissions(&quot;add&quot;)\r\n	public Response add(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?cap_first}Service.insert(entity);\r\n		return Response.ok(&quot;添加成功&quot;);\r\n	}\r\n\r\n	@GetMapping(value = &quot;{id}/update&quot;)\r\n	public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n							   HttpServletResponse response) {\r\n		${entityName?cap_first} ${entityName?cap_first} = ${entityName?cap_first}Service.selectById(id);\r\n		model.addAttribute(&quot;data&quot;, ${entityName?cap_first});\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/update&quot;)\r\n	@Log(logType = LogType.UPDATE)\r\n	@RequiresMethodPermissions(&quot;update&quot;)\r\n	public Response update(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?cap_first}Service.insertOrUpdate(entity);\r\n		return Response.ok(&quot;更新成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n		${entityName?cap_first}Service.deleteById(id);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;batch/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n		List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n		${entityName?cap_first}Service.deleteBatchIds(idList);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	} \r\n}', null, '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('09832c36e09844e99828cd793182117f', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n		t.id,\r\n		t.name,\r\n		t.parent_id as parentId,\r\n		t.parent_ids as parentIds,\r\n		t.parent_id as \'parent.id\',\r\n		p.name AS \'parent.name\',\r\n	   &lt;#list columns as column&gt;\r\n	   &lt;#if column.columnName!=\'id\'&amp;&amp;column.columnName!=\'name\'&amp;&amp; column.columnName!=\'parent_id\'&amp;&amp; column.columnName!=\'parent_ids\'&gt;\r\n	    t.${column.columnName} &lt;#if column.columnName != column.javaField&gt; AS \'${column.javaField}\'&lt;/#if&gt;,\r\n	   &lt;/#if&gt;\r\n	   &lt;/#list&gt;\r\n	   (select count(*) from ${tableName} s\r\n		WHERE s.parent_id=t.id) as\r\n		hasChildren\r\n	&lt;/sql&gt;\r\n	&lt;sql id=&quot;parentJoins&quot;&gt;\r\n		LEFT JOIN ${tableName} p ON p.id = t.parent_id\r\n	&lt;/sql&gt;\r\n    &lt;!-- 查找通过ID查找树信息 --&gt;\r\n	&lt;select id=&quot;selectByTreeId&quot; resultType=&quot;${entity.targetPackage}.${entityName?cap_first}&quot;\r\n		parameterType=&quot;java.lang.String&quot;&gt;\r\n		select\r\n		&lt;include refid=&quot;Base_Column_List&quot; /&gt;\r\n		from ${tableName} t\r\n		&lt;include refid=&quot;parentJoins&quot; /&gt;\r\n		where t.id = ${&quot;#&quot;}{id,jdbcType=VARCHAR}\r\n	&lt;/select&gt;\r\n	\r\n	&lt;!-- 查找树列表 --&gt;\r\n	&lt;select id=&quot;selectTreeList&quot; resultType=&quot;${entity.targetPackage}.${entityName?cap_first}&quot;&gt;\r\n		select\r\n		&lt;include refid=&quot;Base_Column_List&quot; /&gt;\r\n		from ${tableName} t\r\n		&lt;include refid=&quot;parentJoins&quot; /&gt;\r\n		&lt;where&gt;\r\n			${&quot;$&quot;}{ew.sqlSegment}\r\n		&lt;/where&gt;\r\n	&lt;/select&gt;\r\n\r\n	&lt;!-- 更新子树 --&gt;\r\n	&lt;update id=&quot;updateSunTreeParentIds&quot;&gt;\r\n		update ${tableName} set parent_ids=\r\n		CONCAT(${&quot;#&quot;}{newParentIds},substring(parent_ids,\r\n		length(${&quot;#&quot;}{oldParentIds})+1,length(parent_ids)+1))\r\n		where parent_ids like concat(${&quot;#&quot;}{oldParentIds}, \'%\')\r\n	&lt;/update&gt;\r\n	\r\n	&lt;!-- 删除子树 --&gt;\r\n	&lt;delete id=&quot;deleteSunTree&quot; parameterType=&quot;java.lang.String&quot;&gt;\r\n		delete from ${tableName}\r\n		where parent_ids like concat(${&quot;#&quot;}{oldParentIds}, \'%\')\r\n	&lt;/delete&gt;\r\n  \r\n&lt;/mapper&gt;', '1e868adeb89f4b1bb93de557c9f7bde5', '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('0a5d1e93d7874968b89611d988785b2f', '服务接口', 'iservice', '1', 'cn.jeeweb.service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.gov.gzst.common.common.service.ITreeCommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ITreeCommonService&lt;${entityName?cap_first},String&gt; {\r\n\r\n}', '72b2a96721894d018840c3be4da92fb9', 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('0d43a8e9e8be4321968a430e192e33cd', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n&lt;#list columns as column&gt;\r\n   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n   &lt;/#if&gt;\r\n&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;add&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#grid\'}:grid&gt;\r\n&lt;% } %&gt;', '67f7f85896dc4755b9f2e25888795a54', 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('121a127bf27f4d439e642eb79b9e7675', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'${entityName?uncap_first}Form\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot; modelAttribute=&quot;data&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n	    &lt;#assign index=0 /&gt;\r\n		&lt;#list columns as column&gt;\r\n			&lt;#if column.formable?? &amp;&amp; column.formable&gt;\r\n			&lt;#assign index=index+1 /&gt;\r\n			&lt;#if index%2==1&gt; \r\n				&lt;tr&gt;\r\n			&lt;/#if&gt;\r\n					&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n		              &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n		            &lt;/td&gt;\r\n					&lt;td class=&quot;width-35&quot;&gt;\r\n			&lt;#if column.formType == &quot;input&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n						&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n						&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n			&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n						&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n						&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n						&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;/#if&gt;\r\n						&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n					&lt;/td&gt;\r\n			&lt;#if index%2==0&gt; \r\n				&lt;/tr&gt;\r\n			&lt;/#if&gt;\r\n			&lt;/#if&gt;\r\n		&lt;/#list&gt;\r\n		&lt;#if index%2==1 &gt; \r\n					&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n		   			&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n		  		&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/${r\'#form\'}:form&gt;\r\n&lt;% } %&gt;', '4cd509aa109b45748ff06417eb5175f4', 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('13b46fa9010a48dc8e6864d4706f2e2c', '服务接口实现', 'ServiceImpl', '1', 'cn.jeeweb.service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.gov.gzst.common.common.service.impl.TreeCommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends TreeCommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}, String&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', '72b2a96721894d018840c3be4da92fb9', '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('1745eea73f9841c8aa1d87838484996b', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'${entityName?uncap_first}Form\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot; modelAttribute=&quot;data&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n	    &lt;#assign index=0 /&gt;\r\n		&lt;#list columns as column&gt;\r\n			&lt;#if column.formable?? &amp;&amp; column.formable&gt;\r\n			&lt;#assign index=index+1 /&gt;\r\n			&lt;#if index%2==1&gt; \r\n				&lt;tr&gt;\r\n			&lt;/#if&gt;\r\n					&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n		              &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n		            &lt;/td&gt;\r\n					&lt;td class=&quot;width-35&quot;&gt;\r\n			&lt;#if column.formType == &quot;input&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n						&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n						&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n			&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n						&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n						&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n						&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;/#if&gt;\r\n						&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n					&lt;/td&gt;\r\n			&lt;#if index%2==0&gt; \r\n				&lt;/tr&gt;\r\n			&lt;/#if&gt;\r\n			&lt;/#if&gt;\r\n		&lt;/#list&gt;\r\n		&lt;#if index%2==1 &gt; \r\n					&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n		   			&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n		  		&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/${r\'#form\'}:form&gt;\r\n&lt;% } %&gt;', '67f7f85896dc4755b9f2e25888795a54', 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('1d33d31c6662494c9e5f5b7188c8bbc4', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n	&lt;#list columns as column&gt;\r\n	   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n		&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n	   &lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;create&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#form\'}:grid&gt;\r\n&lt;% } %&gt;', null, 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('22fffac096414433b0bf4c5f56f11f43', '实体', 'entity', '1', 'cn.jeewe.bbs.entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mvc.entity.AbstractEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends AbstractEntity&lt;String&gt; {\r\n\r\n    &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.parmaryKey&gt;\r\n    @TableId(value = &quot;${column.columnName}&quot;, type = IdType.UUID)\r\n    &lt;#else&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n    &lt;/#if&gt;\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first};\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaField==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first}){\r\n		this.${column.javaField?uncap_first} = ${column.javaField?uncap_first};\r\n	}\r\n	&lt;/#list&gt;\r\n	\r\n}', '67f7f85896dc4755b9f2e25888795a54', '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('26bd3ffa66ad417d8c9cd38f679743ff', '数据控制层', 'mapper', '1', 'cn.jeewe.bbs.mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport com.baomidou.mybatisplus.mapper.BaseMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', '4cd509aa109b45748ff06417eb5175f4', '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('3640de1302e54a38a6a7f7327a1b6656', '服务接口实现', 'ServiceImpl', '1', 'cn.jeewe.bbs.service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.impl.CommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends CommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', '4cd509aa109b45748ff06417eb5175f4', '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('3781c98f5fd14fc89c6c3e4049021ba9', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n	 &lt;#list columns as column&gt;\r\n       t.${column.columnName}&lt;#if !column.isBaseType&gt; AS &quot;${column.javaField}.id&quot;&lt;/#if&gt;&lt;#if column_has_next&gt;,&lt;/#if&gt;\r\n      &lt;/#list&gt;\r\n	&lt;/sql&gt;\r\n&lt;/mapper&gt;', '4cd509aa109b45748ff06417eb5175f4', '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('38fdab929e3d48928798973d61e9dc31', '实体', 'entity', '1', 'cn.gov.gzst.[moduleName].entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mvc.entity.AbstractEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends AbstractEntity&lt;String&gt; {\r\n\r\n    &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.parmaryKey&gt;\r\n    @TableId(value = &quot;${column.columnName}&quot;, type = IdType.UUID)\r\n    &lt;#else&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n    &lt;/#if&gt;\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first};\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaField==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first}){\r\n		this.${column.javaField?uncap_first} = ${column.javaField?uncap_first};\r\n	}\r\n	&lt;/#list&gt;\r\n	\r\n}', null, '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('395c71d7dfc64966bde0a010cdccad8f', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'${entityName?uncap_first}Form\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n	&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot;  modelAttribute=&quot;data&quot;  method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n			&lt;tr&gt;\r\n			 &lt;td class=&quot;width-15 active&quot;&gt;&lt;label class=&quot;pull-right&quot;&gt;上级${functionName}:&lt;/label&gt;&lt;/td&gt;\r\n			 &lt;td class=&quot;width-35&quot;&gt;\r\n				&lt;${r\'#form\'}:treeselect title=&quot;请选择上级${functionName}&quot; path=&quot;parentId&quot; dataUrl=&quot;${r\'${adminPath}\'}/${entityName?lower_case}/treeData&quot; labelName=&quot;parentname&quot; labelValue=&quot;${r\'${data.parent.name}\'}&quot; /&gt;	   \r\n			  &lt;/td&gt;\r\n			  &lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n				  &lt;label&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;${functionName}名称:&lt;/label&gt;\r\n			 &lt;/td&gt;\r\n			 &lt;td class=&quot;width-35&quot; &gt;\r\n				 &lt;${r\'#form\'}:input path=&quot;name&quot; class=&quot;form-control &quot; datatype=&quot;*&quot; nullmsg=&quot;请输入${functionName}名称！&quot; htmlEscape=&quot;false&quot; /&gt;\r\n				 &lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n			 &lt;/td&gt;\r\n			&lt;/tr&gt;\r\n	&lt;#assign index=0 /&gt;\r\n	&lt;#list columns as column&gt;\r\n		&lt;#if column.formable?? &amp;&amp; column.formable&gt;\r\n		&lt;#assign index=index+1 /&gt;\r\n		&lt;#if index%2==1&gt; \r\n			&lt;tr&gt;\r\n		&lt;/#if&gt;\r\n				&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n				  &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n				&lt;/td&gt;\r\n				&lt;td class=&quot;width-35&quot;&gt;\r\n		&lt;#if column.formType == &quot;input&quot;&gt;\r\n					&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n					&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n					&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n		&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n					&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n					&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n					&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n					&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n					&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n					&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;/#if&gt;\r\n					&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n				&lt;/td&gt;\r\n		&lt;#if index%2==0&gt; \r\n			&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;#if index%2==1 &gt; \r\n				&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n				&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n			&lt;/tr&gt;\r\n	&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/form:form&gt;\r\n&lt;% } %&gt;', '72b2a96721894d018840c3be4da92fb9', 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('3d0b0b04abf24dbd8eaf279e4dd44ca0', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'messageTemplateForm\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot; modelAttribute=&quot;data&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n	    &lt;#assign index=0 /&gt;\r\n		&lt;#list columns as column&gt;\r\n			&lt;#if column.isForm?? &amp;&amp; column.isForm&gt;\r\n			&lt;#assign index=index+1 /&gt;\r\n			&lt;#if index%2==1&gt; \r\n				&lt;tr&gt;\r\n			&lt;/#if&gt;\r\n					&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n		              &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n		            &lt;/td&gt;\r\n					&lt;td class=&quot;width-35&quot;&gt;\r\n			&lt;#if column.formType == &quot;input&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n						&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n						&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n			&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n						&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n						&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n						&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;/#if&gt;\r\n						&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n					&lt;/td&gt;\r\n			&lt;#if index%2==0&gt; \r\n				&lt;/tr&gt;\r\n			&lt;/#if&gt;\r\n			&lt;/#if&gt;\r\n		&lt;/#list&gt;\r\n		&lt;#if index%2==1 &gt; \r\n					&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n		   			&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n		  		&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/${r\'#form\'}:form&gt;\r\n&lt;% } %&gt;', null, 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('3e75d5be686b4e4d936837b9e94c20e8', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'${entityName?uncap_first}Form\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot; modelAttribute=&quot;data&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n	    &lt;#assign index=0 /&gt;\r\n		&lt;#list columns as column&gt;\r\n			&lt;#if column.formable?? &amp;&amp; column.formable&gt;\r\n			&lt;#assign index=index+1 /&gt;\r\n			&lt;#if index%2==1&gt; \r\n				&lt;tr&gt;\r\n			&lt;/#if&gt;\r\n					&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n		              &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n		            &lt;/td&gt;\r\n					&lt;td class=&quot;width-35&quot;&gt;\r\n			&lt;#if column.formType == &quot;input&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n						&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n						&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n			&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n						&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n						&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n						&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;/#if&gt;\r\n						&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n					&lt;/td&gt;\r\n			&lt;#if index%2==0&gt; \r\n				&lt;/tr&gt;\r\n			&lt;/#if&gt;\r\n			&lt;/#if&gt;\r\n		&lt;/#list&gt;\r\n		&lt;#if index%2==1 &gt; \r\n					&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n		   			&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n		  		&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/${r\'#form\'}:form&gt;\r\n&lt;% } %&gt;', '79131dfd43054df591fbde71f4ff1082', 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('471b907f6c8b4bbdabc61612b0197031', '数据控制层', 'mapper', '1', 'cn.jeeweb.mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.gov.gzst.common.common.mapper.BaseTreeMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseTreeMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', '72b2a96721894d018840c3be4da92fb9', '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('4d0a93a0f45f4911a1a5d21a3d6644f8', '服务接口实现', 'ServiceImpl', '1', 'cn.jeewe.bbs.service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.impl.CommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends CommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', '67f7f85896dc4755b9f2e25888795a54', '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('4e122bdf98f74a8f892d9b295c4bde47', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n	&lt;#list columns as column&gt;\r\n	   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n		&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n	   &lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;add&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#grid\'}:grid&gt;\r\n&lt;% } %&gt;', '4cd509aa109b45748ff06417eb5175f4', 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('4f18bc97c61a48ed8929209b389101e8', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n	&lt;#list columns as column&gt;\r\n	   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n		&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n	   &lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;add&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#grid\'}:grid&gt;\r\n&lt;% } %&gt;', '79131dfd43054df591fbde71f4ff1082', 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('517532e02fce4beea57e3b39fa0b9c4e', '控制器', 'controller', '1', 'cn.jeeweb.controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.bbs.aspectj.annotation.Log;\r\nimport cn.jeeweb.bbs.aspectj.enums.LogType;\r\nimport cn.jeeweb.bbs.common.bean.ResponseError;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mvc.entity.tree.BootstrapTreeHelper;\r\nimport cn.jeeweb.common.mvc.entity.tree.BootstrapTreeNode;\r\nimport cn.jeeweb.common.mvc.entity.tree.TreeSortUtil;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.QueryPropertyPreFilter;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.ObjectUtils;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\n\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.HashMap;\r\nimport java.util.List;\r\nimport java.util.Map;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n\r\n    @Autowired\r\n    private I${entityName?cap_first}Service ${entityName?uncap_first}Service;\r\n\r\n\r\n    @GetMapping\r\n    @RequiresMethodPermissions(&quot;view&quot;)\r\n    public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n        return displayModelAndView(&quot;list&quot;);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n    @PageableDefaults(sort = &quot;id=desc&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,\r\n                          HttpServletResponse response) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n        // 预处理\r\n        QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?uncap_first}Service.list(queryable,entityWrapper));\r\n        String content = JSON.toJSONString(pagejson, filter);\r\n        StringUtils.printJson(response,content);\r\n    }\r\n\r\n    @GetMapping(value = &quot;add&quot;)\r\n    public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n        model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n        return displayModelAndView (&quot;edit&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;add&quot;)\r\n    @Log(logType = LogType.INSERT)\r\n    @RequiresMethodPermissions(&quot;add&quot;)\r\n    public Response add(${entityName?cap_first} entity, BindingResult result,\r\n                           HttpServletRequest request, HttpServletResponse response) {\r\n        // 验证错误\r\n        this.checkError(entity,result);\r\n        ${entityName?uncap_first}Service.insert(entity);\r\n        return Response.ok(&quot;添加成功&quot;);\r\n    }\r\n\r\n    @GetMapping(value = &quot;{id}/update&quot;)\r\n    public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n                               HttpServletResponse response) {\r\n        ${entityName?cap_first} entity = ${entityName?uncap_first}Service.selectById(id);\r\n        model.addAttribute(&quot;data&quot;, entity);\r\n        return displayModelAndView (&quot;edit&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;{id}/update&quot;)\r\n    @Log(logType = LogType.UPDATE)\r\n    @RequiresMethodPermissions(&quot;update&quot;)\r\n    public Response update(${entityName?cap_first} entity, BindingResult result,\r\n                           HttpServletRequest request, HttpServletResponse response) {\r\n        // 验证错误\r\n        this.checkError(entity,result);\r\n        ${entityName?uncap_first}Service.insertOrUpdate(entity);\r\n        return Response.ok(&quot;更新成功&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;{id}/delete&quot;)\r\n    @Log(logType = LogType.DELETE)\r\n    @RequiresMethodPermissions(&quot;delete&quot;)\r\n    public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n        ${entityName?uncap_first}Service.deleteById(id);\r\n        return Response.ok(&quot;删除成功&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;batch/delete&quot;)\r\n    @Log(logType = LogType.DELETE)\r\n    @RequiresMethodPermissions(&quot;delete&quot;)\r\n    public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n        List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n        ${entityName?uncap_first}Service.deleteBatchIds(idList);\r\n        return Response.ok(&quot;删除成功&quot;);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;treeData&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void treeData(Queryable queryable,\r\n                         @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid,\r\n                         @RequestParam(value = &quot;async&quot;, required = false, defaultValue = &quot;false&quot;) boolean async,\r\n                         HttpServletRequest request, HttpServletResponse response) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t.&quot;);\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = null;\r\n        if (!async) { // 非异步 查自己和子子孙孙\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sort(treeNodeList).async(treeNodeList);\r\n        } else { // 异步模式只查自己\r\n            // queryable.addCondition(&quot;parentId&quot;, nodeid);\r\n            if (ObjectUtils.isNullOrEmpty(nodeid)) {\r\n                // 判断的应该是多个OR条件\r\n                entityWrapper.isNull(&quot;parentId&quot;);\r\n            } else {\r\n                entityWrapper.eq(&quot;parentId&quot;, nodeid);\r\n            }\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sync(treeNodeList);\r\n        }\r\n        PropertyPreFilterable propertyPreFilterable = new QueryPropertyPreFilter();\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;, &quot;name&quot;, &quot;expanded&quot;, &quot;hasChildren&quot;, &quot;leaf&quot;, &quot;loaded&quot;, &quot;level&quot;,\r\n                &quot;parentId&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;${entityName?cap_first}&gt;(treeNodeList);\r\n        String content = JSON.toJSONString(pagejson);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;ajaxTreeList&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void ajaxTreeList(Queryable queryable,\r\n                              @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid,\r\n                              @RequestParam(value = &quot;async&quot;, required = false, defaultValue = &quot;false&quot;) boolean async,\r\n                              HttpServletRequest request, HttpServletResponse response, PropertyPreFilterable propertyPreFilterable)\r\n            throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t&quot;);\r\n\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = null;\r\n        if (!async) { // 非异步 查自己和子子孙孙\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sort(treeNodeList).async(treeNodeList);\r\n        } else { // 异步模式只查自己\r\n            // queryable.addCondition(&quot;parentId&quot;, nodeid);\r\n            if (ObjectUtils.isNullOrEmpty(nodeid)) {\r\n                // 判断的应该是多个OR条件\r\n                entityWrapper.isNull(&quot;parentId&quot;);\r\n            } else {\r\n                entityWrapper.eq(&quot;parentId&quot;, nodeid);\r\n            }\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sync(treeNodeList);\r\n        }\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;, &quot;expanded&quot;, &quot;hasChildren&quot;, &quot;leaf&quot;, &quot;loaded&quot;, &quot;level&quot;, &quot;parentId&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;${entityName?cap_first}&gt;(treeNodeList);\r\n        String content = JSON.toJSONString(pagejson);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;bootstrapTreeData&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void bootstrapTreeData(Queryable queryable,\r\n                                   @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid, HttpServletRequest request,\r\n                                   HttpServletResponse response, PropertyPreFilterable propertyPreFilterable) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t.&quot;);\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n        List&lt;BootstrapTreeNode&gt; bootstrapTreeNodes = BootstrapTreeHelper.create().sort(treeNodeList);\r\n        propertyPreFilterable.addQueryProperty(&quot;text&quot;, &quot;href&quot;, &quot;tags&quot;, &quot;nodes&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        String content = JSON.toJSONString(bootstrapTreeNodes, filter);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n}', '1e868adeb89f4b1bb93de557c9f7bde5', '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('57468186b4734196b77b7d4f6fe99909', '实体', 'entity', '1', 'cn.jeewe.bbs.entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mvc.entity.AbstractEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends AbstractEntity&lt;String&gt; {\r\n\r\n    &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.parmaryKey&gt;\r\n    @TableId(value = &quot;${column.columnName}&quot;, type = IdType.UUID)\r\n    &lt;#else&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n    &lt;/#if&gt;\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first};\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaField==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first}){\r\n		this.${column.javaField?uncap_first} = ${column.javaField?uncap_first};\r\n	}\r\n	&lt;/#list&gt;\r\n	\r\n}', '4cd509aa109b45748ff06417eb5175f4', '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('59aa932a41a04c28a524f738b0a39a76', '实体', 'entity', '1', 'cn.gov.gzst.[moduleName].entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mvc.entity.AbstractEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends AbstractEntity&lt;String&gt; {\r\n\r\n    &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.parmaryKey&gt;\r\n    @TableId(value = &quot;${column.columnName}&quot;, type = IdType.UUID)\r\n    &lt;#else&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n    &lt;/#if&gt;\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first};\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaField==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first}){\r\n		this.${column.javaField?uncap_first} = ${column.javaField?uncap_first};\r\n	}\r\n	&lt;/#list&gt;\r\n	\r\n}', null, '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('634c9f9897824beb932853d4262ffbad', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'messageTemplateForm\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot; modelAttribute=&quot;data&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n	    &lt;#assign index=0 /&gt;\r\n		&lt;#list columns as column&gt;\r\n			&lt;#if column.isForm?? &amp;&amp; column.isForm&gt;\r\n			&lt;#assign index=index+1 /&gt;\r\n			&lt;#if index%2==1&gt; \r\n				&lt;tr&gt;\r\n			&lt;/#if&gt;\r\n					&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n		              &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n		            &lt;/td&gt;\r\n					&lt;td class=&quot;width-35&quot;&gt;\r\n			&lt;#if column.formType == &quot;input&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n						&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n						&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n			&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n						&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n						&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n						&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;/#if&gt;\r\n						&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n					&lt;/td&gt;\r\n			&lt;#if index%2==0&gt; \r\n				&lt;/tr&gt;\r\n			&lt;/#if&gt;\r\n			&lt;/#if&gt;\r\n		&lt;/#list&gt;\r\n		&lt;#if index%2==1 &gt; \r\n					&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n		   			&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n		  		&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/${r\'#form\'}:form&gt;\r\n&lt;% } %&gt;', null, 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('64463445dde349039d68a686e7a55212', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n	&lt;#list columns as column&gt;\r\n	   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n		&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n	   &lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;create&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#form\'}:grid&gt;\r\n&lt;% } %&gt;', null, 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('680b99086c444285af4e9ba865adad28', '服务接口', 'iservice', '1', 'cn.gov.gzst.[moduleName].service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.ICommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ICommonService&lt;${entityName?cap_first}&gt; {\r\n\r\n}', null, 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('69a250c11d854fbfac66dffcf57d34b4', '数据控制层', 'mapper', '1', 'cn.jeewe.bbs.mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport com.baomidou.mybatisplus.mapper.BaseMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', '79131dfd43054df591fbde71f4ff1082', '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('6afccbc1b4724cf395a2bcc3353b9495', '服务接口实现', 'ServiceImpl', '1', 'cn.jeeweb.service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.gov.gzst.common.common.service.impl.TreeCommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends TreeCommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}, String&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', '9195cfbe657640f09bbe7496a20a4772', '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('6bf218e83e1d4a869bfcb63b10fcc02b', '控制器', 'controller', '1', 'cn.gov.gzst.[moduleName].controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.bbs.aspectj.annotation.Log;\r\nimport cn.jeeweb.bbs.aspectj.enums.LogType;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.DuplicateValid;\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.http.ValidResponse;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.BeanUtils;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.ui.ModelMap;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n	@Autowired\r\n	private I${entityName?cap_first}Service ${entityName?cap_first}Service;\r\n\r\n\r\n	@GetMapping\r\n	@RequiresMethodPermissions(&quot;view&quot;)\r\n	public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		return displayModelAndView(&quot;list&quot;);\r\n	}\r\n\r\n	/**\r\n	 * 根据页码和每页记录数，以及查询条件动态加载数据\r\n	 *\r\n	 * @param request\r\n	 * @param response\r\n	 * @throws IOException\r\n	 */\r\n	@RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n	@PageableDefaults(sort = &quot;id=desc&quot;)\r\n	@Log(logType = LogType.SELECT)\r\n	@RequiresMethodPermissions(&quot;list&quot;)\r\n	public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws IOException {\r\n		EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n		propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n		// 预处理\r\n		QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n		SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n		PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?cap_first}Service.list(queryable,entityWrapper));\r\n		String content = JSON.toJSONString(pagejson, filter);\r\n		StringUtils.printJson(response,content);\r\n	}\r\n\r\n	@GetMapping(value = &quot;add&quot;)\r\n	public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;add&quot;)\r\n	@Log(logType = LogType.INSERT)\r\n	@RequiresMethodPermissions(&quot;add&quot;)\r\n	public Response add(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?cap_first}Service.insert(entity);\r\n		return Response.ok(&quot;添加成功&quot;);\r\n	}\r\n\r\n	@GetMapping(value = &quot;{id}/update&quot;)\r\n	public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n							   HttpServletResponse response) {\r\n		${entityName?cap_first} ${entityName?cap_first} = ${entityName?cap_first}Service.selectById(id);\r\n		model.addAttribute(&quot;data&quot;, ${entityName?cap_first});\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/update&quot;)\r\n	@Log(logType = LogType.UPDATE)\r\n	@RequiresMethodPermissions(&quot;update&quot;)\r\n	public Response update(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?cap_first}Service.insertOrUpdate(entity);\r\n		return Response.ok(&quot;更新成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n		${entityName?cap_first}Service.deleteById(id);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;batch/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n		List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n		${entityName?cap_first}Service.deleteBatchIds(idList);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	} \r\n}', null, '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('6f39542a18894daf88f6d21a055ece78', '控制器', 'controller', '1', 'cn.jeeweb.controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.school.aspectj.annotation.Log;\r\nimport cn.jeeweb.school.aspectj.enums.LogType;\r\nimport cn.jeeweb.school.common.bean.ResponseError;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mvc.entity.tree.BootstrapTreeHelper;\r\nimport cn.jeeweb.common.mvc.entity.tree.BootstrapTreeNode;\r\nimport cn.jeeweb.common.mvc.entity.tree.TreeSortUtil;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.QueryPropertyPreFilter;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.ObjectUtils;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\n\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.HashMap;\r\nimport java.util.List;\r\nimport java.util.Map;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n\r\n    @Autowired\r\n    private I${entityName?cap_first}Service ${entityName?uncap_first}Service;\r\n\r\n\r\n    @GetMapping\r\n    @RequiresMethodPermissions(&quot;view&quot;)\r\n    public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n        return displayModelAndView(&quot;list&quot;);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n    @PageableDefaults(sort = &quot;id=desc&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,\r\n                          HttpServletResponse response) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n        // 预处理\r\n        QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?uncap_first}Service.list(queryable,entityWrapper));\r\n        String content = JSON.toJSONString(pagejson, filter);\r\n        StringUtils.printJson(response,content);\r\n    }\r\n\r\n    @GetMapping(value = &quot;add&quot;)\r\n    public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n        model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n        return displayModelAndView (&quot;edit&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;add&quot;)\r\n    @Log(logType = LogType.INSERT)\r\n    @RequiresMethodPermissions(&quot;add&quot;)\r\n    public Response add(${entityName?cap_first} entity, BindingResult result,\r\n                           HttpServletRequest request, HttpServletResponse response) {\r\n        // 验证错误\r\n        this.checkError(entity,result);\r\n        ${entityName?uncap_first}Service.insert(entity);\r\n        return Response.ok(&quot;添加成功&quot;);\r\n    }\r\n\r\n    @GetMapping(value = &quot;{id}/update&quot;)\r\n    public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n                               HttpServletResponse response) {\r\n        ${entityName?cap_first} entity = ${entityName?uncap_first}Service.selectById(id);\r\n        model.addAttribute(&quot;data&quot;, entity);\r\n        return displayModelAndView (&quot;edit&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;{id}/update&quot;)\r\n    @Log(logType = LogType.UPDATE)\r\n    @RequiresMethodPermissions(&quot;update&quot;)\r\n    public Response update(${entityName?cap_first} entity, BindingResult result,\r\n                           HttpServletRequest request, HttpServletResponse response) {\r\n        // 验证错误\r\n        this.checkError(entity,result);\r\n        ${entityName?uncap_first}Service.insertOrUpdate(entity);\r\n        return Response.ok(&quot;更新成功&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;{id}/delete&quot;)\r\n    @Log(logType = LogType.DELETE)\r\n    @RequiresMethodPermissions(&quot;delete&quot;)\r\n    public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n        ${entityName?uncap_first}Service.deleteById(id);\r\n        return Response.ok(&quot;删除成功&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;batch/delete&quot;)\r\n    @Log(logType = LogType.DELETE)\r\n    @RequiresMethodPermissions(&quot;delete&quot;)\r\n    public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n        List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n        ${entityName?uncap_first}Service.deleteBatchIds(idList);\r\n        return Response.ok(&quot;删除成功&quot;);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;treeData&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void treeData(Queryable queryable,\r\n                         @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid,\r\n                         @RequestParam(value = &quot;async&quot;, required = false, defaultValue = &quot;false&quot;) boolean async,\r\n                         HttpServletRequest request, HttpServletResponse response) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t.&quot;);\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = null;\r\n        if (!async) { // 非异步 查自己和子子孙孙\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sort(treeNodeList).async(treeNodeList);\r\n        } else { // 异步模式只查自己\r\n            // queryable.addCondition(&quot;parentId&quot;, nodeid);\r\n            if (ObjectUtils.isNullOrEmpty(nodeid)) {\r\n                // 判断的应该是多个OR条件\r\n                entityWrapper.isNull(&quot;parentId&quot;);\r\n            } else {\r\n                entityWrapper.eq(&quot;parentId&quot;, nodeid);\r\n            }\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sync(treeNodeList);\r\n        }\r\n        PropertyPreFilterable propertyPreFilterable = new QueryPropertyPreFilter();\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;, &quot;name&quot;, &quot;expanded&quot;, &quot;hasChildren&quot;, &quot;leaf&quot;, &quot;loaded&quot;, &quot;level&quot;,\r\n                &quot;parentId&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;${entityName?cap_first}&gt;(treeNodeList);\r\n        String content = JSON.toJSONString(pagejson);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;ajaxTreeList&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void ajaxTreeList(Queryable queryable,\r\n                              @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid,\r\n                              @RequestParam(value = &quot;async&quot;, required = false, defaultValue = &quot;false&quot;) boolean async,\r\n                              HttpServletRequest request, HttpServletResponse response, PropertyPreFilterable propertyPreFilterable)\r\n            throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t&quot;);\r\n\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = null;\r\n        if (!async) { // 非异步 查自己和子子孙孙\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sort(treeNodeList).async(treeNodeList);\r\n        } else { // 异步模式只查自己\r\n            // queryable.addCondition(&quot;parentId&quot;, nodeid);\r\n            if (ObjectUtils.isNullOrEmpty(nodeid)) {\r\n                // 判断的应该是多个OR条件\r\n                entityWrapper.isNull(&quot;parentId&quot;);\r\n            } else {\r\n                entityWrapper.eq(&quot;parentId&quot;, nodeid);\r\n            }\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sync(treeNodeList);\r\n        }\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;, &quot;expanded&quot;, &quot;hasChildren&quot;, &quot;leaf&quot;, &quot;loaded&quot;, &quot;level&quot;, &quot;parentId&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;${entityName?cap_first}&gt;(treeNodeList);\r\n        String content = JSON.toJSONString(pagejson);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;bootstrapTreeData&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void bootstrapTreeData(Queryable queryable,\r\n                                   @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid, HttpServletRequest request,\r\n                                   HttpServletResponse response, PropertyPreFilterable propertyPreFilterable) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t.&quot;);\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n        List&lt;BootstrapTreeNode&gt; bootstrapTreeNodes = BootstrapTreeHelper.create().sort(treeNodeList);\r\n        propertyPreFilterable.addQueryProperty(&quot;text&quot;, &quot;href&quot;, &quot;tags&quot;, &quot;nodes&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        String content = JSON.toJSONString(bootstrapTreeNodes, filter);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n}', '9195cfbe657640f09bbe7496a20a4772', '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('74f91057a36f4a279b2d838582e8e6a0', '服务接口', 'iservice', '1', 'cn.jeewe.bbs.service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.ICommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ICommonService&lt;${entityName?cap_first}&gt; {\r\n\r\n}', '67f7f85896dc4755b9f2e25888795a54', 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('7edd1b301ab445959697f1b38ffa8986', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; async=&quot;true&quot; treeGrid=&quot;true&quot;  expandColumn=&quot;name&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n&lt;#list columns as column&gt;\r\n   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n   &lt;/#if&gt;\r\n&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;add&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#grid\'}:grid&gt;\r\n&lt;% } %&gt;', '72b2a96721894d018840c3be4da92fb9', 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('80a1edcdacc64f0ab74a1856ec8184fe', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n	 &lt;#list columns as column&gt;\r\n       t.${column.columnName}&lt;#if !column.isBaseType&gt; AS &quot;${column.javaField}.id&quot;&lt;/#if&gt;&lt;#if column_has_next&gt;,&lt;/#if&gt;\r\n      &lt;/#list&gt;\r\n	&lt;/sql&gt;\r\n&lt;/mapper&gt;', '67f7f85896dc4755b9f2e25888795a54', '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('81816d7e6da542a19890c535cc7304d6', '数据控制层', 'mapper', '1', 'cn.gov.gzst.[moduleName].mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport com.baomidou.mybatisplus.mapper.BaseMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', null, '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('887ac4a5c4d749368b5d390ae7d0d7b8', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n	 &lt;#list columns as column&gt;\r\n       t.${column.columnName}&lt;#if !column.isBaseType&gt; AS &quot;${column.javaField}.id&quot;&lt;/#if&gt;&lt;#if column_has_next&gt;,&lt;/#if&gt;\r\n      &lt;/#list&gt;\r\n	&lt;/sql&gt;\r\n&lt;/mapper&gt;', null, '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('8887d645f98446fcaef85f939b5fa70b', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n	 &lt;#list columns as column&gt;\r\n       t.${column.columnName}&lt;#if !column.isBaseType&gt; AS &quot;${column.javaField}.id&quot;&lt;/#if&gt;&lt;#if column_has_next&gt;,&lt;/#if&gt;\r\n      &lt;/#list&gt;\r\n	&lt;/sql&gt;\r\n&lt;/mapper&gt;', '79131dfd43054df591fbde71f4ff1082', '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('8a4f76468bcb4c4abdda89801a277ae7', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; async=&quot;true&quot; treeGrid=&quot;true&quot;  expandColumn=&quot;name&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n&lt;#list columns as column&gt;\r\n   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n   &lt;/#if&gt;\r\n&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;add&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#grid\'}:grid&gt;\r\n&lt;% } %&gt;', '9195cfbe657640f09bbe7496a20a4772', 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('8aa52aa2d00a4b14a8df8ea358d9eee2', '服务接口', 'iservice', '1', 'cn.jeewe.bbs.service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.ICommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ICommonService&lt;${entityName?cap_first}&gt; {\r\n\r\n}', '4cd509aa109b45748ff06417eb5175f4', 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('8b162750fff144e4b00c88dde7dd95b9', '服务接口', 'iservice', '1', 'cn.jeeweb.service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.gov.gzst.common.common.service.ITreeCommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ITreeCommonService&lt;${entityName?cap_first},String&gt; {\r\n\r\n}', '9195cfbe657640f09bbe7496a20a4772', 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('8bb99e01b7f44afeab67ac281dbb9d54', '控制器', 'controller', '1', 'cn.jeewe.bbs.controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.bbs.aspectj.annotation.Log;\r\nimport cn.jeeweb.bbs.aspectj.enums.LogType;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.DuplicateValid;\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.http.ValidResponse;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.BeanUtils;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.ui.ModelMap;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n	@Autowired\r\n	private I${entityName?cap_first}Service ${entityName?uncap_first}Service;\r\n\r\n\r\n	@GetMapping\r\n	@RequiresMethodPermissions(&quot;view&quot;)\r\n	public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		return displayModelAndView(&quot;list&quot;);\r\n	}\r\n\r\n	/**\r\n	 * 根据页码和每页记录数，以及查询条件动态加载数据\r\n	 *\r\n	 * @param request\r\n	 * @param response\r\n	 * @throws IOException\r\n	 */\r\n	@RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n	@PageableDefaults(sort = &quot;id=desc&quot;)\r\n	@Log(logType = LogType.SELECT)\r\n	@RequiresMethodPermissions(&quot;list&quot;)\r\n	public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws IOException {\r\n		EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n		propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n		// 预处理\r\n		QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n		SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n		PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?uncap_first}Service.list(queryable,entityWrapper));\r\n		String content = JSON.toJSONString(pagejson, filter);\r\n		StringUtils.printJson(response,content);\r\n	}\r\n\r\n	@GetMapping(value = &quot;add&quot;)\r\n	public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;add&quot;)\r\n	@Log(logType = LogType.INSERT)\r\n	@RequiresMethodPermissions(&quot;add&quot;)\r\n	public Response add(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?uncap_first}Service.insert(entity);\r\n		return Response.ok(&quot;添加成功&quot;);\r\n	}\r\n\r\n	@GetMapping(value = &quot;{id}/update&quot;)\r\n	public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n							   HttpServletResponse response) {\r\n		${entityName?cap_first} ${entityName?cap_first} = ${entityName?uncap_first}Service.selectById(id);\r\n		model.addAttribute(&quot;data&quot;, ${entityName?cap_first});\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/update&quot;)\r\n	@Log(logType = LogType.UPDATE)\r\n	@RequiresMethodPermissions(&quot;update&quot;)\r\n	public Response update(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?uncap_first}Service.insertOrUpdate(entity);\r\n		return Response.ok(&quot;更新成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n		${entityName?uncap_first}Service.deleteById(id);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;batch/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n		List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n		${entityName?uncap_first}Service.deleteBatchIds(idList);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	} \r\n}', '67f7f85896dc4755b9f2e25888795a54', '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('99507df624ad48cdb6ea11542113b908', '服务接口', 'iservice', '1', 'cn.gov.gzst.[moduleName].service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.ICommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ICommonService&lt;${entityName?cap_first}&gt; {\r\n\r\n}', null, 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('9eefa7bb20ed457a958a13b5b36dd653', '服务接口实现', 'ServiceImpl', '1', 'cn.jeewe.bbs.service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.impl.CommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends CommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', '79131dfd43054df591fbde71f4ff1082', '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('9f09b4ac8ba54eb5832ffa3b693788a6', '实体', 'entity', '1', 'cn.gov.gzst.[moduleName].entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mvc.entity.AbstractEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends AbstractEntity&lt;String&gt; {\r\n\r\n    &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.parmaryKey&gt;\r\n    @TableId(value = &quot;${column.columnName}&quot;, type = IdType.UUID)\r\n    &lt;#else&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n    &lt;/#if&gt;\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first};\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaField==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first}){\r\n		this.${column.javaField?uncap_first} = ${column.javaField?uncap_first};\r\n	}\r\n	&lt;/#list&gt;\r\n	\r\n}', null, '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('9f7fcd26e43c45debed3a38bec1476d3', '服务接口', 'iservice', '1', 'cn.gov.gzst.[moduleName].service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.ICommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ICommonService&lt;${entityName?cap_first}&gt; {\r\n\r\n}', null, 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('9f80e39987c34c15b7790119ebace855', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'${entityName?uncap_first}Form\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n	&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot;  modelAttribute=&quot;data&quot;  method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n			&lt;tr&gt;\r\n			 &lt;td class=&quot;width-15 active&quot;&gt;&lt;label class=&quot;pull-right&quot;&gt;上级${functionName}:&lt;/label&gt;&lt;/td&gt;\r\n			 &lt;td class=&quot;width-35&quot;&gt;\r\n				&lt;${r\'#form\'}:treeselect title=&quot;请选择上级${functionName}&quot; path=&quot;parentId&quot; dataUrl=&quot;${r\'${adminPath}\'}/${entityName?lower_case}/treeData&quot; labelName=&quot;parentname&quot; labelValue=&quot;${r\'${data.parent.name}\'}&quot; /&gt;	   \r\n			  &lt;/td&gt;\r\n			  &lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n				  &lt;label&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;${functionName}名称:&lt;/label&gt;\r\n			 &lt;/td&gt;\r\n			 &lt;td class=&quot;width-35&quot; &gt;\r\n				 &lt;${r\'#form\'}:input path=&quot;name&quot; class=&quot;form-control &quot; datatype=&quot;*&quot; nullmsg=&quot;请输入${functionName}名称！&quot; htmlEscape=&quot;false&quot; /&gt;\r\n				 &lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n			 &lt;/td&gt;\r\n			&lt;/tr&gt;\r\n	&lt;#assign index=0 /&gt;\r\n	&lt;#list columns as column&gt;\r\n		&lt;#if column.formable?? &amp;&amp; column.formable&gt;\r\n		&lt;#assign index=index+1 /&gt;\r\n		&lt;#if index%2==1&gt; \r\n			&lt;tr&gt;\r\n		&lt;/#if&gt;\r\n				&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n				  &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n				&lt;/td&gt;\r\n				&lt;td class=&quot;width-35&quot;&gt;\r\n		&lt;#if column.formType == &quot;input&quot;&gt;\r\n					&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n					&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n					&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n		&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n					&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n					&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n					&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n					&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n					&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n					&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;/#if&gt;\r\n					&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n				&lt;/td&gt;\r\n		&lt;#if index%2==0&gt; \r\n			&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;#if index%2==1 &gt; \r\n				&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n				&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n			&lt;/tr&gt;\r\n	&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/${r\'#form\'}:form&gt;\r\n&lt;% } %&gt;', '1e868adeb89f4b1bb93de557c9f7bde5', 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('a85cf2be94ba431282c872b03fae608a', '控制器', 'controller', '1', 'cn.jeeweb.controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.bbs.aspectj.annotation.Log;\r\nimport cn.jeeweb.bbs.aspectj.enums.LogType;\r\nimport cn.jeeweb.bbs.common.bean.ResponseError;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mvc.entity.tree.BootstrapTreeHelper;\r\nimport cn.jeeweb.common.mvc.entity.tree.BootstrapTreeNode;\r\nimport cn.jeeweb.common.mvc.entity.tree.TreeSortUtil;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.QueryPropertyPreFilter;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.ObjectUtils;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.stereotype.Controller;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\n\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.HashMap;\r\nimport java.util.List;\r\nimport java.util.Map;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n\r\n    @Autowired\r\n    private I${entityName?cap_first}Service ${entityName?uncap_first}Service;\r\n\r\n\r\n    @GetMapping\r\n    @RequiresMethodPermissions(&quot;view&quot;)\r\n    public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n        return displayModelAndView(&quot;list&quot;);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n    @PageableDefaults(sort = &quot;id=desc&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,\r\n                          HttpServletResponse response) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n        // 预处理\r\n        QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?uncap_first}Service.list(queryable,entityWrapper));\r\n        String content = JSON.toJSONString(pagejson, filter);\r\n        StringUtils.printJson(response,content);\r\n    }\r\n\r\n    @GetMapping(value = &quot;add&quot;)\r\n    public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n        model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n        return displayModelAndView (&quot;edit&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;add&quot;)\r\n    @Log(logType = LogType.INSERT)\r\n    @RequiresMethodPermissions(&quot;add&quot;)\r\n    public Response add(${entityName?cap_first} entity, BindingResult result,\r\n                           HttpServletRequest request, HttpServletResponse response) {\r\n        // 验证错误\r\n        this.checkError(entity,result);\r\n        ${entityName?uncap_first}Service.insert(entity);\r\n        return Response.ok(&quot;添加成功&quot;);\r\n    }\r\n\r\n    @GetMapping(value = &quot;{id}/update&quot;)\r\n    public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n                               HttpServletResponse response) {\r\n        ${entityName?cap_first} entity = ${entityName?uncap_first}Service.selectById(id);\r\n        model.addAttribute(&quot;data&quot;, entity);\r\n        return displayModelAndView (&quot;edit&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;{id}/update&quot;)\r\n    @Log(logType = LogType.UPDATE)\r\n    @RequiresMethodPermissions(&quot;update&quot;)\r\n    public Response update(${entityName?cap_first} entity, BindingResult result,\r\n                           HttpServletRequest request, HttpServletResponse response) {\r\n        // 验证错误\r\n        this.checkError(entity,result);\r\n        ${entityName?uncap_first}Service.insertOrUpdate(entity);\r\n        return Response.ok(&quot;更新成功&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;{id}/delete&quot;)\r\n    @Log(logType = LogType.DELETE)\r\n    @RequiresMethodPermissions(&quot;delete&quot;)\r\n    public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n        ${entityName?uncap_first}Service.deleteById(id);\r\n        return Response.ok(&quot;删除成功&quot;);\r\n    }\r\n\r\n    @PostMapping(&quot;batch/delete&quot;)\r\n    @Log(logType = LogType.DELETE)\r\n    @RequiresMethodPermissions(&quot;delete&quot;)\r\n    public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n        List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n        ${entityName?uncap_first}Service.deleteBatchIds(idList);\r\n        return Response.ok(&quot;删除成功&quot;);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;treeData&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void treeData(Queryable queryable,\r\n                         @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid,\r\n                         @RequestParam(value = &quot;async&quot;, required = false, defaultValue = &quot;false&quot;) boolean async,\r\n                         HttpServletRequest request, HttpServletResponse response) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t.&quot;);\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = null;\r\n        if (!async) { // 非异步 查自己和子子孙孙\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sort(treeNodeList).async(treeNodeList);\r\n        } else { // 异步模式只查自己\r\n            // queryable.addCondition(&quot;parentId&quot;, nodeid);\r\n            if (ObjectUtils.isNullOrEmpty(nodeid)) {\r\n                // 判断的应该是多个OR条件\r\n                entityWrapper.isNull(&quot;parentId&quot;);\r\n            } else {\r\n                entityWrapper.eq(&quot;parentId&quot;, nodeid);\r\n            }\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sync(treeNodeList);\r\n        }\r\n        PropertyPreFilterable propertyPreFilterable = new QueryPropertyPreFilter();\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;, &quot;name&quot;, &quot;expanded&quot;, &quot;hasChildren&quot;, &quot;leaf&quot;, &quot;loaded&quot;, &quot;level&quot;,\r\n                &quot;parentId&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;${entityName?cap_first}&gt;(treeNodeList);\r\n        String content = JSON.toJSONString(pagejson);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;ajaxTreeList&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void ajaxTreeList(Queryable queryable,\r\n                              @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid,\r\n                              @RequestParam(value = &quot;async&quot;, required = false, defaultValue = &quot;false&quot;) boolean async,\r\n                              HttpServletRequest request, HttpServletResponse response, PropertyPreFilterable propertyPreFilterable)\r\n            throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t&quot;);\r\n\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = null;\r\n        if (!async) { // 非异步 查自己和子子孙孙\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sort(treeNodeList).async(treeNodeList);\r\n        } else { // 异步模式只查自己\r\n            // queryable.addCondition(&quot;parentId&quot;, nodeid);\r\n            if (ObjectUtils.isNullOrEmpty(nodeid)) {\r\n                // 判断的应该是多个OR条件\r\n                entityWrapper.isNull(&quot;parentId&quot;);\r\n            } else {\r\n                entityWrapper.eq(&quot;parentId&quot;, nodeid);\r\n            }\r\n            treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n            TreeSortUtil.create().sync(treeNodeList);\r\n        }\r\n        propertyPreFilterable.addQueryProperty(&quot;id&quot;, &quot;expanded&quot;, &quot;hasChildren&quot;, &quot;leaf&quot;, &quot;loaded&quot;, &quot;level&quot;, &quot;parentId&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;${entityName?cap_first}&gt;(treeNodeList);\r\n        String content = JSON.toJSONString(pagejson);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n    /**\r\n     * 根据页码和每页记录数，以及查询条件动态加载数据\r\n     *\r\n     * @param request\r\n     * @param response\r\n     * @throws IOException\r\n     */\r\n    @RequestMapping(value = &quot;bootstrapTreeData&quot;)\r\n    @Log(logType = LogType.SELECT)\r\n    @RequiresMethodPermissions(&quot;list&quot;)\r\n    public void bootstrapTreeData(Queryable queryable,\r\n                                   @RequestParam(value = &quot;nodeid&quot;, required = false, defaultValue = &quot;&quot;) String nodeid, HttpServletRequest request,\r\n                                   HttpServletResponse response, PropertyPreFilterable propertyPreFilterable) throws IOException {\r\n        EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;${entityName?cap_first}&gt;(entityClass);\r\n        entityWrapper.setTableAlias(&quot;t.&quot;);\r\n        List&lt;${entityName?cap_first}&gt; treeNodeList = ${entityName?uncap_first}Service.selectTreeList(queryable, entityWrapper);\r\n        List&lt;BootstrapTreeNode&gt; bootstrapTreeNodes = BootstrapTreeHelper.create().sort(treeNodeList);\r\n        propertyPreFilterable.addQueryProperty(&quot;text&quot;, &quot;href&quot;, &quot;tags&quot;, &quot;nodes&quot;);\r\n        SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n        String content = JSON.toJSONString(bootstrapTreeNodes, filter);\r\n        StringUtils.printJson(response, content);\r\n    }\r\n\r\n}', '72b2a96721894d018840c3be4da92fb9', '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('a9235e54b9924da8801a4cd4f910ef0a', '控制器', 'controller', '1', 'cn.jeewe.bbs.controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.bbs.aspectj.annotation.Log;\r\nimport cn.jeeweb.bbs.aspectj.enums.LogType;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.DuplicateValid;\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.http.ValidResponse;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.BeanUtils;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.ui.ModelMap;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n	@Autowired\r\n	private I${entityName?cap_first}Service ${entityName?uncap_first}Service;\r\n\r\n\r\n	@GetMapping\r\n	@RequiresMethodPermissions(&quot;view&quot;)\r\n	public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		return displayModelAndView(&quot;list&quot;);\r\n	}\r\n\r\n	/**\r\n	 * 根据页码和每页记录数，以及查询条件动态加载数据\r\n	 *\r\n	 * @param request\r\n	 * @param response\r\n	 * @throws IOException\r\n	 */\r\n	@RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n	@PageableDefaults(sort = &quot;id=desc&quot;)\r\n	@Log(logType = LogType.SELECT)\r\n	@RequiresMethodPermissions(&quot;list&quot;)\r\n	public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws IOException {\r\n		EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n		propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n		// 预处理\r\n		QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n		SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n		PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?uncap_first}Service.list(queryable,entityWrapper));\r\n		String content = JSON.toJSONString(pagejson, filter);\r\n		StringUtils.printJson(response,content);\r\n	}\r\n\r\n	@GetMapping(value = &quot;add&quot;)\r\n	public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;add&quot;)\r\n	@Log(logType = LogType.INSERT)\r\n	@RequiresMethodPermissions(&quot;add&quot;)\r\n	public Response add(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?uncap_first}Service.insert(entity);\r\n		return Response.ok(&quot;添加成功&quot;);\r\n	}\r\n\r\n	@GetMapping(value = &quot;{id}/update&quot;)\r\n	public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n							   HttpServletResponse response) {\r\n		${entityName?cap_first} ${entityName?cap_first} = ${entityName?uncap_first}Service.selectById(id);\r\n		model.addAttribute(&quot;data&quot;, ${entityName?cap_first});\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/update&quot;)\r\n	@Log(logType = LogType.UPDATE)\r\n	@RequiresMethodPermissions(&quot;update&quot;)\r\n	public Response update(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?uncap_first}Service.insertOrUpdate(entity);\r\n		return Response.ok(&quot;更新成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n		${entityName?uncap_first}Service.deleteById(id);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;batch/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n		List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n		${entityName?uncap_first}Service.deleteBatchIds(idList);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	} \r\n}', '79131dfd43054df591fbde71f4ff1082', '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('ab38dd1b65bb4d019e0c8d37e9247f78', '实体', 'entity', '1', 'cn.jeewe.bbs.entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mvc.entity.AbstractEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends AbstractEntity&lt;String&gt; {\r\n\r\n    &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.parmaryKey&gt;\r\n    @TableId(value = &quot;${column.columnName}&quot;, type = IdType.UUID)\r\n    &lt;#else&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n    &lt;/#if&gt;\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first};\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaField==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField?uncap_first}){\r\n		this.${column.javaField?uncap_first} = ${column.javaField?uncap_first};\r\n	}\r\n	&lt;/#list&gt;\r\n	\r\n}', '79131dfd43054df591fbde71f4ff1082', '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('acd2275e10b74cac8c49eb8557350eea', '服务接口实现', 'ServiceImpl', '1', 'cn.gov.gzst.[moduleName].service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.impl.CommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends CommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', null, '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('b81c2dafb7304c82b1ea70e60e0464ee', '服务接口实现', 'ServiceImpl', '1', 'cn.gov.gzst.[moduleName].service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.impl.CommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends CommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', null, '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('bb9f44e3f3c3437c83711c21a892b772', '实体', 'entity', '1', 'cn.jeeweb.entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.entity.TreeEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends TreeEntity&lt;${entityName?cap_first}&gt; {\r\n\r\n   &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.javaField!=\'id\'&amp;&amp;column.javaField!=\'name\'&amp;&amp; column.javaField!=\'parentId\'&amp;&amp; column.javaField!=\'parentIds\'&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField};\r\n	&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	 &lt;#if column.javaField!=\'id\'&amp;&amp;column.javaField!=\'name\'&amp;&amp; column.javaField!=\'parentId\'&amp;&amp; column.javaField!=\'parentIds\'&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return: ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param: ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField}){\r\n		this.${column.javaField} = ${column.javaField};\r\n	}\r\n	&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	\r\n}', '1e868adeb89f4b1bb93de557c9f7bde5', '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('bd4444895f3b46b1b80542f9bd85d4b5', '控制器', 'controller', '1', 'cn.gov.gzst.[moduleName].controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.bbs.aspectj.annotation.Log;\r\nimport cn.jeeweb.bbs.aspectj.enums.LogType;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.DuplicateValid;\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.http.ValidResponse;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.BeanUtils;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.ui.ModelMap;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n	@Autowired\r\n	private I${entityName?cap_first}Service ${entityName?cap_first}Service;\r\n\r\n\r\n	@GetMapping\r\n	@RequiresMethodPermissions(&quot;view&quot;)\r\n	public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		return displayModelAndView(&quot;list&quot;);\r\n	}\r\n\r\n	/**\r\n	 * 根据页码和每页记录数，以及查询条件动态加载数据\r\n	 *\r\n	 * @param request\r\n	 * @param response\r\n	 * @throws IOException\r\n	 */\r\n	@RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n	@PageableDefaults(sort = &quot;id=desc&quot;)\r\n	@Log(logType = LogType.SELECT)\r\n	@RequiresMethodPermissions(&quot;list&quot;)\r\n	public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws IOException {\r\n		EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n		propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n		// 预处理\r\n		QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n		SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n		PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?cap_first}Service.list(queryable,entityWrapper));\r\n		String content = JSON.toJSONString(pagejson, filter);\r\n		StringUtils.printJson(response,content);\r\n	}\r\n\r\n	@GetMapping(value = &quot;add&quot;)\r\n	public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;add&quot;)\r\n	@Log(logType = LogType.INSERT)\r\n	@RequiresMethodPermissions(&quot;add&quot;)\r\n	public Response add(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?cap_first}Service.insert(entity);\r\n		return Response.ok(&quot;添加成功&quot;);\r\n	}\r\n\r\n	@GetMapping(value = &quot;{id}/update&quot;)\r\n	public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n							   HttpServletResponse response) {\r\n		${entityName?cap_first} ${entityName?cap_first} = ${entityName?cap_first}Service.selectById(id);\r\n		model.addAttribute(&quot;data&quot;, ${entityName?cap_first});\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/update&quot;)\r\n	@Log(logType = LogType.UPDATE)\r\n	@RequiresMethodPermissions(&quot;update&quot;)\r\n	public Response update(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?cap_first}Service.insertOrUpdate(entity);\r\n		return Response.ok(&quot;更新成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n		${entityName?cap_first}Service.deleteById(id);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;batch/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n		List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n		${entityName?cap_first}Service.deleteBatchIds(idList);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	} \r\n}', null, '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('c2ddc6c7732541f7b65204d9d4eaf980', '控制器', 'controller', '1', 'cn.jeewe.bbs.controller', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.school.aspectj.annotation.Log;\r\nimport cn.jeeweb.school.aspectj.enums.LogType;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.jeeweb.common.http.DuplicateValid;\r\nimport cn.jeeweb.common.http.PageResponse;\r\nimport cn.jeeweb.common.http.Response;\r\nimport cn.jeeweb.common.http.ValidResponse;\r\nimport cn.jeeweb.common.mvc.annotation.ViewPrefix;\r\nimport cn.jeeweb.common.mvc.controller.BaseBeanController;\r\nimport cn.jeeweb.common.mybatis.mvc.wrapper.EntityWrapper;\r\nimport cn.jeeweb.common.query.annotation.PageableDefaults;\r\nimport cn.jeeweb.common.query.data.PropertyPreFilterable;\r\nimport cn.jeeweb.common.query.data.Queryable;\r\nimport cn.jeeweb.common.query.utils.QueryableConvertUtils;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresMethodPermissions;\r\nimport cn.jeeweb.common.security.shiro.authz.annotation.RequiresPathPermission;\r\nimport cn.jeeweb.common.utils.StringUtils;\r\nimport com.alibaba.fastjson.JSON;\r\nimport com.alibaba.fastjson.serializer.SerializeFilter;\r\nimport org.springframework.beans.BeanUtils;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.ui.Model;\r\nimport org.springframework.ui.ModelMap;\r\nimport org.springframework.validation.BindingResult;\r\nimport org.springframework.web.bind.annotation.*;\r\nimport org.springframework.web.servlet.ModelAndView;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\n\r\n/**\r\n * All rights Reserved, Designed By www.jeeweb.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}控制器\r\n * @description: ${functionDesc}控制器\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.jeeweb.cn Inc. All rights reserved.\r\n */\r\n\r\n@RestController\r\n@RequestMapping(&quot;${entityName?cap_first}&quot;)\r\n@ViewPrefix(&quot;modules/${entityName?cap_first}&quot;)\r\n@RequiresPathPermission(&quot;${entityName?cap_first}&quot;)\r\n@Log(title = &quot;${functionName}&quot;)\r\npublic class ${entityName?cap_first}Controller extends BaseBeanController&lt;${entityName?cap_first}&gt; {\r\n	@Autowired\r\n	private I${entityName?cap_first}Service ${entityName?uncap_first}Service;\r\n\r\n\r\n	@GetMapping\r\n	@RequiresMethodPermissions(&quot;view&quot;)\r\n	public ModelAndView list(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		return displayModelAndView(&quot;list&quot;);\r\n	}\r\n\r\n	/**\r\n	 * 根据页码和每页记录数，以及查询条件动态加载数据\r\n	 *\r\n	 * @param request\r\n	 * @param response\r\n	 * @throws IOException\r\n	 */\r\n	@RequestMapping(value = &quot;ajaxList&quot;, method = { RequestMethod.GET, RequestMethod.POST })\r\n	@PageableDefaults(sort = &quot;id=desc&quot;)\r\n	@Log(logType = LogType.SELECT)\r\n	@RequiresMethodPermissions(&quot;list&quot;)\r\n	public void ajaxList(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws IOException {\r\n		EntityWrapper&lt;${entityName?cap_first}&gt; entityWrapper = new EntityWrapper&lt;&gt;(entityClass);\r\n		propertyPreFilterable.addQueryProperty(&quot;id&quot;);\r\n		// 预处理\r\n		QueryableConvertUtils.convertQueryValueToEntityValue(queryable, entityClass);\r\n		SerializeFilter filter = propertyPreFilterable.constructFilter(entityClass);\r\n		PageResponse&lt;${entityName?cap_first}&gt; pagejson = new PageResponse&lt;&gt;(${entityName?uncap_first}Service.list(queryable,entityWrapper));\r\n		String content = JSON.toJSONString(pagejson, filter);\r\n		StringUtils.printJson(response,content);\r\n	}\r\n\r\n	@GetMapping(value = &quot;add&quot;)\r\n	public ModelAndView add(Model model, HttpServletRequest request, HttpServletResponse response) {\r\n		model.addAttribute(&quot;data&quot;, new ${entityName?cap_first}());\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;add&quot;)\r\n	@Log(logType = LogType.INSERT)\r\n	@RequiresMethodPermissions(&quot;add&quot;)\r\n	public Response add(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?uncap_first}Service.insert(entity);\r\n		return Response.ok(&quot;添加成功&quot;);\r\n	}\r\n\r\n	@GetMapping(value = &quot;{id}/update&quot;)\r\n	public ModelAndView update(@PathVariable(&quot;id&quot;) String id, Model model, HttpServletRequest request,\r\n							   HttpServletResponse response) {\r\n		${entityName?cap_first} ${entityName?cap_first} = ${entityName?uncap_first}Service.selectById(id);\r\n		model.addAttribute(&quot;data&quot;, ${entityName?cap_first});\r\n		return displayModelAndView (&quot;edit&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/update&quot;)\r\n	@Log(logType = LogType.UPDATE)\r\n	@RequiresMethodPermissions(&quot;update&quot;)\r\n	public Response update(${entityName?cap_first} entity, BindingResult result,\r\n						   HttpServletRequest request, HttpServletResponse response) {\r\n		// 验证错误\r\n		this.checkError(entity,result);\r\n		${entityName?uncap_first}Service.insertOrUpdate(entity);\r\n		return Response.ok(&quot;更新成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;{id}/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response delete(@PathVariable(&quot;id&quot;) String id) {\r\n		${entityName?uncap_first}Service.deleteById(id);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	}\r\n\r\n	@PostMapping(&quot;batch/delete&quot;)\r\n	@Log(logType = LogType.DELETE)\r\n	@RequiresMethodPermissions(&quot;delete&quot;)\r\n	public Response batchDelete(@RequestParam(&quot;ids&quot;) String[] ids) {\r\n		List&lt;String&gt; idList = java.util.Arrays.asList(ids);\r\n		${entityName?uncap_first}Service.deleteBatchIds(idList);\r\n		return Response.ok(&quot;删除成功&quot;);\r\n	} \r\n}', '4cd509aa109b45748ff06417eb5175f4', '[entityName]Controller.java', '1', '0');
  INSERT INTO `generator_template` VALUES ('c90320046fd749aaa26dda17425bfabc', '数据控制层', 'mapper', '1', 'cn.gov.gzst.[moduleName].mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport com.baomidou.mybatisplus.mapper.BaseMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', null, '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('cbcad059fff941c48ebb4416f5e8c4b6', '服务接口实现', 'ServiceImpl', '1', 'cn.jeeweb.service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.gov.gzst.common.common.service.impl.TreeCommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends TreeCommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}, String&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', '1e868adeb89f4b1bb93de557c9f7bde5', '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('cfd7972d353348ff9460dcf6fcba11e1', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'messageTemplateForm\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot; modelAttribute=&quot;data&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n	    &lt;#assign index=0 /&gt;\r\n		&lt;#list columns as column&gt;\r\n			&lt;#if column.isForm?? &amp;&amp; column.isForm&gt;\r\n			&lt;#assign index=index+1 /&gt;\r\n			&lt;#if index%2==1&gt; \r\n				&lt;tr&gt;\r\n			&lt;/#if&gt;\r\n					&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n		              &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n		            &lt;/td&gt;\r\n					&lt;td class=&quot;width-35&quot;&gt;\r\n			&lt;#if column.formType == &quot;input&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n						&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n						&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n			&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n						&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n						&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n						&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n						&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n						&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n			&lt;/#if&gt;\r\n						&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n					&lt;/td&gt;\r\n			&lt;#if index%2==0&gt; \r\n				&lt;/tr&gt;\r\n			&lt;/#if&gt;\r\n			&lt;/#if&gt;\r\n		&lt;/#list&gt;\r\n		&lt;#if index%2==1 &gt; \r\n					&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n		   			&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n		  		&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/${r\'#form\'}:form&gt;\r\n&lt;% } %&gt;', null, 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('d0e2ab55b99f40bebca9c0e1379b1dea', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n		t.id,\r\n		t.name,\r\n		t.parent_id,\r\n		t.parent_ids,\r\n		t.parent_id AS parent_id,\r\n		p.name AS parent_name,\r\n	   &lt;#list columns as column&gt;\r\n	   &lt;#if column.columnName!=\'id\'&amp;&amp;column.columnName!=\'name\'&amp;&amp; column.columnName!=\'parent_id\'&amp;&amp; column.columnName!=\'parent_ids\'&gt;\r\n	    t.${column.columnName}&lt;#if !column.isBaseType&gt; AS \'${column.javaField}.id\'&lt;/#if&gt;,\r\n	   &lt;/#if&gt;\r\n	   &lt;/#list&gt;\r\n	   (select count(*) from ${tableName} s\r\n		WHERE s.parent_id=t.id) as\r\n		hasChildren\r\n	&lt;/sql&gt;\r\n	&lt;sql id=&quot;parentJoins&quot;&gt;\r\n		LEFT JOIN ${tableName} p ON p.id = t.parent_id\r\n	&lt;/sql&gt;\r\n    &lt;!-- 查找通过ID查找树信息 --&gt;\r\n	&lt;select id=&quot;selectByTreeId&quot; resultType=&quot;${entity.targetPackage}.${entityName?cap_first}&quot;\r\n		parameterType=&quot;java.lang.String&quot;&gt;\r\n		select\r\n		&lt;include refid=&quot;Base_Column_List&quot; /&gt;\r\n		from ${tableName} t\r\n		&lt;include refid=&quot;parentJoins&quot; /&gt;\r\n		where t.id = ${&quot;#&quot;}{id,jdbcType=VARCHAR}\r\n	&lt;/select&gt;\r\n	\r\n	&lt;!-- 查找树列表 --&gt;\r\n	&lt;select id=&quot;selectTreeList&quot; resultType=&quot;${entity.targetPackage}.${entityName?cap_first}&quot;&gt;\r\n		select\r\n		&lt;include refid=&quot;Base_Column_List&quot; /&gt;\r\n		from ${tableName} t\r\n		&lt;include refid=&quot;parentJoins&quot; /&gt;\r\n		&lt;where&gt;\r\n			${&quot;$&quot;}{ew.sqlSegment}\r\n		&lt;/where&gt;\r\n	&lt;/select&gt;\r\n\r\n	&lt;!-- 更新子树 --&gt;\r\n	&lt;update id=&quot;updateSunTreeParentIds&quot;&gt;\r\n		update ${tableName} set parent_ids=\r\n		CONCAT(${&quot;#&quot;}{newParentIds},substring(parent_ids,\r\n		length(${&quot;#&quot;}{oldParentIds})+1,length(parent_ids)+1))\r\n		where parent_ids like concat(${&quot;#&quot;}{oldParentIds}, \'%\')\r\n	&lt;/update&gt;\r\n	\r\n	&lt;!-- 删除子树 --&gt;\r\n	&lt;delete id=&quot;deleteSunTree&quot; parameterType=&quot;java.lang.String&quot;&gt;\r\n		delete from ${tableName}\r\n		where parent_ids like concat(${&quot;#&quot;}{oldParentIds}, \'%\')\r\n	&lt;/delete&gt;\r\n  \r\n&lt;/mapper&gt;', '9195cfbe657640f09bbe7496a20a4772', '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('d45ce8772bd84574964914445df88af2', '服务接口实现', 'ServiceImpl', '1', 'cn.gov.gzst.[moduleName].service.impl', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.impl.CommonServiceImpl;\r\nimport ${iservice.targetPackage}.I${entityName?cap_first}Service;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport ${mapper.targetPackage}.${entityName?cap_first}Mapper;\r\nimport org.springframework.stereotype.Service;\r\nimport org.springframework.transaction.annotation.Transactional;\r\n\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务实现\r\n* @description: ${functionDesc}服务实现\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\n@Transactional\r\n@Service(&quot;${entityName?lower_case}Service&quot;)\r\npublic class ${entityName?cap_first}ServiceImpl  extends CommonServiceImpl&lt;${entityName?cap_first}Mapper,${entityName?cap_first}&gt; implements  I${entityName?cap_first}Service {\r\n\r\n}', null, '[entityName]ServiceImpl.java', '1', '3');
  INSERT INTO `generator_template` VALUES ('d911f0fb2a8940eab3785b7d328c1d96', '实体', 'entity', '1', 'cn.jeeweb.entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.entity.TreeEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends TreeEntity&lt;${entityName?cap_first}&gt; {\r\n\r\n   &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.javaField!=\'id\'&amp;&amp;column.javaField!=\'name\'&amp;&amp; column.javaField!=\'parentId\'&amp;&amp; column.javaField!=\'parentIds\'&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField};\r\n	&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	 &lt;#if column.javaField!=\'id\'&amp;&amp;column.javaField!=\'name\'&amp;&amp; column.javaField!=\'parentId\'&amp;&amp; column.javaField!=\'parentIds\'&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return: ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param: ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField}){\r\n		this.${column.javaField} = ${column.javaField};\r\n	}\r\n	&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	\r\n}', '9195cfbe657640f09bbe7496a20a4772', '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('d97703c9e6124d649291a0730ab593e4', '视图编辑模版', 'viewEidt', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/form.html\', {title: \'${functionName}\', formId: \'${entityName?uncap_first}Form\', bodyClass: \'white-bg\', libs: \'\'}){ %&gt;\r\n	&lt;${r\'#form\'}:form id=&quot;${entityName?uncap_first}Form&quot;  modelAttribute=&quot;data&quot;  method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;\r\n		&lt;${r\'#form\'}:hidden path=&quot;id&quot;/&gt;\r\n		&lt;table  class=&quot;table table-bordered  table-condensed dataTables-example dataTable no-footer&quot;&gt;\r\n		   &lt;tbody&gt;\r\n			&lt;tr&gt;\r\n			 &lt;td class=&quot;width-15 active&quot;&gt;&lt;label class=&quot;pull-right&quot;&gt;上级${functionName}:&lt;/label&gt;&lt;/td&gt;\r\n			 &lt;td class=&quot;width-35&quot;&gt;\r\n				&lt;${r\'#form\'}:treeselect title=&quot;请选择上级${functionName}&quot; path=&quot;parentId&quot; dataUrl=&quot;${r\'${adminPath}\'}/${entityName?lower_case}/treeData&quot; labelName=&quot;parentname&quot; labelValue=&quot;${r\'${data.parent.name}\'}&quot; /&gt;	   \r\n			  &lt;/td&gt;\r\n			  &lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n				  &lt;label&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;${functionName}名称:&lt;/label&gt;\r\n			 &lt;/td&gt;\r\n			 &lt;td class=&quot;width-35&quot; &gt;\r\n				 &lt;${r\'#form\'}:input path=&quot;name&quot; class=&quot;form-control &quot; datatype=&quot;*&quot; nullmsg=&quot;请输入${functionName}名称！&quot; htmlEscape=&quot;false&quot; /&gt;\r\n				 &lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n			 &lt;/td&gt;\r\n			&lt;/tr&gt;\r\n	&lt;#assign index=0 /&gt;\r\n	&lt;#list columns as column&gt;\r\n		&lt;#if column.formable?? &amp;&amp; column.formable&gt;\r\n		&lt;#assign index=index+1 /&gt;\r\n		&lt;#if index%2==1&gt; \r\n			&lt;tr&gt;\r\n		&lt;/#if&gt;\r\n				&lt;td  class=&quot;width-15 active text-right&quot;&gt;	\r\n				  &lt;label&gt;&lt;#if column.nullable??&amp;&amp;!column.nullable&gt;&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/#if&gt;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;:&lt;/label&gt;\r\n				&lt;/td&gt;\r\n				&lt;td class=&quot;width-35&quot;&gt;\r\n		&lt;#if column.formType == &quot;input&quot;&gt;\r\n					&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;textarea&quot;&gt;\r\n					&lt;${r\'#form\'}:textarea path=&quot;${column.javaField}&quot; rows=&quot;4&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;radiobox&quot;&gt;\r\n					&lt;${r\'#form\'}:radiobuttons path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  cssClass=&quot;i-checks required&quot;/&gt;\r\n		&lt;#elseif column.formType == &quot;select&quot;&gt;\r\n					&lt;${r\'#form\'}:select path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;checkbox&quot;&gt;\r\n					&lt;${r\'#form\'}:checkboxes path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt;dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;dateselect&quot;&gt;\r\n					&lt;${r\'#form\'}:input path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control layer-date&quot; placeholder=&quot;YYYY-MM-DD hh:mm:ss&quot; onclick=&quot;laydate({istime: true, format: \'YYYY-MM-DD hh:mm:ss\'})&quot;   &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;editor&quot;&gt;\r\n					&lt;${r\'#form\'}:editor path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;fileinput&quot;&gt;\r\n					&lt;${r\'#form\'}:fileinput path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;#elseif column.formType == &quot;avatarinput&quot;&gt;\r\n					&lt;${r\'#form\'}:fileinput showType=&quot;avatar&quot; fileInputWidth=&quot;100px&quot;  fileInputHeight=&quot;100px&quot;  path=&quot;${column.javaField}&quot; htmlEscape=&quot;false&quot; class=&quot;form-control&quot;  &lt;#if column.regexValid??&amp;&amp;column.regexValid!=&quot;&quot;&gt;datatype=&quot;${column.regexValid}&quot;&lt;#else&gt;&lt;#if column.validType??&amp;&amp;column.validType!=&quot;&quot;&gt;datatype=&quot;${column.validType}&lt;#if column.validType==&quot;s&quot;||column.validType==&quot;n&quot;&gt;&lt;#if column.minSize??&gt;${column.minSize}&lt;#if column.maxSize??&gt;-${column.maxSize}&lt;#else&gt;-${column.columnSize}&lt;/#if&gt;&lt;/#if&gt;&lt;/#if&gt;&quot;&lt;/#if&gt;&lt;/#if&gt;  &lt;#if column.nullmsg??&amp;&amp;column.nullmsg!=&quot;&quot;&gt;nullmsg=&quot;${column.nullmsg}&quot;&lt;/#if&gt;  /&gt;\r\n		&lt;/#if&gt;\r\n					&lt;label class=&quot;Validform_checktip&quot;&gt;&lt;/label&gt;\r\n				&lt;/td&gt;\r\n		&lt;#if index%2==0&gt; \r\n			&lt;/tr&gt;\r\n		&lt;/#if&gt;\r\n		&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;#if index%2==1 &gt; \r\n				&lt;td class=&quot;width-15 active text-right&quot;&gt;&lt;/td&gt;\r\n				&lt;td class=&quot;width-35&quot; &gt;&lt;/td&gt;\r\n			&lt;/tr&gt;\r\n	&lt;/#if&gt;\r\n		      \r\n		   &lt;/tbody&gt;\r\n		&lt;/table&gt;   \r\n	&lt;/form:form&gt;\r\n&lt;% } %&gt;', '9195cfbe657640f09bbe7496a20a4772', 'edit.html', '1', '6');
  INSERT INTO `generator_template` VALUES ('dd9d57070bcb44a5af5c6d99438d693f', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n	 &lt;#list columns as column&gt;\r\n       t.${column.columnName}&lt;#if !column.isBaseType&gt; AS &quot;${column.javaField}.id&quot;&lt;/#if&gt;&lt;#if column_has_next&gt;,&lt;/#if&gt;\r\n      &lt;/#list&gt;\r\n	&lt;/sql&gt;\r\n&lt;/mapper&gt;', null, '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('e148445bc88d4a1986ab5a784c8cc050', '数据控制层', 'mapper', '1', 'cn.jeeweb.mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.gov.gzst.common.common.mapper.BaseTreeMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseTreeMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', '9195cfbe657640f09bbe7496a20a4772', '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('e1c9a548f13c40e7b96e79c18d271e9d', '数据控制层', 'mapper', '1', 'cn.jeeweb.mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport cn.gov.gzst.common.common.mapper.BaseTreeMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseTreeMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', '1e868adeb89f4b1bb93de557c9f7bde5', '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('e2ae99cdd7f14c319623cb6f02f2be0c', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n	 &lt;#list columns as column&gt;\r\n       t.${column.columnName}&lt;#if !column.isBaseType&gt; AS &quot;${column.javaField}.id&quot;&lt;/#if&gt;&lt;#if column_has_next&gt;,&lt;/#if&gt;\r\n      &lt;/#list&gt;\r\n	&lt;/sql&gt;\r\n&lt;/mapper&gt;', null, '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('e5158eb6fbf04cbdb47b42d303c5e2c3', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n	&lt;#list columns as column&gt;\r\n	   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n		&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n	   &lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;create&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#form\'}:grid&gt;\r\n&lt;% } %&gt;', null, 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('eb1b4849ed494d688ec55899534dce0a', '页面列表模版', 'viewList', '0', '', 'E:\\testgen', '&lt;% layout(\'/layouts/list.html\', {title: \'${functionName}\'}){ %&gt;\r\n&lt;${r\'#grid\'}:grid id=&quot;${entityName?uncap_first}GridId&quot; async=&quot;true&quot; treeGrid=&quot;true&quot;  expandColumn=&quot;name&quot; url=&quot;${entityName?lower_case}/ajaxList&quot;&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.key&quot; hidden=&quot;true&quot;   name=&quot;id&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;sys.common.opt&quot;  name=&quot;opt&quot; formatter=&quot;button&quot; width=&quot;100&quot;/&gt;\r\n	&lt;${r\'#grid\'}:button groupname=&quot;opt&quot; function=&quot;delete&quot; /&gt;\r\n&lt;#list columns as column&gt;\r\n   &lt;#if column.listable&amp;&amp;column.columnName!=\'id\'&gt;\r\n	&lt;${r\'#grid\'}:column label=&quot;&lt;#if column.remarks??&amp;&amp;column.remarks!=&quot;&quot;&gt;${column.remarks}&lt;#else&gt;${column.javaField}&lt;/#if&gt;&quot;  name=&quot;${column.javaField}&quot; &lt;#if column.queryable&gt; query=&quot;true&quot; &lt;#if column.queryModel??&amp;&amp;column.queryModel!=&quot;&quot;&gt; queryMode=&quot;${column.queryModel}&quot;&lt;/#if&gt; &lt;#if column.queryType??&amp;&amp;column.queryType!=&quot;&quot;&gt; condition=&quot;${column.queryType}&quot; &lt;/#if&gt;&lt;/#if&gt;&lt;#if column.dictGroup??&amp;&amp;column.dictGroup!=&quot;&quot;&gt; dict=&quot;${column.dictGroup}&quot;&lt;/#if&gt;/&gt;\r\n   &lt;/#if&gt;\r\n&lt;/#list&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;add&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;update&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;delete&quot;/&gt;\r\n	\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;search&quot;/&gt;\r\n	&lt;${r\'#grid\'}:toolbar function=&quot;reset&quot;/&gt;\r\n&lt;/${r\'#grid\'}:grid&gt;\r\n&lt;% } %&gt;', '1e868adeb89f4b1bb93de557c9f7bde5', 'list.html', '1', '7');
  INSERT INTO `generator_template` VALUES ('ed6be1e8efeb4afab218f5c176d45836', '实体', 'entity', '1', 'cn.jeeweb.entity', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.entity.TreeEntity;\r\nimport com.baomidou.mybatisplus.annotations.TableId;\r\nimport com.baomidou.mybatisplus.annotations.TableName;\r\nimport com.baomidou.mybatisplus.enums.IdType;\r\nimport com.baomidou.mybatisplus.annotations.TableField;\r\nimport java.util.Date;\r\n\r\n/**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}实体\r\n * @description: ${functionDesc}实体\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n\r\n@TableName(&quot;${tableName}&quot;)\r\n@SuppressWarnings(&quot;serial&quot;)\r\npublic class ${entityName?cap_first} extends TreeEntity&lt;${entityName?cap_first}&gt; {\r\n\r\n   &lt;#list columns as column&gt;\r\n    /**${column.remarks}*/\r\n    &lt;#if column.javaField!=\'id\'&amp;&amp;column.javaField!=\'name\'&amp;&amp; column.javaField!=\'parentId\'&amp;&amp; column.javaField!=\'parentIds\'&gt;\r\n    @TableField(value = &quot;${column.columnName}&quot;&lt;#if !column.isBaseType&gt;,el=&quot;${column.javaField}.id&quot;&lt;/#if&gt;)\r\n	private &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField};\r\n	&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	\r\n	&lt;#list columns as column&gt;\r\n	 &lt;#if column.javaField!=\'id\'&amp;&amp;column.javaField!=\'name\'&amp;&amp; column.javaField!=\'parentId\'&amp;&amp; column.javaField!=\'parentIds\'&gt;\r\n	/**\r\n	 * 获取  ${column.javaField}\r\n	 *@return: ${column.javaType}  ${column.remarks}\r\n	 */\r\n	public &lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; get${column.javaField?cap_first}(){\r\n		return this.${column.javaField};\r\n	}\r\n\r\n	/**\r\n	 * 设置  ${column.javaField}\r\n	 *@param: ${column.javaField}  ${column.remarks}\r\n	 */\r\n	public void set${column.javaField?cap_first}(&lt;#if column.javaType==\'this\'&gt;${entityName?cap_first}&lt;#else&gt;${column.javaType}&lt;/#if&gt; ${column.javaField}){\r\n		this.${column.javaField} = ${column.javaField};\r\n	}\r\n	&lt;/#if&gt;\r\n	&lt;/#list&gt;\r\n	\r\n}', '72b2a96721894d018840c3be4da92fb9', '[entityName].java', '1', '1');
  INSERT INTO `generator_template` VALUES ('f127aabc14c946a2825707b1285b3aee', '数据控制层', 'mapper', '1', 'cn.gov.gzst.[moduleName].mapper', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\nimport com.baomidou.mybatisplus.mapper.BaseMapper;\r\nimport org.apache.ibatis.annotations.Mapper;\r\n\r\n /**\r\n * All rights Reserved, Designed By www.gzst.gov.cn\r\n *\r\n * @version V1.0\r\n * @package ${targetPackage}\r\n * @title: ${functionName}数据库控制层接口\r\n * @description: ${functionDesc}数据库控制层接口\r\n * @author: ${functionAuthor}\r\n * @date: ${time}\r\n * @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n */\r\n@Mapper\r\npublic interface ${entityName?cap_first}Mapper extends BaseMapper&lt;${entityName?cap_first}&gt; {\r\n    \r\n}', null, '[entityName]Mapper.java', '1', '4');
  INSERT INTO `generator_template` VALUES ('f1e414fd66d14ecb8b74fabb54755a76', '服务接口', 'iservice', '1', 'cn.jeeweb.service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.gov.gzst.common.common.service.ITreeCommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ITreeCommonService&lt;${entityName?cap_first},String&gt; {\r\n\r\n}', '1e868adeb89f4b1bb93de557c9f7bde5', 'I[entityName]Service.java', '1', '2');
  INSERT INTO `generator_template` VALUES ('f44f3ffa1317436a83de50895c327ba2', 'mapperSQL映射文件', 'xmlmapper', '0', '', 'E:\\testgen', '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;\r\n&lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot; &gt;\r\n&lt;mapper namespace=&quot;${mapper.targetPackage}.${entityName?cap_first}Mapper&quot; &gt;\r\n\r\n	&lt;sql id=&quot;Base_Column_List&quot; &gt;\r\n		t.id,\r\n		t.name,\r\n		t.parent_id,\r\n		t.parent_ids,\r\n		t.parent_id AS parent_id,\r\n		p.name AS parent_name,\r\n	   &lt;#list columns as column&gt;\r\n	   &lt;#if column.columnName!=\'id\'&amp;&amp;column.columnName!=\'name\'&amp;&amp; column.columnName!=\'parent_id\'&amp;&amp; column.columnName!=\'parent_ids\'&gt;\r\n	    t.${column.columnName}&lt;#if !column.isBaseType&gt; AS \'${column.javaField}.id\'&lt;/#if&gt;,\r\n	   &lt;/#if&gt;\r\n	   &lt;/#list&gt;\r\n	   (select count(*) from ${tableName} s\r\n		WHERE s.parent_id=t.id) as\r\n		hasChildren\r\n	&lt;/sql&gt;\r\n	&lt;sql id=&quot;parentJoins&quot;&gt;\r\n		LEFT JOIN ${tableName} p ON p.id = t.parent_id\r\n	&lt;/sql&gt;\r\n    &lt;!-- 查找通过ID查找树信息 --&gt;\r\n	&lt;select id=&quot;selectByTreeId&quot; resultType=&quot;${entity.targetPackage}.${entityName?cap_first}&quot;\r\n		parameterType=&quot;java.lang.String&quot;&gt;\r\n		select\r\n		&lt;include refid=&quot;Base_Column_List&quot; /&gt;\r\n		from ${tableName} t\r\n		&lt;include refid=&quot;parentJoins&quot; /&gt;\r\n		where t.id = ${&quot;#&quot;}{id,jdbcType=VARCHAR}\r\n	&lt;/select&gt;\r\n	\r\n	&lt;!-- 查找树列表 --&gt;\r\n	&lt;select id=&quot;selectTreeList&quot; resultType=&quot;${entity.targetPackage}.${entityName?cap_first}&quot;&gt;\r\n		select\r\n		&lt;include refid=&quot;Base_Column_List&quot; /&gt;\r\n		from ${tableName} t\r\n		&lt;include refid=&quot;parentJoins&quot; /&gt;\r\n		&lt;where&gt;\r\n			${&quot;$&quot;}{ew.sqlSegment}\r\n		&lt;/where&gt;\r\n	&lt;/select&gt;\r\n\r\n	&lt;!-- 更新子树 --&gt;\r\n	&lt;update id=&quot;updateSunTreeParentIds&quot;&gt;\r\n		update ${tableName} set parent_ids=\r\n		CONCAT(${&quot;#&quot;}{newParentIds},substring(parent_ids,\r\n		length(${&quot;#&quot;}{oldParentIds})+1,length(parent_ids)+1))\r\n		where parent_ids like concat(${&quot;#&quot;}{oldParentIds}, \'%\')\r\n	&lt;/update&gt;\r\n	\r\n	&lt;!-- 删除子树 --&gt;\r\n	&lt;delete id=&quot;deleteSunTree&quot; parameterType=&quot;java.lang.String&quot;&gt;\r\n		delete from ${tableName}\r\n		where parent_ids like concat(${&quot;#&quot;}{oldParentIds}, \'%\')\r\n	&lt;/delete&gt;\r\n  \r\n&lt;/mapper&gt;', '72b2a96721894d018840c3be4da92fb9', '[entityName]Mapper.xml', '1', '5');
  INSERT INTO `generator_template` VALUES ('fe308931dc9d468ba11efe77cba78403', '服务接口', 'iservice', '1', 'cn.jeewe.bbs.service', 'E:\\testgen', 'package ${targetPackage};\r\n\r\nimport cn.jeeweb.common.mybatis.mvc.service.ICommonService;\r\nimport ${entity.targetPackage}.${entityName?cap_first};\r\n\r\n/**\r\n* All rights Reserved, Designed By www.gzst.gov.cn\r\n*\r\n* @version V1.0\r\n* @package ${targetPackage}\r\n* @title: ${functionName}服务接口\r\n* @description: ${functionDesc}服务接口\r\n* @author: ${functionAuthor}\r\n* @date: ${time}\r\n* @copyright: 2018 www.gzst.gov.cn Inc. All rights reserved.\r\n*/\r\npublic interface I${entityName?cap_first}Service extends ICommonService&lt;${entityName?cap_first}&gt; {\r\n\r\n}', '79131dfd43054df591fbde71f4ff1082', 'I[entityName]Service.java', '1', '2');
  
  -- ----------------------------
  -- Table structure for generator_template_scheme
  -- ----------------------------
  DROP TABLE IF EXISTS `generator_template_scheme`;
  CREATE TABLE `generator_template_scheme` (
    `id` varchar(32) NOT NULL COMMENT '主键',
    `title` varchar(50) NOT NULL COMMENT '方案标题',
    `description` varchar(4000) NOT NULL COMMENT '方案描述',
    PRIMARY KEY (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='codegen_template_scheme';
  
  -- ----------------------------
  -- Records of generator_template_scheme
  -- ----------------------------
  INSERT INTO `generator_template_scheme` VALUES ('1e868adeb89f4b1bb93de557c9f7bde5', 'jeeweb-admin树形方案', 'jeeweb-admin树形方案');
  INSERT INTO `generator_template_scheme` VALUES ('4cd509aa109b45748ff06417eb5175f4', 'jeeweb-school普通模版方案', 'jeeweb-school普通模版方案');
  INSERT INTO `generator_template_scheme` VALUES ('67f7f85896dc4755b9f2e25888795a54', 'jeeweb-admin普通模版方案', 'jeeweb-admin普通模版方案');
  INSERT INTO `generator_template_scheme` VALUES ('72b2a96721894d018840c3be4da92fb9', 'jeeweb-bbs树形方案', 'jeeweb-bbs树形方案');
  INSERT INTO `generator_template_scheme` VALUES ('79131dfd43054df591fbde71f4ff1082', 'jeeweb-bbs普通模版方案', 'jeeweb-bbs普通模版方案');
  INSERT INTO `generator_template_scheme` VALUES ('9195cfbe657640f09bbe7496a20a4772', 'jeeweb-school树形方案', 'jeeweb-school树形方案');
  