diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java index b7ba958..3460a87 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java @@ -1,8 +1,7 @@ package org.dromara.qms.controller; -import java.util.ArrayList; import java.util.List; - +import java.util.ArrayList; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; @@ -21,14 +20,13 @@ import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.qms.domain.vo.QcInspectionItemCategoryVo; import org.dromara.qms.domain.bo.QcInspectionItemCategoryBo; import org.dromara.qms.service.IQcInspectionItemCategoryService; -import org.dromara.common.mybatis.core.page.TableDataInfo; /** * 检测项类别 * 前端访问路由地址为:/qms/qcInspectionItemCategory * * @author zch - * @date 2025-07-14 + * @date 2025-07-17 */ @Validated @RequiredArgsConstructor @@ -43,8 +41,9 @@ public class QcInspectionItemCategoryController extends BaseController { */ @SaCheckPermission("qms:qcInspectionItemCategory:list") @GetMapping("/list") - public TableDataInfo list(QcInspectionItemCategoryBo bo, PageQuery pageQuery) { - return qcInspectionItemCategoryService.queryPageList(bo, pageQuery); + public R> list(QcInspectionItemCategoryBo bo) { + List list = qcInspectionItemCategoryService.queryList(bo); + return R.ok(list); } /** @@ -69,6 +68,7 @@ public class QcInspectionItemCategoryController extends BaseController { ExcelUtil.exportExcel(list, "检测项类别", QcInspectionItemCategoryVo.class, response); } + /** * 获取检测项类别详细信息 * diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionItemCategory.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionItemCategory.java index f8f79be..d345ea9 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionItemCategory.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionItemCategory.java @@ -11,7 +11,7 @@ import java.io.Serial; * 检测项类别对象 qc_inspection_item_category * * @author zch - * @date 2025-07-14 + * @date 2025-07-17 */ @Data @EqualsAndHashCode(callSuper = true) @@ -24,9 +24,18 @@ public class QcInspectionItemCategory extends TenantEntity { /** * 检测项类别主键 */ - @TableId(value = "category_id", type = IdType.ASSIGN_ID) private Long categoryId; + /** + * 父级ID + */ + private Long parentId; + + /** + * 祖级列表 + */ + private String ancestors; + /** * 检测项类别编码 */ diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionItemCategoryBo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionItemCategoryBo.java index 7d4cefb..bd46811 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionItemCategoryBo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionItemCategoryBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 检测项类别业务对象 qc_inspection_item_category * * @author zch - * @date 2025-07-14 + * @date 2025-07-17 */ @Data @EqualsAndHashCode(callSuper = true) @@ -26,6 +26,17 @@ public class QcInspectionItemCategoryBo extends BaseEntity { // @NotNull(message = "检测项类别主键不能为空", groups = { AddGroup.class, EditGroup.class }) private Long categoryId; + /** + * 父级ID + */ + @NotNull(message = "父级不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long parentId; + + /** + * 祖级列表 + */ + private String ancestors; + /** * 检测项类别编码 */ diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java index e31b200..02ddc41 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java @@ -1,6 +1,5 @@ package org.dromara.qms.domain.vo; -import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.qms.domain.QcInspectionItemCategory; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -19,7 +18,7 @@ import java.util.Date; * 检测项类别视图对象 qc_inspection_item_category * * @author zch - * @date 2025-07-14 + * @date 2025-07-17 */ @Data @ExcelIgnoreUnannotated @@ -35,6 +34,18 @@ public class QcInspectionItemCategoryVo implements Serializable { @ExcelProperty(value = "检测项类别主键") private Long categoryId; + /** + * 父级ID + */ +// @ExcelProperty(value = "父级ID") + private Long parentId; + + /** + * 祖级列表 + */ +// @ExcelProperty(value = "祖级列表") + private String ancestors; + /** * 检测项类别编码 */ diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java index 56d3602..ab684b3 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java @@ -1,10 +1,9 @@ package org.dromara.qms.service.impl; +import org.apache.commons.lang3.ObjectUtils; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -25,7 +24,7 @@ import java.util.Collection; * 检测项类别Service业务层处理 * * @author zch - * @date 2025-07-14 + * @date 2025-07-17 */ @RequiredArgsConstructor @Service @@ -44,19 +43,6 @@ public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCat return baseMapper.selectVoById(categoryId); } - /** - * 分页查询检测项类别列表 - * - * @param bo 查询条件 - * @param pageQuery 分页参数 - * @return 检测项类别分页列表 - */ - @Override - public TableDataInfo queryPageList(QcInspectionItemCategoryBo bo, PageQuery pageQuery) { - MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } /** * 查询符合条件的检测项类别列表 @@ -80,6 +66,8 @@ public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCat .leftJoin(QcInspectionType.class, QcInspectionType::getTypeId, QcInspectionItemCategory::getTypeId) .eq(bo.getCategoryId() != null, QcInspectionItemCategory::getCategoryId, bo.getCategoryId()) + .eq(bo.getParentId() != null, QcInspectionItemCategory::getParentId, bo.getParentId()) + .eq(StringUtils.isNotBlank(bo.getAncestors()), QcInspectionItemCategory::getAncestors, bo.getAncestors()) .eq(StringUtils.isNotBlank(bo.getCategoryCode()), QcInspectionItemCategory::getCategoryCode, bo.getCategoryCode()) .like(StringUtils.isNotBlank(bo.getCategoryName()), QcInspectionItemCategory::getCategoryName, bo.getCategoryName()) .eq(bo.getTypeId() != null, QcInspectionItemCategory::getTypeId, bo.getTypeId()) @@ -98,6 +86,18 @@ public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCat public Boolean insertByBo(QcInspectionItemCategoryBo bo) { QcInspectionItemCategory add = MapstructUtils.convert(bo, QcInspectionItemCategory.class); validEntityBeforeSave(add); + + // 获取父节点信息 + QcInspectionItemCategoryVo query = baseMapper.selectVoById(bo.getParentId()); + if (ObjectUtils.isNotEmpty(query)) { + //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors + add.setAncestors(query.getAncestors() + "," + bo.getParentId()); + }else{ + //若父节点为空,则ancestors仅有父节点id + add.setAncestors(bo.getParentId().toString()); + } + + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setCategoryId(add.getCategoryId()); @@ -136,7 +136,17 @@ public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCat public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + // 判断是否存在子节点 + QcInspectionItemCategory query = new QcInspectionItemCategory(); + query.setParentId(id); + if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { + throw new ServiceException("存在子节点,不允许删除"); + } + } } return baseMapper.deleteByIds(ids) > 0; } + + } diff --git a/ruoyi-modules/hwmom-qms/src/main/resources/mapper/qms/QcInspectionItemCategoryMapper.xml b/ruoyi-modules/hwmom-qms/src/main/resources/mapper/qms/QcInspectionItemCategoryMapper.xml index 6dea803..269b7ab 100644 --- a/ruoyi-modules/hwmom-qms/src/main/resources/mapper/qms/QcInspectionItemCategoryMapper.xml +++ b/ruoyi-modules/hwmom-qms/src/main/resources/mapper/qms/QcInspectionItemCategoryMapper.xml @@ -7,6 +7,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -20,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select category_id, tenant_id, category_code, category_name, type_id, description, create_by, create_dept, create_time, update_by, update_time, del_flag + select category_id, tenant_id, parent_id, ancestors, category_code, category_name, type_id, description, create_by, create_dept, create_time, update_by, update_time, del_flag from qc_inspection_item_category @@ -28,6 +30,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and category_id = #{categoryId} + and parent_id = #{parentId} + and ancestors = #{ancestors} and category_code = #{categoryCode} and category_name like concat('%', #{categoryName}, '%') and type_id = #{typeId} diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm index cd6799a..9336182 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm @@ -3,7 +3,7 @@
- + #foreach($column in $columns) #if($column.query) #set($dictType=$column.dictType) @@ -78,11 +78,6 @@ 导出 - - - 导出模板 - - @@ -471,13 +466,6 @@ const handleExport = () => { }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`) } -/** 导出模板按钮操作 */ -const handleExportTemplate = () => { - proxy?.download('${moduleName}/${businessName}/exportTemplate', { - - }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`) -} - onMounted(() => { getList(); });