| | |
| | | package com.qianwen.smartman.modules.cps.service.impl; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.excel.write.merge.AbstractMergeStrategy; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.core.toolkit.support.SFunction; |
| | | import java.lang.invoke.SerializedLambda; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | import java.util.Set; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import com.qianwen.smartman.common.cache.RegionCache; |
| | | import com.qianwen.smartman.common.constant.CommonConstant; |
| | | import com.qianwen.smartman.common.constant.CommonGroupConstant; |
| | | import com.qianwen.smartman.common.constant.ExcelConstant; |
| | | import com.qianwen.smartman.common.utils.MessageUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import com.alibaba.excel.write.merge.AbstractMergeStrategy; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.qianwen.core.excel.util.ExcelUtil; |
| | | import com.qianwen.core.log.exception.ServiceException; |
| | | import com.qianwen.core.mp.base.BaseServiceImpl; |
| | |
| | | import com.qianwen.core.tool.utils.DateUtil; |
| | | import com.qianwen.core.tool.utils.Func; |
| | | import com.qianwen.core.tool.utils.StringUtil; |
| | | import com.qianwen.smartman.common.constant.CommonConstant; |
| | | import com.qianwen.smartman.common.constant.CommonGroupConstant; |
| | | import com.qianwen.smartman.common.constant.ExcelConstant; |
| | | import com.qianwen.smartman.common.utils.MessageUtils; |
| | | import com.qianwen.smartman.modules.cps.convert.WarehouseStationConvert; |
| | | import com.qianwen.smartman.modules.cps.entity.MaterialStorage; |
| | | import com.qianwen.smartman.modules.cps.entity.TrayStorage; |
| | | import com.qianwen.smartman.modules.cps.entity.WarehouseArea; |
| | | import com.qianwen.smartman.modules.cps.entity.WarehouseGrid; |
| | | import com.qianwen.smartman.modules.cps.entity.WarehouseStation; |
| | | import com.qianwen.smartman.modules.cps.excel.WarehouseStationExcel; |
| | | import com.qianwen.smartman.modules.cps.excel.WarehouseStationImport; |
| | |
| | | import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; |
| | | import com.qianwen.smartman.modules.system.service.ICodeGeneratorService; |
| | | import com.qianwen.smartman.modules.tpm.enums.MetaTypeEnum; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | |
| | | @Service |
| | | /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/service/impl/WarehouseStationServiceImpl.class */ |
| | |
| | | public static final Integer TYPE_CODE = 1; |
| | | public static final Integer TYPE_NAME = 2; |
| | | |
| | | private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { |
| | | String implMethodName = lambda.getImplMethodName(); |
| | | boolean z = true; |
| | | switch (implMethodName.hashCode()) { |
| | | case -2090991943: |
| | | if (implMethodName.equals("getStationId")) { |
| | | z = true; |
| | | break; |
| | | } |
| | | break; |
| | | case -633192478: |
| | | if (implMethodName.equals("getWarehouseStationId")) { |
| | | z = false; |
| | | break; |
| | | } |
| | | break; |
| | | case -75622813: |
| | | if (implMethodName.equals("getCode")) { |
| | | z = true; |
| | | break; |
| | | } |
| | | break; |
| | | case 98245393: |
| | | if (implMethodName.equals("getId")) { |
| | | z = true; |
| | | break; |
| | | } |
| | | break; |
| | | case 286461310: |
| | | if (implMethodName.equals("getAreaId")) { |
| | | z = true; |
| | | break; |
| | | } |
| | | break; |
| | | case 1929248666: |
| | | if (implMethodName.equals("getWarehouseCode")) { |
| | | z = true; |
| | | break; |
| | | } |
| | | break; |
| | | case 1929563192: |
| | | if (implMethodName.equals("getWarehouseName")) { |
| | | z = true; |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | switch (z) { |
| | | case false: |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/MaterialStorage") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getWarehouseStationId(); |
| | | }; |
| | | } |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/TrayStorage") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getWarehouseStationId(); |
| | | }; |
| | | } |
| | | break; |
| | | case true: |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseGrid") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getStationId(); |
| | | }; |
| | | } |
| | | break; |
| | | case true: |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseStation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { |
| | | return (v0) -> { |
| | | return v0.getWarehouseCode(); |
| | | }; |
| | | } |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseStation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { |
| | | return (v0) -> { |
| | | return v0.getWarehouseCode(); |
| | | }; |
| | | } |
| | | break; |
| | | case true: |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getId(); |
| | | }; |
| | | } |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getId(); |
| | | }; |
| | | } |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getId(); |
| | | }; |
| | | } |
| | | break; |
| | | case true: |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseStation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { |
| | | return (v0) -> { |
| | | return v0.getWarehouseName(); |
| | | }; |
| | | } |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseStation") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { |
| | | return (v0) -> { |
| | | return v0.getWarehouseName(); |
| | | }; |
| | | } |
| | | break; |
| | | case RegionCache.VILLAGE_LEVEL /* 5 */: |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseArea") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { |
| | | return (v0) -> { |
| | | return v0.getCode(); |
| | | }; |
| | | } |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseArea") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { |
| | | return (v0) -> { |
| | | return v0.getCode(); |
| | | }; |
| | | } |
| | | break; |
| | | case true: |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseStation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getAreaId(); |
| | | }; |
| | | } |
| | | if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/WarehouseStation") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { |
| | | return (v0) -> { |
| | | return v0.getAreaId(); |
| | | }; |
| | | } |
| | | break; |
| | | } |
| | | throw new IllegalArgumentException("Invalid lambda deserialization"); |
| | | } |
| | | |
| | | public WarehouseStationServiceImpl(final WarehouseGridMapper warehouseGridMapper, final WarehouseAreaMapper warehouseAreaMapper, final OssBuilder ossBuilder, final WarehouseStationMapper warehouseStationMapper, final MaterialStorageMapper storageMapper, final ITrayStorageService trayStorageService, final ICodeGeneratorService codeGeneratorService) { |
| | | this.warehouseGridMapper = warehouseGridMapper; |
| | |
| | | @Override // org.springblade.modules.cps.service.IWarehouseStationService |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Boolean deleteByIds(List<Long> ids) { |
| | | |
| | | |
| | | Long gridCont = this.warehouseGridMapper.selectCount(new QueryWrapper<WarehouseGrid>().lambda().in(WarehouseGrid::getStationId, ids)); |
| | | Long materialCount = this.storageMapper.selectCount(Wrappers.lambdaQuery(MaterialStorage.class).in(MaterialStorage::getWarehouseStationId, ids)); |
| | | long trayStorageCount = this.trayStorageService.count(Wrappers.lambdaQuery(TrayStorage.class).in(TrayStorage::getWarehouseStationId, ids)); |
| | | |
| | | /* |
| | | Long gridCont = this.warehouseGridMapper.selectCount((Wrapper) new QueryWrapper().lambda().in((v0) -> { |
| | | return v0.getStationId(); |
| | | }, ids)); |
| | |
| | | long trayStorageCount = this.trayStorageService.count((Wrapper) Wrappers.lambdaQuery(TrayStorage.class).in((v0) -> { |
| | | return v0.getWarehouseStationId(); |
| | | }, ids)); |
| | | */ |
| | | if (gridCont.longValue() > 0) { |
| | | throw new ServiceException(MessageUtils.message("cps.warehouse.station.not.delete", new Object[0])); |
| | | } |
| | |
| | | throw new ServiceException(MessageUtils.message("excel.import.size.failed", new Object[0])); |
| | | } |
| | | checkImportData(warehouseStationImports); |
| | | List<WarehouseStationImport> fails = (List) warehouseStationImports.stream().filter(w -> { |
| | | List<WarehouseStationImport> fails = warehouseStationImports.stream().filter(w -> { |
| | | return StrUtil.isNotEmpty(w.getFailReason()); |
| | | }).collect(Collectors.toList()); |
| | | if (fails.size() > CommonConstant.ZERO.intValue()) { |
| | |
| | | } |
| | | |
| | | private void saveWarehouseStation(List<WarehouseStationImport> success) { |
| | | List<WarehouseStation> stationList = (List) success.parallelStream().map(station -> { |
| | | List<WarehouseStation> stationList = success.parallelStream().map(station -> { |
| | | WarehouseArea area = AREAS_CACHE.get(station.getWarehouseAreaCode()); |
| | | WarehouseStation warehouseStation = WarehouseStationConvert.INSTANCE.convert(station); |
| | | warehouseStation.setAreaId(area.getId()); |
| | |
| | | } |
| | | |
| | | private void checkImportData(List<WarehouseStationImport> imports) { |
| | | List<String> includeAreaCodes = (List) imports.parallelStream().map((v0) -> { |
| | | List<String> includeAreaCodes = imports.parallelStream().map((v0) -> { |
| | | return v0.getWarehouseAreaCode(); |
| | | }).collect(Collectors.toList()); |
| | | List<WarehouseArea> warehouseAreas = this.warehouseAreaMapper.selectList(((LambdaQueryWrapper) Wrappers.lambdaQuery(WarehouseArea.class).in((v0) -> { |
| | | return v0.getCode(); |
| | | }, includeAreaCodes)).select(new SFunction[]{(v0) -> { |
| | | return v0.getId(); |
| | | }, (v0) -> { |
| | | return v0.getCode(); |
| | | }})); |
| | | Map<String, WarehouseArea> areaMap = (Map) warehouseAreas.parallelStream().collect(Collectors.toMap((v0) -> { |
| | | List<WarehouseArea> warehouseAreas = this.warehouseAreaMapper.selectList(Wrappers.lambdaQuery(WarehouseArea.class) |
| | | .in(WarehouseArea::getCode, includeAreaCodes) |
| | | .select(WarehouseArea::getId, WarehouseArea::getCode )); |
| | | |
| | | |
| | | Map<String, WarehouseArea> areaMap = warehouseAreas.parallelStream().collect(Collectors.toMap((v0) -> { |
| | | return v0.getCode(); |
| | | }, warehouseArea -> { |
| | | return warehouseArea; |
| | | }, oldVal, currVal -> { |
| | | }, (oldVal, currVal) -> { |
| | | return currVal; |
| | | })); |
| | | Map<Long, WarehouseArea> areaIdMap = (Map) warehouseAreas.parallelStream().collect(Collectors.toMap((v0) -> { |
| | | Map<Long, WarehouseArea> areaIdMap = warehouseAreas.parallelStream().collect(Collectors.toMap((v0) -> { |
| | | return v0.getId(); |
| | | }, warehouseArea2 -> { |
| | | return warehouseArea2; |
| | | }, oldVal2, currVal2 -> { |
| | | }, (oldVal2, currVal2) -> { |
| | | return currVal2; |
| | | })); |
| | | AREAS_CACHE.putAll(areaMap); |
| | | List<String> importCodes = (List) imports.parallelStream().map((v0) -> { |
| | | List<String> importCodes = imports.parallelStream().map((v0) -> { |
| | | return v0.getWarehouseCode(); |
| | | }).collect(Collectors.toList()); |
| | | List<String> importNames = (List) imports.parallelStream().map((v0) -> { |
| | | List<String> importNames = imports.parallelStream().map((v0) -> { |
| | | return v0.getWarehouseName(); |
| | | }).collect(Collectors.toList()); |
| | | List<WarehouseStation> warehouseStations = (List) list((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery(WarehouseStation.class).in((v0) -> { |
| | | return v0.getWarehouseCode(); |
| | | }, importCodes)).or()).in((v0) -> { |
| | | return v0.getWarehouseName(); |
| | | }, importNames)).parallelStream().peek(w -> { |
| | | w.setWarehouseAreaCode(((WarehouseArea) areaIdMap.get(w.getAreaId())).getCode()); |
| | | }).collect(Collectors.toList()); |
| | | List<WarehouseStation> warehouseStations = list(Wrappers.lambdaQuery(WarehouseStation.class) |
| | | .in(WarehouseStation::getWarehouseCode, importCodes) |
| | | .or().in(WarehouseStation::getWarehouseName, importNames)) |
| | | .parallelStream().peek(w -> { |
| | | w.setWarehouseAreaCode(((WarehouseArea) areaIdMap.get(w.getAreaId())).getCode()); |
| | | }).collect(Collectors.toList()); |
| | | |
| | | Map<String, Object> stationCodeMap = getVerifyList(Boolean.TRUE, warehouseStations); |
| | | Map<String, Object> stationNameMap = getVerifyList(Boolean.FALSE, warehouseStations); |
| | | imports.parallelStream().forEachOrdered(stationImport -> { |
| | |
| | | Function<WarehouseStation, String> function = x -> { |
| | | return isCode.booleanValue() ? x.getWarehouseAreaCode() + "-" + x.getWarehouseCode() : x.getWarehouseAreaCode() + "-" + x.getWarehouseName(); |
| | | }; |
| | | |
| | | return warehouseStations.parallelStream().collect(HashMap::new, (map, item) -> map.put(function.apply(item), null), HashMap::putAll); |
| | | /* |
| | | return (HashMap) warehouseStations.parallelStream().collect(HashMap::new, map, item -> { |
| | | map.put(function.apply(item), null); |
| | | }, (v0, v1) -> { |
| | | v0.putAll(v1); |
| | | }); |
| | | });*/ |
| | | } |
| | | |
| | | private Boolean exitsArea(String areaCode, List<WarehouseArea> warehouseAreas) { |
| | |
| | | } |
| | | |
| | | public void verifyCodeAndName(WarehouseStationVO warehouseStation) { |
| | | LambdaQueryWrapper<WarehouseStation> codeWrapper = Wrappers.lambdaQuery(WarehouseStation.class).eq(WarehouseStation::getAreaId, warehouseStation.getAreaId()).ne(Func.isNotEmpty(warehouseStation.getId()), WarehouseStation::getId, warehouseStation.getId()).eq(WarehouseStation::getWarehouseCode, warehouseStation.getWarehouseCode()); |
| | | LambdaQueryWrapper<WarehouseStation> nameWrapper = Wrappers.lambdaQuery(WarehouseStation.class).eq(WarehouseStation::getAreaId, warehouseStation.getAreaId()).ne(Func.isNotEmpty(warehouseStation.getId()), WarehouseStation::getId, warehouseStation.getId()).eq(WarehouseStation::getWarehouseName, warehouseStation.getWarehouseName()); |
| | | /* |
| | | LambdaQueryWrapper<WarehouseStation> codeWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery(WarehouseStation.class).eq((v0) -> { |
| | | return v0.getAreaId(); |
| | | }, warehouseStation.getAreaId())).ne(Func.isNotEmpty(warehouseStation.getId()), (v0) -> { |
| | |
| | | return v0.getId(); |
| | | }, warehouseStation.getId()).eq((v0) -> { |
| | | return v0.getWarehouseName(); |
| | | }, warehouseStation.getWarehouseName()); |
| | | }, warehouseStation.getWarehouseName());*/ |
| | | long codeCount = count(codeWrapper); |
| | | if (codeCount > 0) { |
| | | throw new ServiceException(MessageUtils.message("cps.warehouse.station.code.is.not.only", new Object[0])); |