This commit is contained in:
parent
e88ab56c07
commit
ee6fe2c95c
|
|
@ -120,6 +120,9 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService {
|
|||
detailDto.setCosts(newTotalPrice);
|
||||
}
|
||||
}
|
||||
if (detailDto.getReliefCost() != null) {
|
||||
totalCost.subtract(detailDto.getReliefCost());
|
||||
}
|
||||
}
|
||||
leaseRecordDto.setOrderDetailDtoList(orderDetailList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -122,6 +122,9 @@ public class OrderDetailDto {
|
|||
@ApiModelProperty(value = "实际天数")
|
||||
private Integer dateDays;
|
||||
|
||||
@ApiModelProperty(value = "减免费用")
|
||||
private BigDecimal reliefCost;
|
||||
|
||||
@ApiModelProperty(value = "减免开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private String reliefStartTime;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.springframework.util.CollectionUtils;
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -105,19 +106,22 @@ public class OrderServiceImpl implements OrderService {
|
|||
}
|
||||
BigDecimal totalRentalPrice = BigDecimal.ZERO;
|
||||
BigDecimal totalReliefPrice = BigDecimal.ZERO;
|
||||
for (OrderDetailDto orderDetailDto : list) {
|
||||
if (Objects.nonNull(orderDetailDto) && String.valueOf(OrderStatusEnum.ORDER_FINISHED.getStatus()).equals(orderDetailDto.getOrderStatus())) {
|
||||
if (Objects.nonNull(orderDetailDto.getPreOutboundTime()) && Objects.nonNull(orderDetailDto.getRentOverTime())) {
|
||||
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)));
|
||||
for (OrderDetailDto detailDto : list) {
|
||||
if (Objects.nonNull(detailDto) && String.valueOf(OrderStatusEnum.ORDER_FINISHED.getStatus()).equals(detailDto.getOrderStatus())) {
|
||||
detailDto.setDays(detailDto.getDateDays() == null ? detailDto.getDays() : String.valueOf(detailDto.getDateDays()));
|
||||
if (detailDto.getChangeCost() != null) {
|
||||
totalRentalPrice = totalRentalPrice.add(detailDto.getChangeCost());
|
||||
} else {
|
||||
if (detailDto.getDateDays() != null && detailDto.getDateDays() > 0
|
||||
&& detailDto.getDayLeasePrice() != null) {
|
||||
BigDecimal newTotalPrice = detailDto.getDayLeasePrice().multiply(new BigDecimal(detailDto.getDateDays()))
|
||||
.setScale(2, RoundingMode.HALF_UP);
|
||||
totalRentalPrice = totalRentalPrice.add(newTotalPrice);
|
||||
detailDto.setCosts(newTotalPrice);
|
||||
}
|
||||
if (Objects.nonNull(orderDetailDto.getReliefStartTime()) && Objects.nonNull(orderDetailDto.getReliefEndTime())) {
|
||||
Date reliefStartTime = sdf.parse(orderDetailDto.getReliefStartTime());
|
||||
Date reliefEndTime = sdf.parse(orderDetailDto.getReliefEndTime());
|
||||
long reliefDays = DateUtils.daysBetween(reliefStartTime, reliefEndTime) + 1;
|
||||
totalReliefPrice = totalReliefPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(reliefDays)));
|
||||
}
|
||||
if (detailDto.getReliefCost() != null) {
|
||||
totalReliefPrice.add(detailDto.getReliefCost());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -143,20 +147,20 @@ public class OrderServiceImpl implements OrderService {
|
|||
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 {
|
||||
if (leaseRepairRecord.getRepairChangePrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairChangePrice());
|
||||
} else if (leaseRepairRecord.getRepairPrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairPrice());
|
||||
}
|
||||
if (leaseRepairRecord.getScrapChangePrice()==null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getScrapPrice());
|
||||
} else {
|
||||
if (leaseRepairRecord.getScrapChangePrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapChangePrice());
|
||||
} else if (leaseRepairRecord.getScrapPrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getScrapPrice());
|
||||
}
|
||||
if (leaseRepairRecord.getLossChangePrice()==null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossPrice()==null?BigDecimal.ZERO:leaseRepairRecord.getLossPrice());
|
||||
} else {
|
||||
if (leaseRepairRecord.getLossChangePrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossChangePrice());
|
||||
} else if (leaseRepairRecord.getLossPrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossPrice());
|
||||
}
|
||||
}
|
||||
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
|
||||
|
|
|
|||
|
|
@ -182,7 +182,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
hh.take_over_user,
|
||||
hh.take_over_time,
|
||||
hh.rent_over_user,
|
||||
hh.rent_over_time
|
||||
hh.rent_over_time,
|
||||
hh.change_cost as changeCost,
|
||||
hh.relief_cost as reliefCost,
|
||||
CASE
|
||||
WHEN DATE(hh.rent_over_time) = DATE(hh.pre_outbound_time) THEN 1
|
||||
ELSE TIMESTAMPDIFF(DAY, hh.pre_outbound_time, hh.rent_over_time) + 1
|
||||
END AS dateDays
|
||||
FROM
|
||||
ma_order_details hh
|
||||
LEFT JOIN ma_order_info moi ON hh.order_id = moi.order_id
|
||||
|
|
|
|||
Loading…
Reference in New Issue