From cb7be09dc82cdc3deed507a7ae3685e81f46e814 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 28 二月 2026 20:43:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpShiftServiceImpl.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpShiftServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpShiftServiceImpl.java
index cbe0800..72bb060 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpShiftServiceImpl.java
+++ b/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();
+    }
 }

--
Gitblit v1.7.1