Commit e2cb8a45 authored by 周健威's avatar 周健威

修改查询bug

parent ba4ce25b
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import com.xxfc.platform.vehicle.pojo.vo.UsableVeicleVO;
......@@ -58,4 +59,6 @@ public interface VehicleMapper extends Mapper<Vehicle> {
List<BranchCompanyVehicleCountVo> getAllVehicleInfo();
List<Vehicle> getAllVehicleByParam(Map<String, Object> param);
List<VehicleBookRecord> incloudBookRecord(@Param("startDateExtend") String startDateExtend, @Param("endDateExtend") String endDateExtend);
}
\ No newline at end of file
......@@ -8,11 +8,13 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.constant.CommonConstants;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleBookRecordBiz;
import com.xxfc.platform.vehicle.biz.VehicleHolidayPriceInfoBiz;
import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz;
import com.xxfc.platform.vehicle.common.BaseController;
......@@ -22,6 +24,8 @@ import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.constant.VehicleMemberType;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper;
import com.xxfc.platform.vehicle.mapper.VehicleMapper;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.vo.UsableVeicleVO;
......@@ -33,12 +37,15 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
......@@ -62,6 +69,12 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
@Autowired
VehicleBiz vehicleBiz;
@Autowired
VehicleBookRecordBiz vehicleBookRecordBiz;
@Autowired
VehicleMapper vehicleMapper;
@Autowired
VehicleHolidayPriceInfoBiz vehicleHolidayPriceInfoBiz;
......@@ -171,8 +184,30 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
PageDataVO<UsableVeicleVO> pageDataVO = vehicleBiz.searchUsableVehicle(rbd);
if(CollUtil.isNotEmpty(pageDataVO.getData())) {
data.setHasVehicle(SYS_TRUE);
List<UsableVeicleVO> deleteList=CollUtil.newArrayList();
for (UsableVeicleVO usableVeicleVO : pageDataVO.getData()) {
//判断是否有被全包含
List<VehicleBookRecord> list = vehicleMapper.incloudBookRecord(rbd.getStartDateExtend(), rbd.getEndDateExtend());
if(list.size() > 0) {
Date startDate = DateUtil.offsetMinute(DateUtil.date(dto.getStartDateTamp()), 5);
Date endDate = null == list.get(0).getActualEndDate()? list.get(0).getBookEndDate() : list.get(0).getActualEndDate();
endDate = DateUtil.offsetMinute(endDate, 6);
rbd.setBookStartDate(UsableVeicleDTO.DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(startDate.getTime()), ZoneOffset.ofHours(8))));
rbd.setBookEndDate(UsableVeicleDTO.DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(endDate.getTime()), ZoneOffset.ofHours(8))));
rbd.setBookStartDateTime(CommonConstants.DATE_TIME_LINE_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(startDate.getTime()), ZoneOffset.ofHours(8))));
rbd.setBookEndDateTime(CommonConstants.DATE_TIME_LINE_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(endDate.getTime()), ZoneOffset.ofHours(8))));
rbd.setVehicleId(usableVeicleVO.getId());
PageDataVO<UsableVeicleVO> pageDataVO2 = vehicleBiz.searchUsableVehicle(rbd);
if(pageDataVO2.getData().size() > 0) {
usableVeicleVO = pageDataVO2.getData().get(0);
}else {
deleteList.add(usableVeicleVO);
continue;
}
}
//判断是否预定时间内可租
usableVeicleVO.setAllowRent(SYS_TRUE);
//如果"必须在这时间后预定" 存在 并且 比预定开始时间 要晚,那么不允许预定
......@@ -204,6 +239,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
usableVeicleVO.setPriceDTOS(vehicleHolidayPriceInfoBiz.getSynthesizePrice(usableVeicleVO.getId(), priceStartDateStr, priceEndDateStr, null, usableVeicleVO.getSubordinateBranch()));
}
pageDataVO.getData().removeAll(deleteList);
data.setUsableVeicleVOList(pageDataVO.getData());
}
});
......
......@@ -1298,4 +1298,16 @@
on sevbr.vehicle_id = vbrs.vehicle_id and sevbr.min_book_start_date = IFNULL(vbrs.actual_start_date, vbrs.book_start_date) and vbrs.status != 4 and vbrs.status != 6
</sql>
<select id="incloudBookRecord" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord">
select *,
from vehicle_book_record
where status != 4 and status != 6
and (
((actual_end_date is not null and actual_end_date &gt;= #{endDateExtend}) or (actual_end_date is null and book_end_date &gt;= #{endDateExtend}))
and
((actual_start_date is not null and actual_start_date &lt;= #{startDateExtend}) or (actual_start_date is null and book_start_date &lt;= #{startDateExtend}))
)
order by IFNULL(actual_end_date, book_end_date) desc;
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment