Commit 7565d561f92269d43e623ffad86a5cb6aced1c9e

Authored by 胡翰林
1 parent 911a4d6a

bug修复

@@ -8,11 +8,17 @@ import org.springframework.http.ResponseEntity; @@ -8,11 +8,17 @@ import org.springframework.http.ResponseEntity;
8 import org.springframework.security.access.prepost.PreAuthorize; 8 import org.springframework.security.access.prepost.PreAuthorize;
9 import org.springframework.web.bind.annotation.*; 9 import org.springframework.web.bind.annotation.*;
10 import org.thingsboard.server.common.data.exception.ThingsboardException; 10 import org.thingsboard.server.common.data.exception.ThingsboardException;
  11 +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
  12 +import org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO;
11 import org.thingsboard.server.common.data.yunteng.dto.TkDeviceCagegoryDTO; 13 import org.thingsboard.server.common.data.yunteng.dto.TkDeviceCagegoryDTO;
  14 +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
  15 +import org.thingsboard.server.dao.yunteng.service.TkDeviceAccountService;
12 import org.thingsboard.server.dao.yunteng.service.TkDeviceCagegoryService; 16 import org.thingsboard.server.dao.yunteng.service.TkDeviceCagegoryService;
13 import org.thingsboard.server.queue.util.TbCoreComponent; 17 import org.thingsboard.server.queue.util.TbCoreComponent;
14 18
  19 +import java.util.HashMap;
15 import java.util.List; 20 import java.util.List;
  21 +import java.util.Map;
16 22
17 @RestController 23 @RestController
18 @TbCoreComponent 24 @TbCoreComponent
@@ -23,6 +29,8 @@ import java.util.List; @@ -23,6 +29,8 @@ import java.util.List;
23 public class TkDeviceCagegoryController extends BaseController { 29 public class TkDeviceCagegoryController extends BaseController {
24 private final TkDeviceCagegoryService tkDeviceCagegoryService; 30 private final TkDeviceCagegoryService tkDeviceCagegoryService;
25 31
  32 + private final TkDeviceAccountService tkDeviceAccountService;
  33 +
26 @PostMapping("/getCagegoryByParentid") 34 @PostMapping("/getCagegoryByParentid")
27 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") 35 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
28 @ApiOperation("根据父类型获取设备类别") 36 @ApiOperation("根据父类型获取设备类别")
@@ -48,6 +56,12 @@ public class TkDeviceCagegoryController extends BaseController { @@ -48,6 +56,12 @@ public class TkDeviceCagegoryController extends BaseController {
48 @GetMapping("/delete") 56 @GetMapping("/delete")
49 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") 57 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
50 public ResponseEntity<Boolean> delete(@RequestParam("id") String id) throws ThingsboardException { 58 public ResponseEntity<Boolean> delete(@RequestParam("id") String id) throws ThingsboardException {
  59 + Map<String, Object> params = new HashMap<>();
  60 + params.put("categoryId", id);
  61 + TkPageData<TkDeviceAccountDTO> page = tkDeviceAccountService.page(params);
  62 + if (page != null && page.getTotal() > 0) {
  63 + throw new TkDataValidationException("类别下还有关联数据不能删除!");
  64 + }
51 return ResponseEntity.ok(tkDeviceCagegoryService.delete(id)); 65 return ResponseEntity.ok(tkDeviceCagegoryService.delete(id));
52 } 66 }
53 67
@@ -11,10 +11,7 @@ import org.springframework.stereotype.Service; @@ -11,10 +11,7 @@ import org.springframework.stereotype.Service;
11 import org.thingsboard.server.common.data.exception.ThingsboardException; 11 import org.thingsboard.server.common.data.exception.ThingsboardException;
12 import org.thingsboard.server.common.data.id.TenantId; 12 import org.thingsboard.server.common.data.id.TenantId;
13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; 13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
14 -import org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO;  
15 -import org.thingsboard.server.common.data.yunteng.dto.TkDeviceCagegoryDTO;  
16 -import org.thingsboard.server.common.data.yunteng.dto.TkSupplierDTO;  
17 -import org.thingsboard.server.common.data.yunteng.dto.UserDTO; 14 +import org.thingsboard.server.common.data.yunteng.dto.*;
18 import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; 15 import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils;
19 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 16 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
20 import org.thingsboard.server.dao.yunteng.entities.TkDeviceAccountEntity; 17 import org.thingsboard.server.dao.yunteng.entities.TkDeviceAccountEntity;
@@ -24,6 +21,7 @@ import org.thingsboard.server.dao.yunteng.service.*; @@ -24,6 +21,7 @@ import org.thingsboard.server.dao.yunteng.service.*;
24 21
25 import java.util.List; 22 import java.util.List;
26 import java.util.Map; 23 import java.util.Map;
  24 +import java.util.Optional;
27 import java.util.stream.Collectors; 25 import java.util.stream.Collectors;
28 26
29 @Service 27 @Service
@@ -156,6 +154,21 @@ public class TkDeviceAccountServiceImpl extends AbstractBaseService<TkDeviceAcco @@ -156,6 +154,21 @@ public class TkDeviceAccountServiceImpl extends AbstractBaseService<TkDeviceAcco
156 } 154 }
157 155
158 @Override 156 @Override
  157 + public List<TkDeviceAccountDTO> listBySupplierId(List<String> supplierIdList) throws ThingsboardException {
  158 + if (CollectionUtils.isNotEmpty(supplierIdList)) {
  159 + throw new TkDataValidationException("供应商id不能为空!");
  160 + }
  161 + QueryWrapper<TkDeviceAccountEntity> wrapper = new QueryWrapper<>();
  162 + LambdaQueryWrapper<TkDeviceAccountEntity> lambda = wrapper.lambda();
  163 + TenantId tenantId = SpringBeanUtils.getTenantId();
  164 + lambda.eq(TkDeviceAccountEntity::getTenantId, tenantId.getId().toString());
  165 + lambda.in(TkDeviceAccountEntity::getSupplierId, supplierIdList);
  166 + List<TkDeviceAccountEntity> entities = baseMapper.selectList(wrapper);
  167 + return Optional.ofNullable(entities).map(all -> all.stream().map(item -> item.getDTO(TkDeviceAccountDTO.class))
  168 + .collect(Collectors.toList())).orElse(null);
  169 + }
  170 +
  171 + @Override
159 public boolean delete(String id) { 172 public boolean delete(String id) {
160 int count = baseMapper.deleteById(id); 173 int count = baseMapper.deleteById(id);
161 return count > 0; 174 return count > 0;
@@ -107,7 +107,7 @@ public class TkDeviceCagegoryServiceImpl extends AbstractBaseService<TkDeviceCag @@ -107,7 +107,7 @@ public class TkDeviceCagegoryServiceImpl extends AbstractBaseService<TkDeviceCag
107 } 107 }
108 TkDeviceCagegoryUtil utils = new TkDeviceCagegoryUtil(topMenuList, subMenu); 108 TkDeviceCagegoryUtil utils = new TkDeviceCagegoryUtil(topMenuList, subMenu);
109 List<TkDeviceCagegoryDTO> result = utils.getTree(); 109 List<TkDeviceCagegoryDTO> result = utils.getTree();
110 - return result; 110 + return Optional.ofNullable(result).orElse(new ArrayList<>());
111 } 111 }
112 112
113 private List<String> getFullTreeId(List<String> filterIdList, Map<String, String> idMap) { 113 private List<String> getFullTreeId(List<String> filterIdList, Map<String, String> idMap) {
@@ -142,7 +142,7 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR @@ -142,7 +142,7 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR
142 dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); 142 dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString());
143 } 143 }
144 144
145 - if (dto.getPreserveStatus() != null) { 145 + if (dto.getPreserveStatus() == null) {
146 dto.setPreserveStatus(PreserveRecordStatusEnum.INCOMPLETE); 146 dto.setPreserveStatus(PreserveRecordStatusEnum.INCOMPLETE);
147 } 147 }
148 } 148 }
@@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
11 import org.thingsboard.server.common.data.exception.ThingsboardException; 11 import org.thingsboard.server.common.data.exception.ThingsboardException;
12 import org.thingsboard.server.common.data.id.TenantId; 12 import org.thingsboard.server.common.data.id.TenantId;
13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; 13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
  14 +import org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO;
14 import org.thingsboard.server.common.data.yunteng.dto.TkSupplierDTO; 15 import org.thingsboard.server.common.data.yunteng.dto.TkSupplierDTO;
15 import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; 16 import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils;
16 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 17 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
@@ -18,8 +19,11 @@ import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; @@ -18,8 +19,11 @@ import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity;
18 import org.thingsboard.server.dao.yunteng.entities.TkSupplierEntity; 19 import org.thingsboard.server.dao.yunteng.entities.TkSupplierEntity;
19 import org.thingsboard.server.dao.yunteng.mapper.TkSupplierMapper; 20 import org.thingsboard.server.dao.yunteng.mapper.TkSupplierMapper;
20 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 21 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  22 +import org.thingsboard.server.dao.yunteng.service.TkDeviceAccountService;
21 import org.thingsboard.server.dao.yunteng.service.TkSupplierService; 23 import org.thingsboard.server.dao.yunteng.service.TkSupplierService;
22 24
  25 +import java.util.ArrayList;
  26 +import java.util.Arrays;
23 import java.util.List; 27 import java.util.List;
24 import java.util.Optional; 28 import java.util.Optional;
25 import java.util.stream.Collectors; 29 import java.util.stream.Collectors;
@@ -29,6 +33,9 @@ import java.util.stream.Collectors; @@ -29,6 +33,9 @@ import java.util.stream.Collectors;
29 @Slf4j 33 @Slf4j
30 public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, TkSupplierEntity> 34 public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, TkSupplierEntity>
31 implements TkSupplierService { 35 implements TkSupplierService {
  36 +
  37 + private TkDeviceAccountService tkDeviceAccountService;
  38 +
32 @Override 39 @Override
33 public TkPageData<TkSupplierDTO> page(TkSupplierDTO condition) throws ThingsboardException { 40 public TkPageData<TkSupplierDTO> page(TkSupplierDTO condition) throws ThingsboardException {
34 QueryWrapper<TkSupplierEntity> wrapper = new QueryWrapper<>(); 41 QueryWrapper<TkSupplierEntity> wrapper = new QueryWrapper<>();
@@ -114,7 +121,13 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, @@ -114,7 +121,13 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper,
114 } 121 }
115 122
116 @Override 123 @Override
117 - public boolean delete(String id) { 124 + public boolean delete(String id) throws ThingsboardException {
  125 + List<String> supplierId = new ArrayList<>();
  126 + supplierId.add(id);
  127 + List<TkDeviceAccountDTO> tkDeviceAccountDTOS = tkDeviceAccountService.listBySupplierId(supplierId);
  128 + if (CollectionUtils.isNotEmpty(tkDeviceAccountDTOS)) {
  129 + throw new TkDataValidationException("存在关联的供应商无法删除!");
  130 + }
118 int count = baseMapper.deleteById(id); 131 int count = baseMapper.deleteById(id);
119 return count > 0; 132 return count > 0;
120 } 133 }
@@ -19,6 +19,8 @@ public interface TkDeviceAccountService extends BaseService<TkDeviceAccountEntit @@ -19,6 +19,8 @@ public interface TkDeviceAccountService extends BaseService<TkDeviceAccountEntit
19 19
20 List<String> getIdByDeviceName(String deviceName) throws ThingsboardException; 20 List<String> getIdByDeviceName(String deviceName) throws ThingsboardException;
21 21
  22 + List<TkDeviceAccountDTO> listBySupplierId(List<String> supplierId) throws ThingsboardException;
  23 +
22 boolean delete(String id); 24 boolean delete(String id);
23 25
24 } 26 }
@@ -16,7 +16,7 @@ public interface TkSupplierService extends BaseService<TkSupplierEntity> { @@ -16,7 +16,7 @@ public interface TkSupplierService extends BaseService<TkSupplierEntity> {
16 16
17 TkSupplierDTO detail(String id) throws ThingsboardException; 17 TkSupplierDTO detail(String id) throws ThingsboardException;
18 18
19 - boolean delete(String id); 19 + boolean delete(String id) throws ThingsboardException;
20 20
21 boolean delete(List<String> ids); 21 boolean delete(List<String> ids);
22 } 22 }