feat: 远程操作

master
李小林 8 months ago
parent cf0de8deda
commit 5ec417ac34
  1. 7
      src/main/java/com/bellmann/common/constant/SystemConstants.java
  2. 4
      src/main/java/com/bellmann/common/result/ResultCode.java
  3. 21
      src/main/java/com/bellmann/controller/DeviceServiceMapController.java
  4. 27
      src/main/java/com/bellmann/controller/DeviceStaticController.java
  5. 21
      src/main/java/com/bellmann/controller/LibDeviceCodeController.java
  6. 9
      src/main/java/com/bellmann/converter/DeviceStaticConverter.java
  7. 2
      src/main/java/com/bellmann/manger/ServiceManager.java
  8. 20
      src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java
  9. 18
      src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java
  10. 4
      src/main/java/com/bellmann/mapper/DeviceStaticMapper.java
  11. 18
      src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java
  12. 3
      src/main/java/com/bellmann/mapper/ServiceMapper.java
  13. 11
      src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java
  14. 35
      src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java
  15. 43
      src/main/java/com/bellmann/model/entity/DeviceServiceMap.java
  16. 38
      src/main/java/com/bellmann/model/entity/LibDeviceCode.java
  17. 19
      src/main/java/com/bellmann/model/form/UnBindingForm.java
  18. 62
      src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java
  19. 39
      src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java
  20. 16
      src/main/java/com/bellmann/service/DeviceServiceMapService.java
  21. 9
      src/main/java/com/bellmann/service/DeviceStaticService.java
  22. 16
      src/main/java/com/bellmann/service/LibDeviceCodeService.java
  23. 20
      src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java
  24. 174
      src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java
  25. 20
      src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java
  26. 21
      src/main/resources/mapper/DeviceServiceMapMapper.xml
  27. 41
      src/main/resources/mapper/DeviceStaticMapper.xml
  28. 20
      src/main/resources/mapper/LibDeviceCodeMapper.xml
  29. 14
      src/main/resources/mapper/ServiceMapper.xml

@ -27,4 +27,11 @@ public interface SystemConstants {
String DEV_INFORM_FLAG= "0"; String DEV_INFORM_FLAG= "0";
String DEV_SOAP_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";
} }

@ -109,7 +109,9 @@ public enum ResultCode implements IResultCode, Serializable {
DEV_OUI_SNO_FORMAT_ERROR("F0018","设备标识格式不正确"), DEV_OUI_SNO_FORMAT_ERROR("F0018","设备标识格式不正确"),
DEVICE_NOT_REGISTERED("F0019","该设备尚未注册,请先注册终端"), DEVICE_NOT_REGISTERED("F0019","该设备尚未注册,请先注册终端"),
DEVICE_ALREADY_BINDING_OTHER_LOGIC("F0020", "该设备已经绑定了其他逻辑ID,请解绑此设备后再操作!"), 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 @Override
public String getCode() { public String getCode() {
return code; return code;

@ -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-06-28
*/
@RestController
@RequestMapping("/deviceServiceMap")
public class DeviceServiceMapController {
}

@ -6,9 +6,12 @@ import com.bellmann.common.result.Result;
import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.form.EquipmentDetailForm; import com.bellmann.model.form.EquipmentDetailForm;
import com.bellmann.model.form.PrivateProfileForm; import com.bellmann.model.form.PrivateProfileForm;
import com.bellmann.model.form.UnBindingForm;
import com.bellmann.model.query.DevOuiSnoQuery; import com.bellmann.model.query.DevOuiSnoQuery;
import com.bellmann.model.query.SelectQuery; import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.EquipmentVO; import com.bellmann.model.vo.EquipmentVO;
import com.bellmann.model.vo.RemoteDevInfoVO;
import com.bellmann.model.vo.RemoteEquipmentVO;
import com.bellmann.service.DeviceStaticService; import com.bellmann.service.DeviceStaticService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -76,10 +79,32 @@ public class DeviceStaticController {
} }
//--------------资源管理API结束-------------------- //--------------资源管理API结束--------------------
//--------------工单管理查询devOuiSno分页开始 //--------------工单管理查询devOuiSno分页开始---------------------------------
@PostMapping("dev-oui-sno-page") @PostMapping("dev-oui-sno-page")
@Operation(summary = "工单管理查询devOuiSno") @Operation(summary = "工单管理查询devOuiSno")
public PageResult<String> devOuiSnoPage(@RequestBody DevOuiSnoQuery query){ public PageResult<String> devOuiSnoPage(@RequestBody DevOuiSnoQuery query){
return deviceStaticService.devOuiSnoPage(query); return deviceStaticService.devOuiSnoPage(query);
} }
//--------------工单管理查询devOuiSno分页结束------------------------
//-------------------远程操作--------------------------
@PostMapping("/remote/page")
@Operation(summary = "远程操作-设备管理表格接口")
public PageResult<RemoteEquipmentVO> remotePage(@RequestBody SelectQuery query){
Page<RemoteEquipmentVO> page = deviceStaticService.remotePage(query);
return PageResult.success(page);
}
@GetMapping("/remote/{devId}")
@Operation(summary = "远程操作-设备信息")
public Result<RemoteDevInfoVO> remoteDevInfo(@PathVariable Long devId){
return deviceStaticService.remoteDevInfo(devId);
}
@PostMapping("remote/unbinding")
@Operation(summary = "远程操作-设备信息")
public Result<String> unbindingLogicId(@RequestBody UnBindingForm form){
return deviceStaticService.unbindingLogicId(form);
}
} }

@ -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-06-26
*/
@RestController
@RequestMapping("/libDeviceCode")
public class LibDeviceCodeController {
}

@ -2,9 +2,11 @@ package com.bellmann.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.EquipmentBO; import com.bellmann.model.bo.EquipmentBO;
import com.bellmann.model.bo.RemoteEquipmentBO;
import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.vo.EquipmentVO; import com.bellmann.model.vo.EquipmentVO;
import com.bellmann.model.vo.RemoteEquipmentVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
@ -23,4 +25,11 @@ public interface DeviceStaticConverter {
DeviceStatic resourceForm2VOEntity(EquipmentAddForm form); DeviceStatic resourceForm2VOEntity(EquipmentAddForm form);
Page<EquipmentVO> resourceBOPage2VOPage(Page<EquipmentBO> boPage); Page<EquipmentVO> resourceBOPage2VOPage(Page<EquipmentBO> 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<RemoteEquipmentVO> remoteBOPage2VOPage(Page<RemoteEquipmentBO> boPage);
} }

@ -6,4 +6,6 @@ import com.bellmann.model.vo.DeviceServiceVO;
public interface ServiceManager { public interface ServiceManager {
Page<DeviceServiceVO> pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery); Page<DeviceServiceVO> pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery);
String getConnType(Long devId);
} }

@ -2,9 +2,11 @@ package com.bellmann.manger.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.constant.SystemConstants;
import com.bellmann.converter.ServiceConverter; import com.bellmann.converter.ServiceConverter;
import com.bellmann.manger.ServiceManager; import com.bellmann.manger.ServiceManager;
import com.bellmann.mapper.ServiceMapper; import com.bellmann.mapper.ServiceMapper;
import com.bellmann.model.bo.DeviceServiceArgsBO;
import com.bellmann.model.vo.DeviceServiceVO; import com.bellmann.model.vo.DeviceServiceVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -18,6 +20,24 @@ public class ServiceManagerImpl implements ServiceManager {
private final ServiceMapper serviceMapper; private final ServiceMapper serviceMapper;
private final ServiceConverter serviceConverter; 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 @Override
public Page<DeviceServiceVO> pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery) { public Page<DeviceServiceVO> pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery) {
int pageNum = pageQuery.getPageNum(); int pageNum = pageQuery.getPageNum();

@ -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;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-06-28
*/
@Mapper
public interface DeviceServiceMapMapper extends BaseMapper<DeviceServiceMap> {
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.DeviceDetailBO; import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.bo.EquipmentBO; import com.bellmann.model.bo.EquipmentBO;
import com.bellmann.model.bo.RemoteEquipmentBO;
import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.vo.EquipmentDetailVO; import com.bellmann.model.vo.EquipmentDetailVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -22,4 +23,7 @@ public interface DeviceStaticMapper extends BaseMapper<DeviceStatic> {
DeviceDetailBO orderByPppoeAccount(@Param("status") String status, @Param("pppoeAccount") String pppoeAccount); DeviceDetailBO orderByPppoeAccount(@Param("status") String status, @Param("pppoeAccount") String pppoeAccount);
String selectDevRemark4ByOrderSN(@Param("userSnNo") String userSnNo); String selectDevRemark4ByOrderSN(@Param("userSnNo") String userSnNo);
Page<RemoteEquipmentBO> remotePage(Page<RemoteEquipmentBO> page, @Param("column") String column, @Param("value") Object value);
} }

@ -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;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-06-26
*/
@Mapper
public interface LibDeviceCodeMapper extends BaseMapper<LibDeviceCode> {
}

@ -2,6 +2,7 @@ package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.DeviceServiceArgsBO;
import com.bellmann.model.entity.Business; import com.bellmann.model.entity.Business;
import com.bellmann.model.vo.BusinessVO; import com.bellmann.model.vo.BusinessVO;
import com.bellmann.model.vo.DeviceServiceVO; import com.bellmann.model.vo.DeviceServiceVO;
@ -19,4 +20,6 @@ public interface ServiceMapper extends BaseMapper<Business> {
List<DeviceServiceVO> noBindingTr069ServiceList(Page<DeviceServiceVO> page, Long tr069VerId); List<DeviceServiceVO> noBindingTr069ServiceList(Page<DeviceServiceVO> page, Long tr069VerId);
List<BusinessVO> businessPage(Page<BusinessVO> page); List<BusinessVO> businessPage(Page<BusinessVO> page);
DeviceServiceArgsBO getConnType(@Param("devId") Long devId);
} }

@ -0,0 +1,11 @@
package com.bellmann.model.bo;
import lombok.Data;
@Data
public class DeviceServiceArgsBO {
private String argsTr069Name;
private String argsValue;
}

@ -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;
}

@ -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;
/**
* <p>
*
* </p>
*
* @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;
}

@ -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;
/**
* <p>
*
* </p>
*
* @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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -0,0 +1,16 @@
package com.bellmann.service;
import com.bellmann.model.entity.DeviceServiceMap;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-06-28
*/
public interface DeviceServiceMapService extends IService<DeviceServiceMap> {
}

@ -6,9 +6,12 @@ import com.bellmann.common.result.Result;
import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.form.EquipmentDetailForm; import com.bellmann.model.form.EquipmentDetailForm;
import com.bellmann.model.form.PrivateProfileForm; import com.bellmann.model.form.PrivateProfileForm;
import com.bellmann.model.form.UnBindingForm;
import com.bellmann.model.query.DevOuiSnoQuery; import com.bellmann.model.query.DevOuiSnoQuery;
import com.bellmann.model.query.SelectQuery; import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.EquipmentVO; 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.List;
import java.util.Map; import java.util.Map;
@ -31,4 +34,10 @@ public interface DeviceStaticService {
Result<String> unbindingCustom(Long devId); Result<String> unbindingCustom(Long devId);
PageResult<String> devOuiSnoPage(DevOuiSnoQuery query); PageResult<String> devOuiSnoPage(DevOuiSnoQuery query);
Page<RemoteEquipmentVO> remotePage(SelectQuery query);
Result<RemoteDevInfoVO> remoteDevInfo(Long devId);
Result<String> unbindingLogicId(UnBindingForm form);
} }

@ -0,0 +1,16 @@
package com.bellmann.service;
import com.bellmann.model.entity.LibDeviceCode;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-06-26
*/
public interface LibDeviceCodeService extends IService<LibDeviceCode> {
}

@ -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;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-06-28
*/
@Service
public class DeviceServiceMapServiceImpl extends ServiceImpl<DeviceServiceMapMapper, DeviceServiceMap> implements DeviceServiceMapService {
}

@ -2,40 +2,40 @@ package com.bellmann.service.impl;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.IBaseEnum; import com.bellmann.common.base.IBaseEnum;
import com.bellmann.common.constant.SecurityConstants; import com.bellmann.common.constant.SecurityConstants;
import com.bellmann.common.constant.StringUtilsConstants; import com.bellmann.common.constant.StringUtilsConstants;
import com.bellmann.common.constant.SystemConstants; import com.bellmann.common.constant.SystemConstants;
import com.bellmann.common.enums.DevOnlineEnum; import com.bellmann.common.enums.*;
import com.bellmann.common.enums.DevOwnerClassEnum;
import com.bellmann.common.enums.DevRegStatusEnum;
import com.bellmann.common.enums.DevStatusEnum;
import com.bellmann.common.exception.BusinessException; import com.bellmann.common.exception.BusinessException;
import com.bellmann.common.result.PageResult; import com.bellmann.common.result.PageResult;
import com.bellmann.common.result.Result; import com.bellmann.common.result.Result;
import com.bellmann.common.result.ResultCode; import com.bellmann.common.result.ResultCode;
import com.bellmann.converter.DeviceStaticConverter; import com.bellmann.converter.DeviceStaticConverter;
import com.bellmann.manger.CustomerManager; import com.bellmann.manger.*;
import com.bellmann.manger.DeviceTypeManager;
import com.bellmann.manger.FileRecordManager;
import com.bellmann.manger.IpAddressDomainManager;
import com.bellmann.mapper.*; import com.bellmann.mapper.*;
import com.bellmann.model.bo.EquipmentBO; import com.bellmann.model.bo.EquipmentBO;
import com.bellmann.model.bo.RemoteEquipmentBO;
import com.bellmann.model.entity.*; import com.bellmann.model.entity.*;
import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.form.EquipmentAddForm;
import com.bellmann.model.form.EquipmentDetailForm; import com.bellmann.model.form.EquipmentDetailForm;
import com.bellmann.model.form.PrivateProfileForm; import com.bellmann.model.form.PrivateProfileForm;
import com.bellmann.model.form.UnBindingForm;
import com.bellmann.model.query.DevOuiSnoQuery; import com.bellmann.model.query.DevOuiSnoQuery;
import com.bellmann.model.query.SelectQuery; import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.EquipmentCustomerVO; import com.bellmann.model.vo.*;
import com.bellmann.model.vo.EquipmentDetailVO;
import com.bellmann.model.vo.EquipmentTypeVO;
import com.bellmann.model.vo.EquipmentVO;
import com.bellmann.security.util.SecurityUtils; import com.bellmann.security.util.SecurityUtils;
import com.bellmann.service.DeviceStaticService; 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 lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -70,6 +70,14 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
private final FileDevMapMapper fileDevMapMapper; private final FileDevMapMapper fileDevMapMapper;
private final ServiceManager serviceManager;
private final LibDeviceCodeMapper libDeviceCodeMapper;
private final OrderInfoMapper orderInfoMapper;
private final DeviceServiceMapMapper deviceServiceMapMapper;
@Override @Override
public Page<EquipmentVO> resourcePage(SelectQuery query) { public Page<EquipmentVO> resourcePage(SelectQuery query) {
int pageNum = query.getPageNum(); int pageNum = query.getPageNum();
@ -262,4 +270,146 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
stringPage.setTotal(list.size()); stringPage.setTotal(list.size());
return PageResult.success(stringPage); return PageResult.success(stringPage);
} }
@Override
public Page<RemoteEquipmentVO> remotePage(SelectQuery query) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<RemoteEquipmentBO> page = new Page<>(pageNum,pageSize);
Page<RemoteEquipmentBO> boPage = deviceStaticMapper.remotePage(page,query.getSelectName(),query.getSelectValue());
return deviceStaticConverter.remoteBOPage2VOPage(boPage);
}
@Override
public Result<RemoteDevInfoVO> remoteDevInfo(Long devId) {
RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO();
DeviceStatic deviceStatic = deviceStaticMapper.selectOne(
new QueryWrapper<DeviceStatic>()
.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<DeviceDynamic>()
.eq(DeviceDynamic::getDevId, devId)
);
if (deviceDynamic!=null){
remoteDevInfoVO.setDevOnlineTime(deviceDynamic.getDevOnlineTime());
remoteDevInfoVO.setDevIp(deviceDynamic.getDevIp());
}
DeviceStaticDetail staticDetail = deviceStaticDetailMapper.selectOne(new QueryWrapper<DeviceStaticDetail>()
.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<LibDeviceCode>()
.eq(LibDeviceCode::getDevOui, deviceStatic.getDevRemark3())
.eq(LibDeviceCode::getDevSno, deviceStatic.getDevSno())
);
remoteDevInfoVO.setBlacklist(count>0?"是":"否");
return Result.success(remoteDevInfoVO);
}
@Override
public Result<String> 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<String> upDeviceStaticGetDevId2(UnBindingForm form) {
deviceStaticMapper.update(null,new LambdaUpdateWrapper<DeviceStatic>()
.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<DeviceStaticDetail>()
.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<OrderInfo>()
.eq(OrderInfo::getDevSnoOui,devSno)
.eq(OrderInfo::getUniqueUserId,form.getDevRemark4())
.set(OrderInfo::getDevSnoOui,null)
);
deviceServiceMapMapper.delete(new LambdaQueryWrapper<DeviceServiceMap>()
.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;
}
} }

@ -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;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-06-26
*/
@Service
public class LibDeviceCodeServiceImpl extends ServiceImpl<LibDeviceCodeMapper, LibDeviceCode> implements LibDeviceCodeService {
}

@ -0,0 +1,21 @@
<?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.DeviceServiceMapMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.DeviceServiceMap">
<id column="dev_id" property="devId" />
<result column="serv_id" property="servId" />
<result column="order_id" property="orderId" />
<result column="serv_map_status" property="servMapStatus" />
<result column="serv_map_error_count" property="servMapErrorCount" />
<result column="serv_status_time" property="servStatusTime" />
<result column="serv_map_remark" property="servMapRemark" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
dev_id, serv_id, order_id, serv_map_status, serv_map_error_count, serv_status_time, serv_map_remark
</sql>
</mapper>

@ -71,7 +71,8 @@
d.DEV_ONLINE, d.DEV_ONLINE,
d.DEV_ONLINE_TIME, d.DEV_ONLINE_TIME,
e.band_access, e.band_access,
e.iptv_access e.iptv_access,
e.USER_SN_NO as loginId
FROM FROM
ITMS_DEVICE_STATIC s ITMS_DEVICE_STATIC s
LEFT JOIN ITMS_DEVICE_DYNAMIC d ON s.DEV_ID = d.DEV_ID LEFT JOIN ITMS_DEVICE_DYNAMIC d ON s.DEV_ID = d.DEV_ID
@ -204,4 +205,42 @@
WHERE WHERE
t2.user_sn_no = #{userSnNo} t2.user_sn_no = #{userSnNo}
</select> </select>
<select id="remotePage" resultType="com.bellmann.model.bo.RemoteEquipmentBO">
SELECT
s.dev_id,
s.dev_sno,
s.dev_ad_no,
s.dev_pppoe,
s.dev_status,
v.soft_ver,
T.dev_hard_ver,
T.dev_type_id,
T.dev_type_name,
T.dev_vendor_name,
T.dev_vendor_oui,
dy.dev_online,
dy.dev_online_time
FROM
itms_device_static s
<if test="column=='customName' or column=='customId' and column!=null and column!=''">
INNER JOIN itms_customer ON itms_customer.cust_id = s.cust_id
</if>
INNER JOIN ITMS_DEVICE_DYNAMIC dy ON s.DEV_ID = dy.DEV_ID
INNER JOIN itms_device_type_ver v ON s.type_and_ver_id = v.type_and_ver_id
INNER JOIN itms_device_type T ON v.dev_type_id = T.dev_type_id
INNER JOIN itms_device_type_ver_detail d ON v.type_and_ver_id = d.type_and_ver_id
<where>
<if test="column=='devAdNo' and column!=null and column!=''">
and s.dev_ad_no = #{value}
</if>
<if test="column=='devSno' and column!=null and column!=''">
and s.dev_sno = #{value}
</if>
<if test="column=='customName' and column!=null and column!=''">
and itms_customer.cust_name = #{value}
</if>
</where>
</select>
</mapper> </mapper>

@ -0,0 +1,20 @@
<?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.LibDeviceCodeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.LibDeviceCode">
<id column="id" property="id" />
<result column="dev_oui" property="devOui" />
<result column="dev_sno" property="devSno" />
<result column="sys_time" property="sysTime" />
<result column="dev_remark" property="devRemark" />
<result column="refuse_times" property="refuseTimes" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, dev_oui, dev_sno, sys_time, dev_remark, refuse_times
</sql>
</mapper>

@ -58,4 +58,18 @@
itms_service itms_service
LEFT JOIN itms_file ON itms_service.plugin_file_id = itms_file.file_id LEFT JOIN itms_file ON itms_service.plugin_file_id = itms_file.file_id
</select> </select>
<select id="getConnType" resultType="com.bellmann.model.bo.DeviceServiceArgsBO">
SELECT
t1.ARGS_TR069_NAME,
t1.ARGS_VALUE
FROM
itms_device_service_args t1,
itms_service t2
WHERE
t1.serv_id = t2.serv_id
AND t2.serv_name = 'wband'
AND t1.dev_id = #{devId}
limit 1
</select>
</mapper> </mapper>

Loading…
Cancel
Save