diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java index 1b95f56..f816868 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java @@ -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, "委检登记业务不存在"); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationService.java index ceeda49..2fce44c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationService.java @@ -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); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationServiceImpl.java index 235beca..3431627 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationServiceImpl.java @@ -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 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 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 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 query = new LambdaQueryWrapper<>(); + query.eq(ConfigWarehouseLocationDO::getCode, code); + List 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) { // 校验存在