From 28231163c688c379a688ce6878a1126ee218aa52 Mon Sep 17 00:00:00 2001
From: huangzhen <867217663@qq.com>
Date: 星期二, 26 九月 2023 16:53:48 +0800
Subject: [PATCH] 煤矿功能

---
 exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffResume.java                                |    5 
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java               |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperateTypeServiceImpl.java                   |    8 
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffController.java                        |   40 ++++
 exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffTrain.java                                 |    5 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaUpdateReqDTO.java                 |   16 -
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffUpdateReqDTO.java                   |   47 ++++
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffQaController.java                      |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java                      |   30 +++
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonTrainRecordService.java          |    2 
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/ExaminerManageController.java                 |    4 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeAddReqDTO.java                |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/service/SysDistrictService.java                               |    2 
 exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffExam.java                                  |    8 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonExamRecordService.java           |    2 
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffTrainController.java                   |   13 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/CmStaffByCodeRespDTO.java                 |   57 +++++
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java              |  125 +++++++++++
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffService.java                  |    3 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeUpdateReqDTO.java             |    7 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonTrainRecordServiceImpl.java |    7 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainUpdateReqDTO.java              |    7 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/CmStaffManagerService.java                       |    6 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffQaServiceImpl.java       |    2 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffServiceImpl.java         |   22 ++
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainAddReqDTO.java                 |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java                                    |    6 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonExamRecordServiceImpl.java  |    6 
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffResumeController.java                  |   13 
 exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffQa.java                                    |    3 
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/EmonRecordController.java                     |    7 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EduResourcesManagerServiceImpl.java         |    4 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffExamServiceImpl.java     |    2 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamUpdateReqDTO.java               |   13 
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/TeacherManageController.java                  |    4 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaAddReqDTO.java                    |   19 -
 exam-system/src/main/resources/mapper/coalmine/ExaminerManageOperateTypeBindMapper.xml                    |    4 
 exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffExamController.java                    |   11 
 exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamAddReqDTO.java                  |   13 
 exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EmonRecordManagerServiceImpl.java           |   17 +
 40 files changed, 441 insertions(+), 131 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffController.java
index e05eec4..cfcaea0 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffController.java
@@ -6,13 +6,16 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gkhy.exam.coalmine.entity.CmStaff;
 import com.gkhy.exam.coalmine.model.dto.req.CmStaffAddReqDTO;
+import com.gkhy.exam.coalmine.model.dto.req.CmStaffUpdateReqDTO;
 import com.gkhy.exam.coalmine.model.dto.req.ExaminerManageAddReqDTO;
+import com.gkhy.exam.coalmine.model.dto.resp.CmStaffByCodeRespDTO;
 import com.gkhy.exam.coalmine.model.dto.resp.CmStaffPageRespDTO;
 import com.gkhy.exam.coalmine.model.dto.resp.GetExaminerRespDTO;
 import com.gkhy.exam.coalmine.service.CmStaffManagerService;
 import com.gkhy.exam.coalmine.service.baseService.CmStaffService;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -21,6 +24,7 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 
 import javax.annotation.Resource;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -29,6 +33,7 @@
  * @author hz
  * @since 2023-09-14 10:37:03
  */
+@Api(tags = "人员管理")
 @RestController
 @RequestMapping("/cm/staff")
 public class CmStaffController extends BaseController {
@@ -49,6 +54,12 @@
         return getDataTable(list);
     }
 
+    @ApiOperation(value = "根据身份ID获取人员信息",httpMethod = "GET")
+    @GetMapping("/getByCode/{code}")
+    public AjaxResult selectByCode(@PathVariable @NotNull(message = "id不能为空") String code) {
+        return this.cmStaffManagerService.selectByCode(code);
+    }
+
     /**
      * 新增数据
      */
@@ -66,5 +77,34 @@
     public AjaxResult insert(@Validated @RequestBody CmStaffAddReqDTO reqDTO) {
         return this.cmStaffManagerService.saveCmStaff(reqDTO);
     }
+
+    /**
+     * 修改数据
+     */
+    @PostMapping("/edit")
+    @ApiOperation(value = "修改人员",httpMethod = "POST")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",dataTypeClass = Long.class, value = "id",required = true),
+            @ApiImplicitParam(name = "name",dataTypeClass = String.class, value = "姓名",required = true),
+            @ApiImplicitParam(name = "sex", dataTypeClass = String.class,value = "性别"),
+            @ApiImplicitParam(name = "code", dataTypeClass = String.class,value = "身份证",required = true),
+            @ApiImplicitParam(name = "mobilePhone", dataTypeClass = String.class,value = "手机号",required = true),
+            @ApiImplicitParam(name = "nationCode", dataTypeClass = String.class,value = "民族",required = true),
+            @ApiImplicitParam(name = "photoAttachment", dataTypeClass = Long.class,value = "证件照id"),
+            @ApiImplicitParam(name = "eduLevel", dataTypeClass = String.class,value = "最高学历",required = true)
+    })
+    public AjaxResult edit(@Validated @RequestBody CmStaffUpdateReqDTO reqDTO) {
+        return this.cmStaffManagerService.editCmStaff(reqDTO);
+    }
+
+    /**
+     * 删除人员
+     */
+    @ApiOperation(value = "根据id删除人员",httpMethod = "GET")
+    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "人员id",required = true)
+    @GetMapping("/del/{id}")
+    public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
+        return this.cmStaffManagerService.deleteCmStaff(id);
+    }
 }
 
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffExamController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffExamController.java
index ac33b1e..f879d52 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffExamController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffExamController.java
@@ -11,6 +11,7 @@
 import com.gkhy.exam.coalmine.model.dto.req.CmStaffResumeUpdateReqDTO;
 import com.gkhy.exam.coalmine.service.CmStaffManagerService;
 import com.gkhy.exam.coalmine.service.baseService.CmStaffExamService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -21,6 +22,7 @@
 import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -28,6 +30,7 @@
  * @author hz
  * @since 2023-09-14 10:37:03
  */
+@Api(tags = "考试经历管理")
 @RestController
 @RequestMapping("/cmStaffExam")
 public class CmStaffExamController{
@@ -44,8 +47,7 @@
     @ApiOperation(value = "新增考试经历",httpMethod = "POST")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
-            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDateTime.class,value = "开始时间"),
-            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDateTime.class,value = "结束时间",required = true),
+            @ApiImplicitParam(name = "examTime", dataTypeClass = LocalDate.class,value = "考试时间"),
             @ApiImplicitParam(name = "examCenter", dataTypeClass = String.class,value = "考试中心",required = true),
             @ApiImplicitParam(name = "subject", dataTypeClass = String.class,value = "科目",required = true),
             @ApiImplicitParam(name = "result", dataTypeClass = String.class,value = "考试结果;0-通过;1-未通过",required = true)
@@ -60,7 +62,7 @@
      */
     @ApiOperation(value = "根据id删除考试经历",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "考试经历id",required = true)
-    @GetMapping("/del")
+    @GetMapping("/del/{id}")
     public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.cmStaffManagerService.deleteCmStaffExam(id);
     }
@@ -73,8 +75,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id",dataTypeClass = Long.class, value = "考试经历id",required = true),
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
-            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDateTime.class,value = "开始时间"),
-            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDateTime.class,value = "结束时间",required = true),
+            @ApiImplicitParam(name = "examTime", dataTypeClass = LocalDate.class,value = "考试时间"),
             @ApiImplicitParam(name = "examCenter", dataTypeClass = String.class,value = "考试中心",required = true),
             @ApiImplicitParam(name = "subject", dataTypeClass = String.class,value = "科目",required = true),
             @ApiImplicitParam(name = "result", dataTypeClass = String.class,value = "考试结果;0-通过;1-未通过",required = true)
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffQaController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffQaController.java
index 74360d6..ecd7113 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffQaController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffQaController.java
@@ -11,6 +11,7 @@
 import com.gkhy.exam.coalmine.model.dto.req.CmStaffQaUpdateReqDTO;
 import com.gkhy.exam.coalmine.service.CmStaffManagerService;
 import com.gkhy.exam.coalmine.service.baseService.CmStaffQaService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -21,6 +22,7 @@
 import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -28,6 +30,7 @@
  * @author hz
  * @since 2023-09-14 10:37:03
  */
+@Api(tags = "资格证书管理")
 @RestController
 @RequestMapping("/cmStaffQa")
 public class CmStaffQaController{
@@ -46,10 +49,7 @@
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
             @ApiImplicitParam(name = "name", dataTypeClass = String.class,value = "证书名字",required = true),
             @ApiImplicitParam(name = "operateTypeId", dataTypeClass = Long.class,value = "操作类型",required = true),
-            @ApiImplicitParam(name = "qualificationType", dataTypeClass = String.class,value = "资格类型",required = true),
-            @ApiImplicitParam(name = "jobCategory", dataTypeClass = String.class,value = "作业类别",required = true),
-            @ApiImplicitParam(name = "operationItems", dataTypeClass = String.class,value = "操作项目",required = true),
-            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDateTime.class,value = "过期时间")
+            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDate.class,value = "过期时间")
     })
     public AjaxResult insert(@Validated @RequestBody CmStaffQaAddReqDTO reqDTO) {
         return this.cmStaffManagerService.saveCmStaffQa(reqDTO);
@@ -61,7 +61,7 @@
      */
     @ApiOperation(value = "根据id删除资格证书",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "资格证书id",required = true)
-    @GetMapping("/del")
+    @GetMapping("/del/{id}")
     public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.cmStaffManagerService.deleteCmStaffQa(id);
     }
@@ -76,10 +76,7 @@
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
             @ApiImplicitParam(name = "name", dataTypeClass = String.class,value = "证书名字",required = true),
             @ApiImplicitParam(name = "operateTypeId", dataTypeClass = Long.class,value = "操作类型",required = true),
-            @ApiImplicitParam(name = "qualificationType", dataTypeClass = String.class,value = "资格类型",required = true),
-            @ApiImplicitParam(name = "jobCategory", dataTypeClass = String.class,value = "作业类别",required = true),
-            @ApiImplicitParam(name = "operationItems", dataTypeClass = String.class,value = "操作项目",required = true),
-            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDateTime.class,value = "过期时间")
+            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDate.class,value = "过期时间")
     })
     public AjaxResult insert(@Validated @RequestBody CmStaffQaUpdateReqDTO reqDTO) {
         return this.cmStaffManagerService.updateCmStaffQa(reqDTO);
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffResumeController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffResumeController.java
index 7a07e46..5a9ceb7 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffResumeController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffResumeController.java
@@ -10,6 +10,7 @@
 import com.gkhy.exam.coalmine.model.dto.req.CmStaffResumeUpdateReqDTO;
 import com.gkhy.exam.coalmine.service.CmStaffManagerService;
 import com.gkhy.exam.coalmine.service.baseService.CmStaffResumeService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -20,6 +21,7 @@
 import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -27,6 +29,7 @@
  * @author hz
  * @since 2023-09-14 10:37:03
  */
+@Api(tags = "个人履历管理")
 @RestController
 @RequestMapping("/cm/staffResume")
 public class CmStaffResumeController{
@@ -43,8 +46,8 @@
     @ApiOperation(value = "新增个人履历",httpMethod = "POST")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
-            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDateTime.class,value = "开始时间"),
-            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDateTime.class,value = "结束时间",required = true),
+            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDate.class,value = "开始时间"),
+            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDate.class,value = "结束时间",required = true),
             @ApiImplicitParam(name = "unit", dataTypeClass = String.class,value = "单位",required = true)
     })
     public AjaxResult insert(@Validated @RequestBody CmStaffResumeAddReqDTO reqDTO) {
@@ -57,7 +60,7 @@
      */
     @ApiOperation(value = "根据id删除个人履历",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "履历id",required = true)
-    @GetMapping("/del")
+    @GetMapping("/del/{id}")
     public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.cmStaffManagerService.deleteCmStaffResume(id);
     }
@@ -70,8 +73,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id",dataTypeClass = Long.class, value = "id",required = true),
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
-            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDateTime.class,value = "开始时间"),
-            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDateTime.class,value = "结束时间",required = true),
+            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDate.class,value = "开始时间"),
+            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDate.class,value = "结束时间",required = true),
             @ApiImplicitParam(name = "unit", dataTypeClass = String.class,value = "单位",required = true)
     })
     public AjaxResult insert(@Validated @RequestBody CmStaffResumeUpdateReqDTO reqDTO) {
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffTrainController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffTrainController.java
index f908677..7d4c731 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffTrainController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffTrainController.java
@@ -11,6 +11,7 @@
 import com.gkhy.exam.coalmine.model.dto.req.CmStaffTrainUpdateReqDTO;
 import com.gkhy.exam.coalmine.service.CmStaffManagerService;
 import com.gkhy.exam.coalmine.service.baseService.CmStaffTrainService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -21,6 +22,7 @@
 import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -28,6 +30,7 @@
  * @author hz
  * @since 2023-09-14 10:37:03
  */
+@Api(tags = "个人培训经历管理")
 @RestController
 @RequestMapping("/cmStaffTrain")
 public class CmStaffTrainController{
@@ -44,8 +47,8 @@
     @ApiOperation(value = "新增个人培训经历",httpMethod = "POST")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
-            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDateTime.class,value = "开始时间"),
-            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDateTime.class,value = "结束时间",required = true),
+            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDate.class,value = "开始时间"),
+            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDate.class,value = "结束时间",required = true),
             @ApiImplicitParam(name = "unit", dataTypeClass = String.class,value = "单位",required = true),
             @ApiImplicitParam(name = "batch", dataTypeClass = String.class,value = "所属批次",required = true),
             @ApiImplicitParam(name = "subject", dataTypeClass = String.class,value = "科目",required = true)
@@ -60,7 +63,7 @@
      */
     @ApiOperation(value = "根据id删除个人培训经历",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "培训经历id",required = true)
-    @GetMapping("/del")
+    @GetMapping("/del/{id}")
     public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.cmStaffManagerService.deleteCmStaffTrain(id);
     }
@@ -73,8 +76,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id",dataTypeClass = Long.class, value = "id",required = true),
             @ApiImplicitParam(name = "staffId",dataTypeClass = Long.class, value = "人员id",required = true),
-            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDateTime.class,value = "开始时间"),
-            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDateTime.class,value = "结束时间",required = true),
+            @ApiImplicitParam(name = "startTime", dataTypeClass = LocalDate.class,value = "开始时间"),
+            @ApiImplicitParam(name = "endTime", dataTypeClass = LocalDate.class,value = "结束时间",required = true),
             @ApiImplicitParam(name = "unit", dataTypeClass = String.class,value = "单位",required = true),
             @ApiImplicitParam(name = "batch", dataTypeClass = String.class,value = "所属批次",required = true),
             @ApiImplicitParam(name = "subject", dataTypeClass = String.class,value = "科目",required = true)
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/EmonRecordController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/EmonRecordController.java
index a97a890..cc7e328 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/EmonRecordController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/EmonRecordController.java
@@ -11,6 +11,8 @@
 import com.gkhy.exam.coalmine.service.EmonRecordManagerService;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.system.service.SysDistrictService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -28,6 +30,7 @@
  * @author hz
  * @since 2023-09-13 10:13:39
  */
+@Api(tags = "监控记录接收管理")
 @RestController
 @RequestMapping("/emonRecord")
 public class EmonRecordController extends BaseController {
@@ -100,7 +103,7 @@
      */
     @ApiOperation(value = "根据id删除考场异常监控记录",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "记录id",required = true)
-    @GetMapping("/exam/del")
+    @GetMapping("/exam/del/{id}")
     public AjaxResult deleteExamRecord(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.emonRecordManagerService.deleteExamRecord(id);
     }
@@ -110,7 +113,7 @@
      */
     @ApiOperation(value = "根据id删除培训异常监控记录",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "记录id",required = true)
-    @GetMapping("/train/del")
+    @GetMapping("/train/del/{id}")
     public AjaxResult deleteTrainRecord(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.emonRecordManagerService.deleteTrainRecord(id);
     }
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/ExaminerManageController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/ExaminerManageController.java
index 0b320ed..d542bc5 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/ExaminerManageController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/ExaminerManageController.java
@@ -127,7 +127,7 @@
      */
     @ApiOperation(value = "根据id删除考评员",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "考评员id",required = true)
-    @GetMapping("/del")
+    @GetMapping("/del/{id}")
     public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.eduResourcesManagerService.removeExaminerById(id);
     }
@@ -137,7 +137,7 @@
      */
     @ApiOperation(value = "根据id删除与之关联的工种信息",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "关联的工种id",required = true)
-    @GetMapping("/operateType/del")
+    @GetMapping("/operateType/del/{id}")
     public AjaxResult deleteExaminerBindOperateType(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.eduResourcesManagerService.deleteExaminerBindOperateType(id);
     }
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/TeacherManageController.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/TeacherManageController.java
index 901c4fe..579cc8a 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/TeacherManageController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/controller/TeacherManageController.java
@@ -131,7 +131,7 @@
      */
     @ApiOperation(value = "根据id删除教师",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "教师id",required = true)
-    @GetMapping("/del")
+    @GetMapping("/del/{id}")
     public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.eduResourcesManagerService.removeTeacherById(id);
     }
@@ -141,7 +141,7 @@
      */
     @ApiOperation(value = "根据id删除与之关联的工种信息",httpMethod = "GET")
     @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "关联的工种id",required = true)
-    @GetMapping("/operateType/del")
+    @GetMapping("/operateType/del/{id}")
     public AjaxResult deleteTeacherBindOperateType(@PathVariable @NotNull(message = "id不能为空") Long id) {
         return this.eduResourcesManagerService.deleteTeacherBindOperateType(id);
     }
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffExam.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffExam.java
index aa89181..f77dd25 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffExam.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffExam.java
@@ -1,5 +1,6 @@
 package com.gkhy.exam.coalmine.entity;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 import com.baomidou.mybatisplus.annotation.*;
@@ -9,6 +10,8 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.springframework.data.annotation.Id;
+
+import javax.validation.constraints.NotNull;
 
 @Data
 @TableName("cm_staff_exam")
@@ -21,11 +24,8 @@
     //人员id    
     private Long staffId;
 
-    //开始时间    
-    private LocalDateTime startTime;
 
-    //结束时间    
-    private LocalDateTime endTime;
+    private LocalDate examTime;
 
     //考试中心    
     private String examCenter;
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffQa.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffQa.java
index 95cf1d6..f61b3f8 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffQa.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffQa.java
@@ -1,5 +1,6 @@
 package com.gkhy.exam.coalmine.entity;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 import com.baomidou.mybatisplus.annotation.*;
@@ -37,7 +38,7 @@
     private String operationItems;
 
     //过期时间    
-    private LocalDateTime expiredTime;
+    private LocalDate expiredTime;
 
     //删除标志(0代表存在 2代表删除)    
     private Byte delFlag;
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffResume.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffResume.java
index 732948e..41d64d3 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffResume.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffResume.java
@@ -1,5 +1,6 @@
 package com.gkhy.exam.coalmine.entity;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 import com.baomidou.mybatisplus.annotation.*;
@@ -22,10 +23,10 @@
     private Long staffId;
 
     //开始时间    
-    private LocalDateTime startTime;
+    private LocalDate startTime;
 
     //结束时间    
-    private LocalDateTime endTime;
+    private LocalDate endTime;
 
     //单位    
     private String unit;
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffTrain.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffTrain.java
index b0b1cd2..3b06aee 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffTrain.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffTrain.java
@@ -1,5 +1,6 @@
 package com.gkhy.exam.coalmine.entity;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 import com.baomidou.mybatisplus.annotation.*;
@@ -22,10 +23,10 @@
     private Long staffId;
 
     //开始时间    
-    private LocalDateTime startTime;
+    private LocalDate startTime;
 
     //结束时间    
-    private LocalDateTime endTime;
+    private LocalDate endTime;
 
     //单位    
     private String unit;
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamAddReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamAddReqDTO.java
index d7a9f6f..242eb34 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamAddReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamAddReqDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -20,15 +21,9 @@
     @NotNull(message = "人员id不能为空")
     private Long staffId;
 
-    //开始时间
-    @NotNull(message = "开始时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime startTime;
-
-    //结束时间
-    @NotNull(message = "结束时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime endTime;
+    //考试时间
+    @NotNull(message = "考试时间不能为空")
+    private LocalDate examTime;
 
     //考试中心
     @NotBlank(message = "考试中心不能为空")
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamUpdateReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamUpdateReqDTO.java
index 6a61d1d..74a06fe 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamUpdateReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamUpdateReqDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -24,15 +25,9 @@
     @NotNull(message = "人员id不能为空")
     private Long staffId;
 
-    //开始时间
-    @NotNull(message = "开始时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime startTime;
-
-    //结束时间
-    @NotNull(message = "结束时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime endTime;
+    //考试时间
+    @NotNull(message = "考试时间不能为空")
+    private LocalDate examTime;
 
     //考试中心
     @NotBlank(message = "考试中心不能为空")
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaAddReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaAddReqDTO.java
index 384e88b..3218b8a 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaAddReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaAddReqDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -28,20 +29,8 @@
     @NotNull(message = "操作类型不能为空")
     private Long operateTypeId;
 
-    //资格类型
-    @NotBlank(message = "资格类型不能为空")
-    private String qualificationType;
-
-    //作业类别
-    @NotBlank(message = "作业类别不能为空")
-    private String jobCategory;
-
-    //操作项目
-    @NotBlank(message = "操作项目不能为空")
-    private String operationItems;
-
     //过期时间
-    @NotNull(message = "操作类型不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime expiredTime;
+    @NotNull(message = "过期时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate expiredTime;
 }
\ No newline at end of file
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaUpdateReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaUpdateReqDTO.java
index d25c6a4..5012513 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaUpdateReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaUpdateReqDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -31,20 +32,7 @@
     @NotNull(message = "操作类型不能为空")
     private Long operateTypeId;
 
-    //资格类型
-    @NotBlank(message = "资格类型不能为空")
-    private String qualificationType;
-
-    //作业类别
-    @NotBlank(message = "作业类别不能为空")
-    private String jobCategory;
-
-    //操作项目
-    @NotBlank(message = "操作项目不能为空")
-    private String operationItems;
-
     //过期时间
     @NotNull(message = "操作类型不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime expiredTime;
+    private LocalDate expiredTime;
 }
\ No newline at end of file
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeAddReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeAddReqDTO.java
index b0a92f6..a3c5163 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeAddReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeAddReqDTO.java
@@ -2,10 +2,12 @@
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -22,13 +24,11 @@
 
     //开始时间
     @NotNull(message = "开始时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime startTime;
+    private LocalDate startTime;
 
     //结束时间
     @NotNull(message = "结束时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime endTime;
+    private LocalDate endTime;
 
     //单位
     @NotBlank(message = "单位不能为空")
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeUpdateReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeUpdateReqDTO.java
index 6f0d5b0..25fbdf5 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeUpdateReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeUpdateReqDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -25,13 +26,11 @@
 
     //开始时间
     @NotNull(message = "开始时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime startTime;
+    private LocalDate startTime;
 
     //结束时间
     @NotNull(message = "结束时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime endTime;
+    private LocalDate endTime;
 
     //单位
     @NotBlank(message = "单位不能为空")
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainAddReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainAddReqDTO.java
index db39f36..dbfb838 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainAddReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainAddReqDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -22,13 +23,11 @@
 
     //开始时间
     @NotNull(message = "开始时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime startTime;
+    private LocalDate startTime;
 
     //结束时间
     @NotNull(message = "结束时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime endTime;
+    private LocalDate endTime;
 
     //单位
     @NotBlank(message = "单位不能为空")
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainUpdateReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainUpdateReqDTO.java
index 65fe74a..efe0395 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainUpdateReqDTO.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainUpdateReqDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -25,13 +26,11 @@
 
     //开始时间
     @NotNull(message = "开始时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime startTime;
+    private LocalDate startTime;
 
     //结束时间
     @NotNull(message = "结束时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime endTime;
+    private LocalDate endTime;
 
     //单位
     @NotBlank(message = "单位不能为空")
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffUpdateReqDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffUpdateReqDTO.java
new file mode 100644
index 0000000..9a94c8c
--- /dev/null
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffUpdateReqDTO.java
@@ -0,0 +1,47 @@
+package com.gkhy.exam.coalmine.model.dto.req;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/14 11:00
+ */
+@Data
+public class CmStaffUpdateReqDTO implements Serializable {
+
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+    //姓名
+    @NotBlank(message = "姓名不能为空")
+    private String name;
+
+    //性别
+    @NotBlank(message = "性别不能为空")
+    private String sex;
+
+    //民族
+    @NotBlank(message = "民族不能为空")
+    private String nationCode;
+
+    //身份证
+    @NotBlank(message = "身份证不能为空")
+    private String code;
+
+    //手机号
+    @NotBlank(message = "手机号不能为空")
+    private String mobilePhone;
+
+    //最高学历
+    @NotBlank(message = "最高学历不能为空")
+    private String eduLevel;
+
+    //证件照
+    @NotNull(message = "证件照不能为空")
+    private Long photoAttachment;
+}
\ No newline at end of file
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/CmStaffByCodeRespDTO.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/CmStaffByCodeRespDTO.java
new file mode 100644
index 0000000..e0997dd
--- /dev/null
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/CmStaffByCodeRespDTO.java
@@ -0,0 +1,57 @@
+package com.gkhy.exam.coalmine.model.dto.resp;
+
+import com.gkhy.exam.coalmine.entity.CmStaffExam;
+import com.gkhy.exam.coalmine.entity.CmStaffQa;
+import com.gkhy.exam.coalmine.entity.CmStaffResume;
+import com.gkhy.exam.coalmine.entity.CmStaffTrain;
+import com.gkhy.exam.noncoalmine.model.vo.ViolationRegistrationVO;
+import com.gkhy.exam.noncoalmine.model.vo.WorkRegistrationVO;
+import com.ruoyi.file.entity.AttachmentInfo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/14 15:57
+ */
+@Data
+public class CmStaffByCodeRespDTO implements Serializable {
+
+    private Long id;
+
+    //姓名
+    private String name;
+
+    //性别
+    private String sex;
+
+    //民族
+    private String nationCode;
+
+    //身份证
+    private String code;
+
+    //手机号
+    private String mobilePhone;
+
+    //最高学历
+    private String eduLevel;
+
+    //证件照
+    private AttachmentInfo photoAttachment;
+
+    private List<ViolationRegistrationVO> violationRegistrationVOS;
+
+    private List<WorkRegistrationVO> workRegistrationVOS;
+
+    private List<CmStaffResume>  cmStaffResumes;
+
+    private List<CmStaffTrain> cmStaffTrains;
+
+    private List<CmStaffExam> cmStaffExams;
+
+    private List<CmStaffQa> cmStaffQas;
+}
\ No newline at end of file
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/CmStaffManagerService.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/CmStaffManagerService.java
index e23b4eb..5aad30d 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/CmStaffManagerService.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/CmStaffManagerService.java
@@ -1,6 +1,7 @@
 package com.gkhy.exam.coalmine.service;
 
 import com.gkhy.exam.coalmine.model.dto.req.*;
+import com.gkhy.exam.coalmine.model.dto.resp.CmStaffByCodeRespDTO;
 import com.gkhy.exam.coalmine.model.dto.resp.CmStaffPageRespDTO;
 import com.ruoyi.common.core.domain.AjaxResult;
 
@@ -40,4 +41,9 @@
 
     List<CmStaffPageRespDTO> selectPage();
 
+    AjaxResult editCmStaff(CmStaffUpdateReqDTO reqDTO);
+
+    AjaxResult deleteCmStaff(Long id);
+
+    AjaxResult selectByCode(String code);
 }
\ No newline at end of file
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffService.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffService.java
index 8dc239b..3be773a 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffService.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffService.java
@@ -9,5 +9,8 @@
  */
 public interface CmStaffService extends IService<CmStaff> {
 
+    CmStaff selectByCode(String code);
+
+    CmStaff getValidById(Long id);
 }
 
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonExamRecordService.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonExamRecordService.java
index 1368e34..8b62ef0 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonExamRecordService.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonExamRecordService.java
@@ -14,7 +14,7 @@
 
     EmonExamRecord findValidById(Long id);
 
-    List<EmonExamRecord> listValid();
+    List<EmonExamRecord> listValid(List<Long> childrenIds);
 
 }
 
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonTrainRecordService.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonTrainRecordService.java
index a5470c7..c31771d 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonTrainRecordService.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonTrainRecordService.java
@@ -13,7 +13,7 @@
 
     EmonTrainRecord findValidById(Long id);
 
-    List<EmonTrainRecord> listValid();
+    List<EmonTrainRecord> listValid(List<Long> childrenIds);
 
 }
 
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffExamServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffExamServiceImpl.java
index b4e5d6f..b8446df 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffExamServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffExamServiceImpl.java
@@ -34,7 +34,7 @@
     public List<CmStaffExam> listValid(Long id) {
         LambdaQueryWrapper<CmStaffExam> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(CmStaffExam::getDelFlag, DeleteStatusEnum.NO.getStatus())
-                .eq(CmStaffExam::getId,id);
+                .eq(CmStaffExam::getStaffId,id);
         return cmStaffExamMapper.selectList(wrapper);
     }
 }
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffQaServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffQaServiceImpl.java
index 0aa4046..5e2a7a7 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffQaServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffQaServiceImpl.java
@@ -35,7 +35,7 @@
     public List<CmStaffQa> listValid(Long id) {
         LambdaQueryWrapper<CmStaffQa> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(CmStaffQa::getDelFlag, DeleteStatusEnum.NO.getStatus())
-                .eq(CmStaffQa::getId,id);
+                .eq(CmStaffQa::getStaffId,id);
         return cmStaffQaMapper.selectList(wrapper);
     }
 }
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffServiceImpl.java
index bff6cce..e46df9b 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffServiceImpl.java
@@ -1,10 +1,14 @@
 package com.gkhy.exam.coalmine.service.baseService.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.exam.coalmine.mapper.CmStaffMapper;
 import com.gkhy.exam.coalmine.entity.CmStaff;
 import com.gkhy.exam.coalmine.service.baseService.CmStaffService;
+import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 
 /**
  * @author hz
@@ -13,5 +17,23 @@
 @Service("cmStaffManageServiceImpl")
 public class CmStaffServiceImpl extends ServiceImpl<CmStaffMapper, CmStaff> implements CmStaffService {
 
+    @Resource
+    private CmStaffMapper cmStaffMapper;
+
+    @Override
+    public CmStaff selectByCode(String code) {
+        LambdaQueryWrapper<CmStaff> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CmStaff::getCode,code)
+                .eq(CmStaff::getDelFlag, DeleteStatusEnum.NO.getStatus());
+        return cmStaffMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public CmStaff getValidById(Long id) {
+        LambdaQueryWrapper<CmStaff> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CmStaff::getId,id)
+                .eq(CmStaff::getDelFlag, DeleteStatusEnum.NO.getStatus());
+        return cmStaffMapper.selectOne(wrapper);
+    }
 }
 
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonExamRecordServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonExamRecordServiceImpl.java
index 9b3f883..781a74a 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonExamRecordServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonExamRecordServiceImpl.java
@@ -7,6 +7,7 @@
 import com.gkhy.exam.coalmine.service.baseService.EmonExamRecordService;
 import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -31,10 +32,13 @@
     }
 
     @Override
-    public List<EmonExamRecord> listValid() {
+    public List<EmonExamRecord> listValid(List<Long> childrenIds) {
         LambdaQueryWrapper<EmonExamRecord> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(EmonExamRecord::getDelFlag, DeleteStatusEnum.NO.getStatus())
                 .orderByDesc(EmonExamRecord::getReportTime);
+        if (!CollectionUtils.isEmpty(childrenIds)){
+            wrapper.in(EmonExamRecord::getDistrictId,childrenIds);
+        }
         return emonExamRecordMapper.selectList(wrapper);
     }
 }
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonTrainRecordServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonTrainRecordServiceImpl.java
index f25152b..dac1f83 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonTrainRecordServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonTrainRecordServiceImpl.java
@@ -2,11 +2,13 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.coalmine.entity.EmonExamRecord;
 import com.gkhy.exam.coalmine.mapper.EmonTrainRecordMapper;
 import com.gkhy.exam.coalmine.entity.EmonTrainRecord;
 import com.gkhy.exam.coalmine.service.baseService.EmonTrainRecordService;
 import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -31,10 +33,13 @@
     }
 
     @Override
-    public List<EmonTrainRecord> listValid() {
+    public List<EmonTrainRecord> listValid(List<Long> childrenIds) {
         LambdaQueryWrapper<EmonTrainRecord> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(EmonTrainRecord::getDelFlag, DeleteStatusEnum.NO.getStatus())
                 .orderByDesc(EmonTrainRecord::getReportTime);
+        if (!CollectionUtils.isEmpty(childrenIds)){
+            wrapper.in(EmonTrainRecord::getDistrictId,childrenIds);
+        }
         return emonTrainRecordMapper.selectList(wrapper);
     }
 }
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java
index d45b56a..8547dca 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.gkhy.exam.coalmine.entity.*;
 import com.gkhy.exam.coalmine.model.dto.req.*;
+import com.gkhy.exam.coalmine.model.dto.resp.CmStaffByCodeRespDTO;
 import com.gkhy.exam.coalmine.model.dto.resp.CmStaffPageRespDTO;
 import com.gkhy.exam.coalmine.service.CmStaffManagerService;
 import com.gkhy.exam.coalmine.service.baseService.*;
@@ -13,11 +14,15 @@
 import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
 import com.ruoyi.common.exception.BusinessException;
 import com.ruoyi.file.service.AttachmentInfoService;
+import com.ruoyi.system.domain.bo.SysOperateTypeWholeNameBO;
+import com.ruoyi.system.service.SysOperateTypeService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -34,6 +39,9 @@
 
     @Resource
     private CmStaffTrainService cmStaffTrainService;
+
+    @Resource
+    private SysOperateTypeService sysOperateTypeService;
 
     @Resource
     private CmStaffResumeService cmStaffResumeService;
@@ -55,6 +63,9 @@
 
     @Override
     public AjaxResult saveCmStaff(CmStaffAddReqDTO reqDTO) {
+        CmStaff staff = cmStaffService.selectByCode(reqDTO.getCode());
+        if (staff != null)
+            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"该身份证人员已存在");
         CmStaff cmStaff = new CmStaff();
         BeanUtils.copyProperties(reqDTO,cmStaff);
         cmStaff.setDelFlag(DeleteStatusEnum.NO.getStatus());
@@ -81,7 +92,7 @@
         if (cmStaffResume == null)
             return AjaxResult.success("删除履历成功");
         cmStaffResume.setDelFlag(DeleteStatusEnum.YES.getStatus());
-        boolean save = cmStaffResumeService.save(cmStaffResume);
+        boolean save = cmStaffResumeService.updateById(cmStaffResume);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败");
         return AjaxResult.success("删除履历成功");
@@ -93,7 +104,7 @@
         if (cmStaffResume == null)
             throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
         BeanUtils.copyProperties(reqDTO,cmStaffResume,"id");
-        boolean save = cmStaffResumeService.save(cmStaffResume);
+        boolean save = cmStaffResumeService.updateById(cmStaffResume);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败");
         return AjaxResult.success("删除履历成功");
@@ -116,7 +127,7 @@
         if (cmStaffTrain == null)
             return AjaxResult.success("删除培训经历成功");
         cmStaffTrain.setDelFlag(DeleteStatusEnum.YES.getStatus());
-        boolean save = cmStaffTrainService.save(cmStaffTrain);
+        boolean save = cmStaffTrainService.updateById(cmStaffTrain);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除培训经历失败");
         return AjaxResult.success("删除培训经历成功");
@@ -128,7 +139,7 @@
         if (cmStaffTrain == null)
             throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
         BeanUtils.copyProperties(reqDTO,cmStaffTrain,"id");
-        boolean save = cmStaffTrainService.save(cmStaffTrain);
+        boolean save = cmStaffTrainService.updateById(cmStaffTrain);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改培训经历失败");
         return AjaxResult.success("修改培训经历成功");
@@ -151,7 +162,7 @@
         if (cmStaffExam == null)
             return AjaxResult.success("删除考试经历成功");
         cmStaffExam.setDelFlag(DeleteStatusEnum.YES.getStatus());
-        boolean save = cmStaffExamService.save(cmStaffExam);
+        boolean save = cmStaffExamService.updateById(cmStaffExam);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除考试经历失败");
         return AjaxResult.success("删除考试经历成功");
@@ -163,7 +174,7 @@
         if (cmStaffExam == null)
             throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
         BeanUtils.copyProperties(reqDTO,cmStaffExam,"id");
-        boolean save = cmStaffExamService.save(cmStaffExam);
+        boolean save = cmStaffExamService.updateById(cmStaffExam);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改考试经历失败");
         return AjaxResult.success("修改考试经历成功");
@@ -173,6 +184,10 @@
     public AjaxResult saveCmStaffQa(CmStaffQaAddReqDTO reqDTO) {
         CmStaffQa cmStaffQa = new CmStaffQa();
         BeanUtils.copyProperties(reqDTO,cmStaffQa);
+        SysOperateTypeWholeNameBO operateTypeWholeName = sysOperateTypeService.getOperateTypeWholeNameById(reqDTO.getOperateTypeId());
+        if (operateTypeWholeName == null)
+            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"作业与操作类型不存在");
+        BeanUtils.copyProperties(operateTypeWholeName,cmStaffQa);
         cmStaffQa.setDelFlag(DeleteStatusEnum.NO.getStatus());
         boolean save = cmStaffQaService.save(cmStaffQa);
         if (!save)
@@ -186,7 +201,7 @@
         if (cmStaffQa == null)
             return AjaxResult.success("删除资格证书成功");
         cmStaffQa.setDelFlag(DeleteStatusEnum.YES.getStatus());
-        boolean save = cmStaffQaService.save(cmStaffQa);
+        boolean save = cmStaffQaService.updateById(cmStaffQa);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除资格证书失败");
         return AjaxResult.success("删除资格证书成功");
@@ -198,7 +213,11 @@
         if (cmStaffQa == null)
             throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
         BeanUtils.copyProperties(reqDTO,cmStaffQa,"id");
-        boolean save = cmStaffQaService.save(cmStaffQa);
+        SysOperateTypeWholeNameBO operateTypeWholeName = sysOperateTypeService.getOperateTypeWholeNameById(reqDTO.getOperateTypeId());
+        if (operateTypeWholeName == null)
+            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"作业与操作类型不存在");
+        BeanUtils.copyProperties(operateTypeWholeName,cmStaffQa);
+        boolean save = cmStaffQaService.updateById(cmStaffQa);
         if (!save)
             throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改资格证书失败");
         return AjaxResult.success("修改资格证书成功");
@@ -210,10 +229,11 @@
         wrapper.eq(CmStaff::getDelFlag,DeleteStatusEnum.NO.getStatus());
         List<CmStaff> cmStaffs = cmStaffService.list(wrapper);
         if (CollectionUtils.isEmpty(cmStaffs)){
-            return null;
+            return new ArrayList<>();
         }
         List<CmStaffPageRespDTO> dtos = cmStaffs.stream().map(cmStaff -> {
             CmStaffPageRespDTO dto = new CmStaffPageRespDTO();
+            BeanUtils.copyProperties(cmStaff,dto);
             Long id = cmStaff.getId();
             dto.setPhotoAttachment(attachmentInfoService.getById(cmStaff.getPhotoAttachment()));
             dto.setWorkRegistrationVOS(workRegistrationService.getByIdCard(cmStaff.getCode(), (byte) 0));
@@ -226,4 +246,91 @@
         }).collect(Collectors.toList());
         return dtos;
     }
+
+    @Override
+    public AjaxResult editCmStaff(CmStaffUpdateReqDTO reqDTO) {
+        CmStaff staff = cmStaffService.selectByCode(reqDTO.getCode());
+        if (staff != null && staff.getId() != reqDTO.getId())
+            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"该身份证人员已存在");
+        BeanUtils.copyProperties(reqDTO,staff);
+        boolean save = cmStaffService.updateById(staff);
+        if (!save)
+            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改失败");
+        return AjaxResult.success("修改成功");
+    }
+
+    @Override
+    @Transactional
+    public AjaxResult deleteCmStaff(Long id) {
+        CmStaff cmStaff = cmStaffService.getValidById(id);
+        if (cmStaff == null)
+            return AjaxResult.success("删除成功");
+        cmStaff.setDelFlag(DeleteStatusEnum.YES.getStatus());
+        boolean result = cmStaffService.updateById(cmStaff);
+        if (!result)
+            return AjaxResult.success("删除失败");
+        List<CmStaffExam> cmStaffExams = cmStaffExamService.listValid(id);
+        if (!CollectionUtils.isEmpty(cmStaffExams)){
+            cmStaffExams = cmStaffExams.stream().map(cmStaffExam -> {
+                cmStaffExam.setDelFlag(DeleteStatusEnum.YES.getStatus());
+                return cmStaffExam;
+            }).collect(Collectors.toList());
+            boolean cmStaffExamResult = cmStaffExamService.updateBatchById(cmStaffExams);
+            if (!cmStaffExamResult)
+                return AjaxResult.success("删除失败");
+        }
+        List<CmStaffQa> cmStaffQas = cmStaffQaService.listValid(id);
+        if (!CollectionUtils.isEmpty(cmStaffQas)){
+            cmStaffQas = cmStaffQas.stream().map(cmStaffQa -> {
+                cmStaffQa.setDelFlag(DeleteStatusEnum.YES.getStatus());
+                return cmStaffQa;
+            }).collect(Collectors.toList());
+            boolean cmStaffQaResult = cmStaffQaService.updateBatchById(cmStaffQas);
+            if (!cmStaffQaResult)
+                return AjaxResult.success("删除失败");
+        }
+        List<CmStaffResume> cmStaffResumes = cmStaffResumeService.listValid(id);
+        if (!CollectionUtils.isEmpty(cmStaffResumes)){
+            cmStaffResumes = cmStaffResumes.stream().map(cmStaffResume -> {
+                cmStaffResume.setDelFlag(DeleteStatusEnum.YES.getStatus());
+                return cmStaffResume;
+            }).collect(Collectors.toList());
+            boolean cmStaffResumeResult = cmStaffResumeService.updateBatchById(cmStaffResumes);
+            if (!cmStaffResumeResult)
+                return AjaxResult.success("删除失败");
+        }
+        List<CmStaffTrain> cmStaffTrains = cmStaffTrainService.listValid(id);
+        if (!CollectionUtils.isEmpty(cmStaffTrains)){
+            cmStaffTrains = cmStaffTrains.stream().map(cmStaffTrain -> {
+                cmStaffTrain.setDelFlag(DeleteStatusEnum.YES.getStatus());
+                return cmStaffTrain;
+            }).collect(Collectors.toList());
+            boolean cmStaffTrainResult = cmStaffTrainService.updateBatchById(cmStaffTrains);
+            if (!cmStaffTrainResult)
+                return AjaxResult.success("删除失败");
+        }
+        return AjaxResult.success("删除成功");
+    }
+
+    @Override
+    public AjaxResult selectByCode(String code) {
+        LambdaQueryWrapper<CmStaff> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CmStaff::getDelFlag,DeleteStatusEnum.NO.getStatus())
+                .eq(CmStaff::getCode,code);
+        CmStaff cmStaff = cmStaffService.getOne(wrapper);
+        if (wrapper == null){
+            return AjaxResult.success();
+        }
+        CmStaffByCodeRespDTO dto = new CmStaffByCodeRespDTO();
+        BeanUtils.copyProperties(cmStaff,dto);
+        Long id = cmStaff.getId();
+        dto.setPhotoAttachment(attachmentInfoService.getById(cmStaff.getPhotoAttachment()));
+        dto.setWorkRegistrationVOS(workRegistrationService.getByIdCard(cmStaff.getCode(), (byte) 0));
+        dto.setViolationRegistrationVOS(violationRegistrationService.getByIdCard(cmStaff.getCode(),(byte)0));
+        dto.setCmStaffResumes(cmStaffResumeService.listValid(id));
+        dto.setCmStaffTrains(cmStaffTrainService.listValid(id));
+        dto.setCmStaffExams(cmStaffExamService.listValid(id));
+        dto.setCmStaffQas(cmStaffQaService.listValid(id));
+        return AjaxResult.success(dto);
+    }
 }
\ No newline at end of file
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EduResourcesManagerServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EduResourcesManagerServiceImpl.java
index 5eb58e2..9887bf5 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EduResourcesManagerServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EduResourcesManagerServiceImpl.java
@@ -220,7 +220,7 @@
         wrapper.eq(ExaminerManage::getDelFlag,DeleteStatusEnum.NO.getStatus());
         List<ExaminerManage> list = examinerManageService.list(wrapper);
         if (CollectionUtils.isEmpty(list))
-            return null;
+            return new ArrayList<>();
         List<GetExaminerRespDTO> dtos = new ArrayList<>();
         for (ExaminerManage manage : list) {
             GetExaminerRespDTO dto = getExaminerRespDTO(manage);
@@ -345,7 +345,7 @@
         wrapper.eq(TeacherManage::getDelFlag,DeleteStatusEnum.NO.getStatus());
         List<TeacherManage> list = teacherManageService.list(wrapper);
         if (CollectionUtils.isEmpty(list))
-            return null;
+            return new ArrayList<>();
         List<GetTeacherRespDTO> dtos = new ArrayList<>();
         for (TeacherManage manage : list) {
             GetTeacherRespDTO dto = getTeacherRespDTO(manage);
diff --git a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EmonRecordManagerServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EmonRecordManagerServiceImpl.java
index 60596a3..02916fa 100644
--- a/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EmonRecordManagerServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EmonRecordManagerServiceImpl.java
@@ -18,6 +18,7 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.file.entity.AttachmentInfo;
 import com.ruoyi.file.service.AttachmentService;
+import com.ruoyi.system.service.SysDistrictService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -26,6 +27,7 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -41,6 +43,9 @@
 
     @Resource
     private AttachmentService attachmentService;
+
+    @Resource
+    private SysDistrictService sysDistrictService;
 
     @Resource
     private EmonExamRecordService  emonExamRecordService;
@@ -106,7 +111,9 @@
 
     @Override
     public List<GetExamDataRespDTO> getExamData() {
-        List<EmonExamRecord> emonExamRecords =  emonExamRecordService.listValid();
+        Long districtId = SecurityUtils.getLoginUser().getUser().getDistrictId();
+        List<Long> childrenIds = sysDistrictService.selectChildrenIdsById(districtId);
+        List<EmonExamRecord> emonExamRecords =  emonExamRecordService.listValid(childrenIds);
         if (!CollectionUtils.isEmpty(emonExamRecords)){
             List<GetExamDataRespDTO> list = emonExamRecords.stream().map(emonExamRecord -> {
                 GetExamDataRespDTO dto = new GetExamDataRespDTO();
@@ -128,12 +135,14 @@
             }).collect(Collectors.toList());
             return list;
         }
-        return null;
+        return new ArrayList<>();
     }
 
     @Override
     public List<GetTrainDataRespDTO> getTrainData() {
-        List<EmonTrainRecord> emonTrainRecords =  emonTrainRecordService.listValid();
+        Long districtId = SecurityUtils.getLoginUser().getUser().getDistrictId();
+        List<Long> childrenIds = sysDistrictService.selectChildrenIdsById(districtId);
+        List<EmonTrainRecord> emonTrainRecords =  emonTrainRecordService.listValid(childrenIds);
         if (!CollectionUtils.isEmpty(emonTrainRecords)){
             List<GetTrainDataRespDTO> list = emonTrainRecords.stream().map(emonTrainRecord -> {
                 GetTrainDataRespDTO dto = new GetTrainDataRespDTO();
@@ -155,7 +164,7 @@
             }).collect(Collectors.toList());
             return list;
         }
-        return null;
+        return new ArrayList<>();
     }
 
     @Override
diff --git a/exam-system/src/main/resources/mapper/coalmine/ExaminerManageOperateTypeBindMapper.xml b/exam-system/src/main/resources/mapper/coalmine/ExaminerManageOperateTypeBindMapper.xml
index f945198..72e8c71 100644
--- a/exam-system/src/main/resources/mapper/coalmine/ExaminerManageOperateTypeBindMapper.xml
+++ b/exam-system/src/main/resources/mapper/coalmine/ExaminerManageOperateTypeBindMapper.xml
@@ -4,7 +4,7 @@
 
     <resultMap type="com.gkhy.exam.coalmine.entity.ExaminerManageOperateTypeBind" id="ExaminerManageOperateTypeBindMap">
         <result property="id" column="id"/>
-        <result property="teacherManageId" column="teacher_manage_id"/>
+        <result property="examinerManageId" column="examiner_manage_id"/>
         <result property="operateTypeId" column="operate_type_id"/>
         <result property="qualificationType" column="qualification_type"/>
         <result property="jobCategory" column="job_category"/>
@@ -17,7 +17,7 @@
     </resultMap>
 
     <sql id="selectAllField">
-        select id, teacher_manage_id, operate_type_id, qualification_type, job_category, operation_items, del_flag, create_by, create_time, update_by, update_time        
+        select id, examiner_manage_id, operate_type_id, qualification_type, job_category, operation_items, del_flag, create_by, create_time, update_by, update_time
         from examiner_manage_operate_type_bind
     </sql>
 </mapper>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
index ae1c3ec..f0742a1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
@@ -39,7 +39,7 @@
     private boolean enabled;
 
     /** 设置请求的统一前缀 */
-    @Value("${swagger.pathMapping}")
+    //@Value("${swagger.pathMapping}")
     private String pathMapping;
 
     /**
@@ -113,9 +113,9 @@
         // 用ApiInfoBuilder进行定制
         return new ApiInfoBuilder()
                 // 设置标题
-                .title("标题:若依管理系统_接口文档")
+                .title("标题:考试系统_接口文档")
                 // 描述
-                .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
+                .description("描述:具体包括煤矿,非煤模块...")
                 // 作者信息
                 .contact(new Contact(ruoyiConfig.getName(), null, null))
                 // 版本
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
index 59347bd..32f1903 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
@@ -158,7 +158,7 @@
     public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e)
     {
         //log.error(e.getMessage(), e);
-        log.error(e.getBindingResult().getFieldError()+"");
+        //log.error(e.getBindingResult().getFieldError()+"");
         String message = e.getBindingResult().getFieldError().getDefaultMessage();
         return AjaxResult.error(ResultConstants.PARAM_ERROR.getCode(),message);
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysDistrictService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysDistrictService.java
index aa48dd1..fed746c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysDistrictService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysDistrictService.java
@@ -31,5 +31,7 @@
     public void resetDistrictCache();
 
     List<DistrictTreeRespDTO> selectAllByTree();
+
+    List<Long> selectChildrenIdsById(Long id);
 }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java
index 6e04e05..405c859 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java
@@ -122,5 +122,35 @@
         return collect;
     }
 
+    @Override
+    public List<Long> selectChildrenIdsById(Long id) {
+        List<SysDistrict> districts = this.selectAll();
+        if (CollectionUtils.isEmpty(districts)){
+            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"区划信息获取失败");
+        }
+        List<Long> list = new ArrayList<>();
+        districts.stream()
+                //父节点的id = 0,根据它开始进行实现。
+                .filter(e -> e.getId().equals(id))
+                .map(e ->{
+                    list.add(e.getId());
+                    getchildrenIds(list,e,districts);
+                    return e;
+                }).collect(Collectors.toList());
+        return list;
+    }
+
+    private void getchildrenIds(List<Long> list,SysDistrict root,List<SysDistrict> districts){
+        //root为每次最新的传递过来的数据,也就是上面过滤之后的 e ;
+        List<SysDistrict> collect = districts.stream()
+                //根据传递过来的 e ,拿到他的id,来查询出他的子节点id 这里有个特点 e.id = 子节点的父节点id
+                .filter(e -> Objects.equals(e.getParentcode(), root.getCode()))
+                .map(e -> {
+                    list.add(e.getId());
+                    getchildrenIds(list,e,districts);
+                    //递归找到他的子节点,直到找到最后一个子节点为止,饼进行封装。
+                    return e;
+                }).collect(Collectors.toList());
+    }
 }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperateTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperateTypeServiceImpl.java
index 9cf4254..9aa92b4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperateTypeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperateTypeServiceImpl.java
@@ -1,5 +1,7 @@
 package com.ruoyi.system.service.impl;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.TypeReference;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.constant.CacheConstants;
@@ -69,7 +71,8 @@
                 SysOperateTypeWholeNameBO nameBO = this.operateTypeWholeNameCacheById(sysOperateType.getId());
                 map.put(sysOperateType.getId(),nameBO);
             }
-            SpringUtils.getBean(RedisCache.class).setCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY, map);
+            String info = JSON.toJSONString(map);
+            SpringUtils.getBean(RedisCache.class).setCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY, info);
         }
     }
 
@@ -342,7 +345,8 @@
 
     @Override
     public SysOperateTypeWholeNameBO getOperateTypeWholeNameById(Long id) {
-        Map<Long, SysOperateTypeWholeNameBO> map = redisCache.getCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY);
+        String info = redisCache.getCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY);
+        Map<Long, SysOperateTypeWholeNameBO> map = JSON.parseObject(info, new TypeReference<Map<Long, SysOperateTypeWholeNameBO>>() {});
         if (map != null){
             return map.get(id);
         }

--
Gitblit v1.9.2