feat:工单类型不分页查询
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run

This commit is contained in:
dev_ljl 2025-08-06 14:00:01 +08:00
parent c78d90a316
commit 2b19146c70
4 changed files with 37 additions and 7 deletions

View File

@ -65,7 +65,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
@SaCheckPermission("system:workOrdersType:query") @SaCheckPermission("system:workOrdersType:query")
@GetMapping("/{id}") @GetMapping("/{id}")
public R<ServiceWorkOrdersTypeVo> getInfo(@NotNull(message = "主键不能为空") public R<ServiceWorkOrdersTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) { @PathVariable("id") Long id) {
return R.ok(serviceWorkOrdersTypeService.queryById(id)); return R.ok(serviceWorkOrdersTypeService.queryById(id));
} }
@ -110,6 +110,18 @@ public class ServiceWorkOrdersTypeController extends BaseController {
@SaCheckPermission("system:workOrdersType:list") @SaCheckPermission("system:workOrdersType:list")
@GetMapping("/typeTree") @GetMapping("/typeTree")
public R<List<ServiceWorkOrdersTypeVo>> typeTree() { public R<List<ServiceWorkOrdersTypeVo>> typeTree() {
return R.ok(serviceWorkOrdersTypeService.typeTree()) ; return R.ok(serviceWorkOrdersTypeService.typeTree());
}
/**
* 工单类型不分页查询
*
* @param bo 工单类型
* @return 工单类型列表
*/
@SaCheckPermission("system:workOrdersType:list")
@GetMapping("/queryList")
public R<List<ServiceWorkOrdersTypeVo>> queryList(ServiceWorkOrdersTypeBo bo) {
return R.ok(serviceWorkOrdersTypeService.queryList(bo));
} }
} }

View File

@ -65,6 +65,7 @@ public class ServiceWorkOrdersType extends TenantEntity {
/** /**
*上级类型id *上级类型id
*/ */
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Long parentId; private Long parentId;
} }

View File

@ -65,4 +65,11 @@ public class ServiceWorkOrdersTypeBo extends BaseEntity {
*/ */
private Long parentId; private Long parentId;
/**
* 是否过滤子级
*/
private Boolean filterSubNodes;
private Long excludeId;
} }

View File

@ -1,6 +1,8 @@
package org.dromara.property.service.impl; package org.dromara.property.service.impl;
import cn.hutool.core.util.IdUtil; 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.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -43,7 +45,7 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS
* @return 工单类型 * @return 工单类型
*/ */
@Override @Override
public ServiceWorkOrdersTypeVo queryById(Long id){ public ServiceWorkOrdersTypeVo queryById(Long id) {
return baseMapper.selectVoById(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.like(StringUtils.isNotBlank(bo.getOrderTypeName()), ServiceWorkOrdersType::getOrderTypeName, bo.getOrderTypeName());
lqw.eq(StringUtils.isNotBlank(bo.getOperationMode()), ServiceWorkOrdersType::getOperationMode, bo.getOperationMode()); lqw.eq(StringUtils.isNotBlank(bo.getOperationMode()), ServiceWorkOrdersType::getOperationMode, bo.getOperationMode());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), ServiceWorkOrdersType::getSearchValue, bo.getSearchValue()); 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; return lqw;
} }
@ -120,7 +124,7 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(ServiceWorkOrdersType entity){ private void validEntityBeforeSave(ServiceWorkOrdersType entity) {
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
@ -134,7 +138,11 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if (isValid) {
Long count = baseMapper.selectCount(new LambdaQueryWrapper<ServiceWorkOrdersType>().in(ServiceWorkOrdersType::getParentId, ids));
if (count > 0) {
throw new ServiceException("当前工单类型下存在子级类型,无法直接删除。");
}
//TODO 做一些业务上的校验,判断是否需要校验 //TODO 做一些业务上的校验,判断是否需要校验
} }
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
@ -142,18 +150,20 @@ public class ServiceWorkOrdersTypeServiceImpl implements IServiceWorkOrdersTypeS
/** /**
* 查询工单类型树结构 * 查询工单类型树结构
*
* @return 工单类型树结构 * @return 工单类型树结构
*/ */
@Override @Override
public List<ServiceWorkOrdersTypeVo> typeTree() { public List<ServiceWorkOrdersTypeVo> typeTree() {
List<ServiceWorkOrdersTypeVo> list = baseMapper.selectVoList(); List<ServiceWorkOrdersTypeVo> list = baseMapper.selectVoList();
return buildTree(list,null); return buildTree(list, null);
} }
/** /**
* 递归构建树结构 * 递归构建树结构
* @param types 所有类型列表 *
* @param types 所有类型列表
* @param parentId 父节点id * @param parentId 父节点id
* @return 树结构列表 * @return 树结构列表
*/ */