| | |
| | | receipt.setReceiveUserId(SecurityUtils.getUserId().intValue()); |
| | | receipt.setReceiveTime(LocalDateTime.now()); |
| | | receiptMapper.updateById(receipt); |
| | | InsOrder currentOrder = insOrderMapper.selectById(receipt.getInsOrderId()); |
| | | if (currentOrder == null || StringUtils.isBlank(currentOrder.getEntrustCode())) { |
| | | throw new ErrorException("委托编号不存在,不能作废"); |
| | | } |
| | | String originalCode = currentOrder.getEntrustCode(); |
| | | String voidCode = originalCode + "-zf"; |
| | | int suffix = 2; |
| | | // 同一原编号可能经历多次下单、拒收,保留每张作废单的唯一编号。 |
| | | while (insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() |
| | | .eq(InsOrder::getEntrustCode, voidCode) |
| | | .ne(InsOrder::getId, currentOrder.getId())) > 0) { |
| | | voidCode = originalCode + "-" + suffix++ + "-zf"; |
| | | } |
| | | InsOrder order = new InsOrder(); |
| | | order.setId(receipt.getInsOrderId()); |
| | | order.setId(currentOrder.getId()); |
| | | order.setEntrustCode(voidCode); |
| | | order.setState(5); |
| | | insOrderMapper.updateById(order); |
| | | insOrderMapper.updateInspectionOrderEntrustCode(order.getId(), voidCode); |
| | | } |
| | | |
| | | private void ensurePending(InsSampleReceipt receipt) { |