diff --git a/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java b/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java index 69ab62c..6e57606 100644 --- a/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java +++ b/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java @@ -1,13 +1,12 @@ package com.example.liteflow.mysql.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.liteflow.mysql.entity.BaseDataEntity; -import com.example.liteflow.mysql.enums.BaseDataContentTypeEnum; import com.example.liteflow.mysql.mapper.BaseDataMapper; import com.example.liteflow.mysql.model.BaseCenter; import com.example.liteflow.mysql.model.CommonResult; @@ -17,6 +16,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -46,6 +46,14 @@ public class BaseDataServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BaseDataEntity::getTemplateId, templateId) + .eq(BaseDataEntity::getType, type); + BaseDataEntity checkExists = this.getOne(queryWrapper); + if (ObjectUtil.isNotNull(checkExists)) { + return CommonResult.fail("已存在该字段基础数据", createBaseDataFrom); + } BaseDataEntity baseDataEntity = BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class); this.save(baseDataEntity); return CommonResult.success("创建基础数据成功", baseDataEntity); @@ -54,17 +62,24 @@ public class BaseDataServiceImpl extends ServiceImpl createBaseDataFromList) { log.info("进入【批量创建基础数据】方法 = {}", JSONUtil.toJsonStr(createBaseDataFromList)); - List notExistsType = createBaseDataFromList.stream().filter(createBaseDataFrom -> { + List baseDataEntityList = new ArrayList<>(); + for (CreateBaseDataFrom createBaseDataFrom : createBaseDataFromList) { String type = createBaseDataFrom.getType(); Field[] fields = ReflectUtil.getFields(BaseCenter.class); List fieldNameList = Arrays.stream(fields).map(Field::getName).collect(Collectors.toList()); - return !fieldNameList.contains(type); - }).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(notExistsType)) { - return CommonResult.fail("添加数据无对应字段", notExistsType); + if (!fieldNameList.contains(type)) { + return CommonResult.fail("添加数据无对应字段", createBaseDataFrom); + } + String templateId = createBaseDataFrom.getTemplateId(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BaseDataEntity::getTemplateId, templateId) + .eq(BaseDataEntity::getType, type); + BaseDataEntity checkExists = this.getOne(queryWrapper); + if (ObjectUtil.isNotNull(checkExists)) { + return CommonResult.fail("已存在该字段基础数据", createBaseDataFrom); + } + baseDataEntityList.add(BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class)); } - List baseDataEntityList = createBaseDataFromList.stream() - .map(createBaseDataFrom -> BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class)).collect(Collectors.toList()); this.saveBatch(baseDataEntityList); return CommonResult.success("批量创建基础数据成功", baseDataEntityList); }