fix:存放位置编码重复校验

This commit is contained in:
FCL
2025-12-01 16:07:59 +08:00
parent 7c7e7b4761
commit 9a2b45e29c
3 changed files with 58 additions and 8 deletions

View File

@@ -87,7 +87,7 @@ public interface ErrorCodeConstants {
ErrorCode CONFIG_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_050_000, "权限配置不存在"); ErrorCode CONFIG_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_050_000, "权限配置不存在");
ErrorCode CONFIG_PERMISSION_DUPLICATE = new ErrorCode(1_032_050_000, "权限配置数据有误"); ErrorCode CONFIG_PERMISSION_DUPLICATE = new ErrorCode(1_032_050_000, "权限配置数据有误");
ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "存放位置不存在"); ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "存放位置不存在");
ErrorCode CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE = new ErrorCode(1_032_050_000, "库位编码重复,请检查库位数据,或联系管理员处理"); ErrorCode CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE = new ErrorCode(1_032_050_000, "库位编码重复,请检查!");
/*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/ /*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/
ErrorCode BUSINESS_SAMPLE_ENTRUST_REGISTRATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记业务不存在"); ErrorCode BUSINESS_SAMPLE_ENTRUST_REGISTRATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记业务不存在");

View File

@@ -17,6 +17,10 @@ import com.zt.plat.framework.common.pojo.PageResult;
public interface ConfigWarehouseLocationService { public interface ConfigWarehouseLocationService {
ConfigWarehouseLocationDO getLocationByCode(String code, String warehouseType); ConfigWarehouseLocationDO getLocationByCode(String code, String warehouseType);
ConfigWarehouseLocationDO getByCode(String code);
void checkCodeUnique(ConfigWarehouseLocationSaveReqVO reqVo);
void checkCodeUniqueWithoutId(ConfigWarehouseLocationSaveReqVO reqVo);
//保存数据 //保存数据
ConfigWarehouseLocationRespVO save(@Valid ConfigWarehouseLocationSaveReqVO reqVO); ConfigWarehouseLocationRespVO save(@Valid ConfigWarehouseLocationSaveReqVO reqVO);

View File

@@ -10,6 +10,7 @@ import com.zt.plat.module.qms.enums.QmsPermissionConstant;
import com.zt.plat.module.qms.enums.QmsWarehouseLocationConstant; import com.zt.plat.module.qms.enums.QmsWarehouseLocationConstant;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.*; import java.util.*;
@@ -42,11 +43,15 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
Long id = reqVo.getId(); Long id = reqVo.getId();
//处理权限 //处理权限
List<ConfigPermissionSaveReqVO> primissionList = reqVo.getPermissionList(); List<ConfigPermissionSaveReqVO> primissionList = reqVo.getPermissionList();
if(id == null){
ConfigWarehouseLocationDO entity = BeanUtils.toBean(reqVo, ConfigWarehouseLocationDO.class); ConfigWarehouseLocationDO entity = BeanUtils.toBean(reqVo, ConfigWarehouseLocationDO.class);
if(id == null){
checkCodeUniqueWithoutId(reqVo);
configWarehouseLocationMapper.insert(entity); configWarehouseLocationMapper.insert(entity);
id = entity.getId(); id = entity.getId();
reqVo.setId( id); reqVo.setId( id);
}else {
checkCodeUnique(reqVo);
configWarehouseLocationMapper.updateById(entity);
} }
for(ConfigPermissionSaveReqVO permission : primissionList){ for(ConfigPermissionSaveReqVO permission : primissionList){
permission.setSourceId( id); permission.setSourceId( id);
@@ -60,6 +65,7 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
public ConfigWarehouseLocationDO getLocationByCode(String code, String warehouseType) { public ConfigWarehouseLocationDO getLocationByCode(String code, String warehouseType) {
LambdaQueryWrapper<ConfigWarehouseLocationDO> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ConfigWarehouseLocationDO> query = new LambdaQueryWrapper<>();
query.eq(ConfigWarehouseLocationDO::getCode, code); query.eq(ConfigWarehouseLocationDO::getCode, code);
if(!ObjectUtils.isEmpty(warehouseType))
query.eq(ConfigWarehouseLocationDO::getWarehouseType, warehouseType); query.eq(ConfigWarehouseLocationDO::getWarehouseType, warehouseType);
query.eq(ConfigWarehouseLocationDO::getDataType, QmsWarehouseLocationConstant.DATA_TYPE_LOCATION); query.eq(ConfigWarehouseLocationDO::getDataType, QmsWarehouseLocationConstant.DATA_TYPE_LOCATION);
// query.last("limit 1"); // query.last("limit 1");
@@ -72,23 +78,63 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
} }
@Override @Override
public ConfigWarehouseLocationRespVO createConfigWarehouseLocation(ConfigWarehouseLocationSaveReqVO createReqVO) { public ConfigWarehouseLocationDO getByCode(String code) {
LambdaQueryWrapper<ConfigWarehouseLocationDO> query = new LambdaQueryWrapper<>();
query.eq(ConfigWarehouseLocationDO::getCode, code);
List<ConfigWarehouseLocationDO> list = configWarehouseLocationMapper.selectList(query);
if(list.size() > 1)
throw exception(CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE);
if(list.isEmpty())
return null;
return list.get(0);
}
@Override
public ConfigWarehouseLocationRespVO createConfigWarehouseLocation(ConfigWarehouseLocationSaveReqVO reqVo) {
// 插入 // 插入
ConfigWarehouseLocationDO configWarehouseLocation = BeanUtils.toBean(createReqVO, ConfigWarehouseLocationDO.class); checkCodeUniqueWithoutId(reqVo);
ConfigWarehouseLocationDO configWarehouseLocation = BeanUtils.toBean(reqVo, ConfigWarehouseLocationDO.class);
configWarehouseLocationMapper.insert(configWarehouseLocation); configWarehouseLocationMapper.insert(configWarehouseLocation);
// 返回 // 返回
return BeanUtils.toBean(configWarehouseLocation, ConfigWarehouseLocationRespVO.class); return BeanUtils.toBean(configWarehouseLocation, ConfigWarehouseLocationRespVO.class);
} }
@Override @Override
public void updateConfigWarehouseLocation(ConfigWarehouseLocationSaveReqVO updateReqVO) { public void updateConfigWarehouseLocation(ConfigWarehouseLocationSaveReqVO reqVo) {
// 校验存在 // 校验存在
validateConfigWarehouseLocationExists(updateReqVO.getId()); validateConfigWarehouseLocationExists(reqVo.getId());
checkCodeUnique(reqVo);
// 更新 // 更新
ConfigWarehouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, ConfigWarehouseLocationDO.class); ConfigWarehouseLocationDO updateObj = BeanUtils.toBean(reqVo, ConfigWarehouseLocationDO.class);
configWarehouseLocationMapper.updateById(updateObj); configWarehouseLocationMapper.updateById(updateObj);
} }
@Override
public void checkCodeUnique(ConfigWarehouseLocationSaveReqVO reqVo) {
String code = reqVo.getCode();
if(ObjectUtils.isEmpty(code)){
return;
}
ConfigWarehouseLocationDO dbData1 = getConfigWarehouseLocation(reqVo.getId());
if(!code.equals(dbData1.getCode())){
ConfigWarehouseLocationDO dbData = getByCode(code);
if(dbData != null){
throw exception(CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE);
}
}
}
@Override
public void checkCodeUniqueWithoutId(ConfigWarehouseLocationSaveReqVO reqVo) {
String code = reqVo.getCode();
if(ObjectUtils.isEmpty(code))
return;
ConfigWarehouseLocationDO dbData = getByCode(code);
if(dbData != null){
throw exception(CONFIG_WAREHOUSE_LOCATION_CODE_DUPLICATE);
}
}
@Override @Override
public void deleteConfigWarehouseLocation(Long id) { public void deleteConfigWarehouseLocation(Long id) {
// 校验存在 // 校验存在