diff --git a/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue b/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
index 21f50f2..21433ed 100644
--- a/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
+++ b/ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
@@ -73,7 +73,9 @@
导入模块
导入功能
导入规则
- 导入实体
+
+ 导入实体
+
导入字段
返回
@@ -393,6 +395,7 @@ export default {
deleteBatch: "/modulex/modulex/deleteBatch",
exportXlsUrl: "/modulex/modulex/exportXls",
importExcelUrl: "modulex/modulex/importExcel",
+ tablexImportExcelUrl: "tablex/tablex/importExcel",
},
dictOptions: {},
@@ -418,7 +421,10 @@ export default {
// 用计算属性取出columns的dataIndex,作为多选框的选项数据
checkColumn: function () {
return this.columns.map(item => item.title)
- }
+ },
+ tablexImportExcelUrl: function(){
+ return `${window._CONFIG['domianURL']}/${this.url.tablexImportExcelUrl}`;
+ },
},
methods: {
// 多选框的事件回调
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java
index b1957f9..8eaeeb3 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/controller/TablexController.java
@@ -1,9 +1,6 @@
package org.jeecg.modules.tablex.controller;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
@@ -11,8 +8,13 @@ import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.models.auth.In;
import org.apache.commons.lang.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
@@ -60,11 +62,11 @@ import org.jeecg.common.aspect.annotation.AutoLog;
@RequestMapping("/tablex/tablex")
@Slf4j
public class TablexController extends JeecgController {
- @Autowired
- private ITablexService tablexService;
+ @Autowired
+ private ITablexService tablexService;
- @Autowired
- private IModulexService modulexService;
+ @Autowired
+ private IModulexService modulexService;
@Autowired
private IFieldxService fieldxService;
@@ -73,259 +75,287 @@ public class TablexController extends JeecgController {
@Autowired
private ITablexVoService tablexVoService;
-
- /**
- * 分页列表查询
- *
- * @param tablex
- * @param pageNo
- * @param pageSize
- * @param req
- * @return
- */
- @AutoLog(value = "实体表-分页列表查询")
- @ApiOperation(value="实体表-分页列表查询", notes="实体表-分页列表查询")
- @GetMapping(value = "/list")
- public Result> queryPageList(Tablex tablex,
- @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
- @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
- HttpServletRequest req) {
- QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(tablex, req.getParameterMap());
- Page page = new Page(pageNo, pageSize);
- IPage pageList = tablexService.page(page, queryWrapper);
- return Result.OK(pageList);
- }
-
- /**
- * 添加
- *
- * @param tablex
- * @return
- */
- @AutoLog(value = "实体表-添加")
- @ApiOperation(value="实体表-添加", notes="实体表-添加")
- @PostMapping(value = "/add")
- public Result> add(@RequestBody Tablex tablex) {
- List tablexList = tablexService.list();
- for (Tablex tablex1 : tablexList){
- if (tablex1.getModuleId().equals(tablex.getModuleId())){
- return Result.error("该模块已有实体,添加失败");
- }
- }
- if (tablex.getModuleId() != null){
- Modulex modulex = modulexService.getById(tablex.getModuleId());
- tablex.setTableName(modulex.getModuleName());
- tablex.setTableEnName(modulex.getModuleEnName());
- }
- tablex.setVerison(1);
- tablex.setTableStructure("CREATE TABLE '"+tablex.getTableEnName()+"' ();");
- tablexService.save(tablex);
- System.err.println(tablex.toString());
- modulexService.setmodule(tablex.getId(),tablex.getModuleId());
- return Result.OK("添加成功!");
- }
-
- /**
- * 编辑
- *
- * @param tablex
- * @return
- */
- @AutoLog(value = "实体表-编辑")
- @ApiOperation(value="实体表-编辑", notes="实体表-编辑")
- @PutMapping(value = "/edit")
- public Result> edit(@RequestBody Tablex tablex) {
- tablex.setVerison(tablex.getVerison()+1);
- List tablexList = tablexService.list();
- for (Tablex tablex1 : tablexList){
- if (tablex1.getModuleId().equals(tablex.getModuleId())){
- return Result.error("该模块已有实体,编辑失败");
- }
- }
- if (tablex.getModuleId() != null){
- Modulex modulex = modulexService.getById(tablex.getModuleId());
- tablex.setTableName(modulex.getModuleName());
- tablex.setTableEnName(modulex.getModuleEnName());
- }
- tablexService.updateById(tablex);
- tablexService.updateSql(tablex.getId(),fieldxController.createSql(tablex.getId()));
- return Result.OK("编辑成功!");
- }
-
- /**
- * 通过id删除
- *
- * @param id
- * @return
- */
- @AutoLog(value = "实体表-通过id删除")
- @ApiOperation(value="实体表-通过id删除", notes="实体表-通过id删除")
- @DeleteMapping(value = "/delete")
- public Result> delete(@RequestParam(name="id",required=true) String id) {
- List fieldxList = fieldxService.list(new QueryWrapper().eq("table_id", id));
- if (!fieldxList.isEmpty()){
- return Result.error("该表内已有字段,不能删除");
- }
- List fieldxList1 = fieldxService.list(new QueryWrapper().eq("associate_table", id));
- if (!fieldxList1.isEmpty()){
- return Result.error("该表已被关联,不能删除");
- }
- tablexService.removeById(id);
- return Result.OK("删除成功!");
- }
-
-
- /**
- * 批量删除
- *
- * @param ids
- * @return
- */
- @AutoLog(value = "实体表-批量删除")
- @ApiOperation(value="实体表-批量删除", notes="实体表-批量删除")
- @DeleteMapping(value = "/deleteBatch")
- public Result> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
- this.tablexService.removeByIds(Arrays.asList(ids.split(",")));
- return Result.OK("批量删除成功!");
- }
-
- /**
- * 通过id查询
- *
- * @param id
- * @return
- */
- @AutoLog(value = "实体表-通过id查询")
- @ApiOperation(value="实体表-通过id查询", notes="实体表-通过id查询")
- @GetMapping(value = "/queryById")
- public Result> queryById(@RequestParam(name="id",required=true) String id) {
- Tablex tablex = tablexService.getById(id);
- if(tablex==null) {
- return Result.error("未找到对应数据");
- }
- return Result.OK(tablex);
- }
-
- /**
- * 导出excel
- *
- * @param request
- * @param tablex
- */
- @RequestMapping(value = "/exportXls")
- public ModelAndView exportXls(HttpServletRequest request, Tablex tablex) {
- return super.exportXls(request, tablex, Tablex.class, "实体表");
- }
-
- /**
- * 通过excel导入数据
- *
- * @param request
- * @param response
- * @return
- */
- @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
- public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- Map fileMap = multipartRequest.getFileMap();
- LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-
- for (Map.Entry entry : fileMap.entrySet()) {
- //获取上传文件对象
- MultipartFile file = entry.getValue();
- ImportParams params = new ImportParams();
- params.setTitleRows(2);//表格标题行数,默认0
- params.setHeadRows(1);//表头行数,默认1
- params.setNeedSave(true);//是否需要保存上传的Excel,默认为false
-
- // 判断文件是否是表格
- String originalFilename = file.getOriginalFilename();
- if (StringUtils.isBlank(originalFilename) ||
- (!originalFilename.endsWith("xls") &&
- !originalFilename.endsWith("xlsx"))) {
- return Result.error("文件格式不正确");
- }
- List list = null;
- try {
- //读取excel数据
- list = ExcelImportUtil.importExcel(file.getInputStream(), Tablex.class, params);
- } catch (Exception e) {
- return Result.error("文件读取失败");
- }
-
- //判断文件中是否存在数据
- if (list == null || list.size() == 0) {
- return Result.error("Excel数据为空");
- }
-
- for (int i = 0; i < list.size(); i++) {
- //判断当前存入行是否为空值
- if (list.size() > 0 &&
- list.get(i).getId() == null &&
- list.get(i).getModuleId() == null &&
- list.get(i).getTableName() == null &&
- list.get(i).getTableEnName() == null &&
- list.get(i).getTableStructure() == null &&
- list.get(i).getStructuralDiagram() == null &&
- list.get(i).getStatus() == null &&
- list.get(i).getVerisonStatus() == null &&
- list.get(i).getVerison() == null) continue;
-
- //存入临时表中
- tablexVoService.save((TablexVo) list.get(i));
- }
-
- //从临时表中取出数据
- List voList = tablexVoService.list();
- if (voList == null) {
- return Result.error("数据为空");
- }
-
- List tablexList = new ArrayList<>();
- for (int i = 0; i < voList.size(); i++) {
- //判断对应模块
- if (voList.get(i).getModuleId() != null || !voList.get(i).getModuleId().equals("")) {
- //判断中文名称
- if (voList.get(i).getTableName() != null || !voList.get(i).getTableName().equals("")) {
- //判断英文名称
- if (voList.get(i).getTableEnName() != null || !voList.get(i).getTableEnName().equals("")) {
- //判断表结构SQL
- if (voList.get(i).getTableStructure() != null || !voList.get(i).getTableStructure().equals("")) {
- //判断结构图
- if (voList.get(i).getStructuralDiagram() != null || !voList.get(i).getStructuralDiagram().equals("")) {
- //判断实体状态
- if (voList.get(i).getStatus() != null || !voList.get(i).getStatus().equals("")) {
- //判断版本状态
- if (voList.get(i).getVerisonStatus() != null || !voList.get(i).getVerisonStatus().equals("")){
- //判断版本号
- if (voList.get(i).getVerison() != null || !voList.get(i).getVerison().equals("")){
-
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的版本号填写错误!");
- }
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的版本状态填写错误!");
- }
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的实体状态填写错误!");
- }
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的结构图填写错误!");
- }
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的表结构SQL填写错误!");
- }
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的英文名称填写错误!");
- }
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的中文名称填写错误!");
- }
- } else {
- return Result.error("导入失败,第" + i + 1 + "行的对应模块填写错误!");
- }
- }
-
- }
- return super.importExcel(request, response, Tablex.class);
- }
+
+ /**
+ * 分页列表查询
+ *
+ * @param tablex
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @AutoLog(value = "实体表-分页列表查询")
+ @ApiOperation(value = "实体表-分页列表查询", notes = "实体表-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(Tablex tablex,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(tablex, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = tablexService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param tablex
+ * @return
+ */
+ @AutoLog(value = "实体表-添加")
+ @ApiOperation(value = "实体表-添加", notes = "实体表-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@RequestBody Tablex tablex) {
+ List tablexList = tablexService.list();
+ for (Tablex tablex1 : tablexList) {
+ if (tablex1.getModuleId().equals(tablex.getModuleId())) {
+ return Result.error("该模块已有实体,添加失败");
+ }
+ }
+ if (tablex.getModuleId() != null) {
+ Modulex modulex = modulexService.getById(tablex.getModuleId());
+ tablex.setTableName(modulex.getModuleName());
+ tablex.setTableEnName(modulex.getModuleEnName());
+ }
+ tablex.setVerison(1);
+ tablex.setTableStructure("CREATE TABLE '" + tablex.getTableEnName() + "' ();");
+ tablexService.save(tablex);
+ System.err.println(tablex.toString());
+ modulexService.setmodule(tablex.getId(), tablex.getModuleId());
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param tablex
+ * @return
+ */
+ @AutoLog(value = "实体表-编辑")
+ @ApiOperation(value = "实体表-编辑", notes = "实体表-编辑")
+ @PutMapping(value = "/edit")
+ public Result> edit(@RequestBody Tablex tablex) {
+ tablex.setVerison(tablex.getVerison() + 1);
+ List tablexList = tablexService.list();
+ for (Tablex tablex1 : tablexList) {
+ if (tablex1.getModuleId().equals(tablex.getModuleId())) {
+ return Result.error("该模块已有实体,编辑失败");
+ }
+ }
+ if (tablex.getModuleId() != null) {
+ Modulex modulex = modulexService.getById(tablex.getModuleId());
+ tablex.setTableName(modulex.getModuleName());
+ tablex.setTableEnName(modulex.getModuleEnName());
+ }
+ tablexService.updateById(tablex);
+ tablexService.updateSql(tablex.getId(), fieldxController.createSql(tablex.getId()));
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "实体表-通过id删除")
+ @ApiOperation(value = "实体表-通过id删除", notes = "实体表-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result> delete(@RequestParam(name = "id", required = true) String id) {
+ List fieldxList = fieldxService.list(new QueryWrapper().eq("table_id", id));
+ if (!fieldxList.isEmpty()) {
+ return Result.error("该表内已有字段,不能删除");
+ }
+ List fieldxList1 = fieldxService.list(new QueryWrapper().eq("associate_table", id));
+ if (!fieldxList1.isEmpty()) {
+ return Result.error("该表已被关联,不能删除");
+ }
+ tablexService.removeById(id);
+ return Result.OK("删除成功!");
+ }
+
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "实体表-批量删除")
+ @ApiOperation(value = "实体表-批量删除", notes = "实体表-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+ this.tablexService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "实体表-通过id查询")
+ @ApiOperation(value = "实体表-通过id查询", notes = "实体表-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result> queryById(@RequestParam(name = "id", required = true) String id) {
+ Tablex tablex = tablexService.getById(id);
+ if (tablex == null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(tablex);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param tablex
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, Tablex tablex) {
+ return super.exportXls(request, tablex, Tablex.class, "实体表");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param file
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(MultipartFile file) {
+ try {
+
+ LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ // 判断文件是否是表格
+ String originalFilename = file.getOriginalFilename();
+ if (StringUtils.isBlank(originalFilename) ||
+ (!originalFilename.endsWith("xls") &&
+ !originalFilename.endsWith("xlsx"))) {
+ return Result.error("文件格式不正确");
+ }
+
+ //获取上传文件对象
+ ImportParams params = new ImportParams();
+ params.setTitleRows(2);//表格标题行数,默认0
+ params.setHeadRows(1);//表头行数,默认1
+ params.setNeedSave(true);//是否需要保存上传的Excel,默认为false
+ List list = null;
+ try {
+ //读取excel数据
+ list = ExcelImportUtil.importExcel(file.getInputStream(), TablexVo.class, params);
+ } catch (Exception e) {
+ return Result.error("文件读取失败");
+ }
+ //判断文件中是否存在数据
+ if (list == null || list.size() == 0) {
+ return Result.error("Excel数据为空");
+ }
+
+ for (TablexVo tablexVo : list) {
+ //判断当前存入行是否为空值
+ if (tablexVo.getModuleId() == null &&
+ tablexVo.getTableName() == null &&
+ tablexVo.getTableEnName() == null &&
+ tablexVo.getTableStructure() == null &&
+ tablexVo.getStructuralDiagram() == null &&
+ tablexVo.getStatus() == null &&
+ tablexVo.getVerisonStatus() == null &&
+ tablexVo.getVerison() == null) continue;
+
+ //判断版本号长度
+ String verison = tablexVo.getVerison();
+ if (verison.length() > 5) {
+ return Result.error("导入失败,版本号格式错误");
+ }
+
+ //存入临时表中
+ tablexVoService.save(tablexVo);
+ }
+
+ //从临时表中取出数据
+ List voList = tablexVoService.list();
+ //删除临时表中的数据
+ tablexVoService.removeAll(voList);
+
+ if (voList.size() == 0) {
+ return Result.error("导入失败,数据为空");
+ }
+
+ Tablex tablex = new Tablex();
+ for (int i = 0; i < voList.size(); i++) {
+
+ String moduleId = voList.get(i).getModuleId();
+ if (moduleId == null || moduleId.equals("")){
+ return Result.error("对应模块填写不能为空");
+ }
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Modulex::getId,moduleId);
+ Modulex modulex = modulexService.getOne(queryWrapper);
+ if(modulex == null){
+ return Result.error("对应模块填写错误");
+ }
+ String modulexId = modulex.getId();
+
+ String status = voList.get(i).getStatus();
+ String verisonStatus = voList.get(i).getVerisonStatus();
+
+ //判断实体状态
+ int statusInt = status.equals("正常") ? 1 : status.equals("停用") ? 0 : status.equals("废弃") ? 9 : 3;
+ //判断版本状态
+ int verisonStatusInt = verisonStatus.equals("当前") ? 1 : verisonStatus.equals("历史") ? 0 : 3;
+
+ //判断对应模块
+ if (modulexId != null && voList.get(i).getModuleId() != null && !voList.get(i).getModuleId().equals("")) {
+ //判断中文名称
+ if (voList.get(i).getTableName() != null && !voList.get(i).getTableName().equals("") && !voList.get(i).getTableName().equals(modulex.getModuleName())) {
+ //判断英文名称
+ if (voList.get(i).getTableEnName() != null && !voList.get(i).getTableEnName().equals("") && !voList.get(i).getTableEnName().equals(modulex.getModuleEnName())) {
+ //判断实体状态
+ if (statusInt == 1 || statusInt == 0 || statusInt == 9) {
+ //判断版本状态
+ if (verisonStatusInt == 1 || verisonStatusInt == 0) {
+ //判断版本号
+ if (voList.get(i).getVerison() != null && !voList.get(i).getVerison().equals("")) {
+ tablex.setModuleId(voList.get(i).getModuleId());
+ tablex.setTableName(voList.get(i).getTableName());
+ tablex.setTableEnName(voList.get(i).getTableEnName());
+ tablex.setTableStructure(voList.get(i).getTableStructure());
+ tablex.setStructuralDiagram(voList.get(i).getStructuralDiagram());
+ tablex.setCreateBy(loginUser.getRealname());
+ tablex.setStatus(statusInt);
+ tablex.setVerisonStatus(verisonStatusInt);
+ tablex.setVerison(Integer.valueOf(voList.get(i).getVerison()));
+
+ //保存到真实表中
+ tablexService.save(tablex);
+
+ } else {
+ return Result.error("导入失败,第" + i + 1 + "行的版本号填写错误!");
+ }
+ } else {
+ return Result.error("导入失败,第" + i + 1 + "行的版本状态填写错误!");
+ }
+ } else {
+ return Result.error("导入失败,第" + i + 1 + "行的实体状态填写错误!");
+ }
+ } else {
+ return Result.error("导入失败,第" + i + 1 + "行的英文名称填写错误!");
+ }
+ } else {
+ return Result.error("导入失败,第" + i + 1 + "行的中文名称填写错误!");
+ }
+ } else {
+ return Result.error("导入失败,第" + i + 1 + "行的对应模块填写错误!");
+ }
+ }
+ } catch (Exception e) {
+
+ return Result.error("文件导入失败");
+ }
+ return Result.OK("文件导入成功!");
+ }
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/TablexMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/TablexMapper.java
index 8911f7b..05b8718 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/TablexMapper.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/TablexMapper.java
@@ -2,6 +2,7 @@ package org.jeecg.modules.tablex.mapper;
import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.checkerframework.checker.guieffect.qual.UI;
@@ -14,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @Date: 2023-04-10
* @Version: V1.0
*/
+@Mapper
public interface TablexMapper extends BaseMapper {
@Update("update tablex set table_structure = #{sql} where id = #{tableId}")
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/TablexVoMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/TablexVoMapper.java
new file mode 100644
index 0000000..dd79af8
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/TablexVoMapper.java
@@ -0,0 +1,15 @@
+package org.jeecg.modules.tablex.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.jeecg.modules.tablex.vo.TablexVo;
+
+/**
+* @author Administrator
+* @description 针对表【tablex_vo】的数据库操作Mapper
+* @createDate 2023-07-10 19:52:43
+* @Entity generator.domain.TablexVo
+*/
+@Mapper
+public interface TablexVoMapper extends BaseMapper {
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/xml/TablexMapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/xml/TablexMapper.xml
index 3e55de2..1ae4119 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/xml/TablexMapper.xml
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/xml/TablexMapper.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/xml/TablexVoMapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/xml/TablexVoMapper.xml
new file mode 100644
index 0000000..f964916
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/mapper/xml/TablexVoMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/ITablexVoService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/ITablexVoService.java
index 44ae5ca..b787a29 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/ITablexVoService.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/ITablexVoService.java
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.tablex.entity.Tablex;
import org.jeecg.modules.tablex.vo.TablexVo;
+import java.util.List;
+
/**
* @Description: 实体表
* @Author: jeecg-boot
@@ -11,5 +13,5 @@ import org.jeecg.modules.tablex.vo.TablexVo;
* @Version: V1.0
*/
public interface ITablexVoService extends IService {
-
+ void removeAll(List voList);
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/impl/ITablexVoServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/impl/ITablexVoServiceImpl.java
new file mode 100644
index 0000000..a996ad4
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/service/impl/ITablexVoServiceImpl.java
@@ -0,0 +1,27 @@
+package org.jeecg.modules.tablex.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import org.jeecg.modules.tablex.entity.Tablex;
+import org.jeecg.modules.tablex.mapper.TablexVoMapper;
+import org.jeecg.modules.tablex.service.ITablexVoService;
+import org.jeecg.modules.tablex.vo.TablexVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【tablex_vo】的数据库操作Service实现
+* @createDate 2023-07-10 19:52:43
+*/
+@Service
+public class ITablexVoServiceImpl extends ServiceImpl implements ITablexVoService{
+
+ @Override
+ public void removeAll(List voList) {
+ for (TablexVo tablexVo : voList){
+ removeById(tablexVo.getId());
+ }
+ }
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/vo/TablexVo.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/vo/TablexVo.java
new file mode 100644
index 0000000..52232a2
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/tablex/vo/TablexVo.java
@@ -0,0 +1,90 @@
+package org.jeecg.modules.tablex.vo;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 实体表
+ * @Author: jeecg-boot
+ * @Date: 2023-04-10
+ * @Version: V1.0
+ */
+@Data
+@TableName("tablex_vo")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class TablexVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private java.lang.String id;
+ /**对应模块id*/
+ @Excel(name = "对应模块id", width = 15, dictTable = "modulex", dicText = "module_name", dicCode = "id")
+ @Dict(dictTable = "modulex", dicText = "module_name", dicCode = "id")
+ @ApiModelProperty(value = "对应模块id")
+ private java.lang.String moduleId;
+ /**中文名称*/
+ @Excel(name = "中文名称", width = 15)
+ @ApiModelProperty(value = "中文名称")
+ private java.lang.String tableName;
+ /**英文名称*/
+ @Excel(name = "英文名称", width = 15)
+ @ApiModelProperty(value = "英文名称")
+ private java.lang.String tableEnName;
+ /**表结构SQL*/
+ @Excel(name = "表结构SQL", width = 15)
+ @ApiModelProperty(value = "表结构SQL")
+ private java.lang.String tableStructure;
+ /**结构图*/
+ @Excel(name = "结构图", width = 15)
+ @ApiModelProperty(value = "结构图")
+ private java.lang.String structuralDiagram;
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ @Dict(dictTable = "sys_user", dicText = "username", dicCode = "id")
+ private java.lang.String createBy;
+ /**创建时间*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建时间")
+ private java.lang.String createTime;
+ /**修改人*/
+ @ApiModelProperty(value = "修改人")
+ @Dict(dictTable = "sys_user", dicText = "username", dicCode = "id")
+ private java.lang.String updateBy;
+ /**修改时间*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "修改时间")
+ private java.lang.String updateTime;
+ /**实体状态*/
+ @Excel(name = "实体状态", width = 15,dicCode = "a_status")
+ @Dict(dicCode = "a_status")
+ @ApiModelProperty(value = "实体状态")
+ private java.lang.String status;
+ /**版本状态*/
+ @Excel(name = "版本状态", width = 15,dicCode = "verison_status")
+ @Dict(dicCode = "verison_status")
+ @ApiModelProperty(value = "版本状态")
+ private java.lang.String verisonStatus;
+ /**版本号*/
+ @Excel(name = "版本号", width = 15)
+ @ApiModelProperty(value = "版本号")
+ private java.lang.String verison;
+}