Appearance
GET /dm-store/partScrapOrders/cancel
触发按钮:无
入参
无
出参
传递对象:ResultData
无
前端校验规则
权限校验
└── 取消按钮权限
└── v-auth: 'inventory:partScrapOrders:cancel:popup'
条件校验
└── cancel
└── orderStatus != 10 时按钮禁用
提交拦截校验
└── cancel
└── 未确认确认弹窗时不触发提交后端逻辑
业务流程:定位报废申请单并校验可取消状态 -> 查询报废明细 -> 释放冻结库存 -> 更新单据为已取消 -> 撤销审批流程
├── 定位报废申请单并校验可取消状态
│ ├── 查询报废单:getOne :386
│ └── 条件: 仅单据处于发起状态时允许取消
├── 查询报废明细
│ └── PartScrapOrdersMapper.searchDetailList :397
├── 释放冻结库存
│ └── StoreTransferOrderTailService.recoveryBlocked :413
│ ├── 查询库存主记录:getOne :680-683
│ ├── 查询库存明细:list :688-689
│ └── 回退冻结数量
│ ├── StockDetailService.updateById :698
│ ├── StockDetailService.updateById :708
│ └── StockDetailService.updateById :719
├── 更新单据为已取消
│ ├── 状态流转
│ │ ├── orderStatus -> 已取消
│ │ └── auditStatus -> 已取消
│ └── 更新报废单:updateById :419
└── 撤销审批流程
└── 撤销流程:BaseFlowService.cancelProcess :196-204
├── FlowClient.cancelProcess :197
└── 审批日志撤销:FlowAuditLogService.cancelProcess :468-489
├── 查询审批日志:selectList :474
└── 未审批节点改为已撤销
├── 更新审批日志:updateById :484
└── 更新审批日志:updateById :486后端校验规则
数据存在性校验
└── 校验报废单是否存在:cancelOrder :386-389
├── 查询条件: partScrapOrderNo=orderNo 且 isDelete=false
└── ExceptionCode.EX100007
状态类校验
└── 生效条件: 查询到报废单后;条件表达式: order.getOrderStatus()==null 或 order.getOrderStatus()!=StockCheckEnum.PERSONAL_BS_STATUS_START.getCode() 时禁止取消:cancelOrder :390-391
└── ExceptionCode.EX500028涉及数据库表
| 库名.表名 | mapper.statement | 描述 |
|---|---|---|
| part_scrap_orders_mapper | partScrapOrdersMapper.searchDetailList | partScrapOrdersMapper |
| store.store_transfer_order_tail | storeTransferOrderTailService.recoveryBlocked | storeTransferOrderTailService |