Commit d60de735 authored by jiaorz's avatar jiaorz

发现排序

parent c9938091
......@@ -2,6 +2,7 @@ package com.xxfc.platform.activity.user;
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.UserDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -26,4 +27,13 @@ public class UserInfoBiz {
}
return null;
}
public UserDTO getAdminUserInfo() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
if(request.getHeader("Authorization") !=null) {
return userFeign.userinfoByToken(request.getHeader("Authorization")).getData();
}
return null;
}
}
......@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
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.UserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.user.UserInfoBiz;
......@@ -74,14 +75,14 @@ public class OrderVehicalCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
public ObjectRestResponse<OrderVehicleCrosstownDto> add(OrderVehicleCrosstownDto orderVehicleCrosstownDto) {
log.info("添加的参数:orderVehicaleCrosstown = {}", orderVehicleCrosstownDto);
AppUserDTO appUserDTO = userInfoBiz.getUserInfo();
if (appUserDTO == null) {
UserDTO userDTO = userInfoBiz.getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.createFailedResult(508, "token is null or invalid");
}
if (orderVehicleCrosstownDto == null || orderVehicleCrosstownDto.getOrderId() == null ) {
return ObjectRestResponse.createFailedResult(500, "参数为空!");
}
orderVehicleCrosstownDto.setOrperaterId(appUserDTO.getUserid());
orderVehicleCrosstownDto.setOrperaterId(userDTO.getId());
BaseOrder baseOrder = baseOrderBiz.selectById(orderVehicleCrosstownDto.getOrderId());
if(baseOrder == null) {
return ObjectRestResponse.createFailedResult(500,"订单不存在!");
......
......@@ -3,10 +3,18 @@ package com.xxfc.platform.vehicle.constant;
import java.util.HashMap;
import java.util.Map;
/**
* 预定车辆用途
*/
public enum BookType {
USER_RENT(1,"用户租赁"),
EMPLOYEE_APPLY(2,"内部员工申请"),
EMPLOYEE_APPLY(1,"还车"),
USER_RENT(2,"租车"),
REPAIRING(3,"维修"),
SHOW(4,"展览"),
TOUR(5,"旅游"),
MAINTAIN(6,"保养"),
BOOKING(7,"预约中"),
DISABLE(8,"禁用")
;
/**
* 编码
......
......@@ -27,4 +27,7 @@ public class VehicleBookHourInfo {
@Column(name = "update_time")
private Date updateTime;
@Column(name = "book_record_id")
private Long bookRecordId;
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import lombok.Data;
import javax.persistence.*;
import java.util.Date;
import java.util.List;
@Table(name = "vehicle_book_record")
@Data
......@@ -26,7 +27,7 @@ public class VehicleBookRecord {
private Integer status;
/**
* 预定类型,1-用户租赁、2-分公司使用、3-维修
* 预定类型,1-租车、2-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用
*/
@Column(name = "book_type")
private Integer bookType;
......@@ -175,5 +176,15 @@ public class VehicleBookRecord {
*/
private Integer haveViolation;
/**
* 订单号
*/
private String orderNo;
@Transient
private List<String> startHourList;
@Transient
private List<String> endHourList;
}
\ No newline at end of file
......@@ -87,4 +87,9 @@ public class BookVehicleVO {
//还车分公司
private Integer retCompany;
/**
* 预定车辆用途
*/
private Integer bookType;
}
\ No newline at end of file
......@@ -44,4 +44,8 @@ public class RentVehicleBookDTO extends PageParam {
*/
@ApiModelProperty("用户名")
private String userName;
@ApiModelProperty("订单号")
private String orderNo;
}
\ No newline at end of file
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.VehicleBookHourInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import lombok.Data;
@Data
public class VehicleBookRecordDateVo extends VehicleBookRecord {
VehicleBookHourInfo vehicleBookHourInfo;
}
......@@ -26,7 +26,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 static Map<String, Integer> getPredictableHours(String bookStartdate, String bookEndDate) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null;
Date endDate = null;
......@@ -50,7 +50,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
int endHour = new DateTime(endDate).hourOfDay().get();
//获取开始天的预定小时
int startPredictableHour = 0;
for (int curentHour = hour; curentHour < 24; curentHour++) {
for (int curentHour = hour; curentHour <= 24; curentHour++) {
startPredictableHour |= 1 << (curentHour - 1);
}
//获取结束天的预定小时
......@@ -60,10 +60,11 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
}
predictableHours.put(DateTime.parse(bookStartdate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour);
predictableHours.put(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), endPredictableHour);
DateTime startDay = DateTime.parse(bookStartdate, DEFAULT_DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER);
if(startDay.getHourOfDay() - endDay.getHourOfDay() >1){ //
for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) <= 0; curDate = curDate.plusDays(1)) {
DateTime startDay = DateTime.parse(DateTime.parse(bookStartdate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
if(endDay.getDayOfMonth() - startDay.getDayOfMonth() >1){ //
for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) {
String curDateStr = curDate.toString(DATE_TIME_FORMATTER);
//全天预定
predictableHours.put(curDateStr, 16777215);
......@@ -72,22 +73,13 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
return predictableHours;
}
// public static void main(String[] args) {
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// Date startDate = null;
// Date endDate = null;
// try{
// startDate = simpleDateFormat.parse("2019-06-21 16:30:30");
// endDate = simpleDateFormat.parse("2019-06-22 12:30:30");
// }catch (Exception e) {
//
// }
// Map<String, Integer> map = getPredictableHours(startDate, endDate);
// for(Map.Entry<String, Integer> entry : map.entrySet()) {
// System.out.println(entry.getKey());
// System.out.println(entry.getValue());
// }
// }
public List<VehicleBookHourInfo> selectByVehicleAndDate(VehicleBookHourInfoDto vehicleBookHourInfoDto) {
return mapper.selectByVehicleAndDate(vehicleBookHourInfoDto);
}
public VehicleBookHourInfo selectByVehicleAndId(VehicleBookHourInfoDto vehicleBookHourInfoDto) {
return mapper.selectByVehicleAndId(vehicleBookHourInfoDto);
}
@Transactional
public ObjectRestResponse save(VehicleBookHourInfoDto vehicleBookHourInfoDto) {
......@@ -102,13 +94,13 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
return ObjectRestResponse.createFailedResult(504, "当天时间段已经被预定");
} else {
vehicleBookHourInfo.setBookedHour(vehicleBookHourInfo.getBookedHour() | vehicleBookHourInfoDto.getBookedHour());
mapper.updateByPrimaryKeySelective(vehicleBookHourInfo);
updateSelectiveByIdRe(vehicleBookHourInfo);
}
}
return ObjectRestResponse.succ();
}
//没有数据直接添加
mapper.insertSelective(vehicleBookHourInfoDto);
insertSelectiveRe(vehicleBookHourInfoDto);
return ObjectRestResponse.succ();
}
......@@ -131,4 +123,19 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
return ObjectRestResponse.succ();
}
public static void main(String[] args) throws Exception{
String result = Integer.toBinaryString(16777200);
String newString = new StringBuilder(result).reverse().toString();
int i=newString.length()-result.replace("1", "").length();
System.out.println(i);
Map<String, Integer> map = getPredictableHours("2019-07-25 05:26:17","2019-07-27 15:26:17");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
log.info(entry.getKey());
log.info(entry.getValue() + "");
}
}
}
......@@ -57,6 +57,14 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
@Autowired
private BookRecordAccItemMapper bookRecordAccItemMapper;
public void save(VehicleBookRecord vehicleBookRecord) {
insertSelectiveRe(vehicleBookRecord);
}
public int changeRecordStatus( Map<String,Object> updateParam) {
return mapper.changeRecordStatus( updateParam);
}
public QueryVehicleBookRecordVo getById(Long id, DateTime endDate) throws Exception{
Map<String,Object> recordParams =Maps.newHashMap();
recordParams.put("id",id);
......@@ -156,6 +164,9 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
return PageDataVO.pageInfo(vehiclePageInfo);
}
/**
* 获取相关申请记录对应随行物品的数量,并放入map
* @param bookRecordAndVehicleInfos
......@@ -329,6 +340,8 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
}
public PageDataVO<VehicleRecordInfoVo> getListByParam(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto);
PageDataVO<VehicleRecordInfoVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getByParam(query.getSuper()));
......
......@@ -11,4 +11,6 @@ public interface VehicleBookHourInfoMapper extends Mapper<VehicleBookHourInfo> {
List<VehicleBookHourInfo> selectByVehicleAndDate(VehicleBookHourInfoDto vehicleBookHourInfoDto);
List<VehicleBookHourInfo> selectByVehicleAndDateList(Map<String, Object> param);
VehicleBookHourInfo selectByVehicleAndId(VehicleBookHourInfoDto vehicleBookHourInfoDto);
}
\ No newline at end of file
......@@ -21,6 +21,7 @@ import com.xxfc.platform.vehicle.biz.VehicleWarningMsgBiz;
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.Vehicle;
......@@ -207,7 +208,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
public RestResponse<Integer> applyVehicle( BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc();
}
......@@ -400,7 +401,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
dto.setLimit(1);
dto.setPage(1);
bookVehicleVo.setBookType(BookType.USER_RENT.getCode());
//查询可车辆信息
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if (pageDataVO.getData().size() <= 0) {
......@@ -409,9 +410,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
}});
}
bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId());
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
return ObjectRestResponse.succ(vehicleBookRecord);
}
......
......@@ -17,7 +17,10 @@
select * from vehicle_book_hour_info
where vehicle_id = #{vehicleId} and year_month_day = #{yearMonthDay}
</select>
<select id="selectByVehicleAndId" parameterType="com.xxfc.platform.vehicle.pojo.VehicleBookHourInfoDto" resultType="com.xxfc.platform.vehicle.entity.VehicleBookHourInfo">
select * from vehicle_book_hour_info
where vehicle_id = #{vehicleId} and book_record_id = #{bookRecordId} and year_month_day = #{yearMonthDay}
</select>
<select id="selectByVehicleAndDateList" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookHourInfo">
select * from vehicle_book_hour_info
where vehicle_id = #{vehicleId} and year_month_day in
......
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