综合查询-订单信息查询
This commit is contained in:
parent
6ad88a582d
commit
6f03c54bb9
|
|
@ -6,6 +6,7 @@ import com.bonus.material.comprehensive.entity.RentDetailDto;
|
|||
import com.bonus.material.device.domain.DevInfo;
|
||||
import com.bonus.material.device.domain.vo.DevInfoVo;
|
||||
import com.bonus.material.device.service.DevInfoService;
|
||||
import com.bonus.material.order.domain.OrderInfoDto;
|
||||
import com.bonus.material.order.service.OrderService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -44,4 +45,11 @@ public class ComprehensiveController extends BaseController {
|
|||
List<RentDetailDto> list = orderService.getRentDetails(devInfo);
|
||||
return AjaxResult.success(getDataTable(list));
|
||||
}
|
||||
@ApiOperation(value = "综合查询-订单信息查询")
|
||||
@GetMapping("/orderDetails")
|
||||
public AjaxResult getOrderDetails(OrderInfoDto orderInfoDto) {
|
||||
startPage();
|
||||
List<OrderInfoDto> list = orderService.getOrderInfos(orderInfoDto);
|
||||
return AjaxResult.success(getDataTable(list));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,6 @@ public interface OrderService {
|
|||
OrderInfoDto getAgreementByOrderId(String orderId);
|
||||
|
||||
List<RentDetailDto> getRentDetails(DevInfoVo devInfo);
|
||||
|
||||
List<OrderInfoDto> getOrderInfos(OrderInfoDto orderInfoDto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -234,4 +234,83 @@ public class OrderServiceImpl implements OrderService {
|
|||
public List<RentDetailDto> getRentDetails(DevInfoVo devInfo) {
|
||||
return orderMapper.getRentDetails(devInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderInfoDto> getOrderInfos(OrderInfoDto devInfo) {
|
||||
List<OrderInfoDto> orderInfoDtos = orderMapper.getOrderDetails(devInfo);
|
||||
for (OrderInfoDto dto : orderInfoDtos) {
|
||||
dto.setPhoneNumber(Sm4Utils.decrypt(dto.getPhoneNumber()));
|
||||
List<OrderDetailDto> list = new ArrayList();
|
||||
String ids = dto.getIds();
|
||||
for (String id : ids.split(",")) {
|
||||
OrderDetailDto orderDetailDto = orderMapper.selectOrderDetailsById(id);
|
||||
list.add(orderDetailDto);
|
||||
}
|
||||
BigDecimal totalRentalPrice = BigDecimal.ZERO;
|
||||
BigDecimal totalReliefPrice = BigDecimal.ZERO;
|
||||
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 (detailDto.getReliefChangeCost() != null) {
|
||||
totalReliefPrice.add(detailDto.getReliefChangeCost());
|
||||
} else if (detailDto.getReliefCost() != null) {
|
||||
totalReliefPrice.add(detailDto.getReliefCost());
|
||||
}
|
||||
}
|
||||
}
|
||||
dto.setTotalRentalPrice(totalRentalPrice);
|
||||
dto.setDetailsList(list);
|
||||
Optional<OrderDetailDto> minOrderStatus = list.stream()
|
||||
.min((p1, p2) -> Integer.compare(Integer.parseInt(p1.getOrderStatus()), Integer.parseInt(p2.getOrderStatus())));
|
||||
if (minOrderStatus.isPresent()) {
|
||||
dto.setOrderStatus(minOrderStatus.get().getOrderStatus());
|
||||
}
|
||||
//根据订单id去lease_repair_record表中查询是否已填写退租检修信息
|
||||
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.getRepairChangePrice());
|
||||
} else if (leaseRepairRecord.getRepairPrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getRepairPrice());
|
||||
}
|
||||
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.getLossChangePrice());
|
||||
} else if (leaseRepairRecord.getLossPrice() != null) {
|
||||
totalRepairScrapLossPrice = totalRepairScrapLossPrice.add(leaseRepairRecord.getLossPrice());
|
||||
}
|
||||
}
|
||||
dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice);
|
||||
}
|
||||
dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice).subtract(totalReliefPrice));
|
||||
}
|
||||
return orderInfoDtos;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue