fix:存放位置编码重复校验
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
// 校验存在
|
||||
|
||||
Reference in New Issue
Block a user