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