From f4c97b60e97377e9c9e0e7b7210b3f77b049b240 Mon Sep 17 00:00:00 2001 From: wangfs <15029758498@163.com> Date: Sat, 17 Jan 2026 11:08:43 +0800 Subject: [PATCH] 用户设备提交 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java | 17 ++++++++++++----- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java | 1 - urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserUpdateReqVO.java | 42 ++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java | 18 ++++++++++++++---- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java | 52 +++++++++++++++++++++++++++++++++++++++++----------- 5 files changed, 109 insertions(+), 21 deletions(-) create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserUpdateReqVO.java diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java index 90664a3..383e4e4 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java @@ -40,19 +40,26 @@ public class DeviceUserController { @PostMapping("/create") @Operation(summary = "创建设备用户关系") - @PreAuthorize("@ss.hasPermission('garden:device-user:create')") + // @PreAuthorize("@ss.hasPermission('garden:device-user:create')") public CommonResult createDeviceUser(@Valid @RequestBody DeviceUserSaveReqVO createReqVO) { return success(deviceUserService.createDeviceUser(createReqVO)); } - @PutMapping("/update") + @PutMapping("/update/device") @Operation(summary = "更新设备用户关系") - @PreAuthorize("@ss.hasPermission('garden:device-user:update')") - public CommonResult updateDeviceUser(@Valid @RequestBody DeviceUserSaveReqVO updateReqVO) { - deviceUserService.updateDeviceUser(updateReqVO); + //@PreAuthorize("@ss.hasPermission('garden:device-user:update')") + public CommonResult updateDevice(@Valid @RequestBody DeviceUserUpdateReqVO updateReqVO) { + deviceUserService.updateDevice(updateReqVO); return success(true); } + @GetMapping("/get/device_no") + @Operation(summary = "通过设备编码获取设备绑定信息") + public CommonResult getDeviceUserByDeviceNo(@RequestParam("device_no") @NotBlank String deviceNo) { + DeviceUserRespVO deviceUser = deviceUserService.getDeviceUserByDeviceNo(deviceNo); + return success(deviceUser); + } + @DeleteMapping("/delete") @Operation(summary = "删除设备用户关系") @Parameter(name = "id", description = "编号", required = true) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java index dc6b20e..f85dfb9 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java @@ -36,7 +36,6 @@ public class DeviceUserSaveReqVO { @Data public static class DeviceInfoDO { @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") - @NotEmpty(message = "产品名称不能为空") private String productName; @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserUpdateReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserUpdateReqVO.java new file mode 100644 index 0000000..5f7b9e0 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserUpdateReqVO.java @@ -0,0 +1,42 @@ +package com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 设备用户关系新增/修改 Request VO") +@Data +public class DeviceUserUpdateReqVO { + + @Schema(description = "设备信息") + @NotNull + @Size(min = 1, message = "道路信息不能为空") + @Valid + private List deviceInfoList; + + @Data + public static class DeviceInfoDO { + @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "产品名称不能为空") + private String productName; + + @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "设备标识不能为空") + private String deviceNo; + + @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "设备名称不能为空") + private String deviceName; + + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT") + private String deviceState; + + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java index 61bd36a..5cfd74b 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java @@ -5,10 +5,6 @@ import jakarta.validation.*; import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.pojo.PageParam; -import jakarta.validation.constraints.NotNull; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; /** * 设备用户关系 Service 接口 @@ -78,4 +74,18 @@ public interface DeviceUserService { */ DeviceDeptTreeRespVO findDeviceDeptTree(DeviceDeptTreeReqVO reqVO); + /** + * IOT更新设备信息 + * + * @param updateReqVO 更新信息 + * @return 更新结果 + */ + Boolean updateDevice(DeviceUserUpdateReqVO updateReqVO); + + /** + * 通过设备编码查询对象 + * @return 设备用户关系树 + */ + DeviceUserRespVO getDeviceUserByDeviceNo(String deviceNo); + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java index 49899c4..e8db66c 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java @@ -3,14 +3,16 @@ package com.zteits.urbanops.module.garden.service.deviceuser; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; import com.zteits.urbanops.module.garden.util.DeviceDeptTreeUtils; import com.zteits.urbanops.module.garden.util.http.OkHttpClientUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.*; @@ -54,15 +56,15 @@ public class DeviceUserServiceImpl implements DeviceUserService { deviceUser.setDeptId(createReqVO.getDeptId()); deviceUser.setUserId(Long.parseLong(userId)); deviceUser.setUserName(userName); - deviceUser.setCreateTime( now); + deviceUser.setCreateTime(now); deviceUser.setCreator(userId); deviceUser.setCreatorName(userName); deviceUser.setUpdater(userId); - deviceUser.setUpdateTime( now); + deviceUser.setUpdateTime(now); list.add(deviceUser); }); // 插入 - deviceUserMapper.insert( list); + deviceUserMapper.insert(list); return 1L; } @@ -84,10 +86,10 @@ public class DeviceUserServiceImpl implements DeviceUserService { } @Override - public void deleteDeviceUserListByIds(List ids) { + public void deleteDeviceUserListByIds(List ids) { // 删除 deviceUserMapper.deleteByIds(ids); - } + } private void validateDeviceUserExists(Long id) { @@ -118,19 +120,19 @@ public class DeviceUserServiceImpl implements DeviceUserService { params.put("deviceName", reqVO.getDeviceName()); params.put("deviceDeptName", reqVO.getDeviceDeptName()); String json = OkHttpClientUtil.doPostJson(iotHost + "/deviceApi/findDeviceDeptTree", params); - JSONObject jsonObject =JSONObject.parseObject(json); - if(!jsonObject.getInteger("code").equals(200)){ + JSONObject jsonObject = JSONObject.parseObject(json); + if (!jsonObject.getInteger("code").equals(200)) { return null; } List deviceDeptTreeList = JSONArray.parseArray(jsonObject.getString("data"), DeviceDeptTreeRespVO.class); - if(CollectionUtil.isEmpty(deviceDeptTreeList)){ + if (CollectionUtil.isEmpty(deviceDeptTreeList)) { return null; } //获取所有已绑定设备列表 List list = deviceUserMapper.selectList(); - if(CollectionUtil.isEmpty(list)){ - return deviceDeptTreeList.get(0); + if (CollectionUtil.isEmpty(list)) { + return deviceDeptTreeList.get(0); } List deviceNos = list.stream().map(deviceUserDO -> deviceUserDO.getDeviceNo()).collect(Collectors.toList()); // @@ -138,4 +140,32 @@ public class DeviceUserServiceImpl implements DeviceUserService { return deviceDeptTreeList.get(0); } + @Override + public Boolean updateDevice(DeviceUserUpdateReqVO updateReqVO) { + updateReqVO.getDeviceInfoList().forEach(deviceInfo -> { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.lambda().set(!StringUtils.isEmpty(deviceInfo.getProductName()), DeviceUserDO::getProductName, deviceInfo.getProductName()) + .set(!StringUtils.isEmpty(deviceInfo.getDeviceName()), DeviceUserDO::getDeviceName, deviceInfo.getDeviceName()) + .set(!StringUtils.isEmpty(deviceInfo.getDeviceState()), DeviceUserDO::getDeviceState, deviceInfo.getDeviceState()) + .eq(DeviceUserDO::getDeviceNo, deviceInfo.getDeviceNo()); + deviceUserMapper.update(updateWrapper); + }); + + return true; + } + + @Override + public DeviceUserRespVO getDeviceUserByDeviceNo(String deviceNo) { + QueryWrapper query = new QueryWrapper<>(); + query.lambda().eq(DeviceUserDO::getDeviceNo, deviceNo); + List list = deviceUserMapper.selectList(query); + if (CollectionUtil.isEmpty(list)) { + return null; + } + + DeviceUserRespVO deviceUserRes = new DeviceUserRespVO(); + BeanUtils.copyProperties(list.get(0), deviceUserRes); + return deviceUserRes; + } + } \ No newline at end of file -- libgit2 0.21.4