Commit f4c97b60e97377e9c9e0e7b7210b3f77b049b240
1 parent
e899a720
用户设备提交
Showing
5 changed files
with
109 additions
and
21 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java
| @@ -40,19 +40,26 @@ public class DeviceUserController { | @@ -40,19 +40,26 @@ public class DeviceUserController { | ||
| 40 | 40 | ||
| 41 | @PostMapping("/create") | 41 | @PostMapping("/create") |
| 42 | @Operation(summary = "创建设备用户关系") | 42 | @Operation(summary = "创建设备用户关系") |
| 43 | - @PreAuthorize("@ss.hasPermission('garden:device-user:create')") | 43 | + // @PreAuthorize("@ss.hasPermission('garden:device-user:create')") |
| 44 | public CommonResult<Long> createDeviceUser(@Valid @RequestBody DeviceUserSaveReqVO createReqVO) { | 44 | public CommonResult<Long> createDeviceUser(@Valid @RequestBody DeviceUserSaveReqVO createReqVO) { |
| 45 | return success(deviceUserService.createDeviceUser(createReqVO)); | 45 | return success(deviceUserService.createDeviceUser(createReqVO)); |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | - @PutMapping("/update") | 48 | + @PutMapping("/update/device") |
| 49 | @Operation(summary = "更新设备用户关系") | 49 | @Operation(summary = "更新设备用户关系") |
| 50 | - @PreAuthorize("@ss.hasPermission('garden:device-user:update')") | ||
| 51 | - public CommonResult<Boolean> updateDeviceUser(@Valid @RequestBody DeviceUserSaveReqVO updateReqVO) { | ||
| 52 | - deviceUserService.updateDeviceUser(updateReqVO); | 50 | + //@PreAuthorize("@ss.hasPermission('garden:device-user:update')") |
| 51 | + public CommonResult<Boolean> updateDevice(@Valid @RequestBody DeviceUserUpdateReqVO updateReqVO) { | ||
| 52 | + deviceUserService.updateDevice(updateReqVO); | ||
| 53 | return success(true); | 53 | return success(true); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | + @GetMapping("/get/device_no") | ||
| 57 | + @Operation(summary = "通过设备编码获取设备绑定信息") | ||
| 58 | + public CommonResult<DeviceUserRespVO> getDeviceUserByDeviceNo(@RequestParam("device_no") @NotBlank String deviceNo) { | ||
| 59 | + DeviceUserRespVO deviceUser = deviceUserService.getDeviceUserByDeviceNo(deviceNo); | ||
| 60 | + return success(deviceUser); | ||
| 61 | + } | ||
| 62 | + | ||
| 56 | @DeleteMapping("/delete") | 63 | @DeleteMapping("/delete") |
| 57 | @Operation(summary = "删除设备用户关系") | 64 | @Operation(summary = "删除设备用户关系") |
| 58 | @Parameter(name = "id", description = "编号", required = true) | 65 | @Parameter(name = "id", description = "编号", required = true) |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java
| @@ -36,7 +36,6 @@ public class DeviceUserSaveReqVO { | @@ -36,7 +36,6 @@ public class DeviceUserSaveReqVO { | ||
| 36 | @Data | 36 | @Data |
| 37 | public static class DeviceInfoDO { | 37 | public static class DeviceInfoDO { |
| 38 | @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | 38 | @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") |
| 39 | - @NotEmpty(message = "产品名称不能为空") | ||
| 40 | private String productName; | 39 | private String productName; |
| 41 | 40 | ||
| 42 | @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED) | 41 | @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED) |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserUpdateReqVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import jakarta.validation.Valid; | ||
| 5 | +import jakarta.validation.constraints.NotEmpty; | ||
| 6 | +import jakarta.validation.constraints.NotNull; | ||
| 7 | +import jakarta.validation.constraints.Size; | ||
| 8 | +import lombok.Data; | ||
| 9 | + | ||
| 10 | +import java.util.List; | ||
| 11 | + | ||
| 12 | +@Schema(description = "管理后台 - 设备用户关系新增/修改 Request VO") | ||
| 13 | +@Data | ||
| 14 | +public class DeviceUserUpdateReqVO { | ||
| 15 | + | ||
| 16 | + @Schema(description = "设备信息") | ||
| 17 | + @NotNull | ||
| 18 | + @Size(min = 1, message = "道路信息不能为空") | ||
| 19 | + @Valid | ||
| 20 | + private List<DeviceUserSaveReqVO.DeviceInfoDO> deviceInfoList; | ||
| 21 | + | ||
| 22 | + @Data | ||
| 23 | + public static class DeviceInfoDO { | ||
| 24 | + @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | ||
| 25 | + @NotEmpty(message = "产品名称不能为空") | ||
| 26 | + private String productName; | ||
| 27 | + | ||
| 28 | + @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 29 | + @NotEmpty(message = "设备标识不能为空") | ||
| 30 | + private String deviceNo; | ||
| 31 | + | ||
| 32 | + @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | ||
| 33 | + @NotEmpty(message = "设备名称不能为空") | ||
| 34 | + private String deviceName; | ||
| 35 | + | ||
| 36 | + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 37 | + @NotEmpty(message = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT") | ||
| 38 | + private String deviceState; | ||
| 39 | + | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | +} | ||
| 0 | \ No newline at end of file | 43 | \ No newline at end of file |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java
| @@ -5,10 +5,6 @@ import jakarta.validation.*; | @@ -5,10 +5,6 @@ import jakarta.validation.*; | ||
| 5 | import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; | 5 | import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; |
| 6 | import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; | 6 | import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; |
| 7 | import com.zteits.urbanops.framework.common.pojo.PageResult; | 7 | import com.zteits.urbanops.framework.common.pojo.PageResult; |
| 8 | -import com.zteits.urbanops.framework.common.pojo.PageParam; | ||
| 9 | -import jakarta.validation.constraints.NotNull; | ||
| 10 | -import org.springframework.web.bind.annotation.RequestBody; | ||
| 11 | -import org.springframework.web.bind.annotation.RequestParam; | ||
| 12 | 8 | ||
| 13 | /** | 9 | /** |
| 14 | * 设备用户关系 Service 接口 | 10 | * 设备用户关系 Service 接口 |
| @@ -78,4 +74,18 @@ public interface DeviceUserService { | @@ -78,4 +74,18 @@ public interface DeviceUserService { | ||
| 78 | */ | 74 | */ |
| 79 | DeviceDeptTreeRespVO findDeviceDeptTree(DeviceDeptTreeReqVO reqVO); | 75 | DeviceDeptTreeRespVO findDeviceDeptTree(DeviceDeptTreeReqVO reqVO); |
| 80 | 76 | ||
| 77 | + /** | ||
| 78 | + * IOT更新设备信息 | ||
| 79 | + * | ||
| 80 | + * @param updateReqVO 更新信息 | ||
| 81 | + * @return 更新结果 | ||
| 82 | + */ | ||
| 83 | + Boolean updateDevice(DeviceUserUpdateReqVO updateReqVO); | ||
| 84 | + | ||
| 85 | + /** | ||
| 86 | + * 通过设备编码查询对象 | ||
| 87 | + * @return 设备用户关系树 | ||
| 88 | + */ | ||
| 89 | + DeviceUserRespVO getDeviceUserByDeviceNo(String deviceNo); | ||
| 90 | + | ||
| 81 | } | 91 | } |
| 82 | \ No newline at end of file | 92 | \ No newline at end of file |
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; | @@ -3,14 +3,16 @@ package com.zteits.urbanops.module.garden.service.deviceuser; | ||
| 3 | import cn.hutool.core.collection.CollectionUtil; | 3 | import cn.hutool.core.collection.CollectionUtil; |
| 4 | import com.alibaba.fastjson.JSONArray; | 4 | import com.alibaba.fastjson.JSONArray; |
| 5 | import com.alibaba.fastjson.JSONObject; | 5 | import com.alibaba.fastjson.JSONObject; |
| 6 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 7 | +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | ||
| 6 | import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; | 8 | import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; |
| 7 | import com.zteits.urbanops.module.garden.util.DeviceDeptTreeUtils; | 9 | import com.zteits.urbanops.module.garden.util.DeviceDeptTreeUtils; |
| 8 | import com.zteits.urbanops.module.garden.util.http.OkHttpClientUtil; | 10 | import com.zteits.urbanops.module.garden.util.http.OkHttpClientUtil; |
| 9 | import org.springframework.beans.factory.annotation.Value; | 11 | import org.springframework.beans.factory.annotation.Value; |
| 10 | import org.springframework.stereotype.Service; | 12 | import org.springframework.stereotype.Service; |
| 11 | import jakarta.annotation.Resource; | 13 | import jakarta.annotation.Resource; |
| 14 | +import org.springframework.util.StringUtils; | ||
| 12 | import org.springframework.validation.annotation.Validated; | 15 | import org.springframework.validation.annotation.Validated; |
| 13 | -import org.springframework.transaction.annotation.Transactional; | ||
| 14 | 16 | ||
| 15 | import java.time.LocalDateTime; | 17 | import java.time.LocalDateTime; |
| 16 | import java.util.*; | 18 | import java.util.*; |
| @@ -54,15 +56,15 @@ public class DeviceUserServiceImpl implements DeviceUserService { | @@ -54,15 +56,15 @@ public class DeviceUserServiceImpl implements DeviceUserService { | ||
| 54 | deviceUser.setDeptId(createReqVO.getDeptId()); | 56 | deviceUser.setDeptId(createReqVO.getDeptId()); |
| 55 | deviceUser.setUserId(Long.parseLong(userId)); | 57 | deviceUser.setUserId(Long.parseLong(userId)); |
| 56 | deviceUser.setUserName(userName); | 58 | deviceUser.setUserName(userName); |
| 57 | - deviceUser.setCreateTime( now); | 59 | + deviceUser.setCreateTime(now); |
| 58 | deviceUser.setCreator(userId); | 60 | deviceUser.setCreator(userId); |
| 59 | deviceUser.setCreatorName(userName); | 61 | deviceUser.setCreatorName(userName); |
| 60 | deviceUser.setUpdater(userId); | 62 | deviceUser.setUpdater(userId); |
| 61 | - deviceUser.setUpdateTime( now); | 63 | + deviceUser.setUpdateTime(now); |
| 62 | list.add(deviceUser); | 64 | list.add(deviceUser); |
| 63 | }); | 65 | }); |
| 64 | // 插入 | 66 | // 插入 |
| 65 | - deviceUserMapper.insert( list); | 67 | + deviceUserMapper.insert(list); |
| 66 | return 1L; | 68 | return 1L; |
| 67 | } | 69 | } |
| 68 | 70 | ||
| @@ -84,10 +86,10 @@ public class DeviceUserServiceImpl implements DeviceUserService { | @@ -84,10 +86,10 @@ public class DeviceUserServiceImpl implements DeviceUserService { | ||
| 84 | } | 86 | } |
| 85 | 87 | ||
| 86 | @Override | 88 | @Override |
| 87 | - public void deleteDeviceUserListByIds(List<Long> ids) { | 89 | + public void deleteDeviceUserListByIds(List<Long> ids) { |
| 88 | // 删除 | 90 | // 删除 |
| 89 | deviceUserMapper.deleteByIds(ids); | 91 | deviceUserMapper.deleteByIds(ids); |
| 90 | - } | 92 | + } |
| 91 | 93 | ||
| 92 | 94 | ||
| 93 | private void validateDeviceUserExists(Long id) { | 95 | private void validateDeviceUserExists(Long id) { |
| @@ -118,19 +120,19 @@ public class DeviceUserServiceImpl implements DeviceUserService { | @@ -118,19 +120,19 @@ public class DeviceUserServiceImpl implements DeviceUserService { | ||
| 118 | params.put("deviceName", reqVO.getDeviceName()); | 120 | params.put("deviceName", reqVO.getDeviceName()); |
| 119 | params.put("deviceDeptName", reqVO.getDeviceDeptName()); | 121 | params.put("deviceDeptName", reqVO.getDeviceDeptName()); |
| 120 | String json = OkHttpClientUtil.doPostJson(iotHost + "/deviceApi/findDeviceDeptTree", params); | 122 | String json = OkHttpClientUtil.doPostJson(iotHost + "/deviceApi/findDeviceDeptTree", params); |
| 121 | - JSONObject jsonObject =JSONObject.parseObject(json); | ||
| 122 | - if(!jsonObject.getInteger("code").equals(200)){ | 123 | + JSONObject jsonObject = JSONObject.parseObject(json); |
| 124 | + if (!jsonObject.getInteger("code").equals(200)) { | ||
| 123 | return null; | 125 | return null; |
| 124 | } | 126 | } |
| 125 | 127 | ||
| 126 | List<DeviceDeptTreeRespVO> deviceDeptTreeList = JSONArray.parseArray(jsonObject.getString("data"), DeviceDeptTreeRespVO.class); | 128 | List<DeviceDeptTreeRespVO> deviceDeptTreeList = JSONArray.parseArray(jsonObject.getString("data"), DeviceDeptTreeRespVO.class); |
| 127 | - if(CollectionUtil.isEmpty(deviceDeptTreeList)){ | 129 | + if (CollectionUtil.isEmpty(deviceDeptTreeList)) { |
| 128 | return null; | 130 | return null; |
| 129 | } | 131 | } |
| 130 | //获取所有已绑定设备列表 | 132 | //获取所有已绑定设备列表 |
| 131 | List<DeviceUserDO> list = deviceUserMapper.selectList(); | 133 | List<DeviceUserDO> list = deviceUserMapper.selectList(); |
| 132 | - if(CollectionUtil.isEmpty(list)){ | ||
| 133 | - return deviceDeptTreeList.get(0); | 134 | + if (CollectionUtil.isEmpty(list)) { |
| 135 | + return deviceDeptTreeList.get(0); | ||
| 134 | } | 136 | } |
| 135 | List<String> deviceNos = list.stream().map(deviceUserDO -> deviceUserDO.getDeviceNo()).collect(Collectors.toList()); | 137 | List<String> deviceNos = list.stream().map(deviceUserDO -> deviceUserDO.getDeviceNo()).collect(Collectors.toList()); |
| 136 | // | 138 | // |
| @@ -138,4 +140,32 @@ public class DeviceUserServiceImpl implements DeviceUserService { | @@ -138,4 +140,32 @@ public class DeviceUserServiceImpl implements DeviceUserService { | ||
| 138 | return deviceDeptTreeList.get(0); | 140 | return deviceDeptTreeList.get(0); |
| 139 | } | 141 | } |
| 140 | 142 | ||
| 143 | + @Override | ||
| 144 | + public Boolean updateDevice(DeviceUserUpdateReqVO updateReqVO) { | ||
| 145 | + updateReqVO.getDeviceInfoList().forEach(deviceInfo -> { | ||
| 146 | + UpdateWrapper<DeviceUserDO> updateWrapper = new UpdateWrapper<>(); | ||
| 147 | + updateWrapper.lambda().set(!StringUtils.isEmpty(deviceInfo.getProductName()), DeviceUserDO::getProductName, deviceInfo.getProductName()) | ||
| 148 | + .set(!StringUtils.isEmpty(deviceInfo.getDeviceName()), DeviceUserDO::getDeviceName, deviceInfo.getDeviceName()) | ||
| 149 | + .set(!StringUtils.isEmpty(deviceInfo.getDeviceState()), DeviceUserDO::getDeviceState, deviceInfo.getDeviceState()) | ||
| 150 | + .eq(DeviceUserDO::getDeviceNo, deviceInfo.getDeviceNo()); | ||
| 151 | + deviceUserMapper.update(updateWrapper); | ||
| 152 | + }); | ||
| 153 | + | ||
| 154 | + return true; | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + @Override | ||
| 158 | + public DeviceUserRespVO getDeviceUserByDeviceNo(String deviceNo) { | ||
| 159 | + QueryWrapper<DeviceUserDO> query = new QueryWrapper<>(); | ||
| 160 | + query.lambda().eq(DeviceUserDO::getDeviceNo, deviceNo); | ||
| 161 | + List<DeviceUserDO> list = deviceUserMapper.selectList(query); | ||
| 162 | + if (CollectionUtil.isEmpty(list)) { | ||
| 163 | + return null; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + DeviceUserRespVO deviceUserRes = new DeviceUserRespVO(); | ||
| 167 | + BeanUtils.copyProperties(list.get(0), deviceUserRes); | ||
| 168 | + return deviceUserRes; | ||
| 169 | + } | ||
| 170 | + | ||
| 141 | } | 171 | } |
| 142 | \ No newline at end of file | 172 | \ No newline at end of file |