From 83bc1f1a90037d4058a7530b9ee1e514389067aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=ABUmbrella?= <2539020564@qq.com> Date: Tue, 31 Mar 2026 20:24:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=B5=81=E6=94=B9=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BsWorkCenterServiceImpl.java | 4 +- .../controller/StationController.java | 3 +- .../desk/logistics/mapper/StationMapper.xml | 38 ++++++++--- .../service/impl/IOrderBoxServiceImpl.java | 5 +- .../service/impl/StationServiceImpl.java | 64 +++++++++++++++++-- .../service/impl/YieldOrderServiceImpl.java | 10 ++- 6 files changed, 105 insertions(+), 19 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsWorkCenterServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsWorkCenterServiceImpl.java index 1704caa1..88ca28a9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsWorkCenterServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsWorkCenterServiceImpl.java @@ -36,6 +36,8 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -83,7 +85,7 @@ public class BsWorkCenterServiceImpl extends BaseServiceImpl result = freeStationList.stream() // 1. 过滤:只保留【指定字段 == 指定值】的数据(值一致才保留) - .filter(item -> item.getWcId()==id) + .filter(item -> item.getWcId().equals(id)) // 2. 提取你要的字段 .map(StationVO::getStationRegion) // 3. 自动去重 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/StationController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/StationController.java index 076b45f1..127b27a6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/StationController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/StationController.java @@ -3,6 +3,7 @@ package org.springblade.desk.logistics.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.AllArgsConstructor; @@ -56,7 +57,7 @@ public class StationController { @GetMapping("/getStationList") @ApiOperationSupport(order = 1) @Operation(summary = "分页", description = "获取站点列表") - public R> getStationList(StationVO station, Query query) { + public R> getStationList(@Parameter(hidden = true)StationVO station, Query query) { IPage pages = stationService.getStationList(Condition.getPage(query), station); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml index d7003b62..040565d9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml @@ -16,24 +16,45 @@ @@ -51,6 +72,7 @@ and l.STATION_STATUS != #{stationStatus} + and r.WC_ID = #{wcId} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java index 160af82c..3d083e0c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java @@ -260,6 +260,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { .distinct() .collect(Collectors.toList()); List wcVOList = bsWorkCenterService.getByIds(wcIdList, freeStationList); + System.out.println("wcVOList = " + wcVOList); if (!CollectionUtils.isEmpty(wcVOList)) { resultList.addAll(wcVOList); log.info("【回库工位查询】查询到{}个空闲工位", wcVOList.size()); @@ -1253,7 +1254,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { Long workCenterId; // 根据工序状态判断使用当前工序还是下一道工序 - if (workPlan.getStatus() > 3) { + if (workPlan.getStatus() < 3) { workCenterId = workPlan.getWorkCenterId(); } else { @@ -1288,7 +1289,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { PrWorkPlan workPlan = workPlanList.get(0); Long workCenterId; - if (workPlan.getCurStatus() > 3) { + if (workPlan.getCurStatus() < 3) { workCenterId = workPlan.getWcId(); } else { List nextWorkPlanList = prWorkPlanService.lambdaQuery() diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java index c97eb02f..47b5af6c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java @@ -42,7 +42,8 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 物流站点 服务类 @@ -82,23 +83,74 @@ public class StationServiceImpl extends BaseServiceImpl @Override public IPage getStationList(IPage page, Station station) { - List stationList = baseMapper.selectStationList(page, station); - if(CollectionUtils.isEmpty(stationList)){ + + if (CollectionUtils.isEmpty(stationList)) { return page.setRecords(stationList); } + // 填充工作中心名称 for (StationVO stationVO : stationList) { - if(null != stationVO && null != stationVO.getWcId()){ + if (null != stationVO && null != stationVO.getWcId()) { WorkCenter workCenter = workCenterService.getById(stationVO.getWcId()); - if(null != workCenter && !StringUtils.isEmpty(workCenter.getWcName())){ + if (null != workCenter && !StringUtils.isEmpty(workCenter.getWcName())) { stationVO.setWcName(workCenter.getWcName()); } } + } + + // 合并数据:除wcId和wcName外其他字段相同的记录,wcName用顿号拼接 + List mergedList = mergeStationList(stationList); + + return page.setRecords(mergedList); + } + /** + * 合并站点列表:除wcId和wcName外其他字段相同的记录,wcName用顿号拼接 + */ + private List mergeStationList(List stationList) { + // 使用Map分组,key为除wcId和wcName外的其他字段组合 + Map> groupMap = new LinkedHashMap<>(); + + for (StationVO vo : stationList) { + String key = buildGroupKey(vo); + groupMap.computeIfAbsent(key, k -> new ArrayList<>()).add(vo); + } + + List result = new ArrayList<>(); + for (List group : groupMap.values()) { + if (group.size() == 1) { + result.add(group.get(0)); + } else { + // 合并:保留第一条,wcName用顿号拼接(去重) + StationVO merged = group.get(0); + String mergedWcName = group.stream() + .map(StationVO::getWcName) + .filter(name -> !StringUtils.isEmpty(name)) + .distinct() + .collect(Collectors.joining("、")); + merged.setWcName(mergedWcName); + result.add(merged); + } } - return page.setRecords(stationList); + return result; + } + + /** + * 构建分组key(排除wcId和wcName) + */ + private String buildGroupKey(StationVO vo) { + // 使用站点核心字段构建分组key + return String.join("|", + String.valueOf(vo.getId()), + vo.getStationName(), + vo.getStationPosition(), + vo.getStationCode(), + String.valueOf(vo.getStationStatus()), + vo.getRemark(), + vo.getStationRegion() + ); } @Override diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 68c8c52e..8cdba59d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -32,6 +32,8 @@ import org.springblade.desk.dashboard.pojo.vo.PartCraftVO; import org.springblade.desk.dashboard.service.IDsCraftService; import org.springblade.desk.dashboard.service.IDsPartService; import org.springblade.desk.dashboard.service.IDsProcessService; +import org.springblade.desk.logistics.pojo.entity.PrYieldOrder; +import org.springblade.desk.logistics.service.IPrYieldOrderService; import org.springblade.desk.order.constant.YieldOrderConst; import org.springblade.desk.order.mapper.YieldOrderMapper; import org.springblade.desk.order.mapper.YieldPlanMapper; @@ -73,6 +75,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl list = list(new LambdaQueryWrapper().eq(YieldOrder::getCardNo, cardNo)); if (list==null||list.size()==0) { +// return R.fail("路线卡号未查询到详情"); + List yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper().eq(PrYieldOrder::getCardNo, cardNo)); + if (yieldOrderList==null||yieldOrderList.size()==0) { return R.fail("路线卡号未查询到详情"); - } + } + return R.data(yieldOrderList.get(0)); + } return R.data(list.get(0)); }