From 4433f83ea16683148be94533b55bbb25278d3321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 12 Mar 2026 10:08:21 +0800 Subject: [PATCH] =?UTF-8?q?PC=E5=A4=8D=E6=A0=B8=E4=B8=8B=E5=8F=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StockOutOrderDomainService.java | 35 +++++++++++++++---- .../dto/stockOutOrder/StockOutOrderDTO.java | 2 ++ .../stockOutOrder/StockOutOrderApi.java | 4 +++ 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java index d079288fc..4b1951793 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java @@ -698,23 +698,37 @@ public class StockOutOrderDomainService { @Transactional(rollbackFor = Exception.class) public Boolean checkTaskDistribution(StockOutOrderDO stockOutOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); + List outOrderIds = stockOutOrderDO.getOutOrderIds(); + if (outOrderIds == null || outOrderIds.size() == 0) { + throw new ServiceException("未选择出库单,或出库单不存在"); + } StockOutOrderDO stockOutOrderDOQuery = new StockOutOrderDO(); - stockOutOrderDOQuery.setOutOrderIds(stockOutOrderDO.getOutOrderIds()); + stockOutOrderDOQuery.setOutOrderIds(outOrderIds); stockOutOrderDOQuery.setCheckTaskDistribution(2); List stockOutOrderPOList = stockOutOrderService.queryList(stockOutOrderDOQuery); if (CollectionUtils.isEmpty(stockOutOrderPOList)) { - throw new ServiceException("复合单已下发,请重新选择"); + throw new ServiceException("出库单不存在或已下发,请重新选择"); } - //复核下发任务 + //复核下发任务(插入 delive_task,PDA 从此表查任务) genDeliveTask(stockOutOrderPOList, stockOutOrderDO); - //标记收货单任务已下发 + //标记出库单任务已下发,并同步复核人信息到 stock_out_order(与 genDeliveTask 中逻辑一致) + Long checkOperatorsBy = stockOutOrderDO.getCheckOperatorsBy(); + String checkOperatorsName = stockOutOrderDO.getCheckOperatorsName(); + if (checkOperatorsBy == null || checkOperatorsBy == 0) { + checkOperatorsBy = loginUser.getUserid(); + checkOperatorsName = (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null && !loginUser.getUserPo().getUserName().trim().isEmpty()) + ? loginUser.getUserPo().getUserName() + : (loginUser.getRealname() != null && !loginUser.getRealname().trim().isEmpty()) ? loginUser.getRealname() : loginUser.getUsername(); + } return stockOutOrderService.update(null, new UpdateWrapper().lambda() .set(StockOutOrder::getCheckTaskDistribution, 1) .set(StockOutOrder::getCheckTaskDistributionTime, new Date()) + .set(StockOutOrder::getCheckOperatorsBy, checkOperatorsBy) + .set(StockOutOrder::getCheckOperatorsName, checkOperatorsName) .set(StockOutOrder::getUpdateBy, loginUser.getUserid()) .set(StockOutOrder::getUpdateByName, loginUser.getUsername()) .set(StockOutOrder::getUpdateTime, new Date()) - .in(StockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds())); + .in(StockOutOrder::getOutOrderId, outOrderIds)); } /** @@ -1436,8 +1450,15 @@ public class StockOutOrderDomainService { deliveTaskDO.setTaskDistributionId(loginUser.getUserid()); deliveTaskDO.setTaskDistributionName(userRealName); deliveTaskDO.setTaskDistributionTime(new Date()); - deliveTaskDO.setOperatorsBy(stockOutOrderDO.getCheckOperatorsBy()); - deliveTaskDO.setOperatorsName(stockOutOrderDO.getCheckOperatorsName()); + // 若未指定复核人(null 或 0),默认分配给当前操作用户;前端未选择时可能传 0,0 在 PDA 两个 tab 都查不到 + Long operatorsBy = stockOutOrderDO.getCheckOperatorsBy(); + String operatorsName = stockOutOrderDO.getCheckOperatorsName(); + if (operatorsBy == null || operatorsBy == 0) { + operatorsBy = loginUser.getUserid(); + operatorsName = (operatorsName != null && !operatorsName.isEmpty()) ? operatorsName : userRealName; + } + deliveTaskDO.setOperatorsBy(operatorsBy); + deliveTaskDO.setOperatorsName(operatorsName); deliveTaskDO.setCreateBy(loginUser.getUserid()); deliveTaskDO.setCreateByName(userRealName); deliveTaskDO.setCreateTime(new Date()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java index 76de1ab1a..ef5b8ddd7 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java @@ -1,5 +1,6 @@ package com.mhd.wms.interfaces.dto.stockOutOrder; +import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.wms.interfaces.dto.outMaterialDetail.OutMaterialDetailDTO; @@ -234,6 +235,7 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO { @ApiModelProperty("复核作业人用户ID") @Excel(name = "复核作业人用户ID") + @JsonAlias({"checkOperatorId", "operatorId"}) private Long checkOperatorsBy; @ApiModelProperty("复核作业人姓名") diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java index 3a47e522e..7fa177656 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java @@ -19,6 +19,7 @@ import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler; import com.mhd.wms.interfaces.dto.outMaterialDetail.OutMaterialDetailDTO; import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpRequest; @@ -39,6 +40,7 @@ import java.util.List; * @author gen * @date 2024-05-28 */ +@Slf4j @RestController @RequestMapping("/stockOutOrderApi") public class StockOutOrderApi extends BaseController { @@ -281,6 +283,8 @@ public class StockOutOrderApi extends BaseController { @ApiOperation("复核下发") @PostMapping("/checkTaskDistribution") public AjaxResult checkTaskDistribution(@RequestBody StockOutOrderDTO stockOutOrderDTO) { + log.debug("复核下发入参 checkOperatorsBy={}, checkOperatorsName={}, outOrderIds={}", + stockOutOrderDTO.getCheckOperatorsBy(), stockOutOrderDTO.getCheckOperatorsName(), stockOutOrderDTO.getOutOrderIds()); StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class); return AjaxResult.success(stockOutOrderApplicationService.checkTaskDistribution(stockOutOrderDO)); }