diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java index ac93f0151..9d8f116e5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/deliveTask/DeliveTaskApplicationService.java @@ -1,5 +1,6 @@ package com.mhd.wms.application.service.deliveTask; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.mhd.common.core.utils.StringUtils; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; @@ -9,11 +10,17 @@ import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO; import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO; import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO; import com.mhd.wms.domain.deliveTask.service.DeliveTaskDomainService; +import com.mhd.wms.domain.stockOutTaskOrder.entity.StockOutTaskOrder; +import com.mhd.wms.domain.stockOutTaskOrder.repository.facade.IStockOutTaskOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 下发任务ApplicationService @@ -27,6 +34,9 @@ public class DeliveTaskApplicationService { @Autowired private DeliveTaskDomainService deliveTaskDomainService; + @Autowired + private IStockOutTaskOrderService stockOutTaskOrderService; + /** * 分页查询下发任务列表 @@ -62,13 +72,65 @@ public class DeliveTaskApplicationService { } // 不按 task_status 默认过滤;若请求传入 taskStatus 则仍可按状态筛选 List list = deliveTaskDomainService.queryListApp(deliveTaskDO); - // PDA 列表展示业务单号:task_number 存 RW* 任务流水,tracking_number 为收货/上架/拣货等来源单号 - list.forEach(po -> { - if (po != null && StringUtils.isNotBlank(po.getTrackingNumber())) { + applyPdaListDisplayTaskNumber(list); + return list; + } + + /** + * PDA 列表展示业务单号:库表 task_number 为 RW* 下发流水;tracking_number 为关联业务单号。 + * 拣货(taskType=3) tracking 存 JHZY* 作业单号(接收任务用),展示时反查 JH* 拣货单号,与收货/上架/复核口径一致。 + */ + private void applyPdaListDisplayTaskNumber(List list) { + if (CollectionUtils.isEmpty(list)) { + return; + } + List pickingTaskNumbers = list.stream() + .filter(po -> po != null && Integer.valueOf(3).equals(po.getTaskType())) + .map(DeliveTaskPO::getTrackingNumber) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList()); + Map pickingOrderNumberByTaskNumber = resolvePickingOrderNumberByTaskNumber(pickingTaskNumbers); + for (DeliveTaskPO po : list) { + if (po == null || StringUtils.isBlank(po.getTrackingNumber())) { + continue; + } + if (Integer.valueOf(3).equals(po.getTaskType())) { + String pickingOrderNumber = pickingOrderNumberByTaskNumber.get(po.getTrackingNumber()); + po.setTaskNumber(StringUtils.isNotBlank(pickingOrderNumber) + ? pickingOrderNumber + : po.getTrackingNumber()); + } else { po.setTaskNumber(po.getTrackingNumber()); } - }); - return list; + } + } + + /** 按 JHZY* 作业单号批量解析 JH* 拣货单号 */ + private Map resolvePickingOrderNumberByTaskNumber(List taskNumbers) { + if (CollectionUtils.isEmpty(taskNumbers)) { + return Collections.emptyMap(); + } + List rows = stockOutTaskOrderService.list(new LambdaQueryWrapper() + .in(StockOutTaskOrder::getTaskNumber, taskNumbers) + .eq(StockOutTaskOrder::getDelFlag, 1)); + if (CollectionUtils.isEmpty(rows)) { + return Collections.emptyMap(); + } + return rows.stream() + .filter(row -> StringUtils.isNotBlank(row.getTaskNumber())) + .collect(Collectors.toMap( + StockOutTaskOrder::getTaskNumber, + row -> normalizePickingOrderNumber(row), + (a, b) -> a)); + } + + private static String normalizePickingOrderNumber(StockOutTaskOrder row) { + String pickingOrderNumber = row.getPickingOrderNumber(); + if (StringUtils.isNotBlank(pickingOrderNumber) && pickingOrderNumber.startsWith("JH")) { + return pickingOrderNumber; + } + return row.getTaskNumber(); } /** diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java index d97950c84..6721e7bb2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java @@ -159,4 +159,7 @@ public class PickingOrderPO extends StockOutOrderBasePO { @ApiModelProperty("推送人姓名") private String pushByName; + + @ApiModelProperty("是否报关") + private String needDeclareFlag; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/todo/PickingOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/todo/PickingOrderDO.java index 858f13adc..15c9d1428 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/todo/PickingOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/todo/PickingOrderDO.java @@ -206,4 +206,7 @@ public class PickingOrderDO extends BaseVOEntity { @ApiModelProperty("推送人姓名") private String pushByName; + + @ApiModelProperty("是否报关") + private String needDeclareFlag; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/po/StockShelfOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/po/StockShelfOrderPO.java index 434ad9dd0..8e4fa9f9c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/po/StockShelfOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/po/StockShelfOrderPO.java @@ -139,4 +139,7 @@ public class StockShelfOrderPO extends StockInOrderBasePO { @Excel(name = "批次号") private String batchNo; + + @ApiModelProperty("是否报关") + private Long needCustomsDeclaration; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/todo/StockShelfOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/todo/StockShelfOrderDO.java index 7c43fdc51..a5922b243 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/todo/StockShelfOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/todo/StockShelfOrderDO.java @@ -151,4 +151,8 @@ public class StockShelfOrderDO extends StockInOrderBaseDO { @ApiModelProperty("批次号") @Excel(name = "批次号") private String batchNo; + + @ApiModelProperty("是否报关") + private Long needCustomsDeclaration; + } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/pickingOrder/PickingOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/pickingOrder/PickingOrderDTO.java index 5c20ebf3e..5294c2bee 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/pickingOrder/PickingOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/pickingOrder/PickingOrderDTO.java @@ -174,4 +174,7 @@ public class PickingOrderDTO extends BaseVOEntity { @ApiModelProperty("推送人姓名") private String pushByName; + + @ApiModelProperty("是否报关") + private String needDeclareFlag; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockShelfOrder/StockShelfOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockShelfOrder/StockShelfOrderDTO.java index bece64af4..7f434bd31 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockShelfOrder/StockShelfOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockShelfOrder/StockShelfOrderDTO.java @@ -140,4 +140,7 @@ public class StockShelfOrderDTO extends StockInOrderBaseDTO { @ApiModelProperty("批次号") @Excel(name = "批次号") private String batchNo; + + @ApiModelProperty("是否报关") + private Long needCustomsDeclaration; } \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml b/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml index 470bfba95..c162f8537 100644 --- a/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml @@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -108,12 +109,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.del_flag = #{delFlag} and a.del_flag = 1 + + and b.need_declare_flag = #{needDeclareFlag} +