物流改写

liweidong
绫Umbrella 2 weeks ago
parent e1b5ab3860
commit 83bc1f1a90
  1. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsWorkCenterServiceImpl.java
  2. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/StationController.java
  3. 38
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml
  4. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java
  5. 64
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java
  6. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.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<BsWorkCenterMapper,
Long id = bsWorkCenterVO.getId();
List<String> result = freeStationList.stream()
// 1. 过滤:只保留【指定字段 == 指定值】的数据(值一致才保留)
.filter(item -> item.getWcId()==id)
.filter(item -> item.getWcId().equals(id))
// 2. 提取你要的字段
.map(StationVO::getStationRegion)
// 3. 自动去重

@ -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<IPage<StationVO>> getStationList(StationVO station, Query query) {
public R<IPage<StationVO>> getStationList(@Parameter(hidden = true)StationVO station, Query query) {
IPage<StationVO> pages = stationService.getStationList(Condition.getPage(query), station);

@ -16,24 +16,45 @@
</select>
<select id="selectStationList" resultType="org.springblade.desk.logistics.pojo.vo.StationVO">
select l.id, l.station_name, l.station_code,l.station_region, l.station_status, l.status, l.create_user, l.create_time, l.create_dept, l.update_user, l.update_time, l.is_deleted, l.remark, l.station_position, r.WC_ID as wcId
from LM_STATION l left join LM_STATION_CENTER r on l.id = r.STATION_ID
select
l.id,
l.station_name,
l.station_code,
l.station_region,
l.station_status,
l.status,
l.create_user,
l.create_time,
l.create_dept,
l.update_user,
l.update_time,
l.is_deleted,
l.remark,
l.station_position,
r.WC_ID as wcId
from LM_STATION l
left join LM_STATION_CENTER r
on l.id = r.STATION_ID
<if test="station.wcId != null">
and r.WC_ID = #{station.wcId}
</if>
where l.IS_DELETED = 0
<if test="station.stationName != null and station.stationName != ''">
and l.STATION_NAME = #{station.stationName}
and l.STATION_NAME like '%' || #{station.stationName} || '%'
</if>
<if test="station.stationCode != null and station.stationCode != ''">
and l.STATION_CODE = #{station.stationCode}
and l.STATION_CODE like '%' || #{station.stationCode} || '%'
</if>
<if test="station.stationStatus != null and station.stationStatus != ''">
<if test="station.stationStatus != null">
and l.STATION_STATUS = #{station.stationStatus}
</if>
<if test="station.stationPosition != null and station.stationPosition != ''">
and l.STATION_POSITION = #{station.stationPosition}
</if>
<if test="station.wcId != null and station.wcId != ''">
and r.WC_ID = #{station.wcId}
</if>
</select>
@ -51,6 +72,7 @@
and l.STATION_STATUS != #{stationStatus}
</if>
</if>
<if test="wcId != null and wcId != ''">
and r.WC_ID = #{wcId}
</if>

@ -260,6 +260,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
.distinct()
.collect(Collectors.toList());
List<BsWorkCenterVO> 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<PrWorkPlan> nextWorkPlanList = prWorkPlanService.lambdaQuery()

@ -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<StationMapper, Station>
@Override
public IPage<StationVO> getStationList(IPage<StationVO> page, Station station) {
List<StationVO> 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<StationVO> mergedList = mergeStationList(stationList);
return page.setRecords(mergedList);
}
return page.setRecords(stationList);
/**
* 合并站点列表除wcId和wcName外其他字段相同的记录wcName用顿号拼接
*/
private List<StationVO> mergeStationList(List<StationVO> stationList) {
// 使用Map分组,key为除wcId和wcName外的其他字段组合
Map<String, List<StationVO>> groupMap = new LinkedHashMap<>();
for (StationVO vo : stationList) {
String key = buildGroupKey(vo);
groupMap.computeIfAbsent(key, k -> new ArrayList<>()).add(vo);
}
List<StationVO> result = new ArrayList<>();
for (List<StationVO> 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 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

@ -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<YieldOrderMapper, Yie
private final YieldPlanMapper yieldPlanMapper;
private final IErpYieldOrderClient yieldOrderClient;
private final IPrYieldOrderService yieldOrderService;
@Value("${business.oldMes.url}")
private String oldMesUrl;
@ -833,8 +836,13 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
List<YieldOrder> list = list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, cardNo));
if (list==null||list.size()==0) {
// return R.fail("路线卡号未查询到详情");
List<PrYieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().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));
}

Loading…
Cancel
Save