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