唐耀东
2022-05-13 85e6498e0125ea32c9c743faad0ee0863c4b278a
提交代码
24个文件已添加
2107 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgExchangeController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgServerController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgSystemController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgExchange.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgServer.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgSystem.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgExchangeBo.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgServerBo.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgSystemBo.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgExchangeVo.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgServerVo.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgSystemVo.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgExchangeMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgServerMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgSystemMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgExchangeService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgServerService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgSystemService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgExchangeServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgServerServiceImpl.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgSystemServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/resources/mapper/oa/SgExchangeMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/resources/mapper/oa/SgServerMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-oa/src/main/resources/mapper/oa/SgSystemMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgExchangeController.java
New file
@@ -0,0 +1,118 @@
package com.ruoyi.web.controller.oa;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import com.ruoyi.common.annotation.DataDictClass;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SgExchangeVo;
import com.ruoyi.oa.domain.bo.SgExchangeBo;
import com.ruoyi.oa.service.ISgExchangeService;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiOperation;
/**
 * 交换设备Controller
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Validated
@Api(value = "交换设备控制器", tags = {"交换设备管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/oa/exchange")
public class SgExchangeController extends BaseController {
    private final ISgExchangeService iSgExchangeService;
    /**
     * 查询交换设备列表
     */
    @DataDictClass
    @ApiOperation("查询交换设备列表")
    @PreAuthorize("@ss.hasPermi('oa:exchange:list')")
    @GetMapping("/list")
    public TableDataInfo<SgExchangeVo> list(@Validated(QueryGroup.class) SgExchangeBo bo) {
        return iSgExchangeService.queryPageList(bo);
    }
    /**
     * 导出交换设备列表
     */
    @ApiOperation("导出交换设备列表")
    @PreAuthorize("@ss.hasPermi('oa:exchange:export')")
    @Log(title = "交换设备", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public void export(@Validated SgExchangeBo bo, HttpServletResponse response) {
        List<SgExchangeVo> list = iSgExchangeService.queryList(bo);
        ExcelUtil.exportExcel(list, "交换设备", SgExchangeVo.class, response);
    }
    /**
     * 获取交换设备详细信息
     */
    @ApiOperation("获取交换设备详细信息")
    @PreAuthorize("@ss.hasPermi('oa:exchange:query')")
    @GetMapping("/{id}")
    public AjaxResult<SgExchangeVo> getInfo(@ApiParam("主键")
                                                  @NotNull(message = "主键不能为空")
                                                  @PathVariable("id") Long id) {
        return AjaxResult.success(iSgExchangeService.queryById(id));
    }
    /**
     * 新增交换设备
     */
    @ApiOperation("新增交换设备")
    @PreAuthorize("@ss.hasPermi('oa:exchange:add')")
    @Log(title = "交换设备", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody SgExchangeBo bo) {
        return toAjax(iSgExchangeService.insertByBo(bo) ? 1 : 0);
    }
    /**
     * 修改交换设备
     */
    @ApiOperation("修改交换设备")
    @PreAuthorize("@ss.hasPermi('oa:exchange:edit')")
    @Log(title = "交换设备", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody SgExchangeBo bo) {
        return toAjax(iSgExchangeService.updateByBo(bo) ? 1 : 0);
    }
    /**
     * 删除交换设备
     */
    @ApiOperation("删除交换设备")
    @PreAuthorize("@ss.hasPermi('oa:exchange:remove')")
    @Log(title = "交换设备" , businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult<Void> remove(@ApiParam("主键串")
                                       @NotEmpty(message = "主键不能为空")
                                       @PathVariable Long[] ids) {
        return toAjax(iSgExchangeService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgServerController.java
New file
@@ -0,0 +1,118 @@
package com.ruoyi.web.controller.oa;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import com.ruoyi.common.annotation.DataDictClass;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SgServerVo;
import com.ruoyi.oa.domain.bo.SgServerBo;
import com.ruoyi.oa.service.ISgServerService;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiOperation;
/**
 * 服务器Controller
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Validated
@Api(value = "服务器控制器", tags = {"服务器管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/oa/server")
public class SgServerController extends BaseController {
    private final ISgServerService iSgServerService;
    /**
     * 查询服务器列表
     */
    @DataDictClass
    @ApiOperation("查询服务器列表")
    @PreAuthorize("@ss.hasPermi('oa:server:list')")
    @GetMapping("/list")
    public TableDataInfo<SgServerVo> list(@Validated(QueryGroup.class) SgServerBo bo) {
        return iSgServerService.queryPageList(bo);
    }
    /**
     * 导出服务器列表
     */
    @ApiOperation("导出服务器列表")
    @PreAuthorize("@ss.hasPermi('oa:server:export')")
    @Log(title = "服务器", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public void export(@Validated SgServerBo bo, HttpServletResponse response) {
        List<SgServerVo> list = iSgServerService.queryList(bo);
        ExcelUtil.exportExcel(list, "服务器", SgServerVo.class, response);
    }
    /**
     * 获取服务器详细信息
     */
    @ApiOperation("获取服务器详细信息")
    @PreAuthorize("@ss.hasPermi('oa:server:query')")
    @GetMapping("/{id}")
    public AjaxResult<SgServerVo> getInfo(@ApiParam("主键")
                                                  @NotNull(message = "主键不能为空")
                                                  @PathVariable("id") Long id) {
        return AjaxResult.success(iSgServerService.queryById(id));
    }
    /**
     * 新增服务器
     */
    @ApiOperation("新增服务器")
    @PreAuthorize("@ss.hasPermi('oa:server:add')")
    @Log(title = "服务器", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody SgServerBo bo) {
        return toAjax(iSgServerService.insertByBo(bo) ? 1 : 0);
    }
    /**
     * 修改服务器
     */
    @ApiOperation("修改服务器")
    @PreAuthorize("@ss.hasPermi('oa:server:edit')")
    @Log(title = "服务器", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody SgServerBo bo) {
        return toAjax(iSgServerService.updateByBo(bo) ? 1 : 0);
    }
    /**
     * 删除服务器
     */
    @ApiOperation("删除服务器")
    @PreAuthorize("@ss.hasPermi('oa:server:remove')")
    @Log(title = "服务器" , businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult<Void> remove(@ApiParam("主键串")
                                       @NotEmpty(message = "主键不能为空")
                                       @PathVariable Long[] ids) {
        return toAjax(iSgServerService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgSystemController.java
New file
@@ -0,0 +1,118 @@
package com.ruoyi.web.controller.oa;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import com.ruoyi.common.annotation.DataDictClass;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.oa.domain.vo.SgSystemVo;
import com.ruoyi.oa.domain.bo.SgSystemBo;
import com.ruoyi.oa.service.ISgSystemService;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiOperation;
/**
 * 软件系统Controller
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Validated
@Api(value = "软件系统控制器", tags = {"软件系统管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/oa/system")
public class SgSystemController extends BaseController {
    private final ISgSystemService iSgSystemService;
    /**
     * 查询软件系统列表
     */
    @DataDictClass
    @ApiOperation("查询软件系统列表")
    @PreAuthorize("@ss.hasPermi('oa:system:list')")
    @GetMapping("/list")
    public TableDataInfo<SgSystemVo> list(@Validated(QueryGroup.class) SgSystemBo bo) {
        return iSgSystemService.queryPageList(bo);
    }
    /**
     * 导出软件系统列表
     */
    @ApiOperation("导出软件系统列表")
    @PreAuthorize("@ss.hasPermi('oa:system:export')")
    @Log(title = "软件系统", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public void export(@Validated SgSystemBo bo, HttpServletResponse response) {
        List<SgSystemVo> list = iSgSystemService.queryList(bo);
        ExcelUtil.exportExcel(list, "软件系统", SgSystemVo.class, response);
    }
    /**
     * 获取软件系统详细信息
     */
    @ApiOperation("获取软件系统详细信息")
    @PreAuthorize("@ss.hasPermi('oa:system:query')")
    @GetMapping("/{id}")
    public AjaxResult<SgSystemVo> getInfo(@ApiParam("主键")
                                                  @NotNull(message = "主键不能为空")
                                                  @PathVariable("id") Long id) {
        return AjaxResult.success(iSgSystemService.queryById(id));
    }
    /**
     * 新增软件系统
     */
    @ApiOperation("新增软件系统")
    @PreAuthorize("@ss.hasPermi('oa:system:add')")
    @Log(title = "软件系统", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody SgSystemBo bo) {
        return toAjax(iSgSystemService.insertByBo(bo) ? 1 : 0);
    }
    /**
     * 修改软件系统
     */
    @ApiOperation("修改软件系统")
    @PreAuthorize("@ss.hasPermi('oa:system:edit')")
    @Log(title = "软件系统", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody SgSystemBo bo) {
        return toAjax(iSgSystemService.updateByBo(bo) ? 1 : 0);
    }
    /**
     * 删除软件系统
     */
    @ApiOperation("删除软件系统")
    @PreAuthorize("@ss.hasPermi('oa:system:remove')")
    @Log(title = "软件系统" , businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult<Void> remove(@ApiParam("主键串")
                                       @NotEmpty(message = "主键不能为空")
                                       @PathVariable Long[] ids) {
        return toAjax(iSgSystemService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
    }
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgExchange.java
New file
@@ -0,0 +1,89 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 交换设备对象 sg_exchange
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@Accessors(chain = true)
@TableName("sg_exchange")
public class SgExchange extends BaseEntity {
    private static final long serialVersionUID=1L;
    /**
     *
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 高校
     */
    private Long schoolId;
    /**
     * 网络端口
     */
    private String networkPort;
    /**
     * 指标A
     */
    private String idnexA;
    /**
     * 级联端口
     */
    private String cascadePort;
    /**
     * 指标B
     */
    private String indexB;
    /**
     * 安装位置
     */
    private Long buildingId;
    /**
     * 详细地址
     */
    private String address;
    /**
     * 所属单位
     */
    private Long organizationId;
    /**
     * 施工批次
     */
    private Long constructionBatchId;
    /**
     * 序列号
     */
    private String serialNumber;
    /**
     * 型号
     */
    private String model;
    /**
     * 生产厂商
     */
    private Long manufacturerId;
    /**
     * 附件
     */
    private String filePath;
    /**
     *
     */
    @TableLogic
    private String delFlag;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgServer.java
New file
@@ -0,0 +1,105 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 服务器对象 sg_server
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@Accessors(chain = true)
@TableName("sg_server")
public class SgServer extends BaseEntity {
    private static final long serialVersionUID=1L;
    /**
     *
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 高校
     */
    private Long schoolId;
    /**
     * 部署名称
     */
    private String deploymentName;
    /**
     * LAN
     */
    private String lan;
    /**
     * IP
     */
    private String ip;
    /**
     * 操作系统
     */
    private String operatingSystem;
    /**
     * 账户
     */
    private String account;
    /**
     * 部署位置
     */
    private Long buildingId;
    /**
     * 机柜号
     */
    private String cabinetNumber;
    /**
     * 机架号
     */
    private String rackNumber;
    /**
     * 所属单位
     */
    private Long organizationId;
    /**
     * 施工批次
     */
    private Long constructionBatchId;
    /**
     * 序列号
     */
    private String serialNumber;
    /**
     * 型号
     */
    private String model;
    /**
     * 生产厂商
     */
    private Long manufacturerId;
    /**
     * 性能指标
     */
    private String performanceIndex;
    /**
     * 备注
     */
    private String remarks;
    /**
     * 附件
     */
    private String filePath;
    /**
     *
     */
    @TableLogic
    private String delFlag;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgSystem.java
New file
@@ -0,0 +1,81 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 软件系统对象 sg_system
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@Accessors(chain = true)
@TableName("sg_system")
public class SgSystem extends BaseEntity {
    private static final long serialVersionUID=1L;
    /**
     *
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 高校
     */
    private Long schoolId;
    /**
     * 软件名称
     */
    private String name;
    /**
     * 版本
     */
    private String edition;
    /**
     * 功能描述
     */
    private String functionDescription;
    /**
     * 授权方式
     */
    private String authorizationMethod;
    /**
     * 授权数量
     */
    private String authorizedQuantity;
    /**
     * 载体服务器
     */
    private Long serverId;
    /**
     * 施工批次
     */
    private Long constructionBatchId;
    /**
     * 生产厂商
     */
    private Long manufacturerId;
    /**
     * 备注
     */
    private String remarks;
    /**
     * 附件
     */
    private String filePath;
    /**
     *
     */
    @TableLogic
    private String delFlag;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgExchangeBo.java
New file
@@ -0,0 +1,143 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 交换设备业务对象 sg_exchange
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("交换设备业务对象")
public class SgExchangeBo extends BaseEntity {
    /**
     *
     */
    @ApiModelProperty(value = "", required = true)
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * 高校
     */
    @ApiModelProperty(value = "高校", required = true)
    @NotNull(message = "高校不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long schoolId;
    /**
     * 网络端口
     */
    @ApiModelProperty(value = "网络端口", required = true)
    @NotBlank(message = "网络端口不能为空", groups = { AddGroup.class, EditGroup.class })
    private String networkPort;
    /**
     * 指标A
     */
    @ApiModelProperty(value = "指标A", required = true)
    @NotBlank(message = "指标A不能为空", groups = { AddGroup.class, EditGroup.class })
    private String idnexA;
    /**
     * 级联端口
     */
    @ApiModelProperty(value = "级联端口", required = true)
    @NotBlank(message = "级联端口不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cascadePort;
    /**
     * 指标B
     */
    @ApiModelProperty(value = "指标B", required = true)
    @NotBlank(message = "指标B不能为空", groups = { AddGroup.class, EditGroup.class })
    private String indexB;
    /**
     * 安装位置
     */
    @ApiModelProperty(value = "安装位置", required = true)
    @NotNull(message = "安装位置不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long buildingId;
    /**
     * 详细地址
     */
    @ApiModelProperty(value = "详细地址")
    private String address;
    /**
     * 所属单位
     */
    @ApiModelProperty(value = "所属单位", required = true)
    @NotNull(message = "所属单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long organizationId;
    /**
     * 施工批次
     */
    @ApiModelProperty(value = "施工批次", required = true)
    @NotNull(message = "施工批次不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long constructionBatchId;
    /**
     * 序列号
     */
    @ApiModelProperty(value = "序列号")
    private String serialNumber;
    /**
     * 型号
     */
    @ApiModelProperty(value = "型号")
    private String model;
    /**
     * 生产厂商
     */
    @ApiModelProperty(value = "生产厂商")
    private Long manufacturerId;
    /**
     * 附件
     */
    private String filePath;
    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小")
    private Integer pageSize;
    /**
     * 当前页数
     */
    @ApiModelProperty("当前页数")
    private Integer pageNum;
    /**
     * 排序列
     */
    @ApiModelProperty("排序列")
    private String orderByColumn;
    /**
     * 排序的方向desc或者asc
     */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgServerBo.java
New file
@@ -0,0 +1,170 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 服务器业务对象 sg_server
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("服务器业务对象")
public class SgServerBo extends BaseEntity {
    /**
     *
     */
    @ApiModelProperty(value = "", required = true)
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * 高校
     */
    @ApiModelProperty(value = "高校", required = true)
    @NotNull(message = "高校不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long schoolId;
    /**
     * 部署名称
     */
    @ApiModelProperty(value = "部署名称", required = true)
    @NotBlank(message = "部署名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String deploymentName;
    /**
     * LAN
     */
    @ApiModelProperty(value = "LAN", required = true)
    @NotBlank(message = "LAN不能为空", groups = { AddGroup.class, EditGroup.class })
    private String lan;
    /**
     * IP
     */
    @ApiModelProperty(value = "IP", required = true)
    @NotBlank(message = "IP不能为空", groups = { AddGroup.class, EditGroup.class })
    private String ip;
    /**
     * 操作系统
     */
    @ApiModelProperty(value = "操作系统", required = true)
    @NotBlank(message = "操作系统不能为空", groups = { AddGroup.class, EditGroup.class })
    private String operatingSystem;
    /**
     * 账户
     */
    @ApiModelProperty(value = "账户", required = true)
    @NotBlank(message = "账户不能为空", groups = { AddGroup.class, EditGroup.class })
    private String account;
    /**
     * 部署位置
     */
    @ApiModelProperty(value = "部署位置", required = true)
    @NotNull(message = "部署位置不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long buildingId;
    /**
     * 机柜号
     */
    @ApiModelProperty(value = "机柜号")
    private String cabinetNumber;
    /**
     * 机架号
     */
    @ApiModelProperty(value = "机架号")
    private String rackNumber;
    /**
     * 所属单位
     */
    @ApiModelProperty(value = "所属单位", required = true)
    @NotNull(message = "所属单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long organizationId;
    /**
     * 施工批次
     */
    @ApiModelProperty(value = "施工批次", required = true)
    @NotNull(message = "施工批次不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long constructionBatchId;
    /**
     * 序列号
     */
    @ApiModelProperty(value = "序列号")
    private String serialNumber;
    /**
     * 型号
     */
    @ApiModelProperty(value = "型号")
    private String model;
    /**
     * 生产厂商
     */
    @ApiModelProperty(value = "生产厂商")
    private Long manufacturerId;
    /**
     * 性能指标
     */
    @ApiModelProperty(value = "性能指标")
    private String performanceIndex;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remarks;
    /**
     * 附件
     */
    @ApiModelProperty(value = "附件")
    private String filePath;
    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小")
    private Integer pageSize;
    /**
     * 当前页数
     */
    @ApiModelProperty("当前页数")
    private Integer pageNum;
    /**
     * 排序列
     */
    @ApiModelProperty("排序列")
    private String orderByColumn;
    /**
     * 排序的方向desc或者asc
     */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgSystemBo.java
New file
@@ -0,0 +1,133 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity;
/**
 * 软件系统业务对象 sg_system
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("软件系统业务对象")
public class SgSystemBo extends BaseEntity {
    /**
     *
     */
    @ApiModelProperty(value = "", required = true)
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * 高校
     */
    @ApiModelProperty(value = "高校", required = true)
    @NotNull(message = "高校不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long schoolId;
    /**
     * 软件名称
     */
    @ApiModelProperty(value = "软件名称", required = true)
    @NotBlank(message = "软件名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;
    /**
     * 版本
     */
    @ApiModelProperty(value = "版本", required = true)
    @NotBlank(message = "版本不能为空", groups = { AddGroup.class, EditGroup.class })
    private String edition;
    /**
     * 功能描述
     */
    @ApiModelProperty(value = "功能描述", required = true)
    @NotBlank(message = "功能描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String functionDescription;
    /**
     * 授权方式
     */
    @ApiModelProperty(value = "授权方式", required = true)
    @NotBlank(message = "授权方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String authorizationMethod;
    /**
     * 授权数量
     */
    @ApiModelProperty(value = "授权数量", required = true)
    @NotBlank(message = "授权数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private String authorizedQuantity;
    /**
     * 载体服务器
     */
    @ApiModelProperty(value = "载体服务器", required = true)
    @NotNull(message = "载体服务器不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long serverId;
    /**
     * 施工批次
     */
    @ApiModelProperty(value = "施工批次", required = true)
    @NotNull(message = "施工批次不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long constructionBatchId;
    /**
     * 生产厂商
     */
    @ApiModelProperty(value = "生产厂商")
    private Long manufacturerId;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remarks;
    /**
     * 附件
     */
    @ApiModelProperty(value = "附件")
    private String filePath;
    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小")
    private Integer pageSize;
    /**
     * 当前页数
     */
    @ApiModelProperty("当前页数")
    private Integer pageNum;
    /**
     * 排序列
     */
    @ApiModelProperty("排序列")
    private String orderByColumn;
    /**
     * 排序的方向desc或者asc
     */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgExchangeVo.java
New file
@@ -0,0 +1,132 @@
package com.ruoyi.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.Dict;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 交换设备视图对象 sg_exchange
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@ApiModel("交换设备视图对象")
@ExcelIgnoreUnannotated
public class SgExchangeVo {
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    @ExcelProperty(value = "")
    @ApiModelProperty("")
    private Long id;
    /**
     * 高校
     */
    @ExcelProperty(value = "高校")
    @ApiModelProperty("高校")
    private Long schoolId;
    /**
     * 网络端口
     */
    @ExcelProperty(value = "网络端口", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "DICT113")
    @ApiModelProperty("网络端口")
    private String networkPort;
    /**
     * 指标A
     */
    @ExcelProperty(value = "指标A", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "DICT114")
    @ApiModelProperty("指标A")
    private String idnexA;
    /**
     * 级联端口
     */
    @ExcelProperty(value = "级联端口", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "DICT113")
    @ApiModelProperty("级联端口")
    private String cascadePort;
    /**
     * 指标B
     */
    @ExcelProperty(value = "指标B", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "DICT114")
    @ApiModelProperty("指标B")
    private String indexB;
    /**
     * 安装位置
     */
    @ExcelProperty(value = "安装位置")
    @ApiModelProperty("安装位置")
    @Dict(dictTable = "bs_building", dicCode = "id", dicText = "detailed_name")
    private Long buildingId;
    /**
     * 详细地址
     */
    @ExcelProperty(value = "详细地址")
    @ApiModelProperty("详细地址")
    private String address;
    /**
     * 所属单位
     */
    @ExcelProperty(value = "所属单位")
    @ApiModelProperty("所属单位")
    @Dict(dictTable = "bs_organization", dicCode = "id", dicText = "detailed_name")
    private Long organizationId;
    /**
     * 施工批次
     */
    @ExcelProperty(value = "施工批次")
    @ApiModelProperty("施工批次")
    @Dict(dictTable = "sg_construction_batch", dicCode = "id", dicText = "batch")
    private Long constructionBatchId;
    /**
     * 序列号
     */
    @ExcelProperty(value = "序列号")
    @ApiModelProperty("序列号")
    private String serialNumber;
    /**
     * 型号
     */
    @ExcelProperty(value = "型号")
    @ApiModelProperty("型号")
    private String model;
    /**
     * 生产厂商
     */
    @ExcelProperty(value = "生产厂商")
    @ApiModelProperty("生产厂商")
    @Dict(dictTable = "dev_manufacturer", dicCode = "id", dicText = "name")
    private Long manufacturerId;
    /**
     * 附件
     */
    private String filePath;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgServerVo.java
New file
@@ -0,0 +1,160 @@
package com.ruoyi.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.Dict;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 服务器视图对象 sg_server
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@ApiModel("服务器视图对象")
@ExcelIgnoreUnannotated
public class SgServerVo {
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    @ExcelProperty(value = "")
    @ApiModelProperty("")
    private Long id;
    /**
     * 高校
     */
    @ExcelProperty(value = "高校")
    @ApiModelProperty("高校")
    private Long schoolId;
    /**
     * 部署名称
     */
    @ExcelProperty(value = "部署名称")
    @ApiModelProperty("部署名称")
    private String deploymentName;
    /**
     * LAN
     */
    @ExcelProperty(value = "LAN")
    @ApiModelProperty("LAN")
    private String lan;
    /**
     * IP
     */
    @ExcelProperty(value = "IP")
    @ApiModelProperty("IP")
    private String ip;
    /**
     * 操作系统
     */
    @ExcelProperty(value = "操作系统", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "DICT115")
    @ApiModelProperty("操作系统")
    private String operatingSystem;
    /**
     * 账户
     */
    @ExcelProperty(value = "账户")
    @ApiModelProperty("账户")
    private String account;
    /**
     * 部署位置
     */
    @ExcelProperty(value = "部署位置")
    @ApiModelProperty("部署位置")
    @Dict(dictTable = "bs_building", dicCode = "id", dicText = "detailed_name")
    private Long buildingId;
    /**
     * 机柜号
     */
    @ExcelProperty(value = "机柜号")
    @ApiModelProperty("机柜号")
    private String cabinetNumber;
    /**
     * 机架号
     */
    @ExcelProperty(value = "机架号")
    @ApiModelProperty("机架号")
    private String rackNumber;
    /**
     * 所属单位
     */
    @ExcelProperty(value = "所属单位")
    @ApiModelProperty("所属单位")
    @Dict(dictTable = "bs_organization", dicCode = "id", dicText = "detailed_name")
    private Long organizationId;
    /**
     * 施工批次
     */
    @ExcelProperty(value = "施工批次")
    @ApiModelProperty("施工批次")
    @Dict(dictTable = "sg_construction_batch", dicCode = "id", dicText = "batch")
    private Long constructionBatchId;
    /**
     * 序列号
     */
    @ExcelProperty(value = "序列号")
    @ApiModelProperty("序列号")
    private String serialNumber;
    /**
     * 型号
     */
    @ExcelProperty(value = "型号")
    @ApiModelProperty("型号")
    private String model;
    /**
     * 生产厂商
     */
    @ExcelProperty(value = "生产厂商")
    @ApiModelProperty("生产厂商")
    @Dict(dictTable = "dev_manufacturer", dicCode = "id", dicText = "name")
    private Long manufacturerId;
    /**
     * 性能指标
     */
    @ExcelProperty(value = "性能指标")
    @ApiModelProperty("性能指标")
    private String performanceIndex;
    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    @ApiModelProperty("备注")
    private String remarks;
    /**
     * 附件
     */
    @ExcelProperty(value = "附件")
    @ApiModelProperty("附件")
    private String filePath;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgSystemVo.java
New file
@@ -0,0 +1,117 @@
package com.ruoyi.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.Dict;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 软件系统视图对象 sg_system
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Data
@ApiModel("软件系统视图对象")
@ExcelIgnoreUnannotated
public class SgSystemVo {
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    @ExcelProperty(value = "")
    @ApiModelProperty("")
    private Long id;
    /**
     * 高校
     */
    @ExcelProperty(value = "高校")
    @ApiModelProperty("高校")
    private Long schoolId;
    /**
     * 软件名称
     */
    @ExcelProperty(value = "软件名称")
    @ApiModelProperty("软件名称")
    private String name;
    /**
     * 版本
     */
    @ExcelProperty(value = "版本")
    @ApiModelProperty("版本")
    private String edition;
    /**
     * 功能描述
     */
    @ExcelProperty(value = "功能描述")
    @ApiModelProperty("功能描述")
    private String functionDescription;
    /**
     * 授权方式
     */
    @ExcelProperty(value = "授权方式")
    @ApiModelProperty("授权方式")
    @Dict(dicCode = "DICT116")
    private String authorizationMethod;
    /**
     * 授权数量
     */
    @ExcelProperty(value = "授权数量")
    @ApiModelProperty("授权数量")
    private String authorizedQuantity;
    /**
     * 载体服务器
     */
    @ExcelProperty(value = "载体服务器")
    @ApiModelProperty("载体服务器")
    @Dict(dictTable = "sg_server", dicCode = "id", dicText = "deployment_name")
    private Long serverId;
    /**
     * 施工批次
     */
    @ExcelProperty(value = "施工批次")
    @ApiModelProperty("施工批次")
    @Dict(dictTable = "sg_construction_batch", dicCode = "id", dicText = "batch")
    private Long constructionBatchId;
    /**
     * 生产厂商
     */
    @ExcelProperty(value = "生产厂商")
    @ApiModelProperty("生产厂商")
    @Dict(dictTable = "dev_manufacturer", dicCode = "id", dicText = "name")
    private Long manufacturerId;
    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    @ApiModelProperty("备注")
    private String remarks;
    /**
     * 附件
     */
    @ExcelProperty(value = "附件")
    @ApiModelProperty("附件")
    private String filePath;
}
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgExchangeMapper.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SgExchange;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
/**
 * 交换设备Mapper接口
 *
 * @author ruoyi
 * @date 2022-05-13
 */
public interface SgExchangeMapper extends BaseMapperPlus<SgExchange> {
}
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgServerMapper.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SgServer;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
/**
 * 服务器Mapper接口
 *
 * @author ruoyi
 * @date 2022-05-13
 */
public interface SgServerMapper extends BaseMapperPlus<SgServer> {
}
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgSystemMapper.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.oa.mapper;
import com.ruoyi.oa.domain.SgSystem;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
/**
 * 软件系统Mapper接口
 *
 * @author ruoyi
 * @date 2022-05-13
 */
public interface SgSystemMapper extends BaseMapperPlus<SgSystem> {
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgExchangeService.java
New file
@@ -0,0 +1,56 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SgExchange;
import com.ruoyi.oa.domain.vo.SgExchangeVo;
import com.ruoyi.oa.domain.bo.SgExchangeBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
 * 交换设备Service接口
 *
 * @author ruoyi
 * @date 2022-05-13
 */
public interface ISgExchangeService extends IServicePlus<SgExchange, SgExchangeVo> {
    /**
     * 查询单个
     * @return
     */
    SgExchangeVo queryById(Long id);
    /**
     * 查询列表
     */
    TableDataInfo<SgExchangeVo> queryPageList(SgExchangeBo bo);
    /**
     * 查询列表
     */
    List<SgExchangeVo> queryList(SgExchangeBo bo);
    /**
     * 根据新增业务对象插入交换设备
     * @param bo 交换设备新增业务对象
     * @return
     */
    Boolean insertByBo(SgExchangeBo bo);
    /**
     * 根据编辑业务对象修改交换设备
     * @param bo 交换设备编辑业务对象
     * @return
     */
    Boolean updateByBo(SgExchangeBo bo);
    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgServerService.java
New file
@@ -0,0 +1,56 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SgServer;
import com.ruoyi.oa.domain.vo.SgServerVo;
import com.ruoyi.oa.domain.bo.SgServerBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
 * 服务器Service接口
 *
 * @author ruoyi
 * @date 2022-05-13
 */
public interface ISgServerService extends IServicePlus<SgServer, SgServerVo> {
    /**
     * 查询单个
     * @return
     */
    SgServerVo queryById(Long id);
    /**
     * 查询列表
     */
    TableDataInfo<SgServerVo> queryPageList(SgServerBo bo);
    /**
     * 查询列表
     */
    List<SgServerVo> queryList(SgServerBo bo);
    /**
     * 根据新增业务对象插入服务器
     * @param bo 服务器新增业务对象
     * @return
     */
    Boolean insertByBo(SgServerBo bo);
    /**
     * 根据编辑业务对象修改服务器
     * @param bo 服务器编辑业务对象
     * @return
     */
    Boolean updateByBo(SgServerBo bo);
    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgSystemService.java
New file
@@ -0,0 +1,56 @@
package com.ruoyi.oa.service;
import com.ruoyi.oa.domain.SgSystem;
import com.ruoyi.oa.domain.vo.SgSystemVo;
import com.ruoyi.oa.domain.bo.SgSystemBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
 * 软件系统Service接口
 *
 * @author ruoyi
 * @date 2022-05-13
 */
public interface ISgSystemService extends IServicePlus<SgSystem, SgSystemVo> {
    /**
     * 查询单个
     * @return
     */
    SgSystemVo queryById(Long id);
    /**
     * 查询列表
     */
    TableDataInfo<SgSystemVo> queryPageList(SgSystemBo bo);
    /**
     * 查询列表
     */
    List<SgSystemVo> queryList(SgSystemBo bo);
    /**
     * 根据新增业务对象插入软件系统
     * @param bo 软件系统新增业务对象
     * @return
     */
    Boolean insertByBo(SgSystemBo bo);
    /**
     * 根据编辑业务对象修改软件系统
     * @param bo 软件系统编辑业务对象
     * @return
     */
    Boolean updateByBo(SgSystemBo bo);
    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgExchangeServiceImpl.java
New file
@@ -0,0 +1,102 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.bo.SgExchangeBo;
import com.ruoyi.oa.domain.vo.SgExchangeVo;
import com.ruoyi.oa.domain.SgExchange;
import com.ruoyi.oa.mapper.SgExchangeMapper;
import com.ruoyi.oa.service.ISgExchangeService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * 交换设备Service业务层处理
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Service
public class SgExchangeServiceImpl extends ServicePlusImpl<SgExchangeMapper, SgExchange, SgExchangeVo> implements ISgExchangeService {
    @Override
    public SgExchangeVo queryById(Long id){
        return getVoById(id);
    }
    @Override
    public TableDataInfo<SgExchangeVo> queryPageList(SgExchangeBo bo) {
        PagePlus<SgExchange, SgExchangeVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
        return PageUtils.buildDataInfo(result);
    }
    @Override
    public List<SgExchangeVo> queryList(SgExchangeBo bo) {
        return listVo(buildQueryWrapper(bo));
    }
    private LambdaQueryWrapper<SgExchange> buildQueryWrapper(SgExchangeBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<SgExchange> lqw = Wrappers.lambdaQuery();
        lqw.eq(SgExchange::getSchoolId, bo.getSchoolId());
        lqw.eq(StringUtils.isNotBlank(bo.getNetworkPort()), SgExchange::getNetworkPort, bo.getNetworkPort());
        lqw.eq(StringUtils.isNotBlank(bo.getIdnexA()), SgExchange::getIdnexA, bo.getIdnexA());
        lqw.eq(StringUtils.isNotBlank(bo.getCascadePort()), SgExchange::getCascadePort, bo.getCascadePort());
        lqw.eq(StringUtils.isNotBlank(bo.getIndexB()), SgExchange::getIndexB, bo.getIndexB());
        lqw.eq(bo.getBuildingId() != null, SgExchange::getBuildingId, bo.getBuildingId());
        lqw.eq(bo.getOrganizationId() != null, SgExchange::getOrganizationId, bo.getOrganizationId());
        lqw.eq(bo.getConstructionBatchId() != null, SgExchange::getConstructionBatchId, bo.getConstructionBatchId());
        lqw.eq(bo.getManufacturerId() != null, SgExchange::getManufacturerId, bo.getManufacturerId());
        lqw.like(bo.getModel() != null, SgExchange::getModel, bo.getModel());
        lqw.orderByDesc(SgExchange::getUpdateTime);
        return lqw;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean insertByBo(SgExchangeBo bo) {
        SgExchange add = BeanUtil.toBean(bo, SgExchange.class);
        validEntityBeforeSave(add);
        boolean flag = save(add);
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean updateByBo(SgExchangeBo bo) {
        SgExchange update = BeanUtil.toBean(bo, SgExchange.class);
        validEntityBeforeSave(update);
        return updateById(update);
    }
    /**
     * 保存前的数据校验
     *
     * @param entity 实体类数据
     */
    private void validEntityBeforeSave(SgExchange entity){
        //TODO 做一些数据校验,如唯一约束
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO 做一些业务上的校验,判断是否需要校验
        }
        return removeByIds(ids);
    }
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgServerServiceImpl.java
New file
@@ -0,0 +1,127 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.bo.SgServerBo;
import com.ruoyi.oa.domain.vo.SgServerVo;
import com.ruoyi.oa.domain.SgServer;
import com.ruoyi.oa.mapper.SgServerMapper;
import com.ruoyi.oa.service.ISgServerService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * 服务器Service业务层处理
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Service
public class SgServerServiceImpl extends ServicePlusImpl<SgServerMapper, SgServer, SgServerVo> implements ISgServerService {
    @Override
    public SgServerVo queryById(Long id) {
        return getVoById(id);
    }
    @Override
    public TableDataInfo<SgServerVo> queryPageList(SgServerBo bo) {
        PagePlus<SgServer, SgServerVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
        return PageUtils.buildDataInfo(result);
    }
    @Override
    public List<SgServerVo> queryList(SgServerBo bo) {
        return listVo(buildQueryWrapper(bo));
    }
    private LambdaQueryWrapper<SgServer> buildQueryWrapper(SgServerBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<SgServer> lqw = Wrappers.lambdaQuery();
        lqw.eq(bo.getBuildingId() != null, SgServer::getBuildingId, bo.getBuildingId());
        lqw.eq(bo.getOrganizationId() != null, SgServer::getOrganizationId, bo.getOrganizationId());
        lqw.eq(bo.getConstructionBatchId() != null, SgServer::getConstructionBatchId, bo.getConstructionBatchId());
        lqw.eq(StringUtils.isNotBlank(bo.getModel()), SgServer::getModel, bo.getModel());
        lqw.eq(bo.getManufacturerId() != null, SgServer::getManufacturerId, bo.getManufacturerId());
        lqw.eq(SgServer::getSchoolId, bo.getSchoolId());
        lqw.like(StringUtils.isNotBlank(bo.getDeploymentName()), SgServer::getDeploymentName, bo.getDeploymentName());
        lqw.orderByDesc(SgServer::getUpdateTime);
        return lqw;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean insertByBo(SgServerBo bo) {
        List<SgServer> list = baseMapper.selectList(new LambdaQueryWrapper<SgServer>()
            .eq(SgServer::getDeploymentName, bo.getDeploymentName())
            .eq(SgServer::getSchoolId, bo.getSchoolId()));
        if (list.size() > 0) {
            throw new ServiceException("部署名称重复", HttpStatus.HTTP_PARTIAL);
        }
        List<SgServer> lanList = baseMapper.selectList(new LambdaQueryWrapper<SgServer>()
            .eq(SgServer::getLan, bo.getLan())
            .eq(SgServer::getSchoolId, bo.getSchoolId()));
        if (lanList.size() > 0) {
            throw new ServiceException("LAN重复", HttpStatus.HTTP_PARTIAL);
        }
        SgServer add = BeanUtil.toBean(bo, SgServer.class);
        validEntityBeforeSave(add);
        boolean flag = save(add);
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean updateByBo(SgServerBo bo) {
        List<SgServer> list = baseMapper.selectList(new LambdaQueryWrapper<SgServer>()
            .eq(SgServer::getDeploymentName, bo.getDeploymentName())
            .eq(SgServer::getSchoolId, bo.getSchoolId())
            .ne(SgServer::getId, bo.getId()));
        if (list.size() > 0) {
            throw new ServiceException("部署名称重复", HttpStatus.HTTP_PARTIAL);
        }
        List<SgServer> lanList = baseMapper.selectList(new LambdaQueryWrapper<SgServer>()
            .eq(SgServer::getLan, bo.getLan())
            .eq(SgServer::getSchoolId, bo.getSchoolId())
            .ne(SgServer::getId, bo.getId()));
        if (lanList.size() > 0) {
            throw new ServiceException("LAN重复", HttpStatus.HTTP_PARTIAL);
        }
        SgServer update = BeanUtil.toBean(bo, SgServer.class);
        validEntityBeforeSave(update);
        return updateById(update);
    }
    /**
     * 保存前的数据校验
     *
     * @param entity 实体类数据
     */
    private void validEntityBeforeSave(SgServer entity) {
        //TODO 做一些数据校验,如唯一约束
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if (isValid) {
            //TODO 做一些业务上的校验,判断是否需要校验
        }
        return removeByIds(ids);
    }
}
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgSystemServiceImpl.java
New file
@@ -0,0 +1,93 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.bo.SgSystemBo;
import com.ruoyi.oa.domain.vo.SgSystemVo;
import com.ruoyi.oa.domain.SgSystem;
import com.ruoyi.oa.mapper.SgSystemMapper;
import com.ruoyi.oa.service.ISgSystemService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * 软件系统Service业务层处理
 *
 * @author ruoyi
 * @date 2022-05-13
 */
@Service
public class SgSystemServiceImpl extends ServicePlusImpl<SgSystemMapper, SgSystem, SgSystemVo> implements ISgSystemService {
    @Override
    public SgSystemVo queryById(Long id){
        return getVoById(id);
    }
    @Override
    public TableDataInfo<SgSystemVo> queryPageList(SgSystemBo bo) {
        PagePlus<SgSystem, SgSystemVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
        return PageUtils.buildDataInfo(result);
    }
    @Override
    public List<SgSystemVo> queryList(SgSystemBo bo) {
        return listVo(buildQueryWrapper(bo));
    }
    private LambdaQueryWrapper<SgSystem> buildQueryWrapper(SgSystemBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<SgSystem> lqw = Wrappers.lambdaQuery();
        lqw.eq(SgSystem::getSchoolId, bo.getSchoolId());
        lqw.like(StringUtils.isNotBlank(bo.getName()), SgSystem::getName, bo.getName());
        lqw.eq(bo.getServerId() != null, SgSystem::getServerId, bo.getServerId());
        lqw.eq(bo.getConstructionBatchId() != null, SgSystem::getConstructionBatchId, bo.getConstructionBatchId());
        lqw.eq(bo.getManufacturerId() != null, SgSystem::getManufacturerId, bo.getManufacturerId());
        lqw.orderByDesc(SgSystem::getUpdateTime);
        return lqw;
    }
    @Override
    public Boolean insertByBo(SgSystemBo bo) {
        SgSystem add = BeanUtil.toBean(bo, SgSystem.class);
        validEntityBeforeSave(add);
        boolean flag = save(add);
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    @Override
    public Boolean updateByBo(SgSystemBo bo) {
        SgSystem update = BeanUtil.toBean(bo, SgSystem.class);
        validEntityBeforeSave(update);
        return updateById(update);
    }
    /**
     * 保存前的数据校验
     *
     * @param entity 实体类数据
     */
    private void validEntityBeforeSave(SgSystem entity){
        //TODO 做一些数据校验,如唯一约束
    }
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO 做一些业务上的校验,判断是否需要校验
        }
        return removeByIds(ids);
    }
}
ruoyi-oa/src/main/resources/mapper/oa/SgExchangeMapper.xml
New file
@@ -0,0 +1,29 @@
<?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.ruoyi.oa.mapper.SgExchangeMapper">
    <resultMap type="com.ruoyi.oa.domain.SgExchange" id="SgExchangeResult">
        <result property="id" column="id"/>
        <result property="schoolId" column="school_id"/>
        <result property="networkPort" column="network_port"/>
        <result property="idnexA" column="idnex_a"/>
        <result property="cascadePort" column="cascade_port"/>
        <result property="indexB" column="index_b"/>
        <result property="buildingId" column="building_id"/>
        <result property="address" column="address"/>
        <result property="organizationId" column="organization_id"/>
        <result property="constructionBatchId" column="construction_batch_id"/>
        <result property="serialNumber" column="serial_number"/>
        <result property="model" column="model"/>
        <result property="manufacturerId" column="manufacturer_id"/>
        <result property="createTime" column="create_time"/>
        <result property="createBy" column="create_by"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
    </resultMap>
</mapper>
ruoyi-oa/src/main/resources/mapper/oa/SgServerMapper.xml
New file
@@ -0,0 +1,34 @@
<?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.ruoyi.oa.mapper.SgServerMapper">
    <resultMap type="com.ruoyi.oa.domain.SgServer" id="SgServerResult">
        <result property="id" column="id"/>
        <result property="schoolId" column="school_id"/>
        <result property="deploymentName" column="deployment_name"/>
        <result property="lan" column="lan"/>
        <result property="ip" column="ip"/>
        <result property="operatingSystem" column="operating_system"/>
        <result property="account" column="account"/>
        <result property="buildingId" column="building_id"/>
        <result property="cabinetNumber" column="cabinet_number"/>
        <result property="rackNumber" column="rack_number"/>
        <result property="organizationId" column="organization_id"/>
        <result property="constructionBatchId" column="construction_batch_id"/>
        <result property="serialNumber" column="serial_number"/>
        <result property="model" column="model"/>
        <result property="manufacturerId" column="manufacturer_id"/>
        <result property="performanceIndex" column="performance_index"/>
        <result property="remarks" column="remarks"/>
        <result property="filePath" column="file_path"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
    </resultMap>
</mapper>
ruoyi-oa/src/main/resources/mapper/oa/SgSystemMapper.xml
New file
@@ -0,0 +1,28 @@
<?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.ruoyi.oa.mapper.SgSystemMapper">
    <resultMap type="com.ruoyi.oa.domain.SgSystem" id="SgSystemResult">
        <result property="id" column="id"/>
        <result property="schoolId" column="school_id"/>
        <result property="name" column="name"/>
        <result property="edition" column="edition"/>
        <result property="functionDescription" column="function_description"/>
        <result property="authorizationMethod" column="authorization_method"/>
        <result property="authorizedQuantity" column="authorized_quantity"/>
        <result property="serverId" column="server_id"/>
        <result property="constructionBatchId" column="construction_batch_id"/>
        <result property="manufacturerId" column="manufacturer_id"/>
        <result property="remarks" column="remarks"/>
        <result property="filePath" column="file_path"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
    </resultMap>
</mapper>