Commit 94389010 authored by hanfeng's avatar hanfeng

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

parents 440590ce 29b083d8
...@@ -8,8 +8,8 @@ public class ResultCode { ...@@ -8,8 +8,8 @@ public class ResultCode {
////////////////////////////参数相关/////////////////////////// ////////////////////////////参数相关///////////////////////////
//参数非法,请修改 //参数非法,请修改
public static int PARAM_ILLEGAL_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_ILLEGAL_CODE")); public static int PARAM_ILLEGAL_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_ILLEGAL_CODE"));
//参数时效已过时,不能使用 //参数时效已过时,不能使用X
public static int PARAM_EXPIRE_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_EXPIRE_CODE")); public static int PARAM_EPIRE_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_EXPIRE_CODE"));
public static int VEHICLE_IS_BOOKED = Integer.valueOf(SystemProperty.getResultConfig("VEHICLE_IS_BOOKED")); public static int VEHICLE_IS_BOOKED = Integer.valueOf(SystemProperty.getResultConfig("VEHICLE_IS_BOOKED"));
// 操作成功 // 操作成功
public static int SUCCESS_CODE = Integer.valueOf(SystemProperty.getResultConfig("SUCCESS_CODE")); public static int SUCCESS_CODE = Integer.valueOf(SystemProperty.getResultConfig("SUCCESS_CODE"));
...@@ -24,6 +24,7 @@ public class ResultCode { ...@@ -24,6 +24,7 @@ public class ResultCode {
// 预定时间不能小于当前时间 // 预定时间不能小于当前时间
public static int ONLY_BOOK_FROM_TODAY = Integer.valueOf(SystemProperty.getResultConfig("ONLY_BOOK_FROM_TODAY")); public static int ONLY_BOOK_FROM_TODAY = Integer.valueOf(SystemProperty.getResultConfig("ONLY_BOOK_FROM_TODAY"));
public static int END_TIME_FROM_TODAY = Integer.valueOf(SystemProperty.getResultConfig("END_TIME_FROM_TODAY"));
// 只能预定两个月内的车辆 // 只能预定两个月内的车辆
public static int ONLY_BOOK_TWO_MONTH = Integer.valueOf(SystemProperty.getResultConfig("ONLY_BOOK_TWO_MONTH")); public static int ONLY_BOOK_TWO_MONTH = Integer.valueOf(SystemProperty.getResultConfig("ONLY_BOOK_TWO_MONTH"));
......
...@@ -247,4 +247,7 @@ RET_COMPANY_CAN_NOT_BE_NULL = 4018 ...@@ -247,4 +247,7 @@ RET_COMPANY_CAN_NOT_BE_NULL = 4018
4018 = 停靠公司不能为空 4018 = 停靠公司不能为空
NUMBER_PLAT_CAN_NOT_BE_NULL = 4019 NUMBER_PLAT_CAN_NOT_BE_NULL = 4019
4019 = 车牌不能为空 4019 = 车牌不能为空
\ No newline at end of file
END_TIME_FROM_TODAY = 4020
4020 = 结束时间不能小于开始时间
\ No newline at end of file
...@@ -21,6 +21,7 @@ import javax.annotation.Resource; ...@@ -21,6 +21,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Parameter; import java.lang.reflect.Parameter;
import java.util.Objects;
/** /**
* @author libin * @author libin
...@@ -72,7 +73,11 @@ public class TokenAop { ...@@ -72,7 +73,11 @@ public class TokenAop {
args[i]= new AppUserDTO(); args[i]= new AppUserDTO();
break; break;
} }
args[i]= userFeign.userDetailByToken(token).getData(); AppUserDTO userDTO = userFeign.userDetailByToken(token).getData();
if (Objects.isNull(userDTO)){
userDTO = new AppUserDTO();
}
args[i]= userDTO;
break; break;
} }
if (UserDTO.class.equals(parameter.getType())){ if (UserDTO.class.equals(parameter.getType())){
......
...@@ -166,22 +166,31 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> { ...@@ -166,22 +166,31 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
} }
UserCouponVo userCouponVo=null; UserCouponVo userCouponVo=null;
if (list2.size()>0){ if (list2.size()>0){
userCouponVo=list2.get(0); list2.sort(Comparator.comparing(UserCouponVo::getStatus));
userCouponVo=list2.get(0);
if (userCouponVo!=null){ if (userCouponVo!=null){
userCouponVo.setIsChecked(1); userCouponVo.setIsChecked(1);
list2.set(0,userCouponVo); list2.set(0,userCouponVo);
} }
list2.sort(Comparator.comparing(UserCouponVo::getStatus));
} }
if (list1.size()>0){ if (list1.size()>0){
list1.sort(Comparator.comparing(UserCouponVo::getStatus));
if (userCouponVo==null){ if (userCouponVo==null){
userCouponVo=list1.get(0); int num=0;
for (UserCouponVo couponVo:list1) {
if (couponVo.getStatus()==1){
userCouponVo=couponVo;
break;
}
num++;
}
if (userCouponVo!=null){ if (userCouponVo!=null){
userCouponVo.setIsChecked(1); userCouponVo.setIsChecked(1);
list1.set(0,userCouponVo); list1.set(num,userCouponVo);
} }
} }
list1.sort(Comparator.comparing(UserCouponVo::getStatus));
} }
JSONArray array = new JSONArray(); JSONArray array = new JSONArray();
JSONObject object=new JSONObject(); JSONObject object=new JSONObject();
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.xxfc.platform.tour.entity.TourUser;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -245,5 +246,5 @@ public class OrderTourDetail implements Serializable { ...@@ -245,5 +246,5 @@ public class OrderTourDetail implements Serializable {
private Integer isOutside; private Integer isOutside;
@Transient @Transient
private List<AppUserVo> userVoList; private List<TourUser> userVoList;
} }
...@@ -26,6 +26,7 @@ import com.xxfc.platform.order.pojo.order.OrderPageVO; ...@@ -26,6 +26,7 @@ import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto; import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto;
import com.xxfc.platform.order.pojo.order.QueryOrderDTO; import com.xxfc.platform.order.pojo.order.QueryOrderDTO;
import com.xxfc.platform.order.rest.BaseOrderController; import com.xxfc.platform.order.rest.BaseOrderController;
import com.xxfc.platform.tour.entity.TourUser;
import com.xxfc.platform.tour.feign.TourFeign; import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.dto.SendMsgDTO; import com.xxfc.platform.universal.dto.SendMsgDTO;
...@@ -179,17 +180,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -179,17 +180,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setVehicalNumberPlat(response.getData().getNumberPlate()); orderPageVo.setVehicalNumberPlat(response.getData().getNumberPlate());
} }
} else if (orderPageVo.getOrderTourDetail() != null) { } else if (orderPageVo.getOrderTourDetail() != null) {
List<Integer> ids = Lists.newArrayList(); if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
if (orderPageVo.getOrderTourDetail().getTourUserIds().contains(",")) { List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
String[] strings = orderPageVo.getOrderTourDetail().getTourUserIds().split(","); orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
for (int i = 0; i < strings.length; i++) {
ids.add(Integer.parseInt(StringUtils.isNotBlank(strings[i]) ? strings[i] : "0"));
}
} else {
ids.add(Integer.parseInt(orderPageVo.getOrderTourDetail().getTourUserIds()));
} }
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
} }
//设置保留金 //设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
...@@ -268,18 +262,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -268,18 +262,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate()); orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
} }
} else if (orderPageVo.getOrderTourDetail() != null) { } else if (orderPageVo.getOrderTourDetail() != null) {
List<Integer> ids = Lists.newArrayList(); if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
if (orderPageVo.getOrderTourDetail().getTourUserIds().contains(",")) { List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
String[] strings = orderPageVo.getOrderTourDetail().getTourUserIds().split(","); orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
for (int i = 0; i < strings.length; i++) {
ids.add(Integer.parseInt(StringUtils.isNotBlank(strings[i]) ? strings[i] : "0"));
}
} else {
ids.add(Integer.parseInt(orderPageVo.getOrderTourDetail().getTourUserIds()));
} }
List<AppUserVo> list = userFeign.getByUserIds(ids).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
} }
//设置保留金 //设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
......
...@@ -16,6 +16,10 @@ import com.xxfc.platform.vehicle.entity.BranchCompany; ...@@ -16,6 +16,10 @@ import com.xxfc.platform.vehicle.entity.BranchCompany;
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 java.time.Instant;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -89,7 +93,7 @@ public class OrderTourVerificationBiz{ ...@@ -89,7 +93,7 @@ public class OrderTourVerificationBiz{
} }
// 出发时间 是否已经发车 // 出发时间 是否已经发车
/* Date departureDate = tourFeign.selectDepartureDataBySpeId(tourDetail.getSpePriceId()); Date departureDate = tourFeign.selectDepartureDataBySpeId(tourDetail.getSpePriceId());
Long departureTime = tourFeign.selectDepartureTimeByStartCompanyIdAndRouteId(tourDetail.getStartCompanyId(), tourDetail.getGoodId()); Long departureTime = tourFeign.selectDepartureTimeByStartCompanyIdAndRouteId(tourDetail.getStartCompanyId(), tourDetail.getGoodId());
Integer departureStatus = tourFeign.selectDepartureStatusByVerificationId(verificationId); Integer departureStatus = tourFeign.selectDepartureStatusByVerificationId(verificationId);
LocalTime localDepartureTime = LocalTime.ofSecondOfDay(departureTime); LocalTime localDepartureTime = LocalTime.ofSecondOfDay(departureTime);
...@@ -110,7 +114,7 @@ public class OrderTourVerificationBiz{ ...@@ -110,7 +114,7 @@ public class OrderTourVerificationBiz{
if (departureStatus==1){ if (departureStatus==1){
return ObjectRestResponse.createFailedResultWithObj(400,"已经发车",1); return ObjectRestResponse.createFailedResultWithObj(400,"已经发车",1);
}*/ }
baseOrder=new BaseOrder(); baseOrder=new BaseOrder();
......
...@@ -25,6 +25,8 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail; ...@@ -25,6 +25,8 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO; import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.order.*; import com.xxfc.platform.order.pojo.order.*;
import com.xxfc.platform.order.service.OrderRentVehicleService; import com.xxfc.platform.order.service.OrderRentVehicleService;
import com.xxfc.platform.tour.entity.TourUser;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
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.BranchCompany;
...@@ -78,6 +80,9 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -78,6 +80,9 @@ public class BackStageOrderController extends CommonBaseController implements Us
@Autowired @Autowired
UserFeign userFeign; UserFeign userFeign;
@Autowired
TourFeign tourFeign;
@Resource @Resource
VehicleFeign vehicleFeign; VehicleFeign vehicleFeign;
...@@ -180,10 +185,9 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -180,10 +185,9 @@ public class BackStageOrderController extends CommonBaseController implements Us
if (startResponse.getData() != null) { if (startResponse.getData() != null) {
orderPageVO.setStartCompanyName(startResponse.getData().getName()); orderPageVO.setStartCompanyName(startResponse.getData().getName());
} }
List<Integer> tourUserIds = Arrays.asList(orderPageVO.getOrderTourDetail().getTourUserIds().split(",")).parallelStream().map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList()); if(StringUtils.isNotBlank(orderPageVO.getOrderTourDetail().getTourUserIds())) {
ObjectRestResponse<List<AppUserVo>> users = userFeign.getByUserIds(tourUserIds); List<TourUser> tourUsers = tourFeign.getTourUsers(orderPageVO.getOrderTourDetail().getTourUserIds()).getData();
if (users.getData() != null) { orderPageVO.getOrderTourDetail().setUserVoList(tourUsers == null || tourUsers.size() <= 0 ? new ArrayList<>() : tourUsers);
orderPageVO.getOrderTourDetail().setUserVoList(users.getData() == null? users.getData() : new ArrayList<>());
} }
} }
......
...@@ -239,7 +239,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -239,7 +239,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//如果用户存在,并且为会员,并且车辆有优惠价 //如果用户存在,并且为会员,并且车辆有优惠价
if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) { if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) {
if(null == dto.getRentFreeDays() || dto.getRentFreeDays() <= 0) { if(null == dto.getRentFreeDays() || dto.getRentFreeDays() <= 0) {
throw new BaseException(ResultCode.PARAM_EXPIRE_CODE, new HashSet<String>() {{ throw new BaseException(ResultCode.PARAM_EPIRE_CODE, new HashSet<String>() {{
add("免费租车天数不存在或为0"); add("免费租车天数不存在或为0");
}}); }});
} }
......
...@@ -35,6 +35,7 @@ import com.xxfc.platform.vehicle.entity.SysRegion; ...@@ -35,6 +35,7 @@ import com.xxfc.platform.vehicle.entity.SysRegion;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -47,7 +48,7 @@ import java.util.HashSet; ...@@ -47,7 +48,7 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.*;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
...@@ -135,8 +136,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -135,8 +136,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
setSiteId(bo.getSiteId()); setSiteId(bo.getSiteId());
}})).getData().get(0).getId()); }})).getData().get(0).getId());
Integer departureStatus = tourFeign.selectDepartureStatusByVerificationId(bo.getVerificationId());
//1为已发车
if(!SYS_FALSE.equals(departureStatus)) {
throw new BaseException(ResultCode.PARAM_EPIRE_CODE, Sets.newSet("旅程已发车,不能下单"));
}
//扣減庫存 //扣減庫存
tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber(), TourFeign.STOCK_SUBTRACT); ObjectRestResponse<TourSpePriceVo> response = tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber(), TourFeign.STOCK_SUBTRACT);
if(!SYS_JSON_TRUE.equals(response.getStatus())) {
throw new BaseException(ResultCode.PARAM_EPIRE_CODE, Sets.newSet("库存不足"));
}
OrderItem tourAdultItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT); OrderItem tourAdultItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT);
OrderItem tourChildItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD); OrderItem tourChildItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD);
......
...@@ -87,7 +87,7 @@ public class VehicleDepartureLog { ...@@ -87,7 +87,7 @@ public class VehicleDepartureLog {
/** /**
* 预约记录id * 预约记录id
*/ */
Integer bookRecordId; Long bookRecordId;
//违章图片,逗号分隔 //违章图片,逗号分隔
String illegalPic; String illegalPic;
//违章金额 //违章金额
......
...@@ -38,6 +38,6 @@ public class VehicleArrivalVo { ...@@ -38,6 +38,6 @@ public class VehicleArrivalVo {
//违章金额 //违章金额
Integer illegalAmount; Integer illegalAmount;
Integer bookRecordId; Long bookRecordId;
} }
...@@ -48,7 +48,7 @@ public class VehicleDepartureVo { ...@@ -48,7 +48,7 @@ public class VehicleDepartureVo {
/** /**
* 预约记录id * 预约记录id
*/ */
Integer bookRecordId; Long bookRecordId;
//出车图片 //出车图片
String departurePic; String departurePic;
......
...@@ -3,11 +3,8 @@ package com.xxfc.platform.vehicle.biz; ...@@ -3,11 +3,8 @@ package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.vehicle.constant.BookType; import com.xxfc.platform.vehicle.constant.*;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleActiveType;
import com.xxfc.platform.vehicle.constant.VehicleDepartureState;
import com.xxfc.platform.vehicle.constant.VehicleStatus;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.*; import com.xxfc.platform.vehicle.mapper.*;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
...@@ -104,6 +101,7 @@ public class VehicleActiveService { ...@@ -104,6 +101,7 @@ public class VehicleActiveService {
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode()); departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setDepartureRemark(departureVo.getRemark()); departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) { if(vehicleBookRecord != null) {
departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getLiftCompany());
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType())); departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername()); departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone()); departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
...@@ -207,9 +205,9 @@ public class VehicleActiveService { ...@@ -207,9 +205,9 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
} }
VehicleBookRecord vehicleBookRecord = null;
if(arrivalVo.getBookRecordId() != null) { if(arrivalVo.getBookRecordId() != null) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId()); vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 2); updateBookRecordStatus(vehicleBookRecord, 2);
} }
...@@ -231,6 +229,9 @@ public class VehicleActiveService { ...@@ -231,6 +229,9 @@ public class VehicleActiveService {
departureLog.setIllegalAmount(arrivalVo.getIllegalAmount()); departureLog.setIllegalAmount(arrivalVo.getIllegalAmount());
departureLog.setArrivalPic(arrivalVo.getArrivalPic()); departureLog.setArrivalPic(arrivalVo.getArrivalPic());
departureLog.setArrivalRemark(arrivalVo.getRemark()); departureLog.setArrivalRemark(arrivalVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setDepartureBranchCompanyId(vehicleBookRecord.getRetCompany());
}
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog); vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
// 车辆活动日志 // 车辆活动日志
VehicleActiveLog activeLog = vehicleActiveLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId()); VehicleActiveLog activeLog = vehicleActiveLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId());
......
...@@ -412,7 +412,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -412,7 +412,14 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public VehicleBookRecord applyVehicle(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{ public VehicleBookRecord applyVehicle(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{
log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName); log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName);
//检查车辆信息是否合法 //检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicleId()); Vehicle vehicle = mapper.selectByPrimaryKey(bookVehicleVo.getVehicleId());
if(vehicle == null) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
}
if (!vehicle.getStatus().equals(VehicleStatus.NORMAL.getCode())) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) { if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())) {
throw new BaseException(ResultCode.DATE_TIME_IS_NULL); throw new BaseException(ResultCode.DATE_TIME_IS_NULL);
} }
...@@ -443,6 +450,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -443,6 +450,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleBookRecord.setStatus(bookVehicleVo.getStatus()); vehicleBookRecord.setStatus(bookVehicleVo.getStatus());
vehicleBookRecord.setBookUser(userId); vehicleBookRecord.setBookUser(userId);
vehicleBookRecord.setBookUserName(userName); vehicleBookRecord.setBookUserName(userName);
vehicleBookRecord.setLiftCompany(vehicle.getParkBranchCompanyId());
vehicleBookRecordBiz.save(vehicleBookRecord); vehicleBookRecordBiz.save(vehicleBookRecord);
} else { } else {
vehicleBookRecord = vehicleBookRecordBiz.selectById(bookVehicleVo.getVehicleBookRecordId()); vehicleBookRecord = vehicleBookRecordBiz.selectById(bookVehicleVo.getVehicleBookRecordId());
...@@ -744,15 +752,47 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -744,15 +752,47 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @param id * @param id
*/ */
public boolean checkIfVehicleExists(String id){ public boolean checkIfVehicleExists(String id){
Integer count = mapper.selectCount(new Vehicle(){{
setId(id); Vehicle vehicle = mapper.selectByPrimaryKey(id);
}}); if(vehicle == null) {
if(count<=0){
return false; return false;
} }
if (!vehicle.getStatus().equals(VehicleStatus.NORMAL.getCode())) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
return true; return true;
} }
public String getVehicleStatus(Integer status, String vehicleId) {
StringBuilder stringBuilder = new StringBuilder();
switch (status) {
case 1:
stringBuilder.append("正常运行");
break;
case 2:
stringBuilder.append("维修");
break;
case 3:
stringBuilder.append("报废");
break;
case 4:
stringBuilder.append("出车");
break;
case 5:
stringBuilder.append("保养");
break;
}
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId);
if(vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
stringBuilder.append("中,使用人:");
stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUsername());
stringBuilder.append(" 使用人电话:");
stringBuilder.append(vehicleBookRecordVos.get(0).getVehicleUserPhone());
}
return stringBuilder.toString();
}
/** /**
* 把日期范围转换为列表,并检查操作范围是否合法 * 把日期范围转换为列表,并检查操作范围是否合法
* @param yearMonthAndDate * @param yearMonthAndDate
...@@ -810,7 +850,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -810,7 +850,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
DateTime endDay =DateTime.parse(bookVehicleVo.getUnbookEndDate(), DATE_TIME_FORMATTER); DateTime endDay =DateTime.parse(bookVehicleVo.getUnbookEndDate(), DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法 //转换日期范围为列表,并检查是否合法
uinbookDateList4DatePeriod(yearMonthAndDate,startDay,endDay); uinbookDateList4DatePeriod(yearMonthAndDate,startDay,endDay);
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate(), bookVehicleVo.getNotCheckTimeLegal()); //原设计为 读取 bookVehicleVo.getNotCheckTimeLegal(), 现在取消/拒绝 true
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getUnbookStartDate(), bookVehicleVo.getUnbookEndDate(), Boolean.TRUE);
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月 if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_UNBOOK_TWO_MONTH); throw new BaseException(ResultCode.ONLY_UNBOOK_TWO_MONTH);
} }
......
...@@ -47,11 +47,10 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -47,11 +47,10 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) { if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY); throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
} }
if (bookStartDate.compareTo(bookEndDate) > 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
} }
if (bookStartDate.compareTo(bookEndDate) > 0) {
throw new BaseException(ResultCode.END_TIME_FROM_TODAY);
}
Map<String, Integer> predictableHours = Maps.newHashMap(); Map<String, Integer> predictableHours = Maps.newHashMap();
//预定开始小时 //预定开始小时
int hour = new DateTime(startDate).hourOfDay().get(); int hour = new DateTime(startDate).hourOfDay().get();
...@@ -149,7 +148,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -149,7 +148,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
public static void main(String[] args) throws Exception{ public static void main(String[] args) throws Exception{
int b = 16744448; int b = 16744448;
Integer a = b | 0; Integer a = b | 48;
System.out.println(a); System.out.println(a);
} }
......
...@@ -7,20 +7,19 @@ import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; ...@@ -7,20 +7,19 @@ import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface; 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.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
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.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xxfc.platform.universal.utils.DateUtil;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType; import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.RedisKey; import com.xxfc.platform.vehicle.constant.RedisKey;
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.BookRecordAccItem; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleUpkeepItem;
import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper; import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper; import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
...@@ -30,6 +29,7 @@ import org.apache.commons.beanutils.BeanUtils; ...@@ -30,6 +29,7 @@ import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.DateTimeFormatter;
...@@ -40,10 +40,7 @@ import org.springframework.stereotype.Service; ...@@ -40,10 +40,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.util.Arrays; import java.util.*;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -59,6 +56,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -59,6 +56,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
public static final String TB_ACC_ITEM_NAME_REAL = "book_record_acc_item";//实际表名 public static final String TB_ACC_ITEM_NAME_REAL = "book_record_acc_item";//实际表名
public static final DateTimeFormatter YEAR_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy"); public static final DateTimeFormatter YEAR_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy");
public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM"); public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
public static final Integer DEL_BATCH_SIZE = 1000; public static final Integer DEL_BATCH_SIZE = 1000;
public static final Integer COPY_BATCH_SIZE = 100; public static final Integer COPY_BATCH_SIZE = 100;
...@@ -75,31 +73,38 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -75,31 +73,38 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
@Autowired @Autowired
VehicleUpkeepService vehicleUpkeepService; VehicleUpkeepService vehicleUpkeepService;
@Autowired
VehicleBookHourInfoBiz vehicleBookHourInfoBiz;
@Autowired
VehicleDepartureService vehicleDepartureService;
@Override @Override
public UserFeign getUserFeign() {return userFeign;} public UserFeign getUserFeign() {
return userFeign;
}
public void save(VehicleBookRecord vehicleBookRecord) { public void save(VehicleBookRecord vehicleBookRecord) {
insertSelectiveRe(vehicleBookRecord); insertSelectiveRe(vehicleBookRecord);
} }
public int changeRecordStatus( Map<String,Object> updateParam) { public int changeRecordStatus(Map<String, Object> updateParam) {
return mapper.changeRecordStatus( updateParam); return mapper.changeRecordStatus(updateParam);
} }
public QueryVehicleBookRecordVo getById(Long id, DateTime endDate) throws Exception{ public QueryVehicleBookRecordVo getById(Long id, DateTime endDate) throws Exception {
Map<String,Object> recordParams =Maps.newHashMap(); Map<String, Object> recordParams = Maps.newHashMap();
recordParams.put("id",id); recordParams.put("id", id);
recordParams.put("tbName",TB_NAME_REAL); recordParams.put("tbName", TB_NAME_REAL);
DateTime selectedMonthDate = endDate.withMillisOfDay(0).withDayOfMonth(1); DateTime selectedMonthDate = endDate.withMillisOfDay(0).withDayOfMonth(1);
String bookRecordAccItemTbName = TB_ACC_ITEM_NAME_REAL; String bookRecordAccItemTbName = TB_ACC_ITEM_NAME_REAL;
if(selectedMonthDate.compareTo(DateTime.now().plusMonths(-1).withDayOfMonth(1).withMillisOfDay(0)) < 0){ if (selectedMonthDate.compareTo(DateTime.now().plusMonths(-1).withDayOfMonth(1).withMillisOfDay(0)) < 0) {
recordParams.put("tbName",getTbName(String.valueOf(selectedMonthDate.getYear()))); recordParams.put("tbName", getTbName(String.valueOf(selectedMonthDate.getYear())));
bookRecordAccItemTbName = getAccItemTbName(String.valueOf(selectedMonthDate.getYear())); bookRecordAccItemTbName = getAccItemTbName(String.valueOf(selectedMonthDate.getYear()));
} }
VehicleBookRecord vehicleBookRecord = mapper.getById(recordParams); VehicleBookRecord vehicleBookRecord = mapper.getById(recordParams);
QueryVehicleBookRecordVo queryVehicleBookRecordVo = new QueryVehicleBookRecordVo(); QueryVehicleBookRecordVo queryVehicleBookRecordVo = new QueryVehicleBookRecordVo();
BeanUtils.copyProperties(queryVehicleBookRecordVo,vehicleBookRecord); BeanUtils.copyProperties(queryVehicleBookRecordVo, vehicleBookRecord);
Map<Long,Map<Integer,Integer>> rs = getRelatedAccItemsAndAmount(Lists.newArrayList(queryVehicleBookRecordVo),bookRecordAccItemTbName); Map<Long, Map<Integer, Integer>> rs = getRelatedAccItemsAndAmount(Lists.newArrayList(queryVehicleBookRecordVo), bookRecordAccItemTbName);
queryVehicleBookRecordVo.setAccItemAndAmount(rs.get(queryVehicleBookRecordVo.getId())); queryVehicleBookRecordVo.setAccItemAndAmount(rs.get(queryVehicleBookRecordVo.getId()));
return queryVehicleBookRecordVo; return queryVehicleBookRecordVo;
} }
...@@ -110,14 +115,14 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -110,14 +115,14 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
vehicleBookRecordQueryVo.setPage(pageNo); vehicleBookRecordQueryVo.setPage(pageNo);
vehicleBookRecordQueryVo.setLimit(pageSize); vehicleBookRecordQueryVo.setLimit(pageSize);
UserDTO userDTO = getAdminUserInfo(); UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) { if (userDTO == null) {
return RestResponse.codeAndMessage(235, "token失效"); return RestResponse.codeAndMessage(235, "token失效");
} }
List<Integer> companyList = Lists.newArrayList(); List<Integer> companyList = Lists.newArrayList();
if(DATA_ALL_FALSE.equals(userDTO.getDataAll())) { //不能获取全部数据 if (DATA_ALL_FALSE.equals(userDTO.getDataAll())) { //不能获取全部数据
companyList = dataCompany(userDTO.getDataZone(), userDTO.getDataCompany()); companyList = dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
if(vehicleBookRecordQueryVo.getCompanyId() != null) { if (vehicleBookRecordQueryVo.getCompanyId() != null) {
if(companyList.contains(vehicleBookRecordQueryVo.getCompanyId())) { //如果权限中有这个公司就允许查询, 否则就直接返回空 if (companyList.contains(vehicleBookRecordQueryVo.getCompanyId())) { //如果权限中有这个公司就允许查询, 否则就直接返回空
companyList.clear(); companyList.clear();
companyList.add(vehicleBookRecordQueryVo.getCompanyId()); companyList.add(vehicleBookRecordQueryVo.getCompanyId());
} else { } else {
...@@ -125,7 +130,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -125,7 +130,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
} }
} }
} else { } else {
if(vehicleBookRecordQueryVo.getCompanyId() != null) { if (vehicleBookRecordQueryVo.getCompanyId() != null) {
companyList.add(vehicleBookRecordQueryVo.getCompanyId()); companyList.add(vehicleBookRecordQueryVo.getCompanyId());
} }
} }
...@@ -143,23 +148,23 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -143,23 +148,23 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
vehicleBookRecordQueryVo.setPage(pageNo); vehicleBookRecordQueryVo.setPage(pageNo);
vehicleBookRecordQueryVo.setLimit(pageSize); vehicleBookRecordQueryVo.setLimit(pageSize);
UserDTO userDTO = getAdminUserInfo(); UserDTO userDTO = getAdminUserInfo();
if(userDTO == null) { if (userDTO == null) {
return RestResponse.codeAndMessage(235, "token失效"); return RestResponse.codeAndMessage(235, "token失效");
} }
vehicleBookRecordQueryVo.setUserCompany(userDTO.getCompanyId()); vehicleBookRecordQueryVo.setUserCompany(userDTO.getCompanyId());
List<Integer> companyList = Lists.newArrayList(); List<Integer> companyList = Lists.newArrayList();
if(DATA_ALL_FALSE.equals(userDTO.getDataAll())) { //不能获取全部数据 if (DATA_ALL_FALSE.equals(userDTO.getDataAll())) { //不能获取全部数据
companyList = dataCompany(userDTO.getDataZone(), userDTO.getDataCompany()); companyList = dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
if(vehicleBookRecordQueryVo.getCompanyId() != null) { if (vehicleBookRecordQueryVo.getCompanyId() != null) {
if(companyList.contains(vehicleBookRecordQueryVo.getCompanyId())) { //如果权限中有这个公司就允许查询, 否则就直接返回空 if (companyList.contains(vehicleBookRecordQueryVo.getCompanyId())) { //如果权限中有这个公司就允许查询, 否则就直接返回空
companyList.clear(); companyList.clear();
companyList.add(vehicleBookRecordQueryVo.getCompanyId()); companyList.add(vehicleBookRecordQueryVo.getCompanyId());
} else { } else {
return RestResponse.suc(); return RestResponse.suc();
} }
} }
if(vehicleBookRecordQueryVo.getLiftCompany() != null) { if (vehicleBookRecordQueryVo.getLiftCompany() != null) {
if(companyList.contains(vehicleBookRecordQueryVo.getLiftCompany())) { //如果权限中有这个公司就允许查询, 否则就直接返回空 if (companyList.contains(vehicleBookRecordQueryVo.getLiftCompany())) { //如果权限中有这个公司就允许查询, 否则就直接返回空
companyList.clear(); companyList.clear();
companyList.add(vehicleBookRecordQueryVo.getLiftCompany()); companyList.add(vehicleBookRecordQueryVo.getLiftCompany());
} else { } else {
...@@ -167,59 +172,63 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -167,59 +172,63 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
} }
} }
} else { } else {
if(vehicleBookRecordQueryVo.getCompanyId() != null) { if (vehicleBookRecordQueryVo.getCompanyId() != null) {
companyList.add(vehicleBookRecordQueryVo.getCompanyId()); companyList.add(vehicleBookRecordQueryVo.getCompanyId());
} }
if(vehicleBookRecordQueryVo.getLiftCompany() != null) { if (vehicleBookRecordQueryVo.getLiftCompany() != null) {
companyList.add(vehicleBookRecordQueryVo.getLiftCompany()); companyList.add(vehicleBookRecordQueryVo.getLiftCompany());
} }
} }
vehicleBookRecordQueryVo.setCompanyIds(companyList); vehicleBookRecordQueryVo.setCompanyIds(companyList);
Query query = new Query(vehicleBookRecordQueryVo); Query query = new Query(vehicleBookRecordQueryVo);
if(vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 2) { if (vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 2) {
List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query.getSuper()); List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query.getSuper());
removeStatus2(list); removeStatus2(list);
//PageHelper.startPage(vehicleBookRecordQueryVo.getPage().intValue(), vehicleBookRecordQueryVo.getLimit().intValue());
PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list); PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list);
vehicleBookRecordVoPageInfo.setPageSize(vehicleBookRecordQueryVo.getLimit());
vehicleBookRecordVoPageInfo.setPageNum(vehicleBookRecordQueryVo.getPage());
getupKeeps(vehicleBookRecordVoPageInfo.getList()); getupKeeps(vehicleBookRecordVoPageInfo.getList());
return RestResponse.suc(PageDataVO.pageInfo(vehicleBookRecordVoPageInfo)); PageDataVO<VehicleBookRecordVo> vehicleBookRecordVoPageDataVO = PageDataVO.pageInfo(vehicleBookRecordVoPageInfo);
vehicleBookRecordVoPageDataVO.setPageNum(pageNo);
vehicleBookRecordVoPageDataVO.setPageSize(pageSize);
vehicleBookRecordVoPageDataVO.setTotalCount((long)vehicleBookRecordVoPageInfo.getList().size());
vehicleBookRecordVoPageDataVO.setTotalPage((vehicleBookRecordVoPageInfo.getList().size() + pageSize - 1) / pageSize);
vehicleBookRecordVoPageDataVO.setData(getData(vehicleBookRecordVoPageInfo.getList(), pageNo, pageSize));
return RestResponse.suc(vehicleBookRecordVoPageDataVO);
} }
PageDataVO<VehicleBookRecordVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getBookRecordInfo(query.getSuper())); PageDataVO<VehicleBookRecordVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getBookRecordInfo(query.getSuper()));
getupKeeps(pageDataVO.getData()); getupKeeps(pageDataVO.getData());
return RestResponse.suc(pageDataVO); return RestResponse.suc(pageDataVO);
} }
public void removeStatus2(List<VehicleBookRecordVo> list) { public void removeStatus2(List<VehicleBookRecordVo> list) {
Iterator<VehicleBookRecordVo> iterator = list.iterator(); Iterator<VehicleBookRecordVo> iterator = list.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
if(iterator.next().getVehicleDepartureLogVo() != null) { if (iterator.next().getVehicleDepartureLogVo() != null) {
iterator.remove(); iterator.remove();
} }
} }
} }
/**
* 获取随身物品 /**
*/ * 获取随身物品
public List<VehicleBookRecordVo> getupKeeps(List<VehicleBookRecordVo> vehicleBookRecordVos) { */
for(VehicleBookRecordVo vehicleBookRecordVo : vehicleBookRecordVos) { public List<VehicleBookRecordVo> getupKeeps(List<VehicleBookRecordVo> vehicleBookRecordVos) {
if(vehicleBookRecordVo.getBookType() == BookType.MAINTAIN.getCode()) {//获取 保养项目 for (VehicleBookRecordVo vehicleBookRecordVo : vehicleBookRecordVos) {
if(StringUtils.isNotBlank(vehicleBookRecordVo.getUpkeepIds())) { if (vehicleBookRecordVo.getBookType() == BookType.MAINTAIN.getCode()) {//获取 保养项目
List<Integer> upKeeps = Arrays.asList(vehicleBookRecordVo.getUpkeepIds().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()); if (StringUtils.isNotBlank(vehicleBookRecordVo.getUpkeepIds())) {
if(upKeeps.size() > 0) { List<Integer> upKeeps = Arrays.asList(vehicleBookRecordVo.getUpkeepIds().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
List<VehicleUpkeepItem> vehicleUpkeepItems = vehicleUpkeepService.getUpkeepsByIds(upKeeps); if (upKeeps.size() > 0) {
vehicleBookRecordVo.setVehicleUpkeepItems(vehicleUpkeepItems); List<VehicleUpkeepItem> vehicleUpkeepItems = vehicleUpkeepService.getUpkeepsByIds(upKeeps);
} vehicleBookRecordVo.setVehicleUpkeepItems(vehicleUpkeepItems);
} }
}
} }
} }
return vehicleBookRecordVos; return vehicleBookRecordVos;
} }
public RestResponse<Integer> lift(Integer operatorId, String userName, LiftVehicleVo liftVehicleVo) throws Exception{ public RestResponse<Integer> lift(Integer operatorId, String userName, LiftVehicleVo liftVehicleVo) throws Exception {
Map<String, Object> params = PropertyUtils.describe(liftVehicleVo); Map<String, Object> params = PropertyUtils.describe(liftVehicleVo);
params.put("reviewerLift", operatorId); params.put("reviewerLift", operatorId);
params.put("reviewerNameLift", userName); params.put("reviewerNameLift", userName);
...@@ -227,22 +236,22 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -227,22 +236,22 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
params.put("conditionStatus", VehicleBookRecordStatus.APPROVE.getCode()); params.put("conditionStatus", VehicleBookRecordStatus.APPROVE.getCode());
params.put("mileageLift", liftVehicleVo.getMileageLift()); params.put("mileageLift", liftVehicleVo.getMileageLift());
Integer effected = mapper.liftOrRet(params); Integer effected = mapper.liftOrRet(params);
if(effected == 0){ if (effected == 0) {
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode()); return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode());
} }
return RestResponse.suc(); return RestResponse.suc();
} }
public RestResponse<Integer> retVehicle(Integer operatorId, String userName, RetVehicleVo retVehicleVo) throws Exception{ public RestResponse<Integer> retVehicle(Integer operatorId, String userName, RetVehicleVo retVehicleVo) throws Exception {
VehicleBookRecord record=mapper.selectByPrimaryKey( retVehicleVo.getId()); VehicleBookRecord record = mapper.selectByPrimaryKey(retVehicleVo.getId());
Integer mileageRet=retVehicleVo.getMileageRet(); Integer mileageRet = retVehicleVo.getMileageRet();
if(record==null||mileageRet==null){ if (record == null || mileageRet == null) {
//return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode()); //return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode()); throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
} }
Integer mileageLift=record.getMileageLift(); Integer mileageLift = record.getMileageLift();
if(mileageLift!=null&&mileageRet>=mileageLift){ if (mileageLift != null && mileageRet >= mileageLift) {
Map<String, Object> params = PropertyUtils.describe(retVehicleVo); Map<String, Object> params = PropertyUtils.describe(retVehicleVo);
params.put("targetStatus", VehicleBookRecordStatus.RETURNED.getCode()); params.put("targetStatus", VehicleBookRecordStatus.RETURNED.getCode());
params.put("conditionStatus", VehicleBookRecordStatus.LIFTED.getCode()); params.put("conditionStatus", VehicleBookRecordStatus.LIFTED.getCode());
...@@ -251,10 +260,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -251,10 +260,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
params.put("mileageRet", mileageRet); params.put("mileageRet", mileageRet);
params.put("haveViolation", retVehicleVo.getHaveViolation()); params.put("haveViolation", retVehicleVo.getHaveViolation());
Integer effected = mapper.liftOrRet(params); Integer effected = mapper.liftOrRet(params);
if(effected == 0){ if (effected == 0) {
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode()); return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_STATUS_CHANGED.getCode());
} }
}else{ } else {
throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode()); throw new BaseException(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode());
} }
return RestResponse.suc(); return RestResponse.suc();
...@@ -262,38 +271,39 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -262,38 +271,39 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
/** /**
* 按页查询 * 按页查询
*
* @param vehicleBookRecordQueryVo * @param vehicleBookRecordQueryVo
* @return * @return
* @throws Exception * @throws Exception
*/ */
public PageDataVO<QueryVehicleBookRecordVo> page(VehicleBookRecordQueryVo vehicleBookRecordQueryVo, List<Integer> companyList) throws Exception{ public PageDataVO<QueryVehicleBookRecordVo> page(VehicleBookRecordQueryVo vehicleBookRecordQueryVo, List<Integer> companyList) throws Exception {
Map<String, Object> params = PropertyUtils.describe(vehicleBookRecordQueryVo); Map<String, Object> params = PropertyUtils.describe(vehicleBookRecordQueryVo);
String bookRecordAccItemTbName = TB_ACC_ITEM_NAME_REAL; String bookRecordAccItemTbName = TB_ACC_ITEM_NAME_REAL;
params.put("tbName",TB_NAME_REAL); params.put("tbName", TB_NAME_REAL);
if(params.get("selectedMonth") != null) { if (params.get("selectedMonth") != null) {
String selectedMonth = (String)params.get("selectedMonth"); String selectedMonth = (String) params.get("selectedMonth");
if(StringUtils.isBlank(selectedMonth)){ if (StringUtils.isBlank(selectedMonth)) {
throw new BaseException(" no month selected "); throw new BaseException(" no month selected ");
} }
DateTime selectedMonthDate = DateTime.parse(selectedMonth,YEARMONTH_DATE_TIME_FORMATTER); DateTime selectedMonthDate = DateTime.parse(selectedMonth, YEARMONTH_DATE_TIME_FORMATTER);
if(selectedMonthDate.compareTo(DateTime.now().plusMonths(-1).withDayOfMonth(1).withMillisOfDay(0)) < 0){ if (selectedMonthDate.compareTo(DateTime.now().plusMonths(-1).withDayOfMonth(1).withMillisOfDay(0)) < 0) {
params.put("tbName",getTbName(String.valueOf(selectedMonthDate.getYear()))); params.put("tbName", getTbName(String.valueOf(selectedMonthDate.getYear())));
bookRecordAccItemTbName = getAccItemTbName(String.valueOf(selectedMonthDate.getYear())); bookRecordAccItemTbName = getAccItemTbName(String.valueOf(selectedMonthDate.getYear()));
} }
params.put("bookedStartDate",selectedMonthDate.withDayOfMonth(1).toString()); params.put("bookedStartDate", selectedMonthDate.withDayOfMonth(1).toString());
params.put("bookedEndDate",selectedMonthDate.plusMonths(1).withDayOfMonth(1).toDate()); params.put("bookedEndDate", selectedMonthDate.plusMonths(1).withDayOfMonth(1).toDate());
} }
Integer pageSize = (Integer) params.get("limit"); Integer pageSize = (Integer) params.get("limit");
params.remove("pageSize"); params.remove("pageSize");
Integer pageNo = (Integer) params.get("page"); Integer pageNo = (Integer) params.get("page");
params.remove("pageNo"); params.remove("pageNo");
params.put("companyList", companyList); params.put("companyList", companyList);
PageHelper.startPage(pageNo,pageSize); PageHelper.startPage(pageNo, pageSize);
List<QueryVehicleBookRecordVo> bookRecordAndVehicleInfo = mapper.getByPage(params); List<QueryVehicleBookRecordVo> bookRecordAndVehicleInfo = mapper.getByPage(params);
Map<Long,Map<Integer,Integer>> rs = getRelatedAccItemsAndAmount(bookRecordAndVehicleInfo, Map<Long, Map<Integer, Integer>> rs = getRelatedAccItemsAndAmount(bookRecordAndVehicleInfo,
bookRecordAccItemTbName); bookRecordAccItemTbName);
//获取相关随行物品信息 //获取相关随行物品信息
for(QueryVehicleBookRecordVo queryVehicleBookRecordVo:bookRecordAndVehicleInfo){ for (QueryVehicleBookRecordVo queryVehicleBookRecordVo : bookRecordAndVehicleInfo) {
queryVehicleBookRecordVo.setAccItemAndAmount(rs.get(queryVehicleBookRecordVo.getId())); queryVehicleBookRecordVo.setAccItemAndAmount(rs.get(queryVehicleBookRecordVo.getId()));
} }
PageInfo<QueryVehicleBookRecordVo> vehiclePageInfo = new PageInfo<>(bookRecordAndVehicleInfo); PageInfo<QueryVehicleBookRecordVo> vehiclePageInfo = new PageInfo<>(bookRecordAndVehicleInfo);
...@@ -307,40 +317,84 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -307,40 +317,84 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
/** /**
* 获取相关申请记录对应随行物品的数量,并放入map * 获取相关申请记录对应随行物品的数量,并放入map
*
* @param bookRecordAndVehicleInfos * @param bookRecordAndVehicleInfos
* @return * @return
*/ */
public Map<Long,Map<Integer,Integer>> getRelatedAccItemsAndAmount(List<QueryVehicleBookRecordVo> bookRecordAndVehicleInfos, public Map<Long, Map<Integer, Integer>> getRelatedAccItemsAndAmount(List<QueryVehicleBookRecordVo> bookRecordAndVehicleInfos,
String tbName){ String tbName) {
List<Long> bookRecordIds = Lists.newArrayList(); List<Long> bookRecordIds = Lists.newArrayList();
if(CollectionUtils.isEmpty(bookRecordAndVehicleInfos)){ if (CollectionUtils.isEmpty(bookRecordAndVehicleInfos)) {
return null; return null;
} }
for(QueryVehicleBookRecordVo queryVehicleBookRecordVo:bookRecordAndVehicleInfos){ for (QueryVehicleBookRecordVo queryVehicleBookRecordVo : bookRecordAndVehicleInfos) {
bookRecordIds.add(queryVehicleBookRecordVo.getId()); bookRecordIds.add(queryVehicleBookRecordVo.getId());
} }
List<BookRecordAccItem> bookRecordAccItems = bookRecordAccItemMapper.getByRecords(ImmutableMap.of("bookRecordIds",bookRecordIds, List<BookRecordAccItem> bookRecordAccItems = bookRecordAccItemMapper.getByRecords(ImmutableMap.of("bookRecordIds", bookRecordIds,
"tbName",tbName)); "tbName", tbName));
Map<Long,Map<Integer,Integer>> rs = Maps.newHashMap(); Map<Long, Map<Integer, Integer>> rs = Maps.newHashMap();
for(BookRecordAccItem bookRecordAccItem : bookRecordAccItems){ for (BookRecordAccItem bookRecordAccItem : bookRecordAccItems) {
if(!rs.containsKey(bookRecordAccItem.getBookRecordId())){ if (!rs.containsKey(bookRecordAccItem.getBookRecordId())) {
rs.put(bookRecordAccItem.getBookRecordId(),Maps.newHashMap()); rs.put(bookRecordAccItem.getBookRecordId(), Maps.newHashMap());
} }
rs.get(bookRecordAccItem.getBookRecordId()). rs.get(bookRecordAccItem.getBookRecordId()).
put(bookRecordAccItem.getAccItemId(),bookRecordAccItem.getAmount()); put(bookRecordAccItem.getAccItemId(), bookRecordAccItem.getAmount());
} }
return rs; return rs;
} }
/**
* 检验数据库预定记录日期是否和时间,日期表中的二进制数据一致
* @return
*/
public ObjectRestResponse checkDateInvalide(){
List<VehicleBookRecord> list = mapper.selectAll();
List<VehicleBookRecord> unRightList = new ArrayList<>();
if(list != null && list.size() > 0) {
for(VehicleBookRecord vehicleBookRecord : list) {
log.info("vehicleBookRecord = {}", vehicleBookRecord);
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), DateUtil.dateToStr(vehicleBookRecord.getBookStartDate(), "yyyy-MM-dd HH:mm:ss"), Boolean.TRUE);
log.info("转换为时间二进制:map = {}", map);
//检验数据有效性
if(vehicleBookRecord.getStatus() == 2) {
VehicleDepartureLogVo vehicleDepartureLog = vehicleDepartureService.getByRecordId(vehicleBookRecord.getId());
if(vehicleDepartureLog == null || vehicleDepartureLog.getState() != 1) { //未出车或未还车
for(Map.Entry<String, Integer> entry : map.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
log.info("预定时间信息:vehicleBookHourInfos = {}", vehicleBookHourInfos);
if(vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
//检验数据是否存在
if((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) == entry.getValue()) {
log.info("时间正确,已经存在");
} else {
log.info("时间不正确");
vehicleBookHourInfos.get(0).setBookedHour((vehicleBookHourInfos.get(0).getBookedHour() | entry.getValue()));
log.info("更新预定时间数据:vehicleBookHourInfos = {}", vehicleBookHourInfos);
vehicleBookHourInfoBiz.updateSelectiveByIdRe(vehicleBookHourInfos.get(0));
unRightList.add(vehicleBookRecord);
}
}
}
}
}
}
}
return ObjectRestResponse.succ(unRightList);
}
/** /**
* 迁移数据到历史表 * 迁移数据到历史表
* 每年一张表 * 每年一张表
*/ */
@Scheduled(cron = "0 0 1 1 * ?")//每月1号1点触发 @Scheduled(cron = "0 0 1 1 * ?")//每月1号1点触发
public void transfer2HistoryTb(){ public void transfer2HistoryTb() {
try { try {
//获取表格名称 //获取表格名称
DateTime now = DateTime.now();//当前获取的时间为标准 DateTime now = DateTime.now();//当前获取的时间为标准
...@@ -350,7 +404,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -350,7 +404,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
//每月初将上上月数据从当前信息表中删除 //每月初将上上月数据从当前信息表中删除
delDataTheMonthBeforeLast(now); delDataTheMonthBeforeLast(now);
} }
}catch(Exception e){ } catch (Exception e) {
log.error(e.getMessage()); log.error(e.getMessage());
} }
...@@ -361,15 +415,15 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -361,15 +415,15 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
* 获取上月数据,并复制到历史表 * 获取上月数据,并复制到历史表
*/ */
@Transactional @Transactional
public Boolean copyDataLastMoth(DateTime now) throws Exception{ public Boolean copyDataLastMoth(DateTime now) throws Exception {
String lastMonthStr = now.plusMonths(-1).toString(YEARMONTH_DATE_TIME_FORMATTER); String lastMonthStr = now.plusMonths(-1).toString(YEARMONTH_DATE_TIME_FORMATTER);
String redisKey = RedisKey.TRANSFER_BOOK_RECORD_LOCK_PREFIX +lastMonthStr; String redisKey = RedisKey.TRANSFER_BOOK_RECORD_LOCK_PREFIX + lastMonthStr;
String tbName = getTbName(now.plusMonths(-1).toString("yyyy")); String tbName = getTbName(now.plusMonths(-1).toString("yyyy"));
String accItemTbName = getAccItemTbName(now.plusMonths(-1).toString("yyyy")); String accItemTbName = getAccItemTbName(now.plusMonths(-1).toString("yyyy"));
Boolean hasSuc = customRedisTemplate.opsForValue().setIfAbsent(redisKey,String.valueOf(DateTime.now().getMillis())); Boolean hasSuc = customRedisTemplate.opsForValue().setIfAbsent(redisKey, String.valueOf(DateTime.now().getMillis()));
if(hasSuc){//设置1天后过期 if (hasSuc) {//设置1天后过期
customRedisTemplate.expire(redisKey,1, TimeUnit.DAYS); customRedisTemplate.expire(redisKey, 1, TimeUnit.DAYS);
}else{ } else {
log.info("[预定记录迁移]乐观锁获取失败,该线程不执行任务。"); log.info("[预定记录迁移]乐观锁获取失败,该线程不执行任务。");
return Boolean.FALSE; return Boolean.FALSE;
} }
...@@ -387,19 +441,19 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -387,19 +441,19 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
vehicleBookRecords = mapper.getByPage4Month(params); vehicleBookRecords = mapper.getByPage4Month(params);
//复制相关随行物品关系 //复制相关随行物品关系
copyAccItemRel2His(vehicleBookRecords, accItemTbName); copyAccItemRel2His(vehicleBookRecords, accItemTbName);
if(CollectionUtils.isNotEmpty(vehicleBookRecords)){ if (CollectionUtils.isNotEmpty(vehicleBookRecords)) {
//插入数据到历史表 //插入数据到历史表
for(VehicleBookRecord vehicleBookRecord : vehicleBookRecords){ for (VehicleBookRecord vehicleBookRecord : vehicleBookRecords) {
VehicleBookRecordAndTbNameVo vehicleBookRecordAndTbNameVo = new VehicleBookRecordAndTbNameVo(); VehicleBookRecordAndTbNameVo vehicleBookRecordAndTbNameVo = new VehicleBookRecordAndTbNameVo();
BeanUtils.copyProperties(vehicleBookRecordAndTbNameVo,vehicleBookRecord); BeanUtils.copyProperties(vehicleBookRecordAndTbNameVo, vehicleBookRecord);
vehicleBookRecordAndTbNameVo.setTbName(tbName); vehicleBookRecordAndTbNameVo.setTbName(tbName);
mapper.insertHis(vehicleBookRecordAndTbNameVo); mapper.insertHis(vehicleBookRecordAndTbNameVo);
} }
} }
curPageNo++; curPageNo++;
log.info("【复制上月预定记录至历史表中】,当前复制页【"+curPageNo+"】,页大小【"+COPY_BATCH_SIZE+"】"); log.info("【复制上月预定记录至历史表中】,当前复制页【" + curPageNo + "】,页大小【" + COPY_BATCH_SIZE + "】");
}while(CollectionUtils.isNotEmpty(vehicleBookRecords)); } while (CollectionUtils.isNotEmpty(vehicleBookRecords));
log.info("复制上月预定记录至历史表中完成,总页数【"+(curPageNo-1)+"】"); log.info("复制上月预定记录至历史表中完成,总页数【" + (curPageNo - 1) + "】");
return Boolean.TRUE; return Boolean.TRUE;
} }
...@@ -408,7 +462,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -408,7 +462,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
* 删除上上月数据 * 删除上上月数据
*/ */
@Transactional @Transactional
public void delDataTheMonthBeforeLast(DateTime now){ public void delDataTheMonthBeforeLast(DateTime now) {
Integer effected = 0; Integer effected = 0;
Integer total = 0; Integer total = 0;
Map<String, Object> params = Maps.newHashMap(); Map<String, Object> params = Maps.newHashMap();
...@@ -420,58 +474,60 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -420,58 +474,60 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
List<Long> bookRecordIds = mapper.getIdInYearMothLimit(params); List<Long> bookRecordIds = mapper.getIdInYearMothLimit(params);
deleteAccItemRelByRecord(bookRecordIds); deleteAccItemRelByRecord(bookRecordIds);
effected = mapper.del4YearMoth(params); effected = mapper.del4YearMoth(params);
total+=effected; total += effected;
log.info("开始删除预定记录数据,删除总数【"+total+"】"); log.info("开始删除预定记录数据,删除总数【" + total + "】");
}while(effected!=0); } while (effected != 0);
log.info("删除预定记录数据完成"); log.info("删除预定记录数据完成");
} }
/** /**
* 删除随影订车记录的随行物品记录 * 删除随影订车记录的随行物品记录
*
* @param bookRecordIds * @param bookRecordIds
*/ */
private void deleteAccItemRelByRecord(List<Long> bookRecordIds){ private void deleteAccItemRelByRecord(List<Long> bookRecordIds) {
if(CollectionUtils.isEmpty(bookRecordIds)){ if (CollectionUtils.isEmpty(bookRecordIds)) {
return; return;
} }
Example example = new Example(BookRecordAccItem.class); Example example = new Example(BookRecordAccItem.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
criteria.andIn("bookRecordId",bookRecordIds); criteria.andIn("bookRecordId", bookRecordIds);
bookRecordAccItemMapper.deleteByExample(example); bookRecordAccItemMapper.deleteByExample(example);
} }
/** /**
* 复制相应预定记录的随行物品信息 * 复制相应预定记录的随行物品信息
* (注意了参数列表中的记录的历史年份必须属于当前月) * (注意了参数列表中的记录的历史年份必须属于当前月)
*
* @param vehicleBookRecords * @param vehicleBookRecords
*/ */
@Transactional @Transactional
public void copyAccItemRel2His(List<VehicleBookRecord> vehicleBookRecords,String accItemTbName){ public void copyAccItemRel2His(List<VehicleBookRecord> vehicleBookRecords, String accItemTbName) {
if(CollectionUtils.isEmpty(vehicleBookRecords)){ if (CollectionUtils.isEmpty(vehicleBookRecords)) {
return ; return;
} }
List<Long> recordIds = Lists.newArrayList(); List<Long> recordIds = Lists.newArrayList();
for(VehicleBookRecord vehicleBookRecord : vehicleBookRecords){ for (VehicleBookRecord vehicleBookRecord : vehicleBookRecords) {
recordIds.add(vehicleBookRecord.getId()); recordIds.add(vehicleBookRecord.getId());
} }
List<BookRecordAccItem> bookRecordAccItems = bookRecordAccItemMapper.getByRecords( List<BookRecordAccItem> bookRecordAccItems = bookRecordAccItemMapper.getByRecords(
ImmutableMap.of("bookRecordIds",recordIds,"tbName",TB_ACC_ITEM_NAME_REAL)); ImmutableMap.of("bookRecordIds", recordIds, "tbName", TB_ACC_ITEM_NAME_REAL));
if(CollectionUtils.isEmpty(bookRecordAccItems)){ if (CollectionUtils.isEmpty(bookRecordAccItems)) {
return; return;
} }
List<Map<String,Object>> bookRecordAccItemsTemp = Lists.newArrayList(); List<Map<String, Object>> bookRecordAccItemsTemp = Lists.newArrayList();
for(Integer index = 0;index <bookRecordAccItems.size();index ++){ for (Integer index = 0; index < bookRecordAccItems.size(); index++) {
bookRecordAccItemsTemp.add(ImmutableMap.of( bookRecordAccItemsTemp.add(ImmutableMap.of(
"id",bookRecordAccItems.get(index).getId(), "id", bookRecordAccItems.get(index).getId(),
"bookRecordId",bookRecordAccItems.get(index).getBookRecordId(), "bookRecordId", bookRecordAccItems.get(index).getBookRecordId(),
"accItemId",bookRecordAccItems.get(index).getAccItemId(), "accItemId", bookRecordAccItems.get(index).getAccItemId(),
"amount",bookRecordAccItems.get(index).getAmount() "amount", bookRecordAccItems.get(index).getAmount()
)); ));
if(index == COPY_BATCH_SIZE || index == bookRecordAccItems.size() -1){ if (index == COPY_BATCH_SIZE || index == bookRecordAccItems.size() - 1) {
bookRecordAccItemMapper.batchAdd2Tb(ImmutableMap.of( bookRecordAccItemMapper.batchAdd2Tb(ImmutableMap.of(
"list",bookRecordAccItemsTemp, "list", bookRecordAccItemsTemp,
"tbName",accItemTbName "tbName", accItemTbName
)); ));
bookRecordAccItemsTemp = Lists.newArrayList(); bookRecordAccItemsTemp = Lists.newArrayList();
} }
} }
...@@ -479,54 +535,56 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -479,54 +535,56 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
} }
public PageDataVO<VehicleRecordInfoVo> getListByParam(VehiclePlanDto vehiclePlanDto) { public PageDataVO<VehicleRecordInfoVo> getListByParam(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto); Query query = new Query(vehiclePlanDto);
PageDataVO<VehicleRecordInfoVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getByParam(query.getSuper())); PageDataVO<VehicleRecordInfoVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getByParam(query.getSuper()));
return pageDataVO; return pageDataVO;
} }
private String getTbNameNow(){ private String getTbNameNow() {
return TB_NAME_PREFIX+ DateTime.now().toString(YEAR_DATE_TIME_FORMATTER); return TB_NAME_PREFIX + DateTime.now().toString(YEAR_DATE_TIME_FORMATTER);
} }
/** /**
* 获取历史表名称 * 获取历史表名称
*
* @param year * @param year
* @return * @return
*/ */
private String getTbName(String year){ private String getTbName(String year) {
return TB_NAME_PREFIX+ year; return TB_NAME_PREFIX + year;
} }
private String getAccItemTbNameNow(){ private String getAccItemTbNameNow() {
return TB_ACC_ITEM_NAME_PREFIX+ DateTime.now().toString(YEAR_DATE_TIME_FORMATTER); return TB_ACC_ITEM_NAME_PREFIX + DateTime.now().toString(YEAR_DATE_TIME_FORMATTER);
} }
/** /**
* 获取历史表名称 * 获取历史表名称
*
* @param year * @param year
* @return * @return
*/ */
private String getAccItemTbName(String year){ private String getAccItemTbName(String year) {
return TB_ACC_ITEM_NAME_PREFIX+ year; return TB_ACC_ITEM_NAME_PREFIX + year;
} }
/** /**
* 创建当年相关表格 * 创建当年相关表格
*/ */
private void createTbIfNotExists(String tbName){ private void createTbIfNotExists(String tbName) {
mapper.createTbIfNotExists(tbName); mapper.createTbIfNotExists(tbName);
} }
private void createAccItemTbIfNotExists(String tbName){ private void createAccItemTbIfNotExists(String tbName) {
bookRecordAccItemMapper.createTbIfNotExists(tbName); bookRecordAccItemMapper.createTbIfNotExists(tbName);
} }
public List<Integer> dataCompany(String dataZone, String dataCompany) { public List<Integer> dataCompany(String dataZone, String dataCompany) {
List<BranchCompany> zoneCompanys = branchCompanyBiz.dataCompany(dataZone); List<BranchCompany> zoneCompanys = branchCompanyBiz.dataCompany(dataZone);
//((VehicleBiz)AopContext.currentProxy()).dataCompany(dataZone); //((VehicleBiz)AopContext.currentProxy()).dataCompany(dataZone);
List<Integer> zoneCompanyIds = zoneCompanys.parallelStream().map(BranchCompany::getId).collect(Collectors.toList()); List<Integer> zoneCompanyIds = zoneCompanys.parallelStream().map(BranchCompany::getId).collect(Collectors.toList());
if(StringUtils.isNotBlank(dataCompany)) { if (StringUtils.isNotBlank(dataCompany)) {
List<Integer> dataCompanyIds = Arrays.asList(dataCompany.split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()); List<Integer> dataCompanyIds = Arrays.asList(dataCompany.split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
zoneCompanyIds.addAll(dataCompanyIds); zoneCompanyIds.addAll(dataCompanyIds);
} }
...@@ -534,4 +592,18 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -534,4 +592,18 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
return zoneCompanyIds.parallelStream().distinct().collect(Collectors.toList()); return zoneCompanyIds.parallelStream().distinct().collect(Collectors.toList());
} }
public List<VehicleBookRecordVo> getData(List<VehicleBookRecordVo> data, Integer currentPage, Integer pageSize) {
int fromIndex = (currentPage - 1) * pageSize;
if (fromIndex >= data.size()) {
return Collections.emptyList();//空数组
}
if (fromIndex < 0) {
return Collections.emptyList();//空数组
}
int toIndex = currentPage * pageSize;
if (toIndex >= data.size()) {
toIndex = data.size();
}
return data.subList(fromIndex, toIndex);
}
} }
...@@ -50,6 +50,10 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, ...@@ -50,6 +50,10 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
return new PageInfo<>(mapper.selectByVehicleId(vehicleId)); return new PageInfo<>(mapper.selectByVehicleId(vehicleId));
} }
public VehicleDepartureLogVo getByRecordId(Long vehicleBookRecordId) {
return mapper.selectByBookRecordId(vehicleBookRecordId);
}
public VehicleDepartureStatisticDataVo statistic(String numberPlate) { public VehicleDepartureStatisticDataVo statistic(String numberPlate) {
Vehicle vehicle = vehicleMapper.selectByNumberPlate(numberPlate); Vehicle vehicle = vehicleMapper.selectByNumberPlate(numberPlate);
if (vehicle == null) { if (vehicle == null) {
......
...@@ -22,5 +22,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo ...@@ -22,5 +22,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
String selectDayByVehicleId(String vehicleId); String selectDayByVehicleId(String vehicleId);
VehicleDepartureLogVo selectByBookRecordId(Integer bookRecordId); VehicleDepartureLogVo selectByBookRecordId(Long bookRecordId);
} }
...@@ -209,6 +209,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -209,6 +209,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode()); bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode());
bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName); baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -225,6 +226,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -225,6 +226,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode()); bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
bookVehicleVo.setNotCheckTimeLegal(Boolean.FALSE);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName); baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -497,4 +499,11 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -497,4 +499,11 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
vehicleJobHandler.execute(month); vehicleJobHandler.execute(month);
return RestResponse.suc(); return RestResponse.suc();
} }
@GetMapping("/app/unauth/checkHourInfo")
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse checkHourInfo() {
return vehicleBookRecordBiz.checkDateInvalide();
}
} }
...@@ -367,7 +367,7 @@ ...@@ -367,7 +367,7 @@
where id = #{id} where id = #{id}
</select> </select>
<select id="getByVehicleId" parameterType="java.lang.String" <select id="selectByVehicleId" parameterType="java.lang.String"
resultType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo"> resultType="com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo">
SELECT v1.*,bc2.name retCompanyName from vehicle_book_record v1 SELECT v1.*,bc2.name retCompanyName from vehicle_book_record v1
LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id LEFT JOIN branch_company bc2 on v1.ret_company = bc2.id
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
order by create_time desc order by create_time desc
</select> </select>
<select id="selectByBookRecordId" parameterType="java.lang.Integer" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo"> <select id="selectByBookRecordId" parameterType="java.lang.Long" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo">
select vehicle_departure_log.* select vehicle_departure_log.*
from vehicle_departure_log from vehicle_departure_log
where vehicle_departure_log.book_record_id = #{id} where vehicle_departure_log.book_record_id = #{id}
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<association property="vehicleModel" column="model_id" <association property="vehicleModel" column="model_id"
select="com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"/> select="com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"/>
<association property="vehicleBookRecord" column="id" <association property="vehicleBookRecord" column="id"
select="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.getByVehicleId"/> select="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.selectByVehicleId"/>
</resultMap> </resultMap>
<resultMap id="vehicleModel" type="com.xxfc.platform.vehicle.pojo.VehicleAndModelInfoVo"> <resultMap id="vehicleModel" type="com.xxfc.platform.vehicle.pojo.VehicleAndModelInfoVo">
......
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