Showing
7 changed files
with
50 additions
and
8 deletions
@@ -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 | } |