Commit ee8a11f8 authored by libin's avatar libin

Merge remote-tracking branch 'origin/master'

parents d5f2b51e a01a3350
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -8,12 +9,14 @@ import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; ...@@ -8,12 +9,14 @@ import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.context.BaseContextHandler; import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query; import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
...@@ -39,6 +42,7 @@ import com.xxfc.platform.universal.feign.MQSenderFeign; ...@@ -39,6 +42,7 @@ import com.xxfc.platform.universal.feign.MQSenderFeign;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense; import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
...@@ -53,12 +57,10 @@ import org.joda.time.format.DateTimeFormatter; ...@@ -53,12 +57,10 @@ import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.*; import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.*;
...@@ -72,7 +74,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; ...@@ -72,7 +74,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
*/ */
@Service @Service
@Slf4j @Slf4j
public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements UserRestInterface {
@Autowired @Autowired
OrderMemberDetailBiz orderMemberDetailBiz; OrderMemberDetailBiz orderMemberDetailBiz;
...@@ -332,6 +334,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -332,6 +334,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
dedDetailDTO.setStatusName(detailName); dedDetailDTO.setStatusName(detailName);
} }
/**
* 获取驾驶人驾照
* @param orderPageVo
*/
public void getUserLicense(OrderPageVO orderPageVo) { public void getUserLicense(OrderPageVO orderPageVo) {
OrderVehicleCrosstownDto orderVehicleCrosstownDto = new OrderVehicleCrosstownDto(); OrderVehicleCrosstownDto orderVehicleCrosstownDto = new OrderVehicleCrosstownDto();
orderVehicleCrosstownDto.setOrderId(orderPageVo.getId()); orderVehicleCrosstownDto.setOrderId(orderPageVo.getId());
...@@ -360,6 +366,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -360,6 +366,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto); orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto);
} }
/**
* 获取驾驶人信息
* @param orderPageVo
*/
public void getDriverInfo(OrderPageVO orderPageVo) { public void getDriverInfo(OrderPageVO orderPageVo) {
List<VehicleUserLicense> vehicleUserLicenses = Lists.newArrayList(); List<VehicleUserLicense> vehicleUserLicenses = Lists.newArrayList();
String myDriverIds = orderPageVo.getOrderRentVehicleDetail().getMyDriverIds(); String myDriverIds = orderPageVo.getOrderRentVehicleDetail().getMyDriverIds();
...@@ -387,7 +397,62 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -387,7 +397,62 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setVehicleUserLicenses(vehicleUserLicenses); orderPageVo.setVehicleUserLicenses(vehicleUserLicenses);
} }
public ObjectRestResponse save(OrderRentVehicleDetail orderRentVehicleDetail) {
if (orderRentVehicleDetail == null || orderRentVehicleDetail.getId() == null) {
return ObjectRestResponse.paramIsEmpty();
}
log.info("更新订单还车地点》》》 orderRentVehicleDetail = {}", orderRentVehicleDetail.toString());
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
StringBuilder stringBuilder = new StringBuilder();
OrderRentVehicleDetail oldValue = orderRentVehicleBiz.selectById(orderRentVehicleDetail.getId());
if(oldValue == null) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
}
stringBuilder.append("修改订单和预定记录还车公司成功, 订单ID:");
stringBuilder.append( oldValue.getOrderId());
stringBuilder.append("; 原还车公司ID: ");
stringBuilder.append(oldValue.getEndCompanyId());
stringBuilder.append("; 更新后还车公司ID: ");
stringBuilder.append(orderRentVehicleDetail.getEndCompanyId());
stringBuilder.append("; 操作人ID:");
stringBuilder.append(userDTO.getId());
stringBuilder.append("; 操作人账号:");
stringBuilder.append(userDTO.getUsername());
//添加修改记录实体
BookRecordUpdateLog bookRecordUpdateLog = new BookRecordUpdateLog();
bookRecordUpdateLog.setBookRecordId(oldValue.getBookRecordId());
bookRecordUpdateLog.setOldRetCompanyId(oldValue.getEndCompanyId());
bookRecordUpdateLog.setNewRetCompanyId(orderRentVehicleDetail.getEndCompanyId());
bookRecordUpdateLog.setOperaterId(userDTO.getId());
bookRecordUpdateLog.setOperaterName(userDTO.getName());
bookRecordUpdateLog.setOrderId(oldValue.getOrderId());
bookRecordUpdateLog.setCreateTime(new Date());
BeanUtil.copyProperties(orderRentVehicleDetail, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(orderRentVehicleDetail.getEndCompanyId()).getData();
if(companyDetail != null) {
oldValue.setEndCity(companyDetail.getAddrCity());
oldValue.setEndAddr(companyDetail.detailAddr());
}
oldValue.setEndCompanyId(orderRentVehicleDetail.getEndCompanyId());
orderRentVehicleBiz.updateSelectiveByIdRe(oldValue);
ObjectRestResponse objectRestResponse = vehicleFeign.update(bookRecordUpdateLog);
if (objectRestResponse!= null && objectRestResponse.getRel()) {
log.info(stringBuilder.toString());
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createFailedResult(1355, "修改失败!");
}
/**
* 获取订单详情,包含驾驶人信息,违约金等信息
* @param no
* @return
*/
public ObjectRestResponse<OrderPageVO> getOrderDetail(String no) { public ObjectRestResponse<OrderPageVO> getOrderDetail(String no) {
OrderPageVO orderPageVo = mapper.getOrderDetail(no); OrderPageVO orderPageVo = mapper.getOrderDetail(no);
if (orderPageVo == null) { if (orderPageVo == null) {
...@@ -641,6 +706,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -641,6 +706,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
return query; return query;
} }
@Override
public UserFeign getUserFeign() {
return userFeign;
}
/** /**
* 订单查询类 * 订单查询类
*/ */
......
...@@ -172,7 +172,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -172,7 +172,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId()); OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId());
if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) { if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) {
boolean flag = getTodayTime(orderRentVehicleDetail.getEndTime()); boolean flag = getTodayTime(orderRentVehicleDetail.getStartTime());
if (!flag) { if (!flag) {
return ObjectRestResponse.createFailedResult(3502, "今日不是交车日期"); return ObjectRestResponse.createFailedResult(3502, "今日不是交车日期");
} }
...@@ -225,9 +225,8 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -225,9 +225,8 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getLicensePhone()); vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getLicensePhone());
try { try {
RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo); RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo);
log.info("返回信息: " + restResponse); log.info("返回信息: " + restResponse.toString());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createFailedResult(1001, e.getMessage()); return ObjectRestResponse.createFailedResult(1001, e.getMessage());
} }
} else if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.ARRIVE.getCode() || orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.FIXED_LOSS.getCode()) { //还车 } else if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.ARRIVE.getCode() || orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.FIXED_LOSS.getCode()) { //还车
...@@ -243,9 +242,9 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -243,9 +242,9 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleArrivalVo.setRecycleManTel("13565235623"); vehicleArrivalVo.setRecycleManTel("13565235623");
} }
try { try {
vehicleFeign.arrivalBySmall(vehicleArrivalVo); RestResponse restResponse = vehicleFeign.arrivalBySmall(vehicleArrivalVo);
log.info("返回信息: " + restResponse.toString());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createFailedResult(500, e.getMessage()); return ObjectRestResponse.createFailedResult(500, e.getMessage());
} }
} }
...@@ -433,9 +432,16 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -433,9 +432,16 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
public boolean getTodayTime(Long time) { public boolean getTodayTime(Long time) {
long current = System.currentTimeMillis(); long current = System.currentTimeMillis();
if (current <= (time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset()) + 24 * 60 * 60 * 1000 - 1) { if (current <= (getDayStart(time) + 24 * 60 * 60 * 1000 - 1) && current >= getDayStart(time)) {
return true; return true;
} }
return false; return false;
} }
public static Long getDayStart(Long time) {
long current = time;
long zero = current / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset();
return zero;
}
} }
...@@ -359,6 +359,12 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -359,6 +359,12 @@ public class BackStageOrderController extends CommonBaseController implements Us
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
@PostMapping("/updateEndCompany")
@ResponseBody
public ObjectRestResponse updateEndCompany(@RequestBody OrderRentVehicleDetail orderRentVehicleDetail) {
return baseOrderBiz.save(orderRentVehicleDetail);
}
@Data @Data
public static class ChangeVehicleDTO { public static class ChangeVehicleDTO {
String no; String no;
......
...@@ -70,4 +70,11 @@ public class RestResponse<T> extends BaseResponse { ...@@ -70,4 +70,11 @@ public class RestResponse<T> extends BaseResponse {
return restResponse; return restResponse;
} }
@Override
public String toString() {
return "RestResponse{" +
"data=" + data +
", code=" + code +
'}';
}
} }
package com.xxfc.platform.vehicle.entity;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
@Data
@Table(name = "book_record_update_log")
public class BookRecordUpdateLog {
@Id
private Integer id;
/**
* 订单ID
*/
@Column(name = "order_id")
private Integer orderId;
/**
* 预定记录ID
*/
@Column(name = "book_record_id")
private Long bookRecordId;
/**
* 原还车公司ID
*/
@Column(name = "old_ret_company_id")
private Integer oldRetCompanyId;
/**
* 新还车公司ID
*/
@Column(name = "new_ret_company_id")
private Integer newRetCompanyId;
/**
* 操作人ID
*/
@Column(name = "operater_id")
private Integer operaterId;
/**
* 操作人姓名
*/
@Column(name = "operater_name")
private String operaterName;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
}
\ No newline at end of file
...@@ -72,6 +72,16 @@ public class VehicleCountRecord { ...@@ -72,6 +72,16 @@ public class VehicleCountRecord {
) )
private Date countDate; private Date countDate;
/**
* 无效数据数量(超过还车时间后还未出车的数据)
*/
@Column(name = "no_use_num")
private Integer noUseNum;
@Column(name = "cancel_num")
private Integer cancelNum;
@Transient @Transient
private String startTime; private String startTime;
......
...@@ -10,6 +10,7 @@ import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO; ...@@ -10,6 +10,7 @@ import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo; import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo; import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO; import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -163,4 +164,8 @@ public interface VehicleFeign { ...@@ -163,4 +164,8 @@ public interface VehicleFeign {
@GetMapping("/vehicleInfo/findVehicleIds") @GetMapping("/vehicleInfo/findVehicleIds")
List<String> findbyPlateNumberAndVehicleCod(@RequestParam(value = "plateNumber") String plateNumber,@RequestParam(value = "vehicleCode") String vehicleCode); List<String> findbyPlateNumberAndVehicleCod(@RequestParam(value = "plateNumber") String plateNumber,@RequestParam(value = "vehicleCode") String vehicleCode);
@RequestMapping(value = "/vehicleInfo/bookRecord/update", method = RequestMethod.POST)
public ObjectRestResponse update(@RequestBody BookRecordUpdateLog bookRecordUpdateLog);
} }
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import lombok.Data;
@Data
public class DepartureLogVo extends VehicleDepartureLog {
VehicleBookRecord vehicleBookRecord;
}
package com.xxfc.platform.vehicle.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import com.xxfc.platform.vehicle.mapper.BookRecordUpdateLogMapper;
import org.springframework.stereotype.Service;
@Service
public class BookRecordUpdateLogBiz extends BaseBiz<BookRecordUpdateLogMapper, BookRecordUpdateLog> {
public ObjectRestResponse save(BookRecordUpdateLog bookRecordUpdateLog) {
BookRecordUpdateLog oldValue = mapper.selectOne(bookRecordUpdateLog);
if (oldValue != null) {
return ObjectRestResponse.succ();
}
insertSelectiveRe(bookRecordUpdateLog);
return ObjectRestResponse.succ();
}
}
...@@ -78,6 +78,9 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -78,6 +78,9 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
@Autowired @Autowired
VehicleDepartureService vehicleDepartureService; VehicleDepartureService vehicleDepartureService;
@Autowired
BookRecordUpdateLogBiz bookRecordUpdateLogBiz;
@Override @Override
public UserFeign getUserFeign() { public UserFeign getUserFeign() {
return userFeign; return userFeign;
...@@ -324,6 +327,21 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -324,6 +327,21 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
return vehicleBookRecordVos; return vehicleBookRecordVos;
} }
public ObjectRestResponse update(BookRecordUpdateLog bookRecordUpdateLog) {
VehicleBookRecord vehicleBookRecord = selectById(bookRecordUpdateLog.getBookRecordId());
if(vehicleBookRecord != null) {
vehicleBookRecord.setRetCompany(bookRecordUpdateLog.getNewRetCompanyId());
int a = updateSelectiveByIdRe(vehicleBookRecord);
log.info(vehicleBookRecord.toString());
if(a <= 0) {
return ObjectRestResponse.createDefaultFail();
}
return bookRecordUpdateLogBiz.save(bookRecordUpdateLog);
} else {
return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc());
}
}
public ObjectRestResponse<List<VehicleBookRecordVo>> selectByIds(List<Long> ids) { public ObjectRestResponse<List<VehicleBookRecordVo>> selectByIds(List<Long> ids) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("ids", ids); map.put("ids", ids);
...@@ -644,6 +662,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -644,6 +662,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
} }
public List<VehicleBookRecordVo> selectAllCancelBookRecord(Map<String, Object> param) {
return mapper.selectAllCancelBookRecord(param);
}
public PageDataVO<VehicleRecordInfoVo> getListByParam(VehiclePlanDto vehiclePlanDto) { public PageDataVO<VehicleRecordInfoVo> getListByParam(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto); Query query = new Query(vehiclePlanDto);
......
...@@ -15,6 +15,7 @@ import com.xxfc.platform.vehicle.constant.VehicleCountType; ...@@ -15,6 +15,7 @@ import com.xxfc.platform.vehicle.constant.VehicleCountType;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord; import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleCountRecord; import com.xxfc.platform.vehicle.entity.VehicleCountRecord;
import com.xxfc.platform.vehicle.mapper.VehicleCountRecordMapper; import com.xxfc.platform.vehicle.mapper.VehicleCountRecordMapper;
import com.xxfc.platform.vehicle.pojo.DepartureLogVo;
import com.xxfc.platform.vehicle.pojo.ExcelParamDto; import com.xxfc.platform.vehicle.pojo.ExcelParamDto;
import com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo; import com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo;
import com.xxfc.platform.vehicle.util.excel.ExcelExport; import com.xxfc.platform.vehicle.util.excel.ExcelExport;
...@@ -68,8 +69,8 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -68,8 +69,8 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
if (StringUtils.isBlank(vehicleCountRecord.getEndTime())) { if (StringUtils.isBlank(vehicleCountRecord.getEndTime())) {
vehicleCountRecord.setEndTime(vehicleCountRecord.getStartTime()); vehicleCountRecord.setEndTime(vehicleCountRecord.getStartTime());
} }
map.put("startTime", DateTime.parse(vehicleCountRecord.getStartTime(), DEFAULT_DATE_TIME_FORMATTER).toDate()); map.put("startTime", DateTime.parse(vehicleCountRecord.getStartTime(), DEFAULT_DATE_TIME_FORMATTER).getMillis());
map.put("endTime", DateTime.parse(vehicleCountRecord.getEndTime(), DEFAULT_DATE_TIME_FORMATTER).toDate()); map.put("endTime", DateTime.parse(vehicleCountRecord.getEndTime(), DEFAULT_DATE_TIME_FORMATTER).getMillis());
} }
if (MapUtils.isNotEmpty(map)) { if (MapUtils.isNotEmpty(map)) {
...@@ -82,6 +83,29 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -82,6 +83,29 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
return ObjectRestResponse.succ(new ArrayList<>()); return ObjectRestResponse.succ(new ArrayList<>());
} }
public ObjectRestResponse selectByTime(VehicleCountRecord vehicleCountRecord) {
Map<String, Object> map = new HashMap<>();
if (vehicleCountRecord.getType() != null) {
map.put("type", vehicleCountRecord.getType());
}
if (StringUtils.isNotBlank(vehicleCountRecord.getStartTime())) {
if (StringUtils.isBlank(vehicleCountRecord.getEndTime())) {
vehicleCountRecord.setEndTime(vehicleCountRecord.getStartTime());
}
map.put("startTime", DateTime.parse(vehicleCountRecord.getStartTime(), DEFAULT_DATE_TIME_FORMATTER).toDate());
map.put("endTime", DateTime.parse(vehicleCountRecord.getEndTime(), DEFAULT_DATE_TIME_FORMATTER).toDate());
}
if (MapUtils.isNotEmpty(map)) {
List<VehicleCountRecord> list = mapper.selectByTime(map);
if (list == null) {
return ObjectRestResponse.createFailedResult(ResCode.FIND_DATA_NOT_EXIST.getCode(), ResCode.FIND_DATA_NOT_EXIST.getDesc());
}
return ObjectRestResponse.succ(list);
}
return ObjectRestResponse.succ(new ArrayList<>());
}
/** /**
* 添加统计记录 * 添加统计记录
* *
...@@ -116,31 +140,46 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -116,31 +140,46 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
VehicleCountRecord vehicleCountRecord = new VehicleCountRecord(); VehicleCountRecord vehicleCountRecord = new VehicleCountRecord();
VehicleCountRecord tourCountRecord = new VehicleCountRecord(); VehicleCountRecord tourCountRecord = new VehicleCountRecord();
VehicleCountRecord innerCountRecord = new VehicleCountRecord(); VehicleCountRecord innerCountRecord = new VehicleCountRecord();
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
startDate = simpleDateFormat1.format(startTime);
endDate = simpleDateFormat1.format(endTime);
} catch (Exception e) {
e.printStackTrace();
}
//租车应出车数量 //租车应出车数量
List<OrderPageVO> vehicleDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 1).getData(); List<OrderPageVO> vehicleDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 1).getData();
if (vehicleDepartureList != null && vehicleDepartureList.size() > 0) { if (vehicleDepartureList != null && vehicleDepartureList.size() > 0) {
vehicleCountRecord.setDepartureNum(vehicleDepartureList.size()); vehicleCountRecord.setDepartureNum(vehicleDepartureList.size());
List<OrderRentVehicleDetail> orderRentVehicleDetails = vehicleDepartureList.stream().map(OrderPageVO::getOrderRentVehicleDetail).collect(Collectors.toList()); }
if (orderRentVehicleDetails != null && orderRentVehicleDetails.size() > 0) { Map<String, Object> param = new HashMap<>();
List<Long> bookRecordIds = orderRentVehicleDetails.stream().map(OrderRentVehicleDetail::getBookRecordId).collect(Collectors.toList()); param.put("startTime", DateTime.parse(startDate, DATE_TIME_FORMATTER).toDate());
if (bookRecordIds != null && bookRecordIds.size() > 0) { param.put("endTime", DateTime.parse(endDate, DATE_TIME_FORMATTER).toDate());
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByIds(bookRecordIds).getData(); //1代表出车 2代表还车
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) { param.put("status", 1);
Map<Integer, Integer> map = getDeparture(vehicleBookRecordVos, 1); param.put("bookUser", -2);
if (MapUtils.isNotEmpty(map)) { //1代表正常出车,2代表提前出车,3代表延期出车
// 租车提前交车数量 已经还车且交车时间小于出车时间, param.put("type", 2);
vehicleCountRecord.setBeforeDepartureNum(map.get(2)); //租车提前出车数量
//延后交车,还未交车 Integer beforeDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
vehicleCountRecord.setAfterDepartureNum(map.get(1)); if(beforeDepartureNum != null && beforeDepartureNum > 0) {
//正常交车,在当天时间内交车 vehicleCountRecord.setBeforeDepartureNum(beforeDepartureNum);
vehicleCountRecord.setActualDepartureNum(map.get(3)); }
} //租车正常出车数量
} param.put("type", 1);
Integer normalDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
} if(normalDepartureNum != null && normalDepartureNum > 0) {
} vehicleCountRecord.setActualDepartureNum(normalDepartureNum);
}
//租车延期出车数量
param.put("type", 3);
Integer afterDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(afterDepartureNum != null && afterDepartureNum > 0) {
vehicleCountRecord.setAfterDepartureNum(afterDepartureNum);
} }
vehicleCountRecord.setType(VehicleCountType.RENT_VEHICLE.getCode()); vehicleCountRecord.setType(VehicleCountType.RENT_VEHICLE.getCode());
//旅游应出车数量 //旅游应出车数量
List<OrderPageVO> tourDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 1).getData(); List<OrderPageVO> tourDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 1).getData();
if (tourDepartureList != null && tourDepartureList.size() > 0) { if (tourDepartureList != null && tourDepartureList.size() > 0) {
...@@ -152,42 +191,60 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -152,42 +191,60 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List<VehicleBookRecordVo> vehicleDepartureBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 1).getData(); List<VehicleBookRecordVo> vehicleDepartureBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 1).getData();
if (vehicleDepartureBookRecordList != null && vehicleDepartureBookRecordList.size() > 0) { if (vehicleDepartureBookRecordList != null && vehicleDepartureBookRecordList.size() > 0) {
innerCountRecord.setDepartureNum(vehicleDepartureBookRecordList.size()); innerCountRecord.setDepartureNum(vehicleDepartureBookRecordList.size());
Map<Integer, Integer> map = getDeparture(vehicleDepartureBookRecordList, 1); }
if (MapUtils.isNotEmpty(map)) { //1代表出车 2代表还车
// 租车提前交车数量 已经出车且交车时间小于出车时间, param.put("status", 1);
innerCountRecord.setBeforeDepartureNum(map.get(2)); param.remove("bookUser");
//延后交车,还未交车 //1代表正常出车,2代表提前出车,3代表延期出车
innerCountRecord.setAfterDepartureNum(map.get(1)); param.put("type", 2);
//正常交车,在当天时间内交车 //内部用车提前出车数量
innerCountRecord.setActualDepartureNum(map.get(3)); Integer innerBeforeDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
} if(innerBeforeDepartureNum != null && innerBeforeDepartureNum > 0) {
innerCountRecord.setBeforeDepartureNum(innerBeforeDepartureNum);
}
param.put("type", 1);
//内部用车正常出车数量
Integer innerNormalDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerNormalDepartureNum != null && innerNormalDepartureNum > 0) {
innerCountRecord.setActualDepartureNum(innerNormalDepartureNum);
}
param.put("type", 3);
//内部用车提前出车数量
Integer innerAfterDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerAfterDepartureNum != null && innerAfterDepartureNum > 0) {
innerCountRecord.setAfterDepartureNum(innerAfterDepartureNum);
} }
innerCountRecord.setType(VehicleCountType.INNER.getCode()); innerCountRecord.setType(VehicleCountType.INNER.getCode());
//租车应还车数量 //租车应还车数量
List<OrderPageVO> vehicleArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 2).getData(); List<OrderPageVO> vehicleArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 2).getData();
if (vehicleArrivalList != null && vehicleArrivalList.size() > 0) { if (vehicleArrivalList != null && vehicleArrivalList.size() > 0) {
vehicleCountRecord.setArrivalNum(vehicleArrivalList.size()); vehicleCountRecord.setArrivalNum(vehicleArrivalList.size());
List<OrderRentVehicleDetail> orderRentVehicleDetails = vehicleDepartureList.stream().map(OrderPageVO::getOrderRentVehicleDetail).collect(Collectors.toList()); }
if (orderRentVehicleDetails != null && orderRentVehicleDetails.size() > 0) { //1代表出车 2代表还车
List<Long> bookRecordIds = orderRentVehicleDetails.stream().map(OrderRentVehicleDetail::getBookRecordId).collect(Collectors.toList()); param.put("status", 2);
if (bookRecordIds != null && bookRecordIds.size() > 0) { param.put("bookUser", -2);
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByIds(bookRecordIds).getData(); //1代表正常出车,2代表提前出车,3代表延期出车
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) { param.put("type", 2);
Map<Integer, Integer> map = getDeparture(vehicleBookRecordVos, 2); //租车提前还车数量
if (MapUtils.isNotEmpty(map)) { Integer beforeArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
// 租车提前还车数量 已经出车且还车时间小于还车时间, if(beforeArrivalNum != null && beforeArrivalNum > 0) {
vehicleCountRecord.setBeforeArrivalNum(map.get(2)); vehicleCountRecord.setBeforeArrivalNum(beforeArrivalNum);
//延后还车,还未还车 }
vehicleCountRecord.setAfterArrivalNum(map.get(1)); param.put("type", 1);
//正常还车,在当天时间内还车 //租车正常还车数量
vehicleCountRecord.setActualArrivalNum(map.get(3)); Integer normalArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
} if(normalArrivalNum != null && normalArrivalNum > 0) {
} vehicleCountRecord.setActualArrivalNum(normalArrivalNum);
}
} param.put("type", 3);
} //租车正常还车数量
Integer afterArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(afterArrivalNum != null && afterArrivalNum > 0) {
vehicleCountRecord.setAfterArrivalNum(afterArrivalNum);
} }
//旅游应还车数量 //旅游应还车数量
List<OrderPageVO> tourArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 2).getData(); List<OrderPageVO> tourArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 2).getData();
...@@ -199,17 +256,48 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -199,17 +256,48 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List<VehicleBookRecordVo> vehicleArrivalBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 2).getData(); List<VehicleBookRecordVo> vehicleArrivalBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 2).getData();
if (vehicleArrivalBookRecordList != null && vehicleArrivalBookRecordList.size() > 0) { if (vehicleArrivalBookRecordList != null && vehicleArrivalBookRecordList.size() > 0) {
innerCountRecord.setArrivalNum(vehicleArrivalBookRecordList.size()); innerCountRecord.setArrivalNum(vehicleArrivalBookRecordList.size());
Map<Integer, Integer> map = getDeparture(vehicleDepartureBookRecordList, 2); }
if (MapUtils.isNotEmpty(map)) { //1代表出车 2代表还车
// 租车提前交车数量 已经出车且还车时间小于还车时间, param.put("status", 2);
innerCountRecord.setBeforeArrivalNum(map.get(2)); param.remove("bookUser");
//延后还车,还未还车 //1代表正常出车,2代表提前出车,3代表延期出车
innerCountRecord.setAfterArrivalNum(map.get(1)); param.put("type", 2);
//正常还车,在当天时间内还车 //内部用车提前出车数量
innerCountRecord.setActualArrivalNum(map.get(3)); Integer innerBeforeArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerBeforeArrivalNum != null && innerBeforeArrivalNum > 0) {
innerCountRecord.setAfterArrivalNum(innerBeforeArrivalNum);
}
param.put("type", 1);
//内部用车正常出车数量
Integer innerNormalArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerNormalArrivalNum != null && innerNormalArrivalNum > 0) {
innerCountRecord.setActualArrivalNum(innerNormalArrivalNum);
}
param.put("type", 3);
//内部用车提前出车数量
Integer innerAfterArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerAfterArrivalNum != null && innerAfterArrivalNum > 0) {
innerCountRecord.setAfterArrivalNum(innerAfterArrivalNum);
}
//在当前时间内已经取消的记录数
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectAllCancelBookRecord(param);
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
innerCountRecord.setCancelNum(vehicleBookRecordVos.size());
}
//过期未出车无效数据
param.put("startTime", DateTime.parse("1970-01-01 00:00:00", DATE_TIME_FORMATTER).toDate());
List<VehicleBookRecordVo> vehicleBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 2).getData();
if (vehicleBookRecordList != null && vehicleBookRecordList.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordList.iterator();
while (iterator.hasNext()) {
if(iterator.next().getVehicleDepartureLogVo() != null) {
iterator.remove();
}
} }
innerCountRecord.setNoUseNum(vehicleBookRecordList.size());
} }
innerCountRecord.setType(VehicleCountType.INNER.getCode());
vehicleCountRecord.setCountDate(nowDate); vehicleCountRecord.setCountDate(nowDate);
tourCountRecord.setCountDate(nowDate); tourCountRecord.setCountDate(nowDate);
innerCountRecord.setCountDate(nowDate); innerCountRecord.setCountDate(nowDate);
...@@ -225,7 +313,7 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -225,7 +313,7 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
* *
* @return * @return
*/ */
@Scheduled(cron = "0 0 2 * * ?") @Scheduled(cron = "0 0 */2 * * *")
public void add() { public void add() {
Long nowTime = getDayStart(); Long nowTime = getDayStart();
Long lastTime = nowTime + 24 * 3600 * 1000 - 1; Long lastTime = nowTime + 24 * 3600 * 1000 - 1;
...@@ -235,8 +323,10 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -235,8 +323,10 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
endTime.setTime(lastTime); endTime.setTime(lastTime);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String startDate = null; String startDate = null;
String endDate = null;
try { try {
startDate = simpleDateFormat.format(startTime); startDate = simpleDateFormat.format(startTime);
endDate = simpleDateFormat.format(endTime);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -249,27 +339,43 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -249,27 +339,43 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List<OrderPageVO> vehicleDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 1).getData(); List<OrderPageVO> vehicleDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 1).getData();
if (vehicleDepartureList != null && vehicleDepartureList.size() > 0) { if (vehicleDepartureList != null && vehicleDepartureList.size() > 0) {
vehicleCountRecord.setDepartureNum(vehicleDepartureList.size()); vehicleCountRecord.setDepartureNum(vehicleDepartureList.size());
List<OrderRentVehicleDetail> orderRentVehicleDetails = vehicleDepartureList.stream().map(OrderPageVO::getOrderRentVehicleDetail).collect(Collectors.toList()); }
if (orderRentVehicleDetails != null && orderRentVehicleDetails.size() > 0) { Map<String, Object> param = new HashMap<>();
List<Long> bookRecordIds = orderRentVehicleDetails.stream().map(OrderRentVehicleDetail::getBookRecordId).collect(Collectors.toList()); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (bookRecordIds != null && bookRecordIds.size() > 0) { try {
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByIds(bookRecordIds).getData(); startDate = simpleDateFormat1.format(startTime);
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) { endDate = simpleDateFormat1.format(endTime);
Map<Integer, Integer> map = getDeparture(vehicleBookRecordVos, 1); } catch (Exception e) {
if (MapUtils.isNotEmpty(map)) { e.printStackTrace();
// 租车提前交车数量 已经还车且交车时间小于出车时间, }
vehicleCountRecord.setBeforeDepartureNum(map.get(2)); param.put("startTime", DateTime.parse(startDate, DATE_TIME_FORMATTER).toDate());
//延后交车,还未交车 param.put("endTime", DateTime.parse(endDate, DATE_TIME_FORMATTER).toDate());
vehicleCountRecord.setAfterDepartureNum(map.get(1)); //1代表出车 2代表还车
//正常交车,在当天时间内交车 param.put("status", 1);
vehicleCountRecord.setActualDepartureNum(map.get(3)); param.put("bookUser", -2);
} //1代表正常出车,2代表提前出车,3代表延期出车
} param.put("type", 2);
} //租车提前出车数量
} Integer beforeDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(beforeDepartureNum != null && beforeDepartureNum > 0) {
vehicleCountRecord.setBeforeDepartureNum(beforeDepartureNum);
}
//租车正常出车数量
param.put("type", 1);
Integer normalDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(normalDepartureNum != null && normalDepartureNum > 0) {
vehicleCountRecord.setActualDepartureNum(normalDepartureNum);
}
//租车延期出车数量
param.put("type", 3);
Integer afterDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(afterDepartureNum != null && afterDepartureNum > 0) {
vehicleCountRecord.setAfterDepartureNum(afterDepartureNum);
} }
vehicleCountRecord.setType(VehicleCountType.RENT_VEHICLE.getCode()); vehicleCountRecord.setType(VehicleCountType.RENT_VEHICLE.getCode());
//旅游应出车数量 //旅游应出车数量
List<OrderPageVO> tourDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 1).getData(); List<OrderPageVO> tourDepartureList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 1).getData();
if (tourDepartureList != null && tourDepartureList.size() > 0) { if (tourDepartureList != null && tourDepartureList.size() > 0) {
...@@ -281,42 +387,60 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -281,42 +387,60 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List<VehicleBookRecordVo> vehicleDepartureBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 1).getData(); List<VehicleBookRecordVo> vehicleDepartureBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 1).getData();
if (vehicleDepartureBookRecordList != null && vehicleDepartureBookRecordList.size() > 0) { if (vehicleDepartureBookRecordList != null && vehicleDepartureBookRecordList.size() > 0) {
innerCountRecord.setDepartureNum(vehicleDepartureBookRecordList.size()); innerCountRecord.setDepartureNum(vehicleDepartureBookRecordList.size());
Map<Integer, Integer> map = getDeparture(vehicleDepartureBookRecordList, 1); }
if (MapUtils.isNotEmpty(map)) { //1代表出车 2代表还车
// 租车提前交车数量 已经出车且交车时间小于出车时间, param.put("status", 1);
innerCountRecord.setBeforeDepartureNum(map.get(2)); param.remove("bookUser");
//延后交车,还未交车 //1代表正常出车,2代表提前出车,3代表延期出车
innerCountRecord.setAfterDepartureNum(map.get(1)); param.put("type", 2);
//正常交车,在当天时间内交车 //内部用车提前出车数量
innerCountRecord.setActualDepartureNum(map.get(3)); Integer innerBeforeDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
} if(innerBeforeDepartureNum != null && innerBeforeDepartureNum > 0) {
innerCountRecord.setBeforeDepartureNum(innerBeforeDepartureNum);
}
param.put("type", 1);
//内部用车正常出车数量
Integer innerNormalDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerNormalDepartureNum != null && innerNormalDepartureNum > 0) {
innerCountRecord.setActualDepartureNum(innerNormalDepartureNum);
}
param.put("type", 3);
//内部用车提前出车数量
Integer innerAfterDepartureNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerAfterDepartureNum != null && innerAfterDepartureNum > 0) {
innerCountRecord.setAfterDepartureNum(innerAfterDepartureNum);
} }
innerCountRecord.setType(VehicleCountType.INNER.getCode()); innerCountRecord.setType(VehicleCountType.INNER.getCode());
//租车应还车数量 //租车应还车数量
List<OrderPageVO> vehicleArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 2).getData(); List<OrderPageVO> vehicleArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.RENT_VEHICLE.getCode(), 2).getData();
if (vehicleArrivalList != null && vehicleArrivalList.size() > 0) { if (vehicleArrivalList != null && vehicleArrivalList.size() > 0) {
vehicleCountRecord.setArrivalNum(vehicleArrivalList.size()); vehicleCountRecord.setArrivalNum(vehicleArrivalList.size());
List<OrderRentVehicleDetail> orderRentVehicleDetails = vehicleDepartureList.stream().map(OrderPageVO::getOrderRentVehicleDetail).collect(Collectors.toList()); }
if (orderRentVehicleDetails != null && orderRentVehicleDetails.size() > 0) { //1代表出车 2代表还车
List<Long> bookRecordIds = orderRentVehicleDetails.stream().map(OrderRentVehicleDetail::getBookRecordId).collect(Collectors.toList()); param.put("status", 2);
if (bookRecordIds != null && bookRecordIds.size() > 0) { param.put("bookUser", -2);
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByIds(bookRecordIds).getData(); //1代表正常出车,2代表提前出车,3代表延期出车
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) { param.put("type", 2);
Map<Integer, Integer> map = getDeparture(vehicleBookRecordVos, 2); //租车提前还车数量
if (MapUtils.isNotEmpty(map)) { Integer beforeArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
// 租车提前还车数量 已经出车且还车时间小于还车时间, if(beforeArrivalNum != null && beforeArrivalNum > 0) {
vehicleCountRecord.setBeforeArrivalNum(map.get(2)); vehicleCountRecord.setBeforeArrivalNum(beforeArrivalNum);
//延后还车,还未还车 }
vehicleCountRecord.setAfterArrivalNum(map.get(1)); param.put("type", 1);
//正常还车,在当天时间内还车 //租车正常还车数量
vehicleCountRecord.setActualArrivalNum(map.get(3)); Integer normalArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
} if(normalArrivalNum != null && normalArrivalNum > 0) {
} vehicleCountRecord.setActualArrivalNum(normalArrivalNum);
}
} param.put("type", 3);
} //租车正常还车数量
Integer afterArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(afterArrivalNum != null && afterArrivalNum > 0) {
vehicleCountRecord.setAfterArrivalNum(afterArrivalNum);
} }
//旅游应还车数量 //旅游应还车数量
List<OrderPageVO> tourArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 2).getData(); List<OrderPageVO> tourArrivalList = orderFeign.getOrderList(nowTime, OrderTypeEnum.TOUR.getCode(), 2).getData();
...@@ -328,15 +452,46 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -328,15 +452,46 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List<VehicleBookRecordVo> vehicleArrivalBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 2).getData(); List<VehicleBookRecordVo> vehicleArrivalBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 2).getData();
if (vehicleArrivalBookRecordList != null && vehicleArrivalBookRecordList.size() > 0) { if (vehicleArrivalBookRecordList != null && vehicleArrivalBookRecordList.size() > 0) {
innerCountRecord.setArrivalNum(vehicleArrivalBookRecordList.size()); innerCountRecord.setArrivalNum(vehicleArrivalBookRecordList.size());
Map<Integer, Integer> map = getDeparture(vehicleDepartureBookRecordList, 2); }
if (MapUtils.isNotEmpty(map)) { //1代表出车 2代表还车
// 租车提前交车数量 已经出车且还车时间小于还车时间, param.put("status", 2);
innerCountRecord.setBeforeArrivalNum(map.get(2)); param.remove("bookUser");
//延后还车,还未还车 //1代表正常出车,2代表提前出车,3代表延期出车
innerCountRecord.setAfterArrivalNum(map.get(1)); param.put("type", 2);
//正常还车,在当天时间内还车 //内部用车提前出车数量
innerCountRecord.setActualArrivalNum(map.get(3)); Integer innerBeforeArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerBeforeArrivalNum != null && innerBeforeArrivalNum > 0) {
innerCountRecord.setAfterArrivalNum(innerBeforeArrivalNum);
}
param.put("type", 1);
//内部用车正常出车数量
Integer innerNormalArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerNormalArrivalNum != null && innerNormalArrivalNum > 0) {
innerCountRecord.setActualArrivalNum(innerNormalArrivalNum);
}
param.put("type", 3);
//内部用车提前出车数量
Integer innerAfterArrivalNum = vehicleDepartureService.selectAllDepartureLog(param);
if(innerAfterArrivalNum != null && innerAfterArrivalNum > 0) {
innerCountRecord.setAfterArrivalNum(innerAfterArrivalNum);
}
innerCountRecord.setType(VehicleCountType.INNER.getCode());
//在当前时间内已经取消的记录数
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectAllCancelBookRecord(param);
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
innerCountRecord.setCancelNum(vehicleBookRecordVos.size());
}
//过期未出车无效数据
param.put("startTime", DateTime.parse("1970-01-01 00:00:00", DATE_TIME_FORMATTER).toDate());
List<VehicleBookRecordVo> vehicleBookRecordList = vehicleBookRecordBiz.selectAllBookRecord(startTime, endTime, 2).getData();
if (vehicleBookRecordList != null && vehicleBookRecordList.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordList.iterator();
while (iterator.hasNext()) {
if(iterator.next().getVehicleDepartureLogVo() != null) {
iterator.remove();
}
} }
innerCountRecord.setNoUseNum(vehicleBookRecordList.size());
} }
vehicleCountRecord.setCountDate(nowDate); vehicleCountRecord.setCountDate(nowDate);
...@@ -351,8 +506,7 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh ...@@ -351,8 +506,7 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
if (vehicleCountRecord != null) { if (vehicleCountRecord != null) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("type", vehicleCountRecord.getType()); map.put("type", vehicleCountRecord.getType());
map.put("startTime", getDayStart(vehicleCountRecord.getCountDate().getTime())); map.put("startTime", vehicleCountRecord.getCountDate());
map.put("endTime", getDayStart(vehicleCountRecord.getCountDate().getTime()) + 24 * 3600 * 1000);
List<VehicleCountRecord> list = mapper.selectByTypeAndTime(map); List<VehicleCountRecord> list = mapper.selectByTypeAndTime(map);
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
BeanUtil.copyProperties(vehicleCountRecord, list.get(0), CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true)); BeanUtil.copyProperties(vehicleCountRecord, list.get(0), CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
......
...@@ -12,6 +12,7 @@ import com.xxfc.platform.vehicle.entity.Vehicle; ...@@ -12,6 +12,7 @@ import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog; import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper; import com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper;
import com.xxfc.platform.vehicle.mapper.VehicleMapper; import com.xxfc.platform.vehicle.mapper.VehicleMapper;
import com.xxfc.platform.vehicle.pojo.DepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo; import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureStatisticDataVo; import com.xxfc.platform.vehicle.pojo.VehicleDepartureStatisticDataVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -24,6 +25,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls; ...@@ -24,6 +25,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
@Slf4j @Slf4j
...@@ -103,6 +105,9 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, ...@@ -103,6 +105,9 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
} }
public Integer selectAllDepartureLog(Map<String, Object> param) {
return mapper.selectAllDepartureLog(param);
}
public ObjectRestResponse findOne(Integer vid) throws Exception { public ObjectRestResponse findOne(Integer vid) throws Exception {
Example exm = Example.builder(VehicleDepartureLog.class) Example exm = Example.builder(VehicleDepartureLog.class)
......
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import tk.mybatis.mapper.common.Mapper;
public interface BookRecordUpdateLogMapper extends Mapper<BookRecordUpdateLog> {
}
\ No newline at end of file
...@@ -43,4 +43,6 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> { ...@@ -43,4 +43,6 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public List<VehicleBookRecordVo> selectAllBookRecord(Map<String, Object> param); public List<VehicleBookRecordVo> selectAllBookRecord(Map<String, Object> param);
public List<VehicleBookRecordVo> selectByIds(Map<String, Object> param); public List<VehicleBookRecordVo> selectByIds(Map<String, Object> param);
public List<VehicleBookRecordVo> selectAllCancelBookRecord(Map<String, Object> param);
} }
\ No newline at end of file
...@@ -10,4 +10,5 @@ public interface VehicleCountRecordMapper extends Mapper<VehicleCountRecord> { ...@@ -10,4 +10,5 @@ public interface VehicleCountRecordMapper extends Mapper<VehicleCountRecord> {
List<VehicleCountRecord> countDepartureVehicle(VehicleCountRecord vehicleCountRecord); List<VehicleCountRecord> countDepartureVehicle(VehicleCountRecord vehicleCountRecord);
List<VehicleCountRecord> selectByTypeAndTime(Map<String, Object> param); List<VehicleCountRecord> selectByTypeAndTime(Map<String, Object> param);
List<VehicleCountRecord> selectByTime(Map<String, Object> param);
} }
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper; package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog; import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import com.xxfc.platform.vehicle.pojo.DepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo; import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.BaseMapper; import tk.mybatis.mapper.common.BaseMapper;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
import java.util.Map;
public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog>, Mapper<VehicleDepartureLog> { public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog>, Mapper<VehicleDepartureLog> {
...@@ -32,4 +34,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo ...@@ -32,4 +34,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
String selectDayByVehicleId(String vehicleId); String selectDayByVehicleId(String vehicleId);
VehicleDepartureLogVo selectByBookRecordId(Long bookRecordId); VehicleDepartureLogVo selectByBookRecordId(Long bookRecordId);
Integer selectAllDepartureLog(Map<String, Object> param);
} }
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.BookRecordUpdateLogBiz;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/bookRecord")
public class BookRecordUpdateLogController {
@Autowired
BookRecordUpdateLogBiz bookRecordUpdateLogBiz;
@PostMapping(value = "/update")
public ObjectRestResponse save(@RequestBody BookRecordUpdateLog bookRecordUpdateLog) {
return bookRecordUpdateLogBiz.save(bookRecordUpdateLog);
}
}
...@@ -20,9 +20,7 @@ import com.xxfc.platform.vehicle.common.CustomIllegalParamException; ...@@ -20,9 +20,7 @@ import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus; import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.jobhandler.VehicleJobHandler; import com.xxfc.platform.vehicle.jobhandler.VehicleJobHandler;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto; import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
...@@ -38,6 +36,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -38,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -76,6 +75,10 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -76,6 +75,10 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
@Autowired @Autowired
BranchCompanyBiz branchCompanyBiz; BranchCompanyBiz branchCompanyBiz;
@Autowired
BookRecordUpdateLogBiz bookRecordUpdateLogBiz;
public UserFeign getUserFeign() { public UserFeign getUserFeign() {
return userFeign; return userFeign;
} }
...@@ -304,6 +307,35 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -304,6 +307,35 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
} }
@RequestMapping(value = "/bookRecord/update", method = RequestMethod.POST)
@ApiOperation(value = "修改预定记录还车地点")
public ObjectRestResponse update(@RequestBody BookRecordUpdateLog bookRecordUpdateLog){
return vehicleBookRecordBiz.update(bookRecordUpdateLog);
}
@RequestMapping(value = "/bookRecord/updateById", method = RequestMethod.POST)
@ApiOperation(value = "修改预定记录还车地点")
public ObjectRestResponse updateById(@RequestBody VehicleBookRecord vehicleBookRecord){
VehicleBookRecord oldValue = vehicleBookRecordBiz.selectById(vehicleBookRecord.getId());
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if(oldValue != null) {
oldValue.setRetCompany(vehicleBookRecord.getRetCompany());
BookRecordUpdateLog bookRecordUpdateLog = new BookRecordUpdateLog();
bookRecordUpdateLog.setBookRecordId(vehicleBookRecord.getId());
bookRecordUpdateLog.setOldRetCompanyId(vehicleBookRecord.getRetCompany());
bookRecordUpdateLog.setNewRetCompanyId(vehicleBookRecord.getRetCompany());
bookRecordUpdateLog.setOperaterId(userDTO.getId());
bookRecordUpdateLog.setOperaterName(userDTO.getName());
bookRecordUpdateLog.setCreateTime(new Date());
vehicleBookRecordBiz.updateSelectiveByIdRe(vehicleBookRecord);
return bookRecordUpdateLogBiz.save(bookRecordUpdateLog);
} else {
return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc());
}
}
@RequestMapping(value = "/bookedRecord", method = RequestMethod.GET) @RequestMapping(value = "/bookedRecord", method = RequestMethod.GET)
@ApiOperation(value = "获取多个预定记录") @ApiOperation(value = "获取多个预定记录")
......
...@@ -30,7 +30,7 @@ public class VehicleCountRecordController { ...@@ -30,7 +30,7 @@ public class VehicleCountRecordController {
@GetMapping("/app/unauth/get") @GetMapping("/app/unauth/get")
@ResponseBody @ResponseBody
public ObjectRestResponse getByTypeAndDate(VehicleCountRecord vehicleCountRecord) { public ObjectRestResponse getByTypeAndDate(VehicleCountRecord vehicleCountRecord) {
return vehicleCountRecordBiz.countDepartureVehicle(vehicleCountRecord); return vehicleCountRecordBiz.selectByTime(vehicleCountRecord);
} }
@PostMapping("/app/unauth/export") @PostMapping("/app/unauth/export")
...@@ -43,4 +43,10 @@ public class VehicleCountRecordController { ...@@ -43,4 +43,10 @@ public class VehicleCountRecordController {
public void download(ExcelParamDto excelParamDto, HttpServletRequest request,HttpServletResponse response) { public void download(ExcelParamDto excelParamDto, HttpServletRequest request,HttpServletResponse response) {
DownloadUtil.downloadFile(excelParamDto.getPath(), "export.xls", response,request); DownloadUtil.downloadFile(excelParamDto.getPath(), "export.xls", response,request);
} }
@GetMapping("/app/unauth/selectByTime")
public ObjectRestResponse selectByTime(VehicleCountRecord vehicleCountRecord) {
return vehicleCountRecordBiz.selectByTime(vehicleCountRecord);
}
} }
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<!-- </table>--> <!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>--> <!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>--> <!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="vehicle_count_record" domainObjectName="VehicleCountRecord"></table> <table tableName="book_record_update_log" domainObjectName="BookRecordUpdateLog"></table>
<!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>--> <!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>-->
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.BookRecordUpdateLogMapper" >
</mapper>
\ No newline at end of file
...@@ -526,6 +526,17 @@ ...@@ -526,6 +526,17 @@
and v1.book_end_date between #{startTime} and #{endTime} and v1.book_end_date between #{startTime} and #{endTime}
</if> </if>
</select> </select>
<!--获取所有已取消的预定记录-->
<select id="selectAllCancelBookRecord" resultMap="searchBookRecord" parameterType="Map">
select v1.* from vehicle_book_record v1
where v1.status in (4,6)
<if test="startTime != null">
and v1.book_start_date &lt; #{startTime} and v1.book_end_date &gt; #{endTime}
</if>
and book_user != -2
</select>
<select id="selectByIds" resultMap="searchBookRecord" parameterType="Map"> <select id="selectByIds" resultMap="searchBookRecord" parameterType="Map">
select v1.* from vehicle_book_record v1 select v1.* from vehicle_book_record v1
where v1.status not in (4,6,7,3) where v1.status not in (4,6,7,3)
......
...@@ -35,4 +35,12 @@ ...@@ -35,4 +35,12 @@
order by id DESC order by id DESC
</select> </select>
<select id="selectByTime" parameterType = "Map" resultType="com.xxfc.platform.vehicle.entity.VehicleCountRecord">
select * from vehicle_count_record
where count_date &gt;= #{startTime} and count_date &lt;= #{endTime}
<if test="type != null">
and type = #{type}
</if>
order by id DESC
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -2,7 +2,11 @@ ...@@ -2,7 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper" > <mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper" >
<resultMap id="searchBookRecord" type="com.xxfc.platform.vehicle.pojo.DepartureLogVo">
<result column="book_record_id" property="bookRecordId" jdbcType="INTEGER" javaType="java.lang.Integer"/>
<association property="vehicleBookRecord" column="id"
select="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.selectOne"/>
</resultMap>
<select id="selectLastByVehicleId" resultType="com.xxfc.platform.vehicle.entity.VehicleDepartureLog"> <select id="selectLastByVehicleId" resultType="com.xxfc.platform.vehicle.entity.VehicleDepartureLog">
select * from vehicle_departure_log select * from vehicle_departure_log
where vehicle_id = #{vehicleId} where vehicle_id = #{vehicleId}
...@@ -30,7 +34,55 @@ ...@@ -30,7 +34,55 @@
where vehicle_departure_log.book_record_id = #{id} where vehicle_departure_log.book_record_id = #{id}
order by create_time desc order by create_time desc
</select> </select>
<select id="selectAllDepartureLog" resultType="java.lang.Integer" parameterType="Map">
SELECT
count(*)
FROM
vehicle_departure_log v1
LEFT JOIN vehicle_book_record v2 on v1.book_record_id = v2.id
<where>
<if test="startTime != null and status == 1">
and (v1.departure_time between #{startTime} and #{endTime})
</if>
<if test="startTime != null and status == 2">
and (v1.arrival_time between #{startTime} and #{endTime})
</if>
<!--正常出车-->
<if test="startTime != null and status == 1 and type == 1">
and (v2.book_start_date between #{startTime} and #{endTime})
</if>
<!--提前出车-->
<if test="endTime != null and status == 1 and type == 2">
and v2.book_start_date &gt;= #{endTime}
</if>
<!--延期出车-->
<if test="startTime != null and status == 1 and type == 3">
and v2.book_start_date &lt;= #{startTime}
</if>
<!--正常还车-->
<if test="startTime != null and status == 2 and type == 1">
and (v2.book_start_date between #{startTime} and #{endTime})
</if>
<!--提前还车-->
<if test="endTime != null and status == 2 and type == 2">
and v2.book_start_date &gt;= #{endTime}
</if>
<!--延期还车-->
<if test="startTime != null and status == 2 and type == 3">
and v2.book_start_date &lt;= #{startTime}
</if>
<!--统计客户用车-->
<if test="bookUser != null">
and v2.book_user = #{bookUser}
</if>
<if test="bookUser == null">
and v2.book_user != -2
</if>
</where>
</select>
<select id="selectVoAll" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo"> <select id="selectVoAll" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo">
select vehicle_departure_log.*,vehicle.number_plate, select vehicle_departure_log.*,vehicle.number_plate,
/* IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/ /* IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/
......
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