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_DUPLICATE = 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==================================*/
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 {
ConfigWarehouseLocationDO getLocationByCode(String code, String warehouseType);
ConfigWarehouseLocationDO getByCode(String code);
void checkCodeUnique(ConfigWarehouseLocationSaveReqVO reqVo);
void checkCodeUniqueWithoutId(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 org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import java.util.*;
@@ -42,11 +43,15 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
Long id = reqVo.getId();
//处理权限
List<ConfigPermissionSaveReqVO> primissionList = reqVo.getPermissionList();
ConfigWarehouseLocationDO entity = BeanUtils.toBean(reqVo, ConfigWarehouseLocationDO.class);
if(id == null){
ConfigWarehouseLocationDO entity = BeanUtils.toBean(reqVo, ConfigWarehouseLocationDO.class);
checkCodeUniqueWithoutId(reqVo);
configWarehouseLocationMapper.insert(entity);
id = entity.getId();
reqVo.setId( id);
}else {
checkCodeUnique(reqVo);
configWarehouseLocationMapper.updateById(entity);
}
for(ConfigPermissionSaveReqVO permission : primissionList){
permission.setSourceId( id);
@@ -60,7 +65,8 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
public ConfigWarehouseLocationDO getLocationByCode(String code, String warehouseType) {
LambdaQueryWrapper<ConfigWarehouseLocationDO> query = new LambdaQueryWrapper<>();
query.eq(ConfigWarehouseLocationDO::getCode, code);
query.eq(ConfigWarehouseLocationDO::getWarehouseType, warehouseType);
if(!ObjectUtils.isEmpty(warehouseType))
query.eq(ConfigWarehouseLocationDO::getWarehouseType, warehouseType);
query.eq(ConfigWarehouseLocationDO::getDataType, QmsWarehouseLocationConstant.DATA_TYPE_LOCATION);
// query.last("limit 1");
List<ConfigWarehouseLocationDO> list = configWarehouseLocationMapper.selectList(query);
@@ -72,23 +78,63 @@ public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocati
}
@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);
// 返回
return BeanUtils.toBean(configWarehouseLocation, ConfigWarehouseLocationRespVO.class);
}
@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);
}
@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
public void deleteConfigWarehouseLocation(Long id) {
// 校验存在