Showing
4 changed files
with
57 additions
and
8 deletions
@@ -32,6 +32,9 @@ public class TkDeviceCagegoryServiceImpl extends AbstractBaseService<TkDeviceCag | @@ -32,6 +32,9 @@ public class TkDeviceCagegoryServiceImpl extends AbstractBaseService<TkDeviceCag | ||
32 | @Override | 32 | @Override |
33 | public TkDeviceCagegoryDTO save(TkDeviceCagegoryDTO tkDeviceCagegoryDTO) throws ThingsboardException { | 33 | public TkDeviceCagegoryDTO save(TkDeviceCagegoryDTO tkDeviceCagegoryDTO) throws ThingsboardException { |
34 | checkDto(tkDeviceCagegoryDTO); | 34 | checkDto(tkDeviceCagegoryDTO); |
35 | + if (StringUtils.isBlank(tkDeviceCagegoryDTO.getId()) && checkDuplicateData(tkDeviceCagegoryDTO)) { | ||
36 | + throw new TkDataValidationException("同级目录下存在重名类别!"); | ||
37 | + } | ||
35 | String parentId = tkDeviceCagegoryDTO.getParentId(); | 38 | String parentId = tkDeviceCagegoryDTO.getParentId(); |
36 | TkDeviceCagegoryDTO parentDto = null; | 39 | TkDeviceCagegoryDTO parentDto = null; |
37 | if (StringUtils.isNotBlank(parentId)) { | 40 | if (StringUtils.isNotBlank(parentId)) { |
@@ -61,6 +64,27 @@ public class TkDeviceCagegoryServiceImpl extends AbstractBaseService<TkDeviceCag | @@ -61,6 +64,27 @@ public class TkDeviceCagegoryServiceImpl extends AbstractBaseService<TkDeviceCag | ||
61 | return tkDeviceCagegoryDTO; | 64 | return tkDeviceCagegoryDTO; |
62 | } | 65 | } |
63 | 66 | ||
67 | + private boolean checkDuplicateData(TkDeviceCagegoryDTO tkDeviceCagegoryDTO) throws ThingsboardException { | ||
68 | + Boolean result = false; | ||
69 | + if (StringUtils.isBlank(tkDeviceCagegoryDTO.getParentId())) { | ||
70 | + return result; | ||
71 | + } | ||
72 | + QueryWrapper<TkDeviceCagegoryEntity> queryWrapper = new QueryWrapper(); | ||
73 | + LambdaQueryWrapper<TkDeviceCagegoryEntity> lambda = queryWrapper.lambda(); | ||
74 | + TenantId tenantId = SpringBeanUtils.getTenantId(); | ||
75 | + lambda.eq(TkDeviceCagegoryEntity::getTenantId, tenantId.getId().toString()); | ||
76 | + lambda.eq(TkDeviceCagegoryEntity::getParentId, tkDeviceCagegoryDTO.getParentId()); | ||
77 | + lambda.eq(TkDeviceCagegoryEntity::getName, tkDeviceCagegoryDTO.getName()); | ||
78 | + | ||
79 | + List<TkDeviceCagegoryEntity> entityList = baseMapper.selectList(queryWrapper); | ||
80 | + if (CollectionUtils.isNotEmpty(entityList)) { | ||
81 | + return true; | ||
82 | + } | ||
83 | + | ||
84 | + return result; | ||
85 | + | ||
86 | + } | ||
87 | + | ||
64 | private void checkDto(TkDeviceCagegoryDTO dto) throws ThingsboardException { | 88 | private void checkDto(TkDeviceCagegoryDTO dto) throws ThingsboardException { |
65 | if (StringUtils.isBlank(dto.getName())) { | 89 | if (StringUtils.isBlank(dto.getName())) { |
66 | throw new TkDataValidationException("类型名称不能为空!"); | 90 | throw new TkDataValidationException("类型名称不能为空!"); |
@@ -15,6 +15,7 @@ import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; | @@ -15,6 +15,7 @@ import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; | ||
15 | import org.thingsboard.server.common.data.yunteng.enums.MalfunctionReasonStatusEnum; | 15 | import org.thingsboard.server.common.data.yunteng.enums.MalfunctionReasonStatusEnum; |
16 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | 16 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
17 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | 17 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
18 | +import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; | ||
18 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; | 19 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; |
19 | import org.thingsboard.server.dao.yunteng.mapper.TkMalfunctionReasonMapper; | 20 | import org.thingsboard.server.dao.yunteng.mapper.TkMalfunctionReasonMapper; |
20 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | 21 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
@@ -48,6 +49,7 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | @@ -48,6 +49,7 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | ||
48 | lambda.eq(TkMalfunctionReasonEntity::getStatus, condition.getStatus()); | 49 | lambda.eq(TkMalfunctionReasonEntity::getStatus, condition.getStatus()); |
49 | } | 50 | } |
50 | 51 | ||
52 | + lambda.orderByDesc(TenantBaseEntity::getCreateTime); | ||
51 | Page<TkMalfunctionReasonEntity> page = new Page<>(); | 53 | Page<TkMalfunctionReasonEntity> page = new Page<>(); |
52 | page.setCurrent(condition.getPage()); | 54 | page.setCurrent(condition.getPage()); |
53 | page.setSize(condition.getPageSize()); | 55 | page.setSize(condition.getPageSize()); |
@@ -82,6 +84,17 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | @@ -82,6 +84,17 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | ||
82 | @Override | 84 | @Override |
83 | public TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO) throws ThingsboardException { | 85 | public TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO) throws ThingsboardException { |
84 | checkDto(tkMalfunctionReasonDTO); | 86 | checkDto(tkMalfunctionReasonDTO); |
87 | + if (StringUtils.isBlank(tkMalfunctionReasonDTO.getId())) { | ||
88 | + List<TkMalfunctionReasonDTO> reasonEntities = checkDuplicateData(tkMalfunctionReasonDTO.getReason()); | ||
89 | + if (CollectionUtils.isNotEmpty(reasonEntities)) { | ||
90 | + throw new TkDataValidationException("该故障原因已存在!"); | ||
91 | + } | ||
92 | + List<TkMalfunctionReasonDTO> codeEntities = checkDuplicateData(tkMalfunctionReasonDTO.getCode()); | ||
93 | + if (CollectionUtils.isNotEmpty(codeEntities)) { | ||
94 | + throw new TkDataValidationException("该故障编码已存在!"); | ||
95 | + } | ||
96 | + } | ||
97 | + | ||
85 | TkMalfunctionReasonEntity entity = new TkMalfunctionReasonEntity(); | 98 | TkMalfunctionReasonEntity entity = new TkMalfunctionReasonEntity(); |
86 | if (StringUtils.isBlank(tkMalfunctionReasonDTO.getId())) { | 99 | if (StringUtils.isBlank(tkMalfunctionReasonDTO.getId())) { |
87 | tkMalfunctionReasonDTO.copyToEntity(entity); | 100 | tkMalfunctionReasonDTO.copyToEntity(entity); |
@@ -98,6 +111,19 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | @@ -98,6 +111,19 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | ||
98 | return tkMalfunctionReasonDTO; | 111 | return tkMalfunctionReasonDTO; |
99 | } | 112 | } |
100 | 113 | ||
114 | + private List<TkMalfunctionReasonDTO> checkDuplicateData(String key) throws ThingsboardException { | ||
115 | + QueryWrapper<TkMalfunctionReasonEntity> wrapper = new QueryWrapper<>(); | ||
116 | + LambdaQueryWrapper<TkMalfunctionReasonEntity> lambda = wrapper.lambda(); | ||
117 | + TenantId tenantId = SpringBeanUtils.getTenantId(); | ||
118 | + lambda.eq(TkMalfunctionReasonEntity::getTenantId, tenantId.getId().toString()); | ||
119 | + if (StringUtils.isNotBlank(key)) { | ||
120 | + lambda.and(e -> e.eq(TkMalfunctionReasonEntity::getCode, key).or().eq(TkMalfunctionReasonEntity::getReason, key)); | ||
121 | + } | ||
122 | + List<TkMalfunctionReasonEntity> entitys = baseMapper.selectList(wrapper); | ||
123 | + return Optional.ofNullable(entitys).map(all -> all.stream().map(item -> item.getDTO(TkMalfunctionReasonDTO.class)) | ||
124 | + .collect(Collectors.toList())).orElse(null); | ||
125 | + } | ||
126 | + | ||
101 | @Override | 127 | @Override |
102 | public TkMalfunctionReasonDTO detail(String id) throws ThingsboardException { | 128 | public TkMalfunctionReasonDTO detail(String id) throws ThingsboardException { |
103 | TkMalfunctionReasonDTO result = null; | 129 | TkMalfunctionReasonDTO result = null; |
@@ -21,6 +21,7 @@ import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | @@ -21,6 +21,7 @@ import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | ||
21 | import org.thingsboard.server.dao.yunteng.service.TkSupplierService; | 21 | import org.thingsboard.server.dao.yunteng.service.TkSupplierService; |
22 | 22 | ||
23 | import java.util.List; | 23 | import java.util.List; |
24 | +import java.util.Locale; | ||
24 | import java.util.Optional; | 25 | import java.util.Optional; |
25 | import java.util.stream.Collectors; | 26 | import java.util.stream.Collectors; |
26 | 27 | ||
@@ -32,19 +33,17 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, | @@ -32,19 +33,17 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, | ||
32 | @Override | 33 | @Override |
33 | public TkPageData<TkSupplierDTO> page(TkSupplierDTO condition) throws ThingsboardException { | 34 | public TkPageData<TkSupplierDTO> page(TkSupplierDTO condition) throws ThingsboardException { |
34 | QueryWrapper<TkSupplierEntity> wrapper = new QueryWrapper<>(); | 35 | QueryWrapper<TkSupplierEntity> wrapper = new QueryWrapper<>(); |
35 | - LambdaQueryWrapper<TkSupplierEntity> lambda = wrapper.lambda(); | ||
36 | TenantId tenantId = SpringBeanUtils.getTenantId(); | 36 | TenantId tenantId = SpringBeanUtils.getTenantId(); |
37 | - lambda.eq(TkSupplierEntity::getTenantId, tenantId.getId().toString()); | 37 | + wrapper.eq("tenant_id", tenantId.getId().toString()); |
38 | if (StringUtils.isNotBlank(condition.getCode())) { | 38 | if (StringUtils.isNotBlank(condition.getCode())) { |
39 | - lambda.like(TkSupplierEntity::getCode, condition.getCode()); | 39 | + wrapper.like("lower(code)", condition.getCode().toLowerCase(Locale.ROOT)); |
40 | } | 40 | } |
41 | 41 | ||
42 | if (StringUtils.isNotBlank(condition.getName())) { | 42 | if (StringUtils.isNotBlank(condition.getName())) { |
43 | - lambda.like(TkSupplierEntity::getName, condition.getName()); | 43 | + wrapper.like("lower(name)", condition.getName().toLowerCase(Locale.ROOT)); |
44 | } | 44 | } |
45 | 45 | ||
46 | - lambda.orderByDesc(TenantBaseEntity::getCreateTime); | ||
47 | - | 46 | + wrapper.orderByDesc("create_time"); |
48 | Page<TkSupplierEntity> page = new Page<>(); | 47 | Page<TkSupplierEntity> page = new Page<>(); |
49 | page.setCurrent(condition.getPage()); | 48 | page.setCurrent(condition.getPage()); |
50 | page.setSize(condition.getPageSize()); | 49 | page.setSize(condition.getPageSize()); |
@@ -114,7 +113,7 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, | @@ -114,7 +113,7 @@ public class TkSupplierServiceImpl extends AbstractBaseService<TkSupplierMapper, | ||
114 | } | 113 | } |
115 | 114 | ||
116 | @Override | 115 | @Override |
117 | - public boolean delete(String id){ | 116 | + public boolean delete(String id) { |
118 | int count = baseMapper.deleteById(id); | 117 | int count = baseMapper.deleteById(id); |
119 | return count > 0; | 118 | return count > 0; |
120 | } | 119 | } |
@@ -53,7 +53,7 @@ | @@ -53,7 +53,7 @@ | ||
53 | AND o.tenant_id = #{queryMap.tenantId} | 53 | AND o.tenant_id = #{queryMap.tenantId} |
54 | </if> | 54 | </if> |
55 | <if test="queryMap.code !=null and queryMap.code !=''"> | 55 | <if test="queryMap.code !=null and queryMap.code !=''"> |
56 | - AND o.code LIKE concat('%',#{queryMap.code}::TEXT,'%') | 56 | + AND o.code ILIKE concat('%',#{queryMap.code}::TEXT,'%') |
57 | </if> | 57 | </if> |
58 | <if test="queryMap.status !=null and queryMap.status !=''"> | 58 | <if test="queryMap.status !=null and queryMap.status !=''"> |
59 | AND o.status = #{queryMap.status} | 59 | AND o.status = #{queryMap.status} |