package com.doumee.service.business.impl;
|
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.DESUtil;
|
import com.doumee.core.utils.DateUtil;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.dao.business.ApproveMapper;
|
import com.doumee.dao.business.CarUseBookMapper;
|
import com.doumee.dao.business.CarsMapper;
|
import com.doumee.dao.business.join.ApproveJoinMapper;
|
import com.doumee.dao.business.join.CarUseBookJoinMapper;
|
import com.doumee.dao.business.model.*;
|
import com.doumee.dao.business.vo.DateIntervalVO;
|
import com.doumee.dao.system.model.SystemDictData;
|
import com.doumee.dao.system.model.SystemUser;
|
import com.doumee.service.business.ApproveService;
|
import com.doumee.service.business.CarUseBookService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.time.LocalDateTime;
|
import java.time.ZoneId;
|
import java.time.format.DateTimeFormatter;
|
import java.time.temporal.ChronoUnit;
|
import java.util.Date;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
/**
|
* 车辆_用车申请信息表Service实现
|
* @author 江蹄蹄
|
* @since 2024/04/28 16:06
|
*/
|
@Service
|
public class CarUseBookServiceImpl implements CarUseBookService {
|
|
@Autowired
|
private CarUseBookMapper carUseBookMapper;
|
|
@Autowired
|
private CarUseBookJoinMapper carUseBookJoinMapper;
|
|
@Autowired
|
private CarsMapper carsMapper;
|
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
|
@Autowired
|
private ApproveJoinMapper approveJoinMapper;
|
|
@Autowired
|
private ApproveService approveService;
|
|
|
@Override
|
public Integer create(CarUseBook carUseBook) {
|
if(Objects.isNull(carUseBook)
|
|| Objects.isNull(carUseBook.getCarId())
|
|| Objects.isNull(carUseBook.getStartTime())
|
|| Objects.isNull(carUseBook.getEndTime())
|
|| Objects.isNull(carUseBook.getCreator())
|
|| Objects.isNull(carUseBook.getMemberId())
|
|| Objects.isNull(carUseBook.getPlanUseDate())
|
|| Objects.isNull(carUseBook.getType())
|
|| StringUtils.isEmpty(carUseBook.getMemberIds())
|
|| StringUtils.isEmpty(carUseBook.getMemberNames())
|
|| StringUtils.isEmpty(carUseBook.getContent())
|
|| StringUtils.isEmpty(carUseBook.getAddr())
|
){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
carUseBook.setStatus(Constants.ZERO);
|
carUseBook.setCreateDate(new Date());
|
Cars cars = carsMapper.selectById(carUseBook.getCarId());
|
if(Objects.isNull(cars)||!cars.getType().equals(Constants.ONE)){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"车辆信息异常");
|
}
|
//查询车辆提交时间是否存在冲突的预约记录
|
List<CarUseBook> carUseBookList = carUseBookJoinMapper.selectJoinList(CarUseBook.class,
|
new MPJLambdaWrapper<CarUseBook>()
|
.selectAll(CarUseBook.class)
|
.selectAs(Member::getName,CarUseBook::getMemberName)
|
.selectAs(Member::getPhone,CarUseBook::getMemberMobile)
|
.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
|
.eq(CarUseBook::getId,carUseBook.getCarId())
|
.in(CarUseBook::getStatus,0,1,2)
|
.and(i->i.and(j->j.lt(CarUseBook::getStartTime,carUseBook.getStartTime()).gt(CarUseBook::getStartTime,carUseBook.getStartTime()))
|
.or()
|
.and(j->j.lt(CarUseBook::getEndTime,carUseBook.getEndTime()).gt(CarUseBook::getEndTime,carUseBook.getStartTime()))
|
.or()
|
.and(j->j.gt(CarUseBook::getStartTime,carUseBook.getStartTime()).lt(CarUseBook::getEndTime,carUseBook.getEndTime()))
|
.or()
|
.and(j->j.lt(CarUseBook::getStartTime,carUseBook.getStartTime()).gt(CarUseBook::getEndTime,carUseBook.getEndTime()))
|
)
|
);
|
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carUseBookList)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在车辆预约时间与已预约时间冲突~");
|
}
|
carUseBookMapper.insert(carUseBook);
|
//用车申请 审批记录创建
|
approveService.createApproveFlow(carUseBook.getType()==0?3:4,carUseBook.getId(),carUseBook.getMemberId());
|
return carUseBook.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
carUseBookMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(CarUseBook carUseBook) {
|
UpdateWrapper<CarUseBook> deleteWrapper = new UpdateWrapper<>(carUseBook);
|
carUseBookMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
carUseBookMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void updateById(CarUseBook carUseBook) {
|
carUseBookMapper.updateById(carUseBook);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<CarUseBook> carUseBooks) {
|
if (CollectionUtils.isEmpty(carUseBooks)) {
|
return;
|
}
|
for (CarUseBook carUseBook: carUseBooks) {
|
this.updateById(carUseBook);
|
}
|
}
|
|
/**
|
*
|
* @param id 主键
|
* @param memberId
|
* @return
|
*/
|
@Override
|
public CarUseBook findById(Integer id,Integer memberId) {
|
MPJLambdaWrapper<CarUseBook> queryWrapper = new MPJLambdaWrapper<>();
|
queryWrapper.selectAll(CarUseBook.class);
|
queryWrapper.select("t1.name",CarUseBook::getMemberName);
|
queryWrapper.select("t1.phone",CarUseBook::getMemberPhone);
|
queryWrapper.select("t2.name",CarUseBook::getDriverName);
|
queryWrapper.select("t2.phone",CarUseBook::getDriverPhone);
|
queryWrapper.select("t4.company_name_path",CarUseBook::getCompanyName);
|
queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
|
.leftJoin(Member.class,Member::getId,CarUseBook::getDriverId)
|
.leftJoin("company t4 on t1.company_id=t4.id")
|
.eq(CarUseBook::getId,id)
|
.last("limit 1" );
|
CarUseBook model = carUseBookMapper.selectJoinOne(CarUseBook.class,queryWrapper);
|
model.setApproveDateVO(
|
approveService.arrangeApprovedData(id,
|
model.getType().equals(Constants.ZERO)?3:4,
|
memberId)
|
);
|
return model;
|
}
|
|
@Override
|
public CarUseBook findOne(CarUseBook carUseBook) {
|
QueryWrapper<CarUseBook> wrapper = new QueryWrapper<>(carUseBook);
|
return carUseBookMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<CarUseBook> findList(CarUseBook carUseBook) {
|
QueryWrapper<CarUseBook> wrapper = new QueryWrapper<>(carUseBook);
|
return carUseBookMapper.selectList(wrapper);
|
}
|
|
@Override
|
public PageData<CarUseBook> findPage(PageWrap<CarUseBook> pageWrap) {
|
IPage<CarUseBook> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
MPJLambdaWrapper<CarUseBook> queryWrapper = new MPJLambdaWrapper<>();
|
Utils.MP.blankToNull(pageWrap.getModel());
|
pageWrap.getModel().setIsdeleted(Constants.ZERO);
|
queryWrapper.selectAll(CarUseBook.class);
|
queryWrapper.select("t1.name",CarUseBook::getMemberName);
|
queryWrapper.select("t1.phone",CarUseBook::getMemberPhone);
|
queryWrapper.select("t2.name",CarUseBook::getDriverName);
|
queryWrapper.select("t2.phone",CarUseBook::getDriverPhone);
|
queryWrapper.select("t4.company_name_path",CarUseBook::getCompanyName);
|
queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
|
.leftJoin(Member.class,Member::getId,CarUseBook::getDriverId)
|
.leftJoin("company t4 on t1.company_id=t4.id");
|
queryWrapper
|
.eq(pageWrap.getModel().getId() != null, CarUseBook::getId, pageWrap.getModel().getId())
|
.eq(pageWrap.getModel().getCreator() != null, CarUseBook::getCreator, pageWrap.getModel().getCreator())
|
.ge(pageWrap.getModel().getCreateDate() != null, CarUseBook::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
|
.le(pageWrap.getModel().getCreateDate() != null, CarUseBook::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
|
.eq(pageWrap.getModel().getEditor() != null, CarUseBook::getEditor, pageWrap.getModel().getEditor())
|
.ge(pageWrap.getModel().getEditDate() != null, CarUseBook::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
|
.le(pageWrap.getModel().getEditDate() != null, CarUseBook::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
|
.eq(pageWrap.getModel().getIsdeleted() != null, CarUseBook::getIsdeleted, pageWrap.getModel().getIsdeleted())
|
.eq(pageWrap.getModel().getRemark() != null, CarUseBook::getRemark, pageWrap.getModel().getRemark())
|
.like(pageWrap.getModel().getCarCode() != null, CarUseBook::getCarCode, pageWrap.getModel().getCarCode())
|
.eq(pageWrap.getModel().getCarId() != null, CarUseBook::getCarId, pageWrap.getModel().getCarId())
|
.ge(pageWrap.getModel().getStartTime() != null, CarUseBook::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTime()))
|
.le(pageWrap.getModel().getStartTime() != null, CarUseBook::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTime()))
|
.ge(pageWrap.getModel().getEndTime() != null, CarUseBook::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTime()))
|
.le(pageWrap.getModel().getEndTime() != null, CarUseBook::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTime()))
|
.eq(pageWrap.getModel().getPlanUseDate() != null, CarUseBook::getPlanUseDate, pageWrap.getModel().getPlanUseDate())
|
.eq(pageWrap.getModel().getStatus() != null, CarUseBook::getStatus, pageWrap.getModel().getStatus())
|
.ge(pageWrap.getModel().getCheckDate() != null, CarUseBook::getCheckDate, Utils.Date.getStart(pageWrap.getModel().getCheckDate()))
|
.le(pageWrap.getModel().getCheckDate() != null, CarUseBook::getCheckDate, Utils.Date.getEnd(pageWrap.getModel().getCheckDate()))
|
.eq(pageWrap.getModel().getCheckUserId() != null, CarUseBook::getCheckUserId, pageWrap.getModel().getCheckUserId())
|
.eq(pageWrap.getModel().getCheckInfo() != null, CarUseBook::getCheckInfo, pageWrap.getModel().getCheckInfo())
|
.eq(pageWrap.getModel().getCancelType() != null, CarUseBook::getCancelType, pageWrap.getModel().getCancelType())
|
.eq(pageWrap.getModel().getCancelStatus() != null, CarUseBook::getCancelStatus, pageWrap.getModel().getCancelStatus())
|
.ge(pageWrap.getModel().getCancelTime() != null, CarUseBook::getCancelTime, Utils.Date.getStart(pageWrap.getModel().getCancelTime()))
|
.le(pageWrap.getModel().getCancelTime() != null, CarUseBook::getCancelTime, Utils.Date.getEnd(pageWrap.getModel().getCancelTime()))
|
.eq(pageWrap.getModel().getCancelUser() != null, CarUseBook::getCancelUser, pageWrap.getModel().getCancelUser())
|
.eq(pageWrap.getModel().getCancelInfo() != null, CarUseBook::getCancelInfo, pageWrap.getModel().getCancelInfo())
|
.eq(pageWrap.getModel().getType() != null, CarUseBook::getType, pageWrap.getModel().getType())
|
.eq(pageWrap.getModel().getMemberIds() != null, CarUseBook::getMemberIds, pageWrap.getModel().getMemberIds())
|
.eq(pageWrap.getModel().getMemberNames() != null, CarUseBook::getMemberNames, pageWrap.getModel().getMemberNames())
|
.eq(pageWrap.getModel().getContent() != null, CarUseBook::getContent, pageWrap.getModel().getContent())
|
.eq(pageWrap.getModel().getAddr() != null, CarUseBook::getAddr, pageWrap.getModel().getAddr())
|
.eq(pageWrap.getModel().getMemberId() != null, CarUseBook::getMemberId, pageWrap.getModel().getMemberId())
|
.eq(pageWrap.getModel().getDriverId() != null, CarUseBook::getDriverId, pageWrap.getModel().getDriverId())
|
.apply(pageWrap.getModel().getCompanyName() != null, "t4.company_name_path like '%"+pageWrap.getModel().getCompanyName()+"%'")
|
.and(StringUtils.isNotBlank(pageWrap.getModel().getQueryDate()),
|
i->i.and(j->j.lt(CarUseBook::getStartTime,pageWrap.getModel().getQueryDate() +"00:00:00").gt(CarUseBook::getStartTime,pageWrap.getModel().getQueryDate() +"23:59:59"))
|
.or()
|
.and(j->j.lt(CarUseBook::getEndTime,pageWrap.getModel().getQueryDate() +"23:59:59").gt(CarUseBook::getEndTime,pageWrap.getModel().getQueryDate() +"00:00:00"))
|
.or()
|
.and(j->j.gt(CarUseBook::getStartTime,pageWrap.getModel().getQueryDate() +"00:00:00").lt(CarUseBook::getEndTime,pageWrap.getModel().getQueryDate() +"23:59:59"))
|
.or()
|
.and(j->j.lt(CarUseBook::getStartTime,pageWrap.getModel().getQueryDate() +"00:00:00").gt(CarUseBook::getEndTime,pageWrap.getModel().getQueryDate() +"23:59:59"))
|
)
|
.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName())
|
.or().like(Member::getPhone,pageWrap.getModel().getMemberName()))
|
.ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), CarUseBook::getPlanUseDate,pageWrap.getModel().getQueryStartTime())
|
.le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),CarUseBook::getPlanUseDate,pageWrap.getModel().getQueryEndTime())
|
.orderByDesc(Visits::getCreateDate)
|
;
|
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
|
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
|
queryWrapper.orderByDesc(sortData.getProperty());
|
} else {
|
queryWrapper.orderByAsc(sortData.getProperty());
|
}
|
}
|
return PageData.from(carUseBookMapper.selectJoinPage(page, CarUseBook.class, queryWrapper));
|
}
|
|
@Override
|
public long count(CarUseBook carUseBook) {
|
QueryWrapper<CarUseBook> wrapper = new QueryWrapper<>(carUseBook);
|
return carUseBookMapper.selectCount(wrapper);
|
}
|
|
|
/**
|
* 查询车辆预约记录
|
* @param carUseBook
|
* @return
|
*/
|
@Override
|
public List<CarUseBook> carUseBookList(CarUseBook carUseBook){
|
if(Objects.isNull(carUseBook)
|
|| Objects.isNull(carUseBook.getCarId())
|
|| Objects.isNull(carUseBook.getStartTime())
|
|| Objects.isNull(carUseBook.getEndTime())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
List<CarUseBook> carUseBookList = carUseBookJoinMapper.selectJoinList(CarUseBook.class,
|
new MPJLambdaWrapper<CarUseBook>()
|
.selectAll(CarUseBook.class)
|
.selectAs(Member::getName,CarUseBook::getMemberName)
|
.selectAs(Member::getPhone,CarUseBook::getMemberMobile)
|
.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
|
.eq(CarUseBook::getId,carUseBook.getCarId())
|
.in(CarUseBook::getStatus,0,1,2)
|
.and(i->i.and(j->j.lt(CarUseBook::getStartTime,carUseBook.getStartTime()).gt(CarUseBook::getStartTime,carUseBook.getStartTime()))
|
.or()
|
.and(j->j.lt(CarUseBook::getEndTime,carUseBook.getStartTime()).gt(CarUseBook::getEndTime,carUseBook.getStartTime()))
|
.or()
|
.and(j->j.gt(CarUseBook::getStartTime,carUseBook.getStartTime()).lt(CarUseBook::getEndTime,carUseBook.getEndTime()))
|
.or()
|
.and(j->j.lt(CarUseBook::getStartTime,carUseBook.getStartTime()).gt(CarUseBook::getEndTime,carUseBook.getEndTime()))
|
)
|
);
|
return carUseBookList;
|
}
|
|
|
/**
|
* 根据日期查询车辆可预约情况
|
* @param cars
|
* @param dateDay
|
* @return
|
*/
|
@Override
|
public List<DateIntervalVO> checkDateUse(Integer cars,String dateDay){
|
SystemDictData workStart = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.WORK_START);
|
SystemDictData workEnd = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.WORK_END);
|
SystemDictData interval = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INTERVAL);
|
if(Objects.isNull(workStart)
|
||Objects.isNull(workEnd)
|
||Objects.isNull(interval)
|
||Objects.isNull(workStart.getCode())
|
||Objects.isNull(workEnd.getCode())
|
||Objects.isNull(interval.getCode())){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"配置错误,请联系管理员");
|
}
|
Date startTime = DateUtil.StringToDate(dateDay + workStart.getCode(),"yyyy-MM-dd HH:mm:ss");
|
Date endTime = DateUtil.StringToDate(dateDay + workEnd.getCode(),"yyyy-MM-dd HH:mm:ss");
|
Long intervalTime = Long.valueOf(interval.getCode());
|
LocalDateTime localStartTime = startTime.toInstant()
|
.atZone(ZoneId.systemDefault())
|
.toLocalDateTime();
|
LocalDateTime localEndTime = endTime.toInstant()
|
.atZone(ZoneId.systemDefault())
|
.toLocalDateTime();
|
List<DateIntervalVO> dateIntervalVOList = this.checkDate(localStartTime,localEndTime,intervalTime);
|
//查询车辆市内
|
List<CarUseBook> carUseBookList = carUseBookMapper.selectList(new QueryWrapper<CarUseBook>().lambda()
|
.eq(CarUseBook::getIsdeleted,Constants.ZERO)
|
.eq(CarUseBook::getCarId,cars)
|
.in(CarUseBook::getStatus,0,1,2)
|
.and(i->i.like(CarUseBook::getStartTime,dateDay).or().like(CarUseBook::getEndTime,dateDay)
|
.or().apply(" START_TIME < '"+dateDay+" 00:00:00' and END_TIME > '"+dateDay+" 23:59:59' "))
|
);
|
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(carUseBookList)){
|
for (DateIntervalVO dateIntervalVO:dateIntervalVOList) {
|
if(
|
carUseBookList.stream().filter(
|
i->
|
( i.getStartTime().getTime()<DateUtil.stringToDate(dateIntervalVO.getStartTime(),"yyyy-MM-dd HH:mm:ss ").getTime()
|
&& i.getEndTime().getTime() > DateUtil.stringToDate(dateIntervalVO.getStartTime(),"yyyy-MM-dd HH:mm:ss ").getTime())
|
||
|
( i.getStartTime().getTime()<DateUtil.stringToDate(dateIntervalVO.getEndTime(),"yyyy-MM-dd HH:mm:ss ").getTime()
|
&& i.getEndTime().getTime() > DateUtil.stringToDate(dateIntervalVO.getEndTime(),"yyyy-MM-dd HH:mm:ss ").getTime())
|
||
|
( DateUtil.stringToDate(dateIntervalVO.getStartTime(),"yyyy-MM-dd HH:mm:ss ").getTime() < i.getStartTime().getTime()
|
&& DateUtil.stringToDate(dateIntervalVO.getStartTime(),"yyyy-MM-dd HH:mm:ss ").getTime() > i.getStartTime().getTime())
|
||
|
( DateUtil.stringToDate(dateIntervalVO.getStartTime(),"yyyy-MM-dd HH:mm:ss ").getTime() < i.getEndTime().getTime()
|
&& DateUtil.stringToDate(dateIntervalVO.getStartTime(),"yyyy-MM-dd HH:mm:ss ").getTime() > i.getEndTime().getTime())
|
|
).collect(Collectors.toList()).size()>Constants.ZERO){
|
dateIntervalVO.setIsUse(Constants.ONE);
|
};
|
}
|
}
|
return dateIntervalVOList;
|
}
|
|
|
|
public List<DateIntervalVO> checkDate(LocalDateTime localStartTime , LocalDateTime localEndTime ,Long intervalTime ){
|
List<DateIntervalVO> dateIntervalVOList = new ArrayList<>();
|
List<LocalDateTime> segments = DateUtil.checkDateInterval(localStartTime,localEndTime,intervalTime);
|
DateTimeFormatter dfTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter dfHours = DateTimeFormatter.ofPattern("HH:mm");
|
for (int i = 0; i < segments.size(); i++) {
|
String startHours = segments.get(i).format(dfHours);
|
String endHours = localEndTime.format(dfHours);
|
String startTime = segments.get(i).format(dfTime);
|
String endTime = localEndTime.format(dfTime);
|
if(i!=segments.size()-1){
|
endHours = segments.get(i+1).format(dfHours);
|
endTime = segments.get(i+1).format(dfTime);
|
}
|
DateIntervalVO dateIntervalVO = new DateIntervalVO();
|
dateIntervalVO.setStartHours(startHours);
|
dateIntervalVO.setEndHours(endHours);
|
dateIntervalVO.setStartTime(startTime);
|
dateIntervalVO.setEndTime(endTime);
|
dateIntervalVO.setIsUse(Constants.ZERO);
|
}
|
return dateIntervalVOList;
|
}
|
|
|
@Override
|
public void revoke(Integer id, String info, LoginUserInfo loginUserInfo){
|
CarUseBook carUseBook = carUseBookMapper.selectById(id);
|
if(Objects.isNull(carUseBook)){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到用车申请信息");
|
}
|
carUseBook.setCancelInfo(info);
|
carUseBook.setCancelTime(new Date());
|
carUseBook.setCancelStatus(Constants.ONE);
|
carUseBook.setStatus(Constants.FOUR);
|
carUseBook.setCancelUser(loginUserInfo.getId());
|
carUseBook.setCancelType(Constants.ONE);
|
if(loginUserInfo.getId().equals(carUseBook.getCreator())){
|
carUseBook.setCancelType(Constants.ZERO);
|
}
|
carUseBookMapper.updateById(carUseBook);
|
//处理审批记录
|
approveJoinMapper.update(null,new UpdateWrapper<Approve>()
|
.lambda()
|
.set(Approve::getStatus,Constants.FOUR)
|
.set(Approve::getCheckInfo,"用车申请取消")
|
.in(Approve::getStatus,Constants.ZERO,Constants.ONE)
|
.eq(Approve::getObjId,id)
|
);
|
}
|
|
|
}
|