From 7d02e262658b94ba555ca30f9503b43be4c0ace6 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 21 五月 2025 08:43:16 +0800 Subject: [PATCH] #容器管理 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java | 21 ++++++++-- rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/BasStation.java | 16 +++----- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java | 54 +++++++++------------------ 3 files changed, 41 insertions(+), 50 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java index 5793052..be29dcb 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java @@ -1,14 +1,13 @@ package com.vincent.rsf.server.api.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.service.AgvService; -import com.vincent.rsf.server.manager.entity.BasStation; -import com.vincent.rsf.server.manager.entity.WaitPakin; -import com.vincent.rsf.server.manager.entity.WaitPakinItem; -import com.vincent.rsf.server.manager.entity.WarehouseAreas; +import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.PakinIOStatus; import com.vincent.rsf.server.manager.enums.StaUseStatusType; import com.vincent.rsf.server.manager.service.*; @@ -18,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -34,6 +34,8 @@ private WarehouseAreasService warehouseAreasService; @Autowired private TaskService taskService; + @Autowired + private BasContainerService basContainerService; @Override @Transactional(rollbackFor = Exception.class) @@ -256,6 +258,17 @@ if (!basStation.getUseStatus().equals("O")){ throw new CoolException("绔欑偣鐘舵�佷笉涓虹┖闂�"); } + Object parse = JSONArray.parse(basStation.getContainerType()); + List<BasContainer> containers = basContainerService.list( + new LambdaQueryWrapper<BasContainer>() + .in(BasContainer::getContainerType, parse) + ); + boolean matches = containers.stream() + .map(BasContainer::getCodeType) + .anyMatch(codeType -> barcode.matches(codeType)); + if (!matches) { + throw new CoolException("鏉$爜涓庣珯鐐逛笉鍖归厤"); + } return basStation; } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java index 60cde28..ce8d052 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java @@ -1,5 +1,7 @@ package com.vincent.rsf.server.manager.controller; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; @@ -34,22 +36,12 @@ PageParam<BasStation, BaseParam> page = basStationService.page(pageParam, pageParam.buildWrapper(true)); for (BasStation station : page.getRecords()) { if (!Cools.isEmpty(station.getCrossZoneArea())) { - String content = station.getCrossZoneArea().substring(1, station.getCrossZoneArea().length() - 1); - String[] parts = content.split(","); - Long[] longArray = new Long[parts.length]; - for (int i = 0; i < parts.length; i++) { - longArray[i] = Long.parseLong(parts[i].trim()); - } - station.setAreaIds(longArray); + List<Long> longs1 = JSONObject.parseArray(station.getCrossZoneArea(), Long.class); + station.setAreaIds(longs1); } if (!Cools.isEmpty(station.getContainerType())) { - String content = station.getContainerType().substring(1, station.getContainerType().length() - 1); - String[] parts = content.split(","); - Long[] longArray = new Long[parts.length]; - for (int i = 0; i < parts.length; i++) { - longArray[i] = Long.parseLong(parts[i].trim()); - } - station.setContainerTypes(longArray); + List<Long> longs1 = JSONObject.parseArray(station.getContainerType(), Long.class); + station.setContainerTypes(longs1); } } @@ -72,26 +64,16 @@ @GetMapping("/basStation/{id}") public R get(@PathVariable("id") Long id) { BasStation station = basStationService.getById(id); - - if (!Cools.isEmpty(station.getCrossZoneArea())) { - String content = station.getCrossZoneArea().substring(1, station.getCrossZoneArea().length() - 1); - String[] parts = content.split(","); - Long[] longArray = new Long[parts.length]; - for (int i = 0; i < parts.length; i++) { - longArray[i] = Long.parseLong(parts[i].trim()); - } - station.setAreaIds(longArray); + List<Long> longs1 = JSONObject.parseArray(station.getCrossZoneArea(), Long.class); + station.setAreaIds(longs1); } if (!Cools.isEmpty(station.getContainerType())) { - String content = station.getContainerType().substring(1, station.getContainerType().length() - 1); - String[] parts = content.split(","); - Long[] longArray = new Long[parts.length]; - for (int i = 0; i < parts.length; i++) { - longArray[i] = Long.parseLong(parts[i].trim()); - } - station.setContainerTypes(longArray); + List<Long> longs1 = JSONObject.parseArray(station.getContainerType(), Long.class); + station.setContainerTypes(longs1); } + + return R.ok().add(station); } @@ -109,10 +91,10 @@ return R.error(basStation.getStationName()+"绔欏凡琚垵濮嬪寲"); } if (null !=basStation.getAreaIds()){ - basStation.setCrossZoneArea(Arrays.toString(basStation.getAreaIds())); + basStation.setCrossZoneArea(basStation.getAreaIds().toString()); } if (null !=basStation.getContainerTypes()){ - basStation.setContainerType(Arrays.toString(basStation.getContainerTypes())); + basStation.setContainerType(basStation.getContainerTypes().toString()); } if (!basStationService.save(basStation)) { return R.error("淇濆瓨澶辫触"); @@ -126,11 +108,11 @@ public R update(@RequestBody BasStation basStation) { basStation.setUpdateBy(getLoginUserId()); basStation.setUpdateTime(new Date()); - if (null !=basStation.getAreaIds()){ - basStation.setCrossZoneArea(Arrays.toString(basStation.getAreaIds())); + if (null !=basStation.getAreaIds() && !basStation.getContainerTypes().isEmpty()){ + basStation.setCrossZoneArea(basStation.getAreaIds().toString()); } - if (null !=basStation.getContainerTypes()){ - basStation.setContainerType(Arrays.toString(basStation.getContainerTypes())); + if (null != basStation.getContainerTypes() && !basStation.getContainerTypes().isEmpty()){ + basStation.setContainerType(basStation.getContainerTypes().toString()); } if (null !=basStation.getUseStatus() && basStation.getUseStatus().equals(StaUseStatusType.TYPE_O.type)){ basStation.setBarcode(null); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/BasStation.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/BasStation.java index c5ddc4b..c204d8b 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/BasStation.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/BasStation.java @@ -4,6 +4,7 @@ import java.util.*; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.server.manager.service.WarehouseAreasService; @@ -150,10 +151,10 @@ private Long tenantId; @TableField(exist = false) - private Long[] areaIds; + private List<Long> areaIds; @TableField(exist = false) - private Long[] containerTypes; + private List<Long> containerTypes; public BasStation() {} @@ -185,16 +186,11 @@ } DictDataService service = SpringUtils.getBean(DictDataService.class); - - String content = this.getContainerType().substring(1, this.getContainerType().length() - 1); - String[] parts = content.split(","); - Long[] longArray = new Long[parts.length]; - for (int i = 0; i < parts.length; i++) { - longArray[i] = Long.parseLong(parts[i].trim()); - } + Object parse = JSONArray.parse(this.getContainerType()); + List<Long> longs1 = JSONObject.parseArray(parse.toString(), Long.class); List<DictData> dictData = service.list(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, "sys_container_type") - .in(DictData::getValue, longArray) + .in(DictData::getValue, longs1) ); List<Long> longs = dictData.stream().map(DictData::getId).collect(Collectors.toList()); return longs; -- Gitblit v1.9.1