Showing
15 changed files
with
282 additions
and
9 deletions
@@ -371,3 +371,18 @@ CREATE TABLE "public"."qg_supplier" ( | @@ -371,3 +371,18 @@ CREATE TABLE "public"."qg_supplier" ( | ||
371 | "update_time" timestamp(6), | 371 | "update_time" timestamp(6), |
372 | CONSTRAINT "qg_supplier_pkey" PRIMARY KEY ("id") | 372 | CONSTRAINT "qg_supplier_pkey" PRIMARY KEY ("id") |
373 | ); | 373 | ); |
374 | + | ||
375 | +CREATE TABLE "public"."qg_preserve_detail_status" ( | ||
376 | + "id" varchar(36) NOT NULL, | ||
377 | + "preserve_record_id" varchar(36), | ||
378 | + "preserve_detail_id" varchar(36), | ||
379 | + "status" varchar(50), | ||
380 | + "tenant_id" varchar(36), | ||
381 | + "create_time" timestamp(6), | ||
382 | + "creator" varchar(36), | ||
383 | + "updater" varchar(36), | ||
384 | + "update_time" timestamp(6), | ||
385 | + CONSTRAINT "qg_preserve_detail_status_pkey" PRIMARY KEY ("id") | ||
386 | +); | ||
387 | + | ||
388 | +COMMENT ON TABLE "public"."qg_preserve_detail_status" IS '保养记录明细状态'; |
@@ -1119,3 +1119,16 @@ CREATE TABLE IF NOT EXISTS qg_supplier ( | @@ -1119,3 +1119,16 @@ CREATE TABLE IF NOT EXISTS qg_supplier ( | ||
1119 | "update_time" timestamp(6), | 1119 | "update_time" timestamp(6), |
1120 | CONSTRAINT "qg_supplier_pkey" PRIMARY KEY ("id") | 1120 | CONSTRAINT "qg_supplier_pkey" PRIMARY KEY ("id") |
1121 | ); | 1121 | ); |
1122 | + | ||
1123 | +CREATE TABLE IF NOT EXISTS qg_preserve_detail_status ( | ||
1124 | + "id" varchar(36) NOT NULL, | ||
1125 | + "preserve_record_id" varchar(36), | ||
1126 | + "preserve_detail_id" varchar(36), | ||
1127 | + "status" varchar(50), | ||
1128 | + "tenant_id" varchar(36), | ||
1129 | + "create_time" timestamp(6), | ||
1130 | + "creator" varchar(36), | ||
1131 | + "updater" varchar(36), | ||
1132 | + "update_time" timestamp(6), | ||
1133 | + CONSTRAINT "qg_preserve_detail_status_pkey" PRIMARY KEY ("id") | ||
1134 | +); |
@@ -26,7 +26,7 @@ public class TkPreserveDetailDTO extends TenantDTO { | @@ -26,7 +26,7 @@ public class TkPreserveDetailDTO extends TenantDTO { | ||
26 | @ApiModelProperty(value = "方案id") | 26 | @ApiModelProperty(value = "方案id") |
27 | private String checkPlanId; | 27 | private String checkPlanId; |
28 | 28 | ||
29 | - @ApiModelProperty(value = "方案id") | 29 | + @ApiModelProperty(value = "方案名称") |
30 | private String checkPlanName; | 30 | private String checkPlanName; |
31 | 31 | ||
32 | @ApiModelProperty(value = "执行状态(UNEXECUTED未执行,EXECUTED已执行)") | 32 | @ApiModelProperty(value = "执行状态(UNEXECUTED未执行,EXECUTED已执行)") |
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | +import lombok.Data; | ||
5 | +import lombok.EqualsAndHashCode; | ||
6 | +import org.thingsboard.server.common.data.yunteng.enums.PreserveDetailStatusEnum; | ||
7 | + | ||
8 | +@EqualsAndHashCode(callSuper = true) | ||
9 | +@Data | ||
10 | +public class TkPreserveDetailStatusDTO extends TenantDTO { | ||
11 | + | ||
12 | + @ApiModelProperty(value = "保养记录id") | ||
13 | + private String preserveRecordId; | ||
14 | + | ||
15 | + @ApiModelProperty(value = "保养明细id") | ||
16 | + private String preserveDetailId; | ||
17 | + | ||
18 | + @ApiModelProperty(value = "执行状态") | ||
19 | + private PreserveDetailStatusEnum status; | ||
20 | + | ||
21 | + @ApiModelProperty(value = "方案明细") | ||
22 | + private String preserveDetail; | ||
23 | + | ||
24 | + @ApiModelProperty(value = "设备信息") | ||
25 | + private TkDeviceAccountDTO deviceInfo; | ||
26 | +} |
@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode; | @@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode; | ||
9 | import org.thingsboard.server.common.data.yunteng.enums.PreserveRecordStatusEnum; | 9 | import org.thingsboard.server.common.data.yunteng.enums.PreserveRecordStatusEnum; |
10 | 10 | ||
11 | import java.time.LocalDateTime; | 11 | import java.time.LocalDateTime; |
12 | +import java.util.List; | ||
12 | 13 | ||
13 | @EqualsAndHashCode(callSuper = true) | 14 | @EqualsAndHashCode(callSuper = true) |
14 | @Data | 15 | @Data |
@@ -36,6 +37,9 @@ public class TkPreserveRecordDTO extends TenantDTO { | @@ -36,6 +37,9 @@ public class TkPreserveRecordDTO extends TenantDTO { | ||
36 | @ApiModelProperty(value = "保养计划名称") | 37 | @ApiModelProperty(value = "保养计划名称") |
37 | private String preservePlanName; | 38 | private String preservePlanName; |
38 | 39 | ||
40 | + @ApiModelProperty(value = "保养明细执行状态") | ||
41 | + private List<TkPreserveDetailStatusDTO> preserveDetailStatusList; | ||
42 | + | ||
39 | @ApiModelProperty(value = "查询开始时间") | 43 | @ApiModelProperty(value = "查询开始时间") |
40 | private LocalDateTime startDate; | 44 | private LocalDateTime startDate; |
41 | 45 |
@@ -681,8 +681,9 @@ public class ModelConstants { | @@ -681,8 +681,9 @@ public class ModelConstants { | ||
681 | */ | 681 | */ |
682 | public static final String TKREPAIRRECORD_TABLE_NAME = "qg_repair_record"; | 682 | public static final String TKREPAIRRECORD_TABLE_NAME = "qg_repair_record"; |
683 | public static final String TKPRESERVEPLAN_TABLE_NAME = "qg_preserve_plan";//保养计划 | 683 | public static final String TKPRESERVEPLAN_TABLE_NAME = "qg_preserve_plan";//保养计划 |
684 | - public static final String TKPRESERVEDETAIL_TABLE_NAME = "qg_preserve_detail";//保养详情 | 684 | + public static final String TKPRESERVEDETAIL_TABLE_NAME = "qg_preserve_detail";//保养明细 |
685 | public static final String TKPRESERVERECORD_TABLE_NAME = "qg_preserve_record";//保养记录 | 685 | public static final String TKPRESERVERECORD_TABLE_NAME = "qg_preserve_record";//保养记录 |
686 | + public static final String TKPRESERVEDETAILSTATUS_TABLE_NAME = "qg_preserve_detail_status";//保养明细状态 | ||
686 | public static final String TKDEVICECAGEGORY_TABLE_NAME = "qg_device_cagegory";//设备类别 | 687 | public static final String TKDEVICECAGEGORY_TABLE_NAME = "qg_device_cagegory";//设备类别 |
687 | public static final String TKDEVICEACCOUNT_TABLE_NAME = "qg_device_account";//设备台账 | 688 | public static final String TKDEVICEACCOUNT_TABLE_NAME = "qg_device_account";//设备台账 |
688 | public static final String TKINSTALLLOCATION_TABLE_NAME = "qg_install_location";//设备台账 | 689 | public static final String TKINSTALLLOCATION_TABLE_NAME = "qg_install_location";//设备台账 |
dao/src/main/java/org/thingsboard/server/dao/yunteng/entities/TkPreserveDetailStatusEntity.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.entities; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
4 | +import lombok.Data; | ||
5 | +import lombok.EqualsAndHashCode; | ||
6 | +import org.thingsboard.server.common.data.yunteng.enums.PreserveDetailStatusEnum; | ||
7 | +import org.thingsboard.server.dao.model.ModelConstants; | ||
8 | + | ||
9 | +/** | ||
10 | + * 保养记录执行明细 | ||
11 | + */ | ||
12 | +@Data | ||
13 | +@EqualsAndHashCode(callSuper = true) | ||
14 | +@TableName(value = ModelConstants.TKPRESERVEDETAILSTATUS_TABLE_NAME, autoResultMap = true) | ||
15 | +public class TkPreserveDetailStatusEntity extends TenantBaseEntity { | ||
16 | + private String preserveRecordId; | ||
17 | + private String preserveDetailId; | ||
18 | + private PreserveDetailStatusEnum status; | ||
19 | + | ||
20 | + | ||
21 | +} |
@@ -100,10 +100,6 @@ public class TkPreserveDetailServiceImpl extends AbstractBaseService<TkPreserveD | @@ -100,10 +100,6 @@ public class TkPreserveDetailServiceImpl extends AbstractBaseService<TkPreserveD | ||
100 | if (StringUtils.isBlank(dto.getTenantId())) { | 100 | if (StringUtils.isBlank(dto.getTenantId())) { |
101 | dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); | 101 | dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
102 | } | 102 | } |
103 | - | ||
104 | - if (dto.getDetailStatus() == null) { | ||
105 | - dto.setDetailStatus(PreserveDetailStatusEnum.UNEXECUTED); | ||
106 | - } | ||
107 | } | 103 | } |
108 | 104 | ||
109 | 105 |
dao/src/main/java/org/thingsboard/server/dao/yunteng/impl/TkPreserveDetailStatusServiceImpl.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.impl; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
5 | +import lombok.RequiredArgsConstructor; | ||
6 | +import lombok.extern.slf4j.Slf4j; | ||
7 | +import org.apache.commons.collections4.CollectionUtils; | ||
8 | +import org.apache.commons.lang3.StringUtils; | ||
9 | +import org.springframework.stereotype.Service; | ||
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.TkPreserveDetailStatusDTO; | ||
13 | +import org.thingsboard.server.common.data.yunteng.enums.PreserveDetailStatusEnum; | ||
14 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | ||
15 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailStatusEntity; | ||
16 | +import org.thingsboard.server.dao.yunteng.mapper.TkPreserveDetailStatusMapper; | ||
17 | +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | ||
18 | +import org.thingsboard.server.dao.yunteng.service.TkPreserveDetailStatusService; | ||
19 | + | ||
20 | +import java.util.List; | ||
21 | + | ||
22 | +@Service | ||
23 | +@RequiredArgsConstructor | ||
24 | +@Slf4j | ||
25 | +public class TkPreserveDetailStatusServiceImpl extends AbstractBaseService<TkPreserveDetailStatusMapper, TkPreserveDetailStatusEntity> | ||
26 | + implements TkPreserveDetailStatusService { | ||
27 | + | ||
28 | + @Override | ||
29 | + public TkPreserveDetailStatusDTO save(TkPreserveDetailStatusDTO dto) throws ThingsboardException { | ||
30 | + checkDto(dto); | ||
31 | + | ||
32 | + TkPreserveDetailStatusEntity entity = new TkPreserveDetailStatusEntity(); | ||
33 | + if (StringUtils.isBlank(dto.getId())) { | ||
34 | + dto.copyToEntity(entity); | ||
35 | + baseMapper.insert(entity); | ||
36 | + } else { | ||
37 | + LambdaQueryWrapper<TkPreserveDetailStatusEntity> filter = new QueryWrapper<TkPreserveDetailStatusEntity>().lambda() | ||
38 | + .eq(TkPreserveDetailStatusEntity::getId, dto.getId()); | ||
39 | + entity = dto.getEntity(TkPreserveDetailStatusEntity.class); | ||
40 | + baseMapper.update(entity, filter); | ||
41 | + } | ||
42 | + entity.copyToDTO(dto); | ||
43 | + return dto; | ||
44 | + } | ||
45 | + | ||
46 | + @Override | ||
47 | + public List<TkPreserveDetailStatusDTO> listByPreserveRecordId(List<String> preserveRecordId) throws ThingsboardException { | ||
48 | + if (CollectionUtils.isEmpty(preserveRecordId)) { | ||
49 | + throw new TkDataValidationException("保养记录id不能为空!"); | ||
50 | + } | ||
51 | + return baseMapper.listByPreserveRecordId(preserveRecordId, SpringBeanUtils.getTenantId().getId().toString()); | ||
52 | + } | ||
53 | + | ||
54 | + private void checkDto(TkPreserveDetailStatusDTO dto) throws ThingsboardException { | ||
55 | + | ||
56 | + | ||
57 | + if (StringUtils.isBlank(dto.getPreserveRecordId())) { | ||
58 | + throw new TkDataValidationException("保养记录id不能为空!"); | ||
59 | + } | ||
60 | + | ||
61 | + if (StringUtils.isBlank(dto.getPreserveDetailId())) { | ||
62 | + throw new TkDataValidationException("保养明细id不能为空!"); | ||
63 | + } | ||
64 | + | ||
65 | + if (StringUtils.isBlank(dto.getTenantId())) { | ||
66 | + dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); | ||
67 | + } | ||
68 | + | ||
69 | + if (dto.getStatus() == null) { | ||
70 | + dto.setStatus(PreserveDetailStatusEnum.UNEXECUTED); | ||
71 | + } | ||
72 | + } | ||
73 | +} |
@@ -11,17 +11,17 @@ import org.springframework.stereotype.Service; | @@ -11,17 +11,17 @@ 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.TkPreservePlanDTO; | ||
15 | -import org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO; | ||
16 | -import org.thingsboard.server.common.data.yunteng.dto.UserDTO; | 14 | +import org.thingsboard.server.common.data.yunteng.dto.*; |
17 | import org.thingsboard.server.common.data.yunteng.enums.PreservePlanStatusEnum; | 15 | import org.thingsboard.server.common.data.yunteng.enums.PreservePlanStatusEnum; |
18 | import org.thingsboard.server.common.data.yunteng.enums.PreserveRecordStatusEnum; | 16 | import org.thingsboard.server.common.data.yunteng.enums.PreserveRecordStatusEnum; |
19 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | 17 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
20 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | 18 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
19 | +import org.thingsboard.server.dao.yunteng.entities.BaseEntity; | ||
21 | import org.thingsboard.server.dao.yunteng.entities.TkPreserveRecordEntity; | 20 | import org.thingsboard.server.dao.yunteng.entities.TkPreserveRecordEntity; |
22 | import org.thingsboard.server.dao.yunteng.mapper.TkPreserveRecordMapper; | 21 | import org.thingsboard.server.dao.yunteng.mapper.TkPreserveRecordMapper; |
23 | import org.thingsboard.server.dao.yunteng.service.*; | 22 | import org.thingsboard.server.dao.yunteng.service.*; |
24 | 23 | ||
24 | +import javax.transaction.Transactional; | ||
25 | import java.util.HashMap; | 25 | import java.util.HashMap; |
26 | import java.util.List; | 26 | import java.util.List; |
27 | import java.util.Map; | 27 | import java.util.Map; |
@@ -36,6 +36,8 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | @@ -36,6 +36,8 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | ||
36 | 36 | ||
37 | private final TkPreserveDetailService tkPreserveDetailService; | 37 | private final TkPreserveDetailService tkPreserveDetailService; |
38 | 38 | ||
39 | + private final TkPreserveDetailStatusService tkPreserveDetailStatusService; | ||
40 | + | ||
39 | @Override | 41 | @Override |
40 | public TkPageData<TkPreserveRecordDTO> page(Map<String, Object> params) throws ThingsboardException { | 42 | public TkPageData<TkPreserveRecordDTO> page(Map<String, Object> params) throws ThingsboardException { |
41 | TenantId tenantId = SpringBeanUtils.getTenantId(); | 43 | TenantId tenantId = SpringBeanUtils.getTenantId(); |
@@ -62,6 +64,20 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | @@ -62,6 +64,20 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | ||
62 | 64 | ||
63 | IPage<TkPreserveRecordDTO> pageData = baseMapper.getPreserveRecordPage(page, params); | 65 | IPage<TkPreserveRecordDTO> pageData = baseMapper.getPreserveRecordPage(page, params); |
64 | if (pageData != null) { | 66 | if (pageData != null) { |
67 | + if (CollectionUtils.isNotEmpty(pageData.getRecords())) { | ||
68 | + List<String> recordIdList = pageData.getRecords().stream().map(BaseDTO::getId).collect(Collectors.toList()); | ||
69 | + List<TkPreserveDetailStatusDTO> preserveDetailStatusList = tkPreserveDetailStatusService.listByPreserveRecordId(recordIdList); | ||
70 | + if (CollectionUtils.isNotEmpty(preserveDetailStatusList)) { | ||
71 | + Map<String, List<TkPreserveDetailStatusDTO>> detailStatusMap = preserveDetailStatusList.stream() | ||
72 | + .collect(Collectors.groupingBy(e -> e.getPreserveRecordId())); | ||
73 | + | ||
74 | + pageData.getRecords().forEach(e -> { | ||
75 | + List<TkPreserveDetailStatusDTO> currentDataList = detailStatusMap.get(e.getId()); | ||
76 | + e.setPreserveDetailStatusList(currentDataList); | ||
77 | + }); | ||
78 | + | ||
79 | + } | ||
80 | + } | ||
65 | result.setItems(pageData.getRecords()); | 81 | result.setItems(pageData.getRecords()); |
66 | } | 82 | } |
67 | result.setTotal(Long.valueOf(pageData.getTotal()).intValue()); | 83 | result.setTotal(Long.valueOf(pageData.getTotal()).intValue()); |
@@ -69,6 +85,7 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | @@ -69,6 +85,7 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | ||
69 | } | 85 | } |
70 | 86 | ||
71 | @Override | 87 | @Override |
88 | + @Transactional | ||
72 | public TkPreserveRecordDTO save(TkPreserveRecordDTO dto) throws ThingsboardException { | 89 | public TkPreserveRecordDTO save(TkPreserveRecordDTO dto) throws ThingsboardException { |
73 | checkDto(dto); | 90 | checkDto(dto); |
74 | 91 | ||
@@ -83,6 +100,14 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | @@ -83,6 +100,14 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | ||
83 | baseMapper.update(entity, filter); | 100 | baseMapper.update(entity, filter); |
84 | } | 101 | } |
85 | entity.copyToDTO(dto); | 102 | entity.copyToDTO(dto); |
103 | + String id = dto.getId(); | ||
104 | + List<TkPreserveDetailStatusDTO> preserveDetailStatusList = dto.getPreserveDetailStatusList(); | ||
105 | + if (CollectionUtils.isNotEmpty(preserveDetailStatusList)) { | ||
106 | + for (TkPreserveDetailStatusDTO tkPreserveDetailStatusDTO : preserveDetailStatusList) { | ||
107 | + tkPreserveDetailStatusDTO.setPreserveRecordId(id); | ||
108 | + tkPreserveDetailStatusService.save(tkPreserveDetailStatusDTO); | ||
109 | + } | ||
110 | + } | ||
86 | return dto; | 111 | return dto; |
87 | } | 112 | } |
88 | 113 | ||
@@ -100,6 +125,10 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | @@ -100,6 +125,10 @@ public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveR | ||
100 | throw new TkDataValidationException("保养日期不能为空!"); | 125 | throw new TkDataValidationException("保养日期不能为空!"); |
101 | } | 126 | } |
102 | 127 | ||
128 | + if (CollectionUtils.isEmpty(dto.getPreserveDetailStatusList())) { | ||
129 | + throw new TkDataValidationException("保养明细执行状态不能为空!"); | ||
130 | + } | ||
131 | + | ||
103 | if (StringUtils.isBlank(dto.getTenantId())) { | 132 | if (StringUtils.isBlank(dto.getTenantId())) { |
104 | dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); | 133 | dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
105 | } | 134 | } |
dao/src/main/java/org/thingsboard/server/dao/yunteng/mapper/TkPreserveDetailStatusMapper.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.mapper; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
4 | +import org.apache.ibatis.annotations.Mapper; | ||
5 | +import org.apache.ibatis.annotations.Param; | ||
6 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailStatusDTO; | ||
7 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailStatusEntity; | ||
8 | + | ||
9 | +import java.util.List; | ||
10 | + | ||
11 | +@Mapper | ||
12 | +public interface TkPreserveDetailStatusMapper extends BaseMapper<TkPreserveDetailStatusEntity> { | ||
13 | + List<TkPreserveDetailStatusDTO> listByPreserveRecordId(@Param("preserveRecordId") List<String> preserveRecordId, @Param("tenantId") String tenantId); | ||
14 | +} |
dao/src/main/java/org/thingsboard/server/dao/yunteng/service/TkPreserveDetailStatusService.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.service; | ||
2 | + | ||
3 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
4 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailStatusDTO; | ||
5 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailStatusEntity; | ||
6 | + | ||
7 | +import java.util.List; | ||
8 | + | ||
9 | +public interface TkPreserveDetailStatusService extends BaseService<TkPreserveDetailStatusEntity> { | ||
10 | + TkPreserveDetailStatusDTO save(TkPreserveDetailStatusDTO dto) throws ThingsboardException; | ||
11 | + | ||
12 | + List<TkPreserveDetailStatusDTO> listByPreserveRecordId(List<String> preserveRecordId) throws ThingsboardException; | ||
13 | +} |
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
3 | <mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkPreserveDetailMapper"> | 3 | <mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkPreserveDetailMapper"> |
4 | <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailDTO" id="preserveDetailMap"> | 4 | <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailDTO" id="preserveDetailMap"> |
5 | + <result property="id" column="id"/> | ||
5 | <result property="detailCode" column="detail_code"/> | 6 | <result property="detailCode" column="detail_code"/> |
6 | <result property="preserveDetail" column="preserve_detail"/> | 7 | <result property="preserveDetail" column="preserve_detail"/> |
7 | <result property="preservePlanId" column="preserve_plan_id"/> | 8 | <result property="preservePlanId" column="preserve_plan_id"/> |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
3 | +<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkPreserveDetailStatusMapper"> | ||
4 | + <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailStatusDTO" | ||
5 | + id="preserveDetailStatusMap"> | ||
6 | + <result property="id" column="id"/> | ||
7 | + <result property="preserveRecordId" column="preserve_record_id"/> | ||
8 | + <result property="preserveDetailId" column="preserve_detail_id"/> | ||
9 | + <result property="status" column="status" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> | ||
10 | + <result property="preserveDetail" column="preserve_detail"/> | ||
11 | + <association property="deviceInfo" javaType="org.thingsboard.server.common.data.yunteng.dto.TkDeviceAccountDTO"> | ||
12 | + <id property="id" column="device_id"/> | ||
13 | + <result property="name" column="daName"/> | ||
14 | + <result property="code" column="daCode"/> | ||
15 | + <result property="categoryId" column="category_id"/> | ||
16 | + <result property="status" column="daStatus" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> | ||
17 | + <result property="directorId" column="director_id"/> | ||
18 | + <result property="isOnline" column="is_online"/> | ||
19 | + <result property="deviceImg" column="device_img"/> | ||
20 | + <result property="brand" column="brand"/> | ||
21 | + <result property="modelNum" column="model_num"/> | ||
22 | + <result property="specifications" column="specifications"/> | ||
23 | + <result property="manufacturer" column="manufacturer"/> | ||
24 | + <result property="buyDate" column="buy_date"/> | ||
25 | + <result property="price" column="price"/> | ||
26 | + <result property="productDate" column="product_date"/> | ||
27 | + <result property="receiveDate" column="receive_date"/> | ||
28 | + <result property="registeDate" column="registe_date"/> | ||
29 | + <result property="supplierId" column="supplier_id"/> | ||
30 | + <result property="description" column="daDescription"/> | ||
31 | + </association> | ||
32 | + </resultMap> | ||
33 | + <select id="listByPreserveRecordId" resultMap="preserveDetailStatusMap"> | ||
34 | + SELECT pds.id | ||
35 | + , pds.preserve_record_id | ||
36 | + , pds.preserve_detail_id | ||
37 | + , pds.status | ||
38 | + , pd.preserve_detail, | ||
39 | + da.name as daName,da.code as daCode,da.category_id,da.status as daStatus,da.director_id,da.is_online, | ||
40 | + da.brand,da.model_num,da.specifications,da.manufacturer,da.buy_date,da.price,da.product_date, | ||
41 | + da.receive_date,da.registe_date,da.supplier_id,da.device_img,da.description as daDescription | ||
42 | + , pds.tenant_id | ||
43 | + , pds.create_time | ||
44 | + , pds.updater | ||
45 | + , pds.update_time | ||
46 | + , pds.creator | ||
47 | + from qg_preserve_detail_status pds | ||
48 | + inner join qg_preserve_detail pd on pd.id = pds.preserve_detail_id | ||
49 | + inner join qg_device_account da on da.id=pd.device_id | ||
50 | + <where> | ||
51 | + <if test="tenantId !=null and tenantId !=''"> | ||
52 | + AND pds.tenant_id = #{tenantId} | ||
53 | + </if> | ||
54 | + <if test="preserveRecordId !=null"> | ||
55 | + AND pds.preserve_record_id in | ||
56 | + <foreach collection="preserveRecordId" item="item" index="index" | ||
57 | + separator="," open="(" close=")"> | ||
58 | + #{item} | ||
59 | + </foreach> | ||
60 | + </if> | ||
61 | + </where> | ||
62 | + | ||
63 | + </select> | ||
64 | +</mapper> |
@@ -65,6 +65,9 @@ | @@ -65,6 +65,9 @@ | ||
65 | <if test="queryMap.deviceId !=null and queryMap.deviceId !=''"> | 65 | <if test="queryMap.deviceId !=null and queryMap.deviceId !=''"> |
66 | AND o.device_id = #{queryMap.deviceId} | 66 | AND o.device_id = #{queryMap.deviceId} |
67 | </if> | 67 | </if> |
68 | + <if test="queryMap.deviceName !=null and queryMap.deviceName !=''"> | ||
69 | + AND da.name LIKE concat('%',#{queryMap.deviceName}::TEXT,'%') | ||
70 | + </if> | ||
68 | <if test="queryMap.emergency !=null"> | 71 | <if test="queryMap.emergency !=null"> |
69 | AND o.emergency = #{queryMap.emergency} | 72 | AND o.emergency = #{queryMap.emergency} |
70 | </if> | 73 | </if> |