Appearance
GET /dm-store/damage/personal/cancel
触发按钮:无
入参
无
出参
传递对象:ResultData
无
前端校验规则
权限校验
└── 取消按钮权限
└── v-auth: 'personalInventory:damage:cancel:popup'
提交拦截校验
└── cancel
├── 仅 row.orderStatus == 10 时可操作
└── 二次确认通过后才允许提交;取消确认则中断提交后端逻辑
业务流程:查询报损单 -> 校验可取消状态 -> 恢复冻结个人库存 -> 更新单据为取消 -> 取消审批流程
├── 查询报损单 :250-252
│ └── 条件
│ ├── damageOrderNo=orderNo
│ └── isDelete=0
├── 校验可取消状态 :256-257
│ └── 仅允许发起中单据取消
├── 恢复冻结个人库存 :261-275
│ ├── 查询报损明细:PersonalReportDamageOrderDetailService.list :261-263
│ ├── 按明细生成冻结恢复数量 :266-271
│ └── 恢复个人库存冻结:PersonalTransferOrdersService.recoveryPersonStore :274
│ ├── 查询个人库存:PersonalPartStoreService.getById :298
│ └── 回退冻结数量并保存:PersonalPartStoreService.updateById :302-304
├── 更新单据为取消 :277-280
│ ├── 单据状态 -> 已取消
│ ├── 审批状态 -> 已取消
│ └── 保存报损单 :280
└── 取消审批流程 :282-284
└── 调用流程服务取消实例:FlowClient.cancelProcess :197后端校验规则
数据存在性校验
├── 校验报损单是否存在:cancelOrder :250-255
│ └── ExceptionCode.EX100007
└── 校验明细关联的个人库存记录是否存在:recoveryPersonStore :298-301
├── 生效条件:存在报损明细并执行冻结恢复时逐条校验
├── 条件表达式:personalPartStoreService.getById != null
└── ExceptionCode.EX90123
状态类校验
└── 校验报损单状态仅允许为发起状态:cancelOrder :256-258
├── 生效条件:取消报损单时
├── 条件表达式:order.getOrderStatus() == StockCheckEnum.PERSONAL_BS_STATUS_START.getCode()
└── ExceptionCode.EX500028涉及数据库表
无