diff --git a/mes-module-infra/mes-module-infra-biz/pom.xml b/mes-module-infra/mes-module-infra-biz/pom.xml
index 33fad24..770136b 100644
--- a/mes-module-infra/mes-module-infra-biz/pom.xml
+++ b/mes-module-infra/mes-module-infra-biz/pom.xml
@@ -7,6 +7,18 @@
mes-module-infra
${revision}
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 16
+ 16
+
+
+
+
4.0.0
mes-module-infra-biz
jar
diff --git a/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/controller/admin/codegen/CodegenController.java b/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/controller/admin/codegen/CodegenController.java
index b9843b5..3a735d0 100644
--- a/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/controller/admin/codegen/CodegenController.java
+++ b/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/controller/admin/codegen/CodegenController.java
@@ -6,10 +6,6 @@ import com.ningxia.yunxi.chemmes.framework.common.pojo.CommonResult;
import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult;
import com.ningxia.yunxi.chemmes.framework.common.util.object.BeanUtils;
import com.ningxia.yunxi.chemmes.framework.common.util.servlet.ServletUtils;
-import com.ningxia.yunxi.chemmes.module.infra.convert.codegen.CodegenConvert;
-import com.ningxia.yunxi.chemmes.module.infra.dal.dataobject.codegen.CodegenColumnDO;
-import com.ningxia.yunxi.chemmes.module.infra.dal.dataobject.codegen.CodegenTableDO;
-import com.ningxia.yunxi.chemmes.module.infra.service.codegen.CodegenService;
import com.ningxia.yunxi.chemmes.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO;
import com.ningxia.yunxi.chemmes.module.infra.controller.admin.codegen.vo.CodegenDetailRespVO;
import com.ningxia.yunxi.chemmes.module.infra.controller.admin.codegen.vo.CodegenPreviewRespVO;
@@ -17,10 +13,14 @@ import com.ningxia.yunxi.chemmes.module.infra.controller.admin.codegen.vo.Codege
import com.ningxia.yunxi.chemmes.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO;
import com.ningxia.yunxi.chemmes.module.infra.controller.admin.codegen.vo.table.CodegenTableRespVO;
import com.ningxia.yunxi.chemmes.module.infra.controller.admin.codegen.vo.table.DatabaseTableRespVO;
-import io.swagger.v3.oas.annotations.tags.Tag;
+import com.ningxia.yunxi.chemmes.module.infra.convert.codegen.CodegenConvert;
+import com.ningxia.yunxi.chemmes.module.infra.dal.dataobject.codegen.CodegenColumnDO;
+import com.ningxia.yunxi.chemmes.module.infra.dal.dataobject.codegen.CodegenTableDO;
+import com.ningxia.yunxi.chemmes.module.infra.service.codegen.CodegenService;
+import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -31,8 +31,10 @@ import javax.validation.Valid;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import static com.ningxia.yunxi.chemmes.framework.common.pojo.CommonResult.success;
import static com.ningxia.yunxi.chemmes.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@@ -46,6 +48,37 @@ public class CodegenController {
@Resource
private CodegenService codegenService;
+ // CodegenController.java 需要添加:
+
+ @Operation(summary = "批量删除数据库的表和字段定义")
+ @DeleteMapping("/delete-list")
+ @PreAuthorize("@ss.hasPermission('infra:codegen:delete')")
+ public CommonResult deleteCodegenList(@RequestBody List tableIds) {
+ codegenService.deleteCodegenList(tableIds);
+ return success(true);
+ }
+
+
+ @Operation(summary = "批量下载生成代码")
+ @GetMapping("/download-list")
+ @PreAuthorize("@ss.hasPermission('infra:codegen:download')")
+ public void downloadCodegenList(String tableIds, HttpServletResponse response) throws IOException {
+ if (tableIds == null || tableIds.isEmpty()) {
+ throw new IllegalArgumentException("表ID列表不能为空");
+ }
+ String[] split = tableIds.trim().split(",");
+ //数组转换为List
+ List list = Arrays.stream(split).map(Long::parseLong).collect(Collectors.toList());
+ Map codes = codegenService.generationCodesList(list);
+
+ String[] paths = codes.keySet().toArray(new String[0]);
+ ByteArrayInputStream[] ins = codes.values().stream().map(IoUtil::toUtf8Stream).toArray(ByteArrayInputStream[]::new);
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ ZipUtil.zip(outputStream, paths, ins);
+ ServletUtils.writeAttachment(response, "codegen-batch.zip", outputStream.toByteArray());
+ }
+
+
@GetMapping("/db/table/list")
@Operation(summary = "获得数据库自带的表定义列表", description = "会过滤掉已经导入 Codegen 的表")
@Parameters({
diff --git a/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenService.java b/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenService.java
index e34cbec..44b6bb1 100644
--- a/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenService.java
+++ b/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenService.java
@@ -98,4 +98,9 @@ public interface CodegenService {
*/
List getDatabaseTableList(Long dataSourceConfigId, String name, String comment);
+ // CodegenService.java 需要添加:
+
+ void deleteCodegenList(List tableIds);
+ Map generationCodesList(List tableIds);
+
}
diff --git a/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenServiceImpl.java b/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenServiceImpl.java
index 6e56d52..846172f 100644
--- a/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenServiceImpl.java
+++ b/mes-module-infra/mes-module-infra-biz/src/main/java/com/ningxia/yunxi/chemmes/module/infra/service/codegen/CodegenServiceImpl.java
@@ -285,4 +285,26 @@ public class CodegenServiceImpl implements CodegenService {
return BeanUtils.toBean(tables, DatabaseTableRespVO.class);
}
+ // CodegenServiceImpl.java 需要添加:
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteCodegenList(List tableIds) {
+ for (Long tableId : tableIds) {
+ deleteCodegen(tableId);
+ }
+ }
+ @Override
+ public Map generationCodesList(List tableIds) {
+ Map allCodes = new LinkedHashMap<>();
+ for (Long tableId : tableIds) {
+ Map codes = generationCodes(tableId);
+ allCodes.putAll(codes);
+ }
+ return allCodes;
+ }
+
+// ... existing code ...
+
+
}
diff --git a/mes-server/src/main/resources/application.yaml b/mes-server/src/main/resources/application.yaml
index 4e101ec..6068df7 100644
--- a/mes-server/src/main/resources/application.yaml
+++ b/mes-server/src/main/resources/application.yaml
@@ -173,7 +173,7 @@ mes:
codegen:
base-package: ${mes.info.base-package}
db-schemas: ${spring.datasource.dynamic.datasource.master.name}
- front-type: 10 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类
+ front-type: 20 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类
error-code: # 错误码相关配置项 - com.ningxia.yunxi.chemmes.module.majoys.enums.ErrorCodeConstants
constants-class-list:
- com.ningxia.yunxi.chemmes.module.infra.enums.ErrorCodeConstants
diff --git a/mes-ui/mes-ui-admin-vue3/src/api/infra/codegen/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/infra/codegen/index.ts
index feff57a..f72de38 100644
--- a/mes-ui/mes-ui-admin-vue3/src/api/infra/codegen/index.ts
+++ b/mes-ui/mes-ui-admin-vue3/src/api/infra/codegen/index.ts
@@ -121,3 +121,13 @@ export const createCodegenList = (data) => {
export const deleteCodegenTable = (id: number) => {
return request.delete({ url: '/infra/codegen/delete?tableId=' + id })
}
+
+// 批量删除代码生成表定义
+export const deleteCodegenTableList = (ids: number[]) => {
+ return request.delete({ url: '/infra/codegen/delete-list', data: ids })
+}
+
+// 批量下载生成代码
+export const downloadCodegenList = (ids: number[]) => {
+ return request.download({ url: '/infra/codegen/download-list?tableIds=' + ids.join(',') })
+}
diff --git a/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/components/GenerateInfoForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/components/GenerateInfoForm.vue
index 7605174..ccf0da3 100644
--- a/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/components/GenerateInfoForm.vue
+++ b/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/components/GenerateInfoForm.vue
@@ -317,7 +317,7 @@ const props = defineProps({
const formRef = ref()
const formData = ref({
templateType: null,
- frontType: null,
+ frontType: 20,
scene: null,
moduleName: '',
businessName: '',
diff --git a/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/index.vue
index 69c3d12..077a909 100644
--- a/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/index.vue
+++ b/mes-ui/mes-ui-admin-vue3/src/views/infra/codegen/index.vue
@@ -55,13 +55,32 @@
导入
+
+
+ 批量删除
+
+
+
+ 批量生成代码
+
-
+
+
{{
@@ -168,6 +187,7 @@ const { push } = useRouter() // 路由跳转
const loading = ref(true) // 列表的加载中
const total = ref(0) // 列表的总页数
const list = ref([]) // 列表的数据
+const selectedIds = ref([]) // 选中的表ID数组
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
@@ -249,6 +269,28 @@ const handleGenTable = async (row: CodegenApi.CodegenTableVO) => {
download.zip(res, 'codegen-' + row.className + '.zip')
}
+/** 多选变化处理 */
+const handleSelectionChange = (val: CodegenApi.CodegenTableVO[]) => {
+ selectedIds.value = val.map((item) => item.id)
+}
+
+/** 批量删除操作 */
+const handleDeleteAll = async () => {
+ try {
+ await message.delConfirm()
+ await CodegenApi.deleteCodegenTableList(selectedIds.value)
+ message.success(t('common.delSuccess'))
+ selectedIds.value = []
+ await getList()
+ } catch {}
+}
+
+/** 批量生成代码操作 */
+const handleGenTableAll = async () => {
+ const res = await CodegenApi.downloadCodegenList(selectedIds.value)
+ download.zip(res, 'codegen-batch.zip')
+}
+
/** 初始化 **/
onMounted(async () => {
await getList()