diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java index 7c124cde..725498ed 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/ServiceWorkOrdersTypeController.java @@ -65,7 +65,7 @@ public class ServiceWorkOrdersTypeController extends BaseController { @SaCheckPermission("system:workOrdersType:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + @PathVariable("id") Long id) { return R.ok(serviceWorkOrdersTypeService.queryById(id)); } @@ -110,6 +110,18 @@ public class ServiceWorkOrdersTypeController extends BaseController { @SaCheckPermission("system:workOrdersType:list") @GetMapping("/typeTree") public R> typeTree() { - return R.ok(serviceWorkOrdersTypeService.typeTree()) ; + return R.ok(serviceWorkOrdersTypeService.typeTree()); + } + + /** + * 工单类型不分页查询 + * + * @param bo 工单类型 + * @return 工单类型列表 + */ + @SaCheckPermission("system:workOrdersType:list") + @GetMapping("/queryList") + public R> queryList(ServiceWorkOrdersTypeBo bo) { + return R.ok(serviceWorkOrdersTypeService.queryList(bo)); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java index 4837b99e..9d88bdfe 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/ServiceWorkOrdersType.java @@ -65,6 +65,7 @@ public class ServiceWorkOrdersType extends TenantEntity { /** *上级类型id */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long parentId; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java index 3d7d0ca9..aa7376a5 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/ServiceWorkOrdersTypeBo.java @@ -65,4 +65,11 @@ public class ServiceWorkOrdersTypeBo extends BaseEntity { */ private Long parentId; + /** + * 是否过滤子级 + */ + private Boolean filterSubNodes; + + private Long excludeId; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java index 4256baea..2a971429 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/ServiceWorkOrdersTypeServiceImpl.java @@ -1,6 +1,8 @@ package org.dromara.property.service.impl; import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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; @@ -43,7 +45,7 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS * @return 【工单类型】 */ @Override - public ServiceWorkOrdersTypeVo queryById(Long id){ + public ServiceWorkOrdersTypeVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -81,6 +83,8 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS lqw.like(StringUtils.isNotBlank(bo.getOrderTypeName()), ServiceWorkOrdersType::getOrderTypeName, bo.getOrderTypeName()); lqw.eq(StringUtils.isNotBlank(bo.getOperationMode()), ServiceWorkOrdersType::getOperationMode, bo.getOperationMode()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), ServiceWorkOrdersType::getSearchValue, bo.getSearchValue()); + lqw.isNull(bo.getFilterSubNodes() != null && bo.getFilterSubNodes(), ServiceWorkOrdersType::getParentId); + lqw.ne(bo.getExcludeId()!=null,ServiceWorkOrdersType::getId,bo.getExcludeId()); return lqw; } @@ -120,7 +124,7 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS /** * 保存前的数据校验 */ - private void validEntityBeforeSave(ServiceWorkOrdersType entity){ + private void validEntityBeforeSave(ServiceWorkOrdersType entity) { //TODO 做一些数据校验,如唯一约束 } @@ -134,7 +138,11 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS @Override @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper().in(ServiceWorkOrdersType::getParentId, ids)); + if (count > 0) { + throw new ServiceException("当前工单类型下存在子级类型,无法直接删除。"); + } //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; @@ -142,18 +150,20 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS /** * 查询【工单类型】树结构 + * * @return 工单类型树结构 */ @Override public List typeTree() { List list = baseMapper.selectVoList(); - return buildTree(list,null); + return buildTree(list, null); } /** * 递归构建树结构 - * @param types 所有类型列表 + * + * @param types 所有类型列表 * @param parentId 父节点id * @return 树结构列表 */