Commit 119aca6c5c65e643bb8a97c35d080faac8a75456
Merge remote-tracking branch 'origin/test_hhl_0102' into test_hhl_0102
Showing
15 changed files
with
92 additions
and
19 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 | ... | ... |
... | ... | @@ -14,6 +14,7 @@ import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; |
14 | 14 | import org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO; |
15 | 15 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
16 | 16 | import org.thingsboard.server.common.data.yunteng.enums.RepairOrderStatusEnum; |
17 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | |
17 | 18 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
18 | 19 | import org.thingsboard.server.controller.BaseController; |
19 | 20 | import org.thingsboard.server.dao.yunteng.service.TkDeviceAccountService; |
... | ... | @@ -92,6 +93,8 @@ public class TkRepairOrderController extends BaseController { |
92 | 93 | throws ThingsboardException { |
93 | 94 | params.put(PAGE, page); |
94 | 95 | params.put(PAGE_SIZE, pageSize); |
96 | + String currentUserId = getCurrentUser().getCurrentUserId(); | |
97 | + params.put("userId", currentUserId); | |
95 | 98 | return tkRepairOrderService.page(params); |
96 | 99 | } |
97 | 100 | ... | ... |
... | ... | @@ -4,13 +4,17 @@ import io.swagger.annotations.Api; |
4 | 4 | import io.swagger.annotations.ApiOperation; |
5 | 5 | import lombok.RequiredArgsConstructor; |
6 | 6 | import lombok.extern.slf4j.Slf4j; |
7 | +import org.apache.commons.collections4.CollectionUtils; | |
7 | 8 | import org.springframework.http.ResponseEntity; |
8 | 9 | import org.springframework.security.access.prepost.PreAuthorize; |
9 | 10 | import org.springframework.web.bind.annotation.*; |
10 | 11 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
12 | +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | |
13 | +import org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO; | |
11 | 14 | import org.thingsboard.server.common.data.yunteng.dto.TkSupplierDTO; |
12 | 15 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
13 | 16 | import org.thingsboard.server.controller.BaseController; |
17 | +import org.thingsboard.server.dao.yunteng.service.TkDeviceAccountService; | |
14 | 18 | import org.thingsboard.server.dao.yunteng.service.TkSupplierService; |
15 | 19 | import org.thingsboard.server.queue.util.TbCoreComponent; |
16 | 20 | |
... | ... | @@ -28,6 +32,7 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. |
28 | 32 | public class TkSupplierController extends BaseController { |
29 | 33 | private final TkSupplierService tkSupplierService; |
30 | 34 | |
35 | + private final TkDeviceAccountService tkDeviceAccountService; | |
31 | 36 | |
32 | 37 | @PostMapping("/pageData") |
33 | 38 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") |
... | ... | @@ -61,6 +66,10 @@ public class TkSupplierController extends BaseController { |
61 | 66 | @PostMapping("/delete") |
62 | 67 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") |
63 | 68 | public ResponseEntity<Boolean> delete(@RequestBody TkSupplierDTO param) throws ThingsboardException { |
69 | + List<TkDeviceAccountDTO> tkDeviceAccountDTOS = tkDeviceAccountService.listBySupplierId(param.getIds()); | |
70 | + if (CollectionUtils.isNotEmpty(tkDeviceAccountDTOS)) { | |
71 | + throw new TkDataValidationException("存在关联的供应商无法删除!"); | |
72 | + } | |
64 | 73 | return ResponseEntity.ok(tkSupplierService.delete(param.getIds())); |
65 | 74 | } |
66 | 75 | ... | ... |
... | ... | @@ -31,7 +31,7 @@ server: |
31 | 31 | # Server bind-address |
32 | 32 | address: "${HTTP_BIND_ADDRESS:0.0.0.0}" |
33 | 33 | # Server bind port |
34 | - port: "${HTTP_BIND_PORT:8080}" | |
34 | + port: "${HTTP_BIND_PORT:9527}" | |
35 | 35 | # Server forward headers strategy |
36 | 36 | forward_headers_strategy: "${HTTP_FORWARD_HEADERS_STRATEGY:NONE}" |
37 | 37 | # Server SSL configuration |
... | ... | @@ -766,7 +766,7 @@ spring: |
766 | 766 | datasource: |
767 | 767 | # Database driver for Spring JPA - org.postgresql.Driver |
768 | 768 | driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}" |
769 | - url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://10.9.0.221:5432/thingskit}" | |
769 | + url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://10.9.0.205:5432/thingskit}" | |
770 | 770 | username: "${SPRING_DATASOURCE_USERNAME:postgres}" |
771 | 771 | password: "${SPRING_DATASOURCE_PASSWORD:postgres}" |
772 | 772 | hikari: | ... | ... |
... | ... | @@ -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.isEmpty(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) { | ... | ... |
... | ... | @@ -12,6 +12,8 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio |
12 | 12 | import org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailStatusDTO; |
13 | 13 | import org.thingsboard.server.common.data.yunteng.enums.PreserveDetailStatusEnum; |
14 | 14 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
15 | +import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; | |
16 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailEntity; | |
15 | 17 | import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailStatusEntity; |
16 | 18 | import org.thingsboard.server.dao.yunteng.mapper.TkPreserveDetailStatusMapper; |
17 | 19 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
... | ... | @@ -44,6 +46,15 @@ public class TkPreserveDetailStatusServiceImpl extends AbstractBaseService<TkPre |
44 | 46 | } |
45 | 47 | |
46 | 48 | @Override |
49 | + public void deleteNotInIdEqRecordId(String recordId, List<String> notinIds) throws ThingsboardException { | |
50 | + baseMapper.delete(new QueryWrapper<TkPreserveDetailStatusEntity>() | |
51 | + .lambda().eq(TkPreserveDetailStatusEntity::getPreserveRecordId, recordId) | |
52 | + .eq(TenantBaseEntity::getTenantId, SpringBeanUtils.getTenantId().getId().toString()) | |
53 | + .notIn(TkPreserveDetailStatusEntity::getId, notinIds) | |
54 | + ); | |
55 | + } | |
56 | + | |
57 | + @Override | |
47 | 58 | public List<TkPreserveDetailStatusDTO> listByPreserveRecordId(List<String> preserveRecordId) throws ThingsboardException { |
48 | 59 | if (CollectionUtils.isEmpty(preserveRecordId)) { |
49 | 60 | throw new TkDataValidationException("保养记录id不能为空!"); | ... | ... |
... | ... | @@ -88,11 +88,12 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR |
88 | 88 | @Transactional |
89 | 89 | public TkPreserveRecordDTO save(TkPreserveRecordDTO dto) throws ThingsboardException { |
90 | 90 | checkDto(dto); |
91 | - | |
91 | + Boolean isAdd = false; | |
92 | 92 | TkPreserveRecordEntity entity = new TkPreserveRecordEntity(); |
93 | 93 | if (StringUtils.isBlank(dto.getId())) { |
94 | 94 | dto.copyToEntity(entity); |
95 | 95 | baseMapper.insert(entity); |
96 | + isAdd = true; | |
96 | 97 | } else { |
97 | 98 | LambdaQueryWrapper<TkPreserveRecordEntity> filter = new QueryWrapper<TkPreserveRecordEntity>().lambda() |
98 | 99 | .eq(TkPreserveRecordEntity::getId, dto.getId()); |
... | ... | @@ -103,6 +104,14 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR |
103 | 104 | String id = dto.getId(); |
104 | 105 | List<TkPreserveDetailStatusDTO> preserveDetailStatusList = dto.getPreserveDetailStatusList(); |
105 | 106 | if (CollectionUtils.isNotEmpty(preserveDetailStatusList)) { |
107 | + List<String> detaulStatusIdList = preserveDetailStatusList.stream().filter(e -> StringUtils.isNotBlank(e.getId())) | |
108 | + .map(BaseDTO::getId).collect(Collectors.toList()); | |
109 | + if (isAdd == false) { | |
110 | + if (CollectionUtils.isEmpty(detaulStatusIdList)) { | |
111 | + detaulStatusIdList.add("empty"); | |
112 | + } | |
113 | + tkPreserveDetailStatusService.deleteNotInIdEqRecordId(id, detaulStatusIdList); | |
114 | + } | |
106 | 115 | for (TkPreserveDetailStatusDTO tkPreserveDetailStatusDTO : preserveDetailStatusList) { |
107 | 116 | tkPreserveDetailStatusDTO.setPreserveRecordId(id); |
108 | 117 | tkPreserveDetailStatusService.save(tkPreserveDetailStatusDTO); |
... | ... | @@ -133,7 +142,7 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR |
133 | 142 | dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
134 | 143 | } |
135 | 144 | |
136 | - if (dto.getPreserveStatus() != null) { | |
145 | + if (dto.getPreserveStatus() == null) { | |
137 | 146 | dto.setPreserveStatus(PreserveRecordStatusEnum.INCOMPLETE); |
138 | 147 | } |
139 | 148 | } | ... | ... |
... | ... | @@ -9,11 +9,7 @@ import org.apache.commons.collections4.CollectionUtils; |
9 | 9 | import org.apache.commons.lang3.StringUtils; |
10 | 10 | import org.springframework.stereotype.Service; |
11 | 11 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
12 | -import org.thingsboard.server.common.data.id.TenantId; | |
13 | 12 | import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; |
14 | -import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | |
15 | -import org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO; | |
16 | -import org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO; | |
17 | 13 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
18 | 14 | import org.thingsboard.server.common.data.yunteng.enums.RepairOrderStatusEnum; |
19 | 15 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
... | ... | @@ -30,7 +26,6 @@ import java.time.LocalDateTime; |
30 | 26 | import java.util.HashMap; |
31 | 27 | import java.util.Map; |
32 | 28 | import java.util.Optional; |
33 | -import java.util.UUID; | |
34 | 29 | |
35 | 30 | @Service |
36 | 31 | @RequiredArgsConstructor |
... | ... | @@ -151,6 +146,10 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM |
151 | 146 | if (StringUtils.isBlank(dto.getTenantId())) { |
152 | 147 | dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
153 | 148 | } |
149 | + | |
150 | + if (dto.getStatus() == null) { | |
151 | + dto.setStatus(RepairOrderStatusEnum.SCHEDULING); | |
152 | + } | |
154 | 153 | } |
155 | 154 | |
156 | 155 | @Override | ... | ... |
... | ... | @@ -14,6 +14,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio |
14 | 14 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
15 | 15 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairRecordDTO; |
16 | 16 | import org.thingsboard.server.common.data.yunteng.dto.UserDTO; |
17 | +import org.thingsboard.server.common.data.yunteng.utils.DateTimeUtils; | |
17 | 18 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
18 | 19 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
19 | 20 | import org.thingsboard.server.dao.yunteng.entities.TkRepairRecordEntity; |
... | ... | @@ -24,6 +25,7 @@ import org.thingsboard.server.dao.yunteng.service.TkRepairRecordService; |
24 | 25 | import org.thingsboard.server.dao.yunteng.service.TkUserService; |
25 | 26 | |
26 | 27 | import java.time.LocalDateTime; |
28 | +import java.util.Date; | |
27 | 29 | import java.util.HashMap; |
28 | 30 | import java.util.Map; |
29 | 31 | import java.util.Optional; |
... | ... | @@ -39,9 +41,10 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor |
39 | 41 | |
40 | 42 | private final TkRepairOrderService tkRepairOrderService; |
41 | 43 | |
42 | - | |
43 | 44 | private final TkUserService tkUserService; |
44 | 45 | |
46 | + private final String REPAIR_RECORD_CODE_PREFIX = "RRC_"; | |
47 | + | |
45 | 48 | @Override |
46 | 49 | public TkPageData<TkRepairRecordDTO> page(Map<String, Object> params) throws ThingsboardException { |
47 | 50 | params.put("tenantId", SpringBeanUtils.getTenantId().getId().toString()); |
... | ... | @@ -94,6 +97,11 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor |
94 | 97 | if (StringUtils.isBlank(dto.getTenantId())) { |
95 | 98 | dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
96 | 99 | } |
100 | + | |
101 | + if (StringUtils.isBlank(dto.getCode())) { | |
102 | + long time = new Date().getTime(); | |
103 | + dto.setCode(REPAIR_RECORD_CODE_PREFIX + time); | |
104 | + } | |
97 | 105 | } |
98 | 106 | |
99 | 107 | ... | ... |
... | ... | @@ -114,7 +114,7 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, |
114 | 114 | } |
115 | 115 | |
116 | 116 | @Override |
117 | - public boolean delete(String id) { | |
117 | + public boolean delete(String id){ | |
118 | 118 | int count = baseMapper.deleteById(id); |
119 | 119 | return count > 0; |
120 | 120 | } | ... | ... |
... | ... | @@ -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 | } | ... | ... |
... | ... | @@ -9,5 +9,7 @@ import java.util.List; |
9 | 9 | public interface TkPreserveDetailStatusService extends BaseService<TkPreserveDetailStatusEntity> { |
10 | 10 | TkPreserveDetailStatusDTO save(TkPreserveDetailStatusDTO dto) throws ThingsboardException; |
11 | 11 | |
12 | + void deleteNotInIdEqRecordId(String recordId, List<String> notinIds) throws ThingsboardException; | |
13 | + | |
12 | 14 | List<TkPreserveDetailStatusDTO> listByPreserveRecordId(List<String> preserveRecordId) throws ThingsboardException; |
13 | 15 | } | ... | ... |
... | ... | @@ -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 | - boolean delete(List<String> ids); | |
21 | + boolean delete(List<String> ids) throws ThingsboardException; | |
22 | 22 | } | ... | ... |
... | ... | @@ -53,9 +53,12 @@ |
53 | 53 | inner join qg_device_account da on da.id=o.device_id |
54 | 54 | inner join sys_user su2 on su2.id=da.director_id |
55 | 55 | <where> |
56 | - <if test="queryMap.id !=null "> | |
56 | + <if test="queryMap.id !=null and queryMap.id !=''"> | |
57 | 57 | AND o.id = #{queryMap.id} |
58 | 58 | </if> |
59 | + <if test="queryMap.userId !=null and queryMap.userId !=''"> | |
60 | + AND (o.report_by = #{queryMap.userId} or o.creator=#{queryMap.userId} or da.director_id=#{queryMap.userId}) | |
61 | + </if> | |
59 | 62 | <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> |
60 | 63 | AND o.tenant_id = #{queryMap.tenantId} |
61 | 64 | </if> | ... | ... |