From 8c0b313b0bf5426cd52fb304b2e861cc4358a655 Mon Sep 17 00:00:00 2001 From: wanxiaoli Date: Fri, 16 Jan 2026 17:26:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BF=AE=E6=94=B9=E6=94=BE?= =?UTF-8?q?=E4=B8=80=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../css/controller/DeviceController.java | 8 ++++++- .../business/css/service/DeviceService.java | 4 +++- .../css/service/impl/DeviceServiceImpl.java | 22 +++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java b/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java index 64f0ecb..1601649 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java @@ -34,7 +34,13 @@ public class DeviceController { @PostMapping public boolean create(@RequestBody Device device) { device.setModifier(currentUsername()); - return deviceService.save(device); + return deviceService.createDevice(device); + } + + @PostMapping("/saveOrUpdate") + public boolean saveOrUpdate(@RequestBody Device device) { + device.setModifier(currentUsername()); + return deviceService.saveOrUpdateByBusiness(device); } /** diff --git a/business-css/src/main/java/com/yfd/business/css/service/DeviceService.java b/business-css/src/main/java/com/yfd/business/css/service/DeviceService.java index 9e44e17..5b755e5 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/DeviceService.java +++ b/business-css/src/main/java/com/yfd/business/css/service/DeviceService.java @@ -9,5 +9,7 @@ public interface DeviceService extends IService { */ boolean importDevices(MultipartFile file, String deviceType); - public boolean createDevice(Device device) ; + boolean createDevice(Device device) ; + + boolean saveOrUpdateByBusiness(Device device); } diff --git a/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java b/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java index c706ff6..921fe5e 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java +++ b/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java @@ -67,6 +67,28 @@ public class DeviceServiceImpl // 2. 如果前端传了 deviceId,直接使用 return this.save(device); } + + @Override + public boolean saveOrUpdateByBusiness(Device device) { + + String deviceId = device.getDeviceId(); + + // 情况 1:未传 deviceId → 直接新增 + if (StrUtil.isBlank(deviceId)) { + return this.save(device); + } + + // 情况 2:传了 deviceId,判断是否存在 + Device dbDevice = this.getById(deviceId); + + if (dbDevice == null) { + // 数据库不存在 → 新增(使用传入的 deviceId) + return this.save(device); + } else { + // 数据库存在 → 更新 + return this.updateById(device); + } + } private boolean importExcel(Workbook workbook, String deviceType) { try (Workbook wb = workbook) {