master:销售返单记录优化;

pull/1121/head
liujiang 2025-09-13 11:36:20 +08:00
parent a797e3a915
commit 18da35d30c
2 changed files with 14 additions and 14 deletions

View File

@ -6,7 +6,6 @@ import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.xkt.domain.StoreSale;
import com.ruoyi.xkt.domain.StoreSaleRefundRecord;
import com.ruoyi.xkt.dto.storeSaleRefundRecord.StoreSaleRefundRecordDTO;
import com.ruoyi.xkt.mapper.StoreSaleMapper;
@ -18,9 +17,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
@ -55,15 +53,10 @@ public class StoreSaleRefundRecordServiceImpl implements IStoreSaleRefundRecordS
if (CollectionUtils.isEmpty(refundRecordList)) {
return new ArrayList<>();
}
List<StoreSaleRefundRecordDTO> refundRecordDTOList = refundRecordList.stream().map(x -> BeanUtil.toBean(x, StoreSaleRefundRecordDTO.class)
.setStoreSaleRefundRecordId(x.getId())).collect(Collectors.toList());
// 获取当前最新数据
StoreSale storeSale = Optional.ofNullable(storeSaleMapper.selectById(storeSaleId))
.orElseThrow(() -> new ServiceException("档口销售出库订单不存在!", HttpStatus.ERROR));
refundRecordDTOList.add(BeanUtil.toBean(storeSale, StoreSaleRefundRecordDTO.class).setStoreSaleRefundRecordId(-1L));
// 将最新数据放在第一位
Collections.reverse(refundRecordDTOList);
return refundRecordDTOList;
return refundRecordList.stream()
.map(x -> BeanUtil.toBean(x, StoreSaleRefundRecordDTO.class).setStoreSaleRefundRecordId(x.getId()))
.sorted(Comparator.comparing(StoreSaleRefundRecordDTO::getCreateTime).reversed())
.collect(Collectors.toList());
}
}

View File

@ -313,13 +313,20 @@ public class StoreSaleServiceImpl implements IStoreSaleService {
.eq(StoreSaleDetail::getStoreSaleId, storeSaleDTO.getStoreSaleId()).eq(StoreSaleDetail::getDelFlag, Constants.UNDELETED));
// 若为返单,则将之前数据记录到返单记录表中
if (Objects.equals(storeSaleDTO.getRefund(), Boolean.TRUE)) {
final Date now = new Date();
// 订单记录到StoreSaleRefundRecord
StoreSaleRefundRecord refundRecord = BeanUtil.toBean(storeSale, StoreSaleRefundRecord.class).setId(null)
.setStoreSaleId(storeSale.getId()).setOperatorId(loginUser.getUserId()).setOperatorName(loginUser.getUsername());
refundRecord.setCreateTime(now);
refundRecord.setUpdateTime(now);
this.refundRecordMapper.insert(refundRecord);
// 明细记录到StoreSaleRefundRecordDetail
List<StoreSaleRefundRecordDetail> refundDetailRecordList = saleDetailList.stream().map(x -> BeanUtil.toBean(x, StoreSaleRefundRecordDetail.class)
.setId(null).setStoreSaleRefundRecordId(refundRecord.getId())).collect(Collectors.toList());
List<StoreSaleRefundRecordDetail> refundDetailRecordList = saleDetailList.stream().map(x -> {
StoreSaleRefundRecordDetail refundDetail = BeanUtil.toBean(x, StoreSaleRefundRecordDetail.class).setId(null).setStoreSaleRefundRecordId(refundRecord.getId());
refundDetail.setCreateTime(now);
refundDetail.setUpdateTime(now);
return refundDetail;
}).collect(Collectors.toList());
this.refundRecordDetailMapper.insert(refundDetailRecordList);
}
// 更新档口销售数据