From e667b280a7fd77dd7fad81c66dba2cef9936d422 Mon Sep 17 00:00:00 2001
From: 唐耀东 <18861537@qq.com>
Date: 星期六, 16 七月 2022 13:18:45 +0800
Subject: [PATCH] 提交代码

---
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgNvrBo.java                      |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsRulesController.java    |  116 +++++++++
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgAi.java                            |    6 
 ruoyi-oa/src/main/resources/mapper/oa/BsRulesMapper.xml                         |   21 +
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgNvr.java                           |    5 
 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsOrganizationServiceImpl.java |   12 +
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgServer.java                        |   11 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsRulesBo.java                    |   86 +++++++
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsRules.java                         |   53 ++++
 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsBuildingServiceImpl.java     |   12 +
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgReserveIpBo.java                |    1 
 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsRulesServiceImpl.java        |  109 +++++++++
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevManufacturerBo.java            |    9 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgIpcController.java      |    6 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIpc.java                           |    5 
 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsRulesService.java                |   56 ++++
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevManufacturer.java                 |   10 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgSystemBo.java                   |    8 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIot.java                           |    8 
 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgIpcServiceImpl.java          |   16 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgExchange.java                      |    4 
 ruoyi-admin/src/main/resources/application-prod.yml                             |    8 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgIpcBo.java                      |    2 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevManufacturerVo.java            |    8 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgSystemVo.java                   |    4 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgSystem.java                        |   12 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgConstructionBatchVo.java        |    4 
 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsRulesMapper.java                   |   14 +
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgIpcVo.java                      |    1 
 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsRulesVo.java                    |   70 +++++
 30 files changed, 654 insertions(+), 25 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsRulesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsRulesController.java
new file mode 100644
index 0000000..168269a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsRulesController.java
@@ -0,0 +1,116 @@
+package com.ruoyi.web.controller.oa;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+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.BsRulesVo;
+import com.ruoyi.oa.domain.bo.BsRulesBo;
+import com.ruoyi.oa.service.IBsRulesService;
+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-07-03
+ */
+@Validated
+@Api(value = "瑙勭珷鍒跺害鎺у埗鍣�", tags = {"瑙勭珷鍒跺害绠$悊"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/oa/rules")
+public class BsRulesController extends BaseController {
+
+    private final IBsRulesService iBsRulesService;
+
+    /**
+     * 鏌ヨ瑙勭珷鍒跺害鍒楄〃
+     */
+    @ApiOperation("鏌ヨ瑙勭珷鍒跺害鍒楄〃")
+//    @PreAuthorize("@ss.hasPermi('oa:rules:list')")
+    @GetMapping("/list")
+    public TableDataInfo<BsRulesVo> list(@Validated(QueryGroup.class) BsRulesBo bo) {
+        return iBsRulesService.queryPageList(bo);
+    }
+
+    /**
+     * 瀵煎嚭瑙勭珷鍒跺害鍒楄〃
+     */
+    @ApiOperation("瀵煎嚭瑙勭珷鍒跺害鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('oa:rules:export')")
+    @Log(title = "瑙勭珷鍒跺害", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated BsRulesBo bo, HttpServletResponse response) {
+        List<BsRulesVo> list = iBsRulesService.queryList(bo);
+        ExcelUtil.exportExcel(list, "瑙勭珷鍒跺害", BsRulesVo.class, response);
+    }
+
+    /**
+     * 鑾峰彇瑙勭珷鍒跺害璇︾粏淇℃伅
+     */
+    @ApiOperation("鑾峰彇瑙勭珷鍒跺害璇︾粏淇℃伅")
+//    @PreAuthorize("@ss.hasPermi('oa:rules:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<BsRulesVo> getInfo(@ApiParam("涓婚敭")
+                                                  @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iBsRulesService.queryById(id));
+    }
+
+    /**
+     * 鏂板瑙勭珷鍒跺害
+     */
+    @ApiOperation("鏂板瑙勭珷鍒跺害")
+//    @PreAuthorize("@ss.hasPermi('oa:rules:add')")
+    @Log(title = "瑙勭珷鍒跺害", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody BsRulesBo bo) {
+        return toAjax(iBsRulesService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 淇敼瑙勭珷鍒跺害
+     */
+    @ApiOperation("淇敼瑙勭珷鍒跺害")
+//    @PreAuthorize("@ss.hasPermi('oa:rules:edit')")
+    @Log(title = "瑙勭珷鍒跺害", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody BsRulesBo bo) {
+        return toAjax(iBsRulesService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 鍒犻櫎瑙勭珷鍒跺害
+     */
+    @ApiOperation("鍒犻櫎瑙勭珷鍒跺害")
+//    @PreAuthorize("@ss.hasPermi('oa:rules:remove')")
+    @Log(title = "瑙勭珷鍒跺害" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@ApiParam("涓婚敭涓�")
+                                       @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iBsRulesService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgIpcController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgIpcController.java
index 1b14155..bb871c4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgIpcController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgIpcController.java
@@ -84,12 +84,12 @@
     }
 
     /**
-     * 鑾峰彇ipc璁惧璇︾粏淇℃伅
+     * 鑾峰彇涓婁竴鏉′俊鎭�
      */
-    @ApiOperation("鑾峰彇ipc璁惧璇︾粏淇℃伅")
+    @ApiOperation("鑾峰彇涓婁竴鏉′俊鎭�")
     @GetMapping("/copy")
     public AjaxResult copy() {
-        List<SgIpc> list = iSgIpcService.list(new LambdaQueryWrapper<SgIpc>().orderByDesc(SgIpc::getUpdateTime));
+        List<SgIpc> list = iSgIpcService.list(new LambdaQueryWrapper<SgIpc>().orderByDesc(SgIpc::getCreateTime));
         if (list.size() == 0) {
             throw new ServiceException("鏆傛棤鏁版嵁", HttpStatus.HTTP_PARTIAL);
         }
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index 33ec4ab..ee2774c 100644
--- a/ruoyi-admin/src/main/resources/application-prod.yml
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -58,9 +58,9 @@
         # 涓诲簱鏁版嵁婧�
         master:
           driverClassName: com.mysql.cj.jdbc.Driver
-          url: jdbc:mysql://101.35.174.42:3308/ytsl_oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+          url: jdbc:mysql://localhost:3307/ytsl_oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
           username: root
-          password: oa1234..
+          password: Yuntsl@0815
         # 浠庡簱鏁版嵁婧�
         slave:
           lazy: true
@@ -120,13 +120,13 @@
 spring:
   redis:
     # 鍦板潃
-    host: 101.35.174.42
+    host: localhost
     # 绔彛锛岄粯璁や负6379
     port: 6378
     # 鏁版嵁搴撶储寮�
     database: 0
     # 瀵嗙爜
-    password: oa123456..
+    password:
     # 杩炴帴瓒呮椂鏃堕棿
     timeout: 10s
     # 鏄惁寮�鍚痵sl
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsRules.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsRules.java
new file mode 100644
index 0000000..585217a
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/BsRules.java
@@ -0,0 +1,53 @@
+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;
+
+/**
+ * 瑙勭珷鍒跺害瀵硅薄 bs_rules
+ *
+ * @author ruoyi
+ * @date 2022-07-03
+ */
+@Data
+@Accessors(chain = true)
+@TableName("bs_rules")
+public class BsRules extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 瑙勭珷鍒跺害
+     */
+    private String rules;
+    /**
+     * 鍙戝竷鐗堟湰
+     */
+    private String versionCode;
+    /**
+     * 淇鏃ユ湡
+     */
+    private String reviseTime;
+    /**
+     * 闄勪欢
+     */
+    private String fileUrl;
+    /**
+     * 鍒犻櫎鏍囪瘑
+     */
+    @TableLogic
+    private String delFlag;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevManufacturer.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevManufacturer.java
index fa78ccf..3f79710 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevManufacturer.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevManufacturer.java
@@ -49,9 +49,17 @@
      */
     private String contactAddress;
     /**
-     * 
+     *
      */
     @Version
     private Integer version;
+    /**
+     * 鑱旂郴浜�
+     */
+    private String contactBy;
 
+    /**
+     * 澶囨敞
+     */
+    private String remarks;
 }
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgAi.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgAi.java
index 86f0884..c8a487f 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgAi.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgAi.java
@@ -51,14 +51,17 @@
     /**
      * LAN2
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String lanTwo;
     /**
      * IP2
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String ipTwo;
     /**
      * 鐧诲綍璐︽埛
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String loginAccount;
     /**
      * 瀹夎浣嶇疆
@@ -75,14 +78,17 @@
     /**
      * 搴忓垪鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String serialNumber;
     /**
      * 鍨嬪彿
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String model;
     /**
      * 鐢熶骇鍘傚晢
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long manufacturerId;
     /**
      *
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgExchange.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgExchange.java
index 401ef9c..7fbcf04 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgExchange.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgExchange.java
@@ -55,6 +55,7 @@
     /**
      * 璇︾粏鍦板潃
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String address;
     /**
      * 鎵�灞炲崟浣�
@@ -67,14 +68,17 @@
     /**
      * 搴忓垪鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String serialNumber;
     /**
      * 鍨嬪彿
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String model;
     /**
      * 鐢熶骇鍘傚晢
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long manufacturerId;
     /**
      * 闄勪欢
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIot.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIot.java
index 4d5472d..018e9a7 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIot.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIot.java
@@ -63,34 +63,42 @@
     /**
      * 搴忓垪鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String serialNumber;
     /**
      * 鍨嬪彿
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String model;
     /**
      * 鐢熶骇鍘傚晢
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long manufacturerId;
     /**
      * 鐩戞帶瀵硅薄
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String monitorObject;
     /**
      * 閫氶亾1
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long passagewayOne;
     /**
      * 閫氶亾2
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long passagewayTwo;
     /**
      * 閫氶亾3
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long passagewayThree;
     /**
      * 閫氶亾4
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long passagewayFour;
     /**
      *
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIpc.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIpc.java
index 7be1bdc..1a8c748 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIpc.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgIpc.java
@@ -51,10 +51,12 @@
     /**
      * nvr
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long nvrId;
     /**
      * 閫氶亾
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String passageway;
     /**
      * 瀹夎浣嶇疆
@@ -71,14 +73,17 @@
     /**
      * 搴忓垪鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String serialNumber;
     /**
      * 鍨嬪彿
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String model;
     /**
      * 鐢熶骇鍘傚晢
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long manufacturerId;
     /**
      *
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgNvr.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgNvr.java
index 47677e9..2ed191a 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgNvr.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgNvr.java
@@ -43,10 +43,12 @@
     /**
      * LAN1
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String lanOne;
     /**
      * ip1
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String ipOne;
     /**
      * LAN2
@@ -79,14 +81,17 @@
     /**
      * 搴忓垪鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String serialNumber;
     /**
      * 鍨嬪彿
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String model;
     /**
      * 鐢熶骇鍘傚晢
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long manufacturerId;
     /**
      * 闄勪欢
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgServer.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgServer.java
index b2d8264..bb9cac7 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgServer.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgServer.java
@@ -24,7 +24,7 @@
     private static final long serialVersionUID=1L;
 
     /**
-     * 
+     *
      */
     @TableId(value = "id")
     private Long id;
@@ -59,10 +59,12 @@
     /**
      * 鏈烘煖鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String cabinetNumber;
     /**
      * 鏈烘灦鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String rackNumber;
     /**
      * 鎵�灞炲崟浣�
@@ -75,29 +77,34 @@
     /**
      * 搴忓垪鍙�
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String serialNumber;
     /**
      * 鍨嬪彿
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String model;
     /**
      * 鐢熶骇鍘傚晢
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long manufacturerId;
     /**
      * 鎬ц兘鎸囨爣
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String performanceIndex;
     /**
      * 澶囨敞
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String remarks;
     /**
      * 闄勪欢
      */
     private String filePath;
     /**
-     * 
+     *
      */
     @TableLogic
     private String delFlag;
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgSystem.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgSystem.java
index a7ff012..462e4fb 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgSystem.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgSystem.java
@@ -1,6 +1,7 @@
 package com.ruoyi.oa.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -24,7 +25,7 @@
     private static final long serialVersionUID=1L;
 
     /**
-     * 
+     *
      */
     @TableId(value = "id")
     private Long id;
@@ -63,19 +64,26 @@
     /**
      * 鐢熶骇鍘傚晢
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long manufacturerId;
     /**
      * 澶囨敞
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String remarks;
     /**
      * 闄勪欢
      */
     private String filePath;
     /**
-     * 
+     *
      */
     @TableLogic
     private String delFlag;
 
+    @ApiModelProperty(value = "璐︽埛")
+    private String account;
+
+    @ApiModelProperty(value = "璁块棶鍦板潃")
+    private String address;
 }
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsRulesBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsRulesBo.java
new file mode 100644
index 0000000..b75f8fc
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/BsRulesBo.java
@@ -0,0 +1,86 @@
+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;
+
+/**
+ * 瑙勭珷鍒跺害涓氬姟瀵硅薄 bs_rules
+ *
+ * @author ruoyi
+ * @date 2022-07-03
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("瑙勭珷鍒跺害涓氬姟瀵硅薄")
+public class BsRulesBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @ApiModelProperty(value = "", required = true)
+    @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 瑙勭珷鍒跺害
+     */
+    @ApiModelProperty(value = "瑙勭珷鍒跺害", required = true)
+    @NotBlank(message = "瑙勭珷鍒跺害涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String rules;
+
+    /**
+     * 鍙戝竷鐗堟湰
+     */
+    @ApiModelProperty(value = "鍙戝竷鐗堟湰", required = true)
+    @NotBlank(message = "鍙戝竷鐗堟湰涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String versionCode;
+
+    /**
+     * 淇鏃ユ湡
+     */
+    @ApiModelProperty(value = "淇鏃ユ湡", required = true)
+    @NotBlank(message = "淇鏃ユ湡涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String reviseTime;
+
+    /**
+     * 闄勪欢
+     */
+    @ApiModelProperty(value = "闄勪欢")
+    private String fileUrl;
+
+
+    /**
+     * 鍒嗛〉澶у皬
+     */
+    @ApiModelProperty("鍒嗛〉澶у皬")
+    private Integer pageSize;
+
+    /**
+     * 褰撳墠椤垫暟
+     */
+    @ApiModelProperty("褰撳墠椤垫暟")
+    private Integer pageNum;
+
+    /**
+     * 鎺掑簭鍒�
+     */
+    @ApiModelProperty("鎺掑簭鍒�")
+    private String orderByColumn;
+
+    /**
+     * 鎺掑簭鐨勬柟鍚慸esc鎴栬�卆sc
+     */
+    @ApiModelProperty(value = "鎺掑簭鐨勬柟鍚�", example = "asc,desc")
+    private String isAsc;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevManufacturerBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevManufacturerBo.java
index 921b868..d9e7964 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevManufacturerBo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevManufacturerBo.java
@@ -62,6 +62,15 @@
      */
     @ApiModelProperty(value = "鑱旂郴鍦板潃")
     private String contactAddress;
+    /**
+     * 鑱旂郴浜�
+     */
+    private String contactBy;
+
+    /**
+     * 澶囨敞
+     */
+    private String remarks;
 
 
     /**
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgIpcBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgIpcBo.java
index 4f05ff9..6174dc2 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgIpcBo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgIpcBo.java
@@ -1,5 +1,7 @@
 package com.ruoyi.oa.domain.bo;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import io.swagger.annotations.ApiModel;
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgNvrBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgNvrBo.java
index 5586967..65fb336 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgNvrBo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgNvrBo.java
@@ -52,14 +52,12 @@
      * LAN1
      */
     @ApiModelProperty(value = "LAN1", required = true)
-    @NotBlank(message = "LAN1涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private String lanOne;
 
     /**
      * ip1
      */
     @ApiModelProperty(value = "ip1", required = true)
-    @NotBlank(message = "IP1涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private String ipOne;
 
     /**
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgReserveIpBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgReserveIpBo.java
index 539fb5d..e0d311a 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgReserveIpBo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgReserveIpBo.java
@@ -45,7 +45,6 @@
      * MAC鍦板潃
      */
     @ApiModelProperty(value = "MAC鍦板潃", required = true)
-    @NotBlank(message = "MAC鍦板潃涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private String mac;
 
     /**
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgSystemBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgSystemBo.java
index 38d28b9..9c34ad5 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgSystemBo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgSystemBo.java
@@ -25,7 +25,7 @@
 public class SgSystemBo extends BaseEntity {
 
     /**
-     * 
+     *
      */
     @ApiModelProperty(value = "", required = true)
     @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class })
@@ -105,6 +105,12 @@
     @ApiModelProperty(value = "闄勪欢")
     private String filePath;
 
+    @ApiModelProperty(value = "璐︽埛")
+    private String account;
+
+    @ApiModelProperty(value = "璁块棶鍦板潃")
+    private String address;
+
 
     /**
      * 鍒嗛〉澶у皬
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsRulesVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsRulesVo.java
new file mode 100644
index 0000000..575db1b
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/BsRulesVo.java
@@ -0,0 +1,70 @@
+package com.ruoyi.oa.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+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;
+
+
+
+/**
+ * 瑙勭珷鍒跺害瑙嗗浘瀵硅薄 bs_rules
+ *
+ * @author ruoyi
+ * @date 2022-07-03
+ */
+@Data
+@ApiModel("瑙勭珷鍒跺害瑙嗗浘瀵硅薄")
+@ExcelIgnoreUnannotated
+public class BsRulesVo {
+
+	private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+	@ExcelProperty(value = "")
+	@ApiModelProperty("")
+	private Long id;
+
+    /**
+     * 瑙勭珷鍒跺害
+     */
+	@ExcelProperty(value = "瑙勭珷鍒跺害")
+	@ApiModelProperty("瑙勭珷鍒跺害")
+	private String rules;
+
+    /**
+     * 鍙戝竷鐗堟湰
+     */
+	@ExcelProperty(value = "鍙戝竷鐗堟湰")
+	@ApiModelProperty("鍙戝竷鐗堟湰")
+	private String versionCode;
+
+    /**
+     * 淇鏃ユ湡
+     */
+	@ExcelProperty(value = "淇鏃ユ湡")
+	@ApiModelProperty("淇鏃ユ湡")
+	private String reviseTime;
+
+    /**
+     * 闄勪欢
+     */
+	@ExcelProperty(value = "闄勪欢")
+	@ApiModelProperty("闄勪欢")
+	private String fileUrl;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+	@ExcelProperty(value = "鍒涘缓鏃堕棿")
+	@ApiModelProperty("鍒涘缓鏃堕棿")
+	private Date createTime;
+
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevManufacturerVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevManufacturerVo.java
index eeb3489..8212131 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevManufacturerVo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevManufacturerVo.java
@@ -66,5 +66,13 @@
 	@ApiModelProperty("鑱旂郴鍦板潃")
 	private String contactAddress;
 
+    /**
+     * 鑱旂郴浜�
+     */
+    private String contactBy;
 
+    /**
+     * 澶囨敞
+     */
+    private String remarks;
 }
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgConstructionBatchVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgConstructionBatchVo.java
index 25ad811..c850044 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgConstructionBatchVo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgConstructionBatchVo.java
@@ -48,7 +48,7 @@
      */
 	@ExcelProperty(value = "寮�濮嬫棩鏈�")
 	@ApiModelProperty("寮�濮嬫棩鏈�")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd")
 	private Date startDate;
 
     /**
@@ -56,7 +56,7 @@
      */
 	@ExcelProperty(value = "缁撴潫鏃ユ湡")
 	@ApiModelProperty("缁撴潫鏃ユ湡")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @JsonFormat(pattern="yyyy-MM-dd")
 	private Date endDate;
 
     /**
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgIpcVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgIpcVo.java
index fcf0cc0..3659949 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgIpcVo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgIpcVo.java
@@ -76,7 +76,6 @@
      */
 	@ExcelProperty(value = "閫氶亾")
 	@ApiModelProperty("閫氶亾")
-    @Dict(dicCode = "DICT109")
 	private String passageway;
 
     /**
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgSystemVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgSystemVo.java
index fc966d9..c8f733a 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgSystemVo.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgSystemVo.java
@@ -113,5 +113,9 @@
 	@ApiModelProperty("闄勪欢")
 	private String filePath;
 
+    @ApiModelProperty(value = "璐︽埛")
+    private String account;
 
+    @ApiModelProperty(value = "璁块棶鍦板潃")
+    private String address;
 }
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsRulesMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsRulesMapper.java
new file mode 100644
index 0000000..c0d57ef
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/BsRulesMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.oa.mapper;
+
+import com.ruoyi.oa.domain.BsRules;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+/**
+ * 瑙勭珷鍒跺害Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2022-07-03
+ */
+public interface BsRulesMapper extends BaseMapperPlus<BsRules> {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsRulesService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsRulesService.java
new file mode 100644
index 0000000..6a30921
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IBsRulesService.java
@@ -0,0 +1,56 @@
+package com.ruoyi.oa.service;
+
+import com.ruoyi.oa.domain.BsRules;
+import com.ruoyi.oa.domain.vo.BsRulesVo;
+import com.ruoyi.oa.domain.bo.BsRulesBo;
+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-07-03
+ */
+public interface IBsRulesService extends IServicePlus<BsRules, BsRulesVo> {
+	/**
+	 * 鏌ヨ鍗曚釜
+	 * @return
+	 */
+	BsRulesVo queryById(Long id);
+
+	/**
+	 * 鏌ヨ鍒楄〃
+	 */
+    TableDataInfo<BsRulesVo> queryPageList(BsRulesBo bo);
+
+	/**
+	 * 鏌ヨ鍒楄〃
+	 */
+	List<BsRulesVo> queryList(BsRulesBo bo);
+
+	/**
+	 * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆瑙勭珷鍒跺害
+	 * @param bo 瑙勭珷鍒跺害鏂板涓氬姟瀵硅薄
+	 * @return
+	 */
+	Boolean insertByBo(BsRulesBo bo);
+
+	/**
+	 * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼瑙勭珷鍒跺害
+	 * @param bo 瑙勭珷鍒跺害缂栬緫涓氬姟瀵硅薄
+	 * @return
+	 */
+	Boolean updateByBo(BsRulesBo bo);
+
+	/**
+	 * 鏍¢獙骞跺垹闄ゆ暟鎹�
+	 * @param ids 涓婚敭闆嗗悎
+	 * @param isValid 鏄惁鏍¢獙,true-鍒犻櫎鍓嶆牎楠�,false-涓嶆牎楠�
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsBuildingServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsBuildingServiceImpl.java
index dc33b85..f8e571f 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsBuildingServiceImpl.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsBuildingServiceImpl.java
@@ -63,6 +63,11 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean insertByBo(BsBuildingBo bo) {
+        List<BsBuilding> list = baseMapper.selectList(new LambdaQueryWrapper<BsBuilding>()
+            .eq(BsBuilding::getSchoolId, bo.getSchoolId()).eq(BsBuilding::getCode, bo.getCode()));
+        if (list.size() > 0) {
+            throw new ServiceException("鍗曞厓缂栧彿閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
         BsBuilding add = BeanUtil.toBean(bo, BsBuilding.class);
         if (bo.getParentId() == Long.valueOf(0)) {
             BsSchool school = schoolMapper.selectById(bo.getSchoolId());
@@ -83,6 +88,13 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateByBo(BsBuildingBo bo) {
+        List<BsBuilding> list = baseMapper.selectList(new LambdaQueryWrapper<BsBuilding>()
+            .ne(BsBuilding::getId, bo.getId())
+            .eq(BsBuilding::getSchoolId, bo.getSchoolId())
+            .eq(BsBuilding::getCode, bo.getCode()));
+        if (list.size() > 0) {
+            throw new ServiceException("鍗曞厓缂栧彿閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
         BsBuilding update = BeanUtil.toBean(bo, BsBuilding.class);
         if (bo.getParentId() == Long.valueOf(0)) {
             BsSchool school = schoolMapper.selectById(bo.getSchoolId());
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsOrganizationServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsOrganizationServiceImpl.java
index b3460e4..f3eb210 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsOrganizationServiceImpl.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsOrganizationServiceImpl.java
@@ -57,6 +57,11 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean insertByBo(BsOrganizationBo bo) {
+        List<BsOrganization> list = baseMapper.selectList(new LambdaQueryWrapper<BsOrganization>()
+            .eq(BsOrganization::getSchoolId, bo.getSchoolId()).eq(BsOrganization::getCode, bo.getCode()));
+        if (list.size() > 0) {
+            throw new ServiceException("鏈烘瀯缂栧彿閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
         BsOrganization add = BeanUtil.toBean(bo, BsOrganization.class);
         if (bo.getParentId() == Long.valueOf(0)) {
             BsSchool school = schoolMapper.selectById(bo.getSchoolId());
@@ -77,6 +82,13 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateByBo(BsOrganizationBo bo) {
+        List<BsOrganization> list = baseMapper.selectList(new LambdaQueryWrapper<BsOrganization>()
+            .ne(BsOrganization::getId, bo.getId())
+            .eq(BsOrganization::getSchoolId, bo.getSchoolId())
+            .eq(BsOrganization::getCode, bo.getCode()));
+        if (list.size() > 0) {
+            throw new ServiceException("鏈烘瀯缂栧彿閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
         BsOrganization update = BeanUtil.toBean(bo, BsOrganization.class);
         if (bo.getParentId() == Long.valueOf(0)) {
             BsSchool school = schoolMapper.selectById(bo.getSchoolId());
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsRulesServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsRulesServiceImpl.java
new file mode 100644
index 0000000..238f2ab
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/BsRulesServiceImpl.java
@@ -0,0 +1,109 @@
+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.BsRulesBo;
+import com.ruoyi.oa.domain.vo.BsRulesVo;
+import com.ruoyi.oa.domain.BsRules;
+import com.ruoyi.oa.mapper.BsRulesMapper;
+import com.ruoyi.oa.service.IBsRulesService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 瑙勭珷鍒跺害Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2022-07-03
+ */
+@Service
+public class BsRulesServiceImpl extends ServicePlusImpl<BsRulesMapper, BsRules, BsRulesVo> implements IBsRulesService {
+
+    @Override
+    public BsRulesVo queryById(Long id) {
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<BsRulesVo> queryPageList(BsRulesBo bo) {
+        PagePlus<BsRules, BsRulesVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<BsRulesVo> queryList(BsRulesBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<BsRules> buildQueryWrapper(BsRulesBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<BsRules> lqw = Wrappers.lambdaQuery();
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(BsRulesBo bo) {
+        List<BsRules> list = baseMapper.selectList(new LambdaQueryWrapper<BsRules>().eq(BsRules::getRules, bo.getRules()));
+        if (list.size() > 0) {
+            throw new ServiceException("瑙勭珷鍒跺害閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
+        List<BsRules> vList = baseMapper.selectList(new LambdaQueryWrapper<BsRules>().eq(BsRules::getVersionCode, bo.getVersionCode()));
+        if (vList.size() > 0) {
+            throw new ServiceException("鍙戝竷鐗堟湰閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
+        BsRules add = BeanUtil.toBean(bo, BsRules.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(BsRulesBo bo) {
+        List<BsRules> list = baseMapper.selectList(new LambdaQueryWrapper<BsRules>()
+            .eq(BsRules::getRules, bo.getRules())
+            .ne(BsRules::getId, bo.getId()));
+        if (list.size() > 0) {
+            throw new ServiceException("瑙勭珷鍒跺害閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
+        List<BsRules> vList = baseMapper.selectList(new LambdaQueryWrapper<BsRules>()
+            .eq(BsRules::getVersionCode, bo.getVersionCode())
+            .ne(BsRules::getId, bo.getId()));
+        if (vList.size() > 0) {
+            throw new ServiceException("鍙戝竷鐗堟湰閲嶅", HttpStatus.HTTP_PARTIAL);
+        }
+        BsRules update = BeanUtil.toBean(bo, BsRules.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     *
+     * @param entity 瀹炰綋绫绘暟鎹�
+     */
+    private void validEntityBeforeSave(BsRules entity) {
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+        }
+        return removeByIds(ids);
+    }
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgIpcServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgIpcServiceImpl.java
index 203eda0..46b03bd 100644
--- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgIpcServiceImpl.java
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgIpcServiceImpl.java
@@ -74,9 +74,11 @@
         if (list.size() > 0) {
             throw new ServiceException("MAC閲嶅", HttpStatus.HTTP_PARTIAL);
         }
-        SgNvr nvr = nvrMapper.selectById(bo.getNvrId());
-        if (!bo.getOrganizationId().equals(nvr.getOrganizationId())) {
-            throw new ServiceException("IPC鎵�灞炲崟浣嶄笌鎵�閫塏VR鎵�灞炲崟浣嶄笉绗�", HttpStatus.HTTP_PARTIAL);
+        if (null != bo.getNvrId()) {
+            SgNvr nvr = nvrMapper.selectById(bo.getNvrId());
+            if (!bo.getOrganizationId().equals(nvr.getOrganizationId())) {
+                throw new ServiceException("IPC鎵�灞炲崟浣嶄笌鎵�閫塏VR鎵�灞炲崟浣嶄笉绗�", HttpStatus.HTTP_PARTIAL);
+            }
         }
         SgIpc add = BeanUtil.toBean(bo, SgIpc.class);
         validEntityBeforeSave(add);
@@ -97,9 +99,11 @@
         if (list.size() > 0) {
             throw new ServiceException("MAC閲嶅", HttpStatus.HTTP_PARTIAL);
         }
-        SgNvr nvr = nvrMapper.selectById(bo.getNvrId());
-        if (!bo.getOrganizationId().equals(nvr.getOrganizationId())) {
-            throw new ServiceException("IPC鎵�灞炲崟浣嶄笌鎵�閫塏VR鎵�灞炲崟浣嶄笉绗�", HttpStatus.HTTP_PARTIAL);
+        if (null != bo.getNvrId()) {
+            SgNvr nvr = nvrMapper.selectById(bo.getNvrId());
+            if (!bo.getOrganizationId().equals(nvr.getOrganizationId())) {
+                throw new ServiceException("IPC鎵�灞炲崟浣嶄笌鎵�閫塏VR鎵�灞炲崟浣嶄笉绗�", HttpStatus.HTTP_PARTIAL);
+            }
         }
         SgIpc update = BeanUtil.toBean(bo, SgIpc.class);
         validEntityBeforeSave(update);
diff --git a/ruoyi-oa/src/main/resources/mapper/oa/BsRulesMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/BsRulesMapper.xml
new file mode 100644
index 0000000..149eb22
--- /dev/null
+++ b/ruoyi-oa/src/main/resources/mapper/oa/BsRulesMapper.xml
@@ -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.ruoyi.oa.mapper.BsRulesMapper">
+
+    <resultMap type="com.ruoyi.oa.domain.BsRules" id="BsRulesResult">
+        <result property="id" column="id"/>
+        <result property="rules" column="rules"/>
+        <result property="versionCode" column="version_code"/>
+        <result property="reviseTime" column="revise_time"/>
+        <result property="fileUrl" column="file_url"/>
+        <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>

--
Gitblit v1.9.1