This commit is contained in:
parent
6cb78e0749
commit
e88ab56c07
|
|
@ -15,7 +15,6 @@ import com.bonus.material.contract.service.BmContractService;
|
||||||
import com.bonus.material.device.domain.vo.DevInfoVo;
|
import com.bonus.material.device.domain.vo.DevInfoVo;
|
||||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||||
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
|
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
|
||||||
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
|
||||||
import com.bonus.material.order.domain.OrderDetailDto;
|
import com.bonus.material.order.domain.OrderDetailDto;
|
||||||
import com.bonus.material.order.domain.OrderInfoDto;
|
import com.bonus.material.order.domain.OrderInfoDto;
|
||||||
import com.bonus.material.order.mapper.OrderMapper;
|
import com.bonus.material.order.mapper.OrderMapper;
|
||||||
|
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
package com.bonus.material.order.domain;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class OrderDetailCostReliefDto {
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "主键id")
|
|
||||||
private Integer id;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "订单id")
|
|
||||||
private Integer orderId;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "设备id")
|
|
||||||
private Integer maId;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "减免开始时间")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
|
||||||
private String reliefStartTime;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "减免结束时间")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
|
||||||
private String reliefEndTime;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -122,4 +122,12 @@ public class OrderDetailDto {
|
||||||
@ApiModelProperty(value = "实际天数")
|
@ApiModelProperty(value = "实际天数")
|
||||||
private Integer dateDays;
|
private Integer dateDays;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "减免开始时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
private String reliefStartTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "减免结束时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
private String reliefEndTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,8 +93,6 @@ public class OrderInfoDto {
|
||||||
|
|
||||||
private List<OrderDetailDto> detailsList;
|
private List<OrderDetailDto> detailsList;
|
||||||
|
|
||||||
private List<OrderDetailCostReliefDto> reliefList;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "承租方公司名称")
|
@ApiModelProperty(value = "承租方公司名称")
|
||||||
private String companyName;
|
private String companyName;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package com.bonus.material.order.mapper;
|
||||||
|
|
||||||
import com.bonus.material.device.domain.DevInfo;
|
import com.bonus.material.device.domain.DevInfo;
|
||||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||||
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
|
||||||
import com.bonus.material.order.domain.OrderDetailDto;
|
import com.bonus.material.order.domain.OrderDetailDto;
|
||||||
import com.bonus.material.order.domain.OrderInfoDto;
|
import com.bonus.material.order.domain.OrderInfoDto;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -40,9 +39,11 @@ public interface OrderMapper {
|
||||||
|
|
||||||
int updateOrder(LeaseRepairRecord leaseRepairRecord);
|
int updateOrder(LeaseRepairRecord leaseRepairRecord);
|
||||||
|
|
||||||
int deleteCostReliefs(@Param("orderId") Integer orderId);
|
int updateOrder4Relief(OrderDetailDto dto);
|
||||||
|
|
||||||
int insertCostReliefs(@Param("list") List<OrderDetailCostReliefDto> reliefList);
|
// int deleteCostReliefs(@Param("orderId") Integer orderId);
|
||||||
|
//
|
||||||
|
// int insertCostReliefs(@Param("list") List<OrderDetailCostReliefDto> reliefList);
|
||||||
|
|
||||||
OrderInfoDto getAgreementByOrderId(String orderId);
|
OrderInfoDto getAgreementByOrderId(String orderId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.bonus.material.order.service;
|
package com.bonus.material.order.service;
|
||||||
|
|
||||||
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
|
||||||
import com.bonus.material.order.domain.OrderDetailDto;
|
import com.bonus.material.order.domain.OrderDetailDto;
|
||||||
import com.bonus.material.order.domain.OrderInfoDto;
|
import com.bonus.material.order.domain.OrderInfoDto;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,9 @@ import com.bonus.common.biz.enums.OrderStatusEnum;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
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.LeaseRepair;
|
||||||
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
import com.bonus.material.lease.domain.LeaseRepairRecord;
|
||||||
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
|
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
|
||||||
import com.bonus.material.order.domain.OrderDetailCostReliefDto;
|
|
||||||
import com.bonus.material.order.domain.OrderDetailDto;
|
import com.bonus.material.order.domain.OrderDetailDto;
|
||||||
import com.bonus.material.order.domain.OrderInfoDto;
|
import com.bonus.material.order.domain.OrderInfoDto;
|
||||||
import com.bonus.material.order.mapper.OrderMapper;
|
import com.bonus.material.order.mapper.OrderMapper;
|
||||||
|
|
@ -17,7 +15,6 @@ import com.bonus.material.order.service.OrderService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
@ -107,13 +104,22 @@ public class OrderServiceImpl implements OrderService {
|
||||||
list.add(orderDetailDto);
|
list.add(orderDetailDto);
|
||||||
}
|
}
|
||||||
BigDecimal totalRentalPrice = BigDecimal.ZERO;
|
BigDecimal totalRentalPrice = BigDecimal.ZERO;
|
||||||
|
BigDecimal totalReliefPrice = BigDecimal.ZERO;
|
||||||
for (OrderDetailDto orderDetailDto : list) {
|
for (OrderDetailDto orderDetailDto : list) {
|
||||||
if (Objects.nonNull(orderDetailDto) && String.valueOf(OrderStatusEnum.ORDER_FINISHED.getStatus()).equals(orderDetailDto.getOrderStatus())) {
|
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 preOutBoundTime = sdf.parse(orderDetailDto.getPreOutboundTime());
|
||||||
Date rentOverTime = sdf.parse(orderDetailDto.getRentOverTime());
|
Date rentOverTime = sdf.parse(orderDetailDto.getRentOverTime());
|
||||||
long days = DateUtils.daysBetween(preOutBoundTime, rentOverTime) + 1;
|
long days = DateUtils.daysBetween(preOutBoundTime, rentOverTime) + 1;
|
||||||
totalRentalPrice = totalRentalPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(days)));
|
totalRentalPrice = totalRentalPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(days)));
|
||||||
}
|
}
|
||||||
|
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)));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dto.setTotalRentalPrice(totalRentalPrice);
|
dto.setTotalRentalPrice(totalRentalPrice);
|
||||||
dto.setDetailsList(list);
|
dto.setDetailsList(list);
|
||||||
|
|
@ -155,7 +161,7 @@ public class OrderServiceImpl implements OrderService {
|
||||||
}
|
}
|
||||||
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
|
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
|
||||||
}
|
}
|
||||||
dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice));
|
dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice).subtract(totalReliefPrice));
|
||||||
}
|
}
|
||||||
return orderInfoDtos;
|
return orderInfoDtos;
|
||||||
}
|
}
|
||||||
|
|
@ -177,10 +183,11 @@ public class OrderServiceImpl implements OrderService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer submitCostRelief(OrderInfoDto orderInfoDto) {
|
public Integer submitCostRelief(OrderInfoDto orderInfoDto) {
|
||||||
List<OrderDetailCostReliefDto> list = orderInfoDto.getReliefList();
|
List<OrderDetailDto> list = orderInfoDto.getDetailsList();
|
||||||
if (!CollectionUtils.isEmpty(list)) {
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
orderMapper.deleteCostReliefs(list.get(0).getOrderId());
|
for (OrderDetailDto dto : list) {
|
||||||
return orderMapper.insertCostReliefs(orderInfoDto.getReliefList());
|
orderMapper.updateOrder4Relief(dto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="updateOrder4Relief">
|
||||||
|
UPDATE
|
||||||
|
ma_order_details
|
||||||
|
set relief_start_time = #{reliefStartTime},
|
||||||
|
relief_end_time = #{reliefEndTime},
|
||||||
|
update_time = now()
|
||||||
|
WHERE order_id = #{orderId} and ma_id = #{maId}
|
||||||
|
</update>
|
||||||
|
|
||||||
<select id="getdeviceCount" resultType="com.bonus.material.device.domain.DevInfo">
|
<select id="getdeviceCount" resultType="com.bonus.material.device.domain.DevInfo">
|
||||||
select device_count,device_name from ma_dev_info where ma_id = #{maId} and is_active = 1
|
select device_count,device_name from ma_dev_info where ma_id = #{maId} and is_active = 1
|
||||||
</select>
|
</select>
|
||||||
|
|
@ -309,12 +318,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<insert id="insertCostReliefs">
|
<insert id="insertCostReliefs">
|
||||||
insert into ma_order_details_relief(order_id, ma_id, relief_begin_time, relief_end_time, create_time)
|
insert into ma_order_details_relief(order_id, ma_id, status, relief_begin_time, relief_end_time, create_time)
|
||||||
values
|
values
|
||||||
<foreach collection="list" item="item" index="index" separator=",">
|
<foreach collection="list" item="item" index="index" separator=",">
|
||||||
(
|
(
|
||||||
#{item.orderId},
|
#{item.orderId},
|
||||||
#{item.maId},
|
#{item.maId},
|
||||||
|
#{item.status},
|
||||||
#{item.reliefStartTime},
|
#{item.reliefStartTime},
|
||||||
#{item.reliefEndTime},
|
#{item.reliefEndTime},
|
||||||
now()
|
now()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue