费用清单
This commit is contained in:
parent
8c4a37ba0a
commit
48e1d84196
|
|
@ -131,4 +131,10 @@ public class OrderInfoDto {
|
|||
|
||||
private Integer companyId;
|
||||
|
||||
private BigDecimal totalRepairScrapLossPrice;
|
||||
|
||||
private BigDecimal totalRentalPrice;
|
||||
|
||||
private BigDecimal totalRealPrice;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,12 @@ package com.bonus.material.order.service.impl;
|
|||
|
||||
import com.bonus.common.biz.enums.MaStatusEnum;
|
||||
import com.bonus.common.biz.enums.OrderStatusEnum;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.device.domain.DevInfo;
|
||||
import com.bonus.material.lease.domain.LeaseRepair;
|
||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
|
||||
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
||||
import com.bonus.material.order.domain.OrderDetailDto;
|
||||
|
|
@ -16,10 +19,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author:liang.chao
|
||||
|
|
@ -33,7 +35,9 @@ public class OrderServiceImpl implements OrderService {
|
|||
private OrderMapper orderMapper;
|
||||
|
||||
@Resource
|
||||
private LeaseRepairRecordMapper mapper;
|
||||
private LeaseRepairRecordMapper leaseRepairRecordMapper;
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
|
|
@ -102,6 +106,16 @@ public class OrderServiceImpl implements OrderService {
|
|||
OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id);
|
||||
list.add(orderDetailDto);
|
||||
}
|
||||
BigDecimal totalRentalPrice = BigDecimal.ZERO;
|
||||
for (OrderDetailDto orderDetailDto : list) {
|
||||
if (Objects.nonNull(orderDetailDto) && String.valueOf(OrderStatusEnum.ORDER_FINISHED.getStatus()).equals(orderDetailDto.getOrderStatus())) {
|
||||
Date preOutBoundTime = sdf.parse(orderDetailDto.getPreOutboundTime());
|
||||
Date rentOverTime = sdf.parse(orderDetailDto.getRentOverTime());
|
||||
long days = DateUtils.daysBetween(preOutBoundTime, rentOverTime) + 1;
|
||||
totalRentalPrice = totalRentalPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(days)));
|
||||
}
|
||||
}
|
||||
dto.setTotalRentalPrice(totalRentalPrice);
|
||||
dto.setDetailsList(list);
|
||||
Optional<OrderDetailDto> minOrderStatus = list.stream()
|
||||
.min((p1, p2) -> Integer.compare(Integer.parseInt(p1.getOrderStatus()), Integer.parseInt(p2.getOrderStatus())));
|
||||
|
|
@ -109,13 +123,39 @@ public class OrderServiceImpl implements OrderService {
|
|||
dto.setOrderStatus(minOrderStatus.get().getOrderStatus());
|
||||
}
|
||||
//根据订单id去lease_repair_record表中查询是否已填写退租检修信息
|
||||
int count = mapper.selectLeaseContent(String.valueOf(dto.getOrderId()));
|
||||
int count = leaseRepairRecordMapper.selectLeaseContent(String.valueOf(dto.getOrderId()));
|
||||
if (count > 0) {
|
||||
dto.setIsLeaseContent(1);
|
||||
} else {
|
||||
dto.setIsLeaseContent(0);
|
||||
}
|
||||
dto.setPartBacked(list.stream().anyMatch(o -> OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString().equals(o.getOrderStatus())));
|
||||
//TODO计算总费用
|
||||
LeaseRepair leaseRepair = new LeaseRepair();
|
||||
leaseRepair.setOrderId(String.valueOf(dto.getOrderId()));
|
||||
List<LeaseRepairRecord> leaseRepairRecords = leaseRepairRecordMapper.getLeaseRepairRecordList(leaseRepair);
|
||||
BigDecimal totalRepairScrapLossPrice = BigDecimal.ZERO;
|
||||
if (!CollectionUtils.isEmpty(leaseRepairRecords)) {
|
||||
for (LeaseRepairRecord leaseRepairRecord : leaseRepairRecords) {
|
||||
if (leaseRepairRecord.getRepairChangePrice()==null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getRepairPrice());
|
||||
} else {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairChangePrice());
|
||||
}
|
||||
if (leaseRepairRecord.getScrapChangePrice()==null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getScrapPrice());
|
||||
} else {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapChangePrice());
|
||||
}
|
||||
if (leaseRepairRecord.getLossChangePrice()==null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getLossPrice());
|
||||
} else {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossChangePrice());
|
||||
}
|
||||
}
|
||||
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
|
||||
}
|
||||
dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice));
|
||||
}
|
||||
return orderInfoDtos;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue