From 5ec417ac34e743582aa376864de1b2442240711d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com>
Date: Fri, 28 Jun 2024 16:50:00 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BF=9C=E7=A8=8B=E6=93=8D=E4=BD=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/constant/SystemConstants.java | 7 +
.../bellmann/common/result/ResultCode.java | 4 +-
.../DeviceServiceMapController.java | 21 +++
.../controller/DeviceStaticController.java | 27 ++-
.../controller/LibDeviceCodeController.java | 21 +++
.../converter/DeviceStaticConverter.java | 9 +
.../com/bellmann/manger/ServiceManager.java | 2 +
.../manger/impl/ServiceManagerImpl.java | 20 ++
.../mapper/DeviceServiceMapMapper.java | 18 ++
.../bellmann/mapper/DeviceStaticMapper.java | 4 +
.../bellmann/mapper/LibDeviceCodeMapper.java | 18 ++
.../com/bellmann/mapper/ServiceMapper.java | 3 +
.../model/bo/DeviceServiceArgsBO.java | 11 ++
.../bellmann/model/bo/RemoteEquipmentBO.java | 35 ++++
.../model/entity/DeviceServiceMap.java | 43 +++++
.../bellmann/model/entity/LibDeviceCode.java | 38 ++++
.../bellmann/model/form/UnBindingForm.java | 19 ++
.../bellmann/model/vo/RemoteDevInfoVO.java | 62 +++++++
.../bellmann/model/vo/RemoteEquipmentVO.java | 39 ++++
.../service/DeviceServiceMapService.java | 16 ++
.../bellmann/service/DeviceStaticService.java | 9 +
.../service/LibDeviceCodeService.java | 16 ++
.../impl/DeviceServiceMapServiceImpl.java | 20 ++
.../service/impl/DeviceStaticServiceImpl.java | 174 ++++++++++++++++--
.../impl/LibDeviceCodeServiceImpl.java | 20 ++
.../mapper/DeviceServiceMapMapper.xml | 21 +++
.../resources/mapper/DeviceStaticMapper.xml | 41 ++++-
.../resources/mapper/LibDeviceCodeMapper.xml | 20 ++
src/main/resources/mapper/ServiceMapper.xml | 14 ++
29 files changed, 737 insertions(+), 15 deletions(-)
create mode 100644 src/main/java/com/bellmann/controller/DeviceServiceMapController.java
create mode 100644 src/main/java/com/bellmann/controller/LibDeviceCodeController.java
create mode 100644 src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java
create mode 100644 src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java
create mode 100644 src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java
create mode 100644 src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java
create mode 100644 src/main/java/com/bellmann/model/entity/DeviceServiceMap.java
create mode 100644 src/main/java/com/bellmann/model/entity/LibDeviceCode.java
create mode 100644 src/main/java/com/bellmann/model/form/UnBindingForm.java
create mode 100644 src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java
create mode 100644 src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java
create mode 100644 src/main/java/com/bellmann/service/DeviceServiceMapService.java
create mode 100644 src/main/java/com/bellmann/service/LibDeviceCodeService.java
create mode 100644 src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java
create mode 100644 src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java
create mode 100644 src/main/resources/mapper/DeviceServiceMapMapper.xml
create mode 100644 src/main/resources/mapper/LibDeviceCodeMapper.xml
diff --git a/src/main/java/com/bellmann/common/constant/SystemConstants.java b/src/main/java/com/bellmann/common/constant/SystemConstants.java
index 84b9b60..0f23ad4 100644
--- a/src/main/java/com/bellmann/common/constant/SystemConstants.java
+++ b/src/main/java/com/bellmann/common/constant/SystemConstants.java
@@ -27,4 +27,11 @@ public interface SystemConstants {
String DEV_INFORM_FLAG= "0";
String DEV_SOAP_FLAG= "0";
+
+ static final String SERVICE_CODE_CHINA_NET = "ChinaNet";
+ static final String SERVICE_CODE_CHINA_NET_FREE = "ChinaNet-Free";
+
+ public static final String CONN_TYPE_PPPOE_BRIDGE = "桥接";
+ public static final String CONN_TYPE_IP_ROUTED = "路由";
+ public static final String CONN_TYPE = "LAST_rg_mode";
}
diff --git a/src/main/java/com/bellmann/common/result/ResultCode.java b/src/main/java/com/bellmann/common/result/ResultCode.java
index e682baa..962dbd8 100644
--- a/src/main/java/com/bellmann/common/result/ResultCode.java
+++ b/src/main/java/com/bellmann/common/result/ResultCode.java
@@ -109,7 +109,9 @@ public enum ResultCode implements IResultCode, Serializable {
DEV_OUI_SNO_FORMAT_ERROR("F0018","设备标识格式不正确"),
DEVICE_NOT_REGISTERED("F0019","该设备尚未注册,请先注册终端"),
DEVICE_ALREADY_BINDING_OTHER_LOGIC("F0020", "该设备已经绑定了其他逻辑ID,请解绑此设备后再操作!"),
- LOGICID_ALREADY_DEVICE("F0021","逻辑ID已有绑定设备,如需绑定其他设备,请解绑后操作!");
+ LOGICID_ALREADY_DEVICE("F0021","逻辑ID已有绑定设备,如需绑定其他设备,请解绑后操作!"),
+ LOGICID_ALREADY_UNBINDING_ORDER_ALREADY_EXIST("F0022","逻辑ID已解绑,工单已存在!" ),
+ UPDATE_DEVICE_FAILED("F0023", "更新设备信息失败");
@Override
public String getCode() {
return code;
diff --git a/src/main/java/com/bellmann/controller/DeviceServiceMapController.java b/src/main/java/com/bellmann/controller/DeviceServiceMapController.java
new file mode 100644
index 0000000..9cec453
--- /dev/null
+++ b/src/main/java/com/bellmann/controller/DeviceServiceMapController.java
@@ -0,0 +1,21 @@
+package com.bellmann.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 前端控制器
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-28
+ */
+@RestController
+@RequestMapping("/deviceServiceMap")
+public class DeviceServiceMapController {
+
+}
+
diff --git a/src/main/java/com/bellmann/controller/DeviceStaticController.java b/src/main/java/com/bellmann/controller/DeviceStaticController.java
index 3c3f234..fc9b501 100644
--- a/src/main/java/com/bellmann/controller/DeviceStaticController.java
+++ b/src/main/java/com/bellmann/controller/DeviceStaticController.java
@@ -6,9 +6,12 @@ import com.bellmann.common.result.Result;
import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.form.EquipmentDetailForm;
import com.bellmann.model.form.PrivateProfileForm;
+import com.bellmann.model.form.UnBindingForm;
import com.bellmann.model.query.DevOuiSnoQuery;
import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.EquipmentVO;
+import com.bellmann.model.vo.RemoteDevInfoVO;
+import com.bellmann.model.vo.RemoteEquipmentVO;
import com.bellmann.service.DeviceStaticService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -76,10 +79,32 @@ public class DeviceStaticController {
}
//--------------资源管理API结束--------------------
- //--------------工单管理查询devOuiSno分页开始
+ //--------------工单管理查询devOuiSno分页开始---------------------------------
@PostMapping("dev-oui-sno-page")
@Operation(summary = "工单管理查询devOuiSno")
public PageResult devOuiSnoPage(@RequestBody DevOuiSnoQuery query){
return deviceStaticService.devOuiSnoPage(query);
}
+ //--------------工单管理查询devOuiSno分页结束------------------------
+
+ //-------------------远程操作--------------------------
+ @PostMapping("/remote/page")
+ @Operation(summary = "远程操作-设备管理表格接口")
+ public PageResult remotePage(@RequestBody SelectQuery query){
+ Page page = deviceStaticService.remotePage(query);
+ return PageResult.success(page);
+ }
+ @GetMapping("/remote/{devId}")
+ @Operation(summary = "远程操作-设备信息")
+ public Result remoteDevInfo(@PathVariable Long devId){
+
+ return deviceStaticService.remoteDevInfo(devId);
+ }
+
+ @PostMapping("remote/unbinding")
+ @Operation(summary = "远程操作-设备信息")
+ public Result unbindingLogicId(@RequestBody UnBindingForm form){
+ return deviceStaticService.unbindingLogicId(form);
+ }
+
}
diff --git a/src/main/java/com/bellmann/controller/LibDeviceCodeController.java b/src/main/java/com/bellmann/controller/LibDeviceCodeController.java
new file mode 100644
index 0000000..802e496
--- /dev/null
+++ b/src/main/java/com/bellmann/controller/LibDeviceCodeController.java
@@ -0,0 +1,21 @@
+package com.bellmann.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 前端控制器
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-26
+ */
+@RestController
+@RequestMapping("/libDeviceCode")
+public class LibDeviceCodeController {
+
+}
+
diff --git a/src/main/java/com/bellmann/converter/DeviceStaticConverter.java b/src/main/java/com/bellmann/converter/DeviceStaticConverter.java
index 0f52c44..9bd10e0 100644
--- a/src/main/java/com/bellmann/converter/DeviceStaticConverter.java
+++ b/src/main/java/com/bellmann/converter/DeviceStaticConverter.java
@@ -2,9 +2,11 @@ package com.bellmann.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.EquipmentBO;
+import com.bellmann.model.bo.RemoteEquipmentBO;
import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.vo.EquipmentVO;
+import com.bellmann.model.vo.RemoteEquipmentVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@@ -23,4 +25,11 @@ public interface DeviceStaticConverter {
DeviceStatic resourceForm2VOEntity(EquipmentAddForm form);
Page resourceBOPage2VOPage(Page boPage);
+
+ @Mappings({
+ @Mapping(target = "devStatus", expression = "java(com.bellmann.common.base.IBaseEnum.getLabelByValue(bo.getDevStatus(), com.bellmann.common.enums.DevStatusEnum.class))"),
+ @Mapping(target = "devOnline", expression = "java(com.bellmann.common.base.IBaseEnum.getLabelByValue(bo.getDevOnline(), com.bellmann.common.enums.DevOnlineEnum.class))")
+ })
+ RemoteEquipmentVO remoteBOPage2VOPage(RemoteEquipmentBO bo);
+ Page remoteBOPage2VOPage(Page boPage);
}
diff --git a/src/main/java/com/bellmann/manger/ServiceManager.java b/src/main/java/com/bellmann/manger/ServiceManager.java
index 4673cc9..29337b0 100644
--- a/src/main/java/com/bellmann/manger/ServiceManager.java
+++ b/src/main/java/com/bellmann/manger/ServiceManager.java
@@ -6,4 +6,6 @@ import com.bellmann.model.vo.DeviceServiceVO;
public interface ServiceManager {
Page pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery);
+
+ String getConnType(Long devId);
}
diff --git a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java
index afb06b1..4fba0b0 100644
--- a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java
+++ b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java
@@ -2,9 +2,11 @@ package com.bellmann.manger.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
+import com.bellmann.common.constant.SystemConstants;
import com.bellmann.converter.ServiceConverter;
import com.bellmann.manger.ServiceManager;
import com.bellmann.mapper.ServiceMapper;
+import com.bellmann.model.bo.DeviceServiceArgsBO;
import com.bellmann.model.vo.DeviceServiceVO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@@ -18,6 +20,24 @@ public class ServiceManagerImpl implements ServiceManager {
private final ServiceMapper serviceMapper;
private final ServiceConverter serviceConverter;
+
+ @Override
+ public String getConnType(Long devId) {
+ DeviceServiceArgsBO bo = serviceMapper.getConnType(devId);
+ if (bo==null){
+ return "";
+ }
+ if (SystemConstants.CONN_TYPE.equals(bo.getArgsTr069Name())){
+ String value = bo.getArgsValue();
+ if ("1".equals(value)||"IP_Routed".equals(value)){
+ return SystemConstants.CONN_TYPE_IP_ROUTED;
+ }else if ("2".equals(value) || "PPPoE_Bridged".equals(value)){
+ return SystemConstants.CONN_TYPE_PPPOE_BRIDGE;
+ }
+ }
+ return "";
+ }
+
@Override
public Page pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery) {
int pageNum = pageQuery.getPageNum();
diff --git a/src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java b/src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java
new file mode 100644
index 0000000..62ba88c
--- /dev/null
+++ b/src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java
@@ -0,0 +1,18 @@
+package com.bellmann.mapper;
+
+import com.bellmann.model.entity.DeviceServiceMap;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-28
+ */
+@Mapper
+public interface DeviceServiceMapMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java b/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java
index e1ba61b..b4115bb 100644
--- a/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java
+++ b/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.bo.EquipmentBO;
+import com.bellmann.model.bo.RemoteEquipmentBO;
import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.vo.EquipmentDetailVO;
import org.apache.ibatis.annotations.Mapper;
@@ -22,4 +23,7 @@ public interface DeviceStaticMapper extends BaseMapper {
DeviceDetailBO orderByPppoeAccount(@Param("status") String status, @Param("pppoeAccount") String pppoeAccount);
String selectDevRemark4ByOrderSN(@Param("userSnNo") String userSnNo);
+
+ Page remotePage(Page page, @Param("column") String column, @Param("value") Object value);
+
}
diff --git a/src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java b/src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java
new file mode 100644
index 0000000..d3a4159
--- /dev/null
+++ b/src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java
@@ -0,0 +1,18 @@
+package com.bellmann.mapper;
+
+import com.bellmann.model.entity.LibDeviceCode;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-26
+ */
+@Mapper
+public interface LibDeviceCodeMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/bellmann/mapper/ServiceMapper.java b/src/main/java/com/bellmann/mapper/ServiceMapper.java
index d1144cf..1741268 100644
--- a/src/main/java/com/bellmann/mapper/ServiceMapper.java
+++ b/src/main/java/com/bellmann/mapper/ServiceMapper.java
@@ -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.DeviceServiceArgsBO;
import com.bellmann.model.entity.Business;
import com.bellmann.model.vo.BusinessVO;
import com.bellmann.model.vo.DeviceServiceVO;
@@ -19,4 +20,6 @@ public interface ServiceMapper extends BaseMapper {
List noBindingTr069ServiceList(Page page, Long tr069VerId);
List businessPage(Page page);
+
+ DeviceServiceArgsBO getConnType(@Param("devId") Long devId);
}
diff --git a/src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java b/src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java
new file mode 100644
index 0000000..f90aaa3
--- /dev/null
+++ b/src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java
@@ -0,0 +1,11 @@
+package com.bellmann.model.bo;
+
+import lombok.Data;
+
+@Data
+public class DeviceServiceArgsBO {
+
+ private String argsTr069Name;
+
+ private String argsValue;
+}
diff --git a/src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java b/src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java
new file mode 100644
index 0000000..6cc7396
--- /dev/null
+++ b/src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java
@@ -0,0 +1,35 @@
+package com.bellmann.model.bo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class RemoteEquipmentBO {
+
+ private Long devId;
+
+ private String devSno;
+
+ private String devAdNo;
+
+ private String devPppoe;
+
+ private String devStatus;
+
+ private String softVer;
+
+ private Long devTypeId;
+
+ private String devVendorName;
+
+ private String devVendorOui;
+
+ private String devTypeName;
+
+ private String devHardVer;
+
+ private String devOnline;
+
+ private LocalDateTime devOnlineTime;
+}
diff --git a/src/main/java/com/bellmann/model/entity/DeviceServiceMap.java b/src/main/java/com/bellmann/model/entity/DeviceServiceMap.java
new file mode 100644
index 0000000..9182cdb
--- /dev/null
+++ b/src/main/java/com/bellmann/model/entity/DeviceServiceMap.java
@@ -0,0 +1,43 @@
+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;
+
+/**
+ *
+ *
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("itms_device_service_map")
+public class DeviceServiceMap implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "dev_id", type = IdType.AUTO)
+ private Long devId;
+
+ private Long servId;
+
+ private Long orderId;
+
+ private String servMapStatus;
+
+ private Integer servMapErrorCount;
+
+ private Date servStatusTime;
+
+ private String servMapRemark;
+
+
+}
diff --git a/src/main/java/com/bellmann/model/entity/LibDeviceCode.java b/src/main/java/com/bellmann/model/entity/LibDeviceCode.java
new file mode 100644
index 0000000..60a2213
--- /dev/null
+++ b/src/main/java/com/bellmann/model/entity/LibDeviceCode.java
@@ -0,0 +1,38 @@
+package com.bellmann.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-26
+ */
+@Data
+@TableName("itms_lib_device_code")
+@EqualsAndHashCode(callSuper = false)
+public class LibDeviceCode implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ private String devOui;
+
+ private String devSno;
+
+ private Date sysTime;
+
+ private String devRemark;
+
+ private Long refuseTimes;
+
+
+}
diff --git a/src/main/java/com/bellmann/model/form/UnBindingForm.java b/src/main/java/com/bellmann/model/form/UnBindingForm.java
new file mode 100644
index 0000000..9e2ea1b
--- /dev/null
+++ b/src/main/java/com/bellmann/model/form/UnBindingForm.java
@@ -0,0 +1,19 @@
+package com.bellmann.model.form;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@Schema(description = "解除绑定表单")
+public class UnBindingForm {
+ private Long devId;
+
+ private String devAdNo;
+
+ private String devSno;
+
+ private String devVendorOui;
+
+ private String devRemark4;
+
+}
diff --git a/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java b/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java
new file mode 100644
index 0000000..6f3da47
--- /dev/null
+++ b/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java
@@ -0,0 +1,62 @@
+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.time.LocalDateTime;
+
+@Data
+@Schema(description = "远程操作设备信息视图")
+public class RemoteDevInfoVO {
+
+ private Long devId;
+
+ private String devAdNo;
+
+ private String devSno;
+
+ private String devPppoe;
+
+ private String devVendorName;
+
+ private String devVendorOui;
+
+ private String devTypeName;
+
+ private String devHardVer;
+
+ private String softVer;
+
+ @JsonIgnore
+ private Long regionAreaId;
+
+ private String domain;
+
+ private String devRemark1;
+
+ private String devRemark4;
+
+ private String userSnNo;
+
+ private String useState;
+
+ private String devIp;
+
+ private String devStatus;
+
+ private String customType;
+
+ private String conType;
+
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
+ private LocalDateTime devOnlineTime;
+
+ private String devAccessType;
+
+ private String devTypeNameDetail;
+
+ private String blacklist;
+
+}
diff --git a/src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java b/src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java
new file mode 100644
index 0000000..0820a7d
--- /dev/null
+++ b/src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java
@@ -0,0 +1,39 @@
+package com.bellmann.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@Schema(description = "远程操作表格视图")
+public class RemoteEquipmentVO {
+
+ private Long devId;
+
+ private String devSno;
+
+ private String devAdNo;
+
+ private String devPppoe;
+
+ private String devStatus;
+
+ private String softVer;
+
+ private Long devTypeId;
+
+ private String devVendorName;
+
+ private String devVendorOui;
+
+ private String devTypeName;
+
+ private String devHardVer;
+
+ private String devOnline;
+
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
+ private LocalDateTime devOnlineTime;
+}
diff --git a/src/main/java/com/bellmann/service/DeviceServiceMapService.java b/src/main/java/com/bellmann/service/DeviceServiceMapService.java
new file mode 100644
index 0000000..c777d70
--- /dev/null
+++ b/src/main/java/com/bellmann/service/DeviceServiceMapService.java
@@ -0,0 +1,16 @@
+package com.bellmann.service;
+
+import com.bellmann.model.entity.DeviceServiceMap;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-28
+ */
+public interface DeviceServiceMapService extends IService {
+
+}
diff --git a/src/main/java/com/bellmann/service/DeviceStaticService.java b/src/main/java/com/bellmann/service/DeviceStaticService.java
index 1a012d6..a86fe5f 100644
--- a/src/main/java/com/bellmann/service/DeviceStaticService.java
+++ b/src/main/java/com/bellmann/service/DeviceStaticService.java
@@ -6,9 +6,12 @@ import com.bellmann.common.result.Result;
import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.form.EquipmentDetailForm;
import com.bellmann.model.form.PrivateProfileForm;
+import com.bellmann.model.form.UnBindingForm;
import com.bellmann.model.query.DevOuiSnoQuery;
import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.EquipmentVO;
+import com.bellmann.model.vo.RemoteDevInfoVO;
+import com.bellmann.model.vo.RemoteEquipmentVO;
import java.util.List;
import java.util.Map;
@@ -31,4 +34,10 @@ public interface DeviceStaticService {
Result unbindingCustom(Long devId);
PageResult devOuiSnoPage(DevOuiSnoQuery query);
+
+ Page remotePage(SelectQuery query);
+
+ Result remoteDevInfo(Long devId);
+
+ Result unbindingLogicId(UnBindingForm form);
}
diff --git a/src/main/java/com/bellmann/service/LibDeviceCodeService.java b/src/main/java/com/bellmann/service/LibDeviceCodeService.java
new file mode 100644
index 0000000..191933b
--- /dev/null
+++ b/src/main/java/com/bellmann/service/LibDeviceCodeService.java
@@ -0,0 +1,16 @@
+package com.bellmann.service;
+
+import com.bellmann.model.entity.LibDeviceCode;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-26
+ */
+public interface LibDeviceCodeService extends IService {
+
+}
diff --git a/src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java
new file mode 100644
index 0000000..1678e4e
--- /dev/null
+++ b/src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java
@@ -0,0 +1,20 @@
+package com.bellmann.service.impl;
+
+import com.bellmann.model.entity.DeviceServiceMap;
+import com.bellmann.mapper.DeviceServiceMapMapper;
+import com.bellmann.service.DeviceServiceMapService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-28
+ */
+@Service
+public class DeviceServiceMapServiceImpl extends ServiceImpl implements DeviceServiceMapService {
+
+}
diff --git a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java
index 2f51a91..bfa6754 100644
--- a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java
+++ b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java
@@ -2,40 +2,40 @@ package com.bellmann.service.impl;
import cn.hutool.core.map.MapUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.IBaseEnum;
import com.bellmann.common.constant.SecurityConstants;
import com.bellmann.common.constant.StringUtilsConstants;
import com.bellmann.common.constant.SystemConstants;
-import com.bellmann.common.enums.DevOnlineEnum;
-import com.bellmann.common.enums.DevOwnerClassEnum;
-import com.bellmann.common.enums.DevRegStatusEnum;
-import com.bellmann.common.enums.DevStatusEnum;
+import com.bellmann.common.enums.*;
import com.bellmann.common.exception.BusinessException;
import com.bellmann.common.result.PageResult;
import com.bellmann.common.result.Result;
import com.bellmann.common.result.ResultCode;
import com.bellmann.converter.DeviceStaticConverter;
-import com.bellmann.manger.CustomerManager;
-import com.bellmann.manger.DeviceTypeManager;
-import com.bellmann.manger.FileRecordManager;
-import com.bellmann.manger.IpAddressDomainManager;
+import com.bellmann.manger.*;
import com.bellmann.mapper.*;
import com.bellmann.model.bo.EquipmentBO;
+import com.bellmann.model.bo.RemoteEquipmentBO;
import com.bellmann.model.entity.*;
import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.form.EquipmentDetailForm;
import com.bellmann.model.form.PrivateProfileForm;
+import com.bellmann.model.form.UnBindingForm;
import com.bellmann.model.query.DevOuiSnoQuery;
import com.bellmann.model.query.SelectQuery;
-import com.bellmann.model.vo.EquipmentCustomerVO;
-import com.bellmann.model.vo.EquipmentDetailVO;
-import com.bellmann.model.vo.EquipmentTypeVO;
-import com.bellmann.model.vo.EquipmentVO;
+import com.bellmann.model.vo.*;
import com.bellmann.security.util.SecurityUtils;
import com.bellmann.service.DeviceStaticService;
+import com.zznode.itms.api.InventoryManager;
+import com.zznode.itms.api.NBIManager;
+import com.zznode.itms.idl.order.OrderInfoStructListHolder;
+import com.zznode.itms.idl.order.OrderStatus;
+import com.zznode.itms.idl.order.OrderType;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -70,6 +70,14 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
private final FileDevMapMapper fileDevMapMapper;
+ private final ServiceManager serviceManager;
+
+ private final LibDeviceCodeMapper libDeviceCodeMapper;
+
+ private final OrderInfoMapper orderInfoMapper;
+
+ private final DeviceServiceMapMapper deviceServiceMapMapper;
+
@Override
public Page resourcePage(SelectQuery query) {
int pageNum = query.getPageNum();
@@ -262,4 +270,146 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
stringPage.setTotal(list.size());
return PageResult.success(stringPage);
}
+
+ @Override
+ public Page remotePage(SelectQuery query) {
+ int pageNum = query.getPageNum();
+ int pageSize = query.getPageSize();
+ Page page = new Page<>(pageNum,pageSize);
+ Page boPage = deviceStaticMapper.remotePage(page,query.getSelectName(),query.getSelectValue());
+ return deviceStaticConverter.remoteBOPage2VOPage(boPage);
+ }
+
+ @Override
+ public Result remoteDevInfo(Long devId) {
+ RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO();
+ DeviceStatic deviceStatic = deviceStaticMapper.selectOne(
+ new QueryWrapper()
+ .select("dev_id","dev_ad_no","dev_sno","region_area_id","dev_remark1","dev_remark4","dev_status","cust_id as custom_id","type_and_ver_id")
+ .eq("dev_id",devId)
+ );
+ BeanUtils.copyProperties(deviceStatic,remoteDevInfoVO);
+ if (deviceStatic.getCustomId()!=null){
+ Customer customer = customerManager.findByCustomId(deviceStatic.getCustomId());
+ if (customer!=null) {
+ remoteDevInfoVO.setCustomType(IBaseEnum.getLabelByValue(customer.getCustomType(), CustomTypeEnum.class));
+ }
+ }
+ if (deviceStatic.getTypeAndVerId()!=null) {
+ EquipmentTypeVO devType = deviceTypeManager.findEquipmentType(deviceStatic.getTypeAndVerId());
+ if (devType!=null) {
+ remoteDevInfoVO.setDevAccessType(devType.getDevAccessType());
+ remoteDevInfoVO.setDevTypeNameDetail(devType.getEquipmentTypeVer());
+ remoteDevInfoVO.setDevTypeName(devType.getDevTypeName());
+ remoteDevInfoVO.setDevHardVer(devType.getDevHardVer());
+ remoteDevInfoVO.setSoftVer(devType.getSoftVer());
+ remoteDevInfoVO.setDevVendorName(devType.getDevVendorName());
+ remoteDevInfoVO.setDevVendorOui(devType.getDevVendorOui());
+ }
+ }
+ DeviceDynamic deviceDynamic = deviceDynamicMapper.selectOne(new LambdaQueryWrapper()
+ .eq(DeviceDynamic::getDevId, devId)
+ );
+ if (deviceDynamic!=null){
+ remoteDevInfoVO.setDevOnlineTime(deviceDynamic.getDevOnlineTime());
+ remoteDevInfoVO.setDevIp(deviceDynamic.getDevIp());
+
+ }
+ DeviceStaticDetail staticDetail = deviceStaticDetailMapper.selectOne(new QueryWrapper()
+ .select("user_sn_no","remark2")
+ .eq("dev_id",devId)
+ );
+ if (staticDetail!=null){
+ remoteDevInfoVO.setUserSnNo(staticDetail.getUserSnNo());
+ String remark2 = staticDetail.getRemark2();
+ remoteDevInfoVO.setUseState(remark2==null|| remark2.isEmpty() ?"未装":remark2);
+ }
+ remoteDevInfoVO.setDevStatus(IBaseEnum.getLabelByValue(deviceStatic.getDevStatus(),DevStatusEnum.class));
+ remoteDevInfoVO.setDomain((String) redisTemplate.opsForHash()
+ .get(SecurityConstants.DOMAIN_PREFIX,
+ deviceStatic.getRegionAreaId().toString()));
+ String conType = serviceManager.getConnType(devId);
+ remoteDevInfoVO.setConType(conType);
+ Long count = libDeviceCodeMapper.selectCount(new LambdaQueryWrapper()
+ .eq(LibDeviceCode::getDevOui, deviceStatic.getDevRemark3())
+ .eq(LibDeviceCode::getDevSno, deviceStatic.getDevSno())
+ );
+ remoteDevInfoVO.setBlacklist(count>0?"是":"否");
+ return Result.success(remoteDevInfoVO);
+ }
+
+ @Override
+ public Result unbindingLogicId(UnBindingForm form) {
+ int res = 0;
+ if(form.getDevRemark4().contains("^")){
+ res = upDeviceStaticGetDevId3(form);
+ }
+ if (res!=1){
+ return Result.failed(ResultCode.LOGICID_ALREADY_UNBINDING_ORDER_ALREADY_EXIST);
+ }
+ return upDeviceStaticGetDevId2(form);
+ }
+
+ private Result upDeviceStaticGetDevId2(UnBindingForm form) {
+ deviceStaticMapper.update(null,new LambdaUpdateWrapper()
+ .eq(DeviceStatic::getDevId,form.getDevId())
+ .set(DeviceStatic::getDevPppoe,null)
+ .set(DeviceStatic::getDevAdNo,null)
+ .set(DeviceStatic::getCustomId,null)
+ .set(DeviceStatic::getDevRemark4,null)
+ .set(DeviceStatic::getDevStatus,DevStatusEnum.NORMAL.getValue())
+ );
+ deviceStaticDetailMapper.update(null,new LambdaUpdateWrapper()
+ .set(DeviceStaticDetail::getUserSnNo,null)
+ .set(DeviceStaticDetail::getBandAccess,null)
+ .set(DeviceStaticDetail::getIptvAccess,null)
+ .eq(DeviceStaticDetail::getDevId,form.getDevId())
+ );
+ String devSno = form.getDevSno();
+ String devVendorOui = form.getDevVendorOui();
+ if (!devVendorOui.isEmpty()){
+ devSno = devVendorOui+"-"+devSno;
+ }
+ orderInfoMapper.update(null,new LambdaUpdateWrapper()
+ .eq(OrderInfo::getDevSnoOui,devSno)
+ .eq(OrderInfo::getUniqueUserId,form.getDevRemark4())
+ .set(OrderInfo::getDevSnoOui,null)
+ );
+ deviceServiceMapMapper.delete(new LambdaQueryWrapper()
+ .eq(DeviceServiceMap::getDevId,form.getDevId())
+ );
+ return Result.success();
+ }
+
+ private int upDeviceStaticGetDevId3(UnBindingForm form) {
+ try {
+
+
+ if (form.getDevRemark4() != null && !form.getDevRemark4().isEmpty()) {
+ OrderInfoStructListHolder orderInfoList = new OrderInfoStructListHolder();
+
+ String sb = " FROM ITMS_ORDER_INFO A,ITMS_ORDER_INFO_DETAIL B " +
+ " WHERE A.ORDER_ID=B.ORDER_ID AND (UNIQUE_USER_ID = '" + form.getDevRemark4() + "'" +
+ ") " +
+ " ORDER BY ORDER_DATE DESC ";
+ NBIManager.queryOrderInfoBySql(sb, 1, 15, false, orderInfoList);
+ if (orderInfoList.value != null && orderInfoList.value.length > 0) {
+
+ for (int i = 0; i < orderInfoList.value.length; i++) {
+ if ((OrderType._ORDER_SERVICE_REPLACE == orderInfoList.value[i].orderServiceType.value() && (OrderStatus._ORDER_UNSETTLE == orderInfoList.value[i].order_Status
+ .value()
+ || OrderStatus._ORDER_FAILURE == orderInfoList.value[i].order_Status.value() || OrderStatus._ORDER_SETTLE == orderInfoList.value[i].order_Status
+ .value()))) {
+ return 3;
+ }
+ }
+ }
+ InventoryManager.unbundlingReplaceDevice(form.getDevRemark4().substring(0, form.getDevRemark4().indexOf("^")), form.getDevRemark4());
+ return 1;
+ }
+ }catch (Exception e){
+ throw new BusinessException(ResultCode.UPDATE_DEVICE_FAILED);
+ }
+ return 2;
+ }
}
diff --git a/src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java b/src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java
new file mode 100644
index 0000000..fa6f0ce
--- /dev/null
+++ b/src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java
@@ -0,0 +1,20 @@
+package com.bellmann.service.impl;
+
+import com.bellmann.model.entity.LibDeviceCode;
+import com.bellmann.mapper.LibDeviceCodeMapper;
+import com.bellmann.service.LibDeviceCodeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author 李小林
+ * @since 2024-06-26
+ */
+@Service
+public class LibDeviceCodeServiceImpl extends ServiceImpl implements LibDeviceCodeService {
+
+}
diff --git a/src/main/resources/mapper/DeviceServiceMapMapper.xml b/src/main/resources/mapper/DeviceServiceMapMapper.xml
new file mode 100644
index 0000000..9e30dd8
--- /dev/null
+++ b/src/main/resources/mapper/DeviceServiceMapMapper.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dev_id, serv_id, order_id, serv_map_status, serv_map_error_count, serv_status_time, serv_map_remark
+
+
+
diff --git a/src/main/resources/mapper/DeviceStaticMapper.xml b/src/main/resources/mapper/DeviceStaticMapper.xml
index 169e9b0..0bf2a73 100644
--- a/src/main/resources/mapper/DeviceStaticMapper.xml
+++ b/src/main/resources/mapper/DeviceStaticMapper.xml
@@ -71,7 +71,8 @@
d.DEV_ONLINE,
d.DEV_ONLINE_TIME,
e.band_access,
- e.iptv_access
+ e.iptv_access,
+ e.USER_SN_NO as loginId
FROM
ITMS_DEVICE_STATIC s
LEFT JOIN ITMS_DEVICE_DYNAMIC d ON s.DEV_ID = d.DEV_ID
@@ -204,4 +205,42 @@
WHERE
t2.user_sn_no = #{userSnNo}
+
+
+
diff --git a/src/main/resources/mapper/LibDeviceCodeMapper.xml b/src/main/resources/mapper/LibDeviceCodeMapper.xml
new file mode 100644
index 0000000..c6014e1
--- /dev/null
+++ b/src/main/resources/mapper/LibDeviceCodeMapper.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, dev_oui, dev_sno, sys_time, dev_remark, refuse_times
+
+
+
diff --git a/src/main/resources/mapper/ServiceMapper.xml b/src/main/resources/mapper/ServiceMapper.xml
index b58b3bc..3df7b33 100644
--- a/src/main/resources/mapper/ServiceMapper.xml
+++ b/src/main/resources/mapper/ServiceMapper.xml
@@ -58,4 +58,18 @@
itms_service
LEFT JOIN itms_file ON itms_service.plugin_file_id = itms_file.file_id
+
+