diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentAddExe.java index a0fccca..96a7841 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentAddExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/DepartmentAddExe.java @@ -10,6 +10,7 @@ import com.zcloud.basic.info.domain.gateway.DepartmentSuperviseGateway; import com.zcloud.basic.info.domain.model.DepartmentE; import com.zcloud.basic.info.domain.model.DepartmentSuperviseE; import com.zcloud.basic.info.dto.DepartmentAddCmd; +import com.zcloud.basic.info.persistence.repository.DepartmentRepository; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -34,13 +35,16 @@ public class DepartmentAddExe { private final DepartmentGateway departmentGateway; private final DepartmentSuperviseGateway departmentSuperviseGateway; - private final DepartmentSuperviseCoConvertor departmentSuperviseCoConvertor; + private final DepartmentRepository departmentRepository; @Transactional(rollbackFor = Exception.class) public Long execute(DepartmentAddCmd cmd) { DepartmentE examTypeE = new DepartmentE(); - + //名字校验重复 + if (departmentRepository.existsByName(cmd.getName())) { + throw new BizException("部门名称已存在"); + } BeanUtils.copyProperties(cmd, examTypeE); Long id = null; try { diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java index 1ce0541..99121c7 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/DepartmentRepository.java @@ -6,6 +6,7 @@ import com.zcloud.basic.info.domain.model.DepartmentE; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; +import javax.validation.constraints.NotEmpty; import java.util.List; import java.util.Map; @@ -33,5 +34,7 @@ public interface DepartmentRepository extends BaseRepository { List listAllTree(); + + boolean existsByName(@NotEmpty(message = "名称不能为空") String name); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java index 1c71111..356417d 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/DepartmentRepositoryImpl.java @@ -123,5 +123,13 @@ public class DepartmentRepositoryImpl extends BaseRepositoryImpl listAllTree() { return departmentMapper.listAllTree(); } + + @Override + public boolean existsByName(String name) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("name", name); + queryWrapper.eq("corpinfo_id", AuthContext.getTenantId()); + return departmentMapper.selectCount(queryWrapper) > 0; + } }