fix(oms): 出入库业务单反审补充清空执行单号/下发执行时间,修复反审后前端是否执行仍显示已执行

This commit is contained in:
rcx
2026-09-10 14:24:43 +08:00
parent b28575c34d
commit 260ec1f369
5 changed files with 35 additions and 3 deletions
@@ -85,4 +85,21 @@ public class ExecutionInMaterialDetailApplicationService {
return inMaterialDetailDomainService.queryInOrderDetailList(queryOrderOverStockDO);
}
/**
* 入库明细导出(全字段,口径同 queryInOrderDetailList,不分页)
*/
public List<ExecutionInMaterialDetailWithOrderPO> exportInOrderDetailList(QueryOrderOverStockDO queryOrderOverStockDO) {
List<ExecutionInMaterialDetailWithOrderPO> list = queryInOrderDetailList(queryOrderOverStockDO);
// 货物种类=挂载分类的父级分类名称:material_classify_name为分类路径(如"食品,饮料"),取倒数第二段;
// 仅一级分类(无父级)时取自身名称
for (ExecutionInMaterialDetailWithOrderPO po : list) {
String names = po.getMaterialClassifyName();
if (names != null && names.contains(",")) {
String[] parts = names.split(",");
po.setMaterialClassifyName(parts[parts.length - 2].trim());
}
}
return list;
}
}
@@ -891,6 +891,8 @@ public class ReservationStockInOrderDomainService {
//业务单状态改为"已驳回"(与审核不通过同语义)+ 已反审标记落入【已反审】tab + 清空完成回写数据
return stockInOrderService.update(null, new UpdateWrapper<ReservationStockInOrder>().lambda()
.set(ReservationStockInOrder::getIssueStatus, 3)
//清空下发/执行时间(前端"是否执行"列按执行时间判断,不清会仍显示已执行,与取消下发 cancelIssueOrder 同口径)
.set(ReservationStockInOrder::getIssueTime, null)
.set(ReservationStockInOrder::getInQuantity, BigDecimal.ZERO)
.set(ReservationStockInOrder::getStorageTime, null)
.set(ReservationStockInOrder::getExecutionInOrderNumber, null)
@@ -753,10 +753,12 @@ public class ReservationStockOutOrderDomainService {
}
// 主单回退到已创建并打反审标记; 更新条件带 issueStatus in (2,4) + 排除已取消/已关闭 兜底防并发重复反审
// issueStatus 回退到 0-已创建(前端展示映射: 0-已创建 2-已审核 3-已驳回 4-已出库)
// issueStatus 回退到 0-已创建(前端展示映射: 0-已创建 2-已审核 3-已驳回 4-已出库);
// 清空执行出库单号——执行单已随反审软删, 前端"是否执行"列由该字段有无值推导, 不清空会仍显示已执行
return stockOutOrderService.update(null, new UpdateWrapper<ReservationStockOutOrder>().lambda()
.set(ReservationStockOutOrder::getStatus, 1)
.set(ReservationStockOutOrder::getIssueStatus, 0)
.set(ReservationStockOutOrder::getExecutionOutOrderNumber, null)
.set(ReservationStockOutOrder::getIssueId, null)
.set(ReservationStockOutOrder::getIssueName, null)
.set(ReservationStockOutOrder::getIssueTime, null)
@@ -769,6 +771,7 @@ public class ReservationStockOutOrderDomainService {
.set(ReservationStockOutOrder::getCheckQuantity, BigDecimal.ZERO)
.set(ReservationStockOutOrder::getCheckStatus, 1)
.set(ReservationStockOutOrder::getCheckTaskDistribution, 2)
.set(ReservationStockOutOrder::getCheckTaskDistributionTime, null)
.set(ReservationStockOutOrder::getCompleteTime, null)
.set(ReservationStockOutOrder::getOutboundTime, null)
.set(ReservationStockOutOrder::getReverseStatus, 1)
@@ -109,7 +109,7 @@ public class ExecutionInMaterialDetailApi extends BaseController {
{
//转换实体不分页导出全量
QueryOrderOverStockDO queryDO = inMaterialDetailAssembler.toQueryDO(queryDTO);
List<ExecutionInMaterialDetailWithOrderPO> list = inMaterialDetailApplicationService.queryInOrderDetailList(queryDO);
List<ExecutionInMaterialDetailWithOrderPO> list = inMaterialDetailApplicationService.exportInOrderDetailList(queryDO);
String fileName = URLEncoder.encode("入库明细查询", "UTF-8").replaceAll("\\+", "%20");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
@@ -60,7 +60,17 @@ public class InMaterialDetailApplicationService {
* 入库明细导出专用列集口径同 queryInOrderDetailList不分页
*/
public List<InMaterialDetailExportPO> exportInOrderDetailList(QueryOrderOverStockDO queryOrderOverStockDO) {
return inMaterialDetailDomainService.exportInOrderDetailList(setDataPermission(queryOrderOverStockDO));
List<InMaterialDetailExportPO> list = inMaterialDetailDomainService.exportInOrderDetailList(setDataPermission(queryOrderOverStockDO));
// 货物种类=挂载分类的父级分类名称material_classify_name为分类路径("食品,饮料")取倒数第二段
// 仅一级分类(无父级)时取自身名称
for (InMaterialDetailExportPO po : list) {
String names = po.getMaterialClassifyName();
if (names != null && names.contains(",")) {
String[] parts = names.split(",");
po.setMaterialClassifyName(parts[parts.length - 2].trim());
}
}
return list;
}
/**