Commit 99a4281d authored by libin's avatar libin

Merge remote-tracking branch 'origin/dev' into dev

parents cb6b465f facbf060
...@@ -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
...@@ -66,6 +66,8 @@ public class UserMemberDTO { ...@@ -66,6 +66,8 @@ public class UserMemberDTO {
@ApiModelProperty(value = "有效期;0代表永久") @ApiModelProperty(value = "有效期;0代表永久")
private Long validTime; private Long validTime;
@Column(name = "member_name") @Column(name = "member_name")
@ApiModelProperty("会员名") @ApiModelProperty("会员名")
private String memberName; private String memberName;
......
...@@ -73,7 +73,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -73,7 +73,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
return; return;
} }
Integer userId = userMemberDTO.getUserId(); Integer userId = userMemberDTO.getUserId();
UserMemberVo userMemberVo = getMemberInfoByUserId(userId); UserMemberVo userMemberVo = getMemberInfoByUserId(userId);
BaseUserMember baseUserMember = new BaseUserMember(); BaseUserMember baseUserMember = new BaseUserMember();
BeanUtils.copyProperties(baseUserMember, userMemberDTO); BeanUtils.copyProperties(baseUserMember, userMemberDTO);
Integer freeDays = baseUserMember.getRentFreeDays(); Integer freeDays = baseUserMember.getRentFreeDays();
...@@ -106,6 +108,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -106,6 +108,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount); baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount);
baseUserMember.setTotalNumber(totalNumber); baseUserMember.setTotalNumber(totalNumber);
baseUserMember.setRentFreeDays(freeDays); baseUserMember.setRentFreeDays(freeDays);
getMyBiz().updateSelectiveById(baseUserMember); getMyBiz().updateSelectiveById(baseUserMember);
} }
AppUserVo userVo = detailBiz.getUserInfoById(userId); AppUserVo userVo = detailBiz.getUserInfoById(userId);
...@@ -212,42 +215,46 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -212,42 +215,46 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
/** /**
* 设置用户会员 * 设置用户会员
* *
* @param baseUserMemberVO * @param userMemberDTO
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void UpdateUserMember(BaseUserMemberVO baseUserMemberVO) throws InvocationTargetException, IllegalAccessException { public void UpdateUserMember(UserMemberDTO userMemberDTO) throws InvocationTargetException, IllegalAccessException {
Example exa = Example.builder(BaseUserMember.class).where(
WeekendSqls.<BaseUserMember>custom()
.andEqualTo(BaseUserMember::getUserId, baseUserMemberVO.getUserId())
).build();
List<BaseUserMember> baseUserMembers = mapper.selectByExample(exa);
BaseUserMember baseUserMember = new BaseUserMember();
BeanUtilsBean.getInstance().copyProperties(baseUserMember, baseUserMemberVO);
if (CollectionUtils.isEmpty(baseUserMembers)) { Integer userId = userMemberDTO.getUserId();
if (baseUserMemberVO.getMemberLevel() == null || baseUserMember.getValidTime() == null||baseUserMember.getValidTime()<0) { BaseUserMember baseUserMember = new BaseUserMember();
throw new BaseException("设置无效!无会员等级、会员有效期或会员有效期为负数!"); BeanUtils.copyProperties(baseUserMember, userMemberDTO);
} Integer freeDays = baseUserMember.getRentFreeDays() == null ? 0 : baseUserMember.getRentFreeDays();
baseUserMember.setCrtTime(System.currentTimeMillis()); Integer totalNumber = baseUserMember.getTotalNumber() == null ? 0 : baseUserMember.getTotalNumber();
baseUserMember.setIsDel(0); if (totalNumber < freeDays) {
baseUserMember.setPayCount(0); freeDays = totalNumber;
baseUserMember.setCardLeave(1); }
baseUserMember.setRecentRecharge(System.currentTimeMillis()); Integer buyCount = userMemberDTO.getBuyCount() == null ? 1:userMemberDTO.getBuyCount() ;
Integer buyCount = baseUserMember.getBuyCount() == null ? 0 : baseUserMember.getBuyCount(); UserMemberVo userMemberVo = getMemberInfoByUserId(userMemberDTO.getUserId());
baseUserMember.setBuyCount(buyCount + 1); if (userMemberVo == null) {
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setBuyCount(buyCount);
insertSelective(baseUserMember); insertSelective(baseUserMember);
return;
} else if (baseUserMembers.size() == 1) {
baseUserMember.setUpdTime(System.currentTimeMillis());
baseUserMember.setBuyCount(baseUserMembers.get(0).getBuyCount() + 1);
baseUserMember.setId(baseUserMembers.get(0).getId());
mapper.updateByPrimaryKeySelective(baseUserMember);
} else { } else {
throw new BaseException("错误!该账号有多条会员信息!"); baseUserMember.setId(userMemberVo.getId());
Integer number = userMemberVo.getTotalNumber() == null ? 0 : userMemberVo.getTotalNumber();
Integer days = userMemberVo.getRentFreeDays() == null ? 0 : userMemberVo.getRentFreeDays();
baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount);
number=(totalNumber-number)+number;
days=(freeDays-days)+days;
baseUserMember.setTotalNumber(number);
baseUserMember.setRentFreeDays(days);
getMyBiz().updateSelectiveById(baseUserMember);
}
AppUserVo userVo = detailBiz.getUserInfoById(userId);
if (userVo != null && (userVo.getIsMember() == null || userVo.getIsMember() == 0)) {
AppUserVo userVo1 = new AppUserVo();
userVo1.setId(userVo.getId());
userVo1.setUserid(userId);
userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1);
} }
} }
} }
\ No newline at end of file
...@@ -53,7 +53,12 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz, ...@@ -53,7 +53,12 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
@PutMapping("/setUserMember") @PutMapping("/setUserMember")
public ObjectRestResponse UpdateUserMember(@RequestBody UserMemberDTO userMemberDTO) public ObjectRestResponse UpdateUserMember(@RequestBody UserMemberDTO userMemberDTO)
throws Exception { throws Exception {
baseBiz.updUserMemberByUserId(userMemberDTO); if (userMemberDTO==null||userMemberDTO.getRentFreeDays()<0||userMemberDTO.getTotalNumber()<0) {
return ObjectRestResponse.createDefaultFail();
}
baseBiz.UpdateUserMember(userMemberDTO);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
} }
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;
} }
package com.xxfc.platform.order.pojo.order; package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.*;
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.vehicle.entity.VehicleUserLicense; import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
@Data @Data
...@@ -32,4 +30,17 @@ public class OrderListVo extends BaseOrder { ...@@ -32,4 +30,17 @@ public class OrderListVo extends BaseOrder {
private String endCompanyName; private String endCompanyName;
/**
* 是否是用户匹配公司
*/
private boolean userCompanyStatus = false;
/**
* 违章预备金
*/
private BigDecimal illegalReserve;
private List<OrderItem> items;
} }
...@@ -25,6 +25,12 @@ public class OrderPageVO extends BaseOrder { ...@@ -25,6 +25,12 @@ public class OrderPageVO extends BaseOrder {
*/ */
private String username; private String username;
private String startCompanyName;
private String endCompanyName;
private String telephone;
/** /**
* 是否是用户匹配公司 * 是否是用户匹配公司
*/ */
......
...@@ -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;
...@@ -38,6 +39,7 @@ import com.xxfc.platform.vehicle.entity.BranchCompany; ...@@ -38,6 +39,7 @@ import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense; import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -139,6 +141,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -139,6 +141,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
if(orderPageVo.getStatus() <= 3 && orderPageVo.getStatus() != 2 && orderPageVo.getStatus() != -1) { 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()); 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<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList()); List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
...@@ -159,23 +166,24 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -159,23 +166,24 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
getDriverInfo(orderPageVo); getDriverInfo(orderPageVo);
getUserLicense(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) { 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) { } 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();
...@@ -254,18 +262,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> { ...@@ -254,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();
......
...@@ -25,7 +25,10 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail; ...@@ -25,7 +25,10 @@ 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.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense; import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
...@@ -77,6 +80,9 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -77,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;
...@@ -179,10 +185,9 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -179,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<>());
} }
} }
...@@ -296,6 +301,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -296,6 +301,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
//根据订单号获取订单 //根据订单号获取订单
//查询列表数据 //查询列表数据
Query query = baseOrderBiz.initQuery(dto.getNo()); Query query = baseOrderBiz.initQuery(dto.getNo());
query.put("crtUser", null);
PageDataVO<OrderPageVO> page = PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper())); PageDataVO<OrderPageVO> page = PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper()));
OrderPageVO orderPageVO = page.getData().get(0); OrderPageVO orderPageVO = page.getData().get(0);
if(null == orderPageVO) { if(null == orderPageVO) {
...@@ -306,7 +312,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -306,7 +312,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
bo.setOrder(orderPageVO); bo.setOrder(orderPageVO);
bo.setBookVehicleVO(new BookVehicleVO(){{ bo.setBookVehicleVO(new BookVehicleVO(){{
setBookStartDate(DEFAULT_DATE_TIME_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(bo.getStartTime()), ZoneOffset.ofHours(8)))); 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)))); 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(){{ List<OrderAccompanyDTO> oads = JSONUtil.toList(JSONUtil.parseArray(orderItemBiz.selectOne(new OrderItem(){{
...@@ -315,9 +321,9 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -315,9 +321,9 @@ public class BackStageOrderController extends CommonBaseController implements Us
}}).getDetail()), OrderAccompanyDTO.class); }}).getDetail()), OrderAccompanyDTO.class);
bo.setAccompanyItems(oads); bo.setAccompanyItems(oads);
Long oldBookRecordId = bo.getBookRecordId(); Long oldBookRecordId = bo.getBookRecordId();
orderRentVehicleService.acquireVehicle(bo); orderRentVehicleService.acquireVehicle(bo, dto.getNumberPlate(), VehicleBookRecordStatus.APPROVE.getCode());
//如果成功则取消旧车的预约 //如果成功则取消旧车的预约
vehicleFeign.rentUnbookVehicle(oldBookRecordId); RestResponse<Integer> rentUnbookResponse = vehicleFeign.rentUnbookVehicle(oldBookRecordId);
//设置新的vehicleId 和 record //设置新的vehicleId 和 record
orderRentVehicleBiz.updateSelectiveByIdRe(new OrderRentVehicleDetail(){{ orderRentVehicleBiz.updateSelectiveByIdRe(new OrderRentVehicleDetail(){{
setId(bo.getId()); setId(bo.getId());
......
...@@ -188,7 +188,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -188,7 +188,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
bo.setAccompanyItems(oads); bo.setAccompanyItems(oads);
//获取可用车辆 //获取可用车辆
acquireVehicle(bo); acquireVehicle(bo, null, null);
OrderItem accompanyItem = orderItemBiz.initOrderItem(BigDecimal.ZERO, 1, "随车物品", null, ACCOMPANY); OrderItem accompanyItem = orderItemBiz.initOrderItem(BigDecimal.ZERO, 1, "随车物品", null, ACCOMPANY);
accompanyItem.setRealAmount(BigDecimal.ZERO); accompanyItem.setRealAmount(BigDecimal.ZERO);
...@@ -412,7 +412,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -412,7 +412,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
vo.setCostDetail(result); 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 rentVehicleBookDTO = BeanUtil.toBean(detail.getBookVehicleVO(), RentVehicleBookDTO.class);
rentVehicleBookDTO.setModelId(detail.getModelId()); rentVehicleBookDTO.setModelId(detail.getModelId());
...@@ -420,7 +420,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -420,7 +420,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rentVehicleBookDTO.setLiftCompany(detail.getStartCompanyId()); rentVehicleBookDTO.setLiftCompany(detail.getStartCompanyId());
rentVehicleBookDTO.setLiftAddr(detail.getStartAddr()); rentVehicleBookDTO.setLiftAddr(detail.getStartAddr());
rentVehicleBookDTO.setRetCompany(detail.getEndCompanyId()); rentVehicleBookDTO.setRetCompany(detail.getEndCompanyId());
// rentVehicleBookDTO.setOrderNo(detail.getO); rentVehicleBookDTO.setOrderNo(detail.getOrder().getNo());
rentVehicleBookDTO.setNumberPlate(numberPlate);
rentVehicleBookDTO.setStatus(status);
if(null != detail.getAccompanyItems()) { if(null != detail.getAccompanyItems()) {
rentVehicleBookDTO.setSelectedAccItem(detail.getAccompanyItems().parallelStream().collect(Collectors.toMap(OrderAccompanyDTO::getId, OrderAccompanyDTO::getNum))); rentVehicleBookDTO.setSelectedAccItem(detail.getAccompanyItems().parallelStream().collect(Collectors.toMap(OrderAccompanyDTO::getId, OrderAccompanyDTO::getNum)));
} }
......
...@@ -14,10 +14,15 @@ public class MQSenderController { ...@@ -14,10 +14,15 @@ public class MQSenderController {
private MQServiceBiZ mqServiceBiZ; private MQServiceBiZ mqServiceBiZ;
@GetMapping(value = "/sendMessage") @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); return mqServiceBiZ.sendMessage(exchange, routKey, json);
} }
@PostMapping(value = "/app/unauth/sendMessage")
public ObjectRestResponse sendPostMessage(@RequestBody String json) {
return mqServiceBiZ.sendMessage("","", json);
}
@PostMapping(value = "/sendMessage") @PostMapping(value = "/sendMessage")
@ResponseBody @ResponseBody
public ObjectRestResponse sendMessage(@RequestBody SendMsgDTO dto) { public ObjectRestResponse sendMessage(@RequestBody SendMsgDTO dto) {
......
...@@ -57,6 +57,31 @@ public enum BookType { ...@@ -57,6 +57,31 @@ public enum BookType {
this.desc = desc; 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){ public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code); return codeAndDesc.containsKey(code);
} }
......
...@@ -180,12 +180,26 @@ public class VehicleBookRecord { ...@@ -180,12 +180,26 @@ public class VehicleBookRecord {
*/ */
private String orderNo; private String orderNo;
/**
* 使用人姓名
*/
@Column(name = "vehicle_username") @Column(name = "vehicle_username")
private String vehicleUsername; private String vehicleUsername;
/**
* 使用人电话
*/
@Column(name = "vehicle_user_phone") @Column(name = "vehicle_user_phone")
private String vehicleUserPhone; private String vehicleUserPhone;
/**
* 保养项id
*/
@Column(name = "upkeep_ids") @Column(name = "upkeep_ids")
private String upkeepIds; private String upkeepIds;
/**
* 驳回理由
*/
@Column(name = "reject_remark")
private String rejectRemark;
} }
\ No newline at end of file
...@@ -108,4 +108,14 @@ public class BookVehicleVO { ...@@ -108,4 +108,14 @@ public class BookVehicleVO {
* book_record状态 * book_record状态
*/ */
private Integer status; private Integer status;
/**
* 驳回理由
*/
private String rejectRemark;
/**
* 不检查参数合法
*/
private Boolean notCheckTimeLegal;
} }
\ No newline at end of file
...@@ -60,6 +60,12 @@ public class RentVehicleBookDTO extends PageParam { ...@@ -60,6 +60,12 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty("停靠公司id") @ApiModelProperty("停靠公司id")
Integer parkBranchCompanyId; Integer parkBranchCompanyId;
@ApiModelProperty("指定车牌")
String numberPlate;
@ApiModelProperty("指定预约状态")
Integer status;
/** /**
* 随车物品id以及数量 List<Map<id,数量>> * 随车物品id以及数量 List<Map<id,数量>>
*/ */
......
...@@ -148,4 +148,6 @@ public class ResultVehicleVo { ...@@ -148,4 +148,6 @@ public class ResultVehicleVo {
* 收车时间 * 收车时间
*/ */
private Date receiveTime; private Date receiveTime;
private Integer modelId;
} }
\ No newline at end of file
...@@ -128,5 +128,9 @@ public class VehiclePageQueryVo { ...@@ -128,5 +128,9 @@ public class VehiclePageQueryVo {
*/ */
private Integer haveViolation; private Integer haveViolation;
/**
* 车型id
*/
private Integer modelId;
} }
...@@ -34,5 +34,13 @@ public class VehiclePlanDto extends PageParam { ...@@ -34,5 +34,13 @@ public class VehiclePlanDto extends PageParam {
private Integer zoneId; private Integer zoneId;
private List<Integer> companyIds; 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 ...@@ -59,4 +59,5 @@ public class AreaBiz extends BaseBiz<AreaMapper, Area> implements UserRestInterf
} }
} }
...@@ -81,6 +81,8 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -81,6 +81,8 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
@Autowired @Autowired
private VehicleBiz vehicleBiz; private VehicleBiz vehicleBiz;
/** /**
* 按主键获取公司 * 按主键获取公司
* *
...@@ -194,7 +196,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -194,7 +196,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
criteria.andIn(ID, userDTO.dataCompany2List()); criteria.andIn(ID, userDTO.dataCompany2List());
} }
} }
example.setOrderByClause("`id` asc"); example.setOrderByClause("`id` desc");
PageHelper.startPage(page, limit); PageHelper.startPage(page, limit);
PageInfo<BranchCompany> branchCompanyPageInfo = new PageInfo<>(mapper.selectByExample(example)); PageInfo<BranchCompany> branchCompanyPageInfo = new PageInfo<>(mapper.selectByExample(example));
return PageDataVO.pageInfo(branchCompanyPageInfo); return PageDataVO.pageInfo(branchCompanyPageInfo);
......
...@@ -3,10 +3,8 @@ package com.xxfc.platform.vehicle.biz; ...@@ -3,10 +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.*;
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.*;
...@@ -89,8 +87,10 @@ public class VehicleActiveService { ...@@ -89,8 +87,10 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
} }
//修改预约记录状态 //修改预约记录状态
VehicleBookRecord vehicleBookRecord = null;
if(departureVo.getBookRecordId() != null) { if(departureVo.getBookRecordId() != null) {
updateBookRecordStatus(departureVo.getBookRecordId(), 1); vehicleBookRecord = vehicleBookRecordBiz.selectById(departureVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 1);
} }
VehicleDepartureLogVo vehicleDepartureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(departureVo.getBookRecordId()); VehicleDepartureLogVo vehicleDepartureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(departureVo.getBookRecordId());
if(vehicleDepartureLogVo != null) { if(vehicleDepartureLogVo != null) {
...@@ -100,6 +100,11 @@ public class VehicleActiveService { ...@@ -100,6 +100,11 @@ public class VehicleActiveService {
departureLog.setUpdateTime(new Date()); departureLog.setUpdateTime(new Date());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode()); departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setDepartureRemark(departureVo.getRemark()); departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
}
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog); vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
} else { } else {
// 出车记录 // 出车记录
...@@ -111,6 +116,11 @@ public class VehicleActiveService { ...@@ -111,6 +116,11 @@ public class VehicleActiveService {
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode()); departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
departureLog.setBookRecordId(departureVo.getBookRecordId()); departureLog.setBookRecordId(departureVo.getBookRecordId());
departureLog.setDepartureRemark(departureVo.getRemark()); departureLog.setDepartureRemark(departureVo.getRemark());
if(vehicleBookRecord != null) {
departureLog.setUse(BookType.getByCode(vehicleBookRecord.getBookType()));
departureLog.setUser(vehicleBookRecord.getVehicleUsername());
departureLog.setUserTel(vehicleBookRecord.getVehicleUserPhone());
}
vehicleDepartureLogMapper.insert(departureLog); vehicleDepartureLogMapper.insert(departureLog);
} }
...@@ -128,6 +138,7 @@ public class VehicleActiveService { ...@@ -128,6 +138,7 @@ public class VehicleActiveService {
} }
} }
public String getVehicleStatus(Integer status, String vehicleId) { public String getVehicleStatus(Integer status, String vehicleId) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
switch (status) { switch (status) {
...@@ -195,7 +206,8 @@ public class VehicleActiveService { ...@@ -195,7 +206,8 @@ public class VehicleActiveService {
} }
if(arrivalVo.getBookRecordId() != null) { if(arrivalVo.getBookRecordId() != null) {
updateBookRecordStatus(arrivalVo.getBookRecordId(), 2); VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(arrivalVo.getBookRecordId());
updateBookRecordStatus(vehicleBookRecord, 2);
} }
...@@ -233,8 +245,8 @@ public class VehicleActiveService { ...@@ -233,8 +245,8 @@ public class VehicleActiveService {
} }
} }
public void updateBookRecordStatus(Integer bookRecordId, Integer type) { public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) {
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
if(vehicleBookRecord != null) { if(vehicleBookRecord != null) {
if(type == 1) { if(type == 1) {
vehicleBookRecord.setActualStartDate(new Date()); vehicleBookRecord.setActualStartDate(new Date());
......
...@@ -413,6 +413,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -413,6 +413,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName); log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName);
//检查车辆信息是否合法 //检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicleId()); 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(); 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);
...@@ -422,7 +425,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -422,7 +425,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月 if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH); 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()){ for(Map.Entry<String,List<String>> entry:yearMonthAndDate.entrySet()){
Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map); Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map);
if(Boolean.FALSE.equals(rsEach)){ if(Boolean.FALSE.equals(rsEach)){
...@@ -526,7 +529,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -526,7 +529,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @return * @return
*/ */
@Transactional @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 { try {
//获取相关申请记录 //获取相关申请记录
VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId); VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
...@@ -550,6 +553,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -550,6 +553,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
updateParam.put("reviewerApply",operatorId); updateParam.put("reviewerApply",operatorId);
updateParam.put("reviewerNameApply",userName); updateParam.put("reviewerNameApply",userName);
updateParam.put("statusCondition",VehicleBookRecordStatus.APPLY.getCode()); updateParam.put("statusCondition",VehicleBookRecordStatus.APPLY.getCode());
if(StringUtils.isNotBlank(rejectRemark)) {
updateParam.put("rejectRemark",rejectRemark);
}
Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam); Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam);
if(effected == 0){//修改失败,手动回滚 if(effected == 0){//修改失败,手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
...@@ -575,7 +581,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -575,7 +581,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
* @return * @return
*/ */
@Transactional @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); VehicleBookRecord vehicleBookRecord = vehicleBookRecordBiz.selectById(bookRecordId);
//申请记录验证 //申请记录验证
...@@ -589,6 +595,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -589,6 +595,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//转换为相应取消预定参数 //转换为相应取消预定参数
BookVehicleVO bookVehicleVo = new BookVehicleVO(); BookVehicleVO bookVehicleVo = new BookVehicleVO();
BeanUtils.copyProperties(bookVehicleVo,vehicleBookRecord); BeanUtils.copyProperties(bookVehicleVo,vehicleBookRecord);
bookVehicleVo.setNotCheckTimeLegal(notCheckTimeLegal);
bookVehicleVo.setBookStartDate(null); bookVehicleVo.setBookStartDate(null);
bookVehicleVo.setBookEndDate(null); bookVehicleVo.setBookEndDate(null);
bookVehicleVo.setUnbookStartDate(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DATE_TIME_FORMATTER)); bookVehicleVo.setUnbookStartDate(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DATE_TIME_FORMATTER));
...@@ -605,6 +612,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -605,6 +612,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
updateParam.put("reviewerCancel",operatorId); updateParam.put("reviewerCancel",operatorId);
updateParam.put("reviewerNameCancel",userName); updateParam.put("reviewerNameCancel",userName);
updateParam.put("statusCondition",VehicleBookRecordStatus.APPROVE.getCode()); updateParam.put("statusCondition",VehicleBookRecordStatus.APPROVE.getCode());
if(StringUtils.isNotBlank(rejectRemark)) {
updateParam.put("rejectRemark",rejectRemark);
}
Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam); Integer effected = vehicleBookRecordBiz.changeRecordStatus(updateParam);
if(effected == 0){//修改失败,手动回滚 if(effected == 0){//修改失败,手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
...@@ -800,7 +810,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -800,7 +810,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(), 现在取消/拒绝 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);
} }
...@@ -837,28 +848,36 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -837,28 +848,36 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
Integer andRsOperationFactor = getBitOpratorFactor4UnBooked(unbookDates);//预定的相关或运算因子,当前月份没有预定记录时同时也是结果 Integer andRsOperationFactor = getBitOpratorFactor4UnBooked(unbookDates);//预定的相关或运算因子,当前月份没有预定记录时同时也是结果
params.put("andRsOperationFactor", params.put("andRsOperationFactor",
andRsOperationFactor); andRsOperationFactor);
if(hourInfo.size() == 1) { //取消当天的小时,不取消当天的预定 return unbookHourInfo(vehicleId, hourInfo, params);
return unbookHourInfo(vehicleId, hourInfo);
} else {
Integer effected = vehicleBookInfoMapper.updateBookedInfo(params);
return unbookHourInfo(vehicleId, hourInfo);
}
} }
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()) { for (Map.Entry<String, Integer> entry : hourInfo.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto(); VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey()); vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setVehicleId(vehicleId); vehicleBookHourInfoDto.setVehicleId(vehicleId);
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto); List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) { if (vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
vehicleBookHourInfos.get(0).setBookedHour((vehicleBookHourInfos.get(0).getBookedHour() & ~entry.getValue())); if((vehicleBookHourInfos.get(0).getBookedHour() | 0) == 0) {
int effect = vehicleBookHourInfoBiz.updateByIdRe(vehicleBookHourInfos.get(0)); if(!flag) {
if (effect < 1) { Integer effected = vehicleBookInfoMapper.updateBookedInfo(params);
return Boolean.FALSE; if (effected < 1) {
} else { return Boolean.FALSE;
continue; } 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) {
return Boolean.FALSE;
} else {
continue;
}
}
} else { } else {
return Boolean.FALSE; return Boolean.FALSE;
} }
...@@ -1034,6 +1053,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1034,6 +1053,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//处理预定日期相关参数 //处理预定日期相关参数
adjustBookedInfoParam(params,vehiclePageQueryVo); adjustBookedInfoParam(params,vehiclePageQueryVo);
params.get("yearMonthAndParam"); params.get("yearMonthAndParam");
if(vehiclePageQueryVo.getModelId() == null) {
params.remove("modelId");
}
PageHelper.startPage(pageNo,pageSize); PageHelper.startPage(pageNo,pageSize);
List<ResultVehicleVo> vehicles = mapper.getByPage(params); List<ResultVehicleVo> vehicles = mapper.getByPage(params);
PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles); PageInfo<ResultVehicleVo> vehiclePageInfo = new PageInfo<>(vehicles);
...@@ -1094,8 +1116,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1094,8 +1116,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if(StringUtils.isNotBlank(dto.getStartDate())&& if(StringUtils.isNotBlank(dto.getStartDate())&&
StringUtils.isNotBlank(dto.getEndDate())) { StringUtils.isNotBlank(dto.getEndDate())) {
notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(), notBookedDates = convertDatePeriod2List(dto.getStartDate(),
dto.getEndDateExtend()); dto.getEndDate());
} }
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月) //若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
......
...@@ -31,7 +31,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -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 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 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"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null; Date startDate = null;
Date endDate = null; Date endDate = null;
...@@ -43,11 +43,13 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -43,11 +43,13 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
} }
//判定时间是否合法 //判定时间是否合法
if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) { if(!Boolean.TRUE.equals(notCheckTimeLegal)) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY); if (bookStartDate.compareTo(DateTime.now().toString(DEFAULT_DATE_TIME_FORMATTER)) < 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
} }
if (bookStartDate.compareTo(bookEndDate) > 0) { if (bookStartDate.compareTo(bookEndDate) > 0) {
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY); throw new BaseException(ResultCode.END_TIME_FROM_TODAY);
} }
Map<String, Integer> predictableHours = Maps.newHashMap(); Map<String, Integer> predictableHours = Maps.newHashMap();
//预定开始小时 //预定开始小时
...@@ -146,7 +148,7 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V ...@@ -146,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 | 31; Integer a = b | 0;
System.out.println(a); System.out.println(a);
} }
......
...@@ -30,6 +30,7 @@ import org.apache.commons.beanutils.BeanUtils; ...@@ -30,6 +30,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 +41,7 @@ import org.springframework.stereotype.Service; ...@@ -40,10 +41,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;
...@@ -76,30 +74,32 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -76,30 +74,32 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
VehicleUpkeepService vehicleUpkeepService; VehicleUpkeepService vehicleUpkeepService;
@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 +110,14 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -110,14 +110,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 +125,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -125,7 +125,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 +143,23 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -143,23 +143,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,58 +167,63 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -167,58 +167,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);
if(vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 2) { Query query = new Query(vehicleBookRecordQueryVo);
Query query2 = new Query(vehicleBookRecordQueryVo); if (vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 2) {
List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query2.getSuper()); List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query.getSuper());
removeStatus2(list); removeStatus2(list);
PageHelper.startPage(pageNo, pageSize);
PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list); PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list);
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);
} }
Query query = new Query(vehicleBookRecordQueryVo);
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);
...@@ -226,22 +231,22 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -226,22 +231,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());
...@@ -250,10 +255,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -250,10 +255,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();
...@@ -261,38 +266,39 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -261,38 +266,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);
...@@ -306,29 +312,30 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -306,29 +312,30 @@ 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;
} }
...@@ -339,7 +346,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -339,7 +346,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
* 每年一张表 * 每年一张表
*/ */
@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();//当前获取的时间为标准
...@@ -349,7 +356,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -349,7 +356,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());
} }
...@@ -360,15 +367,15 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -360,15 +367,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;
} }
...@@ -386,19 +393,19 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -386,19 +393,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;
} }
...@@ -407,7 +414,7 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -407,7 +414,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();
...@@ -419,58 +426,60 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -419,58 +426,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();
} }
} }
...@@ -478,54 +487,56 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -478,54 +487,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);
} }
...@@ -533,4 +544,18 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -533,4 +544,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);
}
} }
...@@ -6,11 +6,14 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; ...@@ -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.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; 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.BranchCompanyBiz;
import com.xxfc.platform.vehicle.biz.VehicleBiz; import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.common.BaseController; import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.Area;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.BranchCompanyVo; import com.xxfc.platform.vehicle.pojo.BranchCompanyVo;
import com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
...@@ -49,6 +52,9 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> { ...@@ -49,6 +52,9 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
@Autowired @Autowired
private UserAuthConfig userAuthConfig; private UserAuthConfig userAuthConfig;
@Autowired
private AreaBiz areaBiz;
@RequestMapping(value ="/page",method = RequestMethod.GET) @RequestMapping(value ="/page",method = RequestMethod.GET)
public RestResponse<PageDataVO<BranchCompany>> page(@RequestParam Integer page, @RequestParam Integer limit, 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 addrProvince, @RequestParam(required = false) Integer addrCity,
...@@ -89,8 +95,16 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> { ...@@ -89,8 +95,16 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
} }
@RequestMapping(value ="",method = RequestMethod.POST) @RequestMapping(value ="",method = RequestMethod.POST)
public RestResponse<Integer> add(@RequestBody BranchCompanyVo branchCompanyVo) { public ObjectRestResponse<Integer> add(@RequestBody BranchCompanyVo branchCompanyVo) {
return RestResponse.data(baseBiz.add(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) @RequestMapping(value ="/app/unauth/getByZone",method = RequestMethod.GET)
...@@ -113,9 +127,17 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> { ...@@ -113,9 +127,17 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
} }
@RequestMapping(value ="",method = RequestMethod.PUT) @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); baseBiz.update(branchCompany);
return RestResponse.sucResponse(); return ObjectRestResponse.succ();
} }
@RequestMapping(value ="/{id}",method = RequestMethod.DELETE) @RequestMapping(value ="/{id}",method = RequestMethod.DELETE)
......
...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.rest; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; 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.UserFeign;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface; import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
...@@ -32,8 +33,7 @@ import java.time.ZoneOffset; ...@@ -32,8 +33,7 @@ import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.HashSet; import java.util.HashSet;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.DATE_TIME_LINE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.*;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP; import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME; import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
...@@ -70,7 +70,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -70,7 +70,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约 //默认USER_APP 预约
Integer operatorId = USER_APP; Integer operatorId = USER_APP;
String userName = USER_APP_NAME; 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);
} }
/** /**
...@@ -86,7 +86,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -86,7 +86,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约 //默认USER_APP 预约
Integer operatorId = USER_APP; Integer operatorId = USER_APP;
String userName = USER_APP_NAME; String userName = USER_APP_NAME;
return baseBiz.unbookVehicle4Employee(operatorId, bookRecordId, userName); return baseBiz.unbookVehicle4Employee(operatorId, bookRecordId, userName,null, Boolean.TRUE);
} }
/** /**
...@@ -102,7 +102,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -102,7 +102,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约 //默认USER_APP 预约
Integer operatorId = USER_APP; Integer operatorId = USER_APP;
String userName = USER_APP_NAME; 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);
} }
/** /**
...@@ -152,16 +152,25 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -152,16 +152,25 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//默认USER_APP 预约 //默认USER_APP 预约
Integer operatorId = USER_APP; Integer operatorId = USER_APP;
String userName = dto.getUserName(); String userName = dto.getUserName();
//BaseContextHandler.getName(); String bookVehicleId;
dto.setLimit(1); if(StrUtil.isNotBlank(dto.getNumberPlate())) {
dto.setPage(1); Vehicle vehicle = vehicleBiz.selectOne(new Vehicle(){{
dto.setParkBranchCompanyId(dto.getLiftCompany()); setNumberPlate(dto.getNumberPlate());
//查询可车辆信息 setIsDel(SYS_FALSE);
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if (pageDataVO.getData().size() <= 0) {
throw new BaseException(ResultCode.NOTEXIST_CODE, new HashSet<String>(){{
add("可用车辆不存在");
}}); }});
bookVehicleId = vehicle.getId();
}else {
dto.setLimit(1);
dto.setPage(1);
dto.setParkBranchCompanyId(dto.getLiftCompany());
//查询可车辆信息
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if (pageDataVO.getData().size() <= 0) {
throw new BaseException(ResultCode.NOTEXIST_CODE, new HashSet<String>(){{
add("可用车辆不存在");
}});
}
bookVehicleId = pageDataVO.getData().get(0).getId();
} }
//判断是否为今天,如果是则设置为一分钟后开始 //判断是否为今天,如果是则设置为一分钟后开始
if(DateUtil.today().equals(dto.getBookStartDate())) { if(DateUtil.today().equals(dto.getBookStartDate())) {
...@@ -173,8 +182,12 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -173,8 +182,12 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
dto.setBookEndDate(dto.getBookEndDate()+ " 23:59:59"); dto.setBookEndDate(dto.getBookEndDate()+ " 23:59:59");
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class); BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
bookVehicleVo.setBookType(BookType.USER_RENT.getCode()); bookVehicleVo.setBookType(BookType.USER_RENT.getCode());
bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId()); bookVehicleVo.setVehicleId(bookVehicleId);
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode()); if(null != dto.getStatus()) {
bookVehicleVo.setStatus(dto.getStatus());
}else {
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
}
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle(operatorId, bookVehicleVo, userName); VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return ObjectRestResponse.succ(vehicleBookRecord); return ObjectRestResponse.succ(vehicleBookRecord);
} }
......
...@@ -46,7 +46,6 @@ public class VehicleActiveController { ...@@ -46,7 +46,6 @@ public class VehicleActiveController {
@PostMapping("small/departure") @PostMapping("small/departure")
@IgnoreUserToken @IgnoreUserToken
public RestResponse departureBySmall(@RequestBody VehicleDepartureVo departureVo) { public RestResponse departureBySmall(@RequestBody VehicleDepartureVo departureVo) {
if (departureVo == null || departureVo.getVehicleId() == null if (departureVo == null || departureVo.getVehicleId() == null
|| departureVo.getMileage() == null || departureVo.getDepartureBranchCompanyId() == null || departureVo.getMileage() == null || departureVo.getDepartureBranchCompanyId() == null
|| departureVo.getExpectArrivalBranchCompanyId() == null) { || departureVo.getExpectArrivalBranchCompanyId() == null) {
......
package com.xxfc.platform.vehicle.rest; package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONException;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
...@@ -10,7 +9,6 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; ...@@ -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.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.context.BaseContextHandler; import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
...@@ -20,20 +18,17 @@ import com.xxfc.platform.vehicle.biz.*; ...@@ -20,20 +18,17 @@ import com.xxfc.platform.vehicle.biz.*;
import com.xxfc.platform.vehicle.common.BaseController; import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException; import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus; import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo; 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.jobhandler.VehicleJobHandler;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto; import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
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;
...@@ -43,14 +38,10 @@ import org.springframework.web.bind.annotation.*; ...@@ -43,14 +38,10 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
@RestController @RestController
@RequestMapping("/vehicleInfo") @RequestMapping("/vehicleInfo")
@Slf4j @Slf4j
...@@ -141,7 +132,6 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -141,7 +132,6 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
return RestResponse.data(baseBiz.getByPageNotAllData(vehiclePageQueryVo, companyList)); return RestResponse.data(baseBiz.getByPageNotAllData(vehiclePageQueryVo, companyList));
} }
} }
return RestResponse.data(baseBiz.getByPage(vehiclePageQueryVo)); return RestResponse.data(baseBiz.getByPage(vehiclePageQueryVo));
} catch (JSONException ex) { } catch (JSONException ex) {
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode()); return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
...@@ -218,7 +208,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -218,7 +208,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
public RestResponse<Integer> applyVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception { public RestResponse<Integer> applyVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
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.APPROVE.getCode());
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName); baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -250,21 +240,21 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -250,21 +240,21 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId) throws Exception { public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); 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 * @return
*/ */
@RequestMapping(value = "/book/4employee/reject/{bookRecordId}", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/reject", method = RequestMethod.PUT)
@ApiOperation(value = "拒绝预定车辆") @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()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); 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 ...@@ -284,15 +274,15 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
/** /**
* 取消车辆预订 * 取消车辆预订
* *
* @param bookRecordId * @param
* @return * @return
*/ */
@RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE) @RequestMapping(value = "/unbook/4employee", method = RequestMethod.DELETE)
@ApiOperation(value = "取消预定车辆") @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()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); 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) @RequestMapping(value = "/bookedRecord/{bookEndDate}/{id}", method = RequestMethod.GET)
......
...@@ -47,7 +47,9 @@ ...@@ -47,7 +47,9 @@
<if test="haveViolation != null"> <if test="haveViolation != null">
have_violation =#{haveViolation}, have_violation =#{haveViolation},
</if> </if>
<if test="rejectRemark != null">
reject_remark = #{rejectRemark},
</if>
`status` = #{status} `status` = #{status}
where id = #{id} and `status` = #{statusCondition} where id = #{id} and `status` = #{statusCondition}
</update> </update>
...@@ -365,7 +367,7 @@ ...@@ -365,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
......
...@@ -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">
...@@ -70,6 +70,7 @@ ...@@ -70,6 +70,7 @@
v.manufacturer, v.manufacturer,
v.receive_time, v.receive_time,
v.update_time, v.update_time,
v.model_id,
v.mileage_last_update as mileage v.mileage_last_update as mileage
<if test=" yearMonthAndParam != null "> <if test=" yearMonthAndParam != null ">
,vbi.booked_date ,vbi.booked_date
...@@ -92,6 +93,9 @@ ...@@ -92,6 +93,9 @@
<if test="mRangeDateEnd !=null"> <if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd} and v.maintenance_date &lt;= #{mRangeDateEnd}
</if> </if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="mRangeDateStart !=null"> <if test="mRangeDateStart !=null">
and v.maintenance_date &gt;= #{mRangeDateStart} and v.maintenance_date &gt;= #{mRangeDateStart}
</if> </if>
...@@ -202,6 +206,7 @@ ...@@ -202,6 +206,7 @@
v.manufacturer, v.manufacturer,
v.receive_time, v.receive_time,
v.update_time, v.update_time,
v.model_id,
v.mileage_last_update as mileage v.mileage_last_update as mileage
<if test=" yearMonthAndParam !=null "> <if test=" yearMonthAndParam !=null ">
,vbi.booked_date ,vbi.booked_date
...@@ -245,6 +250,9 @@ ...@@ -245,6 +250,9 @@
<if test="mRangeDateEnd !=null"> <if test="mRangeDateEnd !=null">
and v.maintenance_date &lt;= #{mRangeDateEnd} and v.maintenance_date &lt;= #{mRangeDateEnd}
</if> </if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="mRangeDateStart !=null"> <if test="mRangeDateStart !=null">
and v.maintenance_date &gt;= #{mRangeDateStart} and v.maintenance_date &gt;= #{mRangeDateStart}
</if> </if>
...@@ -389,6 +397,12 @@ ...@@ -389,6 +397,12 @@
<if test="zoneId !=null"> <if test="zoneId !=null">
and bc2.zone_id = #{zoneId} and bc2.zone_id = #{zoneId}
</if> </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 and v1.is_del != 1
</where> </where>
</select> </select>
...@@ -412,6 +426,9 @@ ...@@ -412,6 +426,9 @@
#{id} #{id}
</foreach> </foreach>
</if> </if>
<if test="modelId != null and modelId != ''">
and v1.model_id = #{modelId}
</if>
and v1.is_del != 1 and v1.is_del != 1
</where> </where>
ORDER BY parkCompanyName ORDER BY parkCompanyName
...@@ -490,6 +507,9 @@ ...@@ -490,6 +507,9 @@
#{id} #{id}
</foreach> </foreach>
</if> </if>
<if test="modelId != null and modelId != ''">
and v2.model_id = #{modelId}
</if>
and v2.is_del != 1 and v2.is_del != 1
</where> </where>
</select> </select>
......
...@@ -58,6 +58,9 @@ ...@@ -58,6 +58,9 @@
<if test="status != null"> <if test="status != null">
and v.status = #{status} and v.status = #{status}
</if> </if>
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="companyIds != null and companyIds.size > 0"> <if test="companyIds != null and companyIds.size > 0">
and v.park_branch_company_id in and v.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")"> <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