From 15c45eae11ee9d8b819e6e690ad521b230a88a5d Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 13 七月 2021 13:08:47 +0800 Subject: [PATCH] fix 修复代码生成同步表结构id冲突问题 --- ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java | 48 ++++++++++++++++++++++++++++-------------------- 1 files changed, 28 insertions(+), 20 deletions(-) diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java index 619bab4..1778910 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java @@ -6,9 +6,9 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.JsonUtils; @@ -35,10 +35,7 @@ import java.io.File; import java.io.IOException; import java.io.StringWriter; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -50,7 +47,7 @@ */ @Slf4j @Service -public class GenTableServiceImpl extends ServiceImpl<GenTableMapper, GenTable> implements IGenTableService { +public class GenTableServiceImpl extends ServicePlusImpl<GenTableMapper, GenTable> implements IGenTableService { @Autowired private GenTableColumnMapper genTableColumnMapper; @@ -137,14 +134,17 @@ for (GenTableColumn cenTableColumn : genTable.getColumns()) { genTableColumnMapper.update(cenTableColumn, new LambdaUpdateWrapper<GenTableColumn>() - .set(cenTableColumn.getIsPk() == null, GenTableColumn::getIsPk, null) - .set(cenTableColumn.getIsIncrement() == null, GenTableColumn::getIsIncrement, null) - .set(cenTableColumn.getIsInsert() == null, GenTableColumn::getIsInsert, null) - .set(cenTableColumn.getIsEdit() == null, GenTableColumn::getIsEdit, null) - .set(cenTableColumn.getIsList() == null, GenTableColumn::getIsList, null) - .set(cenTableColumn.getIsQuery() == null, GenTableColumn::getIsQuery, null) - .set(cenTableColumn.getIsRequired() == null, GenTableColumn::getIsRequired, null) - .eq(GenTableColumn::getColumnId,cenTableColumn.getColumnId())); + .set(StrUtil.isBlank(cenTableColumn.getColumnComment()), GenTableColumn::getColumnComment, null) + .set(StrUtil.isBlank(cenTableColumn.getIsPk()), GenTableColumn::getIsPk, null) + .set(StrUtil.isBlank(cenTableColumn.getIsIncrement()), GenTableColumn::getIsIncrement, null) + .set(StrUtil.isBlank(cenTableColumn.getIsInsert()), GenTableColumn::getIsInsert, null) + .set(StrUtil.isBlank(cenTableColumn.getIsEdit()), GenTableColumn::getIsEdit, null) + .set(StrUtil.isBlank(cenTableColumn.getIsList()), GenTableColumn::getIsList, null) + .set(StrUtil.isBlank(cenTableColumn.getIsQuery()), GenTableColumn::getIsQuery, null) + .set(StrUtil.isBlank(cenTableColumn.getIsRequired()), GenTableColumn::getIsRequired, null) + .set(StrUtil.isBlank(cenTableColumn.getQueryType()), GenTableColumn::getQueryType, null) + .set(StrUtil.isBlank(cenTableColumn.getDictType()), GenTableColumn::getDictType, null) + .eq(GenTableColumn::getColumnId,cenTableColumn.getColumnId())); } } } @@ -180,11 +180,15 @@ if (row > 0) { // 淇濆瓨鍒椾俊鎭� List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); + List<GenTableColumn> saveColumns = new ArrayList<>(); for (GenTableColumn column : genTableColumns) { GenUtils.initColumnField(column, table); - genTableColumnMapper.insert(column); + saveColumns.add(column); } - } + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertAll(saveColumns); + } + } } } catch (Exception e) { throw new CustomException("瀵煎叆澶辫触锛�" + e.getMessage()); @@ -258,7 +262,7 @@ // 鑾峰彇妯℃澘鍒楄〃 List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory()); for (String template : templates) { - if (!StrUtil.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) { + if (!StrUtil.containsAny("sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm", template)) { // 娓叉煋妯℃澘 StringWriter sw = new StringWriter(); Template tpl = Velocity.getTemplate(template, Constants.UTF8); @@ -287,12 +291,16 @@ } List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + List<GenTableColumn> saveColumns = new ArrayList<>(); dbTableColumns.forEach(column -> { if (!tableColumnNames.contains(column.getColumnName())) { GenUtils.initColumnField(column, table); - genTableColumnMapper.insert(column); - } - }); + saveColumns.add(column); + } + }); + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertAll(saveColumns); + } List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(delColumns)) { -- Gitblit v1.9.3