Commit 7565d561f92269d43e623ffad86a5cb6aced1c9e

Authored by 胡翰林
1 parent 911a4d6a

bug修复

... ... @@ -8,11 +8,17 @@ import org.springframework.http.ResponseEntity;
8 8 import org.springframework.security.access.prepost.PreAuthorize;
9 9 import org.springframework.web.bind.annotation.*;
10 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 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 16 import org.thingsboard.server.dao.yunteng.service.TkDeviceCagegoryService;
13 17 import org.thingsboard.server.queue.util.TbCoreComponent;
14 18
  19 +import java.util.HashMap;
15 20 import java.util.List;
  21 +import java.util.Map;
16 22
17 23 @RestController
18 24 @TbCoreComponent
... ... @@ -23,6 +29,8 @@ import java.util.List;
23 29 public class TkDeviceCagegoryController extends BaseController {
24 30 private final TkDeviceCagegoryService tkDeviceCagegoryService;
25 31
  32 + private final TkDeviceAccountService tkDeviceAccountService;
  33 +
26 34 @PostMapping("/getCagegoryByParentid")
27 35 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
28 36 @ApiOperation("根据父类型获取设备类别")
... ... @@ -48,6 +56,12 @@ public class TkDeviceCagegoryController extends BaseController {
48 56 @GetMapping("/delete")
49 57 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
50 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 65 return ResponseEntity.ok(tkDeviceCagegoryService.delete(id));
52 66 }
53 67
... ...
... ... @@ -11,10 +11,7 @@ import org.springframework.stereotype.Service;
11 11 import org.thingsboard.server.common.data.exception.ThingsboardException;
12 12 import org.thingsboard.server.common.data.id.TenantId;
13 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 15 import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils;
19 16 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
20 17 import org.thingsboard.server.dao.yunteng.entities.TkDeviceAccountEntity;
... ... @@ -24,6 +21,7 @@ import org.thingsboard.server.dao.yunteng.service.*;
24 21
25 22 import java.util.List;
26 23 import java.util.Map;
  24 +import java.util.Optional;
27 25 import java.util.stream.Collectors;
28 26
29 27 @Service
... ... @@ -156,6 +154,21 @@ public class TkDeviceAccountServiceImpl extends AbstractBaseService<TkDeviceAcco
156 154 }
157 155
158 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 172 public boolean delete(String id) {
160 173 int count = baseMapper.deleteById(id);
161 174 return count > 0;
... ...
... ... @@ -107,7 +107,7 @@ public class TkDeviceCagegoryServiceImpl extends AbstractBaseService<TkDeviceCag
107 107 }
108 108 TkDeviceCagegoryUtil utils = new TkDeviceCagegoryUtil(topMenuList, subMenu);
109 109 List<TkDeviceCagegoryDTO> result = utils.getTree();
110   - return result;
  110 + return Optional.ofNullable(result).orElse(new ArrayList<>());
111 111 }
112 112
113 113 private List<String> getFullTreeId(List<String> filterIdList, Map<String, String> idMap) {
... ...
... ... @@ -142,7 +142,7 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR
142 142 dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString());
143 143 }
144 144
145   - if (dto.getPreserveStatus() != null) {
  145 + if (dto.getPreserveStatus() == null) {
146 146 dto.setPreserveStatus(PreserveRecordStatusEnum.INCOMPLETE);
147 147 }
148 148 }
... ...
... ... @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
11 11 import org.thingsboard.server.common.data.exception.ThingsboardException;
12 12 import org.thingsboard.server.common.data.id.TenantId;
13 13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
  14 +import org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO;
14 15 import org.thingsboard.server.common.data.yunteng.dto.TkSupplierDTO;
15 16 import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils;
16 17 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
... ... @@ -18,8 +19,11 @@ import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity;
18 19 import org.thingsboard.server.dao.yunteng.entities.TkSupplierEntity;
19 20 import org.thingsboard.server.dao.yunteng.mapper.TkSupplierMapper;
20 21 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  22 +import org.thingsboard.server.dao.yunteng.service.TkDeviceAccountService;
21 23 import org.thingsboard.server.dao.yunteng.service.TkSupplierService;
22 24
  25 +import java.util.ArrayList;
  26 +import java.util.Arrays;
23 27 import java.util.List;
24 28 import java.util.Optional;
25 29 import java.util.stream.Collectors;
... ... @@ -29,6 +33,9 @@ import java.util.stream.Collectors;
29 33 @Slf4j
30 34 public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, TkSupplierEntity>
31 35 implements TkSupplierService {
  36 +
  37 + private TkDeviceAccountService tkDeviceAccountService;
  38 +
32 39 @Override
33 40 public TkPageData<TkSupplierDTO> page(TkSupplierDTO condition) throws ThingsboardException {
34 41 QueryWrapper<TkSupplierEntity> wrapper = new QueryWrapper<>();
... ... @@ -114,7 +121,13 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper,
114 121 }
115 122
116 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 131 int count = baseMapper.deleteById(id);
119 132 return count > 0;
120 133 }
... ...
... ... @@ -19,6 +19,8 @@ public interface TkDeviceAccountService extends BaseService<TkDeviceAccountEntit
19 19
20 20 List<String> getIdByDeviceName(String deviceName) throws ThingsboardException;
21 21
  22 + List<TkDeviceAccountDTO> listBySupplierId(List<String> supplierId) throws ThingsboardException;
  23 +
22 24 boolean delete(String id);
23 25
24 26 }
... ...
... ... @@ -16,7 +16,7 @@ public interface TkSupplierService extends BaseService<TkSupplierEntity> {
16 16
17 17 TkSupplierDTO detail(String id) throws ThingsboardException;
18 18
19   - boolean delete(String id);
  19 + boolean delete(String id) throws ThingsboardException;
20 20
21 21 boolean delete(List<String> ids);
22 22 }
... ...