Commit 470f3589d484d09cdc4d0f60a4516476846cff59

Authored by 王富生
1 parent 1e77ace1

用户设备关系

urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java
@@ -57,8 +57,9 @@ public class DeviceUserController { @@ -57,8 +57,9 @@ public class DeviceUserController {
57 @Operation(summary = "删除设备用户关系") 57 @Operation(summary = "删除设备用户关系")
58 @Parameter(name = "id", description = "编号", required = true) 58 @Parameter(name = "id", description = "编号", required = true)
59 @PreAuthorize("@ss.hasPermission('garden:device-user:delete')") 59 @PreAuthorize("@ss.hasPermission('garden:device-user:delete')")
60 - public CommonResult<Boolean> deleteDeviceUser(@RequestParam("id") Long id) {  
61 - deviceUserService.deleteDeviceUser(id); 60 + public CommonResult<Boolean> deleteDeviceUser(@RequestParam("user_id") @NotNull Long userId,
  61 + @RequestParam("device_no") @NotBlank String deviceNo) {
  62 + deviceUserService.deleteDeviceUser(userId, deviceNo);
62 return success(true); 63 return success(true);
63 } 64 }
64 65
@@ -82,7 +83,7 @@ public class DeviceUserController { @@ -82,7 +83,7 @@ public class DeviceUserController {
82 83
83 @GetMapping("/page") 84 @GetMapping("/page")
84 @Operation(summary = "获得设备用户关系分页") 85 @Operation(summary = "获得设备用户关系分页")
85 - @PreAuthorize("@ss.hasPermission('garden:device-user:query')") 86 + //@PreAuthorize("@ss.hasPermission('garden:device-user:query')")
86 public CommonResult<PageResult<DeviceUserRespVO>> getDeviceUserPage(@Valid DeviceUserPageReqVO pageReqVO) { 87 public CommonResult<PageResult<DeviceUserRespVO>> getDeviceUserPage(@Valid DeviceUserPageReqVO pageReqVO) {
87 PageResult<DeviceUserDO> pageResult = deviceUserService.getDeviceUserPage(pageReqVO); 88 PageResult<DeviceUserDO> pageResult = deviceUserService.getDeviceUserPage(pageReqVO);
88 return success(BeanUtils.toBean(pageResult, DeviceUserRespVO.class)); 89 return success(BeanUtils.toBean(pageResult, DeviceUserRespVO.class));
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserPageReqVO.java
@@ -32,7 +32,7 @@ public class DeviceUserPageReqVO extends PageParam { @@ -32,7 +32,7 @@ public class DeviceUserPageReqVO extends PageParam {
32 @Schema(description = "设备名称", example = "张三") 32 @Schema(description = "设备名称", example = "张三")
33 private String deviceName; 33 private String deviceName;
34 34
35 - @Schema(description = "设备状态")  
36 - private Integer deviceState; 35 + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT")
  36 + private String deviceState;
37 37
38 } 38 }
39 \ No newline at end of file 39 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserRespVO.java
@@ -44,9 +44,9 @@ public class DeviceUserRespVO { @@ -44,9 +44,9 @@ public class DeviceUserRespVO {
44 @ExcelProperty("设备名称") 44 @ExcelProperty("设备名称")
45 private String deviceName; 45 private String deviceName;
46 46
47 - @Schema(description = "设备状态 1:在线;2:离线;3:未知", requiredMode = Schema.RequiredMode.REQUIRED)  
48 - @ExcelProperty("设备状态 1:在线;2:离线;3:未知")  
49 - private Integer deviceState; 47 + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT", requiredMode = Schema.RequiredMode.REQUIRED)
  48 + @ExcelProperty("连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT")
  49 + private String deviceState;
50 50
51 @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") 51 @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
52 @ExcelProperty("创建人") 52 @ExcelProperty("创建人")
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java
1 package com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo; 1 package com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.Valid;
4 import lombok.*; 5 import lombok.*;
5 import java.util.*; 6 import java.util.*;
6 import jakarta.validation.constraints.*; 7 import jakarta.validation.constraints.*;
@@ -9,8 +10,6 @@ import jakarta.validation.constraints.*; @@ -9,8 +10,6 @@ import jakarta.validation.constraints.*;
9 @Data 10 @Data
10 public class DeviceUserSaveReqVO { 11 public class DeviceUserSaveReqVO {
11 12
12 - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12043")  
13 - private Long id;  
14 13
15 @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22641") 14 @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22641")
16 @NotNull(message = "归属(一级部门id)不能为空") 15 @NotNull(message = "归属(一级部门id)不能为空")
@@ -28,28 +27,29 @@ public class DeviceUserSaveReqVO { @@ -28,28 +27,29 @@ public class DeviceUserSaveReqVO {
28 @NotEmpty(message = "提交人用户不能为空") 27 @NotEmpty(message = "提交人用户不能为空")
29 private String userName; 28 private String userName;
30 29
31 - @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")  
32 - @NotEmpty(message = "产品名称不能为空")  
33 - private String productName;  
34 -  
35 - @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED)  
36 - @NotEmpty(message = "设备标识不能为空")  
37 - private String deviceNo;  
38 -  
39 - @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")  
40 - @NotEmpty(message = "设备名称不能为空")  
41 - private String deviceName;  
42 -  
43 - @Schema(description = "设备状态 1:在线;2:离线;3:未知", requiredMode = Schema.RequiredMode.REQUIRED)  
44 - @NotEmpty(message = "设备状态不能为空")  
45 - private Integer deviceState;  
46 -  
47 - @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")  
48 - @NotEmpty(message = "创建人不能为空")  
49 - private String creatorName;  
50 -  
51 - @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")  
52 - @NotEmpty(message = "更新者不能为空")  
53 - private String updaterName; 30 + @Schema(description = "设备信息")
  31 + @NotNull
  32 + @Size(min = 1, message = "道路信息不能为空")
  33 + @Valid
  34 + private List<DeviceInfoDO> deviceInfoList;
  35 +
  36 + @Data
  37 + public static class DeviceInfoDO {
  38 + @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  39 + @NotEmpty(message = "产品名称不能为空")
  40 + private String productName;
  41 +
  42 + @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED)
  43 + @NotEmpty(message = "设备标识不能为空")
  44 + private String deviceNo;
  45 +
  46 + @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  47 + @NotEmpty(message = "设备名称不能为空")
  48 + private String deviceName;
  49 +
  50 + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT", requiredMode = Schema.RequiredMode.REQUIRED)
  51 + @NotEmpty(message = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT")
  52 + private String deviceState;
  53 + }
54 54
55 } 55 }
56 \ No newline at end of file 56 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/deviceuser/DeviceUserDO.java
@@ -56,9 +56,9 @@ public class DeviceUserDO extends BaseDO { @@ -56,9 +56,9 @@ public class DeviceUserDO extends BaseDO {
56 */ 56 */
57 private String deviceName; 57 private String deviceName;
58 /** 58 /**
59 - * 设备状态 1:在线;2:离线;3:未知 59 + * 连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT
60 */ 60 */
61 - private Integer deviceState; 61 + private String deviceState;
62 /** 62 /**
63 * 创建人 63 * 创建人
64 */ 64 */
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/deviceuser/DeviceUserMapper.java
@@ -8,6 +8,7 @@ import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; @@ -8,6 +8,7 @@ import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
8 import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; 8 import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO;
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; 10 import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*;
  11 +import org.apache.ibatis.annotations.Param;
11 12
12 /** 13 /**
13 * 设备用户关系 Mapper 14 * 设备用户关系 Mapper
@@ -29,4 +30,6 @@ public interface DeviceUserMapper extends BaseMapperX&lt;DeviceUserDO&gt; { @@ -29,4 +30,6 @@ public interface DeviceUserMapper extends BaseMapperX&lt;DeviceUserDO&gt; {
29 .orderByDesc(DeviceUserDO::getId)); 30 .orderByDesc(DeviceUserDO::getId));
30 } 31 }
31 32
  33 + int deleteDeviceUser(@Param("userId") Long userId, @Param("deviceNo") String deviceNo);
  34 +
32 } 35 }
33 \ No newline at end of file 36 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java
@@ -6,6 +6,8 @@ import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; @@ -6,6 +6,8 @@ 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; 8 import com.zteits.urbanops.framework.common.pojo.PageParam;
  9 +import jakarta.validation.constraints.NotNull;
  10 +import org.springframework.web.bind.annotation.RequestParam;
9 11
10 /** 12 /**
11 * 设备用户关系 Service 接口 13 * 设备用户关系 Service 接口
@@ -59,4 +61,12 @@ public interface DeviceUserService { @@ -59,4 +61,12 @@ public interface DeviceUserService {
59 */ 61 */
60 PageResult<DeviceUserDO> getDeviceUserPage(DeviceUserPageReqVO pageReqVO); 62 PageResult<DeviceUserDO> getDeviceUserPage(DeviceUserPageReqVO pageReqVO);
61 63
  64 +
  65 + /**
  66 + * 删除设备用户关系
  67 + *
  68 + * @param userId 编号
  69 + */
  70 + Integer deleteDeviceUser(Long userId, String deviceNo);
  71 +
62 } 72 }
63 \ No newline at end of file 73 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java
1 package com.zteits.urbanops.module.garden.service.deviceuser; 1 package com.zteits.urbanops.module.garden.service.deviceuser;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
  4 +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
4 import org.springframework.stereotype.Service; 5 import org.springframework.stereotype.Service;
5 import jakarta.annotation.Resource; 6 import jakarta.annotation.Resource;
6 import org.springframework.validation.annotation.Validated; 7 import org.springframework.validation.annotation.Validated;
7 import org.springframework.transaction.annotation.Transactional; 8 import org.springframework.transaction.annotation.Transactional;
8 9
  10 +import java.time.LocalDateTime;
9 import java.util.*; 11 import java.util.*;
10 import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; 12 import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*;
11 import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; 13 import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO;
@@ -34,18 +36,35 @@ public class DeviceUserServiceImpl implements DeviceUserService { @@ -34,18 +36,35 @@ public class DeviceUserServiceImpl implements DeviceUserService {
34 36
35 @Override 37 @Override
36 public Long createDeviceUser(DeviceUserSaveReqVO createReqVO) { 38 public Long createDeviceUser(DeviceUserSaveReqVO createReqVO) {
  39 + LocalDateTime now = LocalDateTime.now();
  40 + String userId = SecurityFrameworkUtils.getLoginUserId() + "";
  41 + String userName = SecurityFrameworkUtils.getLoginUserNickname();
  42 + List<DeviceUserDO> list = new ArrayList<>();
  43 + createReqVO.getDeviceInfoList().forEach(deviceInfo -> {
  44 + DeviceUserDO deviceUser = new DeviceUserDO();
  45 + deviceUser.setDeviceNo(deviceInfo.getDeviceNo());
  46 + deviceUser.setDeviceName(deviceInfo.getDeviceName());
  47 + deviceUser.setProductName(deviceInfo.getProductName());
  48 + deviceUser.setCompanyId(createReqVO.getCompanyId());
  49 + deviceUser.setDeptId(createReqVO.getDeptId());
  50 + deviceUser.setUserId(Long.parseLong(userId));
  51 + deviceUser.setUserName(userName);
  52 + deviceUser.setCreateTime( now);
  53 + deviceUser.setCreator(userId);
  54 + deviceUser.setCreatorName(userName);
  55 + deviceUser.setUpdater(userId);
  56 + deviceUser.setUpdateTime( now);
  57 + list.add(deviceUser);
  58 + });
37 // 插入 59 // 插入
38 - DeviceUserDO deviceUser = BeanUtils.toBean(createReqVO, DeviceUserDO.class);  
39 - deviceUserMapper.insert(deviceUser);  
40 -  
41 - // 返回  
42 - return deviceUser.getId(); 60 + deviceUserMapper.insert( list);
  61 + return 1L;
43 } 62 }
44 63
45 @Override 64 @Override
46 public void updateDeviceUser(DeviceUserSaveReqVO updateReqVO) { 65 public void updateDeviceUser(DeviceUserSaveReqVO updateReqVO) {
47 // 校验存在 66 // 校验存在
48 - validateDeviceUserExists(updateReqVO.getId()); 67 + //validateDeviceUserExists(updateReqVO.getId());
49 // 更新 68 // 更新
50 DeviceUserDO updateObj = BeanUtils.toBean(updateReqVO, DeviceUserDO.class); 69 DeviceUserDO updateObj = BeanUtils.toBean(updateReqVO, DeviceUserDO.class);
51 deviceUserMapper.updateById(updateObj); 70 deviceUserMapper.updateById(updateObj);
@@ -82,4 +101,9 @@ public class DeviceUserServiceImpl implements DeviceUserService { @@ -82,4 +101,9 @@ public class DeviceUserServiceImpl implements DeviceUserService {
82 return deviceUserMapper.selectPage(pageReqVO); 101 return deviceUserMapper.selectPage(pageReqVO);
83 } 102 }
84 103
  104 + @Override
  105 + public Integer deleteDeviceUser(Long userId, String deviceNo) {
  106 + return deviceUserMapper.deleteDeviceUser(userId, deviceNo);
  107 + }
  108 +
85 } 109 }
86 \ No newline at end of file 110 \ No newline at end of file
urbanops-module-garden/src/main/resources/mapper/deviceuser/DeviceUserMapper.xml
@@ -9,4 +9,10 @@ @@ -9,4 +9,10 @@
9 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ 9 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
10 --> 10 -->
11 11
  12 + <delete id="deleteDeviceUser">
  13 + DELETE FROM garden_device_user
  14 + WHERE user_id = #{userId}
  15 + AND device_no = #{deviceNo}
  16 +
  17 + </delete>
12 </mapper> 18 </mapper>
13 \ No newline at end of file 19 \ No newline at end of file