package com.xiaopeng.maintenance.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.xiaopeng.api.model.account.XpOperationsUser;
|
import com.xiaopeng.api.model.maintenance.XpShift;
|
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.maintenance.mapper.XpShiftMapper;
|
import com.xiaopeng.maintenance.model.query.XpShiftQuery;
|
import com.xiaopeng.maintenance.model.vo.OperationRecordsVO;
|
import com.xiaopeng.maintenance.service.IXpShiftService;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 班次管理 服务实现类
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-03
|
*/
|
@Service
|
public class XpShiftServiceImpl extends ServiceImpl<XpShiftMapper, XpShift> implements IXpShiftService {
|
|
@Override
|
public PageInfo<XpShift> pageList(XpShiftQuery query) {
|
PageInfo<XpShift> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<XpShift> list = this.baseMapper.pageList(query, pageInfo);
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
|
|
/**
|
* 查询班次列表
|
*
|
* @return
|
*/
|
@Override
|
public List<XpShift> queryList() {
|
return this.list(new LambdaQueryWrapper<XpShift>().eq(XpShift::getDeleted, 0));
|
}
|
|
@Override
|
public R<String> add(XpShift dto) {
|
|
// 判断结束时间是否大于开始时间 格式为 HH:mm
|
if (dto.getEndTime().compareTo(dto.getStartTime()) < 0) {
|
return R.fail("结束时间不能小于开始时间");
|
}
|
// 判断休息结束时间是否大于休息开始时间 格式为 HH:mm
|
if (dto.getRestEndTime() != null && dto.getRestStartTime() != null && dto.getRestEndTime().compareTo(dto.getRestStartTime()) < 0) {
|
return R.fail("休息结束时间不能小于休息开始时间");
|
}
|
|
if (this.count(new LambdaQueryWrapper<XpShift>().eq(XpShift::getShiftName, dto.getShiftName())) > 0) {
|
return R.fail("班次名称已存在");
|
}
|
|
this.save(dto);
|
|
return R.ok();
|
}
|
|
@Override
|
public R<String> edit(XpShift dto) {
|
|
// 判断结束时间是否大于开始时间 格式为 HH:mm
|
if (dto.getEndTime().compareTo(dto.getStartTime()) < 0) {
|
return R.fail("结束时间不能小于开始时间");
|
}
|
// 判断休息结束时间是否大于休息开始时间 格式为 HH:mm
|
if (dto.getRestEndTime() != null && dto.getRestStartTime() != null && dto.getRestEndTime().compareTo(dto.getRestStartTime()) < 0) {
|
return R.fail("休息结束时间不能小于休息开始时间");
|
}
|
|
if (this.count(new LambdaQueryWrapper<XpShift>().eq(XpShift::getShiftName, dto.getShiftName()).ne(XpShift::getId, dto.getId())) > 0) {
|
return R.fail("班次名称已存在");
|
}
|
|
this.updateById(dto);
|
|
return R.ok();
|
}
|
}
|