mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-13 00:54:59 +08:00
[feat] 新增客户和供应商信息重复校验
- 在创建客户和供应商时增加名称和组织机构代码的重复性校验- 新增相应的错误码和异常处理 - 优化了数据插入逻辑,确保数据的唯一性和完整性
This commit is contained in:
parent
46f43d25aa
commit
a2ff69ca03
@ -3,6 +3,13 @@ package cn.iocoder.yudao.module.pm.enums;
|
|||||||
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||||
|
|
||||||
public interface ErrorCodeConstants {
|
public interface ErrorCodeConstants {
|
||||||
|
// 客户
|
||||||
ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1_060_000_000, "客户信息不存在");
|
ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1_060_000_000, "客户信息不存在");
|
||||||
|
ErrorCode CUSTOMER_NAME_DUPLICATE = new ErrorCode(1_060_000_001, "客户名称重复");
|
||||||
|
ErrorCode CUSTOMER_CODE_DUPLICATE = new ErrorCode(1_060_000_002, "组织机构代码重复");
|
||||||
|
|
||||||
|
// 供应商
|
||||||
ErrorCode SUBCONTRACTOR_NOT_EXISTS = new ErrorCode(1_061_000_000, "供应商信息不存在");
|
ErrorCode SUBCONTRACTOR_NOT_EXISTS = new ErrorCode(1_061_000_000, "供应商信息不存在");
|
||||||
|
ErrorCode SUBCONTRACTOR_NAME_DUPLICATE = new ErrorCode(1_061_000_001, "供应商名称重复");
|
||||||
|
ErrorCode SUBCONTRACTOR_CODE_DUPLICATE = new ErrorCode(1_061_000_002, "组织机构代码重复");
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.pm.service.customer;
|
package cn.iocoder.yudao.module.pm.service.customer;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -31,6 +32,8 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createCustomer(CustomerSaveReqVO createReqVO) {
|
public Long createCustomer(CustomerSaveReqVO createReqVO) {
|
||||||
|
// 新增时校验code和name是否重复
|
||||||
|
validateCustomerDuplicate(createReqVO.getName(), createReqVO.getCode());
|
||||||
// 插入
|
// 插入
|
||||||
CustomerDO customer = BeanUtils.toBean(createReqVO, CustomerDO.class);
|
CustomerDO customer = BeanUtils.toBean(createReqVO, CustomerDO.class);
|
||||||
customerMapper.insert(customer);
|
customerMapper.insert(customer);
|
||||||
@ -38,6 +41,28 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
return customer.getId();
|
return customer.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验客户信息是否重复
|
||||||
|
*
|
||||||
|
* 此方法主要用于检查数据库中是否已存在相同的客户名称或组织机构代码,以避免重复录入
|
||||||
|
* 如果客户名称或组织机构代码已存在于数据库中,则抛出相应的异常
|
||||||
|
*
|
||||||
|
* @param name 客户名称,用于检查名称重复性
|
||||||
|
* @param code 组织机构代码,用于检查代码重复性
|
||||||
|
*/
|
||||||
|
private void validateCustomerDuplicate(@NotEmpty(message = "客户名称不能为空") Object name,
|
||||||
|
@NotEmpty(message = "组织机构代码不能为空") String code) {
|
||||||
|
// 检查客户名称是否已存在于数据库中
|
||||||
|
if (customerMapper.selectCount(CustomerDO::getName, name) > 0) {
|
||||||
|
throw exception(CUSTOMER_NAME_DUPLICATE);
|
||||||
|
}
|
||||||
|
// 检查组织机构代码是否已存在于数据库中
|
||||||
|
if (customerMapper.selectCount(CustomerDO::getCode, code) > 0) {
|
||||||
|
throw exception(CUSTOMER_CODE_DUPLICATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateCustomer(CustomerSaveReqVO updateReqVO) {
|
public void updateCustomer(CustomerSaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.pm.service.subcontractor;
|
package cn.iocoder.yudao.module.pm.service.subcontractor;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -31,6 +32,9 @@ public class SubcontractorServiceImpl implements SubcontractorService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createSubcontractor(SubcontractorSaveReqVO createReqVO) {
|
public Long createSubcontractor(SubcontractorSaveReqVO createReqVO) {
|
||||||
|
// 校验
|
||||||
|
validateSubcontractorDuplicate(createReqVO.getName(), createReqVO.getCode());
|
||||||
|
|
||||||
// 插入
|
// 插入
|
||||||
SubcontractorDO subcontractor = BeanUtils.toBean(createReqVO, SubcontractorDO.class);
|
SubcontractorDO subcontractor = BeanUtils.toBean(createReqVO, SubcontractorDO.class);
|
||||||
subcontractorMapper.insert(subcontractor);
|
subcontractorMapper.insert(subcontractor);
|
||||||
@ -38,6 +42,21 @@ public class SubcontractorServiceImpl implements SubcontractorService {
|
|||||||
return subcontractor.getId();
|
return subcontractor.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验供应商信息是否重复
|
||||||
|
* @param name 名称
|
||||||
|
* @param code 组织机构编码
|
||||||
|
*/
|
||||||
|
private void validateSubcontractorDuplicate(@NotEmpty(message = "供应商名称不能为空") String name,
|
||||||
|
@NotEmpty(message = "组织机构代码不能为空") String code) {
|
||||||
|
if (subcontractorMapper.selectCount(SubcontractorDO::getName, name) > 0) {
|
||||||
|
throw exception(SUBCONTRACTOR_NAME_DUPLICATE);
|
||||||
|
}
|
||||||
|
if (subcontractorMapper.selectCount(SubcontractorDO::getCode, code) > 0) {
|
||||||
|
throw exception(SUBCONTRACTOR_CODE_DUPLICATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateSubcontractor(SubcontractorSaveReqVO updateReqVO) {
|
public void updateSubcontractor(SubcontractorSaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
|
Loading…
Reference in New Issue
Block a user