Commit cd6465a9a6fcbfdbf0d020e06bb1e45b14f6e236

Authored by 胡翰林
1 parent 4f0455d2

接口联调修改

增加保养详情状态
@@ -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";//设备台账
  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
  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 }
  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 +}
  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>