feat: 设备操作日志

master
李小林 8 months ago
parent 76722e3aff
commit 8ff583812a
  1. 5
      pom.xml
  2. 25
      src/main/java/com/bellmann/common/enums/OperateTaskStateEnum.java
  3. 11
      src/main/java/com/bellmann/common/util/CommonUtils.java
  4. 36
      src/main/java/com/bellmann/controller/DeviceLogController.java
  5. 7
      src/main/java/com/bellmann/controller/DeviceStaticController.java
  6. 14
      src/main/java/com/bellmann/controller/FileRecordController.java
  7. 21
      src/main/java/com/bellmann/controller/OperateResult2Controller.java
  8. 36
      src/main/java/com/bellmann/controller/OperateTask2Controller.java
  9. 18
      src/main/java/com/bellmann/converter/OperateTask2Converter.java
  10. 18
      src/main/java/com/bellmann/mapper/DeviceLogMapper.java
  11. 4
      src/main/java/com/bellmann/mapper/DeviceStaticMapper.java
  12. 3
      src/main/java/com/bellmann/mapper/FileRecordMapper.java
  13. 18
      src/main/java/com/bellmann/mapper/OperateResult2Mapper.java
  14. 21
      src/main/java/com/bellmann/mapper/OperateTask2Mapper.java
  15. 13
      src/main/java/com/bellmann/model/bo/DevOnlineStatus.java
  16. 26
      src/main/java/com/bellmann/model/bo/OperateTask2TableBO.java
  17. 10
      src/main/java/com/bellmann/model/dto/ParamInfo.java
  18. 36
      src/main/java/com/bellmann/model/entity/DeviceLog.java
  19. 45
      src/main/java/com/bellmann/model/entity/OperateResult2.java
  20. 41
      src/main/java/com/bellmann/model/entity/OperateTask2.java
  21. 24
      src/main/java/com/bellmann/model/vo/DeviceLogVO.java
  22. 36
      src/main/java/com/bellmann/model/vo/OperateTask2TableVO.java
  23. 55
      src/main/java/com/bellmann/model/vo/OperateTask2VO.java
  24. 18
      src/main/java/com/bellmann/service/DeviceLogService.java
  25. 1
      src/main/java/com/bellmann/service/DeviceStaticService.java
  26. 3
      src/main/java/com/bellmann/service/FileRecordService.java
  27. 13
      src/main/java/com/bellmann/service/OperateResult2Service.java
  28. 18
      src/main/java/com/bellmann/service/OperateTask2Service.java
  29. 91
      src/main/java/com/bellmann/service/impl/DeviceLogServiceImpl.java
  30. 26
      src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java
  31. 10
      src/main/java/com/bellmann/service/impl/FileRecordServiceImpl.java
  32. 17
      src/main/java/com/bellmann/service/impl/OperateResult2ServiceImpl.java
  33. 37
      src/main/java/com/bellmann/service/impl/OperateTask2ServiceImpl.java
  34. 223
      src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java
  35. 18
      src/main/resources/mapper/DeviceLogMapper.xml
  36. 35
      src/main/resources/mapper/DeviceStaticMapper.xml
  37. 12
      src/main/resources/mapper/FileRecordMapper.xml
  38. 22
      src/main/resources/mapper/OperateResult2Mapper.xml
  39. 62
      src/main/resources/mapper/OperateTask2Mapper.xml

@ -173,6 +173,11 @@
<version>${mybatis-plus-generator.version}</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.17.2</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>

@ -0,0 +1,25 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum OperateTaskStateEnum implements IBaseEnum<String> {
NOT_EXECUTED("0","未执行"),
EXECUTION_FAILED("1","执行失败"),
THE_EXECUTION_WAS_SUCCESSFUL("2","执行成功"),
THE_DEVICE_IS_NOT_ONLINE("3","设备不在线"),
ONGOING("4","进行中"),
;
@Getter
private String value;
@Getter
private String label;
OperateTaskStateEnum(String value, String label){
this.label = label;
this.value = value;
}
}

@ -1,8 +1,11 @@
package com.bellmann.common.util;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CommonUtils {
private static final String HTML_TAG_PATTERN = "<(\"[^\"]*\"|'[^']*'|[^'\">])*>";
public static String getRandomString(int length) { //length表示生成字符串的长度
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
@ -14,4 +17,12 @@ public class CommonUtils {
}
return "12$"+sb.toString();
}
public static boolean containsHtmlTag(String input) {
// 编译正则表达式
Pattern pattern = Pattern.compile(HTML_TAG_PATTERN);
// 创建匹配器
Matcher matcher = pattern.matcher(input);
// 判断是否找到匹配
return matcher.find();
}
}

@ -0,0 +1,36 @@
package com.bellmann.controller;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.model.vo.DeviceLogVO;
import com.bellmann.service.DeviceLogService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author 李小林
* @since 2024-07-05
*/
@Tag(name = "24.设备操作日志")
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/device-log/v1")
public class DeviceLogController {
private final DeviceLogService deviceLogService;
@PostMapping("/page/{devId}")
@Operation(summary = "设备操作日志-page")
public PageResult<DeviceLogVO> page(@RequestBody BasePageQuery query, @PathVariable Long devId){
return deviceLogService.page(query,devId);
}
}

@ -102,9 +102,14 @@ public class DeviceStaticController {
}
@PostMapping("remote/unbinding")
@Operation(summary = "远程操作-设备信息")
@Operation(summary = "远程操作-解绑LogicID")
public Result<String> unbindingLogicId(@RequestBody UnBindingForm form){
return deviceStaticService.unbindingLogicId(form);
}
@DeleteMapping("remote/delete-profile/{devId}/{fileId}")
@Operation(summary = "远程操作-删除私有厂商配置文件")
public Result<String> deleteProfile(@PathVariable Long devId, @PathVariable Long fileId){
return deviceStaticService.deleteProfile(devId,fileId);
}
}

@ -2,6 +2,7 @@ package com.bellmann.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.common.result.Result;
import com.bellmann.model.form.FileRecordForm;
@ -12,11 +13,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* <p>
@ -49,5 +46,12 @@ public class FileRecordController {
Long result = fileRecordService.addFileRecord(form);
return Result.success(result);
}
@PostMapping("remote/profile-page/{fileType}/{devId}")
@Operation(summary = "远程操作-私有配置文件分页")
public PageResult<FileRecordVO> profilePage(@RequestBody BasePageQuery query, @PathVariable String fileType, @PathVariable Long devId){
Page<FileRecordVO> result = fileRecordService.profilePage(query,devId,fileType);
return PageResult.success(result);
}
}

@ -0,0 +1,21 @@
package com.bellmann.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@RestController
@RequestMapping("/operateResult2")
public class OperateResult2Controller {
}

@ -0,0 +1,36 @@
package com.bellmann.controller;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.model.vo.OperateTask2TableVO;
import com.bellmann.service.OperateTask2Service;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Tag(name = "23.设备任务列表")
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/operate-task2/v1")
public class OperateTask2Controller {
private final OperateTask2Service operateTask2Service;
@PostMapping("/page/{devId}")
@Operation(summary = "设备任务列表-page")
public PageResult<OperateTask2TableVO> page(@PathVariable Long devId, @RequestBody BasePageQuery query){
return operateTask2Service.page(devId,query);
}
}

@ -0,0 +1,18 @@
package com.bellmann.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.OperateTask2TableBO;
import com.bellmann.model.vo.OperateTask2TableVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@Mapper(componentModel = "spring")
public interface OperateTask2Converter {
@Mappings({
@Mapping(target = "resultState", expression = "java(com.bellmann.common.base.IBaseEnum.getLabelByValue(bo.getResultState(), com.bellmann.common.enums.OperateTaskStateEnum.class))"),
})
OperateTask2TableVO pageBo2PageVo(OperateTask2TableBO bo);
Page<OperateTask2TableVO> pageBo2PageVo(Page<OperateTask2TableBO> boPage);
}

@ -0,0 +1,18 @@
package com.bellmann.mapper;
import com.bellmann.model.entity.DeviceLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-07-05
*/
@Mapper
public interface DeviceLogMapper extends BaseMapper<DeviceLog> {
}

@ -2,6 +2,7 @@ package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.DevOnlineStatus;
import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.bo.EquipmentBO;
import com.bellmann.model.bo.RemoteEquipmentBO;
@ -26,4 +27,7 @@ public interface DeviceStaticMapper extends BaseMapper<DeviceStatic> {
Page<RemoteEquipmentBO> remotePage(Page<RemoteEquipmentBO> page, @Param("column") String column, @Param("value") Object value);
DevOnlineStatus devOnlineStatusBySno(@Param("devSno") String devSno);
DevOnlineStatus devOnlineStatusByPppoe(@Param("pppoe") String pppoe);
}

@ -1,6 +1,7 @@
package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.entity.FileRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -21,4 +22,6 @@ public interface FileRecordMapper extends BaseMapper<FileRecord> {
List<FileRecord> listVendorProfile(@Param("typeAndVerId") Long typeAndVerId, @Param("fileType") String fileType);
FileRecord fileRecordJoinFileVerMap(@Param("typeAndVerId") Long typeAndVerId, @Param("fileType") String fileType);
Page<FileRecord> profilePage(Page<FileRecord> page, @Param("devId") Long devId, @Param("fileType") String fileType);
}

@ -0,0 +1,18 @@
package com.bellmann.mapper;
import com.bellmann.model.entity.OperateResult2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Mapper
public interface OperateResult2Mapper extends BaseMapper<OperateResult2> {
}

@ -0,0 +1,21 @@
package com.bellmann.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.OperateTask2TableBO;
import com.bellmann.model.entity.OperateTask2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Mapper
public interface OperateTask2Mapper extends BaseMapper<OperateTask2> {
Page<OperateTask2TableBO> tablePage(Page<OperateTask2TableBO> page, Long devId);
}

@ -0,0 +1,13 @@
package com.bellmann.model.bo;
import lombok.Data;
@Data
public class DevOnlineStatus {
private String devOnline;
private String devOnline1;
}

@ -0,0 +1,26 @@
package com.bellmann.model.bo;
import lombok.Data;
import java.util.Date;
@Data
public class OperateTask2TableBO {
private Long operTaskId;
private Long devId;
private String userName;
private String operTaskDesc;
private String devAdNo;
private Date operTaskCreateTime;
private String resultState;
}

@ -0,0 +1,10 @@
package com.bellmann.model.dto;
import lombok.Data;
@Data
public class ParamInfo {
private String parameterName;
private String actualValue;
private String remarks;
}

@ -0,0 +1,36 @@
package com.bellmann.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-07-05
*/
@Data
@TableName("itms_device_log")
@EqualsAndHashCode(callSuper = false)
public class DeviceLog implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "dev_id", type = IdType.AUTO)
private Long devId;
private Date operTime;
private String operDesc;
private String operName;
}

@ -0,0 +1,45 @@
package com.bellmann.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("itms_oper_result_2")
public class OperateResult2 implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "oper_task_id", type = IdType.AUTO)
private Long operTaskId;
private Long devId;
private Date operStartTime;
private Date operEndTime;
private String actionName;
private String errorCode;
private String errorDesc;
private String resultState;
}

@ -0,0 +1,41 @@
package com.bellmann.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("itms_oper_task_2")
public class OperateTask2 implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "oper_task_id", type = IdType.AUTO)
private Long operTaskId;
private Long devId;
private String userName;
private String operTaskDesc;
private Date operTaskCreateTime;
private String operName;
}

@ -0,0 +1,24 @@
package com.bellmann.model.vo;
import com.bellmann.model.dto.ParamInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
@Schema(description = "设备操作日志视图")
public class DeviceLogVO {
private Long devId;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date operTime;
private String description;
private String operName;
private List<ParamInfo> paramInfoList;
}

@ -0,0 +1,36 @@
package com.bellmann.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Data
@Schema(description = "设备任务列表视图")
public class OperateTask2TableVO {
private Long operTaskId;
private Long devId;
private String userName;
private String operTaskDesc;
private String devAdNo;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date operTaskCreateTime;
private String resultState;
}

@ -0,0 +1,55 @@
package com.bellmann.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Data
@Schema(description = "设备任务列表详细信息视图")
public class OperateTask2VO {
private Long operTaskId;
private Long devId;
private String userName;
private String operTaskDesc;
private String devSno;
private String devPppoe;
@JsonIgnore
private Long systemDomain;
private String domain;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date operTaskCreateTime;
private String resultState;
private String errorCode;
private String errorDesc;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date operStartTime;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date operEndTime;
private String devTypeName;
}

@ -0,0 +1,18 @@
package com.bellmann.service;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.model.vo.DeviceLogVO;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-07-05
*/
public interface DeviceLogService {
PageResult<DeviceLogVO> page(BasePageQuery query, Long devId);
}

@ -41,4 +41,5 @@ public interface DeviceStaticService {
Result<String> unbindingLogicId(UnBindingForm form);
Result<String> deleteProfile(Long devId, Long fileId);
}

@ -1,6 +1,7 @@
package com.bellmann.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.model.entity.FileRecord;
import com.bellmann.model.form.FileRecordForm;
import com.bellmann.model.query.FileRecordQuery;
@ -21,4 +22,6 @@ public interface FileRecordService{
FileRecord findFileRecordById(Long fileId);
Long addFileRecord(FileRecordForm form);
Page<FileRecordVO> profilePage(BasePageQuery query, Long devId, String fileType);
}

@ -0,0 +1,13 @@
package com.bellmann.service;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
public interface OperateResult2Service {
}

@ -0,0 +1,18 @@
package com.bellmann.service;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.model.vo.OperateTask2TableVO;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
public interface OperateTask2Service {
PageResult<OperateTask2TableVO> page(Long devId, BasePageQuery query);
}

@ -0,0 +1,91 @@
package com.bellmann.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.common.util.CommonUtils;
import com.bellmann.mapper.DeviceLogMapper;
import com.bellmann.model.dto.ParamInfo;
import com.bellmann.model.entity.DeviceLog;
import com.bellmann.model.vo.DeviceLogVO;
import com.bellmann.service.DeviceLogService;
import lombok.RequiredArgsConstructor;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-07-05
*/
@Service
@RequiredArgsConstructor
public class DeviceLogServiceImpl implements DeviceLogService {
private final DeviceLogMapper deviceLogMapper;
@Override
public PageResult<DeviceLogVO> page(BasePageQuery query, Long devId) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<DeviceLog> page = new Page<>(pageNum,pageSize);
Page<DeviceLog> entityPage = deviceLogMapper.selectPage(page, new LambdaQueryWrapper<DeviceLog>()
.eq(DeviceLog::getDevId, devId)
.orderByDesc(DeviceLog::getOperTime)
);
List<DeviceLog> records = entityPage.getRecords();
List<DeviceLogVO> list = new ArrayList<>();
if (!records.isEmpty()){
list = records.stream().map(obj -> {
DeviceLogVO deviceLogVO = new DeviceLogVO();
String desc = obj.getOperDesc();
String targetText = "parameter values :";
int startIndex = desc.indexOf(targetText);
if (startIndex>0){
String paramValue = desc.substring(startIndex + targetText.length()).trim();
if (!paramValue.isEmpty()&& CommonUtils.containsHtmlTag(paramValue)){
desc = desc.substring(0,startIndex);
deviceLogVO.setParamInfoList(parseHtmlToParamInfo(paramValue));
}
}
deviceLogVO.setDevId(obj.getDevId());
deviceLogVO.setOperTime(obj.getOperTime());
deviceLogVO.setDescription(desc);
deviceLogVO.setOperName(obj.getOperName());
return deviceLogVO;
}).collect(Collectors.toList());
}
Page<DeviceLogVO> voPage = new Page<>();
voPage.setTotal(entityPage.getTotal());
voPage.setRecords(list);
return PageResult.success(voPage);
}
private static List<ParamInfo> parseHtmlToParamInfo(String html){
List<ParamInfo> list = new ArrayList<>();
Document doc = Jsoup.parse(html);
Element table = doc.select("table.tableFormTable").first();
assert table != null;
Elements rows = table.select("tr");
for (int i = 2; i < rows.size(); i++) {
ParamInfo paramInfo = new ParamInfo();
Elements cols = rows.get(i).select("td");
paramInfo.setParameterName(cols.get(0).text().trim());
paramInfo.setActualValue(cols.get(1).text().trim());
paramInfo.setRemarks(cols.get(2).text().trim());
list.add(paramInfo);
}
return list;
}
}

@ -29,6 +29,7 @@ import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.*;
import com.bellmann.security.util.SecurityUtils;
import com.bellmann.service.DeviceStaticService;
import com.bellmann.service.FileOptionService;
import com.zznode.itms.api.InventoryManager;
import com.zznode.itms.api.NBIManager;
import com.zznode.itms.idl.order.OrderInfoStructListHolder;
@ -78,6 +79,8 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
private final DeviceServiceMapMapper deviceServiceMapMapper;
private final FileOptionService fileOptionService;
@Override
public Page<EquipmentVO> resourcePage(SelectQuery query) {
@ -414,4 +417,27 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
}
return 2;
}
@Override
public Result<String> deleteProfile(Long devId, Long fileId) {
if (devId==null||fileId==null){
return Result.failed(ResultCode.FILE_DELETE_FAIL);
}
FileRecord fileRecord = fileRecordManager.findFileRecordById(fileId);
if (fileRecord==null){
return Result.failed(ResultCode.FILE_NOT_EXIST);
}
boolean flag = fileOptionService.removeFile(fileRecord.getFileUrl(), fileRecord.getFileName());
if (flag){
int i = fileRecordManager.deleteByFileId(fileId);
int row = fileDevMapMapper.delete(new LambdaQueryWrapper<FileDevMap>()
.eq(FileDevMap::getDevId, devId)
.eq(FileDevMap::getFileId, fileId)
);
if (i==1&&row==1){
return Result.success();
}
}
return Result.failed(ResultCode.FILE_DELETE_FAIL);
}
}

@ -2,6 +2,7 @@ package com.bellmann.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.converter.FileRecordConverter;
import com.bellmann.mapper.FileRecordMapper;
import com.bellmann.model.entity.FileRecord;
@ -60,4 +61,13 @@ public class FileRecordServiceImpl implements FileRecordService {
fileRecordMapper.insert(fileRecord);
return fileRecord.getFileId();
}
@Override
public Page<FileRecordVO> profilePage(BasePageQuery query, Long devId, String fileType) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<FileRecord> page = new Page<>(pageNum,pageSize);
Page<FileRecord> entityPage = fileRecordMapper.profilePage(page,devId,fileType);
return fileRecordConverter.entityPage2VOPage(entityPage);
}
}

@ -0,0 +1,17 @@
package com.bellmann.service.impl;
import com.bellmann.service.OperateResult2Service;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Service
public class OperateResult2ServiceImpl implements OperateResult2Service {
}

@ -0,0 +1,37 @@
package com.bellmann.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.converter.OperateTask2Converter;
import com.bellmann.mapper.OperateTask2Mapper;
import com.bellmann.model.bo.OperateTask2TableBO;
import com.bellmann.model.vo.OperateTask2TableVO;
import com.bellmann.service.OperateTask2Service;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-07-03
*/
@Service
@RequiredArgsConstructor
public class OperateTask2ServiceImpl implements OperateTask2Service {
private final OperateTask2Mapper operateTask2Mapper;
private final OperateTask2Converter operateTask2Converter;
@Override
public PageResult<OperateTask2TableVO> page(Long devId, BasePageQuery query) {
int pageSize = query.getPageSize();
int pageNum = query.getPageNum();
Page<OperateTask2TableBO> page = new Page<>(pageNum,pageSize);
Page<OperateTask2TableBO> boPage = operateTask2Mapper.tablePage(page,devId);
return PageResult.success(operateTask2Converter.pageBo2PageVo(boPage));
}
}

@ -14,6 +14,7 @@ import com.bellmann.common.result.ResultCode;
import com.bellmann.common.util.CommonUtils;
import com.bellmann.converter.OrderInfoConverter;
import com.bellmann.mapper.*;
import com.bellmann.model.bo.DevOnlineStatus;
import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.entity.OrderInfo;
@ -62,37 +63,60 @@ public class OrderInfoServiceImpl implements OrderInfoService {
private final OrderInfoConverter orderInfoConverter;
private final DeviceTypeVerMapper deviceTypeVerMapper;
@Override
public Page<OrderInfoTableVO> tablePage(SelectQuery query) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Object value = query.getSelectValue();
String column = query.getSelectName();
Page<OrderInfoTableVO> page = new Page<>(pageNum,pageSize);
Page<OrderInfoTableVO> page = new Page<>(pageNum, pageSize);
Long domain = SecurityUtils.getGroupId();
List<OrderInfoTableVO> list = orderInfoMapper.tablePage(page, column, value,domain);
List<OrderInfoTableVO> list = orderInfoMapper.tablePage(page, column, value, domain);
return getOrderInfoTableVOPage(page, list);
}
private String devOnlineStatus(String devSnoOui,String pppoe){
String devOui="";
String devSno="";
String status = "无设备上线记录";
if (devSnoOui==null || devSnoOui.isEmpty()){
if (pppoe==null ||pppoe.isEmpty()) {
return status;
private String devOnlineStatus(String devSnoOui, String pppoe) {
// 提前检查devSnoOui是否为空或空字符串
if (devSnoOui == null || devSnoOui.isEmpty()) {
return "无设备上线记录";
}
// 解析devSnoOui
String devSno = devSnoOui.trim();
if (devSnoOui.contains("-")) {
String[] devOS = devSnoOui.split("-");
devSno = devOS[1].trim();
}
if (!devSnoOui.contains("-")){
devSno = devSnoOui.trim();
}else {
String[] devOS = devSnoOui.trim().split("-");
devOui = devOS[0];
devSno = devOS[1];
// 尝试根据SN号或PPPoE获取设备在线状态
DevOnlineStatus onlineStatus = null;
if (devSno != null) {
onlineStatus = deviceStaticMapper.devOnlineStatusBySno(devSno);
} else if (pppoe != null) {
onlineStatus = deviceStaticMapper.devOnlineStatusByPppoe(pppoe);
}
// 如果没有找到在线状态,返回"无设备上线记录"
if (onlineStatus == null) {
return "无设备上线记录";
}
// 根据获取的在线状态字段确定设备状态
String devOnline = onlineStatus.getDevOnline();
if (devOnline == null || devOnline.isEmpty()) {
return "无设备上线记录";
}
// 假设getDevOnline1()用于表示某种辅助的在线状态,这里简单处理
String devOnline1 = onlineStatus.getDevOnline1();
if ("0".equals(devOnline)) {
return (devOnline1 != null && "0".equals(devOnline1)) ? "设备在线" : "设备离线";
} else {
return "设备离线";
}
}
@Override
public Result<OrderInfoVO> getOrderById(Long orderId) {
OrderInfoVO orderInfoVO = orderInfoMapper.getOrderById(orderId);
@ -110,16 +134,16 @@ public class OrderInfoServiceImpl implements OrderInfoService {
orderInfoVO.getDummyFlag(), DummyFlagEnum.class));
orderInfoVO.setOrderDoneFlag(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderDoneFlag(),OrderDoneFlagEnum.class));
orderInfoVO.getOrderDoneFlag(), OrderDoneFlagEnum.class));
orderInfoVO.setDomain(
(String) redisTemplate
.opsForHash()
.get(SecurityConstants.DOMAIN_PREFIX,
orderInfoVO.getSystemDomain().toString()));
orderInfoVO.setDevOnlineStatus(devOnlineStatus(orderInfoVO.getDevSnoOui(),orderInfoVO.getPppoeAccount()));
if (orderInfoVO.getAdNo()!=null) {
orderInfoVO.setDevOnlineStatus(devOnlineStatus(orderInfoVO.getDevSnoOui(), orderInfoVO.getPppoeAccount()));
if (orderInfoVO.getAdNo() != null) {
String devAccessType = deviceTypeVerDetailMapper.findDevAccessType(orderInfoVO.getAdNo());
if (devAccessType!=null){
if (devAccessType != null) {
orderInfoVO.setDevAccessType(IBaseEnum.getLabelByValue(
devAccessType, DevAccessTypeEnum.class));
}
@ -129,24 +153,24 @@ public class OrderInfoServiceImpl implements OrderInfoService {
@Override
public Result<String> updateOrderStatus(Long orderId, String orderStatus) {
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderStatus)){
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderStatus)) {
throw new BusinessException(ResultCode.BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION);
}
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
.select("order_status")
.eq("order_id", orderId)
);
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderInfo.getOrderStatus())){
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderInfo.getOrderStatus())) {
throw new BusinessException(ResultCode.BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION);
}
orderInfoMapper.update(null,new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId,orderId)
.set(OrderInfo::getOrderStatus,orderStatus)
orderInfoMapper.update(null, new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId, orderId)
.set(OrderInfo::getOrderStatus, orderStatus)
);
if (OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderStatus)){
orderServiceMapper.update(null,new LambdaUpdateWrapper<OrderService>()
.eq(OrderService::getOrderId,orderId)
.set(OrderService::getServiceId,-999)
if (OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderStatus)) {
orderServiceMapper.update(null, new LambdaUpdateWrapper<OrderService>()
.eq(OrderService::getOrderId, orderId)
.set(OrderService::getServiceId, -999)
);
}
return Result.success();
@ -155,16 +179,16 @@ public class OrderInfoServiceImpl implements OrderInfoService {
@Override
public Result<String> executeOrder(Long orderId) {
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
.select("order_status","pppoe_account","dev_sno_oui","unique_user_id","order_service_type")
.select("order_status", "pppoe_account", "dev_sno_oui", "unique_user_id", "order_service_type")
.eq("order_id", orderId)
);
if(!OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderInfo.getOrderStatus())){
if (!OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderInfo.getOrderStatus())) {
throw new BusinessException(ResultCode.NOT_OPERATE_ORDER);
}
orderInfoMapper.update(null,new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId,orderId)
.set(OrderInfo::getOrderStatus,OrderStatusEnum.NOT_PROCESSED.getValue())
.set(OrderInfo::getOrderDoneFlag,OrderDoneFlagEnum.THE_ORDER_HAS_NOT_BEEN_RETURNED.getValue())
orderInfoMapper.update(null, new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId, orderId)
.set(OrderInfo::getOrderStatus, OrderStatusEnum.NOT_PROCESSED.getValue())
.set(OrderInfo::getOrderDoneFlag, OrderDoneFlagEnum.THE_ORDER_HAS_NOT_BEEN_RETURNED.getValue())
);
boolean ouiFlag = false;
boolean pppoeFlag = false;
@ -172,7 +196,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
DeviceDetailBO bo = null;
OrderInfo obj = orderInfoMapper.orderSnoOuiPppoeUnique(orderId);
String devSnoOui = obj.getDevSnoOui();
if (devSnoOui!=null&& !devSnoOui.trim().isEmpty()) {
if (devSnoOui != null && !devSnoOui.trim().isEmpty()) {
if (devSnoOui.startsWith("12$")) {
devSnoOui = orderInfo.getDevSnoOui();
if (devSnoOui.isEmpty()) {
@ -186,45 +210,45 @@ public class OrderInfoServiceImpl implements OrderInfoService {
sno = split[0];
oui = split[1];
}
bo = deviceStaticMapper.orderByDevSnoOui(sno, oui,null);
bo = deviceStaticMapper.orderByDevSnoOui(sno, oui, null);
if (bo == null) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}else {
} else {
ouiFlag = true;
}
}
String uniqueUserId = obj.getUniqueUserId();
if (
uniqueUserId!=null&&
!uniqueUserId.isEmpty()&&
!ouiFlag&&
uniqueUserId != null &&
!uniqueUserId.isEmpty() &&
!ouiFlag &&
!OrderServiceTypeEnum.EQUIPMENT_REPLACEMENT.getValue().equals(orderInfo.getOrderServiceType())
){
bo = deviceStaticMapper.orderByDevSnoOui(null,null,uniqueUserId);
if (bo!=null){
) {
bo = deviceStaticMapper.orderByDevSnoOui(null, null, uniqueUserId);
if (bo != null) {
uniqueUserIdFlag = true;
}
}
String pppoeAccount = obj.getPppoeAccount();
if (pppoeAccount!=null&&!pppoeAccount.isEmpty()&&!ouiFlag&&uniqueUserIdFlag){
bo = deviceStaticMapper.orderByPppoeAccount(DevStatusEnum.NORMAL.getValue(),pppoeAccount);
if (bo==null){
if (pppoeAccount != null && !pppoeAccount.isEmpty() && !ouiFlag && uniqueUserIdFlag) {
bo = deviceStaticMapper.orderByPppoeAccount(DevStatusEnum.NORMAL.getValue(), pppoeAccount);
if (bo == null) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}
pppoeFlag = true;
}
if (!pppoeFlag&&!ouiFlag&&!uniqueUserIdFlag){
if (!pppoeFlag && !ouiFlag && !uniqueUserIdFlag) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}
RDeviceDetailStruct struct = conversionStruct(bo);
int res = NBIManager.informConfigure(struct, orderId, true);
if (res!=0){
if (res != 0) {
throw new BusinessException(ResultCode.NBI_ERROR);
}
return Result.success();
}
private RDeviceDetailStruct conversionStruct(DeviceDetailBO bo){
private RDeviceDetailStruct conversionStruct(DeviceDetailBO bo) {
RDeviceDetailStruct struct = new RDeviceDetailStruct();
RDeviceDynamicStruct devDynamic = struct.devDynamic;
RDeviceStaticStruct devStatic = struct.devStatic;
@ -258,15 +282,15 @@ public class OrderInfoServiceImpl implements OrderInfoService {
String devRegStatus = bo.getDevRegStatus();
if(devRegStatus == null || devRegStatus.isEmpty()){
if (devRegStatus == null || devRegStatus.isEmpty()) {
devRegStatus = "0";
}
String devOwnerClass = bo.getDevOwnerClass();
if(devOwnerClass == null || devOwnerClass.isEmpty()){
if (devOwnerClass == null || devOwnerClass.isEmpty()) {
devOwnerClass = "0";
}
devStaticDetail.devRegStatus =RDevRegStatus.from_int(Integer.parseInt(devRegStatus));
devStaticDetail.devOwnerClass =RDevOwnerClass.from_int(Integer.parseInt(devOwnerClass));
devStaticDetail.devRegStatus = RDevRegStatus.from_int(Integer.parseInt(devRegStatus));
devStaticDetail.devOwnerClass = RDevOwnerClass.from_int(Integer.parseInt(devOwnerClass));
devStaticDetail.remark1 = bo.getRemark1();
devStaticDetail.remark2 = bo.getRemark2();
devStaticDetail.remark3 = bo.getRemark3();
@ -310,62 +334,63 @@ public class OrderInfoServiceImpl implements OrderInfoService {
@Override
public Result<String> bindingOuiSno(String devOuiSno, Long orderId) {
checkDevice(devOuiSno,orderId);
checkDevice(devOuiSno, orderId);
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
.eq("order_id", orderId)
.select("order_id","order_status","unique_user_id","pppoe_account","ad_no")
.select("order_id", "order_status", "unique_user_id", "pppoe_account", "ad_no")
);
if (OrderStatusEnum.PROCESSING.getValue().equals(orderInfo.getOrderStatus())){
if (OrderStatusEnum.PROCESSING.getValue().equals(orderInfo.getOrderStatus())) {
devOuiSno = CommonUtils.getRandomString(14);
createDevice(devOuiSno,orderInfo);
createDevice(devOuiSno, orderInfo);
}
int result = NBIManager.bindDevice(orderId, devOuiSno);
if (result!=0){
if (result != 0) {
throw new BusinessException(ResultCode.DEVICE_BINDING_FAILED);
}
return Result.success();
}
private void createDevice(String ouiSno,OrderInfo order){
RDeviceStaticStruct deviceStaticStruct=new RDeviceStaticStruct();
private void createDevice(String ouiSno, OrderInfo order) {
RDeviceStaticStruct deviceStaticStruct = new RDeviceStaticStruct();
deviceStaticStruct.typeAndVerId = deviceTypeVerMapper.getTypeAndVerId();
deviceStaticStruct.custId= Utils.LONG_NULL;
deviceStaticStruct.regionAreaId=order.getSystemDomain();
deviceStaticStruct.custId = Utils.LONG_NULL;
deviceStaticStruct.regionAreaId = order.getSystemDomain();
deviceStaticStruct.corpAreaId = Utils.LONG_NULL;
deviceStaticStruct.devSNo=ouiSno;
deviceStaticStruct.devMac="";
deviceStaticStruct.devPPPoE=order.getPppoeAccount();
deviceStaticStruct.devADNo=order.getAdNo();
deviceStaticStruct.devCreateTime=new Date().getTime();
deviceStaticStruct.devModifyTime=Utils.LONG_NULL;
deviceStaticStruct.devSoapFlag=true;
deviceStaticStruct.devInformFlag=true;
deviceStaticStruct.devSNo = ouiSno;
deviceStaticStruct.devMac = "";
deviceStaticStruct.devPPPoE = order.getPppoeAccount();
deviceStaticStruct.devADNo = order.getAdNo();
deviceStaticStruct.devCreateTime = new Date().getTime();
deviceStaticStruct.devModifyTime = Utils.LONG_NULL;
deviceStaticStruct.devSoapFlag = true;
deviceStaticStruct.devInformFlag = true;
deviceStaticStruct.devStatus = RDevStatus.DEV_NORMAL;
deviceStaticStruct.devRemark1="";
deviceStaticStruct.devRemark2="";
deviceStaticStruct.devRemark3="";
deviceStaticStruct.devRemark4="";
deviceStaticStruct.devRemark5="1";
RDeviceStaticStructHolder holder=new RDeviceStaticStructHolder(deviceStaticStruct);
int result= InventoryManager.addDevice(holder);
}
private void checkDevice(String devOuiSno,Long orderId){
deviceStaticStruct.devRemark1 = "";
deviceStaticStruct.devRemark2 = "";
deviceStaticStruct.devRemark3 = "";
deviceStaticStruct.devRemark4 = "";
deviceStaticStruct.devRemark5 = "1";
RDeviceStaticStructHolder holder = new RDeviceStaticStructHolder(deviceStaticStruct);
int result = InventoryManager.addDevice(holder);
}
private void checkDevice(String devOuiSno, Long orderId) {
String[] split = devOuiSno.split("-");
if (split.length!=2){
if (split.length != 2) {
throw new BusinessException(ResultCode.DEV_OUI_SNO_FORMAT_ERROR);
}
Long count = deviceStaticMapper.selectCount(new LambdaQueryWrapper<DeviceStatic>()
.eq(DeviceStatic::getDevSno, split[1])
.eq(DeviceStatic::getDevRemark3, split[0])
);
if (count==0L){
if (count == 0L) {
throw new BusinessException(ResultCode.DEVICE_NOT_REGISTERED);
}
List<DeviceStatic> list = deviceStaticMapper.selectList(new QueryWrapper<DeviceStatic>()
.eq("dev_sno", split[1])
.eq("dev_remark3", split[0])
);
if (!list.isEmpty()){
if (!list.isEmpty()) {
throw new BusinessException(ResultCode.DEVICE_ALREADY_BINDING_OTHER_LOGIC);
}
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
@ -373,11 +398,11 @@ public class OrderInfoServiceImpl implements OrderInfoService {
.eq("order_id", orderId)
);
String devRemark4 = deviceStaticMapper.selectDevRemark4ByOrderSN(orderInfo.getUserSnNo());
if (!"0".equals(devRemark4)){
if (!"0".equals(devRemark4)) {
throw new BusinessException(ResultCode.LOGICID_ALREADY_DEVICE);
}
String devSnoOui = orderInfoMapper.selectOui(devOuiSno,orderInfo.getUserSnNo());
if (!"0".equals(devSnoOui)){
String devSnoOui = orderInfoMapper.selectOui(devOuiSno, orderInfo.getUserSnNo());
if (!"0".equals(devSnoOui)) {
throw new BusinessException(ResultCode.LOGICID_ALREADY_DEVICE);
}
}
@ -386,35 +411,35 @@ public class OrderInfoServiceImpl implements OrderInfoService {
public Page<OrderInfoTableVO> deviceOrderPage(DeviceOrderQuery query) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<OrderInfoTableVO> page = new Page<>(pageNum,pageSize);
Page<OrderInfoTableVO> page = new Page<>(pageNum, pageSize);
Long domain = SecurityUtils.getGroupId();
String devSnoOui = query.getDevOui() + "-"+ query.getDevSno();
String devSnoOui = query.getDevOui() + "-" + query.getDevSno();
String pppoeAccount = query.getPppoeAccount();
List<OrderInfoTableVO> list = orderInfoMapper.deviceOrderPage(page,devSnoOui,pppoeAccount ,domain);
List<OrderInfoTableVO> list = orderInfoMapper.deviceOrderPage(page, devSnoOui, pppoeAccount, domain);
return getOrderInfoTableVOPage(page, list);
}
private Page<OrderInfoTableVO> getOrderInfoTableVOPage(Page<OrderInfoTableVO> page, List<OrderInfoTableVO> list) {
list.forEach(obj->{
list.forEach(obj -> {
Long systemDomain = obj.getSystemDomain();
String orderServiceType = obj.getOrderServiceType();
String orderStatus = obj.getOrderStatus();
String orderRemark = obj.getOrderRemark();
String dummyFlag = obj.getDummyFlag();
if (systemDomain!=null){
obj.setDomain((String) redisTemplate.opsForHash().get(SecurityConstants.DOMAIN_PREFIX,systemDomain.toString()));
if (systemDomain != null) {
obj.setDomain((String) redisTemplate.opsForHash().get(SecurityConstants.DOMAIN_PREFIX, systemDomain.toString()));
}
if (orderServiceType!=null){
if (orderServiceType != null) {
obj.setOrderServiceType(IBaseEnum.getLabelByValue(orderServiceType, OrderServiceTypeEnum.class));
}
if (orderStatus!=null){
if (orderStatus != null) {
obj.setOrderStatus(IBaseEnum.getLabelByValue(orderStatus, OrderStatusEnum.class));
}
if (orderRemark!=null){
if (orderRemark != null) {
obj.setOrderRemark(IBaseEnum.getLabelByValue(orderRemark, OrderOperateEnum.class));
}
//如果是虚拟工单 不显示 pppoe帐户 和 电话号码 反之则显示 0虚拟单 1是非虚拟单
if ("0".equals(dummyFlag)){
if ("0".equals(dummyFlag)) {
obj.setTelNum("");
obj.setPppoeAccount("");
}
@ -424,8 +449,8 @@ public class OrderInfoServiceImpl implements OrderInfoService {
}
@Override
public Result<Map<Object,Object>> checkDev(String devSnoOui) {
if (devSnoOui==null || !devSnoOui.contains("-")){
public Result<Map<Object, Object>> checkDev(String devSnoOui) {
if (devSnoOui == null || !devSnoOui.contains("-")) {
return Result.failed(ResultCode.NOT_GET_DEVICE);
}
@ -433,10 +458,10 @@ public class OrderInfoServiceImpl implements OrderInfoService {
DeviceStatic deviceStatic = deviceStaticMapper.selectOne(new QueryWrapper<DeviceStatic>()
.eq("dev_sno", split[1])
.eq("dev_remark3", split[0])
.select("dev_id","type_and_ver_id")
.select("dev_id", "type_and_ver_id")
);
if (deviceStatic!=null){
if (deviceStatic != null) {
Map<Object, Object> map = MapUtil
.builder()
.put("devId", deviceStatic.getDevId())

@ -0,0 +1,18 @@
<?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.bellmann.mapper.DeviceLogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.DeviceLog">
<id column="dev_id" property="devId" />
<result column="oper_time" property="operTime" />
<result column="oper_desc" property="operDesc" />
<result column="oper_name" property="operName" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
dev_id, oper_time, oper_desc, oper_name
</sql>
</mapper>

@ -244,4 +244,39 @@
</where>
</select>
<select id="devOnlineStatusBySno" resultType="com.bellmann.model.bo.DevOnlineStatus">
SELECT A
.dev_online,
CASE
WHEN ( CURRENT_TIMESTAMP - A.dev_online_time > INTERVAL '96' HOUR ) THEN
1 ELSE 0
END AS dev_online1
FROM
itms_device_dynamic A,
itms_device_static b
WHERE
A.dev_id = b.dev_id
AND A.dev_online_time IS NOT NULL
and b.dev_sno= #{devSno}
limit 1
</select>
<select id="devOnlineStatusByPppoe" resultType="com.bellmann.model.bo.DevOnlineStatus">
SELECT A
.dev_online,
CASE
WHEN ( CURRENT_TIMESTAMP - A.dev_online_time > INTERVAL '96' HOUR ) THEN
1 ELSE 0
END AS dev_online1
FROM
itms_device_dynamic A,
itms_device_static b
WHERE
A.dev_id = b.dev_id
AND A.dev_online_time IS NOT NULL
and b.dev_sno= #{pppoe}
limit 1
</select>
</mapper>

@ -43,4 +43,16 @@
itms_file_dev_type_ver_map.type_and_ver_id = #{typeAndVerId}
and itms_file.file_type = #{fileType}
</select>
<select id="profilePage" resultType="com.bellmann.model.entity.FileRecord">
SELECT
itms_file.*
FROM
ITMS_FILE,
ITMS_FILE_DEV_MAP
WHERE
ITMS_FILE.FILE_ID = ITMS_FILE_DEV_MAP.FILE_ID
AND ITMS_FILE_DEV_MAP.DEV_ID = #{devId}
AND ITMS_FILE.FILE_TYPE = #{fileType}
</select>
</mapper>

@ -0,0 +1,22 @@
<?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.bellmann.mapper.OperateResult2Mapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.OperateResult2">
<id column="oper_task_id" property="operTaskId" />
<result column="dev_id" property="devId" />
<result column="oper_start_time" property="operStartTime" />
<result column="oper_end_time" property="operEndTime" />
<result column="action_name" property="actionName" />
<result column="error_code" property="errorCode" />
<result column="error_desc" property="errorDesc" />
<result column="result_state" property="resultState" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
oper_task_id, dev_id, oper_start_time, oper_end_time, action_name, error_code, error_desc, result_state
</sql>
</mapper>

@ -0,0 +1,62 @@
<?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.bellmann.mapper.OperateTask2Mapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.OperateTask2">
<id column="oper_task_id" property="operTaskId" />
<result column="dev_id" property="devId" />
<result column="user_name" property="userName" />
<result column="oper_task_desc" property="operTaskDesc" />
<result column="oper_task_create_time" property="operTaskCreateTime" />
<result column="oper_name" property="operName" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
oper_task_id, dev_id, user_name, oper_task_desc, oper_task_create_time, oper_name
</sql>
<select id="tablePage" resultType="com.bellmann.model.bo.OperateTask2TableBO">
SELECT
aa.oper_task_id,
aa.dev_id,
aa.user_name,
aa.oper_task_desc,
aa.oper_task_create_time,
bb.result_state,
cc.dev_ad_no
FROM
itms_oper_task_2 aa
INNER JOIN itms_oper_result_2 bb ON aa.oper_task_id = bb.oper_task_id
INNER JOIN itms_device_static cc ON aa.dev_id = cc.dev_id
WHERE
aa.dev_id = #{devId}
</select>
<select id="operateTask2ByDevId" resultType="com.bellmann.model.vo.OperateTask2VO">
SELECT
aa.oper_task_id,
aa.dev_id,
aa.user_name,
aa.oper_task_desc,
aa.oper_task_create_time,
bb.result_state,
cc.region_area_id,
cc.dev_sno,
cc.dev_pppoe,
bb.error_code,
bb.error_desc,
bb.oper_start_time,
bb.oper_end_time,
dd.dev_type_name
FROM
itms_oper_task_2 aa
INNER JOIN itms_oper_result_2 bb ON aa.dev_id = bb.dev_id
INNER JOIN itms_device_static cc ON aa.dev_id = cc.dev_id
LEFT JOIN itms_device_type_ver_detail dd ON cc.type_and_ver_id = dd.type_and_ver_id
WHERE
aa.oper_task_id = #{id}
ORDER BY aa.OPER_TASK_CREATE_TIME DESC
limit 1
</select>
</mapper>
Loading…
Cancel
Save