Commit f4c97b60e97377e9c9e0e7b7210b3f77b049b240

Authored by 王富生
1 parent e899a720

用户设备提交

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