feat(oms):App端出入库明细跳详情补入库按单号查询,预约单修改限待提交状态
需求:入库/出库明细列表点击跳详情;待提交预约单可修改(暂存/提交均走/edit,与PC共用链路) 1.ReserveStockInOrderApi新增getInfoByInOrderNumber按单号查详情: 入库明细行只带inOrderNumber(明细表无in_order_id列),对齐出库侧getInfoOutOrderNumber; del_flag=1过滤已删单+getOne不抛单号重复 2.ReserveStockInOrderMapper.xml MaterialDetailResult显式映射in_order_number, 明细行单号不再依赖驼峰自动映射开关(出库侧:363本就有,入库侧补齐) 3.入库/出库DomainService.update加状态闸门:仅status=1(已创建)且issueStatus!=3(未确认)允许修改, 防已确认下发/已流转单据被改写(仓码确认只置issueStatus=3不改status,原校验缺此维度必然漏防); 明细为空改报'请添加货物明细'(原getMaterialDetailList().size()空指针500);出库update补@Transactional
This commit is contained in:
+9
@@ -248,6 +248,15 @@ public class ReserveStockInOrderDomainService {
|
||||
if (stockInOrderPO == null){
|
||||
throw new ServiceException("入库单信息不存在");
|
||||
}
|
||||
// 仅待提交状态允许修改:status=1(已创建)且未被仓码确认(issueStatus: 0/1-待确认 2-驳回 3-已确认,驳回单可改后重提)
|
||||
if (stockInOrderPO.getStatus() == null || stockInOrderPO.getStatus() != 1
|
||||
|| (stockInOrderPO.getIssueStatus() != null && stockInOrderPO.getIssueStatus() == 3)) {
|
||||
throw new ServiceException("只有待提交的预约单才能修改");
|
||||
}
|
||||
// 明细非空防御:与insert校验口径一致,避免下方getMaterialDetailList().size()空指针
|
||||
if (CollectionUtils.isEmpty(stockInOrderDO.getMaterialDetailList())) {
|
||||
throw new ServiceException("请添加货物明细");
|
||||
}
|
||||
//设置物料信息
|
||||
setMaterialDetailInfo(stockInOrderDO);
|
||||
//统计总物料种数
|
||||
|
||||
+10
@@ -259,11 +259,21 @@ public class ReserveStockOutOrderDomainService {
|
||||
/**
|
||||
* 修改出库单
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean update(ReserveStockOutOrderDO stockOutOrderDO) {
|
||||
ReserveStockOutOrderPO stockInOrderPO = stockOutOrderService.getInfo(stockOutOrderDO.getOutOrderId());
|
||||
if (stockInOrderPO == null){
|
||||
throw new ServiceException("出库单信息不存在");
|
||||
}
|
||||
// 仅待提交状态允许修改:status=1(已创建)且未被仓码确认(issueStatus: 0/1-待确认 2-驳回 3-已确认,驳回单可改后重提)
|
||||
if (stockInOrderPO.getStatus() == null || stockInOrderPO.getStatus() != 1
|
||||
|| (stockInOrderPO.getIssueStatus() != null && stockInOrderPO.getIssueStatus() == 3)) {
|
||||
throw new ServiceException("只有待提交的预约单才能修改");
|
||||
}
|
||||
// 明细非空防御:避免下方getMaterialDetailList().size()空指针
|
||||
if (CollectionUtils.isEmpty(stockOutOrderDO.getMaterialDetailList())) {
|
||||
throw new ServiceException("请添加货物明细");
|
||||
}
|
||||
//设置物料信息
|
||||
setMaterialDetailInfo(stockOutOrderDO);
|
||||
//统计种类
|
||||
|
||||
Reference in New Issue
Block a user