Commit bb8f0d73 authored by hanfeng's avatar hanfeng

Merge branch 'dev' of http://10.5.52.3/youjj/cloud-platform into dev2

parents ad43a89d e0eb276d
......@@ -24,4 +24,19 @@ public class CommonConstants {
public static final String CONTEXT_KEY_USER_TOKEN = "currentUserToken";
public static final String JWT_KEY_USER_ID = "userId";
public static final String JWT_KEY_NAME = "name";
// 时间相关
public static final String DEFAULT = "yyyy/MM/dd";
public static final String YM = "yyyy/MM";
public static final String YMR_SLASH = "yyyy-MM-dd";
public static final String NO_SLASH = "yyyyMMdd";
public static final String YM_NO_SLASH = "yyyyMM";
public static final String DATE_TIME = "yyyy/MM/dd HH:mm:ss";
public static final String DATE_TIME_NO_SLASH = "yyyyMMddHHmmss";
public static final String DATE_HM = "yyyy/MM/dd HH:mm";
public static final String TIME = "HH:mm:ss";
public static final String HM = "HH:mm";
public static final String LONG_TIME = "HHmmss";
public static final String SHORT_TIME = "HHmm";
public static final String DATE_TIME_LINE = "yyyy-MM-dd HH:mm:ss";
}
......@@ -11,6 +11,7 @@ import lombok.Data;
@Data
public class BannerVo {
private Long id;
private String title;
/**
......
......@@ -40,6 +40,7 @@ public class BannerBiz extends BaseBiz<BannerMapper,Banner> {
bannerVo.setCover(banner.getCover());
bannerVo.setUrl(banner.getUrl());
bannerVo.setTitle(banner.getTitle());
bannerVo.setId(banner.getId());
bannerVos.add(bannerVo);
});
return bannerVos;
......
package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderMemberDetail;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderTourDetail;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
......@@ -32,4 +30,17 @@ public class OrderListVo extends BaseOrder {
private String endCompanyName;
/**
* 是否是用户匹配公司
*/
private boolean userCompanyStatus = false;
/**
* 违章预备金
*/
private BigDecimal illegalReserve;
private List<OrderItem> items;
}
......@@ -25,6 +25,12 @@ public class OrderPageVO extends BaseOrder {
*/
private String username;
private String startCompanyName;
private String endCompanyName;
private String telephone;
/**
* 是否是用户匹配公司
*/
......
......@@ -38,6 +38,7 @@ import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -139,6 +140,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
if(orderPageVo.getStatus() <= 3 && orderPageVo.getStatus() != 2 && orderPageVo.getStatus() != -1) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_DETAIL_IS_NOT_EXIST.getCode(), ResCode.ORDER_DETAIL_IS_NOT_EXIST.getDesc());
}
AppUserDTO appUserVo = userFeign.userDetailById(orderPageVo.getUserId()).getData();
if(appUserVo != null) {
orderPageVo.setTelephone(appUserVo.getUsername());
orderPageVo.setUsername(appUserVo.getNickname());
}
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
......@@ -159,10 +165,18 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
getDriverInfo(orderPageVo);
getUserLicense(orderPageVo);
}
ObjectRestResponse<CompanyDetail> startResponse = vehicleFeign.getCompanyDetail(orderPageVo.getOrderRentVehicleDetail().getStartCompanyId());
if (startResponse.getData() != null) {
orderPageVo.setStartCompanyName(startResponse.getData().getName());
}
RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderPageVo.getOrderRentVehicleDetail().getVehicleId());
ObjectRestResponse<CompanyDetail> restResponse = vehicleFeign.getCompanyDetail(orderPageVo.getOrderRentVehicleDetail().getEndCompanyId());
if (restResponse.getData() != null) {
orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
orderPageVo.setEndCompanyName(restResponse.getData().getName());
}
RestResponse<Vehicle> response = vehicleFeign.findById(orderPageVo.getOrderRentVehicleDetail().getVehicleId());
if (response.getData() != null) {
orderPageVo.setVehicalNumberPlat(response.getData().getNumberPlate());
}
} else if (orderPageVo.getOrderTourDetail() != null) {
List<Integer> ids = Lists.newArrayList();
......
......@@ -26,6 +26,7 @@ import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.order.*;
import com.xxfc.platform.order.service.OrderRentVehicleService;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
......@@ -293,31 +294,38 @@ public class BackStageOrderController extends CommonBaseController implements Us
@ResponseBody
public ObjectRestResponse<OrderPageVO> changeVehicle(@RequestBody ChangeVehicleDTO dto) {
checkAdminUser();
// //根据订单号获取订单
// //查询列表数据
// Query query = baseOrderBiz.initQuery(dto.getNo());
// PageDataVO<OrderPageVO> page = PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper()));
// OrderPageVO orderPageVO = page.getData().get(0);
// if(null == orderPageVO) {
// throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet("订单不存在"));
// }
// //预约新的车辆
// RentVehicleBO bo = BeanUtil.toBean(orderPageVO.getOrderRentVehicleDetail(), RentVehicleBO.class);
// bo.setOrder(orderPageVO);
// bo.setBookVehicleVO(new BookVehicleVO(){{
// setBookStartDate(DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getStartTime()), ZoneOffset.ofHours(8))));
// setBookEndDate(DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getStartTime()), ZoneOffset.ofHours(8))));
// }});
//
// List<OrderAccompanyDTO> oads = JSONUtil.toList(JSONUtil.parseArray(orderItemBiz.selectOne(new OrderItem(){{
// setOrderId(orderPageVO.getId());
// setType(ItemTypeEnum.ACCOMPANY.getCode());
// }}).getDetail()), OrderAccompanyDTO.class);
// bo.setAccompanyItems(oads);
// orderRentVehicleService.acquireVehicle(bo);
// //如果成功则取消旧车的预约
//
// orderRentVehicle
//根据订单号获取订单
//查询列表数据
Query query = baseOrderBiz.initQuery(dto.getNo());
query.put("crtUser", null);
PageDataVO<OrderPageVO> page = PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper()));
OrderPageVO orderPageVO = page.getData().get(0);
if(null == orderPageVO) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet("订单不存在"));
}
//预约新的车辆
RentVehicleBO bo = BeanUtil.toBean(orderPageVO.getOrderRentVehicleDetail(), RentVehicleBO.class);
bo.setOrder(orderPageVO);
bo.setBookVehicleVO(new BookVehicleVO(){{
setBookStartDate(DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getStartTime()), ZoneOffset.ofHours(8))));
setBookEndDate(DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getEndTime()), ZoneOffset.ofHours(8))));
}});
List<OrderAccompanyDTO> oads = JSONUtil.toList(JSONUtil.parseArray(orderItemBiz.selectOne(new OrderItem(){{
setOrderId(orderPageVO.getId());
setType(ItemTypeEnum.ACCOMPANY.getCode());
}}).getDetail()), OrderAccompanyDTO.class);
bo.setAccompanyItems(oads);
Long oldBookRecordId = bo.getBookRecordId();
orderRentVehicleService.acquireVehicle(bo, dto.getNumberPlate(), VehicleBookRecordStatus.APPROVE.getCode());
//如果成功则取消旧车的预约
RestResponse<Integer> rentUnbookResponse = vehicleFeign.rentUnbookVehicle(oldBookRecordId);
//设置新的vehicleId 和 record
orderRentVehicleBiz.updateSelectiveByIdRe(new OrderRentVehicleDetail(){{
setId(bo.getId());
setVehicleId(bo.getVehicleId());
setBookRecordId(bo.getBookRecordId());
}});
return ObjectRestResponse.succ();
}
......
......@@ -188,7 +188,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
bo.setAccompanyItems(oads);
//获取可用车辆
acquireVehicle(bo);
acquireVehicle(bo, null, null);
OrderItem accompanyItem = orderItemBiz.initOrderItem(BigDecimal.ZERO, 1, "随车物品", null, ACCOMPANY);
accompanyItem.setRealAmount(BigDecimal.ZERO);
......@@ -412,7 +412,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
vo.setCostDetail(result);
}
public void acquireVehicle(RentVehicleBO detail) {
public void acquireVehicle(RentVehicleBO detail, String numberPlate, Integer status) {
//根据车型、时间、距离,门店,预定车辆
RentVehicleBookDTO rentVehicleBookDTO = BeanUtil.toBean(detail.getBookVehicleVO(), RentVehicleBookDTO.class);
rentVehicleBookDTO.setModelId(detail.getModelId());
......@@ -420,7 +420,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rentVehicleBookDTO.setLiftCompany(detail.getStartCompanyId());
rentVehicleBookDTO.setLiftAddr(detail.getStartAddr());
rentVehicleBookDTO.setRetCompany(detail.getEndCompanyId());
// rentVehicleBookDTO.setOrderNo(detail.getO);
rentVehicleBookDTO.setOrderNo(detail.getOrder().getNo());
rentVehicleBookDTO.setNumberPlate(numberPlate);
rentVehicleBookDTO.setStatus(status);
if(null != detail.getAccompanyItems()) {
rentVehicleBookDTO.setSelectedAccItem(detail.getAccompanyItems().parallelStream().collect(Collectors.toMap(OrderAccompanyDTO::getId, OrderAccompanyDTO::getNum)));
}
......
......@@ -14,10 +14,15 @@ public class MQSenderController {
private MQServiceBiZ mqServiceBiZ;
@GetMapping(value = "/sendMessage")
public ObjectRestResponse sendMessage(@RequestParam(value = "exchange") String exchange, @RequestParam(value = "routKey") String routKey, @RequestParam(value = "json") String json) {
public ObjectRestResponse sendMessage(String exchange, String routKey, String json) {
return mqServiceBiZ.sendMessage(exchange, routKey, json);
}
@PostMapping(value = "/app/unauth/sendMessage")
public ObjectRestResponse sendPostMessage(@RequestBody String json) {
return mqServiceBiZ.sendMessage("","", json);
}
@PostMapping(value = "/sendMessage")
@ResponseBody
public ObjectRestResponse sendMessage(@RequestBody SendMsgDTO dto) {
......
......@@ -16,6 +16,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -45,10 +46,16 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
private final ActivityBehaviorRelationBiz activityBehaviorRelationBiz;
@Value("${activity.register.id}")
private Integer activityId;
public void saveCustomerBehavior(CustomerBehaviorNoteDTO customerBehaviorNoteDTO) {
CustomerBehaviorNotes customerBehaviorNotes = new CustomerBehaviorNotes();
BeanUtils.copyProperties(customerBehaviorNoteDTO, customerBehaviorNotes);
customerBehaviorNotes.setCrtTime(Instant.now().toEpochMilli());
if (customerBehaviorNoteDTO.getType()==BehaviorEnum.REGISTRY.getCode()){
customerBehaviorNotes.setTypeId(activityId);
}
mapper.insertSelective(customerBehaviorNotes);
}
......
......@@ -57,6 +57,31 @@ public enum BookType {
this.desc = desc;
}
public static String getByCode(Integer code) {
switch (code) {
case 2:
return EMPLOYEE_APPLY.getDesc();
case 1:
return USER_RENT.getDesc();
case 3:
return REPAIRING.getDesc();
case 4:
return SHOW.getDesc();
case 5:
return TOUR.getDesc();
case 6:
return MAINTAIN.getDesc();
case 7:
return BOOKING.getDesc();
case 8:
return DISABLE.getDesc();
case 9:
return CUSTOMER_APPLY.getDesc();
case 10:
return OTHER.getDesc();
}
return "";
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
......
......@@ -180,12 +180,26 @@ public class VehicleBookRecord {
*/
private String orderNo;
/**
* 使用人姓名
*/
@Column(name = "vehicle_username")
private String vehicleUsername;
/**
* 使用人电话
*/
@Column(name = "vehicle_user_phone")
private String vehicleUserPhone;
/**
* 保养项id
*/
@Column(name = "upkeep_ids")
private String upkeepIds;
/**
* 驳回理由
*/
@Column(name = "reject_remark")
private String rejectRemark;
}
\ No newline at end of file
......@@ -108,4 +108,14 @@ public class BookVehicleVO {
* book_record状态
*/
private Integer status;
/**
* 驳回理由
*/
private String rejectRemark;
/**
* 不检查参数合法
*/
private Boolean notCheckTimeLegal;
}
\ No newline at end of file
......@@ -60,6 +60,12 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty("停靠公司id")
Integer parkBranchCompanyId;
@ApiModelProperty("指定车牌")
String numberPlate;
@ApiModelProperty("指定预约状态")
Integer status;
/**
* 随车物品id以及数量 List<Map<id,数量>>
*/
......
......@@ -148,4 +148,6 @@ public class ResultVehicleVo {
* 收车时间
*/
private Date receiveTime;
private Integer modelId;
}
\ No newline at end of file
......@@ -128,5 +128,9 @@ public class VehiclePageQueryVo {
*/
private Integer haveViolation;
/**
* 车型id
*/
private Integer modelId;
}
......@@ -34,5 +34,13 @@ public class VehiclePlanDto extends PageParam {
private Integer zoneId;
private List<Integer> companyIds;
/**
* 车辆用途 1、租赁,2、自用
*/
private Integer useType;
/**
* 车型id
*/
private Integer modelId;
}
......@@ -59,4 +59,5 @@ public class AreaBiz extends BaseBiz<AreaMapper, Area> implements UserRestInterf
}
}
......@@ -13,6 +13,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.entity.Area;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockInfo;
import com.xxfc.platform.vehicle.entity.SysRegion;
......@@ -65,6 +66,9 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
@Autowired
UserFeign userFeign;
@Autowired
private AreaBiz areaBiz;
@Override
public UserFeign getUserFeign() {
return userFeign;
......@@ -77,6 +81,8 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
@Autowired
private VehicleBiz vehicleBiz;
/**
* 按主键获取公司
*
......@@ -152,17 +158,35 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
}
public PageDataVO<BranchCompany> getAll(Integer page, Integer limit, Integer addrProvince, Integer addrCity,
Integer addrTown, UserDTO userDTO) {
Integer addrTown,Integer zoneId, UserDTO userDTO) {
Example example = new Example(BranchCompany.class);
Example.Criteria criteria = example.createCriteria();
String provinceIds="";
if (Objects.nonNull(zoneId)){
Area area = areaBiz.selectById(zoneId);
provinceIds = area.getProvinceIds();
}
if (StringUtils.isNotEmpty(provinceIds)){
List<String> provinceIdList = Arrays.asList(provinceIds.split(","));
if (Objects.nonNull(addrProvince)){
if (provinceIdList.contains(String.valueOf(addrProvince))){
criteria.andEqualTo("addrProvince",addrProvince);
}else {
return new PageDataVO<BranchCompany>();
}
}else {
criteria.andIn("addrProvince",provinceIdList);
}
}else {
if (addrProvince != null) {
criteria.andCondition(" addr_province = '" + addrProvince + "'");
criteria.andEqualTo("addrProvince",addrProvince);
}
}
if (addrCity != null) {
criteria.andCondition(" addr_city = '" + addrCity + "'");
criteria.andEqualTo("addrCity",addrCity);
}
if (addrTown != null) {
criteria.andCondition(" addr_town = '" + addrTown + "'");
criteria.andEqualTo("addrTown",addrTown);
}
if (userDTO != null && DATA_ALL_FALSE.equals(userDTO.getDataAll())) {
if (StringUtils.isNotBlank(userDTO.getDataZone())) {
......@@ -172,7 +196,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
criteria.andIn(ID, userDTO.dataCompany2List());
}
}
example.setOrderByClause("`id` asc");
example.setOrderByClause("`id` desc");
PageHelper.startPage(page, limit);
PageInfo<BranchCompany> branchCompanyPageInfo = new PageInfo<>(mapper.selectByExample(example));
return PageDataVO.pageInfo(branchCompanyPageInfo);
......
......@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleActiveType;
import com.xxfc.platform.vehicle.constant.VehicleDepartureState;
......@@ -89,8 +90,10 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
//修改预约记录状态
VehicleBookRecord vehicleBookRecord = null;
if(departureVo.getBookRecordId() != null) {
updateBookRecordStatus(departureVo.getBookRecordId(), 1);
vehicleBookRecord = vehicleBookRecordBiz.selectById(departureVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 1);
}
VehicleDepartureLogVo vehicleDepartureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(departureVo.getBookRecordId());
if(vehicleDepartureLogVo != null) {
......@@ -100,6 +103,11 @@ public class VehicleActiveService {
departureLog.setUpdateTime(new Date());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
}
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
} else {
// 出车记录
......@@ -111,6 +119,11 @@ public class VehicleActiveService {
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setBookRecordId(departureVo.getBookRecordId());
departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
}
vehicleDepartureLogMapper.insert(departureLog);
}
......@@ -128,6 +141,7 @@ public class VehicleActiveService {
}
}
public String getVehicleStatus(Integer status, String vehicleId) {
StringBuilder stringBuilder = new StringBuilder();
switch (status) {
......@@ -195,7 +209,8 @@ public class VehicleActiveService {
}
if(arrivalVo.getBookRecordId() != null) {
updateBookRecordStatus(arrivalVo.getBookRecordId(), 2);
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 2);
}
......@@ -233,8 +248,8 @@ public class VehicleActiveService {
}
}
public void updateBookRecordStatus(Integer bookRecordId, Integer type) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) {
if(vehicleBookRecord != null) {
if(type == 1) {
vehicleBookRecord.setActualStartDate(new Date());
......
......@@ -413,16 +413,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName);
//检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicleId());
if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) {
throw new BaseException(ResultCode.DATE_TIME_IS_NULL);
}
//提取日期和相应的预定目标日期
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap();
DateTime startDay =DateTime.parse(bookVehicleVo.getBookStartDate(),DATE_TIME_FORMATTER);
DateTime startDay =DateTime.parse(bookVehicleVo.getBookStartDate(), DATE_TIME_FORMATTER);
DateTime endDay =DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法
fillDateList4DatePeriod(yearMonthAndDate,startDay,endDay);
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
}
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate());
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate(), bookVehicleVo.getNotCheckTimeLegal());
for(Map.Entry<String,List<String>> entry:yearMonthAndDate.entrySet()){
Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map);
if(Boolean.FALSE.equals(rsEach)){
......@@ -526,7 +529,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @return
*/
@Transactional
public RestResponse<Integer> reviewVehicleBooking(Integer operatorId, Long bookRecordId,Integer rsStatus,String userName) throws Exception{
public RestResponse<Integer> reviewVehicleBooking(Integer operatorId, Long bookRecordId,Integer rsStatus,String userName, String rejectRemark, Boolean notCheckTimeLegal) throws Exception{
try {
//获取相关申请记录
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
......@@ -550,6 +553,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
updateParam.put("reviewerApply",operatorId);
updateParam.put("reviewerNameApply",userName);
updateParam.put("statusCondition",VehicleBookRecordStatus.APPLY.getCode());
if(StringUtils.isNotBlank(rejectRemark)) {
updateParam.put("rejectRemark",rejectRemark);
}
Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam);
if(effected == 0){//修改失败,手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
......@@ -575,7 +581,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @return
*/
@Transactional
public RestResponse unbookVehicle4Employee(Integer operatorId,Long bookRecordId,String userName) throws Exception{
public RestResponse unbookVehicle4Employee(Integer operatorId,Long bookRecordId,String userName, String rejectRemark, Boolean notCheckTimeLegal) throws Exception{
//获取相关申请记录
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
//申请记录验证
......@@ -589,6 +595,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//转换为相应取消预定参数
BookVehicleVO bookVehicleVo = new BookVehicleVO();
BeanUtils.copyProperties(bookVehicleVo,vehicleBookRecord);
bookVehicleVo.setNotCheckTimeLegal(notCheckTimeLegal);
bookVehicleVo.setBookStartDate(null);
bookVehicleVo.setBookEndDate(null);
bookVehicleVo.setUnbookStartDate(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DATE_TIME_FORMATTER));
......@@ -605,6 +612,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
updateParam.put("reviewerCancel",operatorId);
updateParam.put("reviewerNameCancel",userName);
updateParam.put("statusCondition",VehicleBookRecordStatus.APPROVE.getCode());
if(StringUtils.isNotBlank(rejectRemark)) {
updateParam.put("rejectRemark",rejectRemark);
}
Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam);
if(effected == 0){//修改失败,手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
......@@ -800,7 +810,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
DateTime endDay =DateTime.parse(bookVehicleVo.getUnbookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法
uinbookDateList4DatePeriod(yearMonthAndDate,startDay,endDay);
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate());
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate(), bookVehicleVo.getNotCheckTimeLegal());
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_UNBOOK_TWO_MONTH);
}
......@@ -837,21 +847,28 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
Integer andRsOperationFactor = getBitOpratorFactor4UnBooked(unbookDates);//预定的相关或运算因子,当前月份没有预定记录时同时也是结果
params.put("andRsOperationFactor",
andRsOperationFactor);
if(hourInfo.size() == 1) { //取消当天的小时,不取消当天的预定
return unbookHourInfo(vehicleId, hourInfo);
} else {
Integer effected = vehicleBookInfoMapper.updateBookedInfo(params);
return unbookHourInfo(vehicleId, hourInfo);
}
return unbookHourInfo(vehicleId, hourInfo, params);
}
public boolean unbookHourInfo(String vehicleId, Map<String, Integer> hourInfo) {
public boolean unbookHourInfo(String vehicleId, Map<String, Integer> hourInfo, Map<String,Object> params) {
boolean flag = false;
for (Map.Entry<String, Integer> entry : hourInfo.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setVehicleId(vehicleId);
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
if((vehicleBookHourInfos.get(0).getBookedHour() | 0) == 0) {
if(!flag) {
Integer effected = vehicleBookInfoMapper.updateBookedInfo(params);
if (effected < 1) {
return Boolean.FALSE;
} else {
flag = true;
continue;
}
}
} else {
vehicleBookHourInfos.get(0).setBookedHour((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue()));
int effect = vehicleBookHourInfoBiz.updateByIdRe(vehicleBookHourInfos.get(0));
if (effect < 1) {
......@@ -859,6 +876,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} else {
continue;
}
}
} else {
return Boolean.FALSE;
}
......@@ -1034,6 +1052,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//处理预定日期相关参数
adjustBookedInfoParam(params,vehiclePageQueryVo);
params.get("yearMonthAndParam");
if(vehiclePageQueryVo.getModelId() == null) {
params.remove("modelId");
}
PageHelper.startPage(pageNo,pageSize);
List<ResultVehicleVo> vehicles = mapper.getByPage(params);
PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles);
......@@ -1094,8 +1115,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
List<String> notBookedDates = Lists.newArrayList();
if(StringUtils.isNotBlank(dto.getStartDate())&&
StringUtils.isNotBlank(dto.getEndDate())) {
notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(),
dto.getEndDateExtend());
notBookedDates = convertDatePeriod2List(dto.getStartDate(),
dto.getEndDate());
}
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
......
......@@ -31,7 +31,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
public Map<String, Integer> getPredictableHours(String bookStartDate, String bookEndDate) {
public Map<String, Integer> getPredictableHours(String bookStartDate, String bookEndDate, Boolean notCheckTimeLegal) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null;
Date endDate = null;
......@@ -43,12 +43,15 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
}
//判定时间是否合法
if(!Boolean.TRUE.equals(notCheckTimeLegal)) {
if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
if (bookStartDate.compareTo(bookEndDate) > 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
}
Map<String, Integer> predictableHours = Maps.newHashMap();
//预定开始小时
int hour = new DateTime(startDate).hourOfDay().get();
......@@ -146,7 +149,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
public static void main(String[] args) throws Exception{
int b = 16744448;
Integer a = b | 31;
Integer a = b | 0;
System.out.println(a);
}
......
......@@ -175,16 +175,17 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
}
}
vehicleBookRecordQueryVo.setCompanyIds(companyList);
Query query = new Query(vehicleBookRecordQueryVo);
if(vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 2) {
Query query2 = new Query(vehicleBookRecordQueryVo);
List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query2.getSuper());
List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query.getSuper());
removeStatus2(list);
PageHelper.startPage(pageNo, pageSize);
//PageHelper.startPage(vehicleBookRecordQueryVo.getPage().intValue(), vehicleBookRecordQueryVo.getLimit().intValue());
PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list);
vehicleBookRecordVoPageInfo.setPageSize(vehicleBookRecordQueryVo.getLimit());
vehicleBookRecordVoPageInfo.setPageNum(vehicleBookRecordQueryVo.getPage());
getupKeeps(vehicleBookRecordVoPageInfo.getList());
return RestResponse.suc(PageDataVO.pageInfo(vehicleBookRecordVoPageInfo));
}
Query query = new Query(vehicleBookRecordQueryVo);
PageDataVO<VehicleBookRecordVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getBookRecordInfo(query.getSuper()));
getupKeeps(pageDataVO.getData());
return RestResponse.suc(pageDataVO);
......
......@@ -6,11 +6,14 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.vehicle.biz.AreaBiz;
import com.xxfc.platform.vehicle.biz.BranchCompanyBiz;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.Area;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.BranchCompanyVo;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
......@@ -49,12 +52,15 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
private AreaBiz areaBiz;
@RequestMapping(value ="/page",method = RequestMethod.GET)
public RestResponse<PageDataVO<BranchCompany>> page(@RequestParam Integer page, @RequestParam Integer limit,
@RequestParam(required = false) Integer addrProvince, @RequestParam(required = false) Integer addrCity,
@RequestParam(required = false) Integer addrTown, @RequestParam(required = false) String location) {
@RequestParam(required = false) Integer addrTown, @RequestParam(required = false) Integer zoneId) {
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
return RestResponse.data(baseBiz.getAll(page,limit,addrProvince, addrCity, addrTown, userDTO));
return RestResponse.data(baseBiz.getAll(page,limit,addrProvince, addrCity, addrTown, zoneId,userDTO));
}
@IgnoreUserToken
......@@ -62,7 +68,7 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
public RestResponse<PageDataVO<BranchCompany>> allPage(@RequestParam Integer page, @RequestParam Integer limit,
@RequestParam(required = false) Integer addrProvince, @RequestParam(required = false) Integer addrCity,
@RequestParam(required = false) Integer addrTown) {
return RestResponse.data(baseBiz.getAll(page,limit,addrProvince, addrCity, addrTown, null));
return RestResponse.data(baseBiz.getAll(page,limit,addrProvince, addrCity, addrTown, null,null));
}
@RequestMapping(value ="/search",method = RequestMethod.GET)
......@@ -89,8 +95,16 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
}
@RequestMapping(value ="",method = RequestMethod.POST)
public RestResponse<Integer> add(@RequestBody BranchCompanyVo branchCompanyVo) {
return RestResponse.data(baseBiz.add(branchCompanyVo));
public ObjectRestResponse<Integer> add(@RequestBody BranchCompanyVo branchCompanyVo) {
if (branchCompanyVo==null){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE,"参数不能为空");
}
Area area=areaBiz.selectById(branchCompanyVo.getZoneId());
Integer provinc=branchCompanyVo.getAddrProvince()==null?0:branchCompanyVo.getAddrProvince();
if (area==null||StringUtils.isBlank(area.getProvinceIds())||!area.getProvinceIds().contains(provinc+"")){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"片区和省份不一致");
}
return ObjectRestResponse.succ(baseBiz.add(branchCompanyVo));
}
@RequestMapping(value ="/app/unauth/getByZone",method = RequestMethod.GET)
......@@ -113,9 +127,17 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
}
@RequestMapping(value ="",method = RequestMethod.PUT)
public RestResponse update(@RequestBody BranchCompany branchCompany) {
public ObjectRestResponse update(@RequestBody BranchCompany branchCompany) {
if (branchCompany==null){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE,"参数不能为空");
}
Area area=areaBiz.selectById(branchCompany.getZoneId());
Integer provinc=branchCompany.getAddrProvince()==null?0:branchCompany.getAddrProvince();
if (area==null||StringUtils.isBlank(area.getProvinceIds())||!area.getProvinceIds().contains(provinc+"")){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"片区和省份不一致");
}
baseBiz.update(branchCompany);
return RestResponse.sucResponse();
return ObjectRestResponse.succ();
}
@RequestMapping(value ="/{id}",method = RequestMethod.DELETE)
......
package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
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;
......@@ -25,8 +27,13 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.HashSet;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.*;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
......@@ -63,7 +70,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约
Integer operatorId = USER_APP;
String userName = USER_APP_NAME;
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.REJECTED.getCode(), userName);
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.REJECTED.getCode(), userName, "租车订单取消", Boolean.TRUE);
}
/**
......@@ -79,7 +86,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约
Integer operatorId = USER_APP;
String userName = USER_APP_NAME;
return baseBiz.unbookVehicle4Employee(operatorId, bookRecordId, userName);
return baseBiz.unbookVehicle4Employee(operatorId, bookRecordId, userName,null, Boolean.TRUE);
}
/**
......@@ -95,7 +102,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约
Integer operatorId = USER_APP;
String userName = USER_APP_NAME;
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.APPROVE.getCode(), userName);
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.APPROVE.getCode(), userName, "", Boolean.TRUE);
}
/**
......@@ -145,7 +152,14 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约
Integer operatorId = USER_APP;
String userName = dto.getUserName();
//BaseContextHandler.getName();
String bookVehicleId;
if(StrUtil.isNotBlank(dto.getNumberPlate())) {
Vehicle vehicle = vehicleBiz.selectOne(new Vehicle(){{
setNumberPlate(dto.getNumberPlate());
setIsDel(SYS_FALSE);
}});
bookVehicleId = vehicle.getId();
}else {
dto.setLimit(1);
dto.setPage(1);
dto.setParkBranchCompanyId(dto.getLiftCompany());
......@@ -156,12 +170,24 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
add("可用车辆不存在");
}});
}
bookVehicleId = pageDataVO.getData().get(0).getId();
}
//判断是否为今天,如果是则设置为一分钟后开始
if(DateUtil.today().equals(dto.getBookStartDate())) {
LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneOffset.ofHours(8)).plusSeconds(30L);
dto.setBookStartDate(DateTimeFormatter.ofPattern(DATE_TIME_LINE).format(ldt));
}else {
dto.setBookStartDate(dto.getBookStartDate()+ " 00:00:00");
}
dto.setBookEndDate(dto.getBookEndDate()+ " 23:59:59");
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
bookVehicleVo.setBookType(BookType.USER_RENT.getCode());
bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId());
bookVehicleVo.setVehicleId(bookVehicleId);
if(null != dto.getStatus()) {
bookVehicleVo.setStatus(dto.getStatus());
}else {
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
}
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return ObjectRestResponse.succ(vehicleBookRecord);
}
......
......@@ -46,7 +46,6 @@ public class VehicleActiveController {
@PostMapping("small/departure")
@IgnoreUserToken
public RestResponse departureBySmall(@RequestBody VehicleDepartureVo departureVo) {
if (departureVo == null || departureVo.getVehicleId() == null
|| departureVo.getMileage() == null || departureVo.getDepartureBranchCompanyId() == null
|| departureVo.getExpectArrivalBranchCompanyId() == null) {
......
package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
......@@ -10,7 +9,6 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
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;
......@@ -20,20 +18,17 @@ import com.xxfc.platform.vehicle.biz.*;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.jobhandler.VehicleJobHandler;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
......@@ -43,14 +38,10 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
@RestController
@RequestMapping("/vehicleInfo")
@Slf4j
......@@ -141,7 +132,6 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
return RestResponse.data(baseBiz.getByPageNotAllData(vehiclePageQueryVo, companyList));
}
}
return RestResponse.data(baseBiz.getByPage(vehiclePageQueryVo));
} catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
......@@ -218,7 +208,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
public RestResponse<Integer> applyVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode());
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc();
}
......@@ -250,21 +240,21 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.APPROVE.getCode(), userName);
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.APPROVE.getCode(), userName, "", Boolean.FALSE);
}
/**
* 拒绝预定车辆申请
*
* @param bookRecordId
* @param
* @return
*/
@RequestMapping(value = "/book/4employee/reject/{bookRecordId}", method = RequestMethod.PUT)
@RequestMapping(value = "/book/4employee/reject", method = RequestMethod.PUT)
@ApiOperation(value = "拒绝预定车辆")
public RestResponse<Integer> rejectVehicleBooking(@PathVariable Long bookRecordId) throws Exception {
public RestResponse<Integer> rejectVehicleBooking(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
return baseBiz.reviewVehicleBooking(operatorId, bookRecordId, VehicleBookRecordStatus.REJECTED.getCode(), userName);
return baseBiz.reviewVehicleBooking(operatorId, bookVehicleVo.getVehicleBookRecordId(), VehicleBookRecordStatus.REJECTED.getCode(), userName, bookVehicleVo.getRejectRemark(), Boolean.FALSE);
}
// /**
......@@ -284,15 +274,15 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
/**
* 取消车辆预订
*
* @param bookRecordId
* @param
* @return
*/
@RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE)
@RequestMapping(value = "/unbook/4employee", method = RequestMethod.DELETE)
@ApiOperation(value = "取消预定车辆")
public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId) throws Exception {
public RestResponse<Integer> unbookVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
return baseBiz.unbookVehicle4Employee(operatorId, bookRecordId, userName);
return baseBiz.unbookVehicle4Employee(operatorId, bookVehicleVo.getVehicleBookRecordId(), userName, bookVehicleVo.getRejectRemark(), Boolean.FALSE);
}
@RequestMapping(value = "/bookedRecord/{bookEndDate}/{id}", method = RequestMethod.GET)
......
......@@ -47,7 +47,9 @@
<if test="haveViolation != null">
have_violation =#{haveViolation},
</if>
<if test="rejectRemark != null">
reject_remark = #{rejectRemark},
</if>
`status` = #{status}
where id = #{id} and `status` = #{statusCondition}
</update>
......
......@@ -70,6 +70,7 @@
v.manufacturer,
v.receive_time,
v.update_time,
v.model_id,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam != null ">
,vbi.booked_date
......@@ -92,6 +93,9 @@
<if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd}
</if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="mRangeDateStart !=null">
and v.maintenance_date &gt;= #{mRangeDateStart}
</if>
......@@ -202,6 +206,7 @@
v.manufacturer,
v.receive_time,
v.update_time,
v.model_id,
v.mileage_last_update as mileage
<if test=" yearMonthAndParam !=null ">
,vbi.booked_date
......@@ -245,6 +250,9 @@
<if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd}
</if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="mRangeDateStart !=null">
and v.maintenance_date &gt;= #{mRangeDateStart}
</if>
......@@ -389,6 +397,12 @@
<if test="zoneId !=null">
and bc2.zone_id = #{zoneId}
</if>
<if test="useType != null">
and v1.use_type = #{useType}
</if>
<if test="modelId != null and modelId != ''">
and v1.model_id = #{modelId}
</if>
and v1.is_del != 1
</where>
</select>
......@@ -412,6 +426,9 @@
#{id}
</foreach>
</if>
<if test="modelId != null and modelId != ''">
and v1.model_id = #{modelId}
</if>
and v1.is_del != 1
</where>
ORDER BY parkCompanyName
......@@ -490,6 +507,9 @@
#{id}
</foreach>
</if>
<if test="modelId != null and modelId != ''">
and v2.model_id = #{modelId}
</if>
and v2.is_del != 1
</where>
</select>
......@@ -637,6 +657,8 @@
and v.park_branch_company_id = #{parkBranchCompanyId}
</if>
and v.is_del = 0
and v.status != 3
and v.use_type = 1
</where>
</sql>
......
......@@ -58,6 +58,9 @@
<if test="status != null">
and v.status = #{status}
</if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
......
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