@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;
    }

 

相关文章:

  • 2021-09-04
  • 2022-12-23
  • 2021-12-05
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-06
猜你喜欢
  • 2021-12-06
  • 2021-09-23
  • 2021-07-20
  • 2021-06-08
  • 2022-12-23
  • 2021-10-30
相关资源
相似解决方案