huangzhen
2023-09-15 ea09629d8857e0afa329858f72cf1c93e25b813c
煤矿功能实现
已修改3个文件
已添加98个文件
4792 ■■■■■ 文件已修改
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffExamController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffQaController.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffResumeController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffTrainController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/EmonRecordController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/ExaminerManageController.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/TeacherManageController.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaff.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffExam.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffQa.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffResume.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffTrain.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/EmonExamRecord.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/EmonTrainRecord.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/ExaminerManage.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/ExaminerManageOperateTypeBind.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/TeacherManage.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/TeacherManageOperateTypeBind.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffExamMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffQaMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffResumeMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffTrainMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/EmonExamRecordMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/EmonTrainRecordMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/ExaminerManageMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/ExaminerManageOperateTypeBindMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/TeacherManageMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/TeacherManageOperateTypeBindMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffAddReqDTO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamAddReqDTO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamUpdateReqDTO.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaAddReqDTO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaUpdateReqDTO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeAddReqDTO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeUpdateReqDTO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainAddReqDTO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainUpdateReqDTO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExamReceiveReqDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageAddOperateTypeReqDTO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageAddReqDTO.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageUpdateOperateTypeReqDTO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageUpdateReqDTO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageUpdateStatusReqDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageAddOperateTypeReqDTO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageAddReqDTO.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageUpdateOperateTypeReqDTO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageUpdateReqDTO.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageUpdateStatusReqDTO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TrainReceiveReqDTO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/AttachmentInfoRespDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/CmStaffPageRespDTO.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetExamDataRespDTO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetExaminerOperateTypesRespDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetExaminerRespDTO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetTeacherOperateTypesRespDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetTeacherRespDTO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetTrainDataRespDTO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/CmStaffManagerService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/EduResourcesManagerService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/EmonRecordManagerService.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffExamService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffQaService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffResumeService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffTrainService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonExamRecordService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonTrainRecordService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/ExaminerManageOperateTypeBindService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/ExaminerManageService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/TeacherManageOperateTypeBindService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/TeacherManageService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffExamServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffQaServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffResumeServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffTrainServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonExamRecordServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonTrainRecordServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/ExaminerManageOperateTypeBindServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/ExaminerManageServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/TeacherManageOperateTypeBindServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/TeacherManageServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EduResourcesManagerServiceImpl.java 405 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EmonRecordManagerServiceImpl.java 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/utils/AttachmentUtil.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/CmStaffExamMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/CmStaffMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/CmStaffQaMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/CmStaffResumeMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/CmStaffTrainMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/EmonExamRecordMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/EmonTrainRecordMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/ExaminerManageMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/ExaminerManageOperateTypeBindMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/TeacherManageMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/resources/mapper/coalmine/TeacherManageOperateTypeBindMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/enums/coalmineEnums/EnableStatusEnum.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperateTypeServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffController.java
对比新文件
@@ -0,0 +1,70 @@
package com.gkhy.exam.coalmine.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.ExaminerManageAddReqDTO;
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.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.core.domain.AjaxResult;
import javax.annotation.Resource;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@RestController
@RequestMapping("/cm/staff")
public class CmStaffController extends BaseController {
    /**
     * 服务对象
     */
    @Resource
    private CmStaffManagerService cmStaffManagerService;
    /**
     * 分页查询人员
     */
    @ApiOperation(value = "分页获取人员",httpMethod = "GET")
    @GetMapping("/page")
    public TableDataInfo selectPage() {
        startPage();
        List<CmStaffPageRespDTO> list = cmStaffManagerService.selectPage();
        return getDataTable(list);
    }
    /**
     * 新增数据
     */
    @PostMapping("/add")
    @ApiOperation(value = "新增人员",httpMethod = "POST")
    @ApiImplicitParams({
            @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 insert(@Validated @RequestBody CmStaffAddReqDTO reqDTO) {
        return this.cmStaffManagerService.saveCmStaff(reqDTO);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffExamController.java
对比新文件
@@ -0,0 +1,86 @@
package com.gkhy.exam.coalmine.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gkhy.exam.coalmine.entity.CmStaffExam;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffExamAddReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffExamUpdateReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffResumeAddReqDTO;
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.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@RestController
@RequestMapping("/cmStaffExam")
public class CmStaffExamController{
    /**
     * 服务对象
     */
    @Resource
    private CmStaffManagerService cmStaffManagerService;
    /**
     * 新增考试经历
     */
    @PostMapping("/add")
    @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 = "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)
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffExamAddReqDTO reqDTO) {
        return this.cmStaffManagerService.saveCmStaffExam(reqDTO);
    }
    /**
     * 删除考试经历
     */
    @ApiOperation(value = "根据id删除考试经历",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "考试经历id",required = true)
    @GetMapping("/del")
    public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.cmStaffManagerService.deleteCmStaffExam(id);
    }
    /**
     * 修改考试经历
     */
    @PostMapping("/edit")
    @ApiOperation(value = "修改考试经历",httpMethod = "POST")
    @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 = "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)
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffExamUpdateReqDTO reqDTO) {
        return this.cmStaffManagerService.updateCmStaffExam(reqDTO);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffQaController.java
对比新文件
@@ -0,0 +1,88 @@
package com.gkhy.exam.coalmine.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gkhy.exam.coalmine.entity.CmStaffQa;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffExamAddReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffExamUpdateReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffQaAddReqDTO;
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.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@RestController
@RequestMapping("/cmStaffQa")
public class CmStaffQaController{
    /**
     * 服务对象
     */
    @Resource
    private CmStaffManagerService cmStaffManagerService;
    /**
     * 新增资格证书
     */
    @PostMapping("/add")
    @ApiOperation(value = "新增资格证书",httpMethod = "POST")
    @ApiImplicitParams({
            @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 = "过期时间")
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffQaAddReqDTO reqDTO) {
        return this.cmStaffManagerService.saveCmStaffQa(reqDTO);
    }
    /**
     * 删除资格证书
     */
    @ApiOperation(value = "根据id删除资格证书",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "资格证书id",required = true)
    @GetMapping("/del")
    public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.cmStaffManagerService.deleteCmStaffQa(id);
    }
    /**
     * 修改资格证书
     */
    @PostMapping("/edit")
    @ApiOperation(value = "修改资格证书",httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",dataTypeClass = Long.class, value = "资格证书id",required = true),
            @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 = "过期时间")
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffQaUpdateReqDTO reqDTO) {
        return this.cmStaffManagerService.updateCmStaffQa(reqDTO);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffResumeController.java
对比新文件
@@ -0,0 +1,82 @@
package com.gkhy.exam.coalmine.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gkhy.exam.coalmine.entity.CmStaffResume;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffAddReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffResumeAddReqDTO;
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.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@RestController
@RequestMapping("/cm/staffResume")
public class CmStaffResumeController{
    /**
     * 服务对象
     */
    @Resource
    private CmStaffManagerService cmStaffManagerService;
    /**
     * 新增个人履历
     */
    @PostMapping("/add")
    @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 = "unit", dataTypeClass = String.class,value = "单位",required = true)
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffResumeAddReqDTO reqDTO) {
        return this.cmStaffManagerService.saveCmStaffResume(reqDTO);
    }
    /**
     * 删除个人履历
     */
    @ApiOperation(value = "根据id删除个人履历",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "履历id",required = true)
    @GetMapping("/del")
    public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.cmStaffManagerService.deleteCmStaffResume(id);
    }
    /**
     * 修改个人履历
     */
    @PostMapping("/edit")
    @ApiOperation(value = "修改个人履历",httpMethod = "POST")
    @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 = "unit", dataTypeClass = String.class,value = "单位",required = true)
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffResumeUpdateReqDTO reqDTO) {
        return this.cmStaffManagerService.updateCmStaffResume(reqDTO);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/CmStaffTrainController.java
对比新文件
@@ -0,0 +1,86 @@
package com.gkhy.exam.coalmine.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gkhy.exam.coalmine.entity.CmStaffTrain;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffResumeAddReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffResumeUpdateReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.CmStaffTrainAddReqDTO;
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.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@RestController
@RequestMapping("/cmStaffTrain")
public class CmStaffTrainController{
    /**
     * 服务对象
     */
    @Resource
    private CmStaffManagerService cmStaffManagerService;
    /**
     * 新增个人培训经历
     */
    @PostMapping("/add")
    @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 = "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)
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffTrainAddReqDTO reqDTO) {
        return this.cmStaffManagerService.saveCmStaffTrain(reqDTO);
    }
    /**
     * 删除个人履历
     */
    @ApiOperation(value = "根据id删除个人培训经历",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "培训经历id",required = true)
    @GetMapping("/del")
    public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.cmStaffManagerService.deleteCmStaffTrain(id);
    }
    /**
     * 修改个人培训经历
     */
    @PostMapping("/edit")
    @ApiOperation(value = "修改个人培训经历",httpMethod = "POST")
    @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 = "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)
    })
    public AjaxResult insert(@Validated @RequestBody CmStaffTrainUpdateReqDTO reqDTO) {
        return this.cmStaffManagerService.updateCmStaffTrain(reqDTO);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/EmonRecordController.java
对比新文件
@@ -0,0 +1,118 @@
package com.gkhy.exam.coalmine.controller;
import com.gkhy.exam.coalmine.model.dto.req.ExamReceiveReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.ExaminerManageUpdateStatusReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.TrainReceiveReqDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetExamDataRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetExaminerRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetTrainDataRespDTO;
import com.gkhy.exam.coalmine.service.EmonRecordManagerService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-13 10:13:39
 */
@RestController
@RequestMapping("/emonRecord")
public class EmonRecordController extends BaseController {
    /**
     * 服务对象
     */
    @Resource
    private EmonRecordManagerService emonRecordManagerService;
    /**
     * 异常考场监控记录接收
     */
    @PostMapping("/examReceive")
    @ApiOperation(value = "异常考场监控记录接收",httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "reportTime", dataTypeClass = String.class,value = "上传时间"),
            @ApiImplicitParam(name = "districtId", dataTypeClass = Long.class,value = "区划id"),
            @ApiImplicitParam(name = "examCenter", dataTypeClass = String.class,value = "考试中心"),
            @ApiImplicitParam(name = "excType", dataTypeClass = String.class,value = "AI分析异常类别"),
            @ApiImplicitParam(name = "isCm", dataTypeClass = Byte.class,value = "是否为煤矿:0为非,1是"),
            @ApiImplicitParam(name = "files", dataTypeClass = Arrays.class,value = "文件流"),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "文件模块")
    })
    public AjaxResult examReceive(@RequestPart("file") MultipartFile[] file,@RequestPart("req") ExamReceiveReqDTO reqDTO) {
        return this.emonRecordManagerService.examReceive(file,reqDTO);
    }
    /**
     * 培训监控异常记录接收
     */
    @PostMapping("/trainReceive")
    @ApiOperation(value = "培训监控异常记录接收",httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "reportTime", dataTypeClass = String.class,value = "上传时间"),
            @ApiImplicitParam(name = "districtId", dataTypeClass = Long.class,value = "区划id"),
            @ApiImplicitParam(name = "examCenter", dataTypeClass = String.class,value = "考试中心"),
            @ApiImplicitParam(name = "excType", dataTypeClass = String.class,value = "AI分析异常类别"),
            @ApiImplicitParam(name = "isCm", dataTypeClass = Byte.class,value = "是否为煤矿:0为非,1是"),
            @ApiImplicitParam(name = "files", dataTypeClass = Arrays.class,value = "文件流"),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "文件模块")
    })
    public AjaxResult trainReceive(@RequestParam("file") MultipartFile[] file ,@RequestPart("req") TrainReceiveReqDTO reqDTO) {
        return this.emonRecordManagerService.trainReceive(file,reqDTO);
    }
    /**
     * 异常考场监控记录获取
     */
    @GetMapping("/getExamData")
    @ApiOperation(value = "异常考场监控记录获取",httpMethod = "GET")
    public TableDataInfo getExamData() {
        startPage();
        List<GetExamDataRespDTO> list = emonRecordManagerService.getExamData();
        return getDataTable(list);
    }
    /**
     * 异常培训监控记录获取
     */
    @GetMapping("/getTrainData")
    @ApiOperation(value = "异常培训监控记录获取",httpMethod = "GET")
    public TableDataInfo getTrainData() {
        startPage();
        List<GetTrainDataRespDTO> list = emonRecordManagerService.getTrainData();
        return getDataTable(list);
    }
    /**
     * 根据id删除考场异常监控记录
     */
    @ApiOperation(value = "根据id删除考场异常监控记录",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "记录id",required = true)
    @GetMapping("/exam/del")
    public AjaxResult deleteExamRecord(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.emonRecordManagerService.deleteExamRecord(id);
    }
    /**
     * 根据id删除培训异常监控记录
     */
    @ApiOperation(value = "根据id删除培训异常监控记录",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "记录id",required = true)
    @GetMapping("/train/del")
    public AjaxResult deleteTrainRecord(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.emonRecordManagerService.deleteTrainRecord(id);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/ExaminerManageController.java
对比新文件
@@ -0,0 +1,145 @@
package com.gkhy.exam.coalmine.controller;
import com.gkhy.exam.coalmine.model.dto.req.ExaminerManageAddReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.ExaminerManageUpdateReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.ExaminerManageUpdateStatusReqDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetExaminerRespDTO;
import com.gkhy.exam.coalmine.service.EduResourcesManagerService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
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;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;
import static com.ruoyi.common.core.domain.AjaxResult.success;
/**
 * @author hz
 * @since 2023-09-11 14:26:20
 */
@Api(tags = "考评员管理")
@RestController
@RequestMapping("/examinerManage")
public class ExaminerManageController extends BaseController {
    /**
     * 服务对象
     */
    @Resource
    private EduResourcesManagerService eduResourcesManagerService;
    /**
     * 分页查询所有数据
     */
    @ApiOperation(value = "分页获取考评员管理",httpMethod = "GET")
    @GetMapping("/page")
    public TableDataInfo selectAll() {
        startPage();
        List<GetExaminerRespDTO> list = eduResourcesManagerService.selectAll();
        return getDataTable(list);
    }
    /**
     * 通过主键查询单条数据
     */
    @ApiOperation(value = "根据id获取考评员管理",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "考评员id",required = true)
    @GetMapping("{id}")
    public AjaxResult selectOne(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.eduResourcesManagerService.getExaminerById(id);
    }
    /**
     * 修改状态
     */
    @PostMapping("/updateStatus")
    @ApiOperation(value = "开启停用状态",httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",dataTypeClass = Long.class, value = "id",required = true),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "状态不能为空:0-正常,1-停用",required = true)
    })
    public AjaxResult updateStatus(@Validated @RequestBody ExaminerManageUpdateStatusReqDTO reqDTO) {
        return this.eduResourcesManagerService.updateExaminerStatus(reqDTO);
    }
    /**
     * 新增数据
     */
    @PostMapping("/add")
    @ApiOperation(value = "新增考评员",httpMethod = "POST")
    @ApiImplicitParams({
            @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 = "photoAttachment", dataTypeClass = Long.class,value = "证件照id"),
            @ApiImplicitParam(name = "qaAttachment", dataTypeClass = Long.class,value = "资质照id"),
            @ApiImplicitParam(name = "jobTitle", dataTypeClass = String.class,value = "职称"),
            @ApiImplicitParam(name = "eduLevel", dataTypeClass = String.class,value = "最高学历",required = true),
            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDateTime.class,value = "过期时间",required = true),
            @ApiImplicitParam(name = "isCm", dataTypeClass = Byte.class,value = "是否为煤矿:0为非,1是",required = true),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "状态不能为空:0-正常,1-停用",required = true),
            @ApiImplicitParam(name = "description", dataTypeClass = String.class,value = "描述"),
            @ApiImplicitParam(name = "operateTypes", dataTypeClass = List.class,value = "工种详情")
    })
    public AjaxResult insert(@Validated @RequestBody ExaminerManageAddReqDTO reqDTO) {
        return this.eduResourcesManagerService.saveExaminer(reqDTO);
    }
    /**
     * 修改数据
     */
    @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 = "photoAttachment", dataTypeClass = Long.class,value = "证件照id"),
            @ApiImplicitParam(name = "qaAttachment", dataTypeClass = Long.class,value = "资质照id"),
            @ApiImplicitParam(name = "jobTitle", dataTypeClass = String.class,value = "职称"),
            @ApiImplicitParam(name = "eduLevel", dataTypeClass = String.class,value = "最高学历",required = true),
            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDateTime.class,value = "过期时间",required = true),
            @ApiImplicitParam(name = "isCm", dataTypeClass = Byte.class,value = "是否为煤矿:0为非,1是",required = true),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "状态不能为空:0-正常,1-停用",required = true),
            @ApiImplicitParam(name = "description", dataTypeClass = String.class,value = "描述"),
            @ApiImplicitParam(name = "operateTypes", dataTypeClass = List.class,value = "工种详情")
    })
    @PostMapping("/update")
    public AjaxResult update(@Validated @RequestBody ExaminerManageUpdateReqDTO reqDTO) {
        return this.eduResourcesManagerService.updateExaminerById(reqDTO);
    }
    /**
     * 删除数据
     */
    @ApiOperation(value = "根据id删除考评员",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "考评员id",required = true)
    @GetMapping("/del")
    public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.eduResourcesManagerService.removeExaminerById(id);
    }
    /**
     * 根据id删除与之关联的工种信息
     */
    @ApiOperation(value = "根据id删除与之关联的工种信息",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "关联的工种id",required = true)
    @GetMapping("/operateType/del")
    public AjaxResult deleteExaminerBindOperateType(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.eduResourcesManagerService.deleteExaminerBindOperateType(id);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/controller/TeacherManageController.java
对比新文件
@@ -0,0 +1,149 @@
package com.gkhy.exam.coalmine.controller;
import com.gkhy.exam.coalmine.entity.TeacherManage;
import com.gkhy.exam.coalmine.model.dto.req.TeacherManageAddReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.TeacherManageUpdateReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.TeacherManageUpdateStatusReqDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetTeacherRespDTO;
import com.gkhy.exam.coalmine.service.EduResourcesManagerService;
import com.gkhy.exam.coalmine.service.baseService.TeacherManageService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.page.TableDataInfo;
import io.lettuce.core.StrAlgoArgs;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;
import static com.ruoyi.common.core.domain.AjaxResult.success;
/**
 * @author hz
 * @since 2023-09-11 14:26:20
 */
@Api(tags = "教师管理")
@RestController
@RequestMapping("/teacherManage")
public class TeacherManageController extends BaseController {
    /**
     * 服务对象
     */
    @Resource
    private EduResourcesManagerService eduResourcesManagerService;
    /**
     * 分页查询所有数据
     */
    @ApiOperation(value = "分页获取教师管理",httpMethod = "GET")
    @GetMapping("/page")
    public TableDataInfo selectTeacherAll() {
        startPage();
        List<GetTeacherRespDTO> list = eduResourcesManagerService.selectTeacherAll();
        return getDataTable(list);
    }
    /**
     * 通过主键查询单条数据
     */
    @ApiOperation(value = "根据id获取教师管理",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "教师id",required = true)
    @GetMapping("{id}")
    public AjaxResult selectOne(@PathVariable Long id) {
        return this.eduResourcesManagerService.getTeacherById(id);
    }
    /**
     * 修改状态
     */
    @PostMapping("/updateStatus")
    @ApiOperation(value = "开启停用状态",httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",dataTypeClass = Long.class, value = "id",required = true),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "状态不能为空:0-正常,1-停用",required = true)
    })
    public AjaxResult updateStatus(@Validated @RequestBody TeacherManageUpdateStatusReqDTO reqDTO) {
        return this.eduResourcesManagerService.updateStatus(reqDTO);
    }
    /**
     * 新增数据
     */
    @PostMapping("/add")
    @ApiOperation(value = "新增教师",httpMethod = "POST")
    @ApiImplicitParams({
            @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 = "photoAttachment", dataTypeClass = Long.class,value = "证件照id"),
            @ApiImplicitParam(name = "qaAttachment", dataTypeClass = Long.class,value = "资质照id"),
            @ApiImplicitParam(name = "jobTitle", dataTypeClass = String.class,value = "职称"),
            @ApiImplicitParam(name = "eduLevel", dataTypeClass = String.class,value = "最高学历",required = true),
            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDateTime.class,value = "过期时间",required = true),
            @ApiImplicitParam(name = "isCm", dataTypeClass = Byte.class,value = "是否为煤矿:0为非,1是",required = true),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "状态不能为空:0-正常,1-停用",required = true),
            @ApiImplicitParam(name = "description", dataTypeClass = String.class,value = "描述"),
            @ApiImplicitParam(name = "operateTypes", dataTypeClass = List.class,value = "工种详情")
    })
    public AjaxResult insert(@Validated @RequestBody TeacherManageAddReqDTO reqDTO) {
        return this.eduResourcesManagerService.saveTeacher(reqDTO);
    }
    /**
     * 修改数据
     */
    @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 = "photoAttachment", dataTypeClass = Long.class,value = "证件照id"),
            @ApiImplicitParam(name = "qaAttachment", dataTypeClass = Long.class,value = "资质照id"),
            @ApiImplicitParam(name = "jobTitle", dataTypeClass = String.class,value = "职称"),
            @ApiImplicitParam(name = "eduLevel", dataTypeClass = String.class,value = "最高学历",required = true),
            @ApiImplicitParam(name = "expiredTime", dataTypeClass = LocalDateTime.class,value = "过期时间",required = true),
            @ApiImplicitParam(name = "isCm", dataTypeClass = Byte.class,value = "是否为煤矿:0为非,1是",required = true),
            @ApiImplicitParam(name = "status", dataTypeClass = String.class,value = "状态不能为空:0-正常,1-停用",required = true),
            @ApiImplicitParam(name = "description", dataTypeClass = String.class,value = "描述"),
            @ApiImplicitParam(name = "operateTypes", dataTypeClass = List.class,value = "工种详情")
    })
    @PostMapping("/update")
    public AjaxResult update(@Validated @RequestBody TeacherManageUpdateReqDTO reqDTO) {
        return this.eduResourcesManagerService.updateTeacherById(reqDTO);
    }
    /**
     * 删除数据
     */
    @ApiOperation(value = "根据id删除教师",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "教师id",required = true)
    @GetMapping("/del")
    public AjaxResult delete(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.eduResourcesManagerService.removeTeacherById(id);
    }
    /**
     * 根据id删除与之关联的工种信息
     */
    @ApiOperation(value = "根据id删除与之关联的工种信息",httpMethod = "GET")
    @ApiImplicitParam(name = "id",dataTypeClass = Long.class,value = "关联的工种id",required = true)
    @GetMapping("/operateType/del")
    public AjaxResult deleteTeacherBindOperateType(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return this.eduResourcesManagerService.deleteTeacherBindOperateType(id);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaff.java
对比新文件
@@ -0,0 +1,62 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("cm_staff")
public class CmStaff implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //姓名
    private String name;
    //性别
    private String sex;
    //民族
    private String nationCode;
    //身份证
    private String code;
    //手机号
    private String mobilePhone;
    //最高学历
    private String eduLevel;
    //证件照
    private Long photoAttachment;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffExam.java
对比新文件
@@ -0,0 +1,61 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("cm_staff_exam")
public class CmStaffExam implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //人员id
    private Long staffId;
    //开始时间
    private LocalDateTime startTime;
    //结束时间
    private LocalDateTime endTime;
    //考试中心
    private String examCenter;
    //科目
    private String subject;
    //考试结果;0-未通过;1-通过
    private String result;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffQa.java
对比新文件
@@ -0,0 +1,64 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("cm_staff_qa")
public class CmStaffQa implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //人员id
    private Long staffId;
    //证书名字
    private String name;
    //操作类型
    private Long operateTypeId;
    //资格类型
    private String qualificationType;
    //作业类别
    private String jobCategory;
    //操作项目
    private String operationItems;
    //过期时间
    private LocalDateTime expiredTime;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffResume.java
对比新文件
@@ -0,0 +1,55 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("cm_staff_resume")
public class CmStaffResume implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //人员id
    private Long staffId;
    //开始时间
    private LocalDateTime startTime;
    //结束时间
    private LocalDateTime endTime;
    //单位
    private String unit;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/CmStaffTrain.java
对比新文件
@@ -0,0 +1,60 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("cm_staff_train")
public class CmStaffTrain implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //人员id
    private Long staffId;
    //开始时间
    private LocalDateTime startTime;
    //结束时间
    private LocalDateTime endTime;
    //单位
    private String unit;
    //所属批次
    private String batch;
    //科目
    private String subject;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/EmonExamRecord.java
对比新文件
@@ -0,0 +1,60 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("emon_exam_record")
public class EmonExamRecord implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    private LocalDateTime reportTime;
    private Long districtId;
    private String examCenter;
    private String excType;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    private String excImage;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/EmonTrainRecord.java
对比新文件
@@ -0,0 +1,60 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("emon_train_record")
public class EmonTrainRecord implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    private LocalDateTime reportTime;
    private Long districtId;
    private String examCenter;
    private String excType;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    private String excImage;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/ExaminerManage.java
对比新文件
@@ -0,0 +1,78 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.lettuce.core.StrAlgoArgs;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("examiner_manage")
public class ExaminerManage implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //姓名
    private String name;
    //性别
    private String sex;
    //身份证
    private String code;
    //手机号
    private String mobilePhone;
    //职称
    private String jobTitle;
    //最高学历
    private String eduLevel;
    //过期时间
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    //描述
    private String description;
    private Long photoAttachment;
    private Long qaAttachment;
    //状态
    private String status;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/ExaminerManageOperateTypeBind.java
对比新文件
@@ -0,0 +1,58 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("examiner_manage_operate_type_bind")
public class ExaminerManageOperateTypeBind implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //考评员管理id
    private Long examinerManageId;
    //操作类型
    private Long operateTypeId;
    //资格类型
    private String qualificationType;
    //作业类别
    private String jobCategory;
    //操作项目
    private String operationItems;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/TeacherManage.java
对比新文件
@@ -0,0 +1,70 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.data.annotation.Id;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@Data
@TableName("teacher_manage")
public class TeacherManage implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //性别
    private String sex;
    //身份证
    private String code;
    //手机号
    private String mobilePhone;
    //姓名
    private String name;
    //职称
    private String jobTitle;
    //最高学历
    private String eduLevel;
    //过期时间
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    private Integer isCm;
    //描述
    private String description;
    private Long photoAttachment;
    private Long qaAttachment;
    //状态
    private String status;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    //创建者
    private String createBy;
    //创建时间
    private LocalDateTime createTime;
    //更新者
    private String updateBy;
    //更新时间
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/entity/TeacherManageOperateTypeBind.java
对比新文件
@@ -0,0 +1,58 @@
package com.gkhy.exam.coalmine.entity;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
@TableName("teacher_manage_operate_type_bind")
public class TeacherManageOperateTypeBind implements Serializable {
    @Id
    @TableId(type = IdType.AUTO)
    private Long id;
    //老师管理id
    private Long teacherManageId;
    //操作类型
    private Long operateTypeId;
    //资格类型
    private String qualificationType;
    //作业类别
    private String jobCategory;
    //操作项目
    private String operationItems;
    //删除标志(0代表存在 2代表删除)
    private Byte delFlag;
    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffExamMapper.java
对比新文件
@@ -0,0 +1,12 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.CmStaffExam;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CmStaffExamMapper extends BaseMapper<CmStaffExam> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.CmStaff;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CmStaffMapper extends BaseMapper<CmStaff> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffQaMapper.java
对比新文件
@@ -0,0 +1,12 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.CmStaffQa;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CmStaffQaMapper extends BaseMapper<CmStaffQa> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffResumeMapper.java
对比新文件
@@ -0,0 +1,12 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.CmStaffResume;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CmStaffResumeMapper extends BaseMapper<CmStaffResume> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/CmStaffTrainMapper.java
对比新文件
@@ -0,0 +1,12 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.CmStaffTrain;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CmStaffTrainMapper extends BaseMapper<CmStaffTrain> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/EmonExamRecordMapper.java
对比新文件
@@ -0,0 +1,12 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.EmonExamRecord;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface EmonExamRecordMapper extends BaseMapper<EmonExamRecord> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/EmonTrainRecordMapper.java
对比新文件
@@ -0,0 +1,14 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.EmonTrainRecord;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface EmonTrainRecordMapper extends BaseMapper<EmonTrainRecord> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/ExaminerManageMapper.java
对比新文件
@@ -0,0 +1,12 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.ExaminerManage;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
public interface ExaminerManageMapper extends BaseMapper<ExaminerManage> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/ExaminerManageOperateTypeBindMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.ExaminerManageOperateTypeBind;
import org.apache.ibatis.annotations.Mapper;
public interface ExaminerManageOperateTypeBindMapper extends BaseMapper<ExaminerManageOperateTypeBind> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/TeacherManageMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.TeacherManage;
import org.apache.ibatis.annotations.Mapper;
public interface TeacherManageMapper extends BaseMapper<TeacherManage> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/mapper/TeacherManageOperateTypeBindMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.gkhy.exam.coalmine.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.coalmine.entity.TeacherManageOperateTypeBind;
import org.apache.ibatis.annotations.Mapper;
public interface TeacherManageOperateTypeBindMapper extends BaseMapper<TeacherManageOperateTypeBind> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffAddReqDTO.java
对比新文件
@@ -0,0 +1,44 @@
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 CmStaffAddReqDTO implements Serializable {
    //姓名
    @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;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamAddReqDTO.java
对比新文件
@@ -0,0 +1,44 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 15:23
 */
@Data
public class CmStaffExamAddReqDTO implements Serializable {
    //人员id
    @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;
    //考试中心
    @NotBlank(message = "考试中心不能为空")
    private String examCenter;
    //科目
    @NotBlank(message = "科目不能为空")
    private String subject;
    //考试结果;0-通过;1-未通过
    @NotBlank(message = "考试结果不能为空")
    private String result;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffExamUpdateReqDTO.java
对比新文件
@@ -0,0 +1,48 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 15:23
 */
@Data
public class CmStaffExamUpdateReqDTO implements Serializable {
    //id
    @NotNull(message = "id不能为空")
    private Long id;
    //人员id
    @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;
    //考试中心
    @NotBlank(message = "考试中心不能为空")
    private String examCenter;
    //科目
    @NotBlank(message = "科目不能为空")
    private String subject;
    //考试结果;0-通过;1-未通过
    @NotBlank(message = "考试结果不能为空")
    private String result;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaAddReqDTO.java
对比新文件
@@ -0,0 +1,47 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 15:39
 */
@Data
public class CmStaffQaAddReqDTO implements Serializable {
    //人员id
    @NotNull(message = "人员id不能为空")
    private Long staffId;
    //证书名字
    @NotBlank(message = "证书名字不能为空")
    private String name;
    //操作类型
    @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;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffQaUpdateReqDTO.java
对比新文件
@@ -0,0 +1,50 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 15:39
 */
@Data
public class CmStaffQaUpdateReqDTO implements Serializable {
    @NotNull(message = "id不能为空")
    private Long id;
    //人员id
    @NotNull(message = "人员id不能为空")
    private Long staffId;
    //证书名字
    @NotBlank(message = "证书名字不能为空")
    private String name;
    //操作类型
    @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;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeAddReqDTO.java
对比新文件
@@ -0,0 +1,36 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 14:32
 */
@Data
public class CmStaffResumeAddReqDTO implements Serializable {
    //人员id
    @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;
    //单位
    @NotBlank(message = "单位不能为空")
    private String unit;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffResumeUpdateReqDTO.java
对比新文件
@@ -0,0 +1,39 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 14:32
 */
@Data
public class CmStaffResumeUpdateReqDTO implements Serializable {
    @NotNull(message = "履历id不能为空")
    private Long id;
    //人员id
    @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;
    //单位
    @NotBlank(message = "单位不能为空")
    private String unit;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainAddReqDTO.java
对比新文件
@@ -0,0 +1,44 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 15:09
 */
@Data
public class CmStaffTrainAddReqDTO implements Serializable {
    //人员id
    @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;
    //单位
    @NotBlank(message = "单位不能为空")
    private String unit;
    //所属批次
    @NotBlank(message = "所属批次不能为空")
    private String batch;
    //科目
    @NotBlank(message = "科目不能为空")
    private String subject;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/CmStaffTrainUpdateReqDTO.java
对比新文件
@@ -0,0 +1,47 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 15:09
 */
@Data
public class CmStaffTrainUpdateReqDTO implements Serializable {
    @NotNull(message = "id不能为空")
    private Long id;
    //人员id
    @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;
    //单位
    @NotBlank(message = "单位不能为空")
    private String unit;
    //所属批次
    @NotBlank(message = "所属批次不能为空")
    private String batch;
    //科目
    @NotBlank(message = "科目不能为空")
    private String subject;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExamReceiveReqDTO.java
对比新文件
@@ -0,0 +1,34 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/13 10:27
 */
@Data
public class ExamReceiveReqDTO{
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime reportTime;
    private Long districtId;
    private String examCenter;
    private String excType;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    private String module;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageAddOperateTypeReqDTO.java
对比新文件
@@ -0,0 +1,35 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 15:57
 */
@Data
public class ExaminerManageAddOperateTypeReqDTO implements Serializable {
    //操作类型
    @NotNull(message = "操作类型id不能为空")
    private Long operateTypeId;
    //资格类型
    @NotBlank(message = "资格类型不能为空")
    private String qualificationType;
    //作业类别
    @NotBlank(message = "作业类别不能为空")
    private String jobCategory;
    //操作项目
    @NotBlank(message = "操作项目不能为空")
    private String operationItems;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageAddReqDTO.java
对比新文件
@@ -0,0 +1,66 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 15:57
 */
@Data
public class ExaminerManageAddReqDTO implements Serializable {
    //姓名
    @NotBlank(message = "姓名不能为空")
    private String name;
    //性别
    private String sex;
    //身份证
    @NotBlank(message = "身份证不能为空")
    private String code;
    //手机号
    @NotBlank(message = "手机号不能为空")
    private String mobilePhone;
    private Long photoAttachment;
    private Long qaAttachment;
    //职称
    private String jobTitle;
    //最高学历
    @NotNull(message = "最高学历不能为空")
    private String eduLevel;
    //过期时间
    @NotNull(message = "过期时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    @NotNull(message = "煤矿类型不能为空")
    private Byte isCm;
    @NotNull(message = "状态不能为空")
    private String status;
    private String description;
    @Valid
    private List<ExaminerManageAddOperateTypeReqDTO> operateTypes;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageUpdateOperateTypeReqDTO.java
对比新文件
@@ -0,0 +1,32 @@
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/12 15:21
 */
@Data
public class ExaminerManageUpdateOperateTypeReqDTO implements Serializable {
    //操作类型
    @NotNull(message = "操作类型id不能为空")
    private Long operateTypeId;
    //资格类型
    @NotBlank(message = "资格类型不能为空")
    private String qualificationType;
    //作业类别
    @NotBlank(message = "作业类别不能为空")
    private String jobCategory;
    //操作项目
    @NotBlank(message = "操作项目不能为空")
    private String operationItems;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageUpdateReqDTO.java
对比新文件
@@ -0,0 +1,68 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 15:57
 */
@Data
public class ExaminerManageUpdateReqDTO implements Serializable {
    @NotNull(message = "id不能为空")
    private Long id;
    //姓名
    @NotBlank(message = "姓名不能为空")
    private String name;
    //性别
    private String sex;
    //身份证
    @NotBlank(message = "身份证不能为空")
    private String code;
    //手机号
    @NotBlank(message = "手机号不能为空")
    private String mobilePhone;
    //职称
    private String jobTitle;
    private Long photoAttachment;
    private Long qaAttachment;
    //最高学历
    @NotNull(message = "最高学历不能为空")
    private String eduLevel;
    //过期时间
    @NotNull(message = "过期时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    @NotNull(message = "煤矿类型不能为空")
    private Byte isCm;
    @NotNull(message = "状态不能为空")
    private String status;
    //描述
    private String description;
    @Valid
    private List<ExaminerManageAddOperateTypeReqDTO> operateTypes;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/ExaminerManageUpdateStatusReqDTO.java
对比新文件
@@ -0,0 +1,22 @@
package com.gkhy.exam.coalmine.model.dto.req;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 15:57
 */
@Data
public class ExaminerManageUpdateStatusReqDTO implements Serializable {
    @NotNull(message = "id不能为空")
    private Long id;
    @NotNull(message = "状态不能为空")
    private String status;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageAddOperateTypeReqDTO.java
对比新文件
@@ -0,0 +1,33 @@
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/11 15:57
 */
@Data
public class TeacherManageAddOperateTypeReqDTO implements Serializable {
    //操作类型
    @NotNull(message = "操作类型id不能为空")
    private Long operateTypeId;
    //资格类型
    @NotBlank(message = "资格类型不能为空")
    private String qualificationType;
    //作业类别
    @NotBlank(message = "作业类别不能为空")
    private String jobCategory;
    //操作项目
    @NotBlank(message = "操作项目不能为空")
    private String operationItems;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageAddReqDTO.java
对比新文件
@@ -0,0 +1,64 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 15:57
 */
@Data
public class TeacherManageAddReqDTO implements Serializable {
    //姓名
    @NotBlank(message = "姓名不能为空")
    private String name;
    //性别
    private String sex;
    //身份证
    @NotBlank(message = "身份证不能为空")
    private String code;
    //手机号
    @NotBlank(message = "手机号不能为空")
    private String mobilePhone;
    private Long photoAttachment;
    private Long qaAttachment;
    //职称
    private String jobTitle;
    //最高学历
    @NotNull(message = "最高学历不能为空")
    private String eduLevel;
    //过期时间
    @NotNull(message = "过期时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    @NotNull(message = "煤矿类型不能为空")
    private Byte isCm;
    @NotNull(message = "状态不能为空")
    private String status;
    private String description;
    @Valid
    private List<TeacherManageAddOperateTypeReqDTO> operateTypes;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageUpdateOperateTypeReqDTO.java
对比新文件
@@ -0,0 +1,32 @@
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/12 15:21
 */
@Data
public class TeacherManageUpdateOperateTypeReqDTO implements Serializable {
    //操作类型
    @NotNull(message = "操作类型id不能为空")
    private Long operateTypeId;
    //资格类型
    @NotBlank(message = "资格类型不能为空")
    private String qualificationType;
    //作业类别
    @NotBlank(message = "作业类别不能为空")
    private String jobCategory;
    //操作项目
    @NotBlank(message = "操作项目不能为空")
    private String operationItems;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageUpdateReqDTO.java
对比新文件
@@ -0,0 +1,67 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 15:57
 */
@Data
public class TeacherManageUpdateReqDTO implements Serializable {
    @NotNull(message = "id不能为空")
    private Long id;
    //姓名
    @NotBlank(message = "姓名不能为空")
    private String name;
    //性别
    private String sex;
    //身份证
    @NotBlank(message = "身份证不能为空")
    private String code;
    //手机号
    @NotBlank(message = "手机号不能为空")
    private String mobilePhone;
    //职称
    private String jobTitle;
    private Long photoAttachment;
    private Long qaAttachment;
    //最高学历
    @NotNull(message = "最高学历不能为空")
    private String eduLevel;
    //过期时间
    @NotNull(message = "过期时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    @NotNull(message = "煤矿类型不能为空")
    private Byte isCm;
    @NotNull(message = "状态不能为空")
    private String status;
    //描述
    private String description;
    @Valid
    private List<TeacherManageAddOperateTypeReqDTO> operateTypes;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TeacherManageUpdateStatusReqDTO.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.exam.coalmine.model.dto.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 15:57
 */
@Data
public class TeacherManageUpdateStatusReqDTO implements Serializable {
    @NotNull(message = "id不能为空")
    private Long id;
    @NotNull(message = "状态不能为空")
    private String status;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/req/TrainReceiveReqDTO.java
对比新文件
@@ -0,0 +1,31 @@
package com.gkhy.exam.coalmine.model.dto.req;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/13 10:27
 */
@Data
public class TrainReceiveReqDTO implements Serializable {
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime reportTime;
    private Long districtId;
    private String examCenter;
    private String excType;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    private String module;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/AttachmentInfoRespDTO.java
对比新文件
@@ -0,0 +1,22 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import lombok.Data;
import java.io.Serializable;
/**
 * @email 1603559716@qq.com
 * @author: zf
 * @date: 2023/5/6
 * @time: 14:54
 */
@Data
public class AttachmentInfoRespDTO implements Serializable {
    private Long id;
    private String fileUrl;
    private String fileName;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/CmStaffPageRespDTO.java
对比新文件
@@ -0,0 +1,55 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import com.gkhy.exam.coalmine.entity.*;
import com.gkhy.exam.noncoalmine.model.vo.ViolationRegistrationVO;
import com.gkhy.exam.noncoalmine.model.vo.WorkRegistrationVO;
import com.ruoyi.file.entity.AttachmentInfo;
import jdk.internal.dynalink.linker.LinkerServices;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 15:57
 */
@Data
public class CmStaffPageRespDTO 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;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetExamDataRespDTO.java
对比新文件
@@ -0,0 +1,32 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import com.ruoyi.file.entity.AttachmentInfo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/13 14:23
 */
@Data
public class GetExamDataRespDTO implements Serializable {
    private Long id;
    private LocalDateTime reportTime;
    private Long districtId;
    private String examCenter;
    private String excType;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    private List<AttachmentInfoRespDTO> attachmentInfos;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetExaminerOperateTypesRespDTO.java
对比新文件
@@ -0,0 +1,34 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import lombok.Data;
import java.io.Serializable;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/12 13:14
 */
@Data
public class GetExaminerOperateTypesRespDTO implements Serializable {
    private Long id;
    //老师管理id
    private Long teacherManageId;
    //操作类型
    private Long operateTypeId;
    //资格类型
    private String qualificationType;
    //作业类别
    private String jobCategory;
    //操作项目
    private String operationItems;
    private Integer type;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetExaminerRespDTO.java
对比新文件
@@ -0,0 +1,56 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import com.ruoyi.file.entity.AttachmentInfo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/12 13:14
 */
@Data
public class GetExaminerRespDTO implements Serializable {
    private Long id;
    //姓名
    private String name;
    //性别
    private Integer sex;
    //身份证
    private String code;
    //手机号
    private String mobilePhone;
    //职称
    private Long jobTitle;
    //最高学历
    private Long eduLevel;
    //过期时间
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    //描述
    private String description;
    private AttachmentInfo photoAttachment;
    private AttachmentInfo qaAttachment;
    private List<GetExaminerOperateTypesRespDTO>  operateTypes;
    //状态
    private Byte status;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetTeacherOperateTypesRespDTO.java
对比新文件
@@ -0,0 +1,34 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import lombok.Data;
import java.io.Serializable;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/12 13:14
 */
@Data
public class GetTeacherOperateTypesRespDTO implements Serializable {
    private Long id;
    //老师管理id
    private Long teacherManageId;
    //操作类型
    private Long operateTypeId;
    //资格类型
    private String qualificationType;
    //作业类别
    private String jobCategory;
    //操作项目
    private String operationItems;
    private Integer type;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetTeacherRespDTO.java
对比新文件
@@ -0,0 +1,56 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import com.ruoyi.file.entity.AttachmentInfo;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/12 13:14
 */
@Data
public class GetTeacherRespDTO implements Serializable {
    private Long id;
    //姓名
    private String name;
    //性别
    private Integer sex;
    //身份证
    private String code;
    //手机号
    private String mobilePhone;
    //职称
    private Long jobTitle;
    //最高学历
    private Long eduLevel;
    //过期时间
    private LocalDateTime expiredTime;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    //描述
    private String description;
    private AttachmentInfo photoAttachment;
    private AttachmentInfo qaAttachment;
    private List<GetTeacherOperateTypesRespDTO>  operateTypes;
    //状态
    private Byte status;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/model/dto/resp/GetTrainDataRespDTO.java
对比新文件
@@ -0,0 +1,31 @@
package com.gkhy.exam.coalmine.model.dto.resp;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/13 14:23
 */
@Data
public class GetTrainDataRespDTO implements Serializable {
    private Long id;
    private LocalDateTime reportTime;
    private Long districtId;
    private String examCenter;
    private String excType;
    //是否为煤矿:0为非,1是
    private Byte isCm;
    private List<AttachmentInfoRespDTO> attachmentInfos;
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/CmStaffManagerService.java
对比新文件
@@ -0,0 +1,43 @@
package com.gkhy.exam.coalmine.service;
import com.gkhy.exam.coalmine.model.dto.req.*;
import com.gkhy.exam.coalmine.model.dto.resp.CmStaffPageRespDTO;
import com.ruoyi.common.core.domain.AjaxResult;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 10:48
 */
public interface CmStaffManagerService {
    AjaxResult saveCmStaff(CmStaffAddReqDTO reqDTO);
    AjaxResult saveCmStaffResume(CmStaffResumeAddReqDTO reqDTO);
    AjaxResult deleteCmStaffResume(Long id);
    AjaxResult updateCmStaffResume(CmStaffResumeUpdateReqDTO reqDTO);
    AjaxResult saveCmStaffTrain(CmStaffTrainAddReqDTO reqDTO);
    AjaxResult deleteCmStaffTrain(Long id);
    AjaxResult updateCmStaffTrain(CmStaffTrainUpdateReqDTO reqDTO);
    AjaxResult saveCmStaffExam(CmStaffExamAddReqDTO reqDTO);
    AjaxResult deleteCmStaffExam(Long id);
    AjaxResult updateCmStaffExam(CmStaffExamUpdateReqDTO reqDTO);
    AjaxResult saveCmStaffQa(CmStaffQaAddReqDTO reqDTO);
    AjaxResult deleteCmStaffQa(Long id);
    AjaxResult updateCmStaffQa(CmStaffQaUpdateReqDTO reqDTO);
    List<CmStaffPageRespDTO> selectPage();
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/EduResourcesManagerService.java
对比新文件
@@ -0,0 +1,45 @@
package com.gkhy.exam.coalmine.service;
import com.gkhy.exam.coalmine.entity.TeacherManage;
import com.gkhy.exam.coalmine.model.dto.req.*;
import com.gkhy.exam.coalmine.model.dto.resp.GetExaminerRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetTeacherRespDTO;
import com.ruoyi.common.core.domain.AjaxResult;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 14:52
 */
public interface EduResourcesManagerService {
    AjaxResult saveExaminer(ExaminerManageAddReqDTO reqDTO);
    AjaxResult removeExaminerById(Long id);
    AjaxResult updateExaminerById(ExaminerManageUpdateReqDTO reqDTO);
    AjaxResult getExaminerById(Long id);
    List<GetExaminerRespDTO> selectAll();
    AjaxResult saveTeacher(TeacherManageAddReqDTO reqDTO);
    AjaxResult updateTeacherById(TeacherManageUpdateReqDTO reqDTO);
    AjaxResult removeTeacherById(Long id);
    AjaxResult getTeacherById(Long id);
    List<GetTeacherRespDTO> selectTeacherAll();
    AjaxResult updateStatus(TeacherManageUpdateStatusReqDTO reqDTO);
    AjaxResult updateExaminerStatus(ExaminerManageUpdateStatusReqDTO reqDTO);
    AjaxResult deleteExaminerBindOperateType(Long id);
    AjaxResult deleteTeacherBindOperateType(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/EmonRecordManagerService.java
对比新文件
@@ -0,0 +1,30 @@
package com.gkhy.exam.coalmine.service;
import com.gkhy.exam.coalmine.model.dto.req.ExamReceiveReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.TrainReceiveReqDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetExamDataRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetTrainDataRespDTO;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/13 10:19
 */
public interface EmonRecordManagerService {
    AjaxResult examReceive(MultipartFile[] file,ExamReceiveReqDTO reqDTO);
    AjaxResult trainReceive(MultipartFile[] file,TrainReceiveReqDTO reqDTO);
    List<GetExamDataRespDTO> getExamData();
    List<GetTrainDataRespDTO> getTrainData();
    AjaxResult deleteExamRecord(Long id);
    AjaxResult deleteTrainRecord(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffExamService.java
对比新文件
@@ -0,0 +1,19 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.CmStaffExam;
import com.gkhy.exam.coalmine.entity.CmStaffTrain;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
public interface CmStaffExamService extends IService<CmStaffExam> {
    CmStaffExam getValidById(Long id);
    List<CmStaffExam> listValid(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffQaService.java
对比新文件
@@ -0,0 +1,20 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.CmStaffQa;
import com.gkhy.exam.coalmine.entity.CmStaffTrain;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
public interface CmStaffQaService extends IService<CmStaffQa> {
    CmStaffQa getValidById(Long id);
    List<CmStaffQa> listValid(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffResumeService.java
对比新文件
@@ -0,0 +1,19 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.CmStaffResume;
import com.gkhy.exam.coalmine.entity.CmStaffTrain;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
public interface CmStaffResumeService extends IService<CmStaffResume> {
    CmStaffResume getValidById(Long id);
    List<CmStaffResume> listValid(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffService.java
对比新文件
@@ -0,0 +1,13 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.CmStaff;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
public interface CmStaffService extends IService<CmStaff> {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/CmStaffTrainService.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.CmStaffTrain;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
public interface CmStaffTrainService extends IService<CmStaffTrain> {
    CmStaffTrain getValidById(Long id);
    List<CmStaffTrain> listValid(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonExamRecordService.java
对比新文件
@@ -0,0 +1,20 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.EmonExamRecord;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-13 10:13:39
 */
public interface EmonExamRecordService extends IService<EmonExamRecord> {
    EmonExamRecord findValidById(Long id);
    List<EmonExamRecord> listValid();
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/EmonTrainRecordService.java
对比新文件
@@ -0,0 +1,19 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.EmonTrainRecord;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-13 10:13:40
 */
public interface EmonTrainRecordService extends IService<EmonTrainRecord> {
    EmonTrainRecord findValidById(Long id);
    List<EmonTrainRecord> listValid();
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/ExaminerManageOperateTypeBindService.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.ExaminerManageOperateTypeBind;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
public interface ExaminerManageOperateTypeBindService extends IService<ExaminerManageOperateTypeBind> {
    List<ExaminerManageOperateTypeBind> listByExaminerManageId(Long id);
    ExaminerManageOperateTypeBind getNoDeleteById(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/ExaminerManageService.java
对比新文件
@@ -0,0 +1,16 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.ExaminerManage;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
public interface ExaminerManageService extends IService<ExaminerManage> {
    ExaminerManage getExaminerById(Long id);
    ExaminerManage getExaminerByCode(String code);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/TeacherManageOperateTypeBindService.java
对比新文件
@@ -0,0 +1,19 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.ExaminerManageOperateTypeBind;
import com.gkhy.exam.coalmine.entity.TeacherManageOperateTypeBind;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
public interface TeacherManageOperateTypeBindService extends IService<TeacherManageOperateTypeBind> {
    List<TeacherManageOperateTypeBind> listByTeacherManageId(Long id);
    TeacherManageOperateTypeBind getNoDeleteById(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/TeacherManageService.java
对比新文件
@@ -0,0 +1,16 @@
package com.gkhy.exam.coalmine.service.baseService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.coalmine.entity.TeacherManage;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
public interface TeacherManageService extends IService<TeacherManage> {
    TeacherManage getTeacherByCode(String code);
    TeacherManage getTeacherById(Long id);
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffExamServiceImpl.java
对比新文件
@@ -0,0 +1,41 @@
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.entity.CmStaffTrain;
import com.gkhy.exam.coalmine.mapper.CmStaffExamMapper;
import com.gkhy.exam.coalmine.entity.CmStaffExam;
import com.gkhy.exam.coalmine.service.baseService.CmStaffExamService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@Service("cmStaffExamServiceImpl")
public class CmStaffExamServiceImpl extends ServiceImpl<CmStaffExamMapper, CmStaffExam> implements CmStaffExamService {
    @Resource
    private CmStaffExamMapper cmStaffExamMapper;
    @Override
    public CmStaffExam getValidById(Long id) {
        LambdaQueryWrapper<CmStaffExam> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffExam::getId,id)
                .eq(CmStaffExam::getDelFlag, DeleteStatusEnum.NO.getStatus());
        return cmStaffExamMapper.selectOne(wrapper);
    }
    @Override
    public List<CmStaffExam> listValid(Long id) {
        LambdaQueryWrapper<CmStaffExam> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffExam::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(CmStaffExam::getId,id);
        return cmStaffExamMapper.selectList(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffQaServiceImpl.java
对比新文件
@@ -0,0 +1,42 @@
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.entity.CmStaffExam;
import com.gkhy.exam.coalmine.mapper.CmStaffQaMapper;
import com.gkhy.exam.coalmine.entity.CmStaffQa;
import com.gkhy.exam.coalmine.service.baseService.CmStaffQaService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.ref.PhantomReference;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@Service("cmStaffQaServiceImpl")
public class CmStaffQaServiceImpl extends ServiceImpl<CmStaffQaMapper, CmStaffQa> implements CmStaffQaService {
    @Resource
    private CmStaffQaMapper cmStaffQaMapper;
    @Override
    public CmStaffQa getValidById(Long id) {
        LambdaQueryWrapper<CmStaffQa> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffQa::getId,id)
                .eq(CmStaffQa::getDelFlag, DeleteStatusEnum.NO.getStatus());
        return cmStaffQaMapper.selectOne(wrapper);
    }
    @Override
    public List<CmStaffQa> listValid(Long id) {
        LambdaQueryWrapper<CmStaffQa> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffQa::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(CmStaffQa::getId,id);
        return cmStaffQaMapper.selectList(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffResumeServiceImpl.java
对比新文件
@@ -0,0 +1,41 @@
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.CmStaffResumeMapper;
import com.gkhy.exam.coalmine.entity.CmStaffResume;
import com.gkhy.exam.coalmine.service.baseService.CmStaffResumeService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.DeleteMapping;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@Service("cmStaffResumeServiceImpl")
public class CmStaffResumeServiceImpl extends ServiceImpl<CmStaffResumeMapper, CmStaffResume> implements CmStaffResumeService {
    @Resource
    private CmStaffResumeMapper cmStaffResumeMapper;
    @Override
    public CmStaffResume getValidById(Long id) {
        LambdaQueryWrapper<CmStaffResume> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffResume::getId,id)
                .eq(CmStaffResume::getDelFlag, DeleteStatusEnum.NO.getStatus());
        return cmStaffResumeMapper.selectOne(wrapper);
    }
    @Override
    public List<CmStaffResume> listValid(Long id) {
        LambdaQueryWrapper<CmStaffResume> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffResume::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(CmStaffResume::getStaffId,id);
        return cmStaffResumeMapper.selectList(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffServiceImpl.java
对比新文件
@@ -0,0 +1,17 @@
package com.gkhy.exam.coalmine.service.baseService.impl;
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 org.springframework.stereotype.Service;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@Service("cmStaffManageServiceImpl")
public class CmStaffServiceImpl extends ServiceImpl<CmStaffMapper, CmStaff> implements CmStaffService {
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/CmStaffTrainServiceImpl.java
对比新文件
@@ -0,0 +1,41 @@
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.entity.CmStaffResume;
import com.gkhy.exam.coalmine.mapper.CmStaffTrainMapper;
import com.gkhy.exam.coalmine.entity.CmStaffTrain;
import com.gkhy.exam.coalmine.service.baseService.CmStaffTrainService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-14 10:37:03
 */
@Service("cmStaffTrainServiceImpl")
public class CmStaffTrainServiceImpl extends ServiceImpl<CmStaffTrainMapper, CmStaffTrain> implements CmStaffTrainService {
    @Resource
    private CmStaffTrainMapper cmStaffTrainMapper;
    @Override
    public CmStaffTrain getValidById(Long id) {
        LambdaQueryWrapper<CmStaffTrain> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffTrain::getId,id)
                .eq(CmStaffTrain::getDelFlag, DeleteStatusEnum.NO.getStatus());
        return cmStaffTrainMapper.selectOne(wrapper);
    }
    @Override
    public List<CmStaffTrain> listValid(Long id) {
        LambdaQueryWrapper<CmStaffTrain> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaffTrain::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(CmStaffTrain::getStaffId,id);;
        return cmStaffTrainMapper.selectList(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonExamRecordServiceImpl.java
对比新文件
@@ -0,0 +1,41 @@
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.EmonExamRecordMapper;
import com.gkhy.exam.coalmine.entity.EmonExamRecord;
import com.gkhy.exam.coalmine.service.baseService.EmonExamRecordService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-13 10:13:40
 */
@Service("emonExamRecordServiceImpl")
public class EmonExamRecordServiceImpl extends ServiceImpl<EmonExamRecordMapper, EmonExamRecord> implements EmonExamRecordService {
    @Resource
    private EmonExamRecordMapper emonExamRecordMapper;
    @Override
    public EmonExamRecord findValidById(Long id) {
        LambdaQueryWrapper<EmonExamRecord> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(EmonExamRecord::getId,id)
                .eq(EmonExamRecord::getDelFlag, DeleteStatusEnum.NO.getStatus());
        return emonExamRecordMapper.selectOne(wrapper);
    }
    @Override
    public List<EmonExamRecord> listValid() {
        LambdaQueryWrapper<EmonExamRecord> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(EmonExamRecord::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .orderByDesc(EmonExamRecord::getReportTime);
        return emonExamRecordMapper.selectList(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/EmonTrainRecordServiceImpl.java
对比新文件
@@ -0,0 +1,41 @@
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.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 javax.annotation.Resource;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-13 10:13:40
 */
@Service("emonTrainRecordServiceImpl")
public class EmonTrainRecordServiceImpl extends ServiceImpl<EmonTrainRecordMapper, EmonTrainRecord> implements EmonTrainRecordService {
    @Resource
    private EmonTrainRecordMapper emonTrainRecordMapper;
    @Override
    public EmonTrainRecord findValidById(Long id) {
        LambdaQueryWrapper<EmonTrainRecord> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(EmonTrainRecord::getId,id)
                .eq(EmonTrainRecord::getDelFlag, DeleteStatusEnum.NO.getStatus());
        return emonTrainRecordMapper.selectOne(wrapper);
    }
    @Override
    public List<EmonTrainRecord> listValid() {
        LambdaQueryWrapper<EmonTrainRecord> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(EmonTrainRecord::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .orderByDesc(EmonTrainRecord::getReportTime);
        return emonTrainRecordMapper.selectList(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/ExaminerManageOperateTypeBindServiceImpl.java
对比新文件
@@ -0,0 +1,40 @@
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.ExaminerManageOperateTypeBindMapper;
import com.gkhy.exam.coalmine.entity.ExaminerManageOperateTypeBind;
import com.gkhy.exam.coalmine.service.baseService.ExaminerManageOperateTypeBindService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
@Service("examinerManageOperateTypeBindServiceImpl")
public class ExaminerManageOperateTypeBindServiceImpl extends ServiceImpl<ExaminerManageOperateTypeBindMapper, ExaminerManageOperateTypeBind> implements ExaminerManageOperateTypeBindService {
    @Resource
    private ExaminerManageOperateTypeBindMapper examinerManageOperateTypeBindMapper;
    @Override
    public List<ExaminerManageOperateTypeBind> listByExaminerManageId(Long id) {
        LambdaQueryWrapper<ExaminerManageOperateTypeBind> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ExaminerManageOperateTypeBind::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(ExaminerManageOperateTypeBind::getExaminerManageId,id);
        return examinerManageOperateTypeBindMapper.selectList(wrapper);
    }
    @Override
    public ExaminerManageOperateTypeBind getNoDeleteById(Long id) {
        LambdaQueryWrapper<ExaminerManageOperateTypeBind> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ExaminerManageOperateTypeBind::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(ExaminerManageOperateTypeBind::getId,id);
        return examinerManageOperateTypeBindMapper.selectOne(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/ExaminerManageServiceImpl.java
对比新文件
@@ -0,0 +1,39 @@
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.ExaminerManageMapper;
import com.gkhy.exam.coalmine.entity.ExaminerManage;
import com.gkhy.exam.coalmine.service.baseService.ExaminerManageService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
@Service("examinerManageServiceImpl")
public class ExaminerManageServiceImpl extends ServiceImpl<ExaminerManageMapper, ExaminerManage> implements ExaminerManageService {
    @Resource
    private ExaminerManageMapper examinerManageMapper;
    @Override
    public ExaminerManage getExaminerById(Long id) {
        LambdaQueryWrapper<ExaminerManage> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ExaminerManage::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(ExaminerManage::getId,id);
        return examinerManageMapper.selectOne(wrapper);
    }
    @Override
    public ExaminerManage getExaminerByCode(String code) {
        LambdaQueryWrapper<ExaminerManage> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ExaminerManage::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(ExaminerManage::getCode,code);
        return examinerManageMapper.selectOne(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/TeacherManageOperateTypeBindServiceImpl.java
对比新文件
@@ -0,0 +1,42 @@
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.entity.ExaminerManageOperateTypeBind;
import com.gkhy.exam.coalmine.mapper.TeacherManageOperateTypeBindMapper;
import com.gkhy.exam.coalmine.entity.TeacherManageOperateTypeBind;
import com.gkhy.exam.coalmine.service.baseService.TeacherManageOperateTypeBindService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
@Service("teacherManageOperateTypeBindServiceImpl")
public class TeacherManageOperateTypeBindServiceImpl extends ServiceImpl<TeacherManageOperateTypeBindMapper, TeacherManageOperateTypeBind> implements TeacherManageOperateTypeBindService {
    @Resource
    private TeacherManageOperateTypeBindMapper teacherManageOperateTypeBindMapper;
    @Override
    public List<TeacherManageOperateTypeBind> listByTeacherManageId(Long id) {
        LambdaQueryWrapper<TeacherManageOperateTypeBind> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TeacherManageOperateTypeBind::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(TeacherManageOperateTypeBind::getTeacherManageId,id);
        return teacherManageOperateTypeBindMapper.selectList(wrapper);
    }
    @Override
    public TeacherManageOperateTypeBind getNoDeleteById(Long id) {
        LambdaQueryWrapper<TeacherManageOperateTypeBind> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TeacherManageOperateTypeBind::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(TeacherManageOperateTypeBind::getId,id);
        return teacherManageOperateTypeBindMapper.selectOne(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/baseService/impl/TeacherManageServiceImpl.java
对比新文件
@@ -0,0 +1,40 @@
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.entity.ExaminerManage;
import com.gkhy.exam.coalmine.mapper.TeacherManageMapper;
import com.gkhy.exam.coalmine.entity.TeacherManage;
import com.gkhy.exam.coalmine.service.baseService.TeacherManageService;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * @author hz
 * @since 2023-09-11 14:47:33
 */
@Service("teacherManageServiceImpl")
public class TeacherManageServiceImpl extends ServiceImpl<TeacherManageMapper, TeacherManage> implements TeacherManageService {
    @Resource
    private TeacherManageMapper teacherManageMapper;
    @Override
    public TeacherManage getTeacherByCode(String code) {
        LambdaQueryWrapper<TeacherManage> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TeacherManage::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(TeacherManage::getCode,code);
        return teacherManageMapper.selectOne(wrapper);
    }
    @Override
    public TeacherManage getTeacherById(Long id) {
        LambdaQueryWrapper<TeacherManage> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TeacherManage::getDelFlag, DeleteStatusEnum.NO.getStatus())
                .eq(TeacherManage::getId,id);
        return teacherManageMapper.selectOne(wrapper);
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java
对比新文件
@@ -0,0 +1,229 @@
package com.gkhy.exam.coalmine.service.impl;
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.CmStaffPageRespDTO;
import com.gkhy.exam.coalmine.service.CmStaffManagerService;
import com.gkhy.exam.coalmine.service.baseService.*;
import com.gkhy.exam.noncoalmine.service.ViolationRegistrationService;
import com.gkhy.exam.noncoalmine.service.WorkRegistrationService;
import com.ruoyi.common.constant.ResultConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.file.service.AttachmentInfoService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 10:48
 */
@Service
public class CmStaffManagerServiceImpl implements CmStaffManagerService {
    @Resource
    private CmStaffService cmStaffService;
    @Resource
    private CmStaffTrainService cmStaffTrainService;
    @Resource
    private CmStaffResumeService cmStaffResumeService;
    @Resource
    private CmStaffExamService cmStaffExamService;
    @Resource
    private CmStaffQaService cmStaffQaService;
    @Resource
    private AttachmentInfoService attachmentInfoService;
    @Resource
    private ViolationRegistrationService violationRegistrationService;
    @Resource
    private WorkRegistrationService workRegistrationService;
    @Override
    public AjaxResult saveCmStaff(CmStaffAddReqDTO reqDTO) {
        CmStaff cmStaff = new CmStaff();
        BeanUtils.copyProperties(reqDTO,cmStaff);
        cmStaff.setDelFlag(DeleteStatusEnum.NO.getStatus());
        boolean save = cmStaffService.save(cmStaff);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增失败");
        return AjaxResult.success("新增成功");
    }
    @Override
    public AjaxResult saveCmStaffResume(CmStaffResumeAddReqDTO reqDTO) {
        CmStaffResume cmStaffResume = new CmStaffResume();
        BeanUtils.copyProperties(reqDTO,cmStaffResume);
        cmStaffResume.setDelFlag(DeleteStatusEnum.NO.getStatus());
        boolean save = cmStaffResumeService.save(cmStaffResume);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增履历失败");
        return AjaxResult.success("新增履历成功");
    }
    @Override
    public AjaxResult deleteCmStaffResume(Long id) {
        CmStaffResume cmStaffResume = cmStaffResumeService.getValidById(id);
        if (cmStaffResume == null)
            return AjaxResult.success("删除履历成功");
        cmStaffResume.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffResumeService.save(cmStaffResume);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败");
        return AjaxResult.success("删除履历成功");
    }
    @Override
    public AjaxResult updateCmStaffResume(CmStaffResumeUpdateReqDTO reqDTO) {
        CmStaffResume cmStaffResume = cmStaffResumeService.getValidById(reqDTO.getId());
        if (cmStaffResume == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffResume,"id");
        boolean save = cmStaffResumeService.save(cmStaffResume);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败");
        return AjaxResult.success("删除履历成功");
    }
    @Override
    public AjaxResult saveCmStaffTrain(CmStaffTrainAddReqDTO reqDTO) {
        CmStaffTrain cmStaffTrain = new CmStaffTrain();
        BeanUtils.copyProperties(reqDTO,cmStaffTrain);
        cmStaffTrain.setDelFlag(DeleteStatusEnum.NO.getStatus());
        boolean save = cmStaffTrainService.save(cmStaffTrain);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增培训经历失败");
        return AjaxResult.success("新增培训经历成功");
    }
    @Override
    public AjaxResult deleteCmStaffTrain(Long id) {
        CmStaffTrain cmStaffTrain = cmStaffTrainService.getValidById(id);
        if (cmStaffTrain == null)
            return AjaxResult.success("删除培训经历成功");
        cmStaffTrain.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffTrainService.save(cmStaffTrain);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除培训经历失败");
        return AjaxResult.success("删除培训经历成功");
    }
    @Override
    public AjaxResult updateCmStaffTrain(CmStaffTrainUpdateReqDTO reqDTO) {
        CmStaffTrain cmStaffTrain = cmStaffTrainService.getValidById(reqDTO.getId());
        if (cmStaffTrain == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffTrain,"id");
        boolean save = cmStaffTrainService.save(cmStaffTrain);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改培训经历失败");
        return AjaxResult.success("修改培训经历成功");
    }
    @Override
    public AjaxResult saveCmStaffExam(CmStaffExamAddReqDTO reqDTO) {
        CmStaffExam cmStaffExam = new CmStaffExam();
        BeanUtils.copyProperties(reqDTO,cmStaffExam);
        cmStaffExam.setDelFlag(DeleteStatusEnum.NO.getStatus());
        boolean save = cmStaffExamService.save(cmStaffExam);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增考试经历失败");
        return AjaxResult.success("新增考试经历成功");
    }
    @Override
    public AjaxResult deleteCmStaffExam(Long id) {
        CmStaffExam cmStaffExam = cmStaffExamService.getValidById(id);
        if (cmStaffExam == null)
            return AjaxResult.success("删除考试经历成功");
        cmStaffExam.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffExamService.save(cmStaffExam);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除考试经历失败");
        return AjaxResult.success("删除考试经历成功");
    }
    @Override
    public AjaxResult updateCmStaffExam(CmStaffExamUpdateReqDTO reqDTO) {
        CmStaffExam cmStaffExam = cmStaffExamService.getValidById(reqDTO.getId());
        if (cmStaffExam == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffExam,"id");
        boolean save = cmStaffExamService.save(cmStaffExam);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改考试经历失败");
        return AjaxResult.success("修改考试经历成功");
    }
    @Override
    public AjaxResult saveCmStaffQa(CmStaffQaAddReqDTO reqDTO) {
        CmStaffQa cmStaffQa = new CmStaffQa();
        BeanUtils.copyProperties(reqDTO,cmStaffQa);
        cmStaffQa.setDelFlag(DeleteStatusEnum.NO.getStatus());
        boolean save = cmStaffQaService.save(cmStaffQa);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增资格证书失败");
        return AjaxResult.success("新增资格证书成功");
    }
    @Override
    public AjaxResult deleteCmStaffQa(Long id) {
        CmStaffQa cmStaffQa = cmStaffQaService.getValidById(id);
        if (cmStaffQa == null)
            return AjaxResult.success("删除资格证书成功");
        cmStaffQa.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffQaService.save(cmStaffQa);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除资格证书失败");
        return AjaxResult.success("删除资格证书成功");
    }
    @Override
    public AjaxResult updateCmStaffQa(CmStaffQaUpdateReqDTO reqDTO) {
        CmStaffQa cmStaffQa = cmStaffQaService.getValidById(reqDTO.getId());
        if (cmStaffQa == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffQa,"id");
        boolean save = cmStaffQaService.save(cmStaffQa);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改资格证书失败");
        return AjaxResult.success("修改资格证书成功");
    }
    @Override
    public List<CmStaffPageRespDTO> selectPage() {
        LambdaQueryWrapper<CmStaff> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaff::getDelFlag,DeleteStatusEnum.NO.getStatus());
        List<CmStaff> cmStaffs = cmStaffService.list(wrapper);
        if (CollectionUtils.isEmpty(cmStaffs)){
            return null;
        }
        List<CmStaffPageRespDTO> dtos = cmStaffs.stream().map(cmStaff -> {
            CmStaffPageRespDTO dto = new CmStaffPageRespDTO();
            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 dto;
        }).collect(Collectors.toList());
        return dtos;
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EduResourcesManagerServiceImpl.java
对比新文件
@@ -0,0 +1,405 @@
package com.gkhy.exam.coalmine.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gkhy.exam.coalmine.entity.ExaminerManage;
import com.gkhy.exam.coalmine.entity.ExaminerManageOperateTypeBind;
import com.gkhy.exam.coalmine.entity.TeacherManage;
import com.gkhy.exam.coalmine.entity.TeacherManageOperateTypeBind;
import com.gkhy.exam.coalmine.model.dto.req.*;
import com.gkhy.exam.coalmine.model.dto.resp.GetExaminerOperateTypesRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetExaminerRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetTeacherOperateTypesRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetTeacherRespDTO;
import com.gkhy.exam.coalmine.service.EduResourcesManagerService;
import com.gkhy.exam.coalmine.service.baseService.ExaminerManageOperateTypeBindService;
import com.gkhy.exam.coalmine.service.baseService.ExaminerManageService;
import com.gkhy.exam.coalmine.service.baseService.TeacherManageOperateTypeBindService;
import com.gkhy.exam.coalmine.service.baseService.TeacherManageService;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.constant.ResultConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import com.ruoyi.common.enums.coalmineEnums.EnableStatusEnum;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.file.entity.AttachmentInfo;
import com.ruoyi.file.service.AttachmentInfoService;
import com.ruoyi.system.domain.bo.SysOperateTypeWholeNameBO;
import com.ruoyi.system.service.SysOperateTypeService;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
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.Map;
import java.util.stream.Collectors;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/11 16:04
 */
@Service
public class EduResourcesManagerServiceImpl implements EduResourcesManagerService {
    @Resource
    private ExaminerManageService examinerManageService;
    @Resource
    private TeacherManageService teacherManageService;
    @Resource
    private AttachmentInfoService attachmentInfoService;
    @Resource
    private SysOperateTypeService operateTypeService;
    @Resource
    private RedisCache redisCache;
    @Resource
    private ExaminerManageOperateTypeBindService examinerManageOperateTypeBindService;
    @Resource
    private TeacherManageOperateTypeBindService teacherManageOperateTypeBindService;
    @Override
    @Transactional
    public AjaxResult saveExaminer(ExaminerManageAddReqDTO reqDTO) {
        ExaminerManage examinerByCode = examinerManageService.getExaminerByCode(reqDTO.getCode());
        if (examinerByCode != null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"身份证已存在");
        ExaminerManage examinerManage = new ExaminerManage();
        BeanUtils.copyProperties(reqDTO,examinerManage);
        examinerManage.setDelFlag(DeleteStatusEnum.NO.getStatus());
        examinerManage.setStatus(EnableStatusEnum.YES.getStatus());
        boolean save = examinerManageService.save(examinerManage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员信息保存失败");
        if (!CollectionUtils.isEmpty(reqDTO.getOperateTypes())){
            ArrayList<ExaminerManageOperateTypeBind> binds = new ArrayList<>();
            for (ExaminerManageAddOperateTypeReqDTO operateType : reqDTO.getOperateTypes()) {
                ExaminerManageOperateTypeBind examinerManageOperateTypeBind = new ExaminerManageOperateTypeBind();
                BeanUtils.copyProperties(operateType,examinerManageOperateTypeBind);
                examinerManageOperateTypeBind.setDelFlag(DeleteStatusEnum.NO.getStatus());
                examinerManageOperateTypeBind.setExaminerManageId(examinerManage.getId());
                binds.add(examinerManageOperateTypeBind);
            }
            boolean saveBatch = examinerManageOperateTypeBindService.saveBatch(binds);
            if (!saveBatch)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员工种数据保存失败");
        }
        return AjaxResult.success("新增成功");
    }
    @Override
    @Transactional
    public AjaxResult removeExaminerById(Long id) {
        ExaminerManage manage = examinerManageService.getExaminerById(id);
        if (manage == null)
            return AjaxResult.success("删除成功");
        manage.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = examinerManageService.updateById(manage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员信息删除失败");
        removeOldExaminerManageOperateTypeBind(id);
        return AjaxResult.success("删除成功");
    }
    private void removeOldExaminerManageOperateTypeBind(Long id){
        List<ExaminerManageOperateTypeBind> binds = examinerManageOperateTypeBindService.listByExaminerManageId(id);
        if (!CollectionUtils.isEmpty(binds)){
            binds = binds.stream().map(bind -> {
                bind.setDelFlag(DeleteStatusEnum.YES.getStatus());
                return bind;
            }).collect(Collectors.toList());
            boolean updateBatchById = examinerManageOperateTypeBindService.updateBatchById(binds);
            if (!updateBatchById)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员信息修改失败");
        }
    }
    private void removeOldTeacherManageOperateTypeBind(Long id){
        List<TeacherManageOperateTypeBind> binds = teacherManageOperateTypeBindService.listByTeacherManageId(id);
        if (!CollectionUtils.isEmpty(binds)){
            binds = binds.stream().map(bind -> {
                bind.setDelFlag(DeleteStatusEnum.YES.getStatus());
                return bind;
            }).collect(Collectors.toList());
            boolean updateBatchById = teacherManageOperateTypeBindService.updateBatchById(binds);
            if (!updateBatchById)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师信息修改失败");
        }
    }
    @Override
    @Transactional
    public AjaxResult updateExaminerById(ExaminerManageUpdateReqDTO reqDTO) {
        ExaminerManage examinerByCode = examinerManageService.getExaminerByCode(reqDTO.getCode());
        if (examinerByCode != null && examinerByCode.getId() != reqDTO.getId())
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"身份证已存在");
        ExaminerManage examinerManage = new ExaminerManage();
        BeanUtils.copyProperties(reqDTO,examinerManage,"id");
        boolean save = examinerManageService.updateById(examinerManage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员信息修改失败");
        removeOldExaminerManageOperateTypeBind(reqDTO.getId());
        if (!CollectionUtils.isEmpty(reqDTO.getOperateTypes())){
            ArrayList<ExaminerManageOperateTypeBind> binds = new ArrayList<>();
            for (ExaminerManageAddOperateTypeReqDTO operateType : reqDTO.getOperateTypes()) {
                ExaminerManageOperateTypeBind examinerManageOperateTypeBind = new ExaminerManageOperateTypeBind();
                BeanUtils.copyProperties(operateType,examinerManageOperateTypeBind);
                examinerManageOperateTypeBind.setDelFlag(DeleteStatusEnum.NO.getStatus());
                examinerManageOperateTypeBind.setExaminerManageId(examinerManage.getId());
                binds.add(examinerManageOperateTypeBind);
            }
            boolean saveBatch = examinerManageOperateTypeBindService.saveBatch(binds);
            if (!saveBatch)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员工种数据保存失败");
        }
        return AjaxResult.success("修改成功");
    }
    private AttachmentInfo getAttachmentInfoById(Long id){
        if (id != null){
            AttachmentInfo attachmentInfo = attachmentInfoService.findById(id);
            return attachmentInfo;
        }
        return null;
    }
    @Override
    public AjaxResult getExaminerById(Long id) {
        ExaminerManage manage = examinerManageService.getExaminerById(id);
        GetExaminerRespDTO dto = getExaminerRespDTO(manage);
        return AjaxResult.success(dto);
    }
    private GetExaminerRespDTO getExaminerRespDTO(ExaminerManage manage) {
        GetExaminerRespDTO dto = new GetExaminerRespDTO();
        if (manage == null)
            return null;
        BeanUtils.copyProperties(manage,dto);
        dto.setQaAttachment(getAttachmentInfoById(manage.getQaAttachment()));
        dto.setPhotoAttachment(getAttachmentInfoById(manage.getPhotoAttachment()));
        LambdaQueryWrapper<ExaminerManageOperateTypeBind> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ExaminerManageOperateTypeBind::getExaminerManageId,manage.getId())
                .eq(ExaminerManageOperateTypeBind::getDelFlag,DeleteStatusEnum.NO.getStatus());
        List<ExaminerManageOperateTypeBind> list = examinerManageOperateTypeBindService.list(wrapper);
        if (CollectionUtils.isEmpty(list))
            return dto;
        Boolean flag = redisCache.hasKey(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY);
        Map<Long, SysOperateTypeWholeNameBO> map;
        if (flag){
            operateTypeService.resetOperateTypeCache();
        }
        map  = redisCache.getCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY);
        List<GetExaminerOperateTypesRespDTO> getExaminerOperateTypesRespDTOS = new ArrayList<>();
        for (ExaminerManageOperateTypeBind examinerManageOperateTypeBind : list) {
            GetExaminerOperateTypesRespDTO operateTypesRespDTO = new GetExaminerOperateTypesRespDTO();
            BeanUtils.copyProperties(examinerManageOperateTypeBind,operateTypesRespDTO);
            SysOperateTypeWholeNameBO sysOperateTypeWholeNameBO = map.get(examinerManageOperateTypeBind.getOperateTypeId());
            if (sysOperateTypeWholeNameBO != null){
                BeanUtils.copyProperties(sysOperateTypeWholeNameBO,operateTypesRespDTO);
            }
            getExaminerOperateTypesRespDTOS.add(operateTypesRespDTO);
        }
        dto.setOperateTypes(getExaminerOperateTypesRespDTOS);
        return dto;
    }
    @Override
    public List<GetExaminerRespDTO> selectAll() {
        LambdaQueryWrapper<ExaminerManage> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ExaminerManage::getDelFlag,DeleteStatusEnum.NO.getStatus());
        List<ExaminerManage> list = examinerManageService.list(wrapper);
        if (CollectionUtils.isEmpty(list))
            return null;
        List<GetExaminerRespDTO> dtos = new ArrayList<>();
        for (ExaminerManage manage : list) {
            GetExaminerRespDTO dto = getExaminerRespDTO(manage);
            dtos.add(dto);
        }
        return dtos;
    }
    @Override
    @Transactional
    public AjaxResult saveTeacher(TeacherManageAddReqDTO reqDTO) {
        TeacherManage teacherManage = teacherManageService.getTeacherByCode(reqDTO.getCode());
        if (teacherManage != null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"身份证已存在");
        teacherManage = new TeacherManage();
        BeanUtils.copyProperties(reqDTO,teacherManage);
        teacherManage.setDelFlag(DeleteStatusEnum.NO.getStatus());
        teacherManage.setStatus(EnableStatusEnum.YES.getStatus());
        boolean save = teacherManageService.save(teacherManage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师信息保存失败");
        if (!CollectionUtils.isEmpty(reqDTO.getOperateTypes())){
            ArrayList<TeacherManageOperateTypeBind> binds = new ArrayList<>();
            for (TeacherManageAddOperateTypeReqDTO operateType : reqDTO.getOperateTypes()) {
                TeacherManageOperateTypeBind teacherManageOperateTypeBind = new TeacherManageOperateTypeBind();
                BeanUtils.copyProperties(operateType,teacherManageOperateTypeBind);
                teacherManageOperateTypeBind.setDelFlag(DeleteStatusEnum.NO.getStatus());
                teacherManageOperateTypeBind.setTeacherManageId(teacherManage.getId());
                binds.add(teacherManageOperateTypeBind);
            }
            boolean saveBatch = teacherManageOperateTypeBindService.saveBatch(binds);
            if (!saveBatch)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师工种数据保存失败");
        }
        return AjaxResult.success("新增成功");
    }
    @Override
    @Transactional
    public AjaxResult updateTeacherById(TeacherManageUpdateReqDTO reqDTO) {
        TeacherManage teacherByCode = teacherManageService.getTeacherByCode(reqDTO.getCode());
        if (teacherByCode != null && teacherByCode.getId() != reqDTO.getId())
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"身份证已存在");
        TeacherManage teacherManage = new TeacherManage();
        BeanUtils.copyProperties(reqDTO,teacherManage,"id");
        boolean save = teacherManageService.updateById(teacherManage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师信息修改失败");
        removeOldTeacherManageOperateTypeBind(reqDTO.getId());
        if (!CollectionUtils.isEmpty(reqDTO.getOperateTypes())){
            ArrayList<TeacherManageOperateTypeBind> binds = new ArrayList<>();
            for (TeacherManageAddOperateTypeReqDTO operateType : reqDTO.getOperateTypes()) {
                TeacherManageOperateTypeBind examinerManageOperateTypeBind = new TeacherManageOperateTypeBind();
                BeanUtils.copyProperties(operateType,examinerManageOperateTypeBind);
                examinerManageOperateTypeBind.setDelFlag(DeleteStatusEnum.NO.getStatus());
                examinerManageOperateTypeBind.setTeacherManageId(teacherManage.getId());
                binds.add(examinerManageOperateTypeBind);
            }
            boolean saveBatch = teacherManageOperateTypeBindService.saveBatch(binds);
            if (!saveBatch)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师工种数据保存失败");
        }
        return AjaxResult.success("修改成功");
    }
    @Override
    public AjaxResult removeTeacherById(Long id) {
        TeacherManage manage = teacherManageService.getTeacherById(id);
        if (manage == null)
            return AjaxResult.success("删除成功");
        manage.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = teacherManageService.updateById(manage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师信息删除失败");
        removeOldTeacherManageOperateTypeBind(id);
        return AjaxResult.success("删除成功");
    }
    @Override
    public AjaxResult getTeacherById(Long id) {
        TeacherManage manage = teacherManageService.getTeacherById(id);
        GetTeacherRespDTO dto = getTeacherRespDTO(manage);
        return AjaxResult.success(dto);
    }
    private GetTeacherRespDTO getTeacherRespDTO(TeacherManage manage) {
        GetTeacherRespDTO dto = new GetTeacherRespDTO();
        if (manage == null)
            return null;
        BeanUtils.copyProperties(manage,dto);
        dto.setQaAttachment(getAttachmentInfoById(manage.getQaAttachment()));
        dto.setPhotoAttachment(getAttachmentInfoById(manage.getPhotoAttachment()));
        LambdaQueryWrapper<TeacherManageOperateTypeBind> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TeacherManageOperateTypeBind::getTeacherManageId,manage.getId())
                .eq(TeacherManageOperateTypeBind::getDelFlag,DeleteStatusEnum.NO.getStatus());
        List<TeacherManageOperateTypeBind> list = teacherManageOperateTypeBindService.list(wrapper);
        if (CollectionUtils.isEmpty(list))
            return dto;
        Boolean flag = redisCache.hasKey(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY);
        Map<Long, SysOperateTypeWholeNameBO> map;
        if (flag){
            operateTypeService.resetOperateTypeCache();
        }
        map  = redisCache.getCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY);
        List<GetTeacherOperateTypesRespDTO> getTeacherOperateTypesRespDTOS = new ArrayList<>();
        for (TeacherManageOperateTypeBind examinerManageOperateTypeBind : list) {
            GetTeacherOperateTypesRespDTO operateTypesRespDTO = new GetTeacherOperateTypesRespDTO();
            BeanUtils.copyProperties(examinerManageOperateTypeBind,operateTypesRespDTO);
            SysOperateTypeWholeNameBO sysOperateTypeWholeNameBO = map.get(examinerManageOperateTypeBind.getOperateTypeId());
            if (sysOperateTypeWholeNameBO != null){
                BeanUtils.copyProperties(sysOperateTypeWholeNameBO,operateTypesRespDTO);
            }
            getTeacherOperateTypesRespDTOS.add(operateTypesRespDTO);
        }
        dto.setOperateTypes(getTeacherOperateTypesRespDTOS);
        return dto;
    }
    @Override
    public List<GetTeacherRespDTO> selectTeacherAll() {
        LambdaQueryWrapper<TeacherManage> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TeacherManage::getDelFlag,DeleteStatusEnum.NO.getStatus());
        List<TeacherManage> list = teacherManageService.list(wrapper);
        if (CollectionUtils.isEmpty(list))
            return null;
        List<GetTeacherRespDTO> dtos = new ArrayList<>();
        for (TeacherManage manage : list) {
            GetTeacherRespDTO dto = getTeacherRespDTO(manage);
            dtos.add(dto);
        }
        return dtos;
    }
    @Override
    public AjaxResult updateStatus(TeacherManageUpdateStatusReqDTO reqDTO) {
        TeacherManage manage = teacherManageService.getTeacherById(reqDTO.getId());
        if (manage == null)
            return AjaxResult.success("数据不存在");
        manage.setStatus(reqDTO.getStatus());
        boolean save = teacherManageService.updateById(manage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师状态变更失败");
        return AjaxResult.success("教师状态变更成功");
    }
    @Override
    public AjaxResult updateExaminerStatus(ExaminerManageUpdateStatusReqDTO reqDTO) {
        ExaminerManage manage = examinerManageService.getExaminerById(reqDTO.getId());
        if (manage == null)
            return AjaxResult.success("数据不存在");
        manage.setStatus(reqDTO.getStatus());
        boolean save = examinerManageService.updateById(manage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员状态变更失败");
        return AjaxResult.success("教师状态变更成功");
    }
    @Override
    public AjaxResult deleteExaminerBindOperateType(Long id) {
        ExaminerManageOperateTypeBind manage = examinerManageOperateTypeBindService.getNoDeleteById(id);
        if (manage == null)
            return AjaxResult.success("数据不存在");
        manage.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = examinerManageOperateTypeBindService.updateById(manage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"考评员关联工种删除失败");
        return AjaxResult.success("考评员关联工种删除失败");
    }
    @Override
    public AjaxResult deleteTeacherBindOperateType(Long id) {
        TeacherManageOperateTypeBind manage = teacherManageOperateTypeBindService.getNoDeleteById(id);
        if (manage == null)
            return AjaxResult.success("数据不存在");
        manage.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = teacherManageOperateTypeBindService.updateById(manage);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"教师关联工种删除失败");
        return AjaxResult.success("教师关联工种删除失败");
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/EmonRecordManagerServiceImpl.java
对比新文件
@@ -0,0 +1,211 @@
package com.gkhy.exam.coalmine.service.impl;
import com.gkhy.exam.coalmine.entity.EmonExamRecord;
import com.gkhy.exam.coalmine.entity.EmonTrainRecord;
import com.gkhy.exam.coalmine.model.dto.req.ExamReceiveReqDTO;
import com.gkhy.exam.coalmine.model.dto.req.TrainReceiveReqDTO;
import com.gkhy.exam.coalmine.model.dto.resp.AttachmentInfoRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetExamDataRespDTO;
import com.gkhy.exam.coalmine.model.dto.resp.GetTrainDataRespDTO;
import com.gkhy.exam.coalmine.service.EmonRecordManagerService;
import com.gkhy.exam.coalmine.service.baseService.EmonExamRecordService;
import com.gkhy.exam.coalmine.service.baseService.EmonTrainRecordService;
import com.gkhy.exam.coalmine.utils.AttachmentUtil;
import com.ruoyi.common.constant.ResultConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.file.entity.AttachmentInfo;
import com.ruoyi.file.service.AttachmentService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/13 10:19
 */
@Service
public class EmonRecordManagerServiceImpl implements EmonRecordManagerService {
    @Resource
    private AttachmentService attachmentService;
    @Resource
    private EmonExamRecordService  emonExamRecordService;
    @Resource
    private EmonTrainRecordService emonTrainRecordService;
    private Boolean examDataIsValid(MultipartFile[] file,ExamReceiveReqDTO reqDTO){
        boolean valid = reqDTO != null && reqDTO.getReportTime() != null && reqDTO.getDistrictId() != null
                && StringUtils.isNotBlank(reqDTO.getExamCenter()) && StringUtils.isNotBlank(reqDTO.getExcType())
                && reqDTO.getIsCm() != null && StringUtils.isNotBlank(reqDTO.getModule()) && !CollectionUtils.isEmpty(Arrays.asList(file));
        return valid;
    }
    @Override
    @Transactional
    public AjaxResult examReceive(MultipartFile[] file,ExamReceiveReqDTO reqDTO) {
        if (examDataIsValid(file,reqDTO)) {
            List<AttachmentInfo> attachmentInfos = (List<AttachmentInfo>) attachmentService.saveBatchFileToPath(file, reqDTO.getModule());
            if (CollectionUtils.isEmpty(attachmentInfos))
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL, "考场异常监控记录图片保存失败");
            String attachmentIds = AttachmentUtil.idConvertString(attachmentInfos);
            EmonExamRecord emonExamRecord = new EmonExamRecord();
            BeanUtils.copyProperties(reqDTO, emonExamRecord);
            emonExamRecord.setDelFlag(DeleteStatusEnum.NO.getStatus());
            emonExamRecord.setExcImage(attachmentIds);
            boolean save = emonExamRecordService.save(emonExamRecord);
            if (!save)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL, "考场异常监控记录保存失败");
            return AjaxResult.success();
        }
        return null;
    }
    private Boolean trainDataIsValid(MultipartFile[] file,TrainReceiveReqDTO reqDTO){
        boolean valid = reqDTO != null && reqDTO.getReportTime() != null && reqDTO.getDistrictId() != null
                && StringUtils.isNotBlank(reqDTO.getExamCenter()) && StringUtils.isNotBlank(reqDTO.getExcType())
                && reqDTO.getIsCm() != null && !CollectionUtils.isEmpty(Arrays.asList(file))
                && StringUtils.isNotBlank(reqDTO.getModule());
        return valid;
    }
    @Override
    public AjaxResult trainReceive(MultipartFile[] file,TrainReceiveReqDTO reqDTO) {
        List<AttachmentInfo> attachmentInfos = (List<AttachmentInfo>) attachmentService.saveBatchFileToPath(file, reqDTO.getModule());
        if (CollectionUtils.isEmpty(attachmentInfos))
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL, "培训监控异常记录图片保存失败");
        String attachmentIds = AttachmentUtil.idConvertString(attachmentInfos);
        if (trainDataIsValid(file,reqDTO)) {
            EmonTrainRecord emonTrainRecord = new EmonTrainRecord ();
            BeanUtils.copyProperties(reqDTO,emonTrainRecord);
            emonTrainRecord.setDelFlag(DeleteStatusEnum.NO.getStatus());
            emonTrainRecord.setExcImage(attachmentIds);
            boolean save = emonTrainRecordService.save(emonTrainRecord);
            if (!save)
                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL, "培训监控异常记录保存失败");
            return AjaxResult.success();
        }
        return null;
    }
    @Override
    public List<GetExamDataRespDTO> getExamData() {
        List<EmonExamRecord> emonExamRecords =  emonExamRecordService.listValid();
        if (!CollectionUtils.isEmpty(emonExamRecords)){
            List<GetExamDataRespDTO> list = emonExamRecords.stream().map(emonExamRecord -> {
                GetExamDataRespDTO dto = new GetExamDataRespDTO();
                BeanUtils.copyProperties(emonExamRecord, dto);
                String excImage = emonExamRecord.getExcImage();
                if (StringUtils.isNotBlank(excImage)) {
                    List<Long> ids = AttachmentUtil.stringConvertIds(excImage);
                    List<AttachmentInfo> attachmentInfos = attachmentService.findByIds(ids);
                    if (!CollectionUtils.isEmpty(attachmentInfos)) {
                        List<AttachmentInfoRespDTO> attachmentInfoRespDTOS = attachmentInfos.stream().map(attachmentInfo -> {
                            AttachmentInfoRespDTO respDTO = new AttachmentInfoRespDTO();
                            BeanUtils.copyProperties(attachmentInfo, respDTO);
                            return respDTO;
                        }).collect(Collectors.toList());
                        dto.setAttachmentInfos(attachmentInfoRespDTOS);
                    }
                }
                return dto;
            }).collect(Collectors.toList());
            return list;
        }
        return null;
    }
    @Override
    public List<GetTrainDataRespDTO> getTrainData() {
        List<EmonTrainRecord> emonTrainRecords =  emonTrainRecordService.listValid();
        if (!CollectionUtils.isEmpty(emonTrainRecords)){
            List<GetTrainDataRespDTO> list = emonTrainRecords.stream().map(emonTrainRecord -> {
                GetTrainDataRespDTO dto = new GetTrainDataRespDTO();
                BeanUtils.copyProperties(emonTrainRecord, dto);
                String excImage = emonTrainRecord.getExcImage();
                if (StringUtils.isNotBlank(excImage)) {
                    List<Long> ids = AttachmentUtil.stringConvertIds(excImage);
                    List<AttachmentInfo> attachmentInfos = attachmentService.findByIds(ids);
                    if (!CollectionUtils.isEmpty(attachmentInfos)) {
                        List<AttachmentInfoRespDTO> attachmentInfoRespDTOS = attachmentInfos.stream().map(attachmentInfo -> {
                            AttachmentInfoRespDTO respDTO = new AttachmentInfoRespDTO();
                            BeanUtils.copyProperties(attachmentInfo, respDTO);
                            return respDTO;
                        }).collect(Collectors.toList());
                        dto.setAttachmentInfos(attachmentInfoRespDTOS);
                    }
                }
                return dto;
            }).collect(Collectors.toList());
            return list;
        }
        return null;
    }
    @Override
    public AjaxResult deleteExamRecord(Long id) {
        EmonExamRecord emonExamRecord = emonExamRecordService.findValidById(id);
        if (emonExamRecord == null)
            return AjaxResult.success();
        emonExamRecord.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean update = emonExamRecordService.updateById(emonExamRecord);
        if (!update)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL, "考场异常监控记录删除失败");
        String excImage = emonExamRecord.getExcImage();
        if (StringUtils.isNotBlank(excImage)) {
            List<Long> ids = AttachmentUtil.stringConvertIds(excImage);
            List<AttachmentInfo> attachmentInfos = attachmentService.findByIds(ids);
            if (!CollectionUtils.isEmpty(attachmentInfos)) {
                attachmentInfos = attachmentInfos.stream().map(attachmentInfo -> {
                    attachmentInfo.setDelFlag(1);
                    attachmentInfo.setUpdateBy(SecurityUtils.getUsername());
                    attachmentInfo.setUpdateTime(new Date());
                    return attachmentInfo;
                }).collect(Collectors.toList());
                attachmentService.updateBatchById(attachmentInfos);
            }
        }
        return AjaxResult.success("考场异常监控记录删除成功");
    }
    @Override
    public AjaxResult deleteTrainRecord(Long id) {
        EmonTrainRecord emonTrainRecord = emonTrainRecordService.findValidById(id);
        if (emonTrainRecord == null)
            return AjaxResult.success();
        emonTrainRecord.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean update = emonTrainRecordService.updateById(emonTrainRecord);
        if (!update)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL, "培训异常监控记录删除失败");
        String excImage = emonTrainRecord.getExcImage();
        if (StringUtils.isNotBlank(excImage)) {
            List<AttachmentInfo> attachmentInfos = attachmentService.findByBusinessId(id);
            if (!CollectionUtils.isEmpty(attachmentInfos)) {
                attachmentInfos = attachmentInfos.stream().map(attachmentInfo -> {
                    attachmentInfo.setDelFlag(1);
                    attachmentInfo.setUpdateBy(SecurityUtils.getUsername());
                    attachmentInfo.setUpdateTime(new Date());
                    return attachmentInfo;
                }).collect(Collectors.toList());
                attachmentService.updateBatchById(attachmentInfos);
            }
        }
        return AjaxResult.success("培训异常监控记录删除成功");
    }
}
exam-system/src/main/java/com/gkhy/exam/coalmine/utils/AttachmentUtil.java
对比新文件
@@ -0,0 +1,29 @@
package com.gkhy.exam.coalmine.utils;
import com.ruoyi.file.entity.AttachmentInfo;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
 * @author Mr.huang
 * @decription
 * @date 2023/9/14 9:59
 */
public class AttachmentUtil {
    public static List<Long> stringConvertIds(String str){
        List<Long> list = Pattern.compile(",\\s*")
                .splitAsStream(str)
                .map(Long::parseLong)
                .collect(Collectors.toList());
        return list;
    }
    public static String idConvertString(List<AttachmentInfo> attachmentInfos){
        String attachmentIds = attachmentInfos.stream().map(AttachmentInfo::getId).map(Object::toString)
                .collect(Collectors.joining(","));
        return attachmentIds;
    }
}
exam-system/src/main/resources/mapper/coalmine/CmStaffExamMapper.xml
对比新文件
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.CmStaffExamMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.CmStaffExam" id="CmStaffExamMap">
        <result property="id" column="id"/>
        <result property="staffId" column="staff_id"/>
        <result property="startTime" column="start_time"/>
        <result property="endTime" column="end_time"/>
        <result property="examCenter" column="exam_center"/>
        <result property="subject" column="subject"/>
        <result property="result" column="result"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectAllField">
        select id, staff_id, start_time, end_time, exam_center, subject, result, del_flag, create_by, create_time, update_by, update_time
        from cm_staff_exam
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/CmStaffMapper.xml
对比新文件
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.CmStaffMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.CmStaff" id="CmStaffManageMap">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="sex" column="sex"/>
        <result property="nationCode" column="nation_code"/>
        <result property="code" column="code"/>
        <result property="mobilePhone" column="mobile_phone"/>
        <result property="eduLevel" column="edu_level"/>
        <result property="photoAttachment" column="photo_attachment"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectAllField">
        select id, name, sex, nation_code, code, mobile_phone, edu_level, photo_attachment, del_flag, create_by, create_time, update_by, update_time
        from cm_staff_manage
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/CmStaffQaMapper.xml
对比新文件
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.CmStaffQaMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.CmStaffQa" id="CmStaffQaMap">
        <result property="id" column="id"/>
        <result property="staffId" column="staff_id"/>
        <result property="name" column="name"/>
        <result property="operateTypeId" column="operate_type_id"/>
        <result property="qualificationType" column="qualification_type"/>
        <result property="jobCategory" column="job_category"/>
        <result property="operationItems" column="operation_items"/>
        <result property="expiredTime" column="expired_time"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectAllField">
        select id, staff_id, name, operate_type_id, qualification_type, job_category, operation_items, expired_time, del_flag, create_by, create_time, update_by, update_time
        from cm_staff_qa
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/CmStaffResumeMapper.xml
对比新文件
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.CmStaffResumeMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.CmStaffResume" id="CmStaffResumeMap">
        <result property="id" column="id"/>
        <result property="staffId" column="staff_id"/>
        <result property="startTime" column="start_time"/>
        <result property="endTime" column="end_time"/>
        <result property="unit" column="unit"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectAllField">
        select id, staff_id, start_time, end_time, unit, del_flag, create_by, create_time, update_by, update_time
        from cm_staff_resume
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/CmStaffTrainMapper.xml
对比新文件
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.CmStaffTrainMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.CmStaffTrain" id="CmStaffTrainMap">
        <result property="id" column="id"/>
        <result property="staffId" column="staff_id"/>
        <result property="startTime" column="start_time"/>
        <result property="endTime" column="end_time"/>
        <result property="unit" column="unit"/>
        <result property="batch" column="batch"/>
        <result property="subject" column="subject"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectAllField">
        select id, staff_id, start_time, end_time, unit, batch, subject, del_flag, create_by, create_time, update_by, update_time
        from cm_staff_train
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/EmonExamRecordMapper.xml
对比新文件
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.EmonExamRecordMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.EmonExamRecord" id="EmonExamRecordMap">
        <result property="id" column="id"/>
        <result property="reportTime" column="report_time"/>
        <result property="districtId" column="district_id"/>
        <result property="examCenter" column="exam_center"/>
        <result property="excType" column="exc_type"/>
        <result property="isCm" column="is_cm"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="delFlag" column="del_flag"/>
    </resultMap>
    <sql id="selectAllField">
        select id, report_time, district_id, exam_center, exc_type, is_cm,exc_image, update_by, update_time, create_by, create_time, del_flag
        from emon_exam_record
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/EmonTrainRecordMapper.xml
对比新文件
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.EmonTrainRecordMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.EmonTrainRecord" id="EmonTrainRecordMap">
        <result property="id" column="id"/>
        <result property="reportTime" column="report_time"/>
        <result property="districtId" column="district_id"/>
        <result property="examCenter" column="exam_center"/>
        <result property="excType" column="exc_type"/>
        <result property="isCm" column="is_cm"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="delFlag" column="del_flag"/>
    </resultMap>
    <sql id="selectAllField">
        select id, report_time, district_id, exam_center, exc_type, is_cm, update_by, update_time, create_by, create_time, del_flag
        from emon_train_record
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/ExaminerManageMapper.xml
@@ -1,7 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.ExaminerManageMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.ExaminerManage" id="ExaminerManageMap">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="sex" column="sex"/>
        <result property="code" column="code"/>
        <result property="mobilePhone" column="mobile_phone"/>
        <result property="jobTitle" column="job_title"/>
        <result property="eduLevel" column="edu_level"/>
        <result property="expiredTime" column="expired_time"/>
        <result property="isCm" column="is_cm"/>
        <result property="description" column="description"/>
        <result property="photoAttachment" column="photo_attachment"/>
        <result property="qaAttachment" column="qa_attachment"/>
        <result property="status" column="status"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectAllField">
        select id, name, sex, code, mobile_phone, job_title, edu_level, expired_time, is_cm, description,photo_attachment, qa_attachment,status, del_flag, create_by, create_time, update_by, update_time
        from examiner_manage
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/ExaminerManageOperateTypeBindMapper.xml
对比新文件
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.ExaminerManageOperateTypeBindMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.ExaminerManageOperateTypeBind" id="ExaminerManageOperateTypeBindMap">
        <result property="id" column="id"/>
        <result property="teacherManageId" column="teacher_manage_id"/>
        <result property="operateTypeId" column="operate_type_id"/>
        <result property="qualificationType" column="qualification_type"/>
        <result property="jobCategory" column="job_category"/>
        <result property="operationItems" column="operation_items"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </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
        from examiner_manage_operate_type_bind
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/TeacherManageMapper.xml
对比新文件
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.TeacherManageMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.TeacherManage" id="TeacherManageMap">
        <result property="id" column="id"/>
        <result property="sex" column="sex"/>
        <result property="code" column="code"/>
        <result property="mobilePhone" column="mobile_phone"/>
        <result property="name" column="name"/>
        <result property="jobTitle" column="job_title"/>
        <result property="eduLevel" column="edu_level"/>
        <result property="expiredTime" column="expired_time"/>
        <result property="isCm" column="is_cm"/>
        <result property="description" column="description"/>
        <result property="photoAttachment" column="photo_attachment"/>
        <result property="qaAttachment" column="qa_attachment"/>
        <result property="status" column="status"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectAllField">
        select id, sex, code, mobile_phone, name, job_title, edu_level, expired_time, is_cm, description,photo_attachment, qa_attachment, status, del_flag, create_by, create_time, update_by, update_time
        from teacher_manage
    </sql>
</mapper>
exam-system/src/main/resources/mapper/coalmine/TeacherManageOperateTypeBindMapper.xml
对比新文件
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gkhy.exam.coalmine.mapper.TeacherManageOperateTypeBindMapper">
    <resultMap type="com.gkhy.exam.coalmine.entity.TeacherManageOperateTypeBind" id="TeacherManageOperateTypeBindMap">
        <result property="id" column="id"/>
        <result property="teacherManageId" column="teacher_manage_id"/>
        <result property="operateTypeId" column="operate_type_id"/>
        <result property="qualificationType" column="qualification_type"/>
        <result property="jobCategory" column="job_category"/>
        <result property="operationItems" column="operation_items"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </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
        from teacher_manage_operate_type_bind
    </sql>
</mapper>
ruoyi-common/src/main/java/com/ruoyi/common/enums/coalmineEnums/EnableStatusEnum.java
@@ -2,23 +2,23 @@
public enum EnableStatusEnum {
    NO((byte)0,"停用"),
    YES((byte)1,"启用"),
    NO("1","停用"),
    YES("0","启用"),
    ;
    private Byte status;
    private String status;
    private String desc;
    EnableStatusEnum(Byte status, String desc) {
    EnableStatusEnum(String status, String desc) {
        this.status = status;
        this.desc = desc;
    }
    public Byte getStatus() {
    public String getStatus() {
        return status;
    }
    public void setStatus(Byte status) {
    public void setStatus(String status) {
        this.status = status;
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperateTypeServiceImpl.java
@@ -20,12 +20,14 @@
import com.ruoyi.system.mapper.SysOperateTypeMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.service.SysOperateTypeService;
import org.apache.ibatis.logging.Log;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
@@ -45,21 +47,26 @@
    @Autowired
    private SysRoleMapper roleMapper;
    @Resource
    private RedisCache redisCache;
    @PostConstruct
    public void init()
    {
        loadingOperateTypeCache();
    }
    @Override
    public void loadingOperateTypeCache() {
        LambdaQueryWrapper<SysOperateType> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SysOperateType::getDelFlag, DeleteStatusEnum.YES.getStatus());
        wrapper.eq(SysOperateType::getDelFlag, DeleteStatusEnum.NO.getStatus());
        List<SysOperateType> sysOperateTypes = operateTypeMapper.selectList(wrapper);
        if (!CollectionUtils.isEmpty(sysOperateTypes)){
            Map<Long, SysOperateTypeWholeNameBO> map = new HashMap<>();
            for (SysOperateType sysOperateType : sysOperateTypes) {
                SysOperateTypeWholeNameBO nameBO = this.getOperateTypeWholeNameById(sysOperateType.getId());
                SysOperateTypeWholeNameBO nameBO = this.operateTypeWholeNameCacheById(sysOperateType.getId());
                map.put(sysOperateType.getId(),nameBO);
            }
            SpringUtils.getBean(RedisCache.class).setCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY, map);
@@ -302,8 +309,7 @@
        return this.operateTypeMapper.updateById(sysOperateType);
    }
    @Override
    public SysOperateTypeWholeNameBO getOperateTypeWholeNameById(Long id) {
    private SysOperateTypeWholeNameBO operateTypeWholeNameCacheById(Long id){
        SysOperateType sysOperateType = operateTypeMapper.selectOperateTypeById(id);
        if (sysOperateType == null)
            return null;
@@ -333,6 +339,15 @@
        }
        return bo;
    }
    @Override
    public SysOperateTypeWholeNameBO getOperateTypeWholeNameById(Long id) {
        Map<Long, SysOperateTypeWholeNameBO> map = redisCache.getCacheObject(CacheConstants.SYS_OPERATE_TYPE_NAME_KEY);
        if (map != null){
            return map.get(id);
        }
        return null;
    }
    //
    ///**
    // * 递归列表