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