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:
rcx
2026-08-24 18:12:50 +08:00
parent 5298e9d4e3
commit 83f4cce451
4 changed files with 43 additions and 0 deletions
@@ -1,9 +1,12 @@
package com.mhd.oms.interfaces.facade.reserveStockInOrder;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.oms.domain.reserveInMaterialDetail.repository.po.ReserveInMaterialDetailPO;
import com.mhd.oms.domain.reserveStockInOrder.entity.ReserveStockInOrder;
import com.mhd.oms.domain.reserveStockInOrder.repository.facade.IReserveStockInOrderService;
import com.mhd.oms.domain.reserveStockInOrder.repository.listener.ValidationException;
import com.mhd.oms.domain.reserveStockInOrder.repository.po.ReserveStockInOrderPO;
import com.mhd.oms.domain.reserveStockInOrder.repository.todo.ReserveStockInOrderDO;
@@ -47,6 +50,9 @@ public class ReserveStockInOrderApi extends BaseController {
@Resource
private ReserveStockInOrderAssembler stockInOrderAssembler;
@Autowired
private IReserveStockInOrderService reserveStockInOrderService;
/**
* 分页查询入库单列表
*/
@@ -125,6 +131,23 @@ public class ReserveStockInOrderApi extends BaseController {
return AjaxResult.success(stockInOrderApplicationService.getInfo(inOrderId));
}
/**
* 根据入库单号获取入库单详细信息
* App端入库明细列表行只带inOrderNumberreserve_in_material_detail表没有in_order_id列),
* 明细行点击跳详情时按单号查询,与出库侧getInfoOutOrderNumber对齐
*/
@ApiOperation("根据入库单号获取入库单")
@GetMapping(value = "/getInfoByInOrderNumber")
public AjaxResult getInfoByInOrderNumber(@RequestParam("inOrderNumber") String inOrderNumber) {
ReserveStockInOrder stockInOrder = reserveStockInOrderService.getOne(new LambdaQueryWrapper<ReserveStockInOrder>()
.eq(ReserveStockInOrder::getInOrderNumber, inOrderNumber)
.eq(ReserveStockInOrder::getDelFlag, 1), false);
if (stockInOrder == null) {
return AjaxResult.error("入库单不存在");
}
return AjaxResult.success(stockInOrderApplicationService.getInfo(stockInOrder.getInOrderId()));
}
/**
* 导入入库单
*/