From af16f70943a8d715a4961a9bdfa48687d443ac88 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, 2 Aug 2024 16:38:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=9A=E5=8A=A1=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/ResConstants.java | 7 + .../controller/DeviceStaticController.java | 13 + .../mapper/DeviceOrderFlowMapper.java | 9 + .../mapper/DeviceServiceArgsMapper.java | 4 + .../com/bellmann/mapper/ServiceMapper.java | 3 + .../com/bellmann/model/bo/ResetServiceBO.java | 43 ++++ .../model/entity/DeviceOrderFlow.java | 36 +++ .../model/entity/DeviceServiceArgs.java | 4 +- .../java/com/bellmann/runner/UIService.java | 4 + .../bellmann/service/DeviceStaticService.java | 8 +- .../service/impl/DeviceStaticServiceImpl.java | 234 +++++++++++++++++- .../mapper/DeviceServiceArgsMapper.xml | 16 ++ src/main/resources/mapper/ServiceMapper.xml | 26 ++ 13 files changed, 397 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/bellmann/common/constant/ResConstants.java create mode 100644 src/main/java/com/bellmann/mapper/DeviceOrderFlowMapper.java create mode 100644 src/main/java/com/bellmann/model/bo/ResetServiceBO.java create mode 100644 src/main/java/com/bellmann/model/entity/DeviceOrderFlow.java diff --git a/src/main/java/com/bellmann/common/constant/ResConstants.java b/src/main/java/com/bellmann/common/constant/ResConstants.java new file mode 100644 index 0000000..51d01e5 --- /dev/null +++ b/src/main/java/com/bellmann/common/constant/ResConstants.java @@ -0,0 +1,7 @@ +package com.bellmann.common.constant; + +public interface ResConstants { + + public static final String HN_PROVICE = "HUNAN"; + public static final String YN_PROVICE = "YUNNAN"; +} diff --git a/src/main/java/com/bellmann/controller/DeviceStaticController.java b/src/main/java/com/bellmann/controller/DeviceStaticController.java index e7f2ecf..a435417 100644 --- a/src/main/java/com/bellmann/controller/DeviceStaticController.java +++ b/src/main/java/com/bellmann/controller/DeviceStaticController.java @@ -350,4 +350,17 @@ public class DeviceStaticController { log.info("{}任务执行中: {}", RemoteOperateMsgEnum.DOWNLOAD_CONFIG.getLabel(), taskId); return Result.success(); } + @GetMapping("/remote/reset-service/{devId}/{serviceName}") + @Operation(summary = "远程操作-业务重置") + @PreventDuplicateSubmit(expire = 60) + public Result remoteResetService(@PathVariable Long devId,@PathVariable String serviceName){ + deviceStaticService.remoteResetService(devId,serviceName); + try { + TimeUnit.MILLISECONDS.sleep(SystemConstants.TASK_TIME_OUT_CONST2); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + return Result.success(); + } } diff --git a/src/main/java/com/bellmann/mapper/DeviceOrderFlowMapper.java b/src/main/java/com/bellmann/mapper/DeviceOrderFlowMapper.java new file mode 100644 index 0000000..32b6fa0 --- /dev/null +++ b/src/main/java/com/bellmann/mapper/DeviceOrderFlowMapper.java @@ -0,0 +1,9 @@ +package com.bellmann.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bellmann.model.entity.DeviceOrderFlow; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DeviceOrderFlowMapper extends BaseMapper { +} diff --git a/src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java b/src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java index 98a6d2a..a92c3fa 100644 --- a/src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java +++ b/src/main/java/com/bellmann/mapper/DeviceServiceArgsMapper.java @@ -3,6 +3,9 @@ package com.bellmann.mapper; import com.bellmann.model.entity.DeviceServiceArgs; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface DeviceServiceArgsMapper extends BaseMapper { + List resetServiceByServIdAndDevId(@Param("servId") Long servId, @Param("devId") Long devId); } diff --git a/src/main/java/com/bellmann/mapper/ServiceMapper.java b/src/main/java/com/bellmann/mapper/ServiceMapper.java index 82f3be4..cc15ca8 100644 --- a/src/main/java/com/bellmann/mapper/ServiceMapper.java +++ b/src/main/java/com/bellmann/mapper/ServiceMapper.java @@ -3,6 +3,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.bo.ResetServiceBO; import com.bellmann.model.entity.Business; import com.bellmann.model.vo.BusinessVO; import com.bellmann.model.vo.DeviceBusinessVO; @@ -25,4 +26,6 @@ public interface ServiceMapper extends BaseMapper { DeviceServiceArgsBO getConnType(@Param("devId") Long devId,@Param("connType") String connType); List tabs(@Param("devId") Long devId); + + List resetServiceByDevId(@Param("devId") Long devId, @Param("serviceName") String serviceName); } diff --git a/src/main/java/com/bellmann/model/bo/ResetServiceBO.java b/src/main/java/com/bellmann/model/bo/ResetServiceBO.java new file mode 100644 index 0000000..aed1108 --- /dev/null +++ b/src/main/java/com/bellmann/model/bo/ResetServiceBO.java @@ -0,0 +1,43 @@ +package com.bellmann.model.bo; + +import lombok.Data; +import lombok.ToString; + +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author 李小林 + * @since 2024-07-12 + */ +@Data +@ToString +public class ResetServiceBO { + + private Long devId; + + private Long servId; + + private Long orderId; + + private String servMapStatus; + + private Integer servMapErrorCount; + + private LocalDateTime servStatusTime; + + private String servMapRemark; + + private String servName; + + private String servVerName; + + private String servDisplayName; + + private String servDesc; + + private Long pluginFileId; +} diff --git a/src/main/java/com/bellmann/model/entity/DeviceOrderFlow.java b/src/main/java/com/bellmann/model/entity/DeviceOrderFlow.java new file mode 100644 index 0000000..f578720 --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/DeviceOrderFlow.java @@ -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 java.io.Serializable; +import java.util.Date; + +/** + * (DeviceOrderFlow)实体类 + * + * @author makejava + * @since 2024-08-02 15:08:41 + */ +@Data +@TableName("itms_device_order_flow") +public class DeviceOrderFlow implements Serializable { + private static final long serialVersionUID = 139506503600641324L; + + @TableId(type = IdType.AUTO) + private Long devId; + + private String orderFlowRoot; + + private String orderFlowXbind; + + private Date operDate; + + private String flowStatus; + + private String uniqueUserId; + +} + diff --git a/src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java b/src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java index 07e8b3a..76c2a0a 100644 --- a/src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java +++ b/src/main/java/com/bellmann/model/entity/DeviceServiceArgs.java @@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import java.io.Serializable; -import java.util.Date; +import java.time.LocalDateTime; /** *

@@ -32,7 +32,7 @@ public class DeviceServiceArgs implements Serializable { private String argsValue; - private Date argsUpdateTime; + private LocalDateTime argsUpdateTime; private String servArgsRemark; diff --git a/src/main/java/com/bellmann/runner/UIService.java b/src/main/java/com/bellmann/runner/UIService.java index e794933..a574809 100644 --- a/src/main/java/com/bellmann/runner/UIService.java +++ b/src/main/java/com/bellmann/runner/UIService.java @@ -23,6 +23,9 @@ public class UIService extends ServiceManager { @Getter private static String task_timeOut; + @Getter + private static String province; + public UIService(String[] args) { super(args); } @@ -41,6 +44,7 @@ public class UIService extends ServiceManager { OAMManager.init(getStringValueByName("Service.Name.OAM")); nbiOrderUrl = getStringValueByName("nbiOrderUrl"); mergeUrl = getStringValueByName("mergeUrl"); + province = getStringValueByName("STR.PROVINCE"); return true; } diff --git a/src/main/java/com/bellmann/service/DeviceStaticService.java b/src/main/java/com/bellmann/service/DeviceStaticService.java index 8f8b7bf..2098fc4 100644 --- a/src/main/java/com/bellmann/service/DeviceStaticService.java +++ b/src/main/java/com/bellmann/service/DeviceStaticService.java @@ -5,10 +5,11 @@ import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; import com.bellmann.model.form.*; import com.bellmann.model.query.DevOuiSnoQuery; -import com.bellmann.model.query.ReportBasicQuery; import com.bellmann.model.query.SelectQuery; -import com.bellmann.model.vo.*; -import org.apache.ibatis.annotations.Param; +import com.bellmann.model.vo.EquipmentVO; +import com.bellmann.model.vo.RemoteDevInfoVO; +import com.bellmann.model.vo.RemoteEquipmentVO; +import com.bellmann.model.vo.RemoteOperateResult; import java.util.List; import java.util.Map; @@ -64,4 +65,5 @@ public interface DeviceStaticService { void exeCustomTaskByIds(Long devId, Integer[] ids); + void remoteResetService(Long devId, String serviceName); } diff --git a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java index e4edc06..0f630be 100644 --- a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java @@ -6,6 +6,7 @@ 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.ResConstants; import com.bellmann.common.constant.SecurityConstants; import com.bellmann.common.constant.StringUtilsConstants; import com.bellmann.common.constant.SystemConstants; @@ -20,12 +21,14 @@ import com.bellmann.mapper.*; import com.bellmann.model.bo.DownloadInfo; import com.bellmann.model.bo.EquipmentBO; import com.bellmann.model.bo.RemoteEquipmentBO; +import com.bellmann.model.bo.ResetServiceBO; import com.bellmann.model.dto.OperationTask; import com.bellmann.model.entity.*; import com.bellmann.model.form.*; import com.bellmann.model.query.DevOuiSnoQuery; import com.bellmann.model.query.SelectQuery; import com.bellmann.model.vo.*; +import com.bellmann.runner.UIService; import com.bellmann.security.util.SecurityUtils; import com.bellmann.service.DeviceStaticService; import com.bellmann.service.FileOptionService; @@ -34,11 +37,8 @@ import com.zznode.itms.api.NBIManager; import com.zznode.itms.api.OAMManager; import com.zznode.itms.api.Utils; import com.zznode.itms.idl.device.*; -import com.zznode.itms.idl.order.OrderInfoStructListHolder; -import com.zznode.itms.idl.order.OrderStatus; -import com.zznode.itms.idl.order.OrderType; -import com.zznode.itms.idl.resourcedefinition.RDeviceDetailListHolder; -import com.zznode.itms.idl.resourcedefinition.RDeviceStaticStruct; +import com.zznode.itms.idl.order.*; +import com.zznode.itms.idl.resourcedefinition.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -49,6 +49,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; +import java.sql.Timestamp; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; @@ -100,6 +101,10 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { private final CustomTaskMapper customTaskMapper; + private final ServiceMapper serviceMapper; + + private final DeviceOrderFlowMapper deviceOrderFlowMapper; + @Override public Page resourcePage(SelectQuery query) { @@ -987,4 +992,223 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { } } + + @Override + public void remoteResetService(Long devId, String serviceName) { + DeviceStatic deviceStatic = deviceStaticMapper.selectOne(new LambdaQueryWrapper() + .eq(DeviceStatic::getDevId, devId) + ); + + Customer customer = customerManager.findByCustomId(deviceStatic.getCustomId()); + List list = serviceMapper.resetServiceByDevId(devId,serviceName); + if (list.isEmpty()){ + throw new BusinessException(ResultCode.DATA_NOT_FOUND); + } + RDevServiceInfoDetailStruct[] struct = new RDevServiceInfoDetailStruct[list.size()]; + for (int index=0;index args = deviceServiceArgsMapper.resetServiceByServIdAndDevId(bo.getServId(),bo.getDevId()); + if (!args.isEmpty()){ + RDevServArgsStruct[] devServArgsList = new RDevServArgsStruct[args.size()]; + for (int i=0;i() + .eq(DeviceOrderFlow::getDevId, device.getDevId()) + ); + if (deviceOrderFlow!=null){ + flowType = deviceOrderFlow.getOrderFlowRoot(); + } + + String loid = ""; + if (null != device.getDevRemark4() && !device.getDevRemark4().isEmpty()) { + loid = device.getDevRemark4().split("\\^")[0]; + } + if (ResConstants.HN_PROVICE.equals(UIService.getProvince())) { + if (device.getDevRemark4() == null || device.getDevRemark4().isEmpty()) { + orderInfo.flowType = flowType; + orderInfo.uniqueUserId = ""; + orderInfo.userSnKey = ""; + orderInfo.userSnNo = ""; + orderInfo.lifeTime = Utils.LONG_NULL; + } else { + orderInfo.flowType = flowType; + orderInfo.uniqueUserId = device.getDevRemark4(); + orderInfo.userSnKey = ""; + orderInfo.userSnNo = device.getDevRemark4().split("\\^")[0]; + orderInfo.lifeTime = -999; + } + } else if (ResConstants.YN_PROVICE.equals(UIService.getProvince())) { + if (device.getDevRemark4() == null || device.getDevRemark4().isEmpty()) { + orderInfo.flowType = flowType; + orderInfo.uniqueUserId = ""; + orderInfo.userSnKey = ""; + orderInfo.userSnNo = ""; + orderInfo.lifeTime = Utils.LONG_NULL; + } else { + orderInfo.flowType = flowType; + orderInfo.uniqueUserId = device.getDevRemark4(); + orderInfo.userSnKey = ""; + orderInfo.userSnNo = device.getDevRemark4().split("\\^")[0]; + orderInfo.lifeTime = -999; + } + } else { + if (loid.length() == 11 || loid.length() == 18) { + orderInfo.flowType = flowType; + orderInfo.uniqueUserId = device.getDevRemark4(); + orderInfo.userSnKey = ""; + orderInfo.userSnNo = loid; + orderInfo.lifeTime = -999; + } else { + orderInfo.flowType = flowType; + orderInfo.uniqueUserId = ""; + orderInfo.userSnKey = ""; + orderInfo.userSnNo = ""; + orderInfo.lifeTime = Utils.LONG_NULL; + } + } + orderInfo.operRemark = ""; + orderInfo.remark1 = ""; + orderInfo.remark2 = ""; + orderInfo.remark3 = ""; + List orderServiceVec = new ArrayList<>(); + for (RDevServiceInfoDetailStruct rDevServiceInfoDetailStruct : devServiceInfoDetail) { + if (rDevServiceInfoDetailStruct.devServ.servStatusTime < orderInfo.orderTime) { + orderInfo.orderTime = rDevServiceInfoDetailStruct.devServ.servStatusTime; + } + if (serviceName + .equals(rDevServiceInfoDetailStruct.servInfo.servName)) { + OrderServiceStruct orderService = new OrderServiceStruct(); + orderService.servName = rDevServiceInfoDetailStruct.servInfo.servName; + orderService.servFlag = "R"; // Reset + orderService.argsName = ""; + orderService.argsValueNew = ""; + orderService.argsValueOld = ""; + orderService.orderId = Utils.LONG_NULL; + orderService.orderServiceId = Utils.LONG_NULL; + orderServiceVec.add(orderService); + break; + } + } + orderInfo.orderServiceList = new OrderServiceStruct[orderServiceVec + .size()]; + for (int i = 0; i < orderServiceVec.size(); i++) { + orderInfo.orderServiceList[i] = orderServiceVec.get(i); + } + OrderInfoDetailStruct orderInfoDetail = new OrderInfoDetailStruct(); + + DeviceStaticDetail devStaticDetail = deviceStaticDetailMapper.selectOne(new LambdaQueryWrapper() + .eq(DeviceStaticDetail::getDevId,device.getDevId()) + ); + + if (devStaticDetail == null) { + orderInfoDetail.bandAccess = ""; + orderInfoDetail.cardId = ""; + orderInfoDetail.cardKey = ""; + orderInfoDetail.detailRemark1 = ""; + orderInfoDetail.detailRemark2 = ""; + orderInfoDetail.detailRemark3 = ""; + orderInfoDetail.downRate = ""; + orderInfoDetail.iptvAccess = ""; + orderInfoDetail.iptvPort = ""; + orderInfoDetail.orderKind = ""; + orderInfoDetail.upRate = ""; + orderInfoDetail.voipPhone = ""; + } else { + orderInfoDetail.bandAccess = devStaticDetail.getBandAccess(); + orderInfoDetail.iptvAccess = devStaticDetail.getIptvAccess(); + orderInfoDetail.orderKind = devStaticDetail.getDevOwnerClass(); + orderInfoDetail.cardId = ""; + orderInfoDetail.cardKey = ""; + orderInfoDetail.detailRemark1 = ""; + orderInfoDetail.detailRemark2 = ""; + orderInfoDetail.detailRemark3 = ""; + orderInfoDetail.downRate = ""; + orderInfoDetail.iptvPort = ""; + orderInfoDetail.upRate = ""; + orderInfoDetail.voipPhone = ""; + } + orderInfo.orderInfoDetail = orderInfoDetail; + return orderInfo; + } } diff --git a/src/main/resources/mapper/DeviceServiceArgsMapper.xml b/src/main/resources/mapper/DeviceServiceArgsMapper.xml index f6f8c92..d560a6c 100644 --- a/src/main/resources/mapper/DeviceServiceArgsMapper.xml +++ b/src/main/resources/mapper/DeviceServiceArgsMapper.xml @@ -16,5 +16,21 @@ dev_id, serv_id, args_tr069_name, args_value, args_update_time, serv_args_remark + diff --git a/src/main/resources/mapper/ServiceMapper.xml b/src/main/resources/mapper/ServiceMapper.xml index 4a7c046..33d73fd 100644 --- a/src/main/resources/mapper/ServiceMapper.xml +++ b/src/main/resources/mapper/ServiceMapper.xml @@ -88,4 +88,30 @@ WHERE aa.dev_id = #{devId} +