xuhy
2026-02-28 94dc83bd959dcddb64f80a33807c226979dfb30b
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpShiftServiceImpl.java
@@ -46,4 +46,46 @@
    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();
    }
}