From eeeddf0836a5a5aa03a3342d34318c7202313e93 Mon Sep 17 00:00:00 2001
From: 唐耀东 <18861537@qq.com>
Date: 星期四, 09 十二月 2021 15:02:30 +0800
Subject: [PATCH] 提交代码
---
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevPeripheralUnitVo.java | 98 +
ruoyi-common/src/main/java/com/ruoyi/common/enums/OaEnums.java | 64 +
ruoyi-common/src/main/java/com/ruoyi/common/enums/EquipmentLog.java | 43
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevPeripheralUnitService.java | 56 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentCodeController.java | 23
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevBatchMapper.java | 14
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentCodeBo.java | 66 +
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentVo.java | 118 ++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ExternaController.java | 117 ++
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentCode.java | 36
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevPeripheralUnitController.java | 116 ++
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentCodeVo.java | 42
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java | 33
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevBatchService.java | 56 +
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java | 20
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevBatchVo.java | 65 +
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentBo.java | 134 ++
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentServiceImpl.java | 167 +++
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentLogBo.java | 110 ++
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentLogMapper.java | 14
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentLogService.java | 56 +
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevPeripheralUnitMapper.java | 14
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevBatchServiceImpl.java | 91 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentLogController.java | 116 ++
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentCodeServiceImpl.java | 19
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/EquipmentLogDTO.java | 62 +
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevPeripheralUnit.java | 82 +
ruoyi-admin/src/main/resources/application-prod.yml | 8
ruoyi-common/src/main/java/com/ruoyi/common/core/service/EquipmentService.java | 13
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentLog.java | 66 +
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentLogVo.java | 86 +
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevBatchBo.java | 102 +
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 14
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentService.java | 60 +
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 6
ruoyi-oa/src/main/resources/mapper/oa/DevPeripheralUnitMapper.xml | 28
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentCodeMapper.java | 16
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsSchoolController.java | 10
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentMapper.java | 14
ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java | 11
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipment.java | 86 +
ruoyi-oa/src/main/resources/mapper/oa/DevBatchMapper.xml | 22
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml | 6
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevPeripheralUnitServiceImpl.java | 103 +
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 18
ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentCodeService.java | 15
ruoyi-oa/src/main/resources/mapper/oa/DevEquipmentMapper.xml | 29
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentLogServiceImpl.java | 107 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 7
ruoyi-common/src/main/java/com/ruoyi/common/enums/LogType.java | 18
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentController.java | 119 ++
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java | 26
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevPeripheralUnitBo.java | 128 ++
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevBatch.java | 60 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevBatchController.java | 127 ++
56 files changed, 3,128 insertions(+), 13 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ExternaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ExternaController.java
new file mode 100644
index 0000000..533a94e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ExternaController.java
@@ -0,0 +1,117 @@
+package com.ruoyi.web.controller.common;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.enums.EquipmentLog;
+import com.ruoyi.common.enums.LogType;
+import com.ruoyi.oa.domain.BsSchool;
+import com.ruoyi.oa.domain.DevBatch;
+import com.ruoyi.oa.domain.DevPeripheralUnit;
+import com.ruoyi.oa.domain.bo.DevEquipmentBo;
+import com.ruoyi.oa.service.IBsSchoolService;
+import com.ruoyi.oa.service.IDevBatchService;
+import com.ruoyi.oa.service.IDevEquipmentService;
+import com.ruoyi.oa.service.IDevPeripheralUnitService;
+import com.ruoyi.system.service.ISysDictDataService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鏅烘帶璁惧Controller
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+@Validated
+@Api(value = "澶栭儴鎺ュ彛", tags = {"澶栭儴鎺ュ彛"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/externa")
+public class ExternaController {
+
+ private final ISysDictDataService dictDataService;
+
+ private final IDevPeripheralUnitService iDevPeripheralUnitService;
+
+ private final IDevBatchService iDevBatchService;
+
+ private final IBsSchoolService iBsSchoolService;
+
+ private final IDevEquipmentService iDevEquipmentService;
+
+ /**
+ * 鍩虹淇℃伅
+ */
+ @ApiOperation("鍩虹淇℃伅")
+ @Log(type = LogType.EQUIPMENT_LOG, operation = EquipmentLog.LOAD)
+ @GetMapping
+ public AjaxResult externalAdd() {
+
+ // 鏅烘帶璁惧绫诲瀷
+ List<SysDictData> dict1 = dictDataService.list(new QueryWrapper<SysDictData>().lambda().eq(SysDictData::getDictType, "DICT101"));
+ // 尾缃戠粶宸ヤ綔棰戞
+ List<SysDictData> dict2 = dictDataService.list(new QueryWrapper<SysDictData>().lambda().eq(SysDictData::getDictType, "DICT102"));
+ // 涓插彛閫氫俊娉㈢壒鐜�
+ List<SysDictData> dict3 = dictDataService.list(new QueryWrapper<SysDictData>().lambda().eq(SysDictData::getDictType, "DICT103"));
+ // 鍦ㄧ敤鐘舵��
+ List<SysDictData> dict4 = dictDataService.list(new QueryWrapper<SysDictData>().lambda().eq(SysDictData::getDictType, "DICT104"));
+ // 鍔炲灞傛
+ List<SysDictData> dict5 = dictDataService.list(new QueryWrapper<SysDictData>().lambda().eq(SysDictData::getDictType, "DICT105"));
+ // 瀛︾鑼冨洿
+ List<SysDictData> dict6 = dictDataService.list(new QueryWrapper<SysDictData>().lambda().eq(SysDictData::getDictType, "DICT106"));
+ // 閲囬泦鍛ㄦ湡
+ List<SysDictData> dict7 = dictDataService.list(new QueryWrapper<SysDictData>().lambda().eq(SysDictData::getDictType, "DICT107"));
+ // 澶栬鍗曞厓
+ List<DevPeripheralUnit> peripheralUnit = iDevPeripheralUnitService.list(new QueryWrapper<DevPeripheralUnit>());
+ // 鎵规
+ List<DevBatch> batch = iDevBatchService.list(new QueryWrapper<DevBatch>());
+ // 楂樻牎
+ List<BsSchool> school = iBsSchoolService.list(new QueryWrapper<BsSchool>());
+ Map<String, Object> map = new HashMap<>();
+ map.put("DICT101", dict1);
+ map.put("DICT102", dict2);
+ map.put("DICT103", dict3);
+ map.put("DICT104", dict4);
+ map.put("DICT105", dict5);
+ map.put("DICT106", dict6);
+ map.put("DICT107", dict7);
+ map.put("peripheralUnit", peripheralUnit);
+ map.put("batch", batch);
+ map.put("school", school);
+ return AjaxResult.success(map);
+ }
+
+ /**
+ * 鏂板鏅烘帶璁惧
+ */
+ @ApiOperation("鏂板鏅烘帶璁惧")
+ @Log(type = LogType.EQUIPMENT_LOG, operation = EquipmentLog.WRITE)
+ @RepeatSubmit()
+ @PostMapping("/equipment")
+ public AjaxResult equipmentAdd(@Validated(AddGroup.class) @RequestBody DevEquipmentBo bo) {
+ return AjaxResult.success(iDevEquipmentService.externalAdd(bo));
+ }
+
+ /**
+ * 缂栬緫鏅烘帶璁惧
+ */
+ @ApiOperation("鏂板鏅烘帶璁惧锛堝閮ㄨ皟鐢�-鍘绘帀鏉冮檺锛�")
+ @RepeatSubmit()
+ @Log(type = LogType.EQUIPMENT_LOG, operation = EquipmentLog.SUBMIT_COMMENT)
+ @PutMapping("/equipment")
+ public AjaxResult equipmentEdit(@Validated(AddGroup.class) @RequestBody DevEquipmentBo bo) {
+ return AjaxResult.success(iDevEquipmentService.equipmentEdit(bo));
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsSchoolController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsSchoolController.java
index eb87d3f..385e851 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsSchoolController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/BsSchoolController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.oa;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.annotation.DataDictClass;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
@@ -56,6 +57,15 @@
}
/**
+ * 瀛︽牎涓嬫媺鍒楄〃
+ */
+ @ApiOperation("瀛︽牎涓嬫媺鍒楄〃")
+ @GetMapping("/select")
+ public AjaxResult selectList() {
+ return AjaxResult.success(iBsSchoolService.list(new QueryWrapper<>()));
+ }
+
+ /**
* 瀵煎嚭瀛︽牎鍒楄〃
*/
@ApiOperation("瀵煎嚭瀛︽牎鍒楄〃")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevBatchController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevBatchController.java
new file mode 100644
index 0000000..84b158d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevBatchController.java
@@ -0,0 +1,127 @@
+package com.ruoyi.web.controller.oa;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.enums.EquipmentLog;
+import com.ruoyi.common.enums.LogType;
+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.DevBatchVo;
+import com.ruoyi.oa.domain.bo.DevBatchBo;
+import com.ruoyi.oa.service.IDevBatchService;
+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 2021-12-05
+ */
+@Validated
+@Api(value = "鐢熶骇鎵规鎺у埗鍣�", tags = {"鐢熶骇鎵规绠$悊"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/oa/batch")
+public class DevBatchController extends BaseController {
+
+ private final IDevBatchService iDevBatchService;
+
+ /**
+ * 鏌ヨ鐢熶骇鎵规鍒楄〃
+ */
+ @ApiOperation("鏌ヨ鐢熶骇鎵规鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:batch:list')")
+ @GetMapping("/list")
+ public TableDataInfo<DevBatchVo> list(@Validated(QueryGroup.class) DevBatchBo bo) {
+ return iDevBatchService.queryPageList(bo);
+ }
+
+ /**
+ * 鐢熶骇鎵规涓嬫媺鍒楄〃
+ */
+ @ApiOperation("鐢熶骇鎵规涓嬫媺鍒楄〃")
+ @GetMapping("/select")
+ public AjaxResult selectList() {
+ return AjaxResult.success(iDevBatchService.list(new QueryWrapper<>()));
+ }
+
+ /**
+ * 瀵煎嚭鐢熶骇鎵规鍒楄〃
+ */
+ @ApiOperation("瀵煎嚭鐢熶骇鎵规鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:batch:export')")
+ @Log(title = "鐢熶骇鎵规", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ public void export(@Validated DevBatchBo bo, HttpServletResponse response) {
+ List<DevBatchVo> list = iDevBatchService.queryList(bo);
+ ExcelUtil.exportExcel(list, "鐢熶骇鎵规", DevBatchVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇鐢熶骇鎵规璇︾粏淇℃伅
+ */
+ @ApiOperation("鑾峰彇鐢熶骇鎵规璇︾粏淇℃伅")
+ @PreAuthorize("@ss.hasPermi('oa:batch:query')")
+ @GetMapping("/{id}")
+ public AjaxResult<DevBatchVo> getInfo(@ApiParam("涓婚敭")
+ @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable("id") Long id) {
+ return AjaxResult.success(iDevBatchService.queryById(id));
+ }
+
+ /**
+ * 鏂板鐢熶骇鎵规
+ */
+ @ApiOperation("鏂板鐢熶骇鎵规")
+ @PreAuthorize("@ss.hasPermi('oa:batch:add')")
+ @Log(title = "鐢熶骇鎵规", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody DevBatchBo bo) {
+ return toAjax(iDevBatchService.insertByBo(bo) ? 1 : 0);
+ }
+
+ /**
+ * 淇敼鐢熶骇鎵规
+ */
+ @ApiOperation("淇敼鐢熶骇鎵规")
+ @PreAuthorize("@ss.hasPermi('oa:batch:edit')")
+ @Log(title = "鐢熶骇鎵规", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody DevBatchBo bo) {
+ return toAjax(iDevBatchService.updateByBo(bo) ? 1 : 0);
+ }
+
+ /**
+ * 鍒犻櫎鐢熶骇鎵规
+ */
+ @ApiOperation("鍒犻櫎鐢熶骇鎵规")
+ @PreAuthorize("@ss.hasPermi('oa:batch:remove')")
+ @Log(title = "鐢熶骇鎵规" , businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult<Void> remove(@ApiParam("涓婚敭涓�")
+ @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] ids) {
+ return toAjax(iDevBatchService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentCodeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentCodeController.java
new file mode 100644
index 0000000..907ba84
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentCodeController.java
@@ -0,0 +1,23 @@
+package com.ruoyi.web.controller.oa;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.core.controller.BaseController;
+import io.swagger.annotations.Api;
+
+/**
+ * 璁惧搴忓垪鍙风淮鎶ontroller
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Validated
+@Api(value = "璁惧搴忓垪鍙风淮鎶ゆ帶鍒跺櫒", tags = {"璁惧搴忓垪鍙风淮鎶ょ鐞�"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/oa/equipmentCode")
+public class DevEquipmentCodeController extends BaseController {
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentController.java
new file mode 100644
index 0000000..539d17e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentController.java
@@ -0,0 +1,119 @@
+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.DevEquipmentVo;
+import com.ruoyi.oa.domain.bo.DevEquipmentBo;
+import com.ruoyi.oa.service.IDevEquipmentService;
+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 2021-12-05
+ */
+@Validated
+@Api(value = "鏅烘帶璁惧鎺у埗鍣�", tags = {"鏅烘帶璁惧绠$悊"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/oa/equipment")
+public class DevEquipmentController extends BaseController {
+
+ private final IDevEquipmentService iDevEquipmentService;
+
+ /**
+ * 鏌ヨ鏅烘帶璁惧鍒楄〃
+ */
+ @ApiOperation("鏌ヨ鏅烘帶璁惧鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:equipment:list')")
+ @GetMapping("/list")
+ @DataDictClass
+ public TableDataInfo<DevEquipmentVo> list(@Validated(QueryGroup.class) DevEquipmentBo bo) {
+ return iDevEquipmentService.queryPageList(bo);
+ }
+
+ /**
+ * 瀵煎嚭鏅烘帶璁惧鍒楄〃
+ */
+ @ApiOperation("瀵煎嚭鏅烘帶璁惧鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:equipment:export')")
+ @Log(title = "鏅烘帶璁惧", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ public void export(@Validated DevEquipmentBo bo, HttpServletResponse response) {
+ List<DevEquipmentVo> list = iDevEquipmentService.queryList(bo);
+ ExcelUtil.exportExcel(list, "鏅烘帶璁惧", DevEquipmentVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇鏅烘帶璁惧璇︾粏淇℃伅
+ */
+ @ApiOperation("鑾峰彇鏅烘帶璁惧璇︾粏淇℃伅")
+ @PreAuthorize("@ss.hasPermi('oa:equipment:query')")
+ @GetMapping("/{id}")
+ public AjaxResult<DevEquipmentVo> getInfo(@ApiParam("涓婚敭")
+ @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable("id") Long id) {
+ return AjaxResult.success(iDevEquipmentService.queryById(id));
+ }
+
+// /**
+// * 鏂板鏅烘帶璁惧
+// */
+// @ApiOperation("鏂板鏅烘帶璁惧")
+// @PreAuthorize("@ss.hasPermi('oa:equipment:add')")
+// @Log(title = "鏅烘帶璁惧", businessType = BusinessType.INSERT)
+// @RepeatSubmit()
+// @PostMapping()
+// public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody DevEquipmentBo bo) {
+// return toAjax(iDevEquipmentService.insertByBo(bo) ? 1 : 0);
+// }
+
+
+ /**
+ * 淇敼鏅烘帶璁惧
+ */
+ @ApiOperation("淇敼鏅烘帶璁惧")
+ @PreAuthorize("@ss.hasPermi('oa:equipment:edit')")
+ @Log(title = "鏅烘帶璁惧", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody DevEquipmentBo bo) {
+ return toAjax(iDevEquipmentService.updateByBo(bo) ? 1 : 0);
+ }
+
+ /**
+ * 鍒犻櫎鏅烘帶璁惧
+ */
+ @ApiOperation("鍒犻櫎鏅烘帶璁惧")
+ @PreAuthorize("@ss.hasPermi('oa:equipment:remove')")
+ @Log(title = "鏅烘帶璁惧" , businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult<Void> remove(@ApiParam("涓婚敭涓�")
+ @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] ids) {
+ return toAjax(iDevEquipmentService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentLogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentLogController.java
new file mode 100644
index 0000000..ccb0bc3
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevEquipmentLogController.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.DevEquipmentLogVo;
+import com.ruoyi.oa.domain.bo.DevEquipmentLogBo;
+import com.ruoyi.oa.service.IDevEquipmentLogService;
+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 2021-12-08
+ */
+@Validated
+@Api(value = "璁惧鑱旀満鏃ュ織鎺у埗鍣�", tags = {"璁惧鑱旀満鏃ュ織绠$悊"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/oa/equipmentLog")
+public class DevEquipmentLogController extends BaseController {
+
+ private final IDevEquipmentLogService iDevEquipmentLogService;
+
+ /**
+ * 鏌ヨ璁惧鑱旀満鏃ュ織鍒楄〃
+ */
+ @ApiOperation("鏌ヨ璁惧鑱旀満鏃ュ織鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:equipmentLog:list')")
+ @GetMapping("/list")
+ public TableDataInfo<DevEquipmentLogVo> list(@Validated(QueryGroup.class) DevEquipmentLogBo bo) {
+ return iDevEquipmentLogService.queryPageList(bo);
+ }
+
+ /**
+ * 瀵煎嚭璁惧鑱旀満鏃ュ織鍒楄〃
+ */
+ @ApiOperation("瀵煎嚭璁惧鑱旀満鏃ュ織鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:equipmentLog:export')")
+ @Log(title = "璁惧鑱旀満鏃ュ織", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ public void export(@Validated DevEquipmentLogBo bo, HttpServletResponse response) {
+ List<DevEquipmentLogVo> list = iDevEquipmentLogService.queryList(bo);
+ ExcelUtil.exportExcel(list, "璁惧鑱旀満鏃ュ織", DevEquipmentLogVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇璁惧鑱旀満鏃ュ織璇︾粏淇℃伅
+ */
+ @ApiOperation("鑾峰彇璁惧鑱旀満鏃ュ織璇︾粏淇℃伅")
+ @PreAuthorize("@ss.hasPermi('oa:equipmentLog:query')")
+ @GetMapping("/{id}")
+ public AjaxResult<DevEquipmentLogVo> getInfo(@ApiParam("涓婚敭")
+ @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable("id") Long id) {
+ return AjaxResult.success(iDevEquipmentLogService.queryById(id));
+ }
+
+ /**
+ * 鏂板璁惧鑱旀満鏃ュ織
+ */
+ @ApiOperation("鏂板璁惧鑱旀満鏃ュ織")
+ @PreAuthorize("@ss.hasPermi('oa:equipmentLog:add')")
+ @Log(title = "璁惧鑱旀満鏃ュ織", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody DevEquipmentLogBo bo) {
+ return toAjax(iDevEquipmentLogService.insertByBo(bo) ? 1 : 0);
+ }
+
+ /**
+ * 淇敼璁惧鑱旀満鏃ュ織
+ */
+ @ApiOperation("淇敼璁惧鑱旀満鏃ュ織")
+ @PreAuthorize("@ss.hasPermi('oa:equipmentLog:edit')")
+ @Log(title = "璁惧鑱旀満鏃ュ織", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody DevEquipmentLogBo bo) {
+ return toAjax(iDevEquipmentLogService.updateByBo(bo) ? 1 : 0);
+ }
+
+ /**
+ * 鍒犻櫎璁惧鑱旀満鏃ュ織
+ */
+ @ApiOperation("鍒犻櫎璁惧鑱旀満鏃ュ織")
+ @PreAuthorize("@ss.hasPermi('oa:equipmentLog:remove')")
+ @Log(title = "璁惧鑱旀満鏃ュ織" , businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult<Void> remove(@ApiParam("涓婚敭涓�")
+ @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] ids) {
+ return toAjax(iDevEquipmentLogService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevPeripheralUnitController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevPeripheralUnitController.java
new file mode 100644
index 0000000..fddc5cc
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/DevPeripheralUnitController.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.DevPeripheralUnitVo;
+import com.ruoyi.oa.domain.bo.DevPeripheralUnitBo;
+import com.ruoyi.oa.service.IDevPeripheralUnitService;
+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 2021-12-06
+ */
+@Validated
+@Api(value = "澶栬鍗曞厓鎺у埗鍣�", tags = {"澶栬鍗曞厓绠$悊"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/oa/peripheralUnit")
+public class DevPeripheralUnitController extends BaseController {
+
+ private final IDevPeripheralUnitService iDevPeripheralUnitService;
+
+ /**
+ * 鏌ヨ澶栬鍗曞厓鍒楄〃
+ */
+ @ApiOperation("鏌ヨ澶栬鍗曞厓鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:peripheralUnit:list')")
+ @GetMapping("/list")
+ public TableDataInfo<DevPeripheralUnitVo> list(@Validated(QueryGroup.class) DevPeripheralUnitBo bo) {
+ return iDevPeripheralUnitService.queryPageList(bo);
+ }
+
+ /**
+ * 瀵煎嚭澶栬鍗曞厓鍒楄〃
+ */
+ @ApiOperation("瀵煎嚭澶栬鍗曞厓鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('oa:peripheralUnit:export')")
+ @Log(title = "澶栬鍗曞厓", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ public void export(@Validated DevPeripheralUnitBo bo, HttpServletResponse response) {
+ List<DevPeripheralUnitVo> list = iDevPeripheralUnitService.queryList(bo);
+ ExcelUtil.exportExcel(list, "澶栬鍗曞厓", DevPeripheralUnitVo.class, response);
+ }
+
+ /**
+ * 鑾峰彇澶栬鍗曞厓璇︾粏淇℃伅
+ */
+ @ApiOperation("鑾峰彇澶栬鍗曞厓璇︾粏淇℃伅")
+ @PreAuthorize("@ss.hasPermi('oa:peripheralUnit:query')")
+ @GetMapping("/{id}")
+ public AjaxResult<DevPeripheralUnitVo> getInfo(@ApiParam("涓婚敭")
+ @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable("id") Long id) {
+ return AjaxResult.success(iDevPeripheralUnitService.queryById(id));
+ }
+
+ /**
+ * 鏂板澶栬鍗曞厓
+ */
+ @ApiOperation("鏂板澶栬鍗曞厓")
+ @PreAuthorize("@ss.hasPermi('oa:peripheralUnit:add')")
+ @Log(title = "澶栬鍗曞厓", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody DevPeripheralUnitBo bo) {
+ return toAjax(iDevPeripheralUnitService.insertByBo(bo) ? 1 : 0);
+ }
+
+ /**
+ * 淇敼澶栬鍗曞厓
+ */
+ @ApiOperation("淇敼澶栬鍗曞厓")
+ @PreAuthorize("@ss.hasPermi('oa:peripheralUnit:edit')")
+ @Log(title = "澶栬鍗曞厓", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody DevPeripheralUnitBo bo) {
+ return toAjax(iDevPeripheralUnitService.updateByBo(bo) ? 1 : 0);
+ }
+
+ /**
+ * 鍒犻櫎澶栬鍗曞厓
+ */
+ @ApiOperation("鍒犻櫎澶栬鍗曞厓")
+ @PreAuthorize("@ss.hasPermi('oa:peripheralUnit:remove')")
+ @Log(title = "澶栬鍗曞厓" , businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult<Void> remove(@ApiParam("涓婚敭涓�")
+ @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] ids) {
+ return toAjax(iDevPeripheralUnitService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 194c993..307ab4d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -3,6 +3,8 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
@@ -63,6 +65,16 @@
return userService.selectPageUserList(user);
}
+ /**
+ * 鏈烘瀯鎴愬憳锛堟棤鏉冮檺锛�
+ */
+ @ApiOperation("鑾峰彇鐢ㄦ埛鍒楄〃")
+ @GetMapping("/byDept")
+ public AjaxResult byDept(@RequestParam Long deptId, @RequestParam int pageNum, @RequestParam int pageSize) {
+ Page<SysUser> page = new Page<SysUser>(pageNum, pageSize);
+ return AjaxResult.success(userService.pageList(page, deptId));
+ }
+
@ApiOperation("瀵煎嚭鐢ㄦ埛鍒楄〃")
@Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:user:export')")
@@ -75,7 +87,6 @@
SysUserExportVo vo = listVo.get(i);
if (ObjectUtil.isNotEmpty(dept)) {
vo.setDeptName(dept.getDeptName());
- vo.setLeader(dept.getLeader());
}
}
ExcelUtil.exportExcel(listVo, "鐢ㄦ埛鏁版嵁", SysUserExportVo.class, response);
@@ -228,4 +239,9 @@
userService.insertUserAuth(userId, roleIds);
return success();
}
+
+ @GetMapping("/select")
+ public AjaxResult selectList() {
+ return AjaxResult.success(userService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getStatus, 0)));
+ }
}
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index 1d680d7..c88d932 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://172.30.0.36:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+ url: jdbc:mysql://47.95.0.46:3307/ytsl_oa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
username: root
- password: root
+ password: test1214
# 浠庡簱鏁版嵁婧�
slave:
lazy: true
@@ -120,13 +120,13 @@
spring:
redis:
# 鍦板潃
- host: 172.30.0.48
+ host: 47.95.0.46
# 绔彛锛岄粯璁や负6379
port: 6379
# 鏁版嵁搴撶储寮�
database: 0
# 瀵嗙爜
- password:
+ password: test
# 杩炴帴瓒呮椂鏃堕棿
timeout: 10s
# 鏄惁寮�鍚痵sl
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java
index 32c39a3..1242287 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java
@@ -1,6 +1,8 @@
package com.ruoyi.common.annotation;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.enums.EquipmentLog;
+import com.ruoyi.common.enums.LogType;
import com.ruoyi.common.enums.OperatorType;
import java.lang.annotation.*;
@@ -14,6 +16,10 @@
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log {
+ /**
+ * 绫诲瀷锛�01绯荤粺鏃ュ織02鑱旀満鏃ュ織锛�
+ */
+ LogType type() default LogType.SYS_LOG;
/**
* 妯″潡
*/
@@ -38,4 +44,9 @@
* 鏄惁淇濆瓨鍝嶅簲鐨勫弬鏁�
*/
boolean isSaveResponseData() default true;
+
+ /**
+ * 鑱旀満-鎿嶄綔琛屼负
+ */
+ EquipmentLog operation() default EquipmentLog.LOAD;
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/EquipmentLogDTO.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/EquipmentLogDTO.java
new file mode 100644
index 0000000..1577a9b
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/EquipmentLogDTO.java
@@ -0,0 +1,62 @@
+package com.ruoyi.common.core.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * 璁惧鑱旀満鏃ュ織瀵硅薄 dev_equipment_log
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Data
+@Accessors(chain = true)
+@TableName("dev_equipment_log")
+public class EquipmentLogDTO {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id")
+ private Long id;
+ /**
+ * 鎿嶄綔琛屼负
+ */
+ private Integer operation;
+ /**
+ * 鐢ㄦ埛璐﹀彿
+ */
+ private String userName;
+ /**
+ * 鐢ㄦ埛鍚嶇О
+ */
+ private String nickName;
+ /**
+ * ip
+ */
+ private String ip;
+ /**
+ * 鑱旀満鍦扮偣
+ */
+ private String loginLocation;
+ /**
+ * 0鎴愬姛1澶辫触
+ */
+ private Integer status;
+ /**
+ * 閿欒淇℃伅
+ */
+ private String errorMsg;
+ /**
+ * 鑱旀満鏃堕棿
+ */
+ private Date loginTime;
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
index 17ff660..d9627cd 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -1,5 +1,6 @@
package com.ruoyi.common.core.domain.entity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -35,6 +36,12 @@
@TableId(value = "dept_id")
private Long deptId;
+ /**
+ * 鏈烘瀯缂栧彿
+ */
+ @ApiModelProperty(value = "鏈烘瀯缂栧彿")
+ private String code;
+
/**
* 閮ㄩ棬鍚嶇О
*/
@@ -51,10 +58,30 @@
private String orderNum;
/**
- * 璐熻矗浜�
+ * 涓昏礋璐d汉
*/
- @ApiModelProperty(value = "璐熻矗浜�")
- private String leader;
+ @ApiModelProperty(value = "涓昏礋璐d汉")
+ private Long leader;
+
+ @ApiModelProperty(value = "涓昏礋璐d汉濮撳悕")
+ @TableField(exist = false)
+ private String leaderName;
+
+ @ApiModelProperty(value = "鍓礋璐d汉濮撳悕")
+ @TableField(exist = false)
+ private String leaderAssistantName;
+
+ /**
+ * 鍓礋璐d汉
+ */
+ @ApiModelProperty(value = "鍓礋璐d汉")
+ private Long leaderAssistant;
+
+ /**
+ * 鏈烘瀯鑱岃兘
+ */
+ @ApiModelProperty(value = "鏈烘瀯鑱岃兘")
+ private String remarks;
/**
* 鑱旂郴鐢佃瘽
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 2fa57f5..51f973d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -1,6 +1,7 @@
package com.ruoyi.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.core.domain.BaseEntity;
@@ -133,6 +134,25 @@
@ApiModelProperty(value = "澶囨敞")
private String remark;
+ /**
+ * 璇佷欢鍙风爜
+ */
+ @ApiModelProperty(value = "璇佷欢鍙风爜")
+ private String certificateNo;
+
+ /**
+ * 鐓х墖
+ */
+ @ApiModelProperty(value = "鐓х墖")
+ private String photo;
+
+ /**
+ * 鍏ヨ亴鏃堕棿
+ */
+ @ApiModelProperty(value = "鍏ヨ亴鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date entryTime;
+
/**
* 閮ㄩ棬瀵硅薄
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/EquipmentService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/EquipmentService.java
new file mode 100644
index 0000000..29c5c37
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/EquipmentService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.common.core.service;
+
+import com.ruoyi.common.core.domain.dto.EquipmentLogDTO;
+
+/**
+ * 閫氱敤 鑱旀満璁块棶鏃ュ織
+ *
+ * @author Lion Li
+ */
+public interface EquipmentService {
+
+ void recordOper(EquipmentLogDTO dto);
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/EquipmentLog.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/EquipmentLog.java
new file mode 100644
index 0000000..8654f50
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/EquipmentLog.java
@@ -0,0 +1,43 @@
+package com.ruoyi.common.enums;
+/**
+ * 鎿嶄綔琛屼负
+ *
+ * @author ruoyi
+ */
+public enum EquipmentLog {
+
+ /**
+ * 鐧诲綍
+ */
+ LOGIN,
+
+ /**
+ * 鍔犺浇
+ */
+ LOAD,
+
+ /**
+ * 鏍¢獙
+ */
+ CHECK,
+
+ /**
+ * 鍐欏叆
+ */
+ WRITE,
+
+ /**
+ * 鎻愪氦澶囨敞
+ */
+ SUBMIT_COMMENT,
+
+ /**
+ * 澶嶄綅
+ */
+ RESET,
+
+ /**
+ * 鎺ㄥ嚭
+ */
+ SIGN_OUT
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LogType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LogType.java
new file mode 100644
index 0000000..6b6127b
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LogType.java
@@ -0,0 +1,18 @@
+package com.ruoyi.common.enums;
+
+/**
+ * 鏃ュ織绫诲瀷
+ *
+ * @author ruoyi
+ */
+public enum LogType {
+
+ /**
+ * 绯荤粺鏃ュ織
+ */
+ SYS_LOG,
+ /**
+ * 璁惧鏃ュ織
+ */
+ EQUIPMENT_LOG,
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/OaEnums.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OaEnums.java
new file mode 100644
index 0000000..a6703b1
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OaEnums.java
@@ -0,0 +1,64 @@
+package com.ruoyi.common.enums;
+
+import lombok.Getter;
+
+/**
+ * <p>
+ * 鏋氫妇绫�
+ * </p>
+ *
+ * @author ruoyi
+ */
+public class OaEnums {
+
+ /**
+ * 鑱旀満鏃ュ織
+ */
+ @Getter
+ public enum EquipmentLog {
+ /**
+ * 鐧诲綍
+ */
+ LOGIN("01", "鐧诲綍"),
+
+ /**
+ * 鍔犺浇
+ */
+ LOAD("02", "鐧诲綍"),
+
+ /**
+ * 鍔犺浇
+ */
+ CHECK("03", "鐧诲綍"),
+
+ /**
+ * 鍐欏叆
+ */
+ WRITE("04", "鐧诲綍"),
+
+ /**
+ * 鎻愪氦澶囨敞
+ */
+ SUBMIT_COMMENT("05", "鐧诲綍"),
+
+ /**
+ * 澶嶄綅
+ */
+ RESET("06", "鐧诲綍"),
+
+ /**
+ * 鎺ㄥ嚭
+ */
+ SIGN_OUT("07", "鐧诲綍");
+
+ private String type;
+ private String name;
+
+ EquipmentLog(String type, String name) {
+ this.type = type;
+ this.name = name;
+ }
+ }
+
+}
+
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
index 642076d..db4ceac 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
@@ -1,11 +1,14 @@
package com.ruoyi.framework.aspectj;
import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.domain.dto.EquipmentLogDTO;
import com.ruoyi.common.core.domain.dto.OperLogDTO;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.service.EquipmentService;
import com.ruoyi.common.core.service.OperLogService;
import com.ruoyi.common.enums.BusinessStatus;
import com.ruoyi.common.enums.HttpMethod;
+import com.ruoyi.common.enums.LogType;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.ServletUtils;
@@ -65,18 +68,28 @@
// *========鏁版嵁搴撴棩蹇�=========*//
OperLogDTO operLog = new OperLogDTO();
+ // 鑱旀満鏃ュ織
+ EquipmentLogDTO equipmentLogDTO = new EquipmentLogDTO();
+
operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
+ equipmentLogDTO.setStatus(BusinessStatus.SUCCESS.ordinal());
+
// 璇锋眰鐨勫湴鍧�
String ip = ServletUtils.getClientIP();
operLog.setOperIp(ip);
+ equipmentLogDTO.setIp(ip);
operLog.setOperUrl(ServletUtils.getRequest().getRequestURI());
if (loginUser != null) {
operLog.setOperName(loginUser.getUsername());
+ equipmentLogDTO.setUserName(loginUser.getUsername());
}
if (e != null) {
operLog.setStatus(BusinessStatus.FAIL.ordinal());
operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
+
+ equipmentLogDTO.setStatus(BusinessStatus.FAIL.ordinal());
+ equipmentLogDTO.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
}
// 璁剧疆鏂规硶鍚嶇О
String className = joinPoint.getTarget().getClass().getName();
@@ -86,8 +99,15 @@
operLog.setRequestMethod(ServletUtils.getRequest().getMethod());
// 澶勭悊璁剧疆娉ㄨВ涓婄殑鍙傛暟
getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult);
- // 淇濆瓨鏁版嵁搴�
- SpringUtils.getBean(OperLogService.class).recordOper(operLog);
+ if (LogType.SYS_LOG.ordinal() == controllerLog.type().ordinal()) {
+ // 淇濆瓨鏁版嵁搴�
+ SpringUtils.getBean(OperLogService.class).recordOper(operLog);
+ }
+ if (LogType.EQUIPMENT_LOG.ordinal() == controllerLog.type().ordinal()) {
+ equipmentLogDTO.setOperation(controllerLog.operation().ordinal());
+ // 淇濆瓨鏁版嵁搴�
+ SpringUtils.getBean(EquipmentService.class).recordOper(equipmentLogDTO);
+ }
} catch (Exception exp) {
// 璁板綍鏈湴寮傚父鏃ュ織
log.error("==鍓嶇疆閫氱煡寮傚父==");
@@ -181,6 +201,6 @@
}
}
return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse
- || o instanceof BindingResult;
+ || o instanceof BindingResult;
}
}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevBatch.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevBatch.java
new file mode 100644
index 0000000..a9cb070
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevBatch.java
@@ -0,0 +1,60 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 鐢熶骇鎵规瀵硅薄 dev_batch
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+@Data
+@Accessors(chain = true)
+@TableName("dev_batch")
+public class DevBatch extends BaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * id
+ */
+ @TableId(value = "id")
+ private Long id;
+ /**
+ * 鐢熶骇鎵规
+ */
+ private String batch;
+ /**
+ * 涓嬪崟鏃ユ湡
+ */
+ private Date orderDate;
+ /**
+ * 鍒拌揣鏃ユ湡
+ */
+ private Date arrivalDate;
+ /**
+ * 鎵规璇存槑
+ */
+ private String illustrate;
+ /**
+ * 鍒犻櫎鏍囪瘑
+ */
+ @TableLogic
+ private String delFlag;
+ /**
+ * 涔愯閿�
+ */
+ @Version
+ private Integer version;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipment.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipment.java
new file mode 100644
index 0000000..39028dc
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipment.java
@@ -0,0 +1,86 @@
+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;
+
+/**
+ * 鏅烘帶璁惧瀵硅薄 dev_equipment
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+@Data
+@Accessors(chain = true)
+@TableName("dev_equipment")
+public class DevEquipment extends BaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * id
+ */
+ @TableId(value = "id")
+ private Long id;
+ /**
+ * 搴忓垪鍙�
+ */
+ private Long serialNumber;
+ /**
+ * 璁惧绫诲瀷
+ */
+ private String type;
+ /**
+ * 搴忓垪鐮�
+ */
+ private String sequenceCode;
+ /**
+ * 鐗堟湰
+ */
+ private String edition;
+ /**
+ * 瀛︽牎id
+ */
+ private Long schoolId;
+ /**
+ * 涓绘満ID
+ */
+ private String hostId;
+ /**
+ * 尾缃戠粶ID
+ */
+ private String networkId;
+ /**
+ * 尾宸ヤ綔棰戞
+ */
+ private String frequencyBand;
+ /**
+ * 鐢熶骇鎵规
+ */
+ private Long batchId;
+ /**
+ * 鍦ㄧ敤鐘舵��
+ */
+ private String useStatus;
+ /**
+ * 澶囨敞
+ */
+ private String remarks;
+ /**
+ * 鍒犻櫎鏍囪瘑
+ */
+ @TableLogic
+ private Integer delFlag;
+ /**
+ * 涔愯閿�
+ */
+ @Version
+ private Integer version;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentCode.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentCode.java
new file mode 100644
index 0000000..fc2a703
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentCode.java
@@ -0,0 +1,36 @@
+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;
+
+/**
+ * 璁惧搴忓垪鍙风淮鎶ゅ璞� dev_equipment_code
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Data
+@Accessors(chain = true)
+@TableName("dev_equipment_code")
+public class DevEquipmentCode {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 搴忓垪鍙�
+ */
+ @TableId(value = "id")
+ private Long id;
+ /**
+ * 纭欢璁惧搴忓垪鐮�
+ */
+ private String sequenceCode;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentLog.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentLog.java
new file mode 100644
index 0000000..95d4ca7
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevEquipmentLog.java
@@ -0,0 +1,66 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 璁惧鑱旀満鏃ュ織瀵硅薄 dev_equipment_log
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Data
+@Accessors(chain = true)
+@TableName("dev_equipment_log")
+public class DevEquipmentLog {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id")
+ private Long id;
+ /**
+ * 鎿嶄綔琛屼负
+ */
+ private Integer operation;
+ /**
+ * 鐢ㄦ埛璐﹀彿
+ */
+ private String userName;
+ /**
+ * 鐢ㄦ埛鍚嶇О
+ */
+ private String nickName;
+ /**
+ * ip
+ */
+ private String ip;
+ /**
+ * 鑱旀満鍦扮偣
+ */
+ private String loginLocation;
+ /**
+ * 0鎴愬姛1澶辫触
+ */
+ private Integer status;
+ /**
+ * 閿欒淇℃伅
+ */
+ private String errorMsg;
+ /**
+ * 鑱旀満鏃堕棿
+ */
+ private Date loginTime;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevPeripheralUnit.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevPeripheralUnit.java
new file mode 100644
index 0000000..afeb5e9
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/DevPeripheralUnit.java
@@ -0,0 +1,82 @@
+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;
+
+/**
+ * 澶栬鍗曞厓瀵硅薄 dev_peripheral_unit
+ *
+ * @author ruoyi
+ * @date 2021-12-06
+ */
+@Data
+@Accessors(chain = true)
+@TableName("dev_peripheral_unit")
+public class DevPeripheralUnit extends BaseEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * id
+ */
+ @TableId(value = "id")
+ private Long id;
+ /**
+ * 澶栬浠g爜
+ */
+ private String code;
+ /**
+ * 澶栬鍚嶇О
+ */
+ private String name;
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ private String model;
+ /**
+ * 鐢熶骇鍘傚晢
+ */
+ private String manufacturer;
+ /**
+ * 鍘傚晢浠g爜
+ */
+ private String vendorCode;
+ /**
+ * 娉㈢壒鐜�
+ */
+ private String baudRate;
+ /**
+ * 璇绘暟鎸囦护
+ */
+ private String readInstruction;
+ /**
+ * 鍥炴暟闀垮害
+ */
+ private Integer loopLength;
+ /**
+ * 鍔熻兘鎻忚堪
+ */
+ private String description;
+ /**
+ * 闄勪欢
+ */
+ private String filePath;
+ /**
+ * 鍒犻櫎鏍囪瘑
+ */
+ @TableLogic
+ private String delFlag;
+ /**
+ * 涔愯閿�
+ */
+ @Version
+ private Integer version;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevBatchBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevBatchBo.java
new file mode 100644
index 0000000..3abfc9f
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevBatchBo.java
@@ -0,0 +1,102 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 鐢熶骇鎵规涓氬姟瀵硅薄 dev_batch
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("鐢熶骇鎵规涓氬姟瀵硅薄")
+public class DevBatchBo extends BaseEntity {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id")
+ private Long id;
+
+ /**
+ * 鐢熶骇鎵规
+ */
+ @ApiModelProperty(value = "鐢熶骇鎵规", required = true)
+ @NotBlank(message = "鐢熶骇鎵规涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String batch;
+
+ /**
+ * 涓嬪崟鏃ユ湡
+ */
+ @ApiModelProperty(value = "涓嬪崟鏃ユ湡", required = true)
+ @NotNull(message = "涓嬪崟鏃ユ湡涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date orderDate;
+
+ /**
+ * 鍒拌揣鏃ユ湡
+ */
+ @ApiModelProperty(value = "鍒拌揣鏃ユ湡", required = true)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @NotNull(message = "鍒拌揣鏃ユ湡涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Date arrivalDate;
+
+ /**
+ * 鎵规璇存槑
+ */
+ @ApiModelProperty(value = "鎵规璇存槑", required = true)
+ @NotBlank(message = "鎵规璇存槑涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String illustrate;
+
+ /**
+ * 鍒犻櫎鏍囪瘑
+ */
+ @ApiModelProperty(value = "鍒犻櫎鏍囪瘑")
+ private String delFlag;
+
+ /**
+ * 涔愯閿�
+ */
+ @ApiModelProperty(value = "涔愯閿�")
+ private Integer version;
+
+
+ /**
+ * 鍒嗛〉澶у皬
+ */
+ @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/DevEquipmentBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentBo.java
new file mode 100644
index 0000000..92e29e5
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentBo.java
@@ -0,0 +1,134 @@
+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;
+
+/**
+ * 鏅烘帶璁惧涓氬姟瀵硅薄 dev_equipment
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("鏅烘帶璁惧涓氬姟瀵硅薄")
+public class DevEquipmentBo extends BaseEntity {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id", required = true)
+ private Long id;
+
+ /**
+ * 搴忓垪鍙�
+ */
+ @ApiModelProperty(value = "搴忓垪鍙�", required = true)
+ @NotNull(message = "搴忓垪鍙蜂笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private Long serialNumber;
+
+ /**
+ * 璁惧绫诲瀷
+ */
+ @ApiModelProperty(value = "璁惧绫诲瀷", required = true)
+ @NotNull(message = "璁惧绫诲瀷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String type;
+
+ /**
+ * 搴忓垪鐮�
+ */
+ @ApiModelProperty(value = "搴忓垪鐮�", required = true)
+ @NotNull(message = "搴忓垪鐮佷笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private String sequenceCode;
+
+ /**
+ * 鐗堟湰
+ */
+ @ApiModelProperty(value = "鐗堟湰", required = true)
+ @NotNull(message = "鐗堟湰涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String edition;
+
+ /**
+ * 瀛︽牎id
+ */
+ @ApiModelProperty(value = "瀛︽牎id", required = true)
+ @NotNull(message = "瀛︽牎id涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long schoolId;
+
+ /**
+ * 涓绘満ID
+ */
+ @ApiModelProperty(value = "涓绘満ID", required = true)
+ @NotNull(message = "涓绘満ID涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String hostId;
+
+ /**
+ * 尾缃戠粶ID
+ */
+ @ApiModelProperty(value = "尾缃戠粶ID", required = true)
+ @NotNull(message = "尾缃戠粶ID涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String networkId;
+
+ /**
+ * 尾宸ヤ綔棰戞
+ */
+ @ApiModelProperty(value = "尾宸ヤ綔棰戞", required = true)
+ @NotNull(message = "尾宸ヤ綔棰戞涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String frequencyBand;
+
+ /**
+ * 鐢熶骇鎵规
+ */
+ @ApiModelProperty(value = "鐢熶骇鎵规", required = true)
+ @NotNull(message = "鐢熶骇鎵规涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Long batchId;
+
+ /**
+ * 鍦ㄧ敤鐘舵��
+ */
+ @ApiModelProperty(value = "鍦ㄧ敤鐘舵��", required = true)
+ @NotNull(message = "鍦ㄧ敤鐘舵�佷笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private String useStatus;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value = "澶囨敞")
+ private String remarks;
+
+
+ /**
+ * 鍒嗛〉澶у皬
+ */
+ @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/DevEquipmentCodeBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentCodeBo.java
new file mode 100644
index 0000000..65a9e25
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentCodeBo.java
@@ -0,0 +1,66 @@
+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;
+
+/**
+ * 璁惧搴忓垪鍙风淮鎶や笟鍔″璞� dev_equipment_code
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("璁惧搴忓垪鍙风淮鎶や笟鍔″璞�")
+public class DevEquipmentCodeBo 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 sequenceCode;
+
+
+ /**
+ * 鍒嗛〉澶у皬
+ */
+ @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/DevEquipmentLogBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentLogBo.java
new file mode 100644
index 0000000..5189512
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevEquipmentLogBo.java
@@ -0,0 +1,110 @@
+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 java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 璁惧鑱旀満鏃ュ織涓氬姟瀵硅薄 dev_equipment_log
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("璁惧鑱旀満鏃ュ織涓氬姟瀵硅薄")
+public class DevEquipmentLogBo 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 operation;
+
+ /**
+ * 鐢ㄦ埛璐﹀彿
+ */
+ @ApiModelProperty(value = "鐢ㄦ埛璐﹀彿", required = true)
+ @NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String userName;
+
+ /**
+ * 鐢ㄦ埛鍚嶇О
+ */
+ @ApiModelProperty(value = "鐢ㄦ埛鍚嶇О", required = true)
+ @NotBlank(message = "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String nickName;
+
+ /**
+ * 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 loginLocation;
+
+ /**
+ *
+ */
+ @ApiModelProperty(value = "", required = true)
+ @NotBlank(message = "涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String status;
+
+ /**
+ * 鑱旀満鏃堕棿
+ */
+ @ApiModelProperty(value = "鑱旀満鏃堕棿", required = true)
+ @NotNull(message = "鑱旀満鏃堕棿涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Date loginTime;
+
+
+ /**
+ * 鍒嗛〉澶у皬
+ */
+ @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/DevPeripheralUnitBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevPeripheralUnitBo.java
new file mode 100644
index 0000000..70bd8e5
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/DevPeripheralUnitBo.java
@@ -0,0 +1,128 @@
+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;
+
+/**
+ * 澶栬鍗曞厓涓氬姟瀵硅薄 dev_peripheral_unit
+ *
+ * @author ruoyi
+ * @date 2021-12-06
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("澶栬鍗曞厓涓氬姟瀵硅薄")
+public class DevPeripheralUnitBo extends BaseEntity {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id", required = true)
+ @NotNull(message = "id涓嶈兘涓虹┖", groups = { EditGroup.class })
+ private Long id;
+
+ /**
+ * 澶栬浠g爜
+ */
+ @ApiModelProperty(value = "澶栬浠g爜", required = true)
+ @NotBlank(message = "澶栬浠g爜涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String code;
+
+ /**
+ * 澶栬鍚嶇О
+ */
+ @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 model;
+
+ /**
+ * 鐢熶骇鍘傚晢
+ */
+ @ApiModelProperty(value = "鐢熶骇鍘傚晢", required = true)
+ @NotBlank(message = "鐢熶骇鍘傚晢涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String manufacturer;
+
+ /**
+ * 鍘傚晢浠g爜
+ */
+ @ApiModelProperty(value = "鍘傚晢浠g爜", required = true)
+ @NotBlank(message = "鍘傚晢浠g爜涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String vendorCode;
+
+ /**
+ * 娉㈢壒鐜�
+ */
+ @ApiModelProperty(value = "娉㈢壒鐜�", required = true)
+ @NotBlank(message = "娉㈢壒鐜囦笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+ private String baudRate;
+
+ /**
+ * 璇绘暟鎸囦护
+ */
+ @ApiModelProperty(value = "璇绘暟鎸囦护", required = true)
+ @NotBlank(message = "璇绘暟鎸囦护涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String readInstruction;
+
+ /**
+ * 鍥炴暟闀垮害
+ */
+ @ApiModelProperty(value = "鍥炴暟闀垮害", required = true)
+ @NotNull(message = "鍥炴暟闀垮害涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private Integer loopLength;
+
+ /**
+ * 鍔熻兘鎻忚堪
+ */
+ @ApiModelProperty(value = "鍔熻兘鎻忚堪")
+ private String description;
+
+ /**
+ * 闄勪欢
+ */
+ @ApiModelProperty(value = "闄勪欢", required = true)
+ @NotBlank(message = "闄勪欢涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+ private String filePath;
+
+
+ /**
+ * 鍒嗛〉澶у皬
+ */
+ @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/vo/DevBatchVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevBatchVo.java
new file mode 100644
index 0000000..6c8bdc7
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevBatchVo.java
@@ -0,0 +1,65 @@
+package com.ruoyi.oa.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+
+
+/**
+ * 鐢熶骇鎵规瑙嗗浘瀵硅薄 dev_batch
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+@Data
+@ApiModel("鐢熶骇鎵规瑙嗗浘瀵硅薄")
+@ExcelIgnoreUnannotated
+public class DevBatchVo {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @ExcelProperty(value = "id")
+ @ApiModelProperty("id")
+ private Long id;
+
+ /**
+ * 鐢熶骇鎵规
+ */
+ @ExcelProperty(value = "鐢熶骇鎵规")
+ @ApiModelProperty("鐢熶骇鎵规")
+ private String batch;
+
+ /**
+ * 涓嬪崟鏃ユ湡
+ */
+ @ExcelProperty(value = "涓嬪崟鏃ユ湡")
+ @ApiModelProperty("涓嬪崟鏃ユ湡")
+ private Date orderDate;
+
+ /**
+ * 鍒拌揣鏃ユ湡
+ */
+ @ExcelProperty(value = "鍒拌揣鏃ユ湡")
+ @ApiModelProperty("鍒拌揣鏃ユ湡")
+ private Date arrivalDate;
+
+ /**
+ * 鎵规璇存槑
+ */
+ @ExcelProperty(value = "鎵规璇存槑")
+ @ApiModelProperty("鎵规璇存槑")
+ private String illustrate;
+
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentCodeVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentCodeVo.java
new file mode 100644
index 0000000..3bcdc66
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentCodeVo.java
@@ -0,0 +1,42 @@
+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;
+
+
+
+/**
+ * 璁惧搴忓垪鍙风淮鎶よ鍥惧璞� dev_equipment_code
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Data
+@ApiModel("璁惧搴忓垪鍙风淮鎶よ鍥惧璞�")
+@ExcelIgnoreUnannotated
+public class DevEquipmentCodeVo {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 搴忓垪鍙�
+ */
+ @ExcelProperty(value = "搴忓垪鍙�")
+ @ApiModelProperty("搴忓垪鍙�")
+ private Long id;
+
+ /**
+ * 纭欢璁惧搴忓垪鐮�
+ */
+ @ExcelProperty(value = "纭欢璁惧搴忓垪鐮�")
+ @ApiModelProperty("纭欢璁惧搴忓垪鐮�")
+ private String sequenceCode;
+
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentLogVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentLogVo.java
new file mode 100644
index 0000000..31b4b5e
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentLogVo.java
@@ -0,0 +1,86 @@
+package com.ruoyi.oa.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+
+
+/**
+ * 璁惧鑱旀満鏃ュ織瑙嗗浘瀵硅薄 dev_equipment_log
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Data
+@ApiModel("璁惧鑱旀満鏃ュ織瑙嗗浘瀵硅薄")
+@ExcelIgnoreUnannotated
+public class DevEquipmentLogVo {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ExcelProperty(value = "")
+ @ApiModelProperty("")
+ private Long id;
+
+ /**
+ * 鎿嶄綔琛屼负
+ */
+ @ExcelProperty(value = "鎿嶄綔琛屼负")
+ @ApiModelProperty("鎿嶄綔琛屼负")
+ private String operation;
+
+ /**
+ * 鐢ㄦ埛璐﹀彿
+ */
+ @ExcelProperty(value = "鐢ㄦ埛璐﹀彿")
+ @ApiModelProperty("鐢ㄦ埛璐﹀彿")
+ private String userName;
+
+ /**
+ * 鐢ㄦ埛鍚嶇О
+ */
+ @ExcelProperty(value = "鐢ㄦ埛鍚嶇О")
+ @ApiModelProperty("鐢ㄦ埛鍚嶇О")
+ private String nickName;
+
+ /**
+ * ip
+ */
+ @ExcelProperty(value = "ip")
+ @ApiModelProperty("ip")
+ private String ip;
+
+ /**
+ * 鑱旀満鍦扮偣
+ */
+ @ExcelProperty(value = "鑱旀満鍦扮偣")
+ @ApiModelProperty("鑱旀満鍦扮偣")
+ private String loginLocation;
+
+ /**
+ *
+ */
+ @ExcelProperty(value = "")
+ @ApiModelProperty("")
+ private String status;
+
+ /**
+ * 鑱旀満鏃堕棿
+ */
+ @ExcelProperty(value = "鑱旀満鏃堕棿")
+ @ApiModelProperty("鑱旀満鏃堕棿")
+ private Date loginTime;
+
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentVo.java
new file mode 100644
index 0000000..46f086f
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevEquipmentVo.java
@@ -0,0 +1,118 @@
+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;
+
+
+
+/**
+ * 鏅烘帶璁惧瑙嗗浘瀵硅薄 dev_equipment
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+@Data
+@ApiModel("鏅烘帶璁惧瑙嗗浘瀵硅薄")
+@ExcelIgnoreUnannotated
+public class DevEquipmentVo {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @ExcelProperty(value = "id")
+ @ApiModelProperty("id")
+ private Long id;
+
+ /**
+ * 搴忓垪鍙�
+ */
+ @ExcelProperty(value = "搴忓垪鍙�")
+ @ApiModelProperty("搴忓垪鍙�")
+ private Long serialNumber;
+
+ /**
+ * 璁惧绫诲瀷
+ */
+ @ExcelProperty(value = "璁惧绫诲瀷", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "DICT101")
+ @ApiModelProperty("璁惧绫诲瀷")
+ private String type;
+
+ /**
+ * 搴忓垪鐮�
+ */
+ @ExcelProperty(value = "搴忓垪鐮�")
+ @ApiModelProperty("搴忓垪鐮�")
+ private String sequenceCode;
+
+ /**
+ * 鐗堟湰
+ */
+ @ExcelProperty(value = "鐗堟湰")
+ @ApiModelProperty("鐗堟湰")
+ private String edition;
+
+ /**
+ * 瀛︽牎id
+ */
+ @ExcelProperty(value = "瀛︽牎id")
+ @ApiModelProperty("瀛︽牎id")
+ @Dict(dictTable = "bs_school", dicCode = "id", dicText = "name")
+ private Long schoolId;
+
+ /**
+ * 涓绘満ID
+ */
+ @ExcelProperty(value = "涓绘満ID")
+ @ApiModelProperty("涓绘満ID")
+ private String hostId;
+
+ /**
+ * 尾缃戠粶ID
+ */
+ @ExcelProperty(value = "尾缃戠粶ID")
+ @ApiModelProperty("尾缃戠粶ID")
+ private String networkId;
+
+ /**
+ * 尾宸ヤ綔棰戞
+ */
+ @ExcelProperty(value = "尾宸ヤ綔棰戞", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "DICT102")
+ @ApiModelProperty("尾宸ヤ綔棰戞")
+ private String frequencyBand;
+
+ /**
+ * 鐢熶骇鎵规
+ */
+ @ExcelProperty(value = "鐢熶骇鎵规")
+ @ApiModelProperty("鐢熶骇鎵规")
+ @Dict(dictTable = "dev_batch", dicCode = "id", dicText = "batch")
+ private Long batchId;
+
+ /**
+ * 鍦ㄧ敤鐘舵��
+ */
+ @ExcelProperty(value = "鍦ㄧ敤鐘舵��", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "DICT104")
+ @ApiModelProperty("鍦ㄧ敤鐘舵��")
+ private String useStatus;
+
+ /**
+ * 澶囨敞
+ */
+ @ExcelProperty(value = "澶囨敞")
+ @ApiModelProperty("澶囨敞")
+ private String remarks;
+
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevPeripheralUnitVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevPeripheralUnitVo.java
new file mode 100644
index 0000000..ea0359f
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/DevPeripheralUnitVo.java
@@ -0,0 +1,98 @@
+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;
+
+
+
+/**
+ * 澶栬鍗曞厓瑙嗗浘瀵硅薄 dev_peripheral_unit
+ *
+ * @author ruoyi
+ * @date 2021-12-06
+ */
+@Data
+@ApiModel("澶栬鍗曞厓瑙嗗浘瀵硅薄")
+@ExcelIgnoreUnannotated
+public class DevPeripheralUnitVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ /**
+ * 澶栬浠g爜
+ */
+ @ExcelProperty(value = "澶栬浠g爜")
+ @ApiModelProperty("澶栬浠g爜")
+ private String code;
+
+ /**
+ * 澶栬鍚嶇О
+ */
+ @ExcelProperty(value = "澶栬鍚嶇О")
+ @ApiModelProperty("澶栬鍚嶇О")
+ private String name;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ @ExcelProperty(value = "瑙勬牸鍨嬪彿")
+ @ApiModelProperty("瑙勬牸鍨嬪彿")
+ private String model;
+
+ /**
+ * 鐢熶骇鍘傚晢
+ */
+ @ExcelProperty(value = "鐢熶骇鍘傚晢")
+ @ApiModelProperty("鐢熶骇鍘傚晢")
+ private String manufacturer;
+
+ /**
+ * 鍘傚晢浠g爜
+ */
+ @ExcelProperty(value = "鍘傚晢浠g爜")
+ @ApiModelProperty("鍘傚晢浠g爜")
+ private String vendorCode;
+
+ /**
+ * 娉㈢壒鐜�
+ */
+ @ExcelProperty(value = "娉㈢壒鐜�", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(dictType = "DICT103")
+ @ApiModelProperty("娉㈢壒鐜�")
+ private String baudRate;
+
+ /**
+ * 璇绘暟鎸囦护
+ */
+ @ExcelProperty(value = "璇绘暟鎸囦护")
+ @ApiModelProperty("璇绘暟鎸囦护")
+ private String readInstruction;
+
+ /**
+ * 鍥炴暟闀垮害
+ */
+ @ExcelProperty(value = "鍥炴暟闀垮害")
+ @ApiModelProperty("鍥炴暟闀垮害")
+ private Integer loopLength;
+
+ /**
+ * 鍔熻兘鎻忚堪
+ */
+ @ExcelProperty(value = "鍔熻兘鎻忚堪")
+ @ApiModelProperty("鍔熻兘鎻忚堪")
+ private String description;
+
+ /**
+ * 闄勪欢
+ */
+ private String filePath;
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevBatchMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevBatchMapper.java
new file mode 100644
index 0000000..8e6a449
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevBatchMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.oa.mapper;
+
+import com.ruoyi.oa.domain.DevBatch;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+/**
+ * 鐢熶骇鎵规Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+public interface DevBatchMapper extends BaseMapperPlus<DevBatch> {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentCodeMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentCodeMapper.java
new file mode 100644
index 0000000..6502cb4
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentCodeMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.oa.mapper;
+
+import com.ruoyi.oa.domain.DevEquipmentCode;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 璁惧搴忓垪鍙风淮鎶apper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Mapper
+public interface DevEquipmentCodeMapper extends BaseMapperPlus<DevEquipmentCode> {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentLogMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentLogMapper.java
new file mode 100644
index 0000000..1ebdfb4
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentLogMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.oa.mapper;
+
+import com.ruoyi.oa.domain.DevEquipmentLog;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+/**
+ * 璁惧鑱旀満鏃ュ織Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+public interface DevEquipmentLogMapper extends BaseMapperPlus<DevEquipmentLog> {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentMapper.java
new file mode 100644
index 0000000..3f65fca
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevEquipmentMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.oa.mapper;
+
+import com.ruoyi.oa.domain.DevEquipment;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+/**
+ * 鏅烘帶璁惧Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+public interface DevEquipmentMapper extends BaseMapperPlus<DevEquipment> {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevPeripheralUnitMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevPeripheralUnitMapper.java
new file mode 100644
index 0000000..ad0af17
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/DevPeripheralUnitMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.oa.mapper;
+
+import com.ruoyi.oa.domain.DevPeripheralUnit;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+/**
+ * 澶栬鍗曞厓Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2021-12-06
+ */
+public interface DevPeripheralUnitMapper extends BaseMapperPlus<DevPeripheralUnit> {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevBatchService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevBatchService.java
new file mode 100644
index 0000000..4151d43
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevBatchService.java
@@ -0,0 +1,56 @@
+package com.ruoyi.oa.service;
+
+import com.ruoyi.oa.domain.DevBatch;
+import com.ruoyi.oa.domain.vo.DevBatchVo;
+import com.ruoyi.oa.domain.bo.DevBatchBo;
+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 2021-12-05
+ */
+public interface IDevBatchService extends IServicePlus<DevBatch, DevBatchVo> {
+ /**
+ * 鏌ヨ鍗曚釜
+ * @return
+ */
+ DevBatchVo queryById(Long id);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ TableDataInfo<DevBatchVo> queryPageList(DevBatchBo bo);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ List<DevBatchVo> queryList(DevBatchBo bo);
+
+ /**
+ * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆鐢熶骇鎵规
+ * @param bo 鐢熶骇鎵规鏂板涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean insertByBo(DevBatchBo bo);
+
+ /**
+ * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼鐢熶骇鎵规
+ * @param bo 鐢熶骇鎵规缂栬緫涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean updateByBo(DevBatchBo 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/IDevEquipmentCodeService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentCodeService.java
new file mode 100644
index 0000000..33f95ff
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentCodeService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.oa.service;
+
+import com.ruoyi.oa.domain.DevEquipmentCode;
+import com.ruoyi.oa.domain.vo.DevEquipmentCodeVo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+
+/**
+ * 璁惧搴忓垪鍙风淮鎶ervice鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+public interface IDevEquipmentCodeService extends IServicePlus<DevEquipmentCode, DevEquipmentCodeVo> {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentLogService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentLogService.java
new file mode 100644
index 0000000..2e7ec8e
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentLogService.java
@@ -0,0 +1,56 @@
+package com.ruoyi.oa.service;
+
+import com.ruoyi.oa.domain.DevEquipmentLog;
+import com.ruoyi.oa.domain.vo.DevEquipmentLogVo;
+import com.ruoyi.oa.domain.bo.DevEquipmentLogBo;
+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 2021-12-08
+ */
+public interface IDevEquipmentLogService extends IServicePlus<DevEquipmentLog, DevEquipmentLogVo> {
+ /**
+ * 鏌ヨ鍗曚釜
+ * @return
+ */
+ DevEquipmentLogVo queryById(Long id);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ TableDataInfo<DevEquipmentLogVo> queryPageList(DevEquipmentLogBo bo);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ List<DevEquipmentLogVo> queryList(DevEquipmentLogBo bo);
+
+ /**
+ * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆璁惧鑱旀満鏃ュ織
+ * @param bo 璁惧鑱旀満鏃ュ織鏂板涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean insertByBo(DevEquipmentLogBo bo);
+
+ /**
+ * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼璁惧鑱旀満鏃ュ織
+ * @param bo 璁惧鑱旀満鏃ュ織缂栬緫涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean updateByBo(DevEquipmentLogBo 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/IDevEquipmentService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentService.java
new file mode 100644
index 0000000..e865e11
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevEquipmentService.java
@@ -0,0 +1,60 @@
+package com.ruoyi.oa.service;
+
+import com.ruoyi.oa.domain.DevEquipment;
+import com.ruoyi.oa.domain.vo.DevEquipmentVo;
+import com.ruoyi.oa.domain.bo.DevEquipmentBo;
+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 2021-12-05
+ */
+public interface IDevEquipmentService extends IServicePlus<DevEquipment, DevEquipmentVo> {
+ /**
+ * 鏌ヨ鍗曚釜
+ * @return
+ */
+ DevEquipmentVo queryById(Long id);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ TableDataInfo<DevEquipmentVo> queryPageList(DevEquipmentBo bo);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ List<DevEquipmentVo> queryList(DevEquipmentBo bo);
+
+ /**
+ * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆鏅烘帶璁惧
+ * @param bo 鏅烘帶璁惧鏂板涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean insertByBo(DevEquipmentBo bo);
+
+ /**
+ * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼鏅烘帶璁惧
+ * @param bo 鏅烘帶璁惧缂栬緫涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean updateByBo(DevEquipmentBo bo);
+
+ /**
+ * 鏍¢獙骞跺垹闄ゆ暟鎹�
+ * @param ids 涓婚敭闆嗗悎
+ * @param isValid 鏄惁鏍¢獙,true-鍒犻櫎鍓嶆牎楠�,false-涓嶆牎楠�
+ * @return
+ */
+ Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+ DevEquipment externalAdd(DevEquipmentBo bo);
+
+ DevEquipment equipmentEdit(DevEquipmentBo bo);
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevPeripheralUnitService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevPeripheralUnitService.java
new file mode 100644
index 0000000..4d75b2b
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IDevPeripheralUnitService.java
@@ -0,0 +1,56 @@
+package com.ruoyi.oa.service;
+
+import com.ruoyi.oa.domain.DevPeripheralUnit;
+import com.ruoyi.oa.domain.vo.DevPeripheralUnitVo;
+import com.ruoyi.oa.domain.bo.DevPeripheralUnitBo;
+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 2021-12-06
+ */
+public interface IDevPeripheralUnitService extends IServicePlus<DevPeripheralUnit, DevPeripheralUnitVo> {
+ /**
+ * 鏌ヨ鍗曚釜
+ * @return
+ */
+ DevPeripheralUnitVo queryById(Long id);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ TableDataInfo<DevPeripheralUnitVo> queryPageList(DevPeripheralUnitBo bo);
+
+ /**
+ * 鏌ヨ鍒楄〃
+ */
+ List<DevPeripheralUnitVo> queryList(DevPeripheralUnitBo bo);
+
+ /**
+ * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆澶栬鍗曞厓
+ * @param bo 澶栬鍗曞厓鏂板涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean insertByBo(DevPeripheralUnitBo bo);
+
+ /**
+ * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼澶栬鍗曞厓
+ * @param bo 澶栬鍗曞厓缂栬緫涓氬姟瀵硅薄
+ * @return
+ */
+ Boolean updateByBo(DevPeripheralUnitBo 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/DevBatchServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevBatchServiceImpl.java
new file mode 100644
index 0000000..6560869
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevBatchServiceImpl.java
@@ -0,0 +1,91 @@
+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.DevBatchBo;
+import com.ruoyi.oa.domain.vo.DevBatchVo;
+import com.ruoyi.oa.domain.DevBatch;
+import com.ruoyi.oa.mapper.DevBatchMapper;
+import com.ruoyi.oa.service.IDevBatchService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 鐢熶骇鎵规Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+@Service
+public class DevBatchServiceImpl extends ServicePlusImpl<DevBatchMapper, DevBatch, DevBatchVo> implements IDevBatchService {
+
+ @Override
+ public DevBatchVo queryById(Long id){
+ return getVoById(id);
+ }
+
+ @Override
+ public TableDataInfo<DevBatchVo> queryPageList(DevBatchBo bo) {
+ PagePlus<DevBatch, DevBatchVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+ return PageUtils.buildDataInfo(result);
+ }
+
+ @Override
+ public List<DevBatchVo> queryList(DevBatchBo bo) {
+ return listVo(buildQueryWrapper(bo));
+ }
+
+ private LambdaQueryWrapper<DevBatch> buildQueryWrapper(DevBatchBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<DevBatch> lqw = Wrappers.lambdaQuery();
+ lqw.like(StringUtils.isNotBlank(bo.getBatch()), DevBatch::getBatch, bo.getBatch());
+ lqw.eq(bo.getOrderDate() != null, DevBatch::getOrderDate, bo.getOrderDate());
+ lqw.eq(bo.getArrivalDate() != null, DevBatch::getArrivalDate, bo.getArrivalDate());
+ lqw.eq(StringUtils.isNotBlank(bo.getIllustrate()), DevBatch::getIllustrate, bo.getIllustrate());
+ return lqw;
+ }
+
+ @Override
+ public Boolean insertByBo(DevBatchBo bo) {
+ DevBatch add = BeanUtil.toBean(bo, DevBatch.class);
+ validEntityBeforeSave(add);
+ boolean flag = save(add);
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(DevBatchBo bo) {
+ DevBatch update = BeanUtil.toBean(bo, DevBatch.class);
+ validEntityBeforeSave(update);
+ return updateById(update);
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ *
+ * @param entity 瀹炰綋绫绘暟鎹�
+ */
+ private void validEntityBeforeSave(DevBatch 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/DevEquipmentCodeServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentCodeServiceImpl.java
new file mode 100644
index 0000000..64c00bc
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentCodeServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.oa.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.ruoyi.oa.domain.vo.DevEquipmentCodeVo;
+import com.ruoyi.oa.domain.DevEquipmentCode;
+import com.ruoyi.oa.mapper.DevEquipmentCodeMapper;
+import com.ruoyi.oa.service.IDevEquipmentCodeService;
+
+/**
+ * 璁惧搴忓垪鍙风淮鎶ervice涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Service
+public class DevEquipmentCodeServiceImpl extends ServicePlusImpl<DevEquipmentCodeMapper, DevEquipmentCode, DevEquipmentCodeVo> implements IDevEquipmentCodeService {
+
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentLogServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentLogServiceImpl.java
new file mode 100644
index 0000000..05dd2c6
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentLogServiceImpl.java
@@ -0,0 +1,107 @@
+package com.ruoyi.oa.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.core.domain.dto.EquipmentLogDTO;
+import com.ruoyi.common.core.service.EquipmentService;
+import com.ruoyi.common.utils.DateUtils;
+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 com.ruoyi.common.utils.ip.AddressUtils;
+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.DevEquipmentLogBo;
+import com.ruoyi.oa.domain.vo.DevEquipmentLogVo;
+import com.ruoyi.oa.domain.DevEquipmentLog;
+import com.ruoyi.oa.mapper.DevEquipmentLogMapper;
+import com.ruoyi.oa.service.IDevEquipmentLogService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 璁惧鑱旀満鏃ュ織Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2021-12-08
+ */
+@Service
+public class DevEquipmentLogServiceImpl extends ServicePlusImpl<DevEquipmentLogMapper, DevEquipmentLog, DevEquipmentLogVo> implements IDevEquipmentLogService, EquipmentService {
+
+ @Override
+ public DevEquipmentLogVo queryById(Long id){
+ return getVoById(id);
+ }
+
+ @Override
+ public TableDataInfo<DevEquipmentLogVo> queryPageList(DevEquipmentLogBo bo) {
+ PagePlus<DevEquipmentLog, DevEquipmentLogVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+ return PageUtils.buildDataInfo(result);
+ }
+
+ @Override
+ public List<DevEquipmentLogVo> queryList(DevEquipmentLogBo bo) {
+ return listVo(buildQueryWrapper(bo));
+ }
+
+ private LambdaQueryWrapper<DevEquipmentLog> buildQueryWrapper(DevEquipmentLogBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<DevEquipmentLog> lqw = Wrappers.lambdaQuery();
+ lqw.eq(StringUtils.isNotBlank(bo.getOperation()), DevEquipmentLog::getOperation, bo.getOperation());
+ lqw.like(StringUtils.isNotBlank(bo.getUserName()), DevEquipmentLog::getUserName, bo.getUserName());
+ lqw.like(StringUtils.isNotBlank(bo.getNickName()), DevEquipmentLog::getNickName, bo.getNickName());
+ lqw.eq(StringUtils.isNotBlank(bo.getIp()), DevEquipmentLog::getIp, bo.getIp());
+ lqw.eq(StringUtils.isNotBlank(bo.getLoginLocation()), DevEquipmentLog::getLoginLocation, bo.getLoginLocation());
+ lqw.eq(StringUtils.isNotBlank(bo.getStatus()), DevEquipmentLog::getStatus, bo.getStatus());
+ lqw.eq(bo.getLoginTime() != null, DevEquipmentLog::getLoginTime, bo.getLoginTime());
+ return lqw;
+ }
+
+ @Override
+ public Boolean insertByBo(DevEquipmentLogBo bo) {
+ DevEquipmentLog add = BeanUtil.toBean(bo, DevEquipmentLog.class);
+ validEntityBeforeSave(add);
+ boolean flag = save(add);
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(DevEquipmentLogBo bo) {
+ DevEquipmentLog update = BeanUtil.toBean(bo, DevEquipmentLog.class);
+ validEntityBeforeSave(update);
+ return updateById(update);
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ *
+ * @param entity 瀹炰綋绫绘暟鎹�
+ */
+ private void validEntityBeforeSave(DevEquipmentLog entity){
+ //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+ if(isValid){
+ //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+ }
+ return removeByIds(ids);
+ }
+
+ @Override
+ public void recordOper(EquipmentLogDTO dto){
+ DevEquipmentLog po = BeanUtil.toBean(dto, DevEquipmentLog.class);
+ // 杩滅▼鏌ヨ鎿嶄綔鍦扮偣
+ po.setLoginLocation(AddressUtils.getRealAddressByIP(po.getIp()));
+ po.setLoginTime(DateUtils.getNowDate());
+ baseMapper.insert(po);
+ }
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentServiceImpl.java
new file mode 100644
index 0000000..4bfe12a
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevEquipmentServiceImpl.java
@@ -0,0 +1,167 @@
+package com.ruoyi.oa.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.http.HttpStatus;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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 com.ruoyi.oa.domain.DevEquipmentCode;
+import com.ruoyi.oa.mapper.DevEquipmentCodeMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+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.DevEquipmentBo;
+import com.ruoyi.oa.domain.vo.DevEquipmentVo;
+import com.ruoyi.oa.domain.DevEquipment;
+import com.ruoyi.oa.mapper.DevEquipmentMapper;
+import com.ruoyi.oa.service.IDevEquipmentService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 鏅烘帶璁惧Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2021-12-05
+ */
+@Service
+public class DevEquipmentServiceImpl extends ServicePlusImpl<DevEquipmentMapper, DevEquipment, DevEquipmentVo> implements IDevEquipmentService {
+
+ @Autowired
+ private DevEquipmentCodeMapper devEquipmentCodeMapper;
+
+ @Override
+ public DevEquipmentVo queryById(Long id) {
+ return getVoById(id);
+ }
+
+ @Override
+ public TableDataInfo<DevEquipmentVo> queryPageList(DevEquipmentBo bo) {
+ PagePlus<DevEquipment, DevEquipmentVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+ return PageUtils.buildDataInfo(result);
+ }
+
+ @Override
+ public List<DevEquipmentVo> queryList(DevEquipmentBo bo) {
+ return listVo(buildQueryWrapper(bo));
+ }
+
+ private LambdaQueryWrapper<DevEquipment> buildQueryWrapper(DevEquipmentBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<DevEquipment> lqw = Wrappers.lambdaQuery();
+ lqw.like(bo.getSerialNumber() != null, DevEquipment::getSerialNumber, bo.getSerialNumber());
+ lqw.eq(bo.getType() != null, DevEquipment::getType, bo.getType());
+ lqw.like(bo.getSequenceCode() != null, DevEquipment::getSequenceCode, bo.getSequenceCode());
+ lqw.like(bo.getEdition() != null, DevEquipment::getEdition, bo.getEdition());
+ lqw.eq(bo.getSchoolId() != null, DevEquipment::getSchoolId, bo.getSchoolId());
+ lqw.like(bo.getHostId() != null, DevEquipment::getHostId, bo.getHostId());
+ lqw.like(bo.getNetworkId() != null, DevEquipment::getNetworkId, bo.getNetworkId());
+ lqw.eq(bo.getFrequencyBand() != null, DevEquipment::getFrequencyBand, bo.getFrequencyBand());
+ lqw.eq(bo.getUseStatus() != null, DevEquipment::getUseStatus, bo.getUseStatus());
+ lqw.orderByDesc(DevEquipment::getUpdateTime);
+ return lqw;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insertByBo(DevEquipmentBo bo) {
+ List<DevEquipment> list = baseMapper.selectList(new QueryWrapper<DevEquipment>().lambda()
+ .eq(DevEquipment::getSequenceCode, bo.getSequenceCode()));
+ if (list.size() > 0) {
+ throw new ServiceException("纭欢搴忓垪鐮侀噸澶�", HttpStatus.HTTP_PARTIAL);
+ }
+ DevEquipment add = BeanUtil.toBean(bo, DevEquipment.class);
+ validEntityBeforeSave(add);
+ boolean flag = save(add);
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(DevEquipmentBo bo) {
+ List<DevEquipment> list = baseMapper.selectList(new QueryWrapper<DevEquipment>().lambda()
+ .eq(DevEquipment::getSequenceCode, bo.getSequenceCode())
+ .ne(DevEquipment::getId, bo.getId()));
+ if (list.size() > 0) {
+ throw new ServiceException("纭欢搴忓垪鐮侀噸澶�", HttpStatus.HTTP_PARTIAL);
+ }
+ DevEquipment update = BeanUtil.toBean(bo, DevEquipment.class);
+ validEntityBeforeSave(update);
+ return updateById(update);
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ *
+ * @param entity 瀹炰綋绫绘暟鎹�
+ */
+ private void validEntityBeforeSave(DevEquipment entity) {
+ //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+ if (isValid) {
+ //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+ }
+ return removeByIds(ids);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public DevEquipment externalAdd(DevEquipmentBo bo) {
+ DevEquipment po = baseMapper.selectOne(new QueryWrapper<DevEquipment>().lambda()
+ .eq(DevEquipment::getSequenceCode, bo.getSequenceCode()));
+ // 璁惧瀛樺湪锛岀洿鎺ヨ繑鍥炶澶囦俊鎭�
+ if (StringUtils.isEmpty(po)) {
+ return po;
+ }
+ // 璁惧涓嶅瓨鍦ㄥ垯鏂板缓
+ else {
+ // 鍏堟牴鎹簭鍒楃爜鐢熸垚搴忓垪鍙�
+ DevEquipmentCode c = new DevEquipmentCode();
+ c.setSequenceCode(bo.getSequenceCode());
+ devEquipmentCodeMapper.insert(c);
+ // 娣诲姞璁惧
+ DevEquipment add = BeanUtil.toBean(bo, DevEquipment.class);
+ add.setSerialNumber(c.getId());
+ baseMapper.insert(add);
+ return add;
+ }
+ }
+
+ @Override
+ public DevEquipment equipmentEdit(DevEquipmentBo bo) {
+ DevEquipment po = baseMapper.selectById(bo.getId());
+ if (null != bo.getSchoolId()) {
+ po.setSchoolId(bo.getSchoolId());
+ }
+ if (StringUtils.isEmpty(bo.getHostId())) {
+ po.setHostId(bo.getHostId());
+ }
+ if (StringUtils.isEmpty(bo.getNetworkId())) {
+ po.setNetworkId(bo.getNetworkId());
+ }
+ if (StringUtils.isEmpty(bo.getFrequencyBand())) {
+ po.setFrequencyBand(bo.getFrequencyBand());
+ }
+ if (null != bo.getBatchId()) {
+ po.setBatchId(bo.getBatchId());
+ }
+ if (StringUtils.isEmpty(bo.getRemarks())) {
+ po.setRemarks(bo.getRemarks());
+ }
+ baseMapper.updateById(po);
+ return po;
+ }
+}
diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevPeripheralUnitServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevPeripheralUnitServiceImpl.java
new file mode 100644
index 0000000..ca1ac90
--- /dev/null
+++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/DevPeripheralUnitServiceImpl.java
@@ -0,0 +1,103 @@
+package com.ruoyi.oa.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.http.HttpStatus;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.DevPeripheralUnitBo;
+import com.ruoyi.oa.domain.vo.DevPeripheralUnitVo;
+import com.ruoyi.oa.domain.DevPeripheralUnit;
+import com.ruoyi.oa.mapper.DevPeripheralUnitMapper;
+import com.ruoyi.oa.service.IDevPeripheralUnitService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 澶栬鍗曞厓Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2021-12-06
+ */
+@Service
+public class DevPeripheralUnitServiceImpl extends ServicePlusImpl<DevPeripheralUnitMapper, DevPeripheralUnit, DevPeripheralUnitVo> implements IDevPeripheralUnitService {
+
+ @Override
+ public DevPeripheralUnitVo queryById(Long id){
+ return getVoById(id);
+ }
+
+ @Override
+ public TableDataInfo<DevPeripheralUnitVo> queryPageList(DevPeripheralUnitBo bo) {
+ PagePlus<DevPeripheralUnit, DevPeripheralUnitVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+ return PageUtils.buildDataInfo(result);
+ }
+
+ @Override
+ public List<DevPeripheralUnitVo> queryList(DevPeripheralUnitBo bo) {
+ return listVo(buildQueryWrapper(bo));
+ }
+
+ private LambdaQueryWrapper<DevPeripheralUnit> buildQueryWrapper(DevPeripheralUnitBo bo) {
+ Map<String, Object> params = bo.getParams();
+ LambdaQueryWrapper<DevPeripheralUnit> lqw = Wrappers.lambdaQuery();
+ lqw.like(StringUtils.isNotBlank(bo.getCode()), DevPeripheralUnit::getCode, bo.getCode());
+ lqw.like(StringUtils.isNotBlank(bo.getName()), DevPeripheralUnit::getName, bo.getName());
+ lqw.like(StringUtils.isNotBlank(bo.getModel()), DevPeripheralUnit::getModel, bo.getModel());
+ lqw.like(StringUtils.isNotBlank(bo.getManufacturer()), DevPeripheralUnit::getManufacturer, bo.getManufacturer());
+ lqw.like(StringUtils.isNotBlank(bo.getVendorCode()), DevPeripheralUnit::getVendorCode, bo.getVendorCode());
+ lqw.eq(StringUtils.isNotBlank(bo.getBaudRate()), DevPeripheralUnit::getBaudRate, bo.getBaudRate());
+ return lqw;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insertByBo(DevPeripheralUnitBo bo) {
+ List<DevPeripheralUnit> list = baseMapper.selectList(new QueryWrapper<DevPeripheralUnit>().lambda()
+ .eq(DevPeripheralUnit::getVendorCode, bo.getVendorCode()));
+ if (list.size() > 0) {
+ throw new ServiceException("鍘傚晢浠g爜閲嶅", HttpStatus.HTTP_PARTIAL);
+ }
+ DevPeripheralUnit add = BeanUtil.toBean(bo, DevPeripheralUnit.class);
+ validEntityBeforeSave(add);
+ boolean flag = save(add);
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(DevPeripheralUnitBo bo) {
+ DevPeripheralUnit update = BeanUtil.toBean(bo, DevPeripheralUnit.class);
+ validEntityBeforeSave(update);
+ return updateById(update);
+ }
+
+ /**
+ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+ *
+ * @param entity 瀹炰綋绫绘暟鎹�
+ */
+ private void validEntityBeforeSave(DevPeripheralUnit entity){
+ //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+ if(isValid){
+ //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+ }
+ return removeByIds(ids);
+ }
+}
diff --git a/ruoyi-oa/src/main/resources/mapper/oa/DevBatchMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/DevBatchMapper.xml
new file mode 100644
index 0000000..a9cb60c
--- /dev/null
+++ b/ruoyi-oa/src/main/resources/mapper/oa/DevBatchMapper.xml
@@ -0,0 +1,22 @@
+<?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.DevBatchMapper">
+
+ <resultMap type="com.ruoyi.oa.domain.DevBatch" id="DevBatchResult">
+ <result property="id" column="id"/>
+ <result property="batch" column="batch"/>
+ <result property="orderDate" column="order_date"/>
+ <result property="arrivalDate" column="arrival_date"/>
+ <result property="illustrate" column="illustrate"/>
+ <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"/>
+ <result property="version" column="version"/>
+ </resultMap>
+
+
+</mapper>
diff --git a/ruoyi-oa/src/main/resources/mapper/oa/DevEquipmentMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/DevEquipmentMapper.xml
new file mode 100644
index 0000000..91c857f
--- /dev/null
+++ b/ruoyi-oa/src/main/resources/mapper/oa/DevEquipmentMapper.xml
@@ -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.DevEquipmentMapper">
+
+ <resultMap type="com.ruoyi.oa.domain.DevEquipment" id="DevEquipmentResult">
+ <result property="id" column="id"/>
+ <result property="serialNumber" column="serial_number"/>
+ <result property="type" column="type"/>
+ <result property="sequenceCode" column="sequence_code"/>
+ <result property="edition" column="edition"/>
+ <result property="schoolId" column="school_id"/>
+ <result property="hostId" column="host_id"/>
+ <result property="networkId" column="network_id"/>
+ <result property="frequencyBand" column="frequency_band"/>
+ <result property="batchId" column="batch_id"/>
+ <result property="useStatus" column="use_status"/>
+ <result property="remarks" column="remarks"/>
+ <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"/>
+ <result property="version" column="version"/>
+ </resultMap>
+
+
+</mapper>
diff --git a/ruoyi-oa/src/main/resources/mapper/oa/DevPeripheralUnitMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/DevPeripheralUnitMapper.xml
new file mode 100644
index 0000000..3591c3d
--- /dev/null
+++ b/ruoyi-oa/src/main/resources/mapper/oa/DevPeripheralUnitMapper.xml
@@ -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.DevPeripheralUnitMapper">
+
+ <resultMap type="com.ruoyi.oa.domain.DevPeripheralUnit" id="DevPeripheralUnitResult">
+ <result property="id" column="id"/>
+ <result property="code" column="code"/>
+ <result property="name" column="name"/>
+ <result property="model" column="model"/>
+ <result property="manufacturer" column="manufacturer"/>
+ <result property="vendorCode" column="vendor_code"/>
+ <result property="baudRate" column="baud_rate"/>
+ <result property="readInstruction" column="read_instruction"/>
+ <result property="loopLength" column="loop_length"/>
+ <result property="description" column="description"/>
+ <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"/>
+ <result property="version" column="version"/>
+ </resultMap>
+
+
+</mapper>
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index a901e0a..e0fea04 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -1,5 +1,7 @@
package com.ruoyi.system.service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -212,4 +214,6 @@
* @return 缁撴灉
*/
String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+ Page<SysUser> pageList(Page<SysUser> page, Long deptId);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index 995bd2d..e8686c1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -2,7 +2,9 @@
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.constant.UserConstants;
@@ -175,7 +177,11 @@
SysDept info = getById(dept.getParentId());
// 濡傛灉鐖惰妭鐐逛笉涓烘甯哥姸鎬�,鍒欎笉鍏佽鏂板瀛愯妭鐐�
if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) {
- throw new ServiceException("閮ㄩ棬鍋滅敤锛屼笉鍏佽鏂板");
+ throw new ServiceException("鏈烘瀯鍋滅敤锛屼笉鍏佽鏂板");
+ }
+ List<SysDept> list = baseMapper.selectList(new QueryWrapper<SysDept>().lambda().eq(SysDept::getCode, dept.getCode()));
+ if (list.size() > 0) {
+ throw new ServiceException("鏈烘瀯缂栧彿閲嶅", HttpStatus.HTTP_PARTIAL);
}
dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
return baseMapper.insert(dept);
@@ -189,6 +195,12 @@
*/
@Override
public int updateDept(SysDept dept) {
+ List<SysDept> list = baseMapper.selectList(new QueryWrapper<SysDept>().lambda()
+ .eq(SysDept::getCode, dept.getCode())
+ .ne(SysDept::getDeptId, dept.getDeptId()));
+ if (list.size() > 0) {
+ throw new ServiceException("鏈烘瀯缂栧彿閲嶅", HttpStatus.HTTP_PARTIAL);
+ }
SysDept newParentDept = getById(dept.getParentId());
SysDept oldDept = getById(dept.getDeptId());
if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 86f4642..be86f1f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -1,7 +1,9 @@
package com.ruoyi.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.entity.SysRole;
@@ -516,4 +518,9 @@
}
return successMsg.toString();
}
+
+ @Override
+ public Page<SysUser> pageList(Page<SysUser> page, Long deptId) {
+ return baseMapper.selectPage(page, new QueryWrapper<SysUser>().eq("dept_id", deptId));
+ }
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index 889982a..0908a15 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -11,6 +11,7 @@
<result property="deptName" column="dept_name"/>
<result property="orderNum" column="order_num"/>
<result property="leader" column="leader"/>
+ <result property="leaderAssistant" column="leader_assistant"/>
<result property="phone" column="phone"/>
<result property="email" column="email"/>
<result property="status" column="status"/>
@@ -23,7 +24,10 @@
</resultMap>
<sql id="selectDeptVo">
- select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
+ select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.leader_assistant
+ , d.code, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time, d.remarks,
+ (select u.nick_name from sys_user u where u.user_id = d.leader) as leaderName,
+ (select u.nick_name from sys_user u where u.user_id = d.leader_assistant) as leaderAssistantName
from sys_dept d
</sql>
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 5d9a185..9f4ead6 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -23,6 +23,9 @@
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
+ <result property="entryTime" column="entry_time"/>
+ <result property="photo" column="photo"/>
+ <result property="certificateNo" column="certificate_no"/>
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/>
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
</resultMap>
@@ -62,6 +65,9 @@
u.create_by,
u.create_time,
u.remark,
+ u.entry_time,
+ u.photo,
+ u.certificate_no,
d.dept_id,
d.parent_id,
d.dept_name,
--
Gitblit v1.9.1