1-贵州集约化项目-数据网业务梳理

应用规划
1.保存应用规划的业务逻辑

  1. 新增应用规划,从下拉框的树形表格中,选择IP段与应用规划进行关联(可以多选)
在这里插入图片描述
  2. 逻辑代码:

/**
 * 方法说明:保存ApplicationPlan,会将ip段的planType和planId进行关联修改
 * @author wangbin
 * @date 2019/9/27 10:51
 * @param applicationPlanVo
 * @return com.sccl.framework.web.domain.AjaxResult
 * @throws
 */
@Override
public AjaxResult saveApplicationPlan(ApplicationPlanVo applicationPlanVo) {
    //获取所有的IP段ID
    String[] ipSegmentIds = applicationPlanVo.getIpSegmentIds().split(",");
    //查询IP段集合
    List<Ipsegment> ipSegments = ipsegmentService.gets(Arrays.asList(ipSegmentIds));
    ApplicationPlan applicationPlan = new ApplicationPlan();
    BeanUtils.copyProperties(applicationPlanVo,applicationPlan);
    applicationPlan.setCode(applicationPlan.getName());
    if (StringUtils.isBlank(applicationPlan.getId())) {
        // 设置应用规划属性
        // 保存应用规划,id为空说明是新增
        this.save(applicationPlan);
        // 设置IP段关联的应用规划以及IP段status
        ipsegmentService.updateIpSegmentPlanStatus(ipSegments,applicationPlan.getId(),0L,1L);
        applicationPlanVo.setId(applicationPlan.getId());
    }else {
        // 修改
        // 修改IP段的applicationPlanId以及status的值
        Map<String,Object> params = new HashMap<String,Object>();
        params.put("planId",applicationPlan.getId());
        params.put("planType", 0L);
        params.put("topoGraphKind", applicationPlan.getTopoGraphKind());
        //params.put("topographid", applicationPlan.getTopographid());
        //查询原来规划的IP段
        List<Ipsegment> oldIpSegments = ipsegmentService.selectBy(params);
        List<Ipsegment> copyOldIpSegments = new ArrayList<>(oldIpSegments);
        //新规划的IP段
        List<Ipsegment> copyNewIpSegments = new ArrayList<>(ipSegments);
        // 得到上次存在,这次被删除的IP
        // (原来的IP段集合与现在选择的IP段集合取交集后取反拿到这次需要从ipsegment表中
        // 删除的IP段与应用规划的关联关系)
        copyOldIpSegments.removeAll(copyNewIpSegments);
        // 得到上次不在,这次新增的IP
        //(现在选择的IP段集合与原来的IP段集合取交集后取反拿到这次需要从ipsegment表中
        // 新增的IP段与应用规划的关联关系)
        copyNewIpSegments.removeAll(oldIpSegments);
        // 关联关系删除,将删除关联关系的IP段状态恢复
        ipsegmentService.updateIpSegmentPlanStatus(copyOldIpSegments,null,null,0L);
        // 新增的关联关系保存,并修改IP状态
        ipsegmentService.updateIpSegmentPlanStatus(copyNewIpSegments,applicationPlan.getId(),0L,2L);
        // 保存应用规划
        this.save(applicationPlan);
    }
    return AjaxResult.success(applicationPlanVo);

  3. 逻辑梳理:
    3.1 根据在树形表格中选中的IP段ID集合,在t_da_ipsegment 表中查询出这次需要关联的IP段集合

 List<Ipsegment> ipSegments = ipsegmentService.gets(Arrays.asList(ipSegmentIds));

    3.2 创建ApplicationPlan对象,将ApplicationPlanVo对象中的属性拷贝到ApplicationPlan对象中

BeanUtils.copyProperties(applicationPlanVo,applicationPlan);

    3.3 判断ApplicationPlan的id是否为空,从而进行不同的业务处理

StringUtils.isBlank(applicationPlan.getId())

      1.ID为空,说明是新增应用规划
        1.调用this.save()方法保存应用规划的信息到应用规划表 t_da_application_plan,此时id为空,会默认调用insert()方法

this.save(applicationPlan);

        2.在t_da_ipsegment 表中设置IP段集合与应用规划的关联id(planId),并设置IP段关联的应用类型(palnType)和IP段状态值(statusValue)

  // 设置IP段关联的应用规划以及IP段status
  ipsegmentService.updateIpSegmentPlanStatus(ipSegments,applicationPlan.getId(),0L,1L);

      2.ID不为空,说明是修改应用规划
        1.修改应用规划,该应用规划关联的IP段集合也需要修改关联的应用规划id(applicationPlanId),以及状态值(statusValue)
        2.准备查询参数

	Map<String,Object> params = new HashMap<String,Object>();
    params.put("planId",applicationPlan.getId());
    params.put("planType", 0L);
    params.put("topoGraphKind", applicationPlan.getTopoGraphKind());

通过上述参数,在t_da_ipsegment 表中查询出该应用规划以前关联的IP段集合

  List<Ipsegment> oldIpSegments = ipsegmentService.selectBy(params);

        3.分别获取应用规划以前关联的IP段集合()与现在修改应用规划时从树形下拉框中选择的IP段集合()

原来规划的IP段集合: List<Ipsegment> copyOldIpSegments = new ArrayList<>(oldIpSegments);
现在规划的IP段集合: List<Ipsegment> copyNewIpSegments = new ArrayList<>(ipSegments);

在这里插入图片描述
          1.原来的IP段集合中排除掉与现在的IP段集合的交集,即为此次需要从t_da_ipsegment 表中删除的IP段与应用规划的关联关系,以及恢复对应IP段的状态值

  // 得到上次存在,这次被删除的IP
  // (原来的IP段集合与现在选择的IP段集合取交集后取反拿到这次需要从ipsegment表中
  // 删除的IP段与应用规划的关联关系)
  copyOldIpSegments.removeAll(copyNewIpSegments);
  // IP段与应用规划的关联关系删除,将删除关联关系的IP段状态恢复
  ipsegmentService.updateIpSegmentPlanStatus(copyOldIpSegments,null,null,0L);

          2.现在的IP段集合中排除掉与原来的IP段集合的交集,即为此次需要向t_da_ipsegment 表中添加的IP段集合与应用规划的关联关系,以及设置对应的IP段状态值

	// 得到上次不在,这次新增的IP
	//(现在选择的IP段集合与原来的IP段集合取交集后取反拿到这次需要从ipsegment表中
	// 新增的IP段与应用规划的关联关系)
 	copyNewIpSegments.removeAll(oldIpSegments);
 	// 新增的关联关系保存,并修改IP状态
    ipsegmentService.updateIpSegmentPlanStatus(copyNewIpSegments,applicationPlan.getId(),0L,2L);

          3.保存应用规划,调用this.save()方法,由于id不为空,所以会调用update()方法,修改应用规划信息到t_da_application_plan 表,最后返回 AjaxResult 即可

  // 保存应用规划
    this.save(applicationPlan);
2.删除应用规划的业务逻辑

  1.从前端页面选择需要删除的应用规划

在这里插入图片描述

  2. 逻辑代码:

/**
     * 方法说明:删除applicationPlan,需要判断业务关系
     * @author wangbin
     * @date 2019/9/27 10:40
     * @param id
     * @return com.sccl.framework.web.domain.AjaxResult
     * @throws
     */
    @Override
    public AjaxResult remove(String id) {
        Map<String,Object> params = new HashMap<String,Object>();
        // 判断是否关联业务
        params.put("dataApplicationPlanId",id);
        List<BusinessPlan> businessPlans = businessPlanService.selectBy(params);
        if (businessPlans.size() > 0) {
            throw new BusinessException(HasBusinessPlanReference);
        }else {
            params.clear();
            ApplicationPlan applicationPlan = this.get(id);
            // 清空IP段中applicationPlanId字段
            // 修改IP段status的runValue
            params.put("planId",applicationPlan.getId());
            params.put("planType", 0L);
            params.put("topoGraphKind", applicationPlan.getTopoGraphKind());
            List<Ipsegment> ipSegments = ipsegmentService.selectBy(params);
            ipsegmentService.updateIpSegmentPlanStatus(ipSegments,null,null,0L);
            // 删除自己
            this.delete(id);
            return AjaxResult.success(RemoveSuccess);
        }
    }

  3. 逻辑梳理:
    3.1 首先需要对删除的应用规划进行业务查询,查看该应用规划是否关联了业务,如果关联了业务就不能删除,反之就可以删除

// 判断是否关联业务
params.put("dataApplicationPlanId",id);
List<BusinessPlan> businessPlans = businessPlanService.selectBy(params);
if (businessPlans.size() > 0) {
	//有业务关联,抛异常不能删除
    throw new BusinessException(HasBusinessPlanReference);
}else{
	//无业务关联,可以进行删除操作
}

    3.2 没有业务关联时进行应用规划的删除操作,

      1.将查询参数先置空,根据传入的id获取需要删除的应用规划实例,然后填入新的查询参数,查询出需要删除的应用规划关联的IP段集合

params.clear();
ApplicationPlan applicationPlan = this.get(id);
// 清空IP段中applicationPlanId字段
// 修改IP段status的runValue
params.put("planId",applicationPlan.getId());
params.put("planType", 0L);
params.put("topoGraphKind", applicationPlan.getTopoGraphKind());
List<Ipsegment> ipSegments = ipsegmentService.selectBy(params);

      2.将查询出的IP段集合关联的应用规划id置空,应用规划类型置空,ip段的状态值置0L

 ipsegmentService.updateIpSegmentPlanStatus(ipSegments,null,null,0L);	

      3.调用delete()方法删除应用规划,返回AJAXResult即可

// 删除自己
 this.delete(id);
 return AjaxResult.success(RemoveSuccess);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、相对(差分)相移键控(DPSK)在接收端可以基于想干解调或非相干解调还原数字基带信号+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!
ys-es1智能化变电站网络记录分析装置是一种应用于变电站网络系统的智能化设备。它可以实时采集、记录和分析变电站的网络数据信息,帮助工程师和运维人员更好地监控和管理变电站的运行。 ys-es1智能化变电站网络记录分析装置具备以下主要特点: 1. 数据采集:ys-es1能够实时采集变电站网络中的各种数据信息,包括设备状态、数据传输情况、负载情况等。通过这些数据,运维人员可以及时了解变电站的运行状态,及时处理可能发生的故障。 2. 数据记录:ys-es1能够对采集到的数据进行记录,建立数据的历史库。这样,在发生故障时,可以通过回溯分析历史数据,找到问题的源头和原因。同时,也可以通过分析历史数据,预测设备的寿命和性能变化趋势,为设备的维护保养提供参考依据。 3. 数据分析:ys-es1拥有强大的数据分析能力,能够对采集到的数据进行多维度分析和统计。例如,可以通过分析数据的波动情况和变化趋势,判断变电站的负荷情况和运行稳定性,提前预警潜在的故障风险。 4. 报警提示:ys-es1还能够进行报警提示,当采集到的数据异常时,可以通过声音、光源等方式提醒操作人员,及时采取应对措施。 总之,ys-es1智能化变电站网络记录分析装置是一种集数据采集、记录、分析和报警提示于一体的智能设备,可以帮助变电站管理人员更好地了解和管理变电站的运行情况,提高变电站的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值