From 89d69ac261923790e2d46b9bf3748a6cf2f2767b Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 20 May 2021 10:22:22 +0800
Subject: [PATCH] screen-manage 型号查询功能完成
---
screen-manage/src/main/java/com/moral/api/mapper/VersionMapper.java | 11 +
screen-manage/src/main/java/com/moral/api/pojo/vo/sensor/SensorVO.java | 34 +++++
screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionVO.java | 33 +++++
screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java | 27 +++-
screen-manage/src/main/java/com/moral/api/controller/VersionController.java | 53 ++++++++
screen-manage/src/main/java/com/moral/api/pojo/dto/version/VersionDTO.java | 5
screen-manage/src/main/java/com/moral/api/entity/Version.java | 1
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java | 2
screen-manage/src/main/java/com/moral/api/entity/Sensor.java | 5
screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionQueryVO.java | 95 +++++++++++++++
screen-manage/src/main/resources/mapper/VersionMapper.xml | 79 +++++++++++-
11 files changed, 319 insertions(+), 26 deletions(-)
diff --git a/screen-manage/src/main/java/com/moral/api/controller/VersionController.java b/screen-manage/src/main/java/com/moral/api/controller/VersionController.java
new file mode 100644
index 0000000..61aa2e9
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/controller/VersionController.java
@@ -0,0 +1,53 @@
+package com.moral.api.controller;
+
+import com.moral.api.entity.Version;
+import com.moral.api.mapper.VersionMapper;
+import com.moral.api.pojo.dto.version.VersionQueryDTO;
+import com.moral.api.pojo.form.version.VersionQueryForm;
+import com.moral.api.pojo.vo.Version.VersionQueryVO;
+import com.moral.api.pojo.vo.Version.VersionVO;
+import com.moral.api.service.VersionService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @ClassName VersionController
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/14 15:25
+ * @Version TODO
+ **/
+@Slf4j
+@Api(tags = {"������������������"})
+@RestController
+@RequestMapping("/version")
+public class VersionController {
+
+ @Autowired
+ VersionService versionService;
+
+ @GetMapping("query")
+ public ResultMessage query(VersionQueryForm form){
+ //������������������������
+ if (!form.valid())
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ //������������������
+ VersionQueryDTO dto = versionService.query(form);
+
+ //������������������������
+ VersionQueryVO vo = VersionQueryVO.convert(dto);
+
+ return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
+
+ }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Sensor.java b/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
index 2681819..649bfea 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
@@ -69,9 +69,4 @@
@TableField(exist = false)
private String unitKey;
- @Override
- protected Serializable pkVal() {
- return this.id;
- }
-
}
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Version.java b/screen-manage/src/main/java/com/moral/api/entity/Version.java
index a6cd65c..573bf94 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Version.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Version.java
@@ -61,6 +61,7 @@
/*
* ���������������������
* */
+ @TableField(exist = false)
private List<Sensor> sensors;
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/VersionMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/VersionMapper.java
index 0c04d0c..e60f679 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/VersionMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/VersionMapper.java
@@ -3,6 +3,8 @@
import com.moral.api.entity.Version;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+
/**
* <p>
* ��������� Mapper ������
@@ -12,5 +14,12 @@
* @since 2021-05-14
*/
public interface VersionMapper extends BaseMapper<Version> {
-
+ /**
+ * @Description: ������������id���������������������������������������������������
+ * @Param: [versionIds]
+ * @return: java.util.List<com.moral.api.entity.Version>
+ * @Author: ���������
+ * @Date: 2021/5/14
+ */
+ List<Version> queryVersionsAndSensorUnitByIds(List<Integer> versionIds);
}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/version/VersionDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/version/VersionDTO.java
index 89a1a80..a48eb1b 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/dto/version/VersionDTO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/version/VersionDTO.java
@@ -22,6 +22,7 @@
private Version version;
- private List<Sensor> sensors;
-
+ public VersionDTO(Version version) {
+ this.version = version;
+ }
}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionQueryVO.java
new file mode 100644
index 0000000..1bc7352
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionQueryVO.java
@@ -0,0 +1,95 @@
+package com.moral.api.pojo.vo.Version;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.entity.Sensor;
+import com.moral.api.entity.Version;
+import com.moral.api.pojo.dto.version.VersionDTO;
+import com.moral.api.pojo.dto.version.VersionQueryDTO;
+import com.moral.api.pojo.vo.sensor.SensorVO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.DateUtils;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName VersionQueryVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/14 15:42
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class VersionQueryVO {
+
+ private long pages;
+
+ private long total;
+
+ private long current;
+
+ private long size;
+
+ private List<VersionVO> versions;
+
+ public static VersionQueryVO convert(VersionQueryDTO dto) {
+ if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+ return null;
+ VersionQueryVO vo = new VersionQueryVO();
+
+ long pages = dto.getPages();
+ long total = dto.getTotal();
+ long current = dto.getCurrent();
+ long size = dto.getSize();
+ List<VersionDTO> dtos = dto.getVersionDTOS();
+ List<VersionVO> versionVOS = new ArrayList<>();
+ for (VersionDTO versionDTO : dtos) {
+ VersionVO versionVO = convertToQueryPage(versionDTO);
+ versionVOS.add(versionVO);
+ }
+ vo.setPages(pages);
+ vo.setTotal(total);
+ vo.setCurrent(current);
+ vo.setSize(size);
+ vo.setVersions(versionVOS);
+ return vo;
+ }
+
+ private static VersionVO convertToQueryPage(VersionDTO dto) {
+ VersionVO vo = new VersionVO();
+ Version version = dto.getVersion();
+ Integer id = version.getId();
+ String desc = version.getDesc();
+ String name = version.getName();
+ Date createTime = version.getCreateTime();
+ Date updateTime = version.getUpdateTime();
+ List<Sensor> sensors = version.getSensors();
+ List<SensorVO> sensorVOS = new ArrayList<>();
+ if(!ObjectUtils.isEmpty(sensors)){
+ for (Sensor sensor : sensors) {
+ SensorVO sensorVO = convertToSensorVO(sensor);
+ sensorVOS.add(sensorVO);
+ }
+ }
+ vo.setId(id);
+ vo.setDesc(desc);
+ vo.setName(name);
+ vo.setCreateTime(DateUtils.dateToDateString(createTime,"yyyy-MM-dd"));
+ vo.setUpdateTime(DateUtils.dateToDateString(updateTime,"yyyy-MM-dd"));
+ vo.setSensors(sensorVOS);
+ return vo;
+ }
+
+ private static SensorVO convertToSensorVO(Sensor sensor) {
+ SensorVO vo = new SensorVO();
+ vo.setName(sensor.getName());
+ vo.setCode(sensor.getCode());
+ vo.setUnit(sensor.getUnit());
+ vo.getUnitKey();
+ return vo;
+ }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionVO.java
new file mode 100644
index 0000000..358a13b
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/Version/VersionVO.java
@@ -0,0 +1,33 @@
+package com.moral.api.pojo.vo.Version;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.pojo.vo.sensor.SensorVO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName VersionVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/14 15:44
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class VersionVO {
+
+ private Integer id;
+
+ private String name;
+
+ private String createTime;
+
+ private String updateTime;
+
+ private String isDelete;
+
+ private String desc;
+
+ private List<SensorVO> sensors;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/sensor/SensorVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/sensor/SensorVO.java
new file mode 100644
index 0000000..ad550c1
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/sensor/SensorVO.java
@@ -0,0 +1,34 @@
+package com.moral.api.pojo.vo.sensor;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+/**
+ * @ClassName SensorVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/20 9:30
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class SensorVO {
+ private Integer id;
+
+ private String name;
+
+ private String desc;
+
+ private String code;
+
+ private String createTime;
+
+ private String updateTime;
+
+ private String isDelete;
+
+ private String unit;
+
+ private String unitKey;
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
index 2de9059..5886add 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -347,7 +347,7 @@
queryWrapper.eq("is_delete", Constants.NOT_DELETE);
//������������������
List<Organization> organizations = organizationMapper.selectList(queryWrapper);
- //������form������������id,���������������������������������������
+ //������form������������id,���������������������������������������������
if(!ObjectUtils.isEmpty(id)){
List<Organization> children = getAllChildrenOrganization(id);
List<Integer> thisAndchildrenIds = new ArrayList<>();//���id���������������������������id������
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
index c716f2e..dc1d8f1 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
@@ -8,11 +8,13 @@
import com.moral.api.entity.VersionSensorUnit;
import com.moral.api.mapper.VersionMapper;
import com.moral.api.mapper.VersionSensorUnitMapper;
+import com.moral.api.pojo.dto.version.VersionDTO;
import com.moral.api.pojo.dto.version.VersionQueryDTO;
import com.moral.api.pojo.form.version.VersionQueryForm;
import com.moral.api.service.VersionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
import com.moral.util.ConvertUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -55,7 +57,7 @@
//������������������
Page<Version> queryPage = new Page<>(page, size);
NullFilterWrapper<Version> wrapper = new NullFilterWrapper<>();
- wrapper.like("name",name);
+ wrapper.like("name", name);
wrapper.between("create_time", createStartTime, createEndTime);
wrapper.between("update_time", updateStartTime, updateEndTime);
//������������������������
@@ -66,16 +68,25 @@
wrapper.orderByDesc(ConvertUtils.toLine(order));
}
//������������
- Page<Version> versionsPage = versionMapper.selectPage(queryPage,wrapper);
+ Page<Version> versionsPage = versionMapper.selectPage(queryPage, wrapper);
List<Version> versions = versionsPage.getRecords();
//������������������������������������
List<Integer> versionsIds = new ArrayList<>();
- versions.forEach(value->versionsIds.add(value.getId()));
- if(!ObjectUtils.isEmpty(versionsIds)){
- QueryWrapper<VersionSensorUnit> sensorUnitQueryWrapper = new QueryWrapper<>();
-
+ versions.forEach(value -> versionsIds.add(value.getId()));
+ List<Version> result = new ArrayList<>();
+ if (!ObjectUtils.isEmpty(versionsIds)) {
+ result = versionMapper.queryVersionsAndSensorUnitByIds(versionsIds);
}
-
- return null;
+ //������������������
+ List<VersionDTO> dtos = new ArrayList<>();
+ result.forEach(value -> dtos.add(new VersionDTO(value)));
+ dto.setVersionDTOS(dtos);
+ dto.setCurrent(versionsPage.getCurrent());
+ dto.setPages(versionsPage.getPages());
+ dto.setSize(versionsPage.getSize());
+ dto.setTotal(versionsPage.getTotal());
+ dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+ dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+ return dto;
}
}
diff --git a/screen-manage/src/main/resources/mapper/VersionMapper.xml b/screen-manage/src/main/resources/mapper/VersionMapper.xml
index b1581d7..bf5d5e5 100644
--- a/screen-manage/src/main/resources/mapper/VersionMapper.xml
+++ b/screen-manage/src/main/resources/mapper/VersionMapper.xml
@@ -2,14 +2,75 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.api.mapper.VersionMapper">
- <!-- ������������������������ -->
- <resultMap id="BaseResultMap" type="com.moral.api.entity.Version">
- <id column="id" property="id" />
- <result column="name" property="name" />
- <result column="create_time" property="createTime" />
- <result column="update_time" property="updateTime" />
- <result column="is_delete" property="isDelete" />
- <result column="desc" property="desc" />
- </resultMap>
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.Version">
+ <id column="id" property="id"/>
+ <result column="name" property="name"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="is_delete" property="isDelete"/>
+ <result column="desc" property="desc"/>
+ </resultMap>
+
+ <!--���������������������������������map-->
+ <resultMap id="VersionSensorUnitMap" type="com.moral.api.entity.Version">
+ <id property="id" column="id"></id>
+ <result property="name" column="name"></result>
+ <result property="desc" column="desc"></result>
+ <result property="createTime" column="create_time"></result>
+ <result property="updateTime" column="update_time"></result>
+ <collection property="sensors" column="id" ofType="com.moral.api.entity.Sensor">
+ <id property="id" column="sid"></id>
+ <result property="name" column="sname"></result>
+ <result property="code" column="scode"></result>
+ <result property="unitKey" column="dataKey"></result>
+ <result property="unit" column="dataValue"></result>
+ </collection>
+ </resultMap>
+
+ <select id="queryVersionsAndSensorUnitByIds" resultMap="VersionSensorUnitMap">
+ SELECT
+ v.`id`,v.`name`,v.`desc`,v.`create_time`,v.`update_time`,s.`id` AS sid,s.`code` as scode,s.`name` AS sname ,u.dataKey,u.dataValue
+ FROM
+ `version` v
+ JOIN
+ version_sensor_unit vsu
+ ON
+ v.`id` = vsu.`version_id` AND vsu.`is_delete` = 0
+ JOIN
+ sensor s
+ ON
+ s.`code` = vsu.`sensor_code` AND s.`is_delete` = 0
+ JOIN
+ (
+ SELECT
+ sdd.datakey,sdd.dataValue,sdd.is_delete
+ FROM
+ sys_dict_data sdd
+ JOIN
+ sys_dict_type sdt
+ ON
+ sdt.`name` = 'unit' AND sdt.`id` = sdd.`dict_type_id` AND sdt.`is_delete` = 0
+ WHERE
+ sdd.`is_delete` = 0
+ ) u
+ ON
+ vsu.unit_key = u.dataKey AND u.is_delete = 0
+ WHERE
+ v.`id`
+ in
+ <foreach collection="list" item="vid" open="(" separator="," close=")">
+ #{vid}
+ </foreach>
+ AND
+ v.`is_delete` = 0
+ ORDER BY FIELD
+ (v.`id`,
+ <foreach collection="list" item="vid" separator="," >
+ #{vid}
+ </foreach>
+ )
+
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0