| | |
| | | .setOwnerUserId(userId); |
| | | ticketMapper.insert(ticket); |
| | | |
| | | // 3. 插入明细行 |
| | | // 3. 插入明细行(每条生成独立售后单号:工单号-序号) |
| | | if (CollUtil.isNotEmpty(createReqVO.getItems())) { |
| | | createReqVO.getItems().forEach(item -> { |
| | | AfterSaleTicketItemDO itemDO = BeanUtils.toBean(item, AfterSaleTicketItemDO.class); |
| | | for (int i = 0; i < createReqVO.getItems().size(); i++) { |
| | | AfterSaleTicketItemDO itemDO = BeanUtils.toBean(createReqVO.getItems().get(i), AfterSaleTicketItemDO.class); |
| | | itemDO.setTicketId(ticket.getId()); |
| | | itemDO.setItemNo(buildItemNo(no, i + 1)); |
| | | ticketItemMapper.insert(itemDO); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 4. 绑定附件 |
| | |
| | | AfterSaleTicketDO updateObj = BeanUtils.toBean(updateReqVO, AfterSaleTicketDO.class); |
| | | ticketMapper.updateById(updateObj); |
| | | |
| | | // 3. 更新明细行(先删后增) |
| | | // 3. 更新明细行(先删后增,每条生成独立售后单号:工单号-序号) |
| | | ticketItemMapper.deleteByTicketId(ticket.getId()); |
| | | if (CollUtil.isNotEmpty(updateReqVO.getItems())) { |
| | | updateReqVO.getItems().forEach(item -> { |
| | | AfterSaleTicketItemDO itemDO = BeanUtils.toBean(item, AfterSaleTicketItemDO.class); |
| | | for (int i = 0; i < updateReqVO.getItems().size(); i++) { |
| | | AfterSaleTicketItemDO itemDO = BeanUtils.toBean(updateReqVO.getItems().get(i), AfterSaleTicketItemDO.class); |
| | | itemDO.setTicketId(ticket.getId()); |
| | | itemDO.setItemNo(buildItemNo(ticket.getNo(), i + 1)); |
| | | ticketItemMapper.insert(itemDO); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 4. 更新附件 |
| | |
| | | |
| | | // ========== 内部方法 ========== |
| | | |
| | | /** 生成明细售后单号:工单号-两位序号 */ |
| | | private String buildItemNo(String ticketNo, int index) { |
| | | return ticketNo + "-" + String.format("%02d", index); |
| | | } |
| | | |
| | | private AfterSaleTicketDO validateTicketExists(Long id) { |
| | | AfterSaleTicketDO ticket = ticketMapper.selectById(id); |
| | | if (ticket == null) { |