diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
new file mode 100644
index 0000000..f9e2f91
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
@@ -0,0 +1,62 @@
+package com.casic.missiles.controller.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.service.system.ISystemPositionService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Api(tags = "岗位管理")
+@RestController
+@RequestMapping("/system/position")
+@RequiredArgsConstructor
+public class SystemPositionController {
+
+ private final ISystemPositionService positionService;
+
+ @PostMapping("add")
+ public ReturnDTO add(@RequestBody SystemPosition systemPosition){
+ positionService.add(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("update")
+ public ReturnDTO update(@RequestBody SystemPosition systemPosition){
+ positionService.update(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("delete")
+ public ReturnDTO delete(@RequestBody SystemPosition systemPosition){
+ positionService.delete(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("listPage")
+ public ReturnDTO listPage(Long searchId,String positionName){
+ Page page = PageFactory.defaultPage();
+ positionService.listPage(page,searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("list")
+ public ReturnDTO list(Long searchId,String positionName){
+ positionService.list(searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
new file mode 100644
index 0000000..f9e2f91
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
@@ -0,0 +1,62 @@
+package com.casic.missiles.controller.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.service.system.ISystemPositionService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Api(tags = "岗位管理")
+@RestController
+@RequestMapping("/system/position")
+@RequiredArgsConstructor
+public class SystemPositionController {
+
+ private final ISystemPositionService positionService;
+
+ @PostMapping("add")
+ public ReturnDTO add(@RequestBody SystemPosition systemPosition){
+ positionService.add(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("update")
+ public ReturnDTO update(@RequestBody SystemPosition systemPosition){
+ positionService.update(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("delete")
+ public ReturnDTO delete(@RequestBody SystemPosition systemPosition){
+ positionService.delete(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("listPage")
+ public ReturnDTO listPage(Long searchId,String positionName){
+ Page page = PageFactory.defaultPage();
+ positionService.listPage(page,searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("list")
+ public ReturnDTO list(Long searchId,String positionName){
+ positionService.list(searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
new file mode 100644
index 0000000..d495e2e
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
@@ -0,0 +1,114 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_location")
+public class SystemLocation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位id
+ */
+ @ApiModelProperty("岗位ID")
+ @TableField("position_id")
+ private Long positionId;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField(exist = false)
+ private String positionName;
+
+ /**
+ * 安装位置
+ */
+ @TableField("install_location")
+ private String installLocation;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
new file mode 100644
index 0000000..f9e2f91
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
@@ -0,0 +1,62 @@
+package com.casic.missiles.controller.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.service.system.ISystemPositionService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Api(tags = "岗位管理")
+@RestController
+@RequestMapping("/system/position")
+@RequiredArgsConstructor
+public class SystemPositionController {
+
+ private final ISystemPositionService positionService;
+
+ @PostMapping("add")
+ public ReturnDTO add(@RequestBody SystemPosition systemPosition){
+ positionService.add(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("update")
+ public ReturnDTO update(@RequestBody SystemPosition systemPosition){
+ positionService.update(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("delete")
+ public ReturnDTO delete(@RequestBody SystemPosition systemPosition){
+ positionService.delete(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("listPage")
+ public ReturnDTO listPage(Long searchId,String positionName){
+ Page page = PageFactory.defaultPage();
+ positionService.listPage(page,searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("list")
+ public ReturnDTO list(Long searchId,String positionName){
+ positionService.list(searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
new file mode 100644
index 0000000..d495e2e
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
@@ -0,0 +1,114 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_location")
+public class SystemLocation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位id
+ */
+ @ApiModelProperty("岗位ID")
+ @TableField("position_id")
+ private Long positionId;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField(exist = false)
+ private String positionName;
+
+ /**
+ * 安装位置
+ */
+ @TableField("install_location")
+ private String installLocation;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
new file mode 100644
index 0000000..ae21c3f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_position")
+public class SystemPosition implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField("position_name")
+ private String positionName;
+
+ @ApiModelProperty("备注")
+ @TableField("remarks")
+ private String remarks;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
new file mode 100644
index 0000000..f9e2f91
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
@@ -0,0 +1,62 @@
+package com.casic.missiles.controller.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.service.system.ISystemPositionService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Api(tags = "岗位管理")
+@RestController
+@RequestMapping("/system/position")
+@RequiredArgsConstructor
+public class SystemPositionController {
+
+ private final ISystemPositionService positionService;
+
+ @PostMapping("add")
+ public ReturnDTO add(@RequestBody SystemPosition systemPosition){
+ positionService.add(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("update")
+ public ReturnDTO update(@RequestBody SystemPosition systemPosition){
+ positionService.update(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("delete")
+ public ReturnDTO delete(@RequestBody SystemPosition systemPosition){
+ positionService.delete(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("listPage")
+ public ReturnDTO listPage(Long searchId,String positionName){
+ Page page = PageFactory.defaultPage();
+ positionService.listPage(page,searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("list")
+ public ReturnDTO list(Long searchId,String positionName){
+ positionService.list(searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
new file mode 100644
index 0000000..d495e2e
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
@@ -0,0 +1,114 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_location")
+public class SystemLocation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位id
+ */
+ @ApiModelProperty("岗位ID")
+ @TableField("position_id")
+ private Long positionId;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField(exist = false)
+ private String positionName;
+
+ /**
+ * 安装位置
+ */
+ @TableField("install_location")
+ private String installLocation;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
new file mode 100644
index 0000000..ae21c3f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_position")
+public class SystemPosition implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField("position_name")
+ private String positionName;
+
+ @ApiModelProperty("备注")
+ @TableField("remarks")
+ private String remarks;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
new file mode 100644
index 0000000..c77c548
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
@@ -0,0 +1,135 @@
+package com.casic.missiles.service.impl.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.application.service.AbstractDeptService;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.equipment.EquipmentInfo;
+import com.casic.missiles.model.equipment.EquipmentInfoApproval;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.mapper.system.SystemLocationMapper;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.modular.system.model.Dept;
+import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService;
+import com.casic.missiles.service.equipment.IEquipmentInfoService;
+import com.casic.missiles.service.system.ISystemLocationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.service.system.ISystemPositionService;
+import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 服务实现类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SystemLocationServiceImpl extends ServiceImpl implements ISystemLocationService {
+
+ private final AbstractDeptService deptService;
+ private final AbstractAuthService authService;
+ private final IEquipmentInfoService equipmentInfoService;
+ private final IEquipmentInfoApprovalService equipmentInfoApprovalService;
+ private final ISystemPositionService positionService;
+
+ @Override
+ public void add(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setCreateUser(authService.getLoginUser().getId());
+ systemLocation.setCreateTime(new Date());
+ this.save(systemLocation);
+ }
+
+ private void fillLocation(SystemLocation systemLocation) {
+ Long subSystemId = systemLocation.getSubSystemId();
+ Dept subSystem = deptService.getById(subSystemId);
+ if(ObjectUtil.isEmpty(subSystem) || subSystem.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept dept = deptService.getById(subSystem.getPid());
+ if(ObjectUtil.isEmpty(dept) || dept.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept company = deptService.getById(dept.getPid());
+ if(ObjectUtil.isEmpty(company) || company.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ systemLocation.setDeptId(dept.getId());
+ systemLocation.setCompanyId(company.getId());
+ }
+
+ @Override
+ public void update(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setUpdateUser(authService.getLoginUser().getId());
+ systemLocation.setUpdateTime(new Date());
+ this.updateById(systemLocation);
+ }
+
+ @Override
+ public void delete(SystemLocation systemLocation) {
+ Long positionId = systemLocation.getId();
+ QueryWrapper infoQueryWrapper = new QueryWrapper<>();
+ infoQueryWrapper.eq("use_position",positionId);
+ infoQueryWrapper.eq("is_del","0");
+ if(equipmentInfoService.count(infoQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备绑定,请先删除设备!");
+ }
+
+ QueryWrapper approvalQueryWrapper = new QueryWrapper<>();
+ approvalQueryWrapper.eq("use_position",positionId);
+ if(equipmentInfoApprovalService.count(approvalQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备审批记录绑定,请先删除审批记录!");
+ }
+ this.removeById(positionId);
+ }
+
+ @Override
+ public Page listPage(Page page, Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ page = this.page(page, queryWrapper);
+ page.getRecords().forEach(this::wrapper);
+ return page;
+ }
+
+ @Override
+ public List list(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ List list = this.list(queryWrapper);
+ list.forEach(this::wrapper);
+ return list;
+ }
+
+ @NotNull
+ private static QueryWrapper getQueryWrapper(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if(StrUtil.isNotEmpty(positionName)){
+ queryWrapper.like("position_name", positionName);
+ }
+ if(ObjectUtil.isEmpty(searchId)){
+ queryWrapper.and(i->i.eq("company_id", searchId)
+ .or().eq("dept_id", searchId)
+ .or().eq("sub_system_id", searchId));
+ }
+ return queryWrapper;
+ }
+
+ private void wrapper(SystemLocation systemLocation){
+ systemLocation.setCompanyName(deptService.getDeptName(systemLocation.getCompanyId()));
+ systemLocation.setDeptName(deptService.getDeptName(systemLocation.getDeptId()));
+ systemLocation.setSubSystemName(deptService.getDeptName(systemLocation.getSubSystemId()));
+ systemLocation.setPositionName(positionService.getNameById(systemLocation.getPositionId()));
+ }
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
new file mode 100644
index 0000000..f9e2f91
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
@@ -0,0 +1,62 @@
+package com.casic.missiles.controller.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.service.system.ISystemPositionService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Api(tags = "岗位管理")
+@RestController
+@RequestMapping("/system/position")
+@RequiredArgsConstructor
+public class SystemPositionController {
+
+ private final ISystemPositionService positionService;
+
+ @PostMapping("add")
+ public ReturnDTO add(@RequestBody SystemPosition systemPosition){
+ positionService.add(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("update")
+ public ReturnDTO update(@RequestBody SystemPosition systemPosition){
+ positionService.update(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("delete")
+ public ReturnDTO delete(@RequestBody SystemPosition systemPosition){
+ positionService.delete(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("listPage")
+ public ReturnDTO listPage(Long searchId,String positionName){
+ Page page = PageFactory.defaultPage();
+ positionService.listPage(page,searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("list")
+ public ReturnDTO list(Long searchId,String positionName){
+ positionService.list(searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
new file mode 100644
index 0000000..d495e2e
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
@@ -0,0 +1,114 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_location")
+public class SystemLocation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位id
+ */
+ @ApiModelProperty("岗位ID")
+ @TableField("position_id")
+ private Long positionId;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField(exist = false)
+ private String positionName;
+
+ /**
+ * 安装位置
+ */
+ @TableField("install_location")
+ private String installLocation;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
new file mode 100644
index 0000000..ae21c3f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_position")
+public class SystemPosition implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField("position_name")
+ private String positionName;
+
+ @ApiModelProperty("备注")
+ @TableField("remarks")
+ private String remarks;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
new file mode 100644
index 0000000..c77c548
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
@@ -0,0 +1,135 @@
+package com.casic.missiles.service.impl.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.application.service.AbstractDeptService;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.equipment.EquipmentInfo;
+import com.casic.missiles.model.equipment.EquipmentInfoApproval;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.mapper.system.SystemLocationMapper;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.modular.system.model.Dept;
+import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService;
+import com.casic.missiles.service.equipment.IEquipmentInfoService;
+import com.casic.missiles.service.system.ISystemLocationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.service.system.ISystemPositionService;
+import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 服务实现类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SystemLocationServiceImpl extends ServiceImpl implements ISystemLocationService {
+
+ private final AbstractDeptService deptService;
+ private final AbstractAuthService authService;
+ private final IEquipmentInfoService equipmentInfoService;
+ private final IEquipmentInfoApprovalService equipmentInfoApprovalService;
+ private final ISystemPositionService positionService;
+
+ @Override
+ public void add(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setCreateUser(authService.getLoginUser().getId());
+ systemLocation.setCreateTime(new Date());
+ this.save(systemLocation);
+ }
+
+ private void fillLocation(SystemLocation systemLocation) {
+ Long subSystemId = systemLocation.getSubSystemId();
+ Dept subSystem = deptService.getById(subSystemId);
+ if(ObjectUtil.isEmpty(subSystem) || subSystem.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept dept = deptService.getById(subSystem.getPid());
+ if(ObjectUtil.isEmpty(dept) || dept.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept company = deptService.getById(dept.getPid());
+ if(ObjectUtil.isEmpty(company) || company.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ systemLocation.setDeptId(dept.getId());
+ systemLocation.setCompanyId(company.getId());
+ }
+
+ @Override
+ public void update(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setUpdateUser(authService.getLoginUser().getId());
+ systemLocation.setUpdateTime(new Date());
+ this.updateById(systemLocation);
+ }
+
+ @Override
+ public void delete(SystemLocation systemLocation) {
+ Long positionId = systemLocation.getId();
+ QueryWrapper infoQueryWrapper = new QueryWrapper<>();
+ infoQueryWrapper.eq("use_position",positionId);
+ infoQueryWrapper.eq("is_del","0");
+ if(equipmentInfoService.count(infoQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备绑定,请先删除设备!");
+ }
+
+ QueryWrapper approvalQueryWrapper = new QueryWrapper<>();
+ approvalQueryWrapper.eq("use_position",positionId);
+ if(equipmentInfoApprovalService.count(approvalQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备审批记录绑定,请先删除审批记录!");
+ }
+ this.removeById(positionId);
+ }
+
+ @Override
+ public Page listPage(Page page, Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ page = this.page(page, queryWrapper);
+ page.getRecords().forEach(this::wrapper);
+ return page;
+ }
+
+ @Override
+ public List list(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ List list = this.list(queryWrapper);
+ list.forEach(this::wrapper);
+ return list;
+ }
+
+ @NotNull
+ private static QueryWrapper getQueryWrapper(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if(StrUtil.isNotEmpty(positionName)){
+ queryWrapper.like("position_name", positionName);
+ }
+ if(ObjectUtil.isEmpty(searchId)){
+ queryWrapper.and(i->i.eq("company_id", searchId)
+ .or().eq("dept_id", searchId)
+ .or().eq("sub_system_id", searchId));
+ }
+ return queryWrapper;
+ }
+
+ private void wrapper(SystemLocation systemLocation){
+ systemLocation.setCompanyName(deptService.getDeptName(systemLocation.getCompanyId()));
+ systemLocation.setDeptName(deptService.getDeptName(systemLocation.getDeptId()));
+ systemLocation.setSubSystemName(deptService.getDeptName(systemLocation.getSubSystemId()));
+ systemLocation.setPositionName(positionService.getNameById(systemLocation.getPositionId()));
+ }
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java
new file mode 100644
index 0000000..1520928
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java
@@ -0,0 +1,142 @@
+package com.casic.missiles.service.impl.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.context.AbstractPermissionContext;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.application.service.AbstractDeptService;
+import com.casic.missiles.core.application.service.AbstractUserService;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.equipment.EquipmentInfo;
+import com.casic.missiles.model.equipment.EquipmentInfoApproval;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.mapper.system.SystemPositionMapper;
+import com.casic.missiles.modular.system.model.Dept;
+import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService;
+import com.casic.missiles.service.equipment.IEquipmentInfoService;
+import com.casic.missiles.service.system.ISystemPositionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 服务实现类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SystemPositionServiceImpl extends ServiceImpl implements ISystemPositionService {
+
+ private final AbstractDeptService deptService;
+ private final AbstractAuthService authService;
+ private final IEquipmentInfoService equipmentInfoService;
+ private final IEquipmentInfoApprovalService equipmentInfoApprovalService;
+
+ @Override
+ public void add(SystemPosition systemPosition) {
+ fillPosition(systemPosition);
+ systemPosition.setCreateUser(authService.getLoginUser().getId());
+ systemPosition.setCreateTime(new Date());
+ this.save(systemPosition);
+ }
+
+ private void fillPosition(SystemPosition systemPosition) {
+ Long subSystemId = systemPosition.getSubSystemId();
+ Dept subSystem = deptService.getById(subSystemId);
+ if(ObjectUtil.isEmpty(subSystem) || subSystem.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept dept = deptService.getById(subSystem.getPid());
+ if(ObjectUtil.isEmpty(dept) || dept.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept company = deptService.getById(dept.getPid());
+ if(ObjectUtil.isEmpty(company) || company.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ systemPosition.setDeptId(dept.getId());
+ systemPosition.setCompanyId(company.getId());
+ }
+
+ @Override
+ public void update(SystemPosition systemPosition) {
+ fillPosition(systemPosition);
+ systemPosition.setUpdateUser(authService.getLoginUser().getId());
+ systemPosition.setUpdateTime(new Date());
+ this.updateById(systemPosition);
+ }
+
+ @Override
+ public void delete(SystemPosition systemPosition) {
+ Long positionId = systemPosition.getId();
+ QueryWrapper infoQueryWrapper = new QueryWrapper<>();
+ infoQueryWrapper.eq("use_position",positionId);
+ infoQueryWrapper.eq("is_del","0");
+ if(equipmentInfoService.count(infoQueryWrapper) > 0){
+ throw new BusinessException(501,"此岗位与已存在设备绑定,请先删除设备!");
+ }
+
+ QueryWrapper approvalQueryWrapper = new QueryWrapper<>();
+ approvalQueryWrapper.eq("use_position",positionId);
+ if(equipmentInfoApprovalService.count(approvalQueryWrapper) > 0){
+ throw new BusinessException(501,"此岗位与已存在设备审批记录绑定,请先删除审批记录!");
+ }
+ this.removeById(positionId);
+ }
+
+ @Override
+ public Page listPage(Page page, Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ page = this.page(page, queryWrapper);
+ page.getRecords().forEach(this::wrapper);
+ return page;
+ }
+
+ @Override
+ public List list(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ List list = this.list(queryWrapper);
+ list.forEach(this::wrapper);
+ return list;
+ }
+
+ @NotNull
+ private static QueryWrapper getQueryWrapper(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if(StrUtil.isNotEmpty(positionName)){
+ queryWrapper.like("position_name", positionName);
+ }
+ if(ObjectUtil.isEmpty(searchId)){
+ queryWrapper.and(i->i.eq("company_id", searchId)
+ .or().eq("dept_id", searchId)
+ .or().eq("sub_system_id", searchId));
+ }
+ return queryWrapper;
+ }
+
+ private void wrapper(SystemPosition systemPosition){
+ systemPosition.setCompanyName(deptService.getDeptName(systemPosition.getCompanyId()));
+ systemPosition.setDeptName(deptService.getDeptName(systemPosition.getDeptId()));
+ systemPosition.setSubSystemName(deptService.getDeptName(systemPosition.getSubSystemId()));
+ }
+
+ @Override
+ public String getNameById(Long positionId) {
+ SystemPosition position = this.getById(positionId);
+ if(ObjectUtil.isNotEmpty(position)){
+ return position.getPositionName();
+ }
+ return null;
+ }
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
new file mode 100644
index 0000000..f9e2f91
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
@@ -0,0 +1,62 @@
+package com.casic.missiles.controller.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.service.system.ISystemPositionService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Api(tags = "岗位管理")
+@RestController
+@RequestMapping("/system/position")
+@RequiredArgsConstructor
+public class SystemPositionController {
+
+ private final ISystemPositionService positionService;
+
+ @PostMapping("add")
+ public ReturnDTO add(@RequestBody SystemPosition systemPosition){
+ positionService.add(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("update")
+ public ReturnDTO update(@RequestBody SystemPosition systemPosition){
+ positionService.update(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("delete")
+ public ReturnDTO delete(@RequestBody SystemPosition systemPosition){
+ positionService.delete(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("listPage")
+ public ReturnDTO listPage(Long searchId,String positionName){
+ Page page = PageFactory.defaultPage();
+ positionService.listPage(page,searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("list")
+ public ReturnDTO list(Long searchId,String positionName){
+ positionService.list(searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
new file mode 100644
index 0000000..d495e2e
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
@@ -0,0 +1,114 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_location")
+public class SystemLocation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位id
+ */
+ @ApiModelProperty("岗位ID")
+ @TableField("position_id")
+ private Long positionId;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField(exist = false)
+ private String positionName;
+
+ /**
+ * 安装位置
+ */
+ @TableField("install_location")
+ private String installLocation;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
new file mode 100644
index 0000000..ae21c3f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_position")
+public class SystemPosition implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField("position_name")
+ private String positionName;
+
+ @ApiModelProperty("备注")
+ @TableField("remarks")
+ private String remarks;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
new file mode 100644
index 0000000..c77c548
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
@@ -0,0 +1,135 @@
+package com.casic.missiles.service.impl.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.application.service.AbstractDeptService;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.equipment.EquipmentInfo;
+import com.casic.missiles.model.equipment.EquipmentInfoApproval;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.mapper.system.SystemLocationMapper;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.modular.system.model.Dept;
+import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService;
+import com.casic.missiles.service.equipment.IEquipmentInfoService;
+import com.casic.missiles.service.system.ISystemLocationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.service.system.ISystemPositionService;
+import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 服务实现类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SystemLocationServiceImpl extends ServiceImpl implements ISystemLocationService {
+
+ private final AbstractDeptService deptService;
+ private final AbstractAuthService authService;
+ private final IEquipmentInfoService equipmentInfoService;
+ private final IEquipmentInfoApprovalService equipmentInfoApprovalService;
+ private final ISystemPositionService positionService;
+
+ @Override
+ public void add(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setCreateUser(authService.getLoginUser().getId());
+ systemLocation.setCreateTime(new Date());
+ this.save(systemLocation);
+ }
+
+ private void fillLocation(SystemLocation systemLocation) {
+ Long subSystemId = systemLocation.getSubSystemId();
+ Dept subSystem = deptService.getById(subSystemId);
+ if(ObjectUtil.isEmpty(subSystem) || subSystem.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept dept = deptService.getById(subSystem.getPid());
+ if(ObjectUtil.isEmpty(dept) || dept.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept company = deptService.getById(dept.getPid());
+ if(ObjectUtil.isEmpty(company) || company.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ systemLocation.setDeptId(dept.getId());
+ systemLocation.setCompanyId(company.getId());
+ }
+
+ @Override
+ public void update(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setUpdateUser(authService.getLoginUser().getId());
+ systemLocation.setUpdateTime(new Date());
+ this.updateById(systemLocation);
+ }
+
+ @Override
+ public void delete(SystemLocation systemLocation) {
+ Long positionId = systemLocation.getId();
+ QueryWrapper infoQueryWrapper = new QueryWrapper<>();
+ infoQueryWrapper.eq("use_position",positionId);
+ infoQueryWrapper.eq("is_del","0");
+ if(equipmentInfoService.count(infoQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备绑定,请先删除设备!");
+ }
+
+ QueryWrapper approvalQueryWrapper = new QueryWrapper<>();
+ approvalQueryWrapper.eq("use_position",positionId);
+ if(equipmentInfoApprovalService.count(approvalQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备审批记录绑定,请先删除审批记录!");
+ }
+ this.removeById(positionId);
+ }
+
+ @Override
+ public Page listPage(Page page, Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ page = this.page(page, queryWrapper);
+ page.getRecords().forEach(this::wrapper);
+ return page;
+ }
+
+ @Override
+ public List list(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ List list = this.list(queryWrapper);
+ list.forEach(this::wrapper);
+ return list;
+ }
+
+ @NotNull
+ private static QueryWrapper getQueryWrapper(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if(StrUtil.isNotEmpty(positionName)){
+ queryWrapper.like("position_name", positionName);
+ }
+ if(ObjectUtil.isEmpty(searchId)){
+ queryWrapper.and(i->i.eq("company_id", searchId)
+ .or().eq("dept_id", searchId)
+ .or().eq("sub_system_id", searchId));
+ }
+ return queryWrapper;
+ }
+
+ private void wrapper(SystemLocation systemLocation){
+ systemLocation.setCompanyName(deptService.getDeptName(systemLocation.getCompanyId()));
+ systemLocation.setDeptName(deptService.getDeptName(systemLocation.getDeptId()));
+ systemLocation.setSubSystemName(deptService.getDeptName(systemLocation.getSubSystemId()));
+ systemLocation.setPositionName(positionService.getNameById(systemLocation.getPositionId()));
+ }
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java
new file mode 100644
index 0000000..1520928
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java
@@ -0,0 +1,142 @@
+package com.casic.missiles.service.impl.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.context.AbstractPermissionContext;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.application.service.AbstractDeptService;
+import com.casic.missiles.core.application.service.AbstractUserService;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.equipment.EquipmentInfo;
+import com.casic.missiles.model.equipment.EquipmentInfoApproval;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.mapper.system.SystemPositionMapper;
+import com.casic.missiles.modular.system.model.Dept;
+import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService;
+import com.casic.missiles.service.equipment.IEquipmentInfoService;
+import com.casic.missiles.service.system.ISystemPositionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 服务实现类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SystemPositionServiceImpl extends ServiceImpl implements ISystemPositionService {
+
+ private final AbstractDeptService deptService;
+ private final AbstractAuthService authService;
+ private final IEquipmentInfoService equipmentInfoService;
+ private final IEquipmentInfoApprovalService equipmentInfoApprovalService;
+
+ @Override
+ public void add(SystemPosition systemPosition) {
+ fillPosition(systemPosition);
+ systemPosition.setCreateUser(authService.getLoginUser().getId());
+ systemPosition.setCreateTime(new Date());
+ this.save(systemPosition);
+ }
+
+ private void fillPosition(SystemPosition systemPosition) {
+ Long subSystemId = systemPosition.getSubSystemId();
+ Dept subSystem = deptService.getById(subSystemId);
+ if(ObjectUtil.isEmpty(subSystem) || subSystem.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept dept = deptService.getById(subSystem.getPid());
+ if(ObjectUtil.isEmpty(dept) || dept.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept company = deptService.getById(dept.getPid());
+ if(ObjectUtil.isEmpty(company) || company.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ systemPosition.setDeptId(dept.getId());
+ systemPosition.setCompanyId(company.getId());
+ }
+
+ @Override
+ public void update(SystemPosition systemPosition) {
+ fillPosition(systemPosition);
+ systemPosition.setUpdateUser(authService.getLoginUser().getId());
+ systemPosition.setUpdateTime(new Date());
+ this.updateById(systemPosition);
+ }
+
+ @Override
+ public void delete(SystemPosition systemPosition) {
+ Long positionId = systemPosition.getId();
+ QueryWrapper infoQueryWrapper = new QueryWrapper<>();
+ infoQueryWrapper.eq("use_position",positionId);
+ infoQueryWrapper.eq("is_del","0");
+ if(equipmentInfoService.count(infoQueryWrapper) > 0){
+ throw new BusinessException(501,"此岗位与已存在设备绑定,请先删除设备!");
+ }
+
+ QueryWrapper approvalQueryWrapper = new QueryWrapper<>();
+ approvalQueryWrapper.eq("use_position",positionId);
+ if(equipmentInfoApprovalService.count(approvalQueryWrapper) > 0){
+ throw new BusinessException(501,"此岗位与已存在设备审批记录绑定,请先删除审批记录!");
+ }
+ this.removeById(positionId);
+ }
+
+ @Override
+ public Page listPage(Page page, Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ page = this.page(page, queryWrapper);
+ page.getRecords().forEach(this::wrapper);
+ return page;
+ }
+
+ @Override
+ public List list(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ List list = this.list(queryWrapper);
+ list.forEach(this::wrapper);
+ return list;
+ }
+
+ @NotNull
+ private static QueryWrapper getQueryWrapper(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if(StrUtil.isNotEmpty(positionName)){
+ queryWrapper.like("position_name", positionName);
+ }
+ if(ObjectUtil.isEmpty(searchId)){
+ queryWrapper.and(i->i.eq("company_id", searchId)
+ .or().eq("dept_id", searchId)
+ .or().eq("sub_system_id", searchId));
+ }
+ return queryWrapper;
+ }
+
+ private void wrapper(SystemPosition systemPosition){
+ systemPosition.setCompanyName(deptService.getDeptName(systemPosition.getCompanyId()));
+ systemPosition.setDeptName(deptService.getDeptName(systemPosition.getDeptId()));
+ systemPosition.setSubSystemName(deptService.getDeptName(systemPosition.getSubSystemId()));
+ }
+
+ @Override
+ public String getNameById(Long positionId) {
+ SystemPosition position = this.getById(positionId);
+ if(ObjectUtil.isNotEmpty(position)){
+ return position.getPositionName();
+ }
+ return null;
+ }
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java
new file mode 100644
index 0000000..8d14dc8
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.service.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.model.system.SystemLocation;
+
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 服务类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface ISystemLocationService extends IService {
+
+ void add(SystemLocation systemLocation);
+
+ void update(SystemLocation systemLocation);
+
+ void delete(SystemLocation systemLocation);
+
+ Page listPage(Page page, Long searchId, String positionName);
+
+ List list(Long searchId, String positionName);
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
new file mode 100644
index 0000000..9f0a90c
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemLocationMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemLocationMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
new file mode 100644
index 0000000..9431d8d
--- /dev/null
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemPositionMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.mapper.system;
+
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 Mapper 接口
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface SystemPositionMapper extends BaseMapper {
+
+}
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
new file mode 100644
index 0000000..aceaed6
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemLocationMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_id, install_location, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
new file mode 100644
index 0000000..b225e47
--- /dev/null
+++ b/casic-metering-dao/src/main/resources/mapper/system/SystemPositionMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, company_id, dept_id, sub_system_id, position_name, remarks, create_user, update_user, create_time, update_time
+
+
+
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
new file mode 100644
index 0000000..e314003
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java
@@ -0,0 +1,18 @@
+package com.casic.missiles.controller.system;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@RestController
+@RequestMapping("/system-location")
+public class SystemLocationController {
+
+}
diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
new file mode 100644
index 0000000..f9e2f91
--- /dev/null
+++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java
@@ -0,0 +1,62 @@
+package com.casic.missiles.controller.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.service.system.ISystemPositionService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 前端控制器
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Api(tags = "岗位管理")
+@RestController
+@RequestMapping("/system/position")
+@RequiredArgsConstructor
+public class SystemPositionController {
+
+ private final ISystemPositionService positionService;
+
+ @PostMapping("add")
+ public ReturnDTO add(@RequestBody SystemPosition systemPosition){
+ positionService.add(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("update")
+ public ReturnDTO update(@RequestBody SystemPosition systemPosition){
+ positionService.update(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @PostMapping("delete")
+ public ReturnDTO delete(@RequestBody SystemPosition systemPosition){
+ positionService.delete(systemPosition);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("listPage")
+ public ReturnDTO listPage(Long searchId,String positionName){
+ Page page = PageFactory.defaultPage();
+ positionService.listPage(page,searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+ @GetMapping("list")
+ public ReturnDTO list(Long searchId,String positionName){
+ positionService.list(searchId,positionName);
+ return ReturnUtil.success();
+ }
+
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
new file mode 100644
index 0000000..d495e2e
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java
@@ -0,0 +1,114 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_location")
+public class SystemLocation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位id
+ */
+ @ApiModelProperty("岗位ID")
+ @TableField("position_id")
+ private Long positionId;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField(exist = false)
+ private String positionName;
+
+ /**
+ * 安装位置
+ */
+ @TableField("install_location")
+ private String installLocation;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
new file mode 100644
index 0000000..ae21c3f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemPosition.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.model.system;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Getter
+@Setter
+@TableName("eqpt_system_position")
+public class SystemPosition implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 所在单位id
+ */
+ @ApiModelProperty("所在单位id")
+ @TableField("company_id")
+ private Long companyId;
+
+ @ApiModelProperty("所在单位名称")
+ @TableField(exist = false)
+ private String companyName;
+
+ /**
+ * 使用部门id
+ */
+ @ApiModelProperty("使用部门id")
+ @TableField("dept_id")
+ private Long deptId;
+
+ @ApiModelProperty("使用部门名称")
+ @TableField(exist = false)
+ private String deptName;
+
+ /**
+ * 分系统id
+ */
+ @ApiModelProperty(value = "分系统id(新增/编辑时传)",required = true)
+ @TableField("sub_system_id")
+ private Long subSystemId;
+
+ @ApiModelProperty("分系统名称")
+ @TableField(exist = false)
+ private String subSystemName;
+
+ /**
+ * 使用岗位名称
+ */
+ @ApiModelProperty("岗位名称")
+ @TableField("position_name")
+ private String positionName;
+
+ @ApiModelProperty("备注")
+ @TableField("remarks")
+ private String remarks;
+
+ /**
+ * 创建人员
+ */
+ @TableField("create_user")
+ private Long createUser;
+
+ /**
+ * 更新人员
+ */
+ @TableField("update_user")
+ private Long updateUser;
+
+ /**
+ * 创建时间
+ */
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField("update_time")
+ private Date updateTime;
+
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
new file mode 100644
index 0000000..c77c548
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java
@@ -0,0 +1,135 @@
+package com.casic.missiles.service.impl.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.application.service.AbstractDeptService;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.equipment.EquipmentInfo;
+import com.casic.missiles.model.equipment.EquipmentInfoApproval;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.mapper.system.SystemLocationMapper;
+import com.casic.missiles.model.system.SystemLocation;
+import com.casic.missiles.modular.system.model.Dept;
+import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService;
+import com.casic.missiles.service.equipment.IEquipmentInfoService;
+import com.casic.missiles.service.system.ISystemLocationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.service.system.ISystemPositionService;
+import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 服务实现类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SystemLocationServiceImpl extends ServiceImpl implements ISystemLocationService {
+
+ private final AbstractDeptService deptService;
+ private final AbstractAuthService authService;
+ private final IEquipmentInfoService equipmentInfoService;
+ private final IEquipmentInfoApprovalService equipmentInfoApprovalService;
+ private final ISystemPositionService positionService;
+
+ @Override
+ public void add(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setCreateUser(authService.getLoginUser().getId());
+ systemLocation.setCreateTime(new Date());
+ this.save(systemLocation);
+ }
+
+ private void fillLocation(SystemLocation systemLocation) {
+ Long subSystemId = systemLocation.getSubSystemId();
+ Dept subSystem = deptService.getById(subSystemId);
+ if(ObjectUtil.isEmpty(subSystem) || subSystem.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept dept = deptService.getById(subSystem.getPid());
+ if(ObjectUtil.isEmpty(dept) || dept.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept company = deptService.getById(dept.getPid());
+ if(ObjectUtil.isEmpty(company) || company.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ systemLocation.setDeptId(dept.getId());
+ systemLocation.setCompanyId(company.getId());
+ }
+
+ @Override
+ public void update(SystemLocation systemLocation) {
+ fillLocation(systemLocation);
+ systemLocation.setUpdateUser(authService.getLoginUser().getId());
+ systemLocation.setUpdateTime(new Date());
+ this.updateById(systemLocation);
+ }
+
+ @Override
+ public void delete(SystemLocation systemLocation) {
+ Long positionId = systemLocation.getId();
+ QueryWrapper infoQueryWrapper = new QueryWrapper<>();
+ infoQueryWrapper.eq("use_position",positionId);
+ infoQueryWrapper.eq("is_del","0");
+ if(equipmentInfoService.count(infoQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备绑定,请先删除设备!");
+ }
+
+ QueryWrapper approvalQueryWrapper = new QueryWrapper<>();
+ approvalQueryWrapper.eq("use_position",positionId);
+ if(equipmentInfoApprovalService.count(approvalQueryWrapper) > 0){
+ throw new BusinessException(501,"此安装位置与已存在设备审批记录绑定,请先删除审批记录!");
+ }
+ this.removeById(positionId);
+ }
+
+ @Override
+ public Page listPage(Page page, Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ page = this.page(page, queryWrapper);
+ page.getRecords().forEach(this::wrapper);
+ return page;
+ }
+
+ @Override
+ public List list(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ List list = this.list(queryWrapper);
+ list.forEach(this::wrapper);
+ return list;
+ }
+
+ @NotNull
+ private static QueryWrapper getQueryWrapper(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if(StrUtil.isNotEmpty(positionName)){
+ queryWrapper.like("position_name", positionName);
+ }
+ if(ObjectUtil.isEmpty(searchId)){
+ queryWrapper.and(i->i.eq("company_id", searchId)
+ .or().eq("dept_id", searchId)
+ .or().eq("sub_system_id", searchId));
+ }
+ return queryWrapper;
+ }
+
+ private void wrapper(SystemLocation systemLocation){
+ systemLocation.setCompanyName(deptService.getDeptName(systemLocation.getCompanyId()));
+ systemLocation.setDeptName(deptService.getDeptName(systemLocation.getDeptId()));
+ systemLocation.setSubSystemName(deptService.getDeptName(systemLocation.getSubSystemId()));
+ systemLocation.setPositionName(positionService.getNameById(systemLocation.getPositionId()));
+ }
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java
new file mode 100644
index 0000000..1520928
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java
@@ -0,0 +1,142 @@
+package com.casic.missiles.service.impl.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.context.AbstractPermissionContext;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.application.service.AbstractDeptService;
+import com.casic.missiles.core.application.service.AbstractUserService;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.equipment.EquipmentInfo;
+import com.casic.missiles.model.equipment.EquipmentInfoApproval;
+import com.casic.missiles.model.system.SystemPosition;
+import com.casic.missiles.mapper.system.SystemPositionMapper;
+import com.casic.missiles.modular.system.model.Dept;
+import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService;
+import com.casic.missiles.service.equipment.IEquipmentInfoService;
+import com.casic.missiles.service.system.ISystemPositionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 服务实现类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class SystemPositionServiceImpl extends ServiceImpl implements ISystemPositionService {
+
+ private final AbstractDeptService deptService;
+ private final AbstractAuthService authService;
+ private final IEquipmentInfoService equipmentInfoService;
+ private final IEquipmentInfoApprovalService equipmentInfoApprovalService;
+
+ @Override
+ public void add(SystemPosition systemPosition) {
+ fillPosition(systemPosition);
+ systemPosition.setCreateUser(authService.getLoginUser().getId());
+ systemPosition.setCreateTime(new Date());
+ this.save(systemPosition);
+ }
+
+ private void fillPosition(SystemPosition systemPosition) {
+ Long subSystemId = systemPosition.getSubSystemId();
+ Dept subSystem = deptService.getById(subSystemId);
+ if(ObjectUtil.isEmpty(subSystem) || subSystem.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept dept = deptService.getById(subSystem.getPid());
+ if(ObjectUtil.isEmpty(dept) || dept.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ Dept company = deptService.getById(dept.getPid());
+ if(ObjectUtil.isEmpty(company) || company.getId() <= 0){
+ throw new BusinessException(501,"必须选择到分系统");
+ }
+ systemPosition.setDeptId(dept.getId());
+ systemPosition.setCompanyId(company.getId());
+ }
+
+ @Override
+ public void update(SystemPosition systemPosition) {
+ fillPosition(systemPosition);
+ systemPosition.setUpdateUser(authService.getLoginUser().getId());
+ systemPosition.setUpdateTime(new Date());
+ this.updateById(systemPosition);
+ }
+
+ @Override
+ public void delete(SystemPosition systemPosition) {
+ Long positionId = systemPosition.getId();
+ QueryWrapper infoQueryWrapper = new QueryWrapper<>();
+ infoQueryWrapper.eq("use_position",positionId);
+ infoQueryWrapper.eq("is_del","0");
+ if(equipmentInfoService.count(infoQueryWrapper) > 0){
+ throw new BusinessException(501,"此岗位与已存在设备绑定,请先删除设备!");
+ }
+
+ QueryWrapper approvalQueryWrapper = new QueryWrapper<>();
+ approvalQueryWrapper.eq("use_position",positionId);
+ if(equipmentInfoApprovalService.count(approvalQueryWrapper) > 0){
+ throw new BusinessException(501,"此岗位与已存在设备审批记录绑定,请先删除审批记录!");
+ }
+ this.removeById(positionId);
+ }
+
+ @Override
+ public Page listPage(Page page, Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ page = this.page(page, queryWrapper);
+ page.getRecords().forEach(this::wrapper);
+ return page;
+ }
+
+ @Override
+ public List list(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName);
+ List list = this.list(queryWrapper);
+ list.forEach(this::wrapper);
+ return list;
+ }
+
+ @NotNull
+ private static QueryWrapper getQueryWrapper(Long searchId, String positionName) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ if(StrUtil.isNotEmpty(positionName)){
+ queryWrapper.like("position_name", positionName);
+ }
+ if(ObjectUtil.isEmpty(searchId)){
+ queryWrapper.and(i->i.eq("company_id", searchId)
+ .or().eq("dept_id", searchId)
+ .or().eq("sub_system_id", searchId));
+ }
+ return queryWrapper;
+ }
+
+ private void wrapper(SystemPosition systemPosition){
+ systemPosition.setCompanyName(deptService.getDeptName(systemPosition.getCompanyId()));
+ systemPosition.setDeptName(deptService.getDeptName(systemPosition.getDeptId()));
+ systemPosition.setSubSystemName(deptService.getDeptName(systemPosition.getSubSystemId()));
+ }
+
+ @Override
+ public String getNameById(Long positionId) {
+ SystemPosition position = this.getById(positionId);
+ if(ObjectUtil.isNotEmpty(position)){
+ return position.getPositionName();
+ }
+ return null;
+ }
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java
new file mode 100644
index 0000000..8d14dc8
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.service.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.model.system.SystemLocation;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.model.system.SystemLocation;
+
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-安装位置管理 服务类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface ISystemLocationService extends IService {
+
+ void add(SystemLocation systemLocation);
+
+ void update(SystemLocation systemLocation);
+
+ void delete(SystemLocation systemLocation);
+
+ Page listPage(Page page, Long searchId, String positionName);
+
+ List list(Long searchId, String positionName);
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemPositionService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemPositionService.java
new file mode 100644
index 0000000..2bcd0ef
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemPositionService.java
@@ -0,0 +1,33 @@
+package com.casic.missiles.service.system;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.model.system.SystemPosition;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ *
+ * 受检系统-系统管理-岗位管理 服务类
+ *
+ *
+ * @author zhangyingjie
+ * @since 2023-11-15
+ */
+public interface ISystemPositionService extends IService {
+
+ void add(SystemPosition systemPosition);
+
+ void update(SystemPosition systemPosition);
+
+ void delete(SystemPosition systemPosition);
+
+ Page listPage(Page page, Long searchId, String positionName);
+
+ List list(Long searchId, String positionName);
+
+ String getNameById(Long positionId);
+
+
+}