This commit is contained in:
parent
e61f3a5392
commit
a87afeef23
|
|
@ -85,6 +85,9 @@ public class OrderDetailDto {
|
|||
@ApiModelProperty(value = "总金额")
|
||||
private BigDecimal costs;
|
||||
|
||||
@ApiModelProperty(value = "累计租金")
|
||||
private BigDecimal totalCost;
|
||||
|
||||
@ApiModelProperty(value = "改价金额")
|
||||
private BigDecimal changeCost;
|
||||
|
||||
|
|
@ -117,7 +120,7 @@ public class OrderDetailDto {
|
|||
private String preOutboundUser;
|
||||
|
||||
@ApiModelProperty(value = "出库时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private String preOutboundTime;
|
||||
|
||||
@ApiModelProperty(value = "收货人")
|
||||
|
|
@ -180,4 +183,11 @@ public class OrderDetailDto {
|
|||
@ApiModelProperty(value = "单位")
|
||||
private String unitName;
|
||||
|
||||
@ApiModelProperty(value = "接单人")
|
||||
private String receivingUser;
|
||||
|
||||
@ApiModelProperty(value = "接单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private String receivingTime;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,12 @@ import org.springframework.util.CollectionUtils;
|
|||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
|
@ -256,10 +261,65 @@ public class OrderServiceImpl implements OrderService {
|
|||
orderInfoDto.setPhoneNumber(Sm4Utils.decrypt(orderInfoDto.getPhoneNumber()));
|
||||
orderInfoDto.setStartTime(list.get(0).getRentBeginTime());
|
||||
orderInfoDto.setEndTime(list.get(0).getRentEndTime());
|
||||
for (OrderDetailDto orderDetailDto : list) {
|
||||
orderDetailDto.setTotalCost(orderDetailDto.getCosts());
|
||||
// 出库时间设置为租赁开始时间
|
||||
if (StringUtils.isNotBlank(orderDetailDto.getPreOutboundTime())) {
|
||||
// 租赁天数为租期结束时间减去出库时间,计算天数差
|
||||
String dateStr1 = orderDetailDto.getPreOutboundTime();
|
||||
Date dateStr2 = orderDetailDto.getRentEndTime();
|
||||
long daysDifference = calculateDaysDifference(dateStr1, dateStr2);
|
||||
// 计算累计租金
|
||||
BigDecimal totalCost = orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(daysDifference));
|
||||
orderDetailDto.setDays(String.valueOf(daysDifference));
|
||||
orderDetailDto.setTotalCost(totalCost);
|
||||
}
|
||||
}
|
||||
orderInfoDto.setDetailsList(list);
|
||||
return orderInfoDto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算两个日期之间的天数差
|
||||
* @param preOutboundTimeStr
|
||||
* @param rentEndTime
|
||||
* @return
|
||||
*/
|
||||
public static long calculateDaysDifference(String preOutboundTimeStr, Date rentEndTime) {
|
||||
try {
|
||||
// 定义日期格式
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
// 将字符串转换为 Date 类型
|
||||
Date preOutboundDate = sdf.parse(preOutboundTimeStr);
|
||||
|
||||
// 将 java.util.Date 转换为 java.time.LocalDate
|
||||
LocalDate preOutboundLocalDate = convertToLocalDate(preOutboundDate);
|
||||
LocalDate rentEndLocalDate = convertToLocalDate(rentEndTime);
|
||||
|
||||
// 计算天数差
|
||||
long days = ChronoUnit.DAYS.between(preOutboundLocalDate, rentEndLocalDate);
|
||||
if (days == 0) {
|
||||
days = 1;
|
||||
} else {
|
||||
days = days + 1;
|
||||
}
|
||||
return days;
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException("日期转换错误", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 java.util.Date 转换为 java.time.LocalDate
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static LocalDate convertToLocalDate(Date date) {
|
||||
return Instant.ofEpochMilli(date.getTime())
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderInfoDto> getOrderStatusCount(OrderDetailDto dto) throws Exception {
|
||||
//true:出租方 false:承租方
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
</if>
|
||||
<if test="orderStatus == 4">
|
||||
,pre_outbound_user = #{userName}
|
||||
,pre_outbound_time = now()
|
||||
,take_over_user = #{userName}
|
||||
,take_over_time = now()
|
||||
,order_remark = #{remark}
|
||||
|
|
@ -295,6 +297,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
hh.take_over_time,
|
||||
hh.rent_over_user,
|
||||
hh.rent_over_time,
|
||||
hh.receiving_user as receivingUser,
|
||||
hh.receiving_time as receivingTime,
|
||||
hh.change_cost as changeCost,
|
||||
hh.relief_cost as reliefCost,
|
||||
hh.relief_change_cost as reliefChangeCost,
|
||||
|
|
|
|||
Loading…
Reference in New Issue