lizijie
2021-08-12 4784ba9b5fe0d2c9ada694834ac6b0d0b7474b89
special_device、special_device_history相关文件,special_device查询接口
11 files added
508 ■■■■■ changed files
screen-manage/src/main/java/com/moral/api/controller/SpecialDeviceController.java 36 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/SpecialDevice.java 84 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/SpecialDeviceHistory.java 84 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/mapper/SpecialDeviceHistoryMapper.java 16 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/mapper/SpecialDeviceMapper.java 16 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/SpecialDeviceHistoryService.java 16 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/SpecialDeviceService.java 20 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceHistoryServiceImpl.java 20 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java 178 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/SpecialDeviceHistoryMapper.xml 19 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/SpecialDeviceMapper.xml 19 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/SpecialDeviceController.java
New file
@@ -0,0 +1,36 @@
package com.moral.api.controller;
import com.moral.api.service.SpecialDeviceService;
import com.moral.constant.ResultMessage;
import com.moral.util.WebUtils;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@Slf4j
@Api(tags = {"特殊设备"})
@RestController
@RequestMapping("/specialDevice")
public class SpecialDeviceController {
    @Resource
    private SpecialDeviceService specialDeviceService;
    @RequestMapping(value = "getSpecialDeviceByCondition", method = RequestMethod.GET)
    @ResponseBody
    public ResultMessage getSpecialDeviceByCondition(HttpServletRequest request) {
        Map<String,Object> parameters = WebUtils.getParametersStartingWith(request,null);
        Map<String,Object> resultMap = specialDeviceService.getDataByCondition(parameters);
        if (!resultMap.containsKey("code")){
            return ResultMessage.ok(resultMap);
        }
        return ResultMessage.fail(Integer.parseInt(resultMap.get("code").toString()),resultMap.get("msg").toString());
    }
}
screen-manage/src/main/java/com/moral/api/entity/SpecialDevice.java
New file
@@ -0,0 +1,84 @@
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 java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * <p>
 *
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class SpecialDevice extends Model<SpecialDevice> {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 设备名称
     */
    private String name;
    /**
     * mac号
     */
    private String mac;
    /**
     * 维护人id,多个逗号隔开,来源于manage_account
     */
    private String operateIds;
    /**
     * 当前所属组织id
     */
    private Integer organizationId;
    /**
     * 当前所属型号id
     */
    private Integer deviceVersionId;
    /**
     * 特殊设备类型,与字典表关联
     */
    private String specialType;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 逻辑删除,0:不删除;1:删除
     */
    private String isDelete;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
screen-manage/src/main/java/com/moral/api/entity/SpecialDeviceHistory.java
New file
@@ -0,0 +1,84 @@
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 java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * <p>
 *
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class SpecialDeviceHistory extends Model<SpecialDeviceHistory> {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 设备名称
     */
    private String name;
    /**
     * 设备mac号
     */
    private String mac;
    /**
     * 维护人id,多个逗号隔开,来源于manage_account
     */
    private String operateIds;
    /**
     * 所属组织id
     */
    private Integer organizationId;
    /**
     * 所属型号id
     */
    private Integer deviceVersionId;
    /**
     * 特殊设备类型,与字典表关联
     */
    private String specialType;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 逻辑删除,0:不删除;1:删除
     */
    private String isDelete;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
screen-manage/src/main/java/com/moral/api/mapper/SpecialDeviceHistoryMapper.java
New file
@@ -0,0 +1,16 @@
package com.moral.api.mapper;
import com.moral.api.entity.SpecialDeviceHistory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
public interface SpecialDeviceHistoryMapper extends BaseMapper<SpecialDeviceHistory> {
}
screen-manage/src/main/java/com/moral/api/mapper/SpecialDeviceMapper.java
New file
@@ -0,0 +1,16 @@
package com.moral.api.mapper;
import com.moral.api.entity.SpecialDevice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
public interface SpecialDeviceMapper extends BaseMapper<SpecialDevice> {
}
screen-manage/src/main/java/com/moral/api/service/SpecialDeviceHistoryService.java
New file
@@ -0,0 +1,16 @@
package com.moral.api.service;
import com.moral.api.entity.SpecialDeviceHistory;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
public interface SpecialDeviceHistoryService extends IService<SpecialDeviceHistory> {
}
screen-manage/src/main/java/com/moral/api/service/SpecialDeviceService.java
New file
@@ -0,0 +1,20 @@
package com.moral.api.service;
import com.moral.api.entity.SpecialDevice;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
public interface SpecialDeviceService extends IService<SpecialDevice> {
    Map<String,Object> getDataByCondition(Map map);
}
screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceHistoryServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.moral.api.service.impl;
import com.moral.api.entity.SpecialDeviceHistory;
import com.moral.api.mapper.SpecialDeviceHistoryMapper;
import com.moral.api.service.SpecialDeviceHistoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
@Service
public class SpecialDeviceHistoryServiceImpl extends ServiceImpl<SpecialDeviceHistoryMapper, SpecialDeviceHistory> implements SpecialDeviceHistoryService {
}
screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
New file
@@ -0,0 +1,178 @@
package com.moral.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.*;
import com.moral.api.mapper.*;
import com.moral.api.service.SpecialDeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author moral
 * @since 2021-08-11
 */
@Service
public class SpecialDeviceServiceImpl extends ServiceImpl<SpecialDeviceMapper, SpecialDevice> implements SpecialDeviceService {
    @Autowired(required = false)
    private SpecialDeviceMapper specialDeviceMapper;
    @Autowired(required = false)
    private ManageAccountMapper manageAccountMapper;
    @Autowired(required = false)
    private VersionMapper versionMapper;
    @Autowired(required = false)
    private SysDictDataMapper sysDictDataMapper;
    @Autowired(required = false)
    private SpecialDeviceHistoryMapper specialDeviceHistoryMapper;
    @Autowired(required = false)
    private OrganizationMapper organizationMapper;
    @Override
    public Map<String, Object> getDataByCondition(Map map) {
        Map<String,Object> resultMap = new HashMap<>();
        if (!map.containsKey("current")||!map.containsKey("size")){
            resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
            resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
            return resultMap;
        }
        int current = Integer.parseInt(map.get("current").toString());
        int size = Integer.parseInt(map.get("size").toString());
        Page<SpecialDevice> page = new Page<>(current,size);
        QueryWrapper<SpecialDevice> wrapper_Condition = new QueryWrapper<>();
        wrapper_Condition.eq("is_delete",Constants.NOT_DELETE);
        if (!ObjectUtils.isEmpty(map.get("organization_id"))){
            wrapper_Condition.like("organization_id",map.get("organization_id").toString());
        }
        if (!ObjectUtils.isEmpty(map.get("keyword"))){
            wrapper_Condition.like("name",map.get("keyword").toString()).or().like("mac",map.get("keyword").toString());
        }
        wrapper_Condition.orderByDesc("create_time");
        Page resultPage = specialDeviceMapper.selectPage(page,wrapper_Condition);
        List<SpecialDevice> specialDevices = resultPage.getRecords();
        SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        List<Map<String,Object>> specialDeviceList = new ArrayList<>();
        for (SpecialDevice specialDevice:specialDevices) {
            Map specialDeviceMap = JSON.parseObject(JSON.toJSONString(specialDevice),Map.class);
            String createTime = SDF.format(specialDevice.getCreateTime());
            String updateTime = SDF.format(specialDevice.getUpdateTime());
            specialDeviceMap.put("createTime",createTime);
            specialDeviceMap.put("updateTime",updateTime);
            List<Map<String,Object>> operateList = new ArrayList<>();
            if (!ObjectUtils.isEmpty(specialDevice.getOperateIds()) && specialDevice.getOperateIds()!=null){
                String operateIds = specialDevice.getOperateIds();
                String[] operateIdArr = operateIds.split(",");
                if (operateIdArr.length>0){
                    List<Integer> operateIdList = new ArrayList<>();
                    for (int i = 0; i < operateIdArr.length; i++){
                        operateIdList.add(Integer.parseInt(operateIdArr[i]));
                    }
                    QueryWrapper<ManageAccount> wapper_manageAccount = new QueryWrapper<>();
                    wapper_manageAccount.eq("is_delete",Constants.NOT_DELETE);
                    wapper_manageAccount.in("id",operateIdList);
                    List<ManageAccount> manageAccounts = manageAccountMapper.selectList(wapper_manageAccount);
                    for (ManageAccount manageAccount:manageAccounts) {
                        Map<String,Object> operateMap = new HashMap<>();
                        operateMap.put("id",manageAccount.getId());
                        operateMap.put("name",manageAccount.getUserName());
                        operateList.add(operateMap);
                    }
                }
            }
            specialDeviceMap.put("operates",operateList);
            Map<String,Object> deviceVersionMap = new HashMap<>();
            if (!ObjectUtils.isEmpty(specialDevice.getDeviceVersionId()) && specialDevice.getDeviceVersionId()!=null && !"".equals(specialDevice.getDeviceVersionId())){
                int versionId = Integer.parseInt(specialDevice.getDeviceVersionId().toString());
                QueryWrapper<Version> wapper_version = new QueryWrapper<>();
                wapper_version.eq("is_delete",Constants.NOT_DELETE);
                wapper_version.eq("id",versionId);
                Version version = versionMapper.selectOne(wapper_version);
                if (!ObjectUtils.isEmpty(version)){
                    deviceVersionMap.put("id",version.getId());
                    deviceVersionMap.put("name",version.getName());
                }
            }
            specialDeviceMap.put("deviceVersion",deviceVersionMap);
            Map<String,Object> specialTypeMap = new HashMap<>();
            if (!ObjectUtils.isEmpty(specialDevice.getSpecialType()) && specialDevice.getSpecialType()!=null && !"".equals(specialDevice.getSpecialType())){
                int specialTypeId = Integer.parseInt(specialDevice.getSpecialType().toString());
                QueryWrapper<SysDictData> wapper_sysDictData = new QueryWrapper<>();
                wapper_sysDictData.eq("is_delete",Constants.NOT_DELETE);
                wapper_sysDictData.eq("dict_type_id",27);
                wapper_sysDictData.eq("dataKey",specialTypeId);
                SysDictData sysDictData = sysDictDataMapper.selectOne(wapper_sysDictData);
                if (!ObjectUtils.isEmpty(sysDictData)){
                    specialTypeMap.put("id",sysDictData.getId());
                    specialTypeMap.put("name",sysDictData.getDataValue());
                }
            }
            specialDeviceMap.put("specialType",specialTypeMap);
            Map<String,Object> organizationMap = new HashMap<>();
            if (!ObjectUtils.isEmpty(specialDevice.getOrganizationId()) && specialDevice.getOrganizationId()!=null && !"".equals(specialDevice.getOrganizationId())){
                int organizationId = Integer.parseInt(specialDevice.getOrganizationId().toString());
                QueryWrapper<Organization> wapper_organization = new QueryWrapper<>();
                wapper_organization.eq("is_delete",Constants.NOT_DELETE);
                wapper_organization.eq("id",organizationId);
                Organization organization = organizationMapper.selectOne(wapper_organization);
                if (!ObjectUtils.isEmpty(organization)){
                    organizationMap.put("id",organization.getId());
                    organizationMap.put("name",organization.getName());
                }
            }
            specialDeviceMap.put("organazation",organizationMap);
            List<Map<String,Object>> organizationList = new ArrayList<>();
            QueryWrapper<SpecialDeviceHistory> wapper_specialDeviceHistory = new QueryWrapper<>();
            wapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
            wapper_specialDeviceHistory.eq("mac",specialDevice.getMac());
            List<SpecialDeviceHistory> specialDeviceHistories = specialDeviceHistoryMapper.selectList(wapper_specialDeviceHistory);
            if (!ObjectUtils.isEmpty(specialDeviceHistories)){
                List organizationIdList = new ArrayList();
                for (SpecialDeviceHistory specialDeviceHistory:specialDeviceHistories) {
                    organizationIdList.add(specialDeviceHistory.getOrganizationId());
                }
                QueryWrapper<Organization> wapper_organizationHistory = new QueryWrapper<>();
                wapper_organizationHistory.eq("is_delete",Constants.NOT_DELETE);
                wapper_organizationHistory.in("id",organizationIdList);
                List<Organization> organizations = organizationMapper.selectList(wapper_organizationHistory);
                for (Organization organization:organizations) {
                    Map<String,Object> organizationHistoryMap = new HashMap<>();
                    organizationHistoryMap.put("id",organization.getId());
                    organizationHistoryMap.put("name",organization.getName());
                    organizationList.add(organizationHistoryMap);
                }
            }
            specialDeviceMap.put("organizations",organizationList);
            specialDeviceList.add(specialDeviceMap);
        }
        resultMap.put("specialDevices",specialDeviceList);
        int totalNumber = specialDevices.size();
        resultMap.put("totalNumber",totalNumber);
        resultMap.put("current",current);
        int totalPageNumber = totalNumber/size;
        if(totalNumber%size != 0){
            totalPageNumber += 1;
        }
        resultMap.put("totalPageNumber",totalPageNumber);
        return resultMap;
    }
}
screen-manage/src/main/resources/mapper/SpecialDeviceHistoryMapper.xml
New file
@@ -0,0 +1,19 @@
<?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.SpecialDeviceHistoryMapper">
        <!-- 通用查询映射结果 -->
        <resultMap id="BaseResultMap" type="com.moral.api.entity.SpecialDeviceHistory">
                    <id column="id" property="id" />
                    <result column="name" property="name" />
                    <result column="mac" property="mac" />
                    <result column="operate_ids" property="operateIds" />
                    <result column="organization_id" property="organizationId" />
                    <result column="device_version_id" property="deviceVersionId" />
                    <result column="special_type" property="specialType" />
                    <result column="create_time" property="createTime" />
                    <result column="update_time" property="updateTime" />
                    <result column="is_delete" property="isDelete" />
        </resultMap>
</mapper>
screen-manage/src/main/resources/mapper/SpecialDeviceMapper.xml
New file
@@ -0,0 +1,19 @@
<?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.SpecialDeviceMapper">
        <!-- 通用查询映射结果 -->
        <resultMap id="BaseResultMap" type="com.moral.api.entity.SpecialDevice">
                    <id column="id" property="id" />
                    <result column="name" property="name" />
                    <result column="mac" property="mac" />
                    <result column="operate_ids" property="operateIds" />
                    <result column="organization_id" property="organizationId" />
                    <result column="device_version_id" property="deviceVersionId" />
                    <result column="special_type" property="specialType" />
                    <result column="create_time" property="createTime" />
                    <result column="update_time" property="updateTime" />
                    <result column="is_delete" property="isDelete" />
        </resultMap>
</mapper>