Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401

This commit is contained in:
王奎兴
2026-06-02 00:51:05 +08:00
10 changed files with 98 additions and 5 deletions
@@ -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<DeliveTaskPO> 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<DeliveTaskPO> list) {
if (CollectionUtils.isEmpty(list)) {
return;
}
List<String> pickingTaskNumbers = list.stream()
.filter(po -> po != null && Integer.valueOf(3).equals(po.getTaskType()))
.map(DeliveTaskPO::getTrackingNumber)
.filter(StringUtils::isNotBlank)
.distinct()
.collect(Collectors.toList());
Map<String, String> 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<String, String> resolvePickingOrderNumberByTaskNumber(List<String> taskNumbers) {
if (CollectionUtils.isEmpty(taskNumbers)) {
return Collections.emptyMap();
}
List<StockOutTaskOrder> rows = stockOutTaskOrderService.list(new LambdaQueryWrapper<StockOutTaskOrder>()
.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();
}
/**
@@ -159,4 +159,7 @@ public class PickingOrderPO extends StockOutOrderBasePO {
@ApiModelProperty("推送人姓名")
private String pushByName;
@ApiModelProperty("是否报关")
private String needDeclareFlag;
}
@@ -206,4 +206,7 @@ public class PickingOrderDO extends BaseVOEntity {
@ApiModelProperty("推送人姓名")
private String pushByName;
@ApiModelProperty("是否报关")
private String needDeclareFlag;
}
@@ -139,4 +139,7 @@ public class StockShelfOrderPO extends StockInOrderBasePO {
@Excel(name = "批次号")
private String batchNo;
@ApiModelProperty("是否报关")
private Long needCustomsDeclaration;
}
@@ -151,4 +151,8 @@ public class StockShelfOrderDO extends StockInOrderBaseDO {
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNo;
@ApiModelProperty("是否报关")
private Long needCustomsDeclaration;
}
@@ -174,4 +174,7 @@ public class PickingOrderDTO extends BaseVOEntity {
@ApiModelProperty("推送人姓名")
private String pushByName;
@ApiModelProperty("是否报关")
private String needDeclareFlag;
}
@@ -140,4 +140,7 @@ public class StockShelfOrderDTO extends StockInOrderBaseDTO {
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNo;
@ApiModelProperty("是否报关")
private Long needCustomsDeclaration;
}