zoukankan      html  css  js  c++  java
  • 子表批量保存CRUD

    @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;
        }
  • 相关阅读:
    几道算法题及学java心得
    css入门
    关于 移动端整屏切换专题 效果的思考
    css3实现卡牌旋转与物体发光效果
    九方格抽奖插件
    绑定弹窗事件最好的方法,原生JS和JQuery方法
    整屏滚动效果 jquery.fullPage.js插件+CSS3实现
    自定义 页面滚动条
    有趣的HTML5 CSS3效果
    CSS3 过渡与动画
  • 原文地址:https://www.cnblogs.com/fangts/p/13729612.html
Copyright © 2011-2022 走看看