Commit 8f85cf11 by tutingyin

refactor: 设备详情拆分

cpu 系统资源 网卡信息 磁盘信息 usb信息
parent 589d2fcc
......@@ -22,12 +22,12 @@ public class EquipmentImportFailDTO {
@ExcelProperty(value = "手机号")
private String phoneNumber;
@ExcelProperty(value = "IMEI")
private String imei;
@ExcelProperty(value = "序列号")
private String serial;
@ExcelProperty(value = "设备名")
private String equipmentName;
@ExcelProperty(value = "失败信息")
private String failInfo;
}
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
@Date:2020/9/1 17:55
@Version:1.0
*/
@Data
@ApiModel("设备详细信息")
public class DeviceEquipmentCpuVO {
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("用户名称")
private String userName;
@ApiModelProperty("激活时间")
private String activationTime;
@ApiModelProperty("部门名称")
private String departmentName;
@ApiModelProperty("离线时间")
private String offlineTime;
@ApiModelProperty("固件版本")
private String firmwareVersion;
@ApiModelProperty("版本型号")
private String modelNumber;
@ApiModelProperty("版本号码")
private String versionNumber;
@ApiModelProperty("CPU 架构")
private String cpuArch;
@ApiModelProperty("CPU 制造厂商")
private String cpuMaker;
@ApiModelProperty("CPU 型号")
private String cpuModel;
@ApiModelProperty("CPU 额定主频")
private String cpuNominalMainFrequency;
@ApiModelProperty("CPU 核心数量")
private Integer cpuCore;
@ApiModelProperty("CPU 对虚拟化的支持")
private String cpuVirtualization;
@ApiModelProperty("物理内存总大小")
private String totalPhyMem;
@ApiModelProperty("物理内存使用率")
private String phyMemRate;
@ApiModelProperty("物理内存使用大小")
private String usedPhyMem;
@ApiModelProperty("实际可用的物理内存大小")
private String availPhyMem;
@ApiModelProperty("实际空闲的物理内存大小")
private String freePhyMem;
@ApiModelProperty("所有应用申请的虚拟内存总量")
private String totalVirtualMem;
@ApiModelProperty("系统中 Swap 分区总大小")
private String totalSwapSpace;
@ApiModelProperty("Swap 分区使用率")
private String swapRate;
@ApiModelProperty("Swap 分区使用量")
private String usedSwap;
@ApiModelProperty("Swap 分区空闲大小")
private String freeSwap;
@ApiModelProperty("CPU 瞬时使用率")
private String cpuPeak;
@ApiModelProperty("开机时长")
private String upTime;
@ApiModelProperty("系统架构信息")
private String sysArch;
@ApiModelProperty("系统名称")
private String sysName;
@ApiModelProperty("系统版本号")
private String sysVersion;
@ApiModelProperty("内核版本号")
private String sysKernelVersion;
@ApiModelProperty("当前登录用户的用户名")
private String sysLoginUser;
@ApiModelProperty("操作系统项目编号名")
private String osProjectNumName;
@ApiModelProperty("操作系统项目子编号名")
private String osSubProjectNumName;
@ApiModelProperty("操作系统产品标识码")
private String osProductId;
@ApiModelProperty("操作系统宿主机的虚拟机类型")
private String osHostVmType;
@ApiModelProperty("操作系统宿主机的云平台类型")
private String osCloudPlatformType;
@ApiModelProperty("操作系统是否为专用机系统")
private String osIsDedicatedSystem;
@ApiModelProperty("系统分辨率信息")
private String sysResolution;
@ApiModelProperty("系统硬件版本类别")
private String sysHwVersionType;
@ApiModelProperty("系统版本号/补丁版本号")
private String sysPatchVersion;
@ApiModelProperty("厂商信息")
private String biosVendor;
@ApiModelProperty("最后更新时间")
private Date updateTime;
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
@Date:2020/9/1 17:55
@Version:1.0
*/
@Data
@ApiModel("设备详细信息")
public class DeviceEquipmentDiskVO {
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("用户名称")
private String userName;
@ApiModelProperty("激活时间")
private String activationTime;
@ApiModelProperty("部门名称")
private String departmentName;
@ApiModelProperty("离线时间")
private String offlineTime;
@ApiModelProperty("固件版本")
private String firmwareVersion;
@ApiModelProperty("版本型号")
private String modelNumber;
@ApiModelProperty("版本号码")
private String versionNumber;
@ApiModelProperty("CPU 架构")
private String cpuArch;
@ApiModelProperty("CPU 制造厂商")
private String cpuMaker;
@ApiModelProperty("CPU 型号")
private String cpuModel;
@ApiModelProperty("CPU 额定主频")
private String cpuNominalMainFrequency;
@ApiModelProperty("CPU 核心数量")
private Integer cpuCore;
@ApiModelProperty("CPU 对虚拟化的支持")
private String cpuVirtualization;
@ApiModelProperty("物理内存总大小")
private String totalPhyMem;
@ApiModelProperty("物理内存使用率")
private String phyMemRate;
@ApiModelProperty("物理内存使用大小")
private String usedPhyMem;
@ApiModelProperty("实际可用的物理内存大小")
private String availPhyMem;
@ApiModelProperty("实际空闲的物理内存大小")
private String freePhyMem;
@ApiModelProperty("所有应用申请的虚拟内存总量")
private String totalVirtualMem;
@ApiModelProperty("系统中 Swap 分区总大小")
private String totalSwapSpace;
@ApiModelProperty("Swap 分区使用率")
private String swapRate;
@ApiModelProperty("Swap 分区使用量")
private String usedSwap;
@ApiModelProperty("Swap 分区空闲大小")
private String freeSwap;
@ApiModelProperty("CPU 瞬时使用率")
private String cpuPeak;
@ApiModelProperty("开机时长")
private String upTime;
@ApiModelProperty("系统架构信息")
private String sysArch;
@ApiModelProperty("系统名称")
private String sysName;
@ApiModelProperty("系统版本号")
private String sysVersion;
@ApiModelProperty("内核版本号")
private String sysKernelVersion;
@ApiModelProperty("当前登录用户的用户名")
private String sysLoginUser;
@ApiModelProperty("操作系统项目编号名")
private String osProjectNumName;
@ApiModelProperty("操作系统项目子编号名")
private String osSubProjectNumName;
@ApiModelProperty("操作系统产品标识码")
private String osProductId;
@ApiModelProperty("操作系统宿主机的虚拟机类型")
private String osHostVmType;
@ApiModelProperty("操作系统宿主机的云平台类型")
private String osCloudPlatformType;
@ApiModelProperty("操作系统是否为专用机系统")
private String osIsDedicatedSystem;
@ApiModelProperty("系统分辨率信息")
private String sysResolution;
@ApiModelProperty("系统硬件版本类别")
private String sysHwVersionType;
@ApiModelProperty("系统版本号/补丁版本号")
private String sysPatchVersion;
@ApiModelProperty("厂商信息")
private String biosVendor;
@ApiModelProperty("最后更新时间")
private Date updateTime;
}
\ No newline at end of file
......@@ -9,11 +9,11 @@ import java.util.Date;
/**
@ClassName:DeviceEquipmentInfo
@Author:Tty
@Description:设备详细信息
@Date:2020/9/1 17:55
@Version:1.0
* @ClassName:DeviceEquipmentInfo
* @Author:Tty
* @Description:设备详细信息
* @Date:2020/9/1 17:55
* @Version:1.0
*/
@Data
@ApiModel("设备详细信息")
......@@ -21,76 +21,33 @@ public class DeviceEquipmentInfo2VO {
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("用户名称")
private String userName;
@ApiModelProperty("用户手机号")
private String userPhoneNumber;
@ApiModelProperty("激活时间")
private String activationTime;
@ApiModelProperty("部门名称")
private String departmentName;
@ApiModelProperty("离线时间")
private String offlineTime;
@ApiModelProperty("固件版本")
private String firmwareVersion;
@ApiModelProperty("版本型号")
private String modelNumber;
@ApiModelProperty("版本号码")
private String versionNumber;
@ApiModelProperty("CPU 架构")
private String cpuArch;
@ApiModelProperty("CPU 制造厂商")
private String cpuMaker;
@ApiModelProperty("CPU 型号")
private String cpuModel;
@ApiModelProperty("CPU 额定主频")
private String cpuNominalMainFrequency;
@ApiModelProperty("CPU 核心数量")
private Integer cpuCore;
@ApiModelProperty("CPU 对虚拟化的支持")
private String cpuVirtualization;
@ApiModelProperty("物理内存总大小")
private String totalPhyMem;
@ApiModelProperty("物理内存使用率")
private String phyMemRate;
@ApiModelProperty("主板名称信息")
private String motherboard;
@ApiModelProperty("物理内存使用大小")
private String usedPhyMem;
@ApiModelProperty("生产日期")
private String productionDate;
@ApiModelProperty("实际可用的物理内存大小")
private String availPhyMem;
@ApiModelProperty("实际空闲的物理内存大小")
private String freePhyMem;
@ApiModelProperty("所有应用申请的虚拟内存总量")
private String totalVirtualMem;
@ApiModelProperty("系统中 Swap 分区总大小")
private String totalSwapSpace;
@ApiModelProperty("Swap 分区使用率")
private String swapRate;
@ApiModelProperty("Swap 分区使用量")
private String usedSwap;
@ApiModelProperty("Swap 分区空闲大小")
private String freeSwap;
@ApiModelProperty("CPU 瞬时使用率")
private String cpuPeak;
@ApiModelProperty("开机时长")
private String upTime;
@ApiModelProperty("序列号")
private String serialNumber;
@ApiModelProperty("厂商信息")
private String vendor;
@ApiModelProperty("系统架构信息")
private String sysArch;
......@@ -134,10 +91,19 @@ public class DeviceEquipmentInfo2VO {
@ApiModelProperty("系统版本号/补丁版本号")
private String sysPatchVersion;
@ApiModelProperty("厂商信息")
@ApiModelProperty("bios厂商")
private String biosVendor;
@ApiModelProperty("最后更新时间")
private Date updateTime;
@ApiModelProperty("bios版本")
private String biosVersion;
@ApiModelProperty("客户端版本号")
private String clientVersionCode;
@ApiModelProperty("地理位置纬度")
private String latitude;
@ApiModelProperty("地理位置经度")
private String longitude;
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
@Date:2020/9/1 17:55
@Version:1.0
*/
@Data
@ApiModel("设备详细信息")
public class DeviceEquipmentNetVO {
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("用户名称")
private String userName;
@ApiModelProperty("激活时间")
private String activationTime;
@ApiModelProperty("部门名称")
private String departmentName;
@ApiModelProperty("离线时间")
private String offlineTime;
@ApiModelProperty("固件版本")
private String firmwareVersion;
@ApiModelProperty("版本型号")
private String modelNumber;
@ApiModelProperty("版本号码")
private String versionNumber;
@ApiModelProperty("CPU 架构")
private String cpuArch;
@ApiModelProperty("CPU 制造厂商")
private String cpuMaker;
@ApiModelProperty("CPU 型号")
private String cpuModel;
@ApiModelProperty("CPU 额定主频")
private String cpuNominalMainFrequency;
@ApiModelProperty("CPU 核心数量")
private Integer cpuCore;
@ApiModelProperty("CPU 对虚拟化的支持")
private String cpuVirtualization;
@ApiModelProperty("物理内存总大小")
private String totalPhyMem;
@ApiModelProperty("物理内存使用率")
private String phyMemRate;
@ApiModelProperty("物理内存使用大小")
private String usedPhyMem;
@ApiModelProperty("实际可用的物理内存大小")
private String availPhyMem;
@ApiModelProperty("实际空闲的物理内存大小")
private String freePhyMem;
@ApiModelProperty("所有应用申请的虚拟内存总量")
private String totalVirtualMem;
@ApiModelProperty("系统中 Swap 分区总大小")
private String totalSwapSpace;
@ApiModelProperty("Swap 分区使用率")
private String swapRate;
@ApiModelProperty("Swap 分区使用量")
private String usedSwap;
@ApiModelProperty("Swap 分区空闲大小")
private String freeSwap;
@ApiModelProperty("CPU 瞬时使用率")
private String cpuPeak;
@ApiModelProperty("开机时长")
private String upTime;
@ApiModelProperty("系统架构信息")
private String sysArch;
@ApiModelProperty("系统名称")
private String sysName;
@ApiModelProperty("系统版本号")
private String sysVersion;
@ApiModelProperty("内核版本号")
private String sysKernelVersion;
@ApiModelProperty("当前登录用户的用户名")
private String sysLoginUser;
@ApiModelProperty("操作系统项目编号名")
private String osProjectNumName;
@ApiModelProperty("操作系统项目子编号名")
private String osSubProjectNumName;
@ApiModelProperty("操作系统产品标识码")
private String osProductId;
@ApiModelProperty("操作系统宿主机的虚拟机类型")
private String osHostVmType;
@ApiModelProperty("操作系统宿主机的云平台类型")
private String osCloudPlatformType;
@ApiModelProperty("操作系统是否为专用机系统")
private String osIsDedicatedSystem;
@ApiModelProperty("系统分辨率信息")
private String sysResolution;
@ApiModelProperty("系统硬件版本类别")
private String sysHwVersionType;
@ApiModelProperty("系统版本号/补丁版本号")
private String sysPatchVersion;
@ApiModelProperty("厂商信息")
private String biosVendor;
@ApiModelProperty("最后更新时间")
private Date updateTime;
}
\ No newline at end of file
package com.skr.mdm.bean.vo.equipment;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
@Date:2020/9/1 17:55
@Version:1.0
*/
@Data
@ApiModel("设备详细信息")
public class DeviceEquipmentUsbVO {
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("用户名称")
private String userName;
@ApiModelProperty("激活时间")
private String activationTime;
@ApiModelProperty("部门名称")
private String departmentName;
@ApiModelProperty("离线时间")
private String offlineTime;
@ApiModelProperty("固件版本")
private String firmwareVersion;
@ApiModelProperty("版本型号")
private String modelNumber;
@ApiModelProperty("版本号码")
private String versionNumber;
@ApiModelProperty("CPU 架构")
private String cpuArch;
@ApiModelProperty("CPU 制造厂商")
private String cpuMaker;
@ApiModelProperty("CPU 型号")
private String cpuModel;
@ApiModelProperty("CPU 额定主频")
private String cpuNominalMainFrequency;
@ApiModelProperty("CPU 核心数量")
private Integer cpuCore;
@ApiModelProperty("CPU 对虚拟化的支持")
private String cpuVirtualization;
@ApiModelProperty("物理内存总大小")
private String totalPhyMem;
@ApiModelProperty("物理内存使用率")
private String phyMemRate;
@ApiModelProperty("物理内存使用大小")
private String usedPhyMem;
@ApiModelProperty("实际可用的物理内存大小")
private String availPhyMem;
@ApiModelProperty("实际空闲的物理内存大小")
private String freePhyMem;
@ApiModelProperty("所有应用申请的虚拟内存总量")
private String totalVirtualMem;
@ApiModelProperty("系统中 Swap 分区总大小")
private String totalSwapSpace;
@ApiModelProperty("Swap 分区使用率")
private String swapRate;
@ApiModelProperty("Swap 分区使用量")
private String usedSwap;
@ApiModelProperty("Swap 分区空闲大小")
private String freeSwap;
@ApiModelProperty("CPU 瞬时使用率")
private String cpuPeak;
@ApiModelProperty("开机时长")
private String upTime;
@ApiModelProperty("系统架构信息")
private String sysArch;
@ApiModelProperty("系统名称")
private String sysName;
@ApiModelProperty("系统版本号")
private String sysVersion;
@ApiModelProperty("内核版本号")
private String sysKernelVersion;
@ApiModelProperty("当前登录用户的用户名")
private String sysLoginUser;
@ApiModelProperty("操作系统项目编号名")
private String osProjectNumName;
@ApiModelProperty("操作系统项目子编号名")
private String osSubProjectNumName;
@ApiModelProperty("操作系统产品标识码")
private String osProductId;
@ApiModelProperty("操作系统宿主机的虚拟机类型")
private String osHostVmType;
@ApiModelProperty("操作系统宿主机的云平台类型")
private String osCloudPlatformType;
@ApiModelProperty("操作系统是否为专用机系统")
private String osIsDedicatedSystem;
@ApiModelProperty("系统分辨率信息")
private String sysResolution;
@ApiModelProperty("系统硬件版本类别")
private String sysHwVersionType;
@ApiModelProperty("系统版本号/补丁版本号")
private String sysPatchVersion;
@ApiModelProperty("厂商信息")
private String biosVendor;
@ApiModelProperty("最后更新时间")
private Date updateTime;
}
\ No newline at end of file
......@@ -5,9 +5,11 @@ import com.skr.mdm.dto.LoginUserDTO;
import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService;
import com.skr.mdm.service.StrategyFactory;
import com.skr.mdm.service.impl.equipment.EquipmentInfo2ServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -24,6 +26,10 @@ import springfox.documentation.annotations.ApiIgnore;
@Api(tags = "设备信息上传")
public class EquipmentInfoController {
@Autowired
private EquipmentInfo2ServiceImpl equipmentInfo2Service;
@PostMapping("upload")
@ApiOperation("设备信息上传")
public ResponseResult uploadEquipmentInfo(@RequestParam @ApiParam(value = "设备信息", required = true) String data,
......@@ -32,8 +38,40 @@ public class EquipmentInfoController {
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.DEV_INFO);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("cpu/upload")
@ApiOperation("设备信息上传")
public ResponseResult updateCpuInfo(@RequestParam @ApiParam(value = "设备信息", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
equipmentInfo2Service.operationEquipmentCpu(loginUserDTO.getId(),null);
return ResponseResult.success();
}
@PostMapping("disk/upload")
@ApiOperation("设备信息上传")
public ResponseResult updateDiskInfo(@RequestParam @ApiParam(value = "设备信息", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
equipmentInfo2Service.operationEquipmentDisk(loginUserDTO.getId(),null);
return ResponseResult.success();
}
@PostMapping("usb/upload")
@ApiOperation("设备信息上传")
public ResponseResult updateUsbInfo(@RequestParam @ApiParam(value = "设备信息", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
equipmentInfo2Service.operationEquipmentUsb(loginUserDTO.getId(),null);
return ResponseResult.success();
}
@PostMapping("sysSource/upload")
@ApiOperation("设备信息上传")
public ResponseResult updateSysSourceInfo(@RequestParam @ApiParam(value = "设备信息", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
equipmentInfo2Service.operationEquipmentSysSource(loginUserDTO.getId(),null);
return ResponseResult.success();
}
@PostMapping("delete")
@ApiOperation("设备删除")
......
package com.skr.mdm.service.impl.equipment;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.skr.mdm.annotation.CmdHandler;
......@@ -103,22 +104,23 @@ public class EquipmentInfo2ServiceImpl implements CmdHandlerService {
* @param equipmentId
* @param equipmentCPUDTO
*/
private void operationEquipmentCpu(Integer equipmentId, EquipmentCPUDTO equipmentCPUDTO) {
DeviceEquipmentCpuDO deviceEquipmentCpuDO = new DeviceEquipmentCpuDO();
BeanUtils.copyProperties(equipmentCPUDTO, deviceEquipmentCpuDO);
deviceEquipmentCpuDO.setEquipmentId(equipmentId);
DeviceEquipmentCpuDO dbEquipmentInfoDO = new LambdaQueryChainWrapper<>(equipmentCpuDao)
.eq(DeviceEquipmentCpuDO::getEquipmentId, equipmentId)
.one();
if (Objects.isNull(dbEquipmentInfoDO)) {
// 添加设备信息
equipmentCpuDao.insertSelective(deviceEquipmentCpuDO);
} else {
// 修改设备信息
deviceEquipmentCpuDO.setId(dbEquipmentInfoDO.getId());
equipmentCpuDao.updateByPrimaryKeySelective(deviceEquipmentCpuDO);
public void operationEquipmentCpu(Integer equipmentId, EquipmentCPUDTO equipmentCPUDTO) {
if (Objects.nonNull(equipmentCPUDTO)) {
DeviceEquipmentCpuDO deviceEquipmentCpuDO = new DeviceEquipmentCpuDO();
BeanUtils.copyProperties(equipmentCPUDTO, deviceEquipmentCpuDO);
deviceEquipmentCpuDO.setEquipmentId(equipmentId);
DeviceEquipmentCpuDO dbEquipmentInfoDO = new LambdaQueryChainWrapper<>(equipmentCpuDao)
.eq(DeviceEquipmentCpuDO::getEquipmentId, equipmentId)
.one();
if (Objects.isNull(dbEquipmentInfoDO)) {
// 添加设备信息
equipmentCpuDao.insertSelective(deviceEquipmentCpuDO);
} else {
// 修改设备信息
deviceEquipmentCpuDO.setId(dbEquipmentInfoDO.getId());
equipmentCpuDao.updateByPrimaryKeySelective(deviceEquipmentCpuDO);
}
}
}
......@@ -128,22 +130,23 @@ public class EquipmentInfo2ServiceImpl implements CmdHandlerService {
* @param equipmentId
* @param equipmentSysResourceDTO
*/
private void operationEquipmentSysSource(Integer equipmentId, EquipmentSysResourceDTO equipmentSysResourceDTO) {
DeviceEquipmentSysSourceDO equipmentSysSourceDO = new DeviceEquipmentSysSourceDO();
BeanUtils.copyProperties(equipmentSysResourceDTO, equipmentSysSourceDO);
equipmentSysSourceDO.setEquipmentId(equipmentId);
DeviceEquipmentSysSourceDO dbSysSourceDO = new LambdaQueryChainWrapper<>(equipmentSysSourceDao)
.eq(DeviceEquipmentSysSourceDO::getEquipmentId, equipmentId)
.one();
if (Objects.isNull(dbSysSourceDO)) {
// 添加设备信息
equipmentSysSourceDao.insertSelective(equipmentSysSourceDO);
} else {
// 修改设备信息
equipmentSysSourceDO.setId(dbSysSourceDO.getId());
equipmentSysSourceDao.updateByPrimaryKeySelective(equipmentSysSourceDO);
public void operationEquipmentSysSource(Integer equipmentId, EquipmentSysResourceDTO equipmentSysResourceDTO) {
if (Objects.nonNull(equipmentSysResourceDTO)) {
DeviceEquipmentSysSourceDO equipmentSysSourceDO = new DeviceEquipmentSysSourceDO();
BeanUtils.copyProperties(equipmentSysResourceDTO, equipmentSysSourceDO);
equipmentSysSourceDO.setEquipmentId(equipmentId);
DeviceEquipmentSysSourceDO dbSysSourceDO = new LambdaQueryChainWrapper<>(equipmentSysSourceDao)
.eq(DeviceEquipmentSysSourceDO::getEquipmentId, equipmentId)
.one();
if (Objects.isNull(dbSysSourceDO)) {
// 添加设备信息
equipmentSysSourceDao.insertSelective(equipmentSysSourceDO);
} else {
// 修改设备信息
equipmentSysSourceDO.setId(dbSysSourceDO.getId());
equipmentSysSourceDao.updateByPrimaryKeySelective(equipmentSysSourceDO);
}
}
}
......@@ -153,24 +156,16 @@ public class EquipmentInfo2ServiceImpl implements CmdHandlerService {
* @param equipmentId
* @param equipmentUsbDTOList
*/
private void operationEquipmentUsb(Integer equipmentId, List<EquipmentUsbDTO> equipmentUsbDTOList) {
public void operationEquipmentUsb(Integer equipmentId, List<EquipmentUsbDTO> equipmentUsbDTOList) {
equipmentUsbDao.delete(Wrappers.lambdaQuery(DeviceEquipmentUsbDO.class).eq(DeviceEquipmentUsbDO::getEquipmentId, equipmentId));
if (CollectionUtils.isNotEmpty(equipmentUsbDTOList)) {
for (EquipmentUsbDTO equipmentUsbDTO : equipmentUsbDTOList) {
DeviceEquipmentUsbDO deviceEquipmentUsbDO = new DeviceEquipmentUsbDO();
BeanUtils.copyProperties(equipmentUsbDTO, deviceEquipmentUsbDO);
deviceEquipmentUsbDO.setEquipmentId(equipmentId);
DeviceEquipmentUsbDO dbEquipmentUsbDO = new LambdaQueryChainWrapper<>(equipmentUsbDao)
.eq(DeviceEquipmentUsbDO::getEquipmentId, equipmentId)
.one();
if (Objects.isNull(dbEquipmentUsbDO)) {
// 添加设备信息
equipmentUsbDao.insertSelective(deviceEquipmentUsbDO);
} else {
// 修改设备信息
deviceEquipmentUsbDO.setId(dbEquipmentUsbDO.getId());
equipmentUsbDao.updateByPrimaryKeySelective(deviceEquipmentUsbDO);
}
// 添加设备信息
equipmentUsbDao.insertSelective(deviceEquipmentUsbDO);
}
}
......@@ -182,7 +177,7 @@ public class EquipmentInfo2ServiceImpl implements CmdHandlerService {
* @param equipmentId
* @param equipmentDiskDTO
*/
private void operationEquipmentDisk(Integer equipmentId, EquipmentDiskDTO equipmentDiskDTO) {
public void operationEquipmentDisk(Integer equipmentId, EquipmentDiskDTO equipmentDiskDTO) {
if (Objects.nonNull(equipmentDiskDTO)) {
DeviceEquipmentDiskDO deviceEquipmentDiskDO = new DeviceEquipmentDiskDO();
BeanUtils.copyProperties(equipmentDiskDTO, deviceEquipmentDiskDO);
......
......@@ -24,6 +24,12 @@ import java.util.List;
@Repository
public interface DeviceEquipmentDao extends BaseMapper<DeviceEquipmentDO> {
/**
* 根据公司ID删除
* @param companyId 公司ID
*/
void deleteByCompanyId(@Param("companyId") Integer companyId);
List<UserEquipmentVO> listUserEquipmentVO(@Param("userId") Integer userId);
List<Integer> selectDeviceEquipmentIdByUserId(@Param("list") List<Integer> userIdList);
......
package com.skr.mdm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.skr.mdm.bean.vo.equipment.DeviceEquipmentInfo2VO;
import com.skr.mdm.entity.DeviceEquipmentInfoCopyDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Repository
......@@ -14,4 +16,12 @@ public interface DeviceEquipmentInfoCopyDao extends BaseMapper<DeviceEquipmentIn
int updateByPrimaryKeySelective(DeviceEquipmentInfoCopyDO record);
DeviceEquipmentInfo2VO getEquipmentInfo(Integer equipmentId);
/**
* 根据公司ID删除
* @param companyId 公司ID
*/
void deleteByCompanyId(@Param("companyId") Integer companyId);
}
\ No newline at end of file
......@@ -13,9 +13,6 @@
<result column="bound_state" jdbcType="TINYINT" property="boundState"/>
<result column="equipment_model" jdbcType="VARCHAR" property="equipmentModel"/>
<result column="phone_number" jdbcType="VARCHAR" property="phoneNumber"/>
<result column="imei" jdbcType="VARCHAR" property="imei"/>
<result column="uuid" jdbcType="VARCHAR" property="uuid"/>
<result column="oaid" jdbcType="VARCHAR" property="oaid"/>
<result column="tid" jdbcType="INTEGER" property="tid"/>
<result column="trid" jdbcType="INTEGER" property="trid"/>
<result column="weed_out_time" jdbcType="TIMESTAMP" property="weedOutTime"/>
......@@ -49,23 +46,20 @@
</resultMap>
<sql id="Base_Column_List">
we
.
id
as id, equipment_name as equipment_name,
de.id as id, equipment_name as equipment_name,
equipment_state as equipment_state, `state` as `state`, `control_state` as `controlState`,
user_id as user_id, we.user_name as user_name,
user_id as user_id, de.user_name as user_name,
equipment_type as equipment_type, bound_state as bound_state, equipment_model as equipment_model,
we.phone_number as phone_number, imei as imei, we.is_card_binding, we.card_unbind_password,
de.phone_number as phone_number, imei as imei, de.is_card_binding, de.card_unbind_password,
uuid as uuid, oaid as oaid, tid as tid, trid as trid,
login_count as login_count, weed_out_time as weed_out_time,
erase_time as erase_time, token as token,
refresh_token as refresh_token, ws_channel_id as ws_channel_id,
uninstall_code as uninstall_code, logon_time as logon_time,
offline_time as offline_time, activation_time as activation_time,
heartbeat_time as heartbeat_time, we.department_name as department_name,
we.company_id as company_id, we.create_time as create_time,
we.update_time as update_time
heartbeat_time as heartbeat_time, de.department_name as department_name,
de.company_id as company_id, de.create_time as create_time,
de.update_time as update_time
</sql>
<delete id="deleteByCompanyId">
......@@ -88,16 +82,6 @@
and user_id = #{userId}
</select>
<select id="selectUserIdListByStatus" resultType="java.lang.Integer">
SELECT user_id FROM device_equipment
<where>
is_delete = 0 AND equipment_state IN
<foreach collection="statusList" item="status" open="(" close=")" separator=",">
#{status}
</foreach>
</where>
order by user_id
</select>
<select id="selectDeviceEquipmentIdByUserId" resultType="java.lang.Integer">
SELECT id FROM device_equipment
WHERE is_delete = 0 AND bound_state = 0 AND user_id IN
......@@ -260,40 +244,35 @@
<select id="listEquipment" resultType="com.skr.mdm.bean.vo.equipment.DeviceEquipmentVO">
SELECT
we.id,
we.equipment_name,
we.equipment_state,
we.state,
we.control_state,
we.user_id,
we.user_name,
we.equipment_type,
we.bound_state,
we.equipment_model,
au.phone_number,
we.serial_number,
we.vendor,
we.production_date,
we.motherboard,
we.is_card_binding,
we.card_unbind_password,
we.tid,
we.trid,
we.uninstall_code,
we.offline_unlock_code,
we.offline_time,
we.department_id,
we.department_name,
de.id,
de.equipment_name,
de.equipment_state,
de.state,
de.control_state,
de.user_id,
de.user_name,
de.equipment_type,
de.bound_state,
de.equipment_model,
de.serial_number,
de.vendor,
de.production_date,
de.motherboard,
de.uninstall_code,
de.offline_unlock_code,
de.offline_time,
de.department_id,
de.department_name,
dei.longitude,
dei.latitude,
dei.client_version_code
FROM device_equipment we
JOIN au_user au on we.user_id = au.id
FROM device_equipment de
JOIN au_user au on de.user_id = au.id
JOIN au_admin_department aad on au.department_id = aad.department_id
left join device_equipment_info dei on we.id = dei.equipment_id
WHERE we.is_delete = 0 AND we.company_id = #{companyId} AND aad.admin_id = #{adminId}
left join device_equipment_info dei on de.id = dei.equipment_id
WHERE de.is_delete = 0 AND de.company_id = #{companyId} AND aad.admin_id = #{adminId}
<if test="boundState != null">
AND we.bound_state = #{boundState}
AND de.bound_state = #{boundState}
</if>
<if test="departmentIdList != null and departmentIdList.size() > 0">
AND au.department_id IN
......@@ -303,62 +282,62 @@
</if>
<choose>
<when test="state == 1 ">
AND we.equipment_state != 0
AND de.equipment_state != 0
</when>
<when test="state == 0 ">
AND we.equipment_state = 0
AND de.equipment_state = 0
</when>
<otherwise>
<if test="state != null">
AND we.state = #{state}
AND de.state = #{state}
</if>
</otherwise>
</choose>
<if test="onlineState != null and onlineState == 1">
AND we.equipment_state IN (1,2)
AND de.equipment_state IN (1,2)
</if>
<if test="onlineState != null and onlineState != 1">
AND we.equipment_state = #{onlineState}
AND de.equipment_state = #{onlineState}
</if>
<if test="deviceModel != null">
AND we.equipment_type = #{deviceModel}
AND de.equipment_type = #{deviceModel}
</if>
<if test="searchType != null">
<if test="searchType == 1">
AND we.equipment_name LIKE CONCAT('%',#{searchValue},'%')
AND de.equipment_name LIKE CONCAT('%',#{searchValue},'%')
</if>
<if test="searchType == 2">
AND we.user_name LIKE CONCAT('%',#{searchValue},'%')
AND de.user_name LIKE CONCAT('%',#{searchValue},'%')
</if>
<if test="searchType == 3">
AND we.department_name LIKE CONCAT('%',#{searchValue},'%')
AND de.department_name LIKE CONCAT('%',#{searchValue},'%')
</if>
<if test="searchType == 4">
AND we.imei LIKE CONCAT('%',#{searchValue},'%')
AND de.imei LIKE CONCAT('%',#{searchValue},'%')
</if>
<if test="searchType == 5">
AND au.phone_number LIKE CONCAT('%',#{searchValue},'%')
</if>
</if>
GROUP BY we.id
GROUP BY de.id
<choose>
<when test="orderState != null and orderState == 'onlineStateAsc'">
ORDER BY FIELD(we.equipment_state,0,3,2,1)
ORDER BY FIELD(de.equipment_state,0,3,2,1)
</when>
<when test="state == 0">
</when>
<otherwise>
ORDER BY FIELD(we.equipment_state,1,2,3,0)
ORDER BY FIELD(de.equipment_state,1,2,3,0)
</otherwise>
</choose>
<choose>
<when test="orderTime != null and orderTime == 'orderTimeAsc' ">
,we.offline_time ASC
,de.offline_time ASC
</when>
<when test="state == 0">
</when>
<otherwise>
,we.offline_time DESC
,de.offline_time DESC
</otherwise>
</choose>
</select>
......
......@@ -39,11 +39,53 @@
from device_equipment_info_copy
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
<select id="getEquipmentInfo" resultType="com.skr.mdm.bean.vo.equipment.DeviceEquipmentInfo2VO">
SELECT de.equipment_name,
de.user_name,
de.activation_time,
de.department_name,
de.offline_time,
de.motherboard,
de.serial_number,
de.production_date,
de.vendor,
au.phone_number as userPhoneNumber,
dei.sys_arch,
dei.sys_name,
dei.sys_version,
dei.sys_kernel_version,
dei.sys_login_user,
dei.os_project_num_name,
dei.os_sub_project_num_name,
dei.os_product_id,
dei.os_host_vm_type,
dei.os_cloud_platform_type,
dei.os_is_dedicated_system,
dei.sys_resolution,
dei.sys_hw_version_type,
dei.sys_patch_version,
dei.bios_vendor,
dei.bios_version,
dei.client_version_code,
dei.latitude,
dei.longitude,
dei.update_time
FROM device_equipment de
LEFT JOIN device_equipment_info_copy dei ON dei.equipment_id = de.id
JOIN au_user au on de.user_id = au.id
WHERE au.is_delete = 0
AND de.id = #{equipmentId}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from device_equipment_info_copy
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.skr.mdm.entity.DeviceEquipmentInfoCopyDO" useGeneratedKeys="true">
<delete id="deleteByCompanyId">
delete
from device_equipment
where company_id = #{companyId}
</delete>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.skr.mdm.entity.DeviceEquipmentInfoCopyDO" useGeneratedKeys="true">
insert into device_equipment_info_copy
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="equipmentId != null">
......
......@@ -2,7 +2,6 @@ package com.skr.mdm.api.equipment.controller;
import com.skr.mdm.api.equipment.UserStrategyFactory;
import com.skr.mdm.api.equipment.service.EquipmentService;
import com.skr.mdm.bean.qo.BaseQueryQO;
import com.skr.mdm.bean.qo.equipment.EquipmentAddUpdateQO;
import com.skr.mdm.bean.qo.equipment.EquipmentPageQO;
import com.skr.mdm.bean.vo.equipment.DeviceEquipmentVO;
......
......@@ -68,7 +68,7 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
private final List<EquipmentImportFailDTO> equipmentImportFailDTOList = Lists.newArrayListWithExpectedSize(256);
private Set<String> imeiSet = Sets.newHashSetWithExpectedSize(256);
private Set<String> serialSet = Sets.newHashSetWithExpectedSize(256);
private Map<Integer, Set<String>> equipmentNameMap = Maps.newHashMapWithExpectedSize(256);
......@@ -129,7 +129,7 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
.eq(DeviceEquipmentDO::getIsDelete, DeleteStateEnum.NON_DELETE.getState())
.list();
if (CollectionUtils.isNotEmpty(deviceEquipmentDOList)) {
this.imeiSet = deviceEquipmentDOList.stream()
this.serialSet = deviceEquipmentDOList.stream()
.map(DeviceEquipmentDO::getSerialNumber)
.filter(StringUtils::isNotBlank)
.collect(Collectors.toSet());
......@@ -188,12 +188,12 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
return;
}
// imei查重
if (CollectionUtils.isNotEmpty(imeiSet) && imeiSet.contains(data.getSerialNum())) {
equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "IMEI与系统中重复"));
if (CollectionUtils.isNotEmpty(serialSet) && serialSet.contains(data.getSerialNum())) {
equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "序列号与系统中重复"));
failCount++;
return;
}
imeiSet.add(data.getSerialNum());
serialSet.add(data.getSerialNum());
// 如果存在设备名进行查重 不存在自动生成设备名
AuUserDO userDO = userDOMap.get(data.getPhoneNumber());
String equipmentName = data.getEquipmentName();
......@@ -233,7 +233,7 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
// 生成错误报告,并上传到minio
uploadErrorReport();
equipmentDOList.clear();
imeiSet.clear();
serialSet.clear();
equipmentNameMap.clear();
userDOMap.clear();
}
......@@ -309,10 +309,10 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "手机号格式错误"));
return true;
}
if (!Pattern.matches(RegexConstants.IMEI_REGEX, data.getSerialNum()) && !Pattern.matches(RegexConstants.IMEI_NUMBER_REGEX, data.getSerialNum())) {
equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "IMEI格式错误"));
return true;
}
// if (!Pattern.matches(RegexConstants.IMEI_REGEX, data.getSerialNum()) && !Pattern.matches(RegexConstants.IMEI_NUMBER_REGEX, data.getSerialNum())) {
// equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "IMEI格式错误"));
// return true;
// }
if (StringUtils.isNotBlank(data.getEquipmentName()) && !Pattern.matches(RegexConstants.EQUIPMENT_NAME_REGEX, data.getEquipmentName())) {
equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "设备名格式错误"));
return true;
......@@ -326,7 +326,7 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
return true;
}
if (StringUtils.isBlank(data.getSerialNum())) {
equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "IMEI不能为空"));
equipmentImportFailDTOList.add(covertEquipmentImportFailDTO(data, "序列号不能为空"));
return true;
}
return false;
......@@ -347,7 +347,7 @@ public class EquipmentImportDataListener extends AnalysisEventListener<Equipment
private EquipmentImportFailDTO covertEquipmentImportFailDTO(EquipmentImportData userImportData, String failInfo) {
return EquipmentImportFailDTO.builder()
.phoneNumber(userImportData.getPhoneNumber())
.imei(userImportData.getSerialNum())
.serial(userImportData.getSerialNum())
.equipmentName(userImportData.getEquipmentName())
.failInfo(failInfo)
.build();
......
......@@ -2,7 +2,9 @@ package com.skr.mdm.api.equipment.service.impl;
import com.skr.mdm.api.equipment.annotation.UserStrategy;
import com.skr.mdm.api.equipment.service.UserStrategyService;
import com.skr.mdm.bean.vo.equipment.DeviceEquipmentInfo2VO;
import com.skr.mdm.dao.DeviceEquipmentDao;
import com.skr.mdm.dao.DeviceEquipmentInfoCopyDao;
import com.skr.mdm.enums.SendCmdConfigEnum;
import com.skr.mdm.enums.UserStrategyEnum;
import com.skr.mdm.handle.IssuedUserHandler;
......@@ -23,6 +25,8 @@ public class EquipmentInfoUserStrategyServiceImpl implements UserStrategyService
private DeviceEquipmentDao equipmentDao;
@Autowired
private IssuedUserHandler issuedUserHandler;
@Autowired
private DeviceEquipmentInfoCopyDao deviceEquipmentInfoCopyDao;
@Override
public ResponseResult getUserStrategy(Integer equipmentId) {
......@@ -30,6 +34,7 @@ public class EquipmentInfoUserStrategyServiceImpl implements UserStrategyService
DeviceEquipmentDO equipmentDO = equipmentDao.selectById(equipmentId);
issuedUserHandler.issuedUser(Collections.singletonList(equipmentId), equipmentDO.getCompanyId(),
SendCmdConfigEnum.UPLOAD_EQUIPMENT.getCmd(), null);
return ResponseResult.success(equipmentDao.getEquipmentInfo(equipmentId));
DeviceEquipmentInfo2VO deviceEquipmentInfo2VO = deviceEquipmentInfoCopyDao.getEquipmentInfo(equipmentId);
return ResponseResult.success(deviceEquipmentInfo2VO);
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment