zxl
2025-05-29 71f61d13531b3e2a0099ba5afe3f268c99c5bacf
ycl-server/src/main/java/com/ycl/platform/service/impl/DynamicColumnServiceImpl.java
@@ -31,7 +31,9 @@
    private final DynamicColumnMapper dynamicColumnMapper;
    private final static String TABLE_NAME = "t_monitor";
    private final static String TABLE_NAME = "t_yw_point";
    /**
     * 添加
@@ -51,6 +53,23 @@
        entity.setPropName(IdUtils.randomNO(new Date()));
        entity.setCreateTime(new Date());
        entity.setTableName(TABLE_NAME);
        baseMapper.insert(entity);
        return Result.ok("添加成功");
    }
    @Override
    public Result addByTableName(String tableName,DynamicColumnForm form) {
        Long num = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(DynamicColumn::getLabelValue, form.getLabelValue())
                .eq(DynamicColumn::getTableName, tableName)
                .count();
        if (num > 0) {
            throw new RuntimeException("列名称不能重复");
        }
        DynamicColumn entity = DynamicColumnForm.getEntityByForm(form, null);
        entity.setPropName(IdUtils.randomNO(new Date()));
        entity.setCreateTime(new Date());
        entity.setTableName(tableName);
        baseMapper.insert(entity);
        return Result.ok("添加成功");
    }
@@ -77,6 +96,28 @@
                            .set(DynamicColumn::getLabelValue, column.getLabelValue())
                            .update();
                }
            }
        });
        return Result.ok("保存成功");
    }
    @Override
    public Result updateByTableName(String tableName, List<DynamicColumnForm> columnList) {
        columnList.stream().filter(item -> StringUtils.hasText(item.getLabelValue())).forEach(column -> {
            if (Objects.isNull(column.getId())) {
                this.addByTableName(tableName,column);
            } else {
                Long num = new LambdaQueryChainWrapper<>(baseMapper)
                        .eq(DynamicColumn::getTableName, tableName)
                        .eq(DynamicColumn::getLabelValue, column.getLabelValue())
                        .ne(DynamicColumn::getId, column.getId())
                        .count();
                if (num == 0) {
                    new LambdaUpdateChainWrapper<>(baseMapper)
                            .eq(DynamicColumn::getId, column.getId())
                            .set(DynamicColumn::getLabelValue, column.getLabelValue())
                            .update();
                }
            }
        });
@@ -91,8 +132,10 @@
    @Override
    public Result removeById(String id) {
        baseMapper.deleteById(id);
        //todo 删除字段对应值
        return Result.ok("删除成功");
    }
    /**
     * 列表
@@ -102,6 +145,20 @@
    public Result all() {
        List<DynamicColumn> entities = new LambdaQueryChainWrapper<>(baseMapper)
                .orderByAsc(DynamicColumn::getCreateTime)
                .eq(DynamicColumn::getTableName,"t_yw_point")
                .list();
        List<DynamicColumnVO> vos = entities.stream()
                .map(entity -> DynamicColumnVO.getVoByEntity(entity, null))
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result allByTableName(String tableName) {
        List<DynamicColumn> entities = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(DynamicColumn::getTableName,tableName)
                .orderByAsc(DynamicColumn::getCreateTime)
                .list();
        List<DynamicColumnVO> vos = entities.stream()
                .map(entity -> DynamicColumnVO.getVoByEntity(entity, null))