jinpengyong
2021-05-13 943a2364c76db4c4e570e0d0219a81b6caa9bffc
deivce相关接口
7 files added
17 files modified
543 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/GroupController.java 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/LogController.java 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/MenuController.java 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/UserController.java 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/GroupMenu.java 5 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/User.java 7 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/UserGroup.java 1 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java 4 ●●●● patch | view | raw | blame | history
screen-api/src/main/resources/mapper/GroupMenuMapper.xml 2 ●●● patch | view | raw | blame | history
screen-api/src/main/resources/mapper/MenuMapper.xml 8 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/Constants.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/DeviceController.java 96 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/Device.java 137 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/Group.java 5 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/GroupMenu.java 7 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/User.java 8 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/UserGroup.java 2 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/UserLog.java 3 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java 27 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java 33 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/DeviceService.java 30 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java 75 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/DeviceMapper.xml 81 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/GroupMenuMapper.xml 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/GroupController.java
@@ -27,7 +27,7 @@
import com.moral.util.PageResult;
@Slf4j
@Api(tags = {"组"})
@Api(tags = {"组管理"})
@RestController
@RequestMapping("/group")
public class GroupController {
screen-api/src/main/java/com/moral/api/controller/LogController.java
@@ -22,7 +22,7 @@
@Slf4j
@RestController
@RequestMapping("/log")
@Api(tags = "日志")
@Api(tags = "日志管理")
public class LogController {
    @Autowired
screen-api/src/main/java/com/moral/api/controller/MenuController.java
@@ -25,7 +25,7 @@
import com.moral.util.TokenUtils;
@Slf4j
@Api(tags = {"菜单"})
@Api(tags = {"菜单管理"})
@RestController
@RequestMapping("/menu")
public class MenuController {
screen-api/src/main/java/com/moral/api/controller/UserController.java
@@ -26,7 +26,7 @@
import com.moral.util.PageResult;
@Slf4j
@Api(tags = {"用户"})
@Api(tags = {"用户管理"})
@RestController
@RequestMapping("/user")
public class UserController {
screen-api/src/main/java/com/moral/api/entity/GroupMenu.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
@@ -43,7 +44,7 @@
    /**
     * 渠道
     */
    private Integer channel;
    private String channelKey;
    /**
     * 组织Id
@@ -53,11 +54,13 @@
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
screen-api/src/main/java/com/moral/api/entity/User.java
@@ -1,18 +1,15 @@
package com.moral.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Set;
import lombok.Data;
import lombok.EqualsAndHashCode;
screen-api/src/main/java/com/moral/api/entity/UserGroup.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
@@ -56,7 +56,7 @@
        Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token);
        Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization");
        UpdateWrapper<GroupMenu> deleteWrapper = new UpdateWrapper<>();
        deleteWrapper.eq("group_id", groupId).eq("channel", Constants.WEB_CHANNEL);
        deleteWrapper.eq("group_id", groupId).eq("channel_key", Constants.WEB_CHANNEL);
        groupMenuMapper.delete(deleteWrapper);
        List<String> menus = new ArrayList<>();
        if (menuIds != null && !menuIds.isEmpty()) {
@@ -65,7 +65,7 @@
                GroupMenu groupMenu = new GroupMenu();
                groupMenu.setGroupId(groupId);
                groupMenu.setMenuId(menuId);
                groupMenu.setChannel(Constants.WEB_CHANNEL);
                groupMenu.setChannelKey(Constants.WEB_CHANNEL);
                groupMenu.setOrganizationId((Integer) orgInfo.get("id"));
                groupMenuMapper.insert(groupMenu);
            });
screen-api/src/main/resources/mapper/GroupMenuMapper.xml
@@ -7,7 +7,7 @@
                    <id column="id" property="id" />
                    <result column="group_id" property="groupId" />
                    <result column="menu_id" property="menuId" />
                    <result column="channel" property="channel" />
                    <result column="channel_key" property="channelKey" />
                    <result column="organization_id" property="organizationId" />
                    <result column="create_time" property="createTime" />
                    <result column="update_time" property="updateTime" />
screen-api/src/main/resources/mapper/MenuMapper.xml
@@ -21,24 +21,24 @@
    <select id="selectUserMenu" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"></include>
        <include refid="Base_Column_List"/>
        FROM `user_group` ug,`group_menu` gm,`menu` m
        WHERE ug.user_id = #{userId}
        AND ug.group_id = gm.group_id
        AND gm.menu_id = m.id
        AND ug.is_delete = 0
        AND gm.is_delete = 0
        AND gm.channel = 1
        AND gm.channel_key = 1
        AND m.is_delete = 0
    </select>
    <select id="selectOrganizationMenu" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"></include>
        <include refid="Base_Column_List"/>
        FROM `menu` m, `organization_menu` om
        WHERE om.organization_id = #{orgId}
        AND m.id = om.menu_id
        AND om.channel = 1
        AND om.channel_key = 1
        AND om.menu_id = m.id
        AND om.is_delete = 0
        AND m.is_delete = 0
screen-common/src/main/java/com/moral/constant/Constants.java
@@ -62,7 +62,7 @@
    /*
     * 网页端渠道
     * */
    public static final Integer WEB_CHANNEL = 1;
    public static final String WEB_CHANNEL = "1";
    /*
     * 登陆操作类型
screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
New file
@@ -0,0 +1,96 @@
package com.moral.api.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Device;
import com.moral.api.entity.ManageAccount;
import com.moral.api.entity.Organization;
import com.moral.api.entity.User;
import com.moral.api.pojo.vo.device.DeviceVO;
import com.moral.api.service.DeviceService;
import com.moral.api.service.OrganizationService;
import com.moral.constant.ResultMessage;
import com.moral.util.PageResult;
@Slf4j
@Api(tags = {"设备管理"})
@RestController
@RequestMapping(value = "/device")
public class DeviceController {
    @Autowired
    private DeviceService deviceService;
    @Autowired
    private OrganizationService organizationService;
    @ApiOperation(value = "添加设备", notes = "添加设备")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "insert", method = RequestMethod.POST)
    public ResultMessage insert(@RequestBody Device device) {
        deviceService.insert(device);
        return ResultMessage.ok();
    }
    @ApiOperation(value = "维护人列表", notes = "维护人列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "operators", method = RequestMethod.GET)
    public ResultMessage selectOperators() {
        List<ManageAccount> operators = deviceService.selectAllOperator();
        return ResultMessage.ok(operators);
    }
    @ApiOperation(value = "型号列表", notes = "型号列表")
    @RequestMapping(value = "versions", method = RequestMethod.GET)
    public ResultMessage selectVersions() {
        return null;
    }
    @ApiOperation(value = "组织列表", notes = "组织列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "organizations", method = RequestMethod.GET)
    public ResultMessage selectOrganizations() {
        List<Organization> organizations = deviceService.selectAllOrganization();
        return ResultMessage.ok(organizations);
    }
    @ApiOperation(value = "分页设备列表", notes = "分页设备列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "order", value = "排序字段", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "orderType", value = "排序类型,升序:0,降序:1", defaultValue = "0", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
            @ApiImplicitParam(name = "organizationName", value = "组织模糊查询", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "monitorPointName", value = "站点模糊查询", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "deviceName", value = "设备名称模糊查询", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "mac", value = "mac模糊查询", required = false, paramType = "query", dataType = "String"),
    })
    @RequestMapping(value = "select", method = RequestMethod.POST)
    public ResultMessage select(@RequestBody Map<String, Object> parameters) {
        Page<DeviceVO> userPage = deviceService.selectDevices(parameters);
        PageResult<DeviceVO> pageResult = new PageResult<>(
                userPage.getTotal(), userPage.getPages(), userPage.getRecords()
        );
        return ResultMessage.ok(pageResult);
    }
}
screen-manage/src/main/java/com/moral/api/entity/Device.java
New file
@@ -0,0 +1,137 @@
package com.moral.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * <p>
 * 设备表
 * </p>
 *
 * @author moral
 * @since 2021-05-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Device extends Model<Device> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 设备名称
     */
    private String name;
    /**
     * mac号
     */
    private String mac;
    /**
     * 设备地址
     */
    private String address;
    /**
     * 经度
     */
    private Double longitude;
    /**
     * 纬度
     */
    private Double latitude;
    /**
     * 设备状态,与字典表关联
     */
    private String state;
    /**
     * 维护人id,多个逗号隔开,来源于manage_account
     */
    private String operateIds;
    /**
     * 站点id
     */
    private Integer monitorPointId;
    /**
     * 组织id
     */
    private Integer organizationId;
    /**
     * 设备型号id
     */
    private Integer deviceVersionId;
    /**
     * 行业,与字典表关联
     */
    private String profession;
    /**
     * 设备工艺,1:烟道;2:厂界;3:车间,基本数据在字典表
     */
    private String tech;
    /**
     * 设备检测器,与字典表关联
     */
    private String detector;
    /**
     * 采购商,与字典表关联
     */
    private String purchaser;
    /**
     * 创建(生产)时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
     * 安装时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date installTime;
    /**
     * 逻辑删除,0:不删除;1:删除
     */
    private String isDelete;
    /**
     * 设备工艺扩展字段
     */
    private String extend;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
screen-manage/src/main/java/com/moral/api/entity/Group.java
@@ -4,7 +4,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
@@ -45,11 +46,13 @@
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
screen-manage/src/main/java/com/moral/api/entity/GroupMenu.java
@@ -4,7 +4,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
@@ -43,7 +44,7 @@
    private Integer menuId;
    /**
     * 渠道字典键
     * 渠道
     */
    private String channelKey;
@@ -55,11 +56,13 @@
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
screen-manage/src/main/java/com/moral/api/entity/User.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import java.util.Date;
@@ -43,6 +45,7 @@
    /**
     * 密码
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String password;
    /**
@@ -73,16 +76,19 @@
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
     * 过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date expireTime;
    /**
screen-manage/src/main/java/com/moral/api/entity/UserGroup.java
@@ -3,8 +3,10 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
screen-manage/src/main/java/com/moral/api/entity/UserLog.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
@@ -57,6 +59,7 @@
    /**
     * 操作时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java
New file
@@ -0,0 +1,27 @@
package com.moral.api.mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Device;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moral.api.pojo.vo.device.DeviceVO;
/**
 * <p>
 * 设备表 Mapper 接口
 * </p>
 *
 * @author moral
 * @since 2021-05-11
 */
public interface DeviceMapper extends BaseMapper<Device> {
    IPage<DeviceVO> selectAllDeviceInfo(Page<DeviceVO> page, @Param("ew") QueryWrapper<DeviceVO> queryWrapper);
}
screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java
New file
@@ -0,0 +1,33 @@
package com.moral.api.pojo.vo.device;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
import com.moral.api.entity.Device;
import com.moral.api.entity.ManageAccount;
import com.moral.api.entity.Organization;
@Data
@EqualsAndHashCode(callSuper = false)
public class DeviceVO extends Device {
    /*
    * 行业
    * */
    private String professionName;
    /*
    * 组织
    * */
    private Organization organization;
    /*
    * 维护人
    * */
    private List<ManageAccount> operators;
}
screen-manage/src/main/java/com/moral/api/service/DeviceService.java
New file
@@ -0,0 +1,30 @@
package com.moral.api.service;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Device;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.entity.ManageAccount;
import com.moral.api.entity.Organization;
import com.moral.api.pojo.vo.device.DeviceVO;
/**
 * <p>
 * 设备表 服务类
 * </p>
 *
 * @author moral
 * @since 2021-05-11
 */
public interface DeviceService extends IService<Device> {
    void insert(Device device);
    List<ManageAccount> selectAllOperator();
    List<Organization> selectAllOrganization();
    Page<DeviceVO> selectDevices(Map<String, Object> parameters);
}
screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
New file
@@ -0,0 +1,75 @@
package com.moral.api.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Device;
import com.moral.api.entity.ManageAccount;
import com.moral.api.entity.Organization;
import com.moral.api.entity.User;
import com.moral.api.mapper.DeviceMapper;
import com.moral.api.mapper.ManageAccountMapper;
import com.moral.api.mapper.OrganizationMapper;
import com.moral.api.pojo.vo.device.DeviceVO;
import com.moral.api.service.DeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 设备表 服务实现类
 * </p>
 *
 * @author moral
 * @since 2021-05-11
 */
@Service
public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements DeviceService {
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private ManageAccountMapper manageAccountMapper;
    @Autowired
    private OrganizationMapper organizationMapper;
    @Override
    @Transactional
    public void insert(Device device) {
        deviceMapper.insert(device);
    }
    @Override
    public List<ManageAccount> selectAllOperator() {
        QueryWrapper<ManageAccount> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("id", "user_name").eq("is_delete", Constants.NOT_DELETE);
        return manageAccountMapper.selectList(queryWrapper);
    }
    @Override
    public List<Organization> selectAllOrganization() {
        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("id", "name").ge("expire_time", new Date()).eq("is_delete", Constants.NOT_DELETE);
        return organizationMapper.selectList(queryWrapper);
    }
    @Override
    public Page<DeviceVO> selectDevices(Map<String, Object> parameters) {
        QueryWrapper<DeviceVO> queryWrapper = new QueryWrapper<>();
        Integer page = (Integer) parameters.get("page");
        Integer size = (Integer) parameters.get("size");
        Page<DeviceVO> pageData = new Page<>(page, size);
        deviceMapper.selectAllDeviceInfo(pageData, queryWrapper);
        return pageData;
    }
}
screen-manage/src/main/resources/mapper/DeviceMapper.xml
New file
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.api.mapper.DeviceMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.moral.api.entity.Device">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="mac" property="mac"/>
        <result column="address" property="address"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="state" property="state"/>
        <result column="operate_ids" property="operateIds"/>
        <result column="monitor_point_id" property="monitorPointId"/>
        <result column="organization_id" property="organizationId"/>
        <result column="device_version_id" property="deviceVersionId"/>
        <result column="profession" property="profession"/>
        <result column="tech" property="tech"/>
        <result column="detector" property="detector"/>
        <result column="purchaser" property="purchaser"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="install_time" property="installTime"/>
        <result column="is_delete" property="isDelete"/>
        <result column="extend" property="extend"/>
    </resultMap>
    <resultMap id="resultMap" type="com.moral.api.pojo.vo.device.DeviceVO" extends="BaseResultMap">
        <result column="profession_name" property="professionName"/>
        <association property="organization" javaType="com.moral.api.entity.Organization">
            <result column="org_id" property="id"/>
            <result column="org_name" property="name"/>
        </association>
        <!--设备维护人-->
        <collection property="operators" ofType="com.moral.api.entity.ManageAccount">
            <id column="operate_id" property="id" jdbcType="INTEGER"/>
            <result column="operate_name" property="userName" jdbcType="VARCHAR"/>
        </collection>
    </resultMap>
    <select id="selectAllDeviceInfo" resultMap="resultMap">
        SELECT d.id,
               d.`name`,
               d.mac,
               d.address,
               d.longitude,
               d.latitude,
               d.operate_ids,
               d.organization_id,
               d.monitor_point_id,
               d.organization_id,
               d.device_version_id,
               d.profession profession,
               o.id org_id,
               o.`name` org_name,
               ma.id operate_id,
               ma.user_name operate_name,
               sd.dataValue profession_name
        FROM `device` d
        LEFT JOIN `organization` o
        ON d.organization_id = o.id
        LEFT JOIN `manage_account` ma
        ON FIND_IN_SET(
            ma.id, (SELECT operate_ids FROM device)
            )
        LEFT JOIN
             (
                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
                 FROM sys_dict_type sdt,
                      sys_dict_data sdd
                 WHERE sdt.id = sdd.dict_type_id
             ) sd
        on sd.`name` = 'profession'
        and d.profession = sd.dataKey
        AND d.is_delete = 0
        ${ew.customSqlSegment}
    </select>
</mapper>
screen-manage/src/main/resources/mapper/GroupMenuMapper.xml
@@ -7,7 +7,7 @@
                    <id column="id" property="id" />
                    <result column="group_id" property="groupId" />
                    <result column="menu_id" property="menuId" />
                    <result column="channel" property="channel" />
        <result column="channel_key" property="channelKey"/>
                    <result column="organization_id" property="organizationId" />
                    <result column="create_time" property="createTime" />
                    <result column="update_time" property="updateTime" />