Skip to content

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_mapperpartScrapOrdersMapper.searchDetailListpartScrapOrdersMapper
store.store_transfer_order_tailstoreTransferOrderTailService.recoveryBlockedstoreTransferOrderTailService