首页 > 其他 > 详细

子表批量保存CRUD

时间:2020-09-25 15:24:42      阅读:41      评论:0      收藏:0      [点我收藏+]
@Data
@TableName("im_notice_details")
@ApiModel(value = "入库单据明细")
@EqualsAndHashCode(of = {"detailsId", "noticeId"})
public class ImNoticeDetails extends Model<ImNoticeDetails> {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "明细ID")
    private String detailsId;

    @ApiModelProperty(value = "单据ID")
    private String noticeId;

    @ApiModelProperty(value = "商品ID")
    private String goodsId;

        ......
}
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean updateNotice(ImNoticeDto dto) {
        try {
            List<ImNoticeDetails> detailsList = dto.getDetailsList();
            // 获取oldList与newList的交差
            List<ImNoticeDetails> oldDetailList = baseMapper.listOldDetail(dto.getNoticeId());

            oldDetailList.removeAll(detailsList);

            // 删除库存数据及中间表数据
            Set<String> hasDeleteIds = oldDetailList.stream().map(item -> item.getDetailsId()).collect(Collectors.toSet());

            imNoticeDetailsService.removeByIds(hasDeleteIds);

            for (ImNoticeDetails imNoticeDetails : detailsList) {
                imNoticeDetails.setNoticeId(dto.getNoticeId());
                imNoticeDetailsService.saveOrUpdate(imNoticeDetails);
            }
        } catch (Exception e) {
            e.printStackTrace();
            log.info("更新入库单据失败!!!");
            return Boolean.FALSE;
        }
        return Boolean.TRUE;
    }

 

子表批量保存CRUD

原文:https://www.cnblogs.com/fangts/p/13729612.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!