提交 c9fe4a85 authored 作者: zjm's avatar zjm

fix(单位模块): 添加了单位名称重复的验证

添加了单位名称重复的验证
上级 c818c392
......@@ -103,7 +103,7 @@ public class UnitsCache {
* 根据单位名称查询是否存在
*/
public boolean isNotName(String name){
return new ArrayList<>(idMap.values()).stream().allMatch(units -> !units.getName().equals(name));
return new ArrayList<>(idMap.values()).stream().noneMatch(units -> units.getName().equals(name));
}
}
......@@ -25,6 +25,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
......@@ -495,6 +496,10 @@ public class UnitsServiceImpl implements UnitsService {
@Override
public List<Units> saveUnits(UnitsAddVo unitsAddVo) {
if (!unitsCache.isNotName(unitsAddVo.getName())){
throw new ApiException(ResponseEntity.status(20020).body("单位名称重复"));
}
Units units= unitsAddVo.toUnits();
//查询上级设备的单位
Units parentUnits=unitsCache.findById(unitsAddVo.getParentUnitId());
......@@ -537,6 +542,7 @@ public class UnitsServiceImpl implements UnitsService {
}
}
@Override
@Transactional
public Units updateUnit(Units units) {
Units unitsOld=unitsCache.findById(units.getUnitId());
if (!units.getLevel().equals(unitsOld.getLevel())){
......@@ -573,6 +579,12 @@ public class UnitsServiceImpl implements UnitsService {
sortingUnit(unitsOld.getShowOrder(),units.getShowOrder());
}
}
if (!unitsOld.getName().equals(units.getName())){
if (!unitsCache.isNotName(units.getName())){
throw new ApiException(ResponseEntity.status(20020).body("单位名称重复"));
}
}
unitsDao.save(units);
unitsCache.refresh(unitsDao.findAll());
areaCache.refresh(areaDao.findAll());
......@@ -640,10 +652,11 @@ public class UnitsServiceImpl implements UnitsService {
}
@Override
@Transactional
public Units save(Units units) {
// if (!unitsCache.isNotName(units.getName())){
//
// }
if (unitsCache.isNotName(units.getName())){
throw new ApiException(ResponseEntity.status(20020).body("单位名称重复"));
}
if (units.getAreaId() != null && units.getAreaId() != 0) {
Optional<Area> optionalArea = areaDao.findById(units.getAreaId());
if (optionalArea.isPresent()) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论