heheng
2 天以前 338f2f5afc7762dabf2409f296d5d023462ed4b5
部分新功能
已修改5个文件
已添加75个文件
4251 ■■■■■ 文件已修改
multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysUserController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/AnnualVerificationPlanController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/CalibrationMonitoringEquipmentController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentBorrowCopyController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentChangesInvalidatedController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentDestructionApplyController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentDistributionCollectionController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/ExternalKnowledgeController.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/InternalKnowledgeController.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/SixInspectionController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-common/src/main/java/com/gkhy/exam/common/domain/entity/SysUser.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationDevice.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationPlan.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/CalibrationMonitoringEquipment.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentBorrowCopy.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentBorrowCopyRecord.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentChangesInvalidated.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentChangesInvalidatedEvaluate.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentChangesInvalidatedIssue.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentDestructionApply.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentDistributionCollection.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentDistributionCollectionRecord.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/ExternalKnowledge.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/InternalKnowledge.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/SixInspection.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/SixInspectionContent.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/SixInspectionProblem.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualVerificationDeviceMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualVerificationPlanMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/CalibrationMonitoringEquipmentMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentBorrowCopyMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentBorrowCopyRecordMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentChangesInvalidatedEvaluateMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentChangesInvalidatedIssueMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentChangesInvalidatedMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentDestructionApplyMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentDistributionCollectionMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentDistributionCollectionRecordMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/ExternalKnowledgeMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/InternalKnowledgeMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/SixInspectionContentMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/SixInspectionMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/SixInspectionProblemMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/AnnualVerificationPlanService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/CalibrationMonitoringEquipmentService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentBorrowCopyService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentChangesInvalidatedService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentDestructionApplyService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentDistributionCollectionService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/ExternalKnowledgeService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/InternalKnowledgeService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/SixInspectionService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/SysUserService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/AnnualVerificationPlanServiceImpl.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/CalibrationMonitoringEquipmentServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentBorrowCopyServiceImpl.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentChangesInvalidatedServiceImpl.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentDestructionApplyServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentDistributionCollectionServiceImpl.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExternalKnowledgeServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/InternalKnowledgeServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SixInspectionServiceImpl.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java 240 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/AnnualVerificationDeviceMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/AnnualVerificationPlanMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/CalibrationMonitoringEquipmentMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentBorrowCopyMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentBorrowCopyRecordMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentChangesInvalidatedEvaluateMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentChangesInvalidatedIssueMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentChangesInvalidatedMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentDestructionApplyMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentDistributionCollectionMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/DocumentDistributionCollectionRecordMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/ExternalKnowledgeMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/InternalKnowledgeMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/SixInspectionContentMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/SixInspectionMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/SixInspectionProblemMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/SysUserMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysUserController.java
@@ -18,6 +18,8 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@Api(tags = "用户前端控制器")
@RestController
@RequestMapping("/system/user")
@@ -96,6 +98,24 @@
        return CommonResult.success();
    }
  @RepeatSubmit
  @ApiOperation(value = "特殊作业人员证书")
  @PutMapping(value = "/specialCertificate")
  public CommonResult specialCertificate(@RequestBody SysUser user){
    sysUserService.updateSpecialCertificate(user);
    return CommonResult.success();
  }
  @RepeatSubmit
  @ApiOperation(value = "单位人员情况分析")
  @GetMapping(value = "/getUserData")
  public CommonResult getUserData(@RequestParam Long companyId){
    Map<String, Object> userData = sysUserService.getUserData(companyId);
    return CommonResult.success(userData);
  }
  @ApiOperation(value = "岗位任职管理(分页)")
  @ApiImplicitParams({
          @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/AnnualVerificationPlanController.java
对比新文件
@@ -0,0 +1,70 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.OutsourcedReview;
import com.gkhy.exam.system.service.AnnualVerificationPlanService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 年度检定计划主表 前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/annualVerificationPlan")
@Api(tags = "年度检定计划管理")
public class AnnualVerificationPlanController {
    @Autowired
    private AnnualVerificationPlanService annualVerificationPlanService;
    @ApiOperation(value = "年度检定计划列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
            @ApiImplicitParam(paramType = "query", name = "year", dataType = "String", required = false, value = "年份"),
    })
    @GetMapping("/selectAnnualVerificationPlanList")
    public CommonResult selectAnnualVerificationPlanList(AnnualVerificationPlan annualVerificationPlan){
        return CommonResult.success(annualVerificationPlanService.selectAnnualVerificationPlanList(annualVerificationPlan));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑年度检定计划")
    @PostMapping("/saveAnnualVerificationPlan")
    public CommonResult saveAnnualVerificationPlan(@RequestBody @Validated AnnualVerificationPlan annualVerificationPlan){
        return annualVerificationPlanService.saveAnnualVerificationPlan(annualVerificationPlan);
    }
    @ApiOperation(value = "年度检定计划详情")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/getAnnualVerificationPlan")
    public CommonResult getAnnualVerificationPlan(@RequestParam Long id){
        return annualVerificationPlanService.getAnnualVerificationPlan(id);
    }
    @ApiOperation(value = "删除年度检定计划")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedAnnualVerificationPlan")
    public CommonResult deletedAnnualVerificationPlan(@RequestParam Long id){
        return annualVerificationPlanService.deletedAnnualVerificationPlan(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/CalibrationMonitoringEquipmentController.java
对比新文件
@@ -0,0 +1,63 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment;
import com.gkhy.exam.system.service.CalibrationMonitoringEquipmentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 监测和测量设备校准确认表     前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/calibrationMonitoringEquipment")
@Api(tags = "监测和测量设备校准确认管理")
public class CalibrationMonitoringEquipmentController {
    @Autowired
    private CalibrationMonitoringEquipmentService calibrationMonitoringEquipmentService;
    @ApiOperation(value = "监测和测量设备校准确认列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
    })
    @GetMapping("/selectCalibrationMonitoringEquipmentList")
    public CommonResult selectCalibrationMonitoringEquipmentList(CalibrationMonitoringEquipment calibrationMonitoringEquipment){
        return CommonResult.success(calibrationMonitoringEquipmentService.selectCalibrationMonitoringEquipmentList(calibrationMonitoringEquipment));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑监测和测量设备校准确认")
    @PostMapping("/saveCalibrationMonitoringEquipment")
    public CommonResult saveCalibrationMonitoringEquipment(@RequestBody @Validated CalibrationMonitoringEquipment calibrationMonitoringEquipment){
        return calibrationMonitoringEquipmentService.saveCalibrationMonitoringEquipment(calibrationMonitoringEquipment);
    }
    @ApiOperation(value = "删除监测和测量设备校准确认")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedCalibrationMonitoringEquipment")
    public CommonResult deletedCalibrationMonitoringEquipment(@RequestParam Long id){
        return calibrationMonitoringEquipmentService.deletedCalibrationMonitoringEquipment(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentBorrowCopyController.java
对比新文件
@@ -0,0 +1,69 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.gkhy.exam.system.service.DocumentBorrowCopyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 文件借阅复制申请主表 前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/documentBorrowCopy")
@Api(tags = "文件借阅复制申请管理")
public class DocumentBorrowCopyController {
    @Autowired
    private DocumentBorrowCopyService documentBorrowCopyService;
    @ApiOperation(value = "文件借阅复制申请列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
    })
    @GetMapping("/selectDocumentBorrowCopyList")
    public CommonResult selectDocumentBorrowCopyList(DocumentBorrowCopy documentBorrowCopy){
        return CommonResult.success(documentBorrowCopyService.selectDocumentBorrowCopyList(documentBorrowCopy));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑文件借阅复制申请")
    @PostMapping("/saveDocumentBorrowCopy")
    public CommonResult saveDocumentBorrowCopy(@RequestBody @Validated DocumentBorrowCopy documentBorrowCopy){
        return documentBorrowCopyService.saveDocumentBorrowCopy(documentBorrowCopy);
    }
    @ApiOperation(value = "文件借阅复制申请详情")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/getDocumentBorrowCopy")
    public CommonResult getDocumentBorrowCopy(@RequestParam Long id){
        return documentBorrowCopyService.getDocumentBorrowCopy(id);
    }
    @ApiOperation(value = "删除文件借阅复制申请")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedDocumentBorrowCopy")
    public CommonResult deletedDocumentBorrowCopy(@RequestParam Long id){
        return documentBorrowCopyService.deletedDocumentBorrowCopy(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentChangesInvalidatedController.java
对比新文件
@@ -0,0 +1,67 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.gkhy.exam.system.domain.DocumentChangesInvalidated;
import com.gkhy.exam.system.service.DocumentChangesInvalidatedService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 文件更改作废申请主表     前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/documentChangesInvalidated")
@Api(tags = "文件更改作废申请")
public class DocumentChangesInvalidatedController {
    @Autowired
    private DocumentChangesInvalidatedService documentChangesInvalidatedService;
    @ApiOperation(value = "文件更改作废申请列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
    })
    @GetMapping("/selectDocumentChangesInvalidatedList")
    public CommonResult selectDocumentChangesInvalidatedList(DocumentChangesInvalidated documentChangesInvalidated){
        return CommonResult.success(documentChangesInvalidatedService.selectDocumentChangesInvalidatedList(documentChangesInvalidated));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑文件更改作废申请")
    @PostMapping("/saveDocumentChangesInvalidated")
    public CommonResult saveDocumentChangesInvalidated(@RequestBody @Validated DocumentChangesInvalidated documentChangesInvalidated){
        return documentChangesInvalidatedService.saveDocumentChangesInvalidated(documentChangesInvalidated);
    }
    @ApiOperation(value = "文件更改作废申请详情")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/getDocumentChangesInvalidated")
    public CommonResult getDocumentChangesInvalidated(@RequestParam Long id){
        return documentChangesInvalidatedService.getDocumentChangesInvalidated(id);
    }
    @ApiOperation(value = "删除文件更改作废申请")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedDocumentChangesInvalidated")
    public CommonResult deletedDocumentChangesInvalidated(@RequestParam Long id){
        return documentChangesInvalidatedService.deletedDocumentChangesInvalidated(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentDestructionApplyController.java
对比新文件
@@ -0,0 +1,63 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment;
import com.gkhy.exam.system.domain.DocumentDestructionApply;
import com.gkhy.exam.system.service.DocumentDestructionApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 文件销毁申请主表     前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/documentDestructionApply")
@Api(tags = "文件销毁申请")
public class DocumentDestructionApplyController {
    @Autowired
    private DocumentDestructionApplyService documentDestructionApplyService;
    @ApiOperation(value = "文件销毁申请列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
    })
    @GetMapping("/selectDocumentDestructionApplyList")
    public CommonResult selectDocumentDestructionApplyList(DocumentDestructionApply documentDestructionApply){
        return CommonResult.success(documentDestructionApplyService.selectDocumentDestructionApplyList(documentDestructionApply));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑文件销毁申请")
    @PostMapping("/saveDocumentDestructionApply")
    public CommonResult saveDocumentDestructionApply(@RequestBody @Validated DocumentDestructionApply documentDestructionApply){
        return documentDestructionApplyService.saveDocumentDestructionApply(documentDestructionApply);
    }
    @ApiOperation(value = "删除文件销毁申请")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedDocumentDestructionApply")
    public CommonResult deletedDocumentDestructionApply(@RequestParam Long id){
        return documentDestructionApplyService.deletedDocumentDestructionApply(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/DocumentDistributionCollectionController.java
对比新文件
@@ -0,0 +1,69 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.gkhy.exam.system.domain.DocumentDistributionCollection;
import com.gkhy.exam.system.service.DocumentBorrowCopyService;
import com.gkhy.exam.system.service.DocumentDistributionCollectionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 文件发放回收主表 前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/documentDistributionCollection")
@Api( tags ="文件发放回收主表")
public class DocumentDistributionCollectionController {
    @Autowired
    private DocumentDistributionCollectionService documentDistributionCollectionService;
    @ApiOperation(value = "文件发放回收列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
    })
    @GetMapping("/selectDocumentDistributionCollectionList")
    public CommonResult selectDocumentDistributionCollectionList(DocumentDistributionCollection documentDistributionCollection){
        return CommonResult.success(documentDistributionCollectionService.selectDocumentDistributionCollectionList(documentDistributionCollection));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑文件发放回收")
    @PostMapping("/saveDocumentDistributionCollection")
    public CommonResult saveDocumentDistributionCollection(@RequestBody @Validated DocumentDistributionCollection documentDistributionCollection){
        return documentDistributionCollectionService.saveDocumentDistributionCollection(documentDistributionCollection);
    }
    @ApiOperation(value = "文件发放回收详情")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/getDocumentDistributionCollection")
    public CommonResult getDocumentDistributionCollection(@RequestParam Long id){
        return documentDistributionCollectionService.getDocumentDistributionCollection(id);
    }
    @ApiOperation(value = "删除文件发放回收")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedDocumentDistributionCollection")
    public CommonResult deletedDocumentDistributionCollection(@RequestParam Long id){
        return documentDistributionCollectionService.deletedDocumentDistributionCollection(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/ExternalKnowledgeController.java
对比新文件
@@ -0,0 +1,59 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.ExternalKnowledge;
import com.gkhy.exam.system.domain.OutsourcedCommon;
import com.gkhy.exam.system.service.ExternalKnowledgeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 外部知识 前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/externalKnowledge")
@Api(tags = "外部知识管理")
public class ExternalKnowledgeController {
    @Autowired
    private ExternalKnowledgeService externalKnowledgeService;
    @ApiOperation(value = "外部知识记录列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
    })
    @GetMapping("/selectExternalKnowledgeList")
    public CommonResult selectExternalKnowledgeList(ExternalKnowledge externalKnowledge){
        return CommonResult.success(externalKnowledgeService.selectExternalKnowledgeList(externalKnowledge));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑外部知识记录")
    @PostMapping("/saveExternalKnowledge")
    public CommonResult saveExternalKnowledge(@RequestBody @Validated ExternalKnowledge externalKnowledge){
        return externalKnowledgeService.saveExternalKnowledge(externalKnowledge);
    }
    @ApiOperation(value = "删除外部知识记录")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedExternalKnowledge")
    public CommonResult deletedExternalKnowledge(@RequestParam Integer id){
        return externalKnowledgeService.deletedExternalKnowledge(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/InternalKnowledgeController.java
对比新文件
@@ -0,0 +1,58 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.ExternalKnowledge;
import com.gkhy.exam.system.domain.InternalKnowledge;
import com.gkhy.exam.system.service.InternalKnowledgeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 内部知识 前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/internal-knowledge")
@Api(tags = "内部知识管理")
public class InternalKnowledgeController {
    @Autowired
    private InternalKnowledgeService internalKnowledgeService;
    @ApiOperation(value = "内部知识记录列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
    })
    @GetMapping("/selectInternalKnowledgeList")
    public CommonResult selectInternalKnowledgeList(InternalKnowledge internalKnowledge){
        return CommonResult.success(internalKnowledgeService.selectInternalKnowledgeList(internalKnowledge));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑内部知识记录")
    @PostMapping("/saveInternalKnowledge")
    public CommonResult saveInternalKnowledge(@RequestBody @Validated InternalKnowledge internalKnowledge){
        return internalKnowledgeService.saveInternalKnowledge(internalKnowledge);
    }
    @ApiOperation(value = "删除内部知识记录")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedInternalKnowledge")
    public CommonResult deletedInternalKnowledge(@RequestParam Integer id){
        return internalKnowledgeService.deletedInternalKnowledge(id);
    }
}
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/SixInspectionController.java
对比新文件
@@ -0,0 +1,69 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.annotation.RepeatSubmit;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.SixInspection;
import com.gkhy.exam.system.service.SixInspectionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * 6s检查主表 前端控制器
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@RestController
@RequestMapping("/system/sixInspection")
@Api(tags = "6s检查管理")
public class SixInspectionController {
    @Autowired
    private SixInspectionService sixInspectionService;
    @ApiOperation(value = "6s检查列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司id"),
            @ApiImplicitParam(paramType = "query", name = "year", dataType = "String", required = false, value = "年份"),
    })
    @GetMapping("/selectSixInspectionList")
    public CommonResult selectSixInspectionList(SixInspection sixInspection){
        return CommonResult.success(sixInspectionService.selectSixInspectionList(sixInspection));
    }
    @RepeatSubmit
    @ApiOperation(value = "新增编辑6s检查")
    @PostMapping("/saveSixInspection")
    public CommonResult saveSixInspection(@RequestBody @Validated SixInspection sixInspection){
        return sixInspectionService.saveSixInspection(sixInspection);
    }
    @ApiOperation(value = "6s检查详情")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/getSixInspection")
    public CommonResult getSixInspection(@RequestParam Long id){
        return sixInspectionService.getSixInspection(id);
    }
    @ApiOperation(value = "删除6s检查")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
    })
    @GetMapping("/deletedSixInspection")
    public CommonResult deletedSixInspection(@RequestParam Long id){
        return sixInspectionService.deletedSixInspection(id);
    }
}
multi-common/src/main/java/com/gkhy/exam/common/domain/entity/SysUser.java
@@ -73,13 +73,13 @@
    @TableField("age")
    private Integer age;
    @ApiModelProperty(value = "人员类别1技术2管理3行政",required = true)
    @ApiModelProperty(value = "人员类别1技术2管理3行政4特殊作业",required = true)
    @NotNull(message = "人员类别1技术2管理3行政")
    @TableField("person_type")
    private Integer personType;
    @NotBlank(message = "职称不能为空")
    @ApiModelProperty("职称")
    @ApiModelProperty("职称1、初级2中级3高级")
    @TableField("positional")
    private String positional;
@@ -134,8 +134,9 @@
    @TableField("duty")
    private String duty;
    @ApiModelProperty("专业")
    @ApiModelProperty(value = "专业",required = true)
    @TableField("post")
    @NotBlank(message = "专业不能为空")
    private String post;
    @ApiModelProperty("身份证号")
@@ -150,6 +151,15 @@
    @TableField("resign_time")
    private LocalDate resignTime;
    @ApiModelProperty(value = "学历1、高中及以下2、专科3、本科4、硕士5、博士及以上",required = true)
    @NotNull(message = "学历不能为空")
    @TableField("qualification")
    private Integer qualification;
    @ApiModelProperty("特殊作业证书")
    @TableField("operation_certificate")
    private String operationCertificate;
    @ApiModelProperty("公司名称")
    @TableField(exist = false)
    private String companyName;
multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationDevice.java
对比新文件
@@ -0,0 +1,98 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 年度检定计划设备表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("annual_verification_device")
@ApiModel(value = "AnnualVerificationDevice对象", description = "年度检定计划设备表")
public class AnnualVerificationDevice implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("主表id")
    @TableField("annual_verification_id")
    private Long annualVerificationId;
    @ApiModelProperty("编号")
    @TableField("device_number")
    private String deviceNumber;
    @ApiModelProperty("设备名称")
    @TableField("device_name")
    private String deviceName;
    @ApiModelProperty("型号")
    @TableField("model")
    private String model;
    @ApiModelProperty("校准周期")
    @TableField("calibration_cycle")
    private String calibrationCycle;
    @ApiModelProperty("下次校准时间")
    @TableField("next_calibration_time")
    private LocalDateTime nextCalibrationTime;
    @ApiModelProperty("实际检定日期")
    @TableField("act_calibration_time")
    private LocalDateTime actCalibrationTime;
    @ApiModelProperty("校准人")
    @TableField("calibration_user")
    private String calibrationUser;
    @ApiModelProperty("使用人")
    @TableField("use_user")
    private String useUser;
    @ApiModelProperty("目前状态")
    @TableField("status")
    private String status;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationPlan.java
对比新文件
@@ -0,0 +1,118 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 年度检定计划主表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("annual_verification_plan")
@ApiModel(value = "AnnualVerificationPlan对象", description = "年度检定计划主表")
public class AnnualVerificationPlan implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "企业id",required = true)
    @TableField("company_id")
    @NotNull(message = "企业id不能为空")
    private Integer companyId;
    @ApiModelProperty(value = "名称",required = true)
    @TableField("name")
    @NotBlank(message = "名称不能为空")
    private String name;
    @ApiModelProperty(value = "年",required = true)
    @TableField("year")
    @NotBlank(message = "年不能为空")
    private String year;
    @ApiModelProperty(value = "编制",required = true)
    @TableField("establishment_id")
    @NotNull(message = "编制不能为空")
    private Long establishmentId;
    @ApiModelProperty("编制人")
    @TableField("establishment_name")
    private String establishmentName;
    @ApiModelProperty(value = "编制日期",required = true)
    @NotNull(message = "编制日期不能为空")
    @TableField("establishment_time")
    private LocalDateTime establishmentTime;
    @ApiModelProperty(value = "审核",required = true)
    @TableField("process_id")
    @NotNull(message = "审核不能为空")
    private Long processId;
    @ApiModelProperty("审核人")
    @TableField("process_name")
    private String processName;
    @ApiModelProperty(value = "审核日期",required = true)
    @TableField("process_time")
    @NotNull(message = "审核日期不能为空")
    private LocalDateTime processTime;
    @ApiModelProperty("检定证书")
    @TableField("certificate")
    private String certificate;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
    @TableField(exist = false)
    @ApiModelProperty("年度检定计划设备表")
    private List<AnnualVerificationDevice> annualVerificationDevices;
    @TableField(exist = false)
    @ApiModelProperty("年度检定计划设备表删除数据")
    private List<Long> delData;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/CalibrationMonitoringEquipment.java
对比新文件
@@ -0,0 +1,116 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 监测和测量设备校准确认表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("calibration_monitoring_equipment")
@ApiModel(value = "CalibrationMonitoringEquipment对象", description = "监测和测量设备校准确认表    ")
public class CalibrationMonitoringEquipment implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "企业id",required = true)
    @TableField("company_id")
    @NotNull(message = "企业id不能为空")
    private Integer companyId;
    @ApiModelProperty(value = "设备名称",required = true)
    @TableField("device_name")
    @NotBlank(message = "设备名称不能为空")
    private String deviceName;
    @ApiModelProperty(value = "设备编号",required = true)
    @TableField("device_number")
    @NotBlank(message = "设备编号不能为空")
    private String deviceNumber;
    @ApiModelProperty(value = "校准证书编号",required = true)
    @TableField("calibration_number")
    @NotBlank(message = "校准证书编号不能为空")
    private String calibrationNumber;
    @ApiModelProperty(value = "校准日期",required = true)
    @TableField("calibration_time")
    @NotNull(message = "校准日期不能为空")
    private LocalDateTime calibrationTime;
    @ApiModelProperty(value = "校准单位",required = true)
    @TableField("calibration_company")
    @NotBlank(message = "校准单位不能为空")
    private String calibrationCompany;
    @ApiModelProperty(value = "校准结果1满足使用2不满足",required = true)
    @TableField("calibration_result")
    @NotNull(message = "校准结果不能为空")
    private Integer calibrationResult;
    @ApiModelProperty(value = "确认人",required = true)
    @TableField("confirm_user")
    @NotBlank(message = "确认人不能为空")
    private String confirmUser;
    @ApiModelProperty(value = "确认日期",required = true)
    @TableField("confirm_time")
    @NotNull(message = "确认日期不能为空")
    private LocalDateTime confirmTime;
    @ApiModelProperty(value = "管理人员",required = true)
    @TableField("executive_user")
    @NotBlank(message = "管理人员不能为空")
    private String executiveUser;
    @ApiModelProperty(value = "管理人日期",required = true)
    @TableField("executive_time")
    @NotNull(message = "管理人日期不能为空")
    private LocalDateTime executiveTime;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentBorrowCopy.java
对比新文件
@@ -0,0 +1,95 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 文件借阅复制申请主表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_borrow_copy")
@ApiModel(value = "DocumentBorrowCopy对象", description = "文件借阅复制申请主表")
public class DocumentBorrowCopy implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "企业id",required = true)
    @TableField("company_id")
    @NotNull(message = "企业id不能为空")
    private Integer companyId;
    @ApiModelProperty(value ="记录名称",required = true)
    @TableField("name")
    @NotBlank(message = "记录名称不能为空")
    private String name;
    @ApiModelProperty(value ="制表人id" ,required = true)
    @TableField("tabulation_id")
    @NotNull(message = "制表人id不能为空")
    private Long tabulationId;
    @ApiModelProperty("制表人")
    @TableField("tabulation_name")
    private String tabulationName;
    @ApiModelProperty(value ="制表日期",required = true)
    @TableField("tabulation_date")
    @NotNull(message = "制表日期不能为空")
    private LocalDateTime tabulationDate;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
    @TableField(exist = false)
    @ApiModelProperty("文件借阅复制申请容表")
    private List<DocumentBorrowCopyRecord> documentBorrowCopyRecordList;
    @TableField(exist = false)
    @ApiModelProperty("内容删除数据")
    private List<Long> deleteIds;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentBorrowCopyRecord.java
对比新文件
@@ -0,0 +1,109 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 文件借阅复制申请容表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_borrow_copy_record")
@ApiModel(value = "DocumentBorrowCopyRecord对象", description = "文件借阅复制申请容表")
public class DocumentBorrowCopyRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("document_borrow_id")
    private Long documentBorrowId;
    @ApiModelProperty("文件名称")
    @TableField("file_name")
    private String fileName;
    @ApiModelProperty("编号")
    @TableField("number")
    private String number;
    @ApiModelProperty("发放部门")
    @TableField("distribution_dept_name")
    private String distributionDeptName;
    @ApiModelProperty("发放签收")
    @TableField("distribution_sign")
    private String distributionSign;
    @ApiModelProperty("发放日期")
    @TableField("distribution_date")
    private LocalDateTime distributionDate;
    @ApiModelProperty("回收部门")
    @TableField("collection_dept_name")
    private String collectionDeptName;
    @ApiModelProperty("签回")
    @TableField("collection_sign")
    private String collectionSign;
    @ApiModelProperty("发放日期")
    @TableField("collection_date")
    private LocalDateTime collectionDate;
    @ApiModelProperty("发放份数")
    @TableField("collection_num")
    private Integer collectionNum;
    @ApiModelProperty("发放份数")
    @TableField("distribution_num")
    private Integer distributionNum;
    @ApiModelProperty("排序")
    @TableField("sort")
    private Integer sort;
    @ApiModelProperty("备注版本")
    @TableField("remark")
    private String remark;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentChangesInvalidated.java
对比新文件
@@ -0,0 +1,194 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 文件更改作废申请主表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_changes_invalidated")
@ApiModel(value = "DocumentChangesInvalidated对象", description = "文件更改作废申请主表    ")
public class DocumentChangesInvalidated implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "企业id",required = true)
    @TableField("company_id")
    @NotNull(message = "企业id不能为空")
    private Integer companyId;
    @ApiModelProperty(value ="文件名称",required = true)
    @TableField("file_name")
    @NotBlank(message = "文件名称不能为空")
    private String fileName;
    @ApiModelProperty(value ="编号",required = true)
    @TableField("number")
    @NotBlank(message = "编号不能为空")
    private String number;
    @ApiModelProperty(value ="提出部门",required = true)
    @TableField("dept_id")
    @NotNull(message = "提出部门不能为空")
    private Long deptId;
    @ApiModelProperty(value ="更改人",required = true)
    @TableField("modifier_id")
    @NotNull(message = "更改人不能为空")
    private Integer modifierId;
    @ApiModelProperty("更改人")
    @TableField("modifier_name")
    private String modifierName;
    @ApiModelProperty(value ="页次",required = true)
    @TableField("page_number")
    @NotNull(message = "页次不能为空")
    private Integer pageNumber;
    @ApiModelProperty(value ="原版/次",required = true)
    @TableField("original_number")
    @NotNull(message = "原版/次不能为空")
    private Integer originalNumber;
    @ApiModelProperty(value ="现版/次",required = true)
    @TableField("current_number")
    @NotNull(message = "现版/次不能为空")
    private Integer currentNumber;
    @ApiModelProperty(value ="更改原因",required = true)
    @TableField("modifier_reason")
    @NotBlank(message = "更改原因不能为空")
    private String modifierReason;
    @ApiModelProperty(value ="更改方式1规划2换页3换版",required = true)
    @TableField("modifier_type")
    @NotNull(message = "更改方式不能为空")
    private Integer modifierType;
    @ApiModelProperty(value ="更改日期",required = true)
    @TableField("modifier_time")
    @NotNull(message = "更改日期不能为空")
    private LocalDateTime modifierTime;
    @ApiModelProperty(value ="实施时间",required = true)
    @TableField("implement_time")
    @NotNull(message = "实施时间不能为空")
    private LocalDateTime implementTime;
    @ApiModelProperty(value ="更改前",required = true)
    @TableField("modifier_front")
    @NotBlank(message = "更改前不能为空")
    private String modifierFront;
    @ApiModelProperty(value ="更改后",required = true)
    @TableField("modifier_back")
    @NotBlank(message = "更改后不能为空")
    private String modifierBack;
    @ApiModelProperty(value ="申请人id",required = true)
    @TableField("apply_id")
    @NotNull(message = "申请人id不能为空")
    private Long applyId;
    @ApiModelProperty("申请人")
    @TableField("apply_name")
    private String applyName;
    @ApiModelProperty("申请时间")
    @TableField("apply_date")
    private LocalDateTime applyDate;
    @ApiModelProperty(value ="批准人id",required = true)
    @TableField("approval_id")
    @NotNull(message = "批准人id不能为空")
    private Long approvalId;
    @ApiModelProperty("批准人")
    @TableField("approval_name")
    private String approvalName;
    @ApiModelProperty("批准时间")
    @TableField("approval_date")
    private LocalDateTime approvalDate;
    @ApiModelProperty(value ="审核",required = true)
    @TableField("process_id")
    @NotNull(message = "审核不能为空")
    private Long processId;
    @ApiModelProperty("审核人")
    @TableField("process_name")
    private String processName;
    @ApiModelProperty("审核时间")
    @TableField("process_date")
    private LocalDateTime processDate;
    @ApiModelProperty("备注")
    @TableField("remark")
    private String remark;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
    @ApiModelProperty("发放表")
    @TableField(exist = false)
    private List<DocumentChangesInvalidatedIssue> documentChangesInvalidatedIssueList;
    @ApiModelProperty("发放表删除数据")
    @TableField(exist = false)
    private List<Long> delInvalidatedIssueIds;
    @ApiModelProperty("评价表")
    @TableField(exist = false)
    private List<DocumentChangesInvalidatedEvaluate> documentChangesInvalidatedEvaluateList;
    @ApiModelProperty("评价表删除数据")
    @TableField(exist = false)
    private List<Long> delEvaluateIds;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentChangesInvalidatedEvaluate.java
对比新文件
@@ -0,0 +1,74 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 文件更改作废申请评价其他文件表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_changes_invalidated_evaluate")
@ApiModel(value = "DocumentChangesInvalidatedEvaluate对象", description = "文件更改作废申请评价其他文件表")
public class DocumentChangesInvalidatedEvaluate implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("主表id")
    @TableField("document_changes_id")
    private Long documentChangesId;
    @ApiModelProperty("序号")
    @TableField("sort")
    private Integer sort;
    @ApiModelProperty("文件名称")
    @TableField("file_name")
    private String fileName;
    @ApiModelProperty("文件编号")
    @TableField("file_number")
    private String fileNumber;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentChangesInvalidatedIssue.java
对比新文件
@@ -0,0 +1,78 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 文件更改作废申请发放表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_changes_invalidated_issue")
@ApiModel(value = "DocumentChangesInvalidatedIssue对象", description = "文件更改作废申请发放表    ")
public class DocumentChangesInvalidatedIssue implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("主表id")
    @TableField("document_changes_id")
    private Long documentChangesId;
    @ApiModelProperty("序号")
    @TableField("sort")
    private Integer sort;
    @ApiModelProperty("发放部门")
    @TableField("distribution_dept_name")
    private String distributionDeptName;
    @ApiModelProperty("签收人")
    @TableField("distribution_sign")
    private String distributionSign;
    @ApiModelProperty("日期")
    @TableField("distribution_date")
    private LocalDateTime distributionDate;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentDestructionApply.java
对比新文件
@@ -0,0 +1,146 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 文件销毁申请主表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_destruction_apply")
@ApiModel(value = "DocumentDestructionApply对象", description = "文件销毁申请主表    ")
public class DocumentDestructionApply implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("企业id")
    @TableField("company_id")
    private Integer companyId;
    @ApiModelProperty("文件名称")
    @TableField("file_name")
    private String fileName;
    @ApiModelProperty("序号")
    @TableField("sort")
    private Integer sort;
    @ApiModelProperty("编号")
    @TableField("number")
    private String number;
    @ApiModelProperty("版本")
    @TableField("edition")
    private String edition;
    @ApiModelProperty("份数")
    @TableField("copies")
    private Integer copies;
    @ApiModelProperty("销毁原因")
    @TableField("destruction")
    private String destruction;
    @ApiModelProperty("销毁申请人")
    @TableField("destruction_apply_id")
    private Integer destructionApplyId;
    @ApiModelProperty("销毁申请人")
    @TableField("destruction_apply_name")
    private String destructionApplyName;
    @ApiModelProperty("销毁申请日期")
    @TableField("destruction_apply_date")
    private LocalDateTime destructionApplyDate;
    @ApiModelProperty("所在部门意见")
    @TableField("dept_opinions")
    private String deptOpinions;
    @ApiModelProperty("所在部门人员")
    @TableField("dept_user_id")
    private Integer deptUserId;
    @ApiModelProperty("所在部门人员")
    @TableField("dept_user_name")
    private String deptUserName;
    @ApiModelProperty("所在部门时间")
    @TableField("dept_date")
    private LocalDateTime deptDate;
    @ApiModelProperty("文件保管部门意见")
    @TableField("safekeeping_opinions")
    private String safekeepingOpinions;
    @ApiModelProperty("文件保管人id")
    @TableField("safekeeping_id")
    private Long safekeepingId;
    @ApiModelProperty("文件保管人")
    @TableField("safekeeping_name")
    private String safekeepingName;
    @ApiModelProperty("文件保管时间")
    @TableField("safekeeping_date")
    private LocalDateTime safekeepingDate;
    @ApiModelProperty("管理者代表意见")
    @TableField("management_opinions")
    private String managementOpinions;
    @ApiModelProperty("管理者代表人id")
    @TableField("management_id")
    private Long managementId;
    @ApiModelProperty("管理者代表人")
    @TableField("management_name")
    private String managementName;
    @ApiModelProperty("管理者代表时间")
    @TableField("management_date")
    private LocalDateTime managementDate;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentDistributionCollection.java
对比新文件
@@ -0,0 +1,95 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 文件发放回收主表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_distribution_collection")
@ApiModel(value = "DocumentDistributionCollection对象", description = "文件发放回收主表")
public class DocumentDistributionCollection implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "企业id",required = true)
    @TableField("company_id")
    @NotNull(message = "企业id不能为空")
    private Integer companyId;
    @ApiModelProperty(value = "记录名称",required = true)
    @TableField("name")
    @NotBlank(message = "记录名称不能为空")
    private String name;
    @ApiModelProperty(value = "制表人id",required = true)
    @TableField("tabulation_id")
    @NotNull(message = "制表人id不能为空")
    private Long tabulationId;
    @ApiModelProperty("制表人")
    @TableField("tabulation_name")
    private String tabulationName;
    @ApiModelProperty(value = "制表日期",required = true)
    @NotNull(message = "制表日期不能为空")
    @TableField("tabulation_date")
    private LocalDateTime tabulationDate;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
    @TableField(exist = false)
    @ApiModelProperty("文件发放回收内容表")
    private List<DocumentDistributionCollectionRecord> documentDistributionCollectionRecordList;
    @TableField(exist = false)
    @ApiModelProperty("删除的id")
    private List<Long> deleteIds;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/DocumentDistributionCollectionRecord.java
对比新文件
@@ -0,0 +1,109 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 文件发放回收内容表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("document_distribution_collection_record")
@ApiModel(value = "DocumentDistributionCollectionRecord对象", description = "文件发放回收内容表")
public class DocumentDistributionCollectionRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("document_id")
    private Long documentId;
    @ApiModelProperty("排序")
    @TableField("sort")
    private Integer sort;
    @ApiModelProperty("文件名称")
    @TableField("file_name")
    private String fileName;
    @ApiModelProperty("编号")
    @TableField("number")
    private String number;
    @ApiModelProperty("发放部门")
    @TableField("distribution_dept_name")
    private String distributionDeptName;
    @ApiModelProperty("发放签收")
    @TableField("distribution_sign")
    private String distributionSign;
    @ApiModelProperty("发放日期")
    @TableField("distribution_date")
    private LocalDateTime distributionDate;
    @ApiModelProperty("回收部门")
    @TableField("collection_dept_name")
    private String collectionDeptName;
    @ApiModelProperty("签回")
    @TableField("collection_sign")
    private String collectionSign;
    @ApiModelProperty("发放日期")
    @TableField("collection_date")
    private LocalDateTime collectionDate;
    @ApiModelProperty("发放份数")
    @TableField("collection_num")
    private Integer collectionNum;
    @ApiModelProperty("发放份数")
    @TableField("distribution_num")
    private Integer distributionNum;
    @ApiModelProperty("备注版本")
    @TableField("remark")
    private String remark;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/ExternalKnowledge.java
对比新文件
@@ -0,0 +1,87 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 外部知识
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("external_knowledge")
@ApiModel(value = "ExternalKnowledge对象", description = "外部知识")
public class ExternalKnowledge implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "公司id",required = true)
    @TableField("company_id")
    @NotNull(message = "公司id不能为空")
    private Long companyId;
    @ApiModelProperty(value ="名称",required = true)
    @TableField("name")
    @NotBlank(message = "名称不能为空")
    private String name;
    @ApiModelProperty(value ="1、标准2、规范3、法律法规4、其他",required = true)
    @TableField("knowledge_type")
    @NotNull(message = "类型不能为空")
    private Integer knowledgeType;
    @ApiModelProperty("附件名称")
    @TableField("file_name")
    private String fileName;
    @ApiModelProperty("附件地址")
    @TableField("file_path")
    private String filePath;
    @ApiModelProperty("格式")
    @TableField("format")
    private String format;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    @Version
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/InternalKnowledge.java
对比新文件
@@ -0,0 +1,88 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 内部知识
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("internal_knowledge")
@ApiModel(value = "InternalKnowledge对象", description = "内部知识")
public class InternalKnowledge implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value ="公司id",required = true)
    @TableField("company_id")
    @NotNull(message = "公司id不能为空")
    private Long companyId;
    @ApiModelProperty(value ="名称",required = true)
    @TableField("name")
    @NotBlank(message = "名称不能为空")
    private String name;
    @ApiModelProperty(value ="1、体系2、项目3、其他",required = true)
    @TableField("knowledge_type")
    @NotNull(message = "类型不能为空")
    private Integer knowledgeType;
    @ApiModelProperty("附件名称")
    @TableField("file_name")
    private String fileName;
    @ApiModelProperty("附件地址")
    @TableField("file_path")
    private String filePath;
    @ApiModelProperty("格式")
    @TableField("format")
    private String format;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/SixInspection.java
对比新文件
@@ -0,0 +1,121 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * <p>
 * 6s检查主表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("six_inspection")
@ApiModel(value = "SixInspection对象", description = "6s检查主表")
public class SixInspection implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "企业id",required = true)
    @TableField("company_id")
    @NotNull(message = "企业id不能为空")
    private Integer companyId;
    @ApiModelProperty(value ="检查表名称",required = true)
    @TableField("inspection_name")
    @NotNull(message = "检查表名称不能为空")
    private String inspectionName;
    @ApiModelProperty(value ="检查日期",required = true)
    @TableField("inspection_date")
    @NotNull(message = "检查日期不能为空")
    private LocalDateTime inspectionDate;
    @ApiModelProperty(value ="受检区域",required = true)
    @TableField("inspection_content")
    @NotBlank(message = "受检区域不能为空")
    private String inspectionContent;
    @ApiModelProperty(value ="年份",required = true)
    @TableField("year")
    @NotBlank(message = "年份不能为空")
    private String year;
    @ApiModelProperty(value = "审批人id",required = true)
    @TableField("approval_id")
    @NotNull(message = "审批人id不能为空")
    private Long approvalId;
    @ApiModelProperty("审批人")
    @TableField("approval_name")
    private String approvalName;
    @ApiModelProperty(value ="编制",required = true)
    @TableField("establishment_id")
    @NotNull(message = "编制不能为空")
    private Long establishmentId;
    @ApiModelProperty("编制人")
    @TableField("establishment_name")
    private String establishmentName;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
    @ApiModelProperty("检查内容")
    @TableField(exist = false)
    private List<SixInspectionContent> sixInspectionContentList;
    @ApiModelProperty("删除的内容id")
    @TableField(exist = false)
    private List<Long> delContentIds;
        @ApiModelProperty("其他问题")
    @TableField(exist = false)
    private List<SixInspectionProblem> sixInspectionProblemList;
    @ApiModelProperty("删除的问题id")
    @TableField(exist = false)
    private List<Long> delProblemIds;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/SixInspectionContent.java
对比新文件
@@ -0,0 +1,78 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 6s检查内容表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("six_inspection_content")
@ApiModel(value = "SixInspectionContent对象", description = "6s检查内容表    ")
public class SixInspectionContent implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("主表id")
    @TableField("six_inspection_id")
    private Long sixInspectionId;
    @ApiModelProperty("内容编码1-15")
    @TableField("sort")
    private Integer sort;
    @ApiModelProperty("结果1符合2不符合3不涉及")
    @TableField("content_result")
    private Integer contentResult;
    @ApiModelProperty("具体问题")
    @TableField("concrete_problems")
    private String concreteProblems;
    @ApiModelProperty("责任部门")
    @TableField("responsible_department")
    private String responsibleDepartment;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/domain/SixInspectionProblem.java
对比新文件
@@ -0,0 +1,74 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * 6s检查其他问题表
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Getter
@Setter
@TableName("six_inspection_problem")
@ApiModel(value = "SixInspectionProblem对象", description = "6s检查其他问题表    ")
public class SixInspectionProblem implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("主表id")
    @TableField("six_inspection_id")
    private Long sixInspectionId;
    @ApiModelProperty("序号")
    @TableField("sort")
    private Integer sort;
    @ApiModelProperty("问题")
    @TableField("problems")
    private String problems;
    @ApiModelProperty("备注")
    @TableField("remark")
    private String remark;
    @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
    @TableField("del_flag")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;
    @ApiModelProperty("乐观锁")
    @TableField("version")
    private Integer version;
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualVerificationDeviceMapper.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.AnnualVerificationDevice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 年度检定计划设备表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface AnnualVerificationDeviceMapper extends BaseMapper<AnnualVerificationDevice> {
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualVerificationPlanMapper.java
对比新文件
@@ -0,0 +1,22 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 年度检定计划主表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface AnnualVerificationPlanMapper extends BaseMapper<AnnualVerificationPlan> {
    List<AnnualVerificationPlan> selectAnnualVerificationPlanList(AnnualVerificationPlan annualVerificationPlan);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/CalibrationMonitoringEquipmentMapper.java
对比新文件
@@ -0,0 +1,21 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 监测和测量设备校准确认表     Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface CalibrationMonitoringEquipmentMapper extends BaseMapper<CalibrationMonitoringEquipment> {
    List<CalibrationMonitoringEquipment> selectCalibrationMonitoringEquipmentList(CalibrationMonitoringEquipment calibrationMonitoringEquipment);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentBorrowCopyMapper.java
对比新文件
@@ -0,0 +1,22 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 文件借阅复制申请主表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentBorrowCopyMapper extends BaseMapper<DocumentBorrowCopy> {
    List<DocumentBorrowCopy> selectDocumentBorrowCopyList(DocumentBorrowCopy documentBorrowCopy);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentBorrowCopyRecordMapper.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentBorrowCopyRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 文件借阅复制申请容表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentBorrowCopyRecordMapper extends BaseMapper<DocumentBorrowCopyRecord> {
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentChangesInvalidatedEvaluateMapper.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentChangesInvalidatedEvaluate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 文件更改作废申请评价其他文件表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentChangesInvalidatedEvaluateMapper extends BaseMapper<DocumentChangesInvalidatedEvaluate> {
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentChangesInvalidatedIssueMapper.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentChangesInvalidatedIssue;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 文件更改作废申请发放表     Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentChangesInvalidatedIssueMapper extends BaseMapper<DocumentChangesInvalidatedIssue> {
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentChangesInvalidatedMapper.java
对比新文件
@@ -0,0 +1,21 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentChangesInvalidated;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 文件更改作废申请主表     Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentChangesInvalidatedMapper extends BaseMapper<DocumentChangesInvalidated> {
    List<DocumentChangesInvalidated> getDocumentChangesInvalidated(DocumentChangesInvalidated documentChangesInvalidated);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentDestructionApplyMapper.java
对比新文件
@@ -0,0 +1,21 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentDestructionApply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 文件销毁申请主表     Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentDestructionApplyMapper extends BaseMapper<DocumentDestructionApply> {
    List<DocumentDestructionApply> getDocumentDestructionApply(DocumentDestructionApply documentDestructionApply);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentDistributionCollectionMapper.java
对比新文件
@@ -0,0 +1,22 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentDistributionCollection;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 文件发放回收主表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentDistributionCollectionMapper extends BaseMapper<DocumentDistributionCollection> {
    List<DocumentDistributionCollection> selectDocumentDistributionCollectionList(DocumentDistributionCollection documentDistributionCollection);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/DocumentDistributionCollectionRecordMapper.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.DocumentDistributionCollectionRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 文件发放回收内容表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface DocumentDistributionCollectionRecordMapper extends BaseMapper<DocumentDistributionCollectionRecord> {
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/ExternalKnowledgeMapper.java
对比新文件
@@ -0,0 +1,21 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.ExternalKnowledge;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 外部知识 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface ExternalKnowledgeMapper extends BaseMapper<ExternalKnowledge> {
    List<ExternalKnowledge> getExternalKnowledge(ExternalKnowledge externalKnowledge);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/InternalKnowledgeMapper.java
对比新文件
@@ -0,0 +1,21 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.ExternalKnowledge;
import com.gkhy.exam.system.domain.InternalKnowledge;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 内部知识 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface InternalKnowledgeMapper extends BaseMapper<InternalKnowledge> {
    List<InternalKnowledge> getInternalKnowledge(InternalKnowledge internalKnowledge);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/SixInspectionContentMapper.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.SixInspectionContent;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 6s检查内容表     Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface SixInspectionContentMapper extends BaseMapper<SixInspectionContent> {
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/SixInspectionMapper.java
对比新文件
@@ -0,0 +1,22 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.SixInspection;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * <p>
 * 6s检查主表 Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface SixInspectionMapper extends BaseMapper<SixInspection> {
    List<SixInspection> selectSixInspectionList(SixInspection sixInspection);
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/SixInspectionProblemMapper.java
对比新文件
@@ -0,0 +1,18 @@
package com.gkhy.exam.system.mapper;
import com.gkhy.exam.system.domain.SixInspectionProblem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 6s检查其他问题表     Mapper 接口
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Mapper
public interface SixInspectionProblemMapper extends BaseMapper<SixInspectionProblem> {
}
multi-system/src/main/java/com/gkhy/exam/system/service/AnnualVerificationPlanService.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.system.domain.OutsourcedReview;
/**
 * <p>
 * 年度检定计划主表 服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface AnnualVerificationPlanService extends IService<AnnualVerificationPlan> {
    CommonPage selectAnnualVerificationPlanList(AnnualVerificationPlan annualVerificationPlan);
    CommonResult saveAnnualVerificationPlan(AnnualVerificationPlan annualVerificationPlan);
    CommonResult getAnnualVerificationPlan(Long id);
    CommonResult deletedAnnualVerificationPlan(Long id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/CalibrationMonitoringEquipmentService.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 监测和测量设备校准确认表     服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface CalibrationMonitoringEquipmentService extends IService<CalibrationMonitoringEquipment> {
    CommonPage selectCalibrationMonitoringEquipmentList(CalibrationMonitoringEquipment calibrationMonitoringEquipment);
    CommonResult saveCalibrationMonitoringEquipment(CalibrationMonitoringEquipment calibrationMonitoringEquipment);
    CommonResult deletedCalibrationMonitoringEquipment(Long id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentBorrowCopyService.java
对比新文件
@@ -0,0 +1,27 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 文件借阅复制申请主表 服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface DocumentBorrowCopyService extends IService<DocumentBorrowCopy> {
    CommonPage selectDocumentBorrowCopyList(DocumentBorrowCopy documentBorrowCopy);
    CommonResult saveDocumentBorrowCopy(DocumentBorrowCopy documentBorrowCopy);
    CommonResult getDocumentBorrowCopy(Long id);
    CommonResult deletedDocumentBorrowCopy(Long id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentChangesInvalidatedService.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.DocumentChangesInvalidated;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 文件更改作废申请主表     服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface DocumentChangesInvalidatedService extends IService<DocumentChangesInvalidated> {
    CommonPage selectDocumentChangesInvalidatedList(DocumentChangesInvalidated documentChangesInvalidated);
    CommonResult saveDocumentChangesInvalidated(DocumentChangesInvalidated documentChangesInvalidated);
    CommonResult getDocumentChangesInvalidated(Long id);
    CommonResult deletedDocumentChangesInvalidated(Long id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentDestructionApplyService.java
对比新文件
@@ -0,0 +1,26 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment;
import com.gkhy.exam.system.domain.DocumentDestructionApply;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 文件销毁申请主表     服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface DocumentDestructionApplyService extends IService<DocumentDestructionApply> {
    CommonPage selectDocumentDestructionApplyList(DocumentDestructionApply documentDestructionApply);
    CommonResult saveDocumentDestructionApply(DocumentDestructionApply documentDestructionApply);
    CommonResult deletedDocumentDestructionApply(Long id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/DocumentDistributionCollectionService.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.gkhy.exam.system.domain.DocumentDistributionCollection;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 文件发放回收主表 服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface DocumentDistributionCollectionService extends IService<DocumentDistributionCollection> {
    CommonPage selectDocumentDistributionCollectionList(DocumentDistributionCollection documentDistributionCollection);
    CommonResult saveDocumentDistributionCollection(DocumentDistributionCollection documentDistributionCollection);
    CommonResult getDocumentDistributionCollection(Long id);
    CommonResult deletedDocumentDistributionCollection(Long id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/ExternalKnowledgeService.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualMaintenance;
import com.gkhy.exam.system.domain.ExternalKnowledge;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.system.domain.vo.AnnualMaintenanceSaveDTOReq;
/**
 * <p>
 * 外部知识 服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface ExternalKnowledgeService extends IService<ExternalKnowledge> {
    CommonPage selectExternalKnowledgeList(ExternalKnowledge externalKnowledge);
    CommonResult saveExternalKnowledge(ExternalKnowledge externalKnowledge);
    CommonResult deletedExternalKnowledge(Integer id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/InternalKnowledgeService.java
对比新文件
@@ -0,0 +1,24 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.ExternalKnowledge;
import com.gkhy.exam.system.domain.InternalKnowledge;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 内部知识 服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface InternalKnowledgeService extends IService<InternalKnowledge> {
    CommonPage selectInternalKnowledgeList(InternalKnowledge internalKnowledge);
    CommonResult saveInternalKnowledge(InternalKnowledge internalKnowledge);
    CommonResult deletedInternalKnowledge(Integer id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/SixInspectionService.java
对比新文件
@@ -0,0 +1,25 @@
package com.gkhy.exam.system.service;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.SixInspection;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 6s检查主表 服务类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
public interface SixInspectionService extends IService<SixInspection> {
    CommonPage selectSixInspectionList(SixInspection sixInspection);
    CommonResult saveSixInspection(SixInspection sixInspection);
    CommonResult getSixInspection(Long id);
    CommonResult deletedSixInspection(Long id);
}
multi-system/src/main/java/com/gkhy/exam/system/service/SysUserService.java
@@ -5,6 +5,7 @@
import com.gkhy.exam.common.domain.entity.SysUser;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -91,7 +92,12 @@
     */
    int updateUserStatus(SysUser user);
    /**
     * 修改用户状态
     * @param user
     * @return
     */
    int updateSpecialCertificate(SysUser user);
    /**
     * 修改用户密码信息
     * @param user
@@ -107,6 +113,13 @@
    boolean checkUsernameUnique(SysUser user);
    /**
     * 统计企业人数
     * @param companyId
     * @return
     */
    Map<String, Object> getUserData(Long companyId);
    /**
     * 校验手机号是否唯一
     * @param user
     * @return
multi-system/src/main/java/com/gkhy/exam/system/service/impl/AnnualVerificationPlanServiceImpl.java
对比新文件
@@ -0,0 +1,131 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.AnnualVerificationDevice;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.OutsourcedReview;
import com.gkhy.exam.system.domain.OutsourcedReviewSubsidiary;
import com.gkhy.exam.system.mapper.AnnualVerificationDeviceMapper;
import com.gkhy.exam.system.mapper.AnnualVerificationPlanMapper;
import com.gkhy.exam.system.service.AnnualVerificationPlanService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 年度检定计划主表 服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class AnnualVerificationPlanServiceImpl extends ServiceImpl<AnnualVerificationPlanMapper, AnnualVerificationPlan> implements AnnualVerificationPlanService {
    @Autowired
    private AnnualVerificationPlanMapper annualVerificationPlanMapper;
    @Autowired
    private AnnualVerificationDeviceMapper annualVerificationDeviceMapper;
    @Override
    public CommonPage selectAnnualVerificationPlanList(AnnualVerificationPlan annualVerificationPlan) {
        PageUtils.startPage();
        List<AnnualVerificationPlan> annualVerificationPlans = annualVerificationPlanMapper.selectAnnualVerificationPlanList(annualVerificationPlan);
        return CommonPage.restPage(annualVerificationPlans);
    }
    @Override
    @Transactional
    public CommonResult saveAnnualVerificationPlan(AnnualVerificationPlan annualVerificationPlan) {
        List<AnnualVerificationDevice> annualVerificationDevices = annualVerificationPlan.getAnnualVerificationDevices();
        if (ObjectUtils.isEmpty(annualVerificationDevices)){
            return CommonResult.failed("保存参数不能为空");
        }
        int i = 0;
        if (annualVerificationPlan.getId() == null){
            annualVerificationPlan.setCreateBy(SecurityUtils.getUsername());
            annualVerificationPlan.setCreateTime(LocalDateTime.now());
            i = annualVerificationPlanMapper.insert(annualVerificationPlan);
        }else {
            annualVerificationPlan.setUpdateTime(LocalDateTime.now());
            annualVerificationPlan.setUpdateBy(SecurityUtils.getUsername());
            i = annualVerificationPlanMapper.updateById(annualVerificationPlan);
        }
        if (i > 0){
            batchSave(annualVerificationPlan.getId(), annualVerificationDevices, annualVerificationPlan.getDelData());
        }
        return i > 0 ? CommonResult.success() : CommonResult.failed();
    }
    private void batchSave(Long id, List<AnnualVerificationDevice> annualVerificationDevices, List<Long> delData) {
        if (ObjectUtils.isNotEmpty(delData)){
            int update = annualVerificationDeviceMapper.update(new AnnualVerificationDevice(),
                    new LambdaUpdateWrapper<AnnualVerificationDevice>().set(AnnualVerificationDevice::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(AnnualVerificationDevice::getUpdateTime, LocalDateTime.now()).set(AnnualVerificationDevice::getUpdateBy, SecurityUtils.getUsername())
                            .in(AnnualVerificationDevice::getId, delData)
            );
            if (update >= 0){
                throw new RuntimeException("操作失败");
            }
        }
        annualVerificationDevices.forEach(annualVerificationDevice -> {
            if (annualVerificationDevice.getId() == null){
                annualVerificationDevice.setAnnualVerificationId(id);
                annualVerificationDevice.setCreateTime(LocalDateTime.now());
                annualVerificationDevice.setCreateBy(SecurityUtils.getUsername());
                annualVerificationDeviceMapper.insert(annualVerificationDevice);
            }else {
                annualVerificationDevice.setUpdateTime(LocalDateTime.now());
                annualVerificationDevice.setUpdateBy(SecurityUtils.getUsername());
                annualVerificationDeviceMapper.updateById(annualVerificationDevice);
            }
        });
    }
    @Override
    public CommonResult getAnnualVerificationPlan(Long id) {
        AnnualVerificationPlan annualVerificationPlan = annualVerificationPlanMapper.selectById(id);
        if (annualVerificationPlan != null){
            List<AnnualVerificationDevice> annualVerificationDevices = annualVerificationDeviceMapper.selectList(new LambdaQueryWrapper<>(AnnualVerificationDevice.class).eq(AnnualVerificationDevice::getAnnualVerificationId, id)
                    .eq(AnnualVerificationDevice::getDelFlag, UserConstant.ENABLE).orderByDesc(AnnualVerificationDevice::getCreateTime));
            annualVerificationPlan.setAnnualVerificationDevices(annualVerificationDevices);
        }
        return CommonResult.success(annualVerificationPlan);
    }
    @Override
    @Transactional
    public CommonResult deletedAnnualVerificationPlan(Long id) {
        int i = annualVerificationPlanMapper.update(new AnnualVerificationPlan(),
                new LambdaUpdateWrapper<AnnualVerificationPlan>().eq(AnnualVerificationPlan::getId, id).set(AnnualVerificationPlan::getDelFlag, UserConstant.DEPT_DISABLE)
                        .set(AnnualVerificationPlan::getUpdateTime, LocalDateTime.now()).set(AnnualVerificationPlan::getUpdateBy, SecurityUtils.getUsername())
        );
        if (i > 0) {
            annualVerificationDeviceMapper.update(new AnnualVerificationDevice(),
                    new LambdaUpdateWrapper<AnnualVerificationDevice>().eq(AnnualVerificationDevice::getAnnualVerificationId, id)
                            .set(AnnualVerificationDevice::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(AnnualVerificationDevice::getUpdateTime, LocalDateTime.now())
                            .set(AnnualVerificationDevice::getUpdateBy, SecurityUtils.getUsername()));
        }
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/CalibrationMonitoringEquipmentServiceImpl.java
对比新文件
@@ -0,0 +1,66 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment;
import com.gkhy.exam.system.mapper.CalibrationMonitoringEquipmentMapper;
import com.gkhy.exam.system.service.CalibrationMonitoringEquipmentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 监测和测量设备校准确认表     服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class CalibrationMonitoringEquipmentServiceImpl extends ServiceImpl<CalibrationMonitoringEquipmentMapper, CalibrationMonitoringEquipment> implements CalibrationMonitoringEquipmentService {
    @Autowired
    private CalibrationMonitoringEquipmentMapper calibrationMonitoringEquipmentMapper;
    @Override
    public CommonPage selectCalibrationMonitoringEquipmentList(CalibrationMonitoringEquipment calibrationMonitoringEquipment) {
        PageUtils.startPage();
        List<CalibrationMonitoringEquipment> calibrationMonitoringEquipments = calibrationMonitoringEquipmentMapper.selectCalibrationMonitoringEquipmentList(calibrationMonitoringEquipment);
        return CommonPage.restPage(calibrationMonitoringEquipments);
    }
    @Override
    public CommonResult saveCalibrationMonitoringEquipment(CalibrationMonitoringEquipment calibrationMonitoringEquipment) {
        int i = 0;
        if (calibrationMonitoringEquipment.getId() == null){
            calibrationMonitoringEquipment.setCreateBy(SecurityUtils.getUsername());
            calibrationMonitoringEquipment.setCreateTime(LocalDateTime.now());
            i = calibrationMonitoringEquipmentMapper.insert(calibrationMonitoringEquipment);
        }else {
            calibrationMonitoringEquipment.setUpdateTime(LocalDateTime.now());
            calibrationMonitoringEquipment.setUpdateBy(SecurityUtils.getUsername());
            i = calibrationMonitoringEquipmentMapper.updateById(calibrationMonitoringEquipment);
        }
        return i > 0 ? CommonResult.success() : CommonResult.failed();
    }
    @Override
    public CommonResult deletedCalibrationMonitoringEquipment(Long id) {
        int i = calibrationMonitoringEquipmentMapper.update(new CalibrationMonitoringEquipment(),
                new LambdaUpdateWrapper<CalibrationMonitoringEquipment>().eq(CalibrationMonitoringEquipment::getId, id).set(CalibrationMonitoringEquipment::getDelFlag, UserConstant.DEPT_DISABLE)
                        .set(CalibrationMonitoringEquipment::getUpdateTime, LocalDateTime.now()).set(CalibrationMonitoringEquipment::getUpdateBy, SecurityUtils.getUsername())
        );
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentBorrowCopyServiceImpl.java
对比新文件
@@ -0,0 +1,126 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.gkhy.exam.system.domain.DocumentBorrowCopyRecord;
import com.gkhy.exam.system.mapper.DocumentBorrowCopyMapper;
import com.gkhy.exam.system.mapper.DocumentBorrowCopyRecordMapper;
import com.gkhy.exam.system.service.DocumentBorrowCopyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 文件借阅复制申请主表 服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class DocumentBorrowCopyServiceImpl extends ServiceImpl<DocumentBorrowCopyMapper, DocumentBorrowCopy> implements DocumentBorrowCopyService {
    @Autowired
    private DocumentBorrowCopyMapper documentBorrowCopyMapper;
    @Autowired
    private DocumentBorrowCopyRecordMapper documentBorrowCopyRecordMapper;
    @Override
    public CommonPage selectDocumentBorrowCopyList(DocumentBorrowCopy documentBorrowCopy) {
        PageUtils.startPage();
        List<DocumentBorrowCopy> documentBorrowCopies = documentBorrowCopyMapper.selectDocumentBorrowCopyList(documentBorrowCopy);
        return CommonPage.restPage(documentBorrowCopies);
    }
    @Override
    @Transactional
    public CommonResult saveDocumentBorrowCopy(DocumentBorrowCopy documentBorrowCopy) {
        List<DocumentBorrowCopyRecord> documentBorrowCopyRecordList = documentBorrowCopy.getDocumentBorrowCopyRecordList();
        if (ObjectUtils.isEmpty(documentBorrowCopyRecordList)){
            return CommonResult.failed("保存参数不能为空");
        }
        int i = 0;
        if (documentBorrowCopy.getId() == null){
            documentBorrowCopy.setCreateBy(SecurityUtils.getUsername());
            documentBorrowCopy.setCreateTime(LocalDateTime.now());
             i = documentBorrowCopyMapper.insert(documentBorrowCopy);
        }else {
            documentBorrowCopy.setUpdateBy(SecurityUtils.getUsername());
            documentBorrowCopy.setUpdateTime(LocalDateTime.now());
            i = documentBorrowCopyMapper.updateById(documentBorrowCopy);
        }
        if (i > 0){
            batchSave(documentBorrowCopy.getId(), documentBorrowCopyRecordList,documentBorrowCopy.getDeleteIds());
        }
        return i > 0 ? CommonResult.success() : CommonResult.failed();
    }
    private void batchSave(Long id, List<DocumentBorrowCopyRecord> documentBorrowCopyRecordList,List<Long> delIds) {
        if (ObjectUtils.isNotEmpty(delIds)) {
            int update = documentBorrowCopyRecordMapper.update(new DocumentBorrowCopyRecord(),
                    new LambdaUpdateWrapper<DocumentBorrowCopyRecord>().set(DocumentBorrowCopyRecord::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentBorrowCopyRecord::getUpdateTime, LocalDateTime.now())
                            .set(DocumentBorrowCopyRecord::getUpdateBy, SecurityUtils.getUsername()).in(DocumentBorrowCopyRecord::getId, delIds)
            );
        }
        if (ObjectUtils.isNotEmpty(documentBorrowCopyRecordList)) {
          documentBorrowCopyRecordList.forEach(documentBorrowCopyRecord -> {
              if (documentBorrowCopyRecord.getId() == null){
                  documentBorrowCopyRecord.setDocumentBorrowId(id);
                  documentBorrowCopyRecord.setCreateTime(LocalDateTime.now());
                  documentBorrowCopyRecord.setCreateBy(SecurityUtils.getUsername());
                  documentBorrowCopyRecordMapper.insert(documentBorrowCopyRecord);
              }else {
                  documentBorrowCopyRecord.setUpdateTime(LocalDateTime.now());
                  documentBorrowCopyRecord.setUpdateBy(SecurityUtils.getUsername());
                  documentBorrowCopyRecordMapper.updateById(documentBorrowCopyRecord);
              }
          });
        }
    }
    @Override
    public CommonResult getDocumentBorrowCopy(Long id) {
        DocumentBorrowCopy documentBorrowCopy = documentBorrowCopyMapper.selectById(id);
        if (documentBorrowCopy != null){
            List<DocumentBorrowCopyRecord> documentBorrowCopyRecordList = documentBorrowCopyRecordMapper.selectList(
                    new LambdaQueryWrapper<>(DocumentBorrowCopyRecord.class).eq(DocumentBorrowCopyRecord::getDocumentBorrowId, id)
                            .eq(DocumentBorrowCopyRecord::getDelFlag, UserConstant.ENABLE).orderByAsc(DocumentBorrowCopyRecord::getSort)
            );
            documentBorrowCopy.setDocumentBorrowCopyRecordList(documentBorrowCopyRecordList);
        }
        return CommonResult.success(documentBorrowCopy);
    }
    @Override
    @Transactional
    public CommonResult deletedDocumentBorrowCopy(Long id) {
        int i = documentBorrowCopyMapper.update(new DocumentBorrowCopy(),
                new LambdaUpdateWrapper<DocumentBorrowCopy>().set(DocumentBorrowCopy::getDelFlag, UserConstant.DEPT_DISABLE)
                        .set(DocumentBorrowCopy::getUpdateTime, LocalDateTime.now())
                        .set(DocumentBorrowCopy::getUpdateBy, SecurityUtils.getUsername()).eq(DocumentBorrowCopy::getId, id)
        );
        if (i > 0){
            documentBorrowCopyRecordMapper.update(new DocumentBorrowCopyRecord(),
                    new LambdaUpdateWrapper<DocumentBorrowCopyRecord>().set(DocumentBorrowCopyRecord::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentBorrowCopyRecord::getUpdateTime, LocalDateTime.now()).set(DocumentBorrowCopyRecord::getUpdateBy, SecurityUtils.getUsername())
                            .eq(DocumentBorrowCopyRecord::getDocumentBorrowId, id));
        }
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentChangesInvalidatedServiceImpl.java
对比新文件
@@ -0,0 +1,162 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.DocumentChangesInvalidated;
import com.gkhy.exam.system.domain.DocumentChangesInvalidatedEvaluate;
import com.gkhy.exam.system.domain.DocumentChangesInvalidatedIssue;
import com.gkhy.exam.system.mapper.DocumentChangesInvalidatedEvaluateMapper;
import com.gkhy.exam.system.mapper.DocumentChangesInvalidatedIssueMapper;
import com.gkhy.exam.system.mapper.DocumentChangesInvalidatedMapper;
import com.gkhy.exam.system.service.DocumentChangesInvalidatedService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 文件更改作废申请主表     服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class DocumentChangesInvalidatedServiceImpl extends ServiceImpl<DocumentChangesInvalidatedMapper, DocumentChangesInvalidated> implements DocumentChangesInvalidatedService {
    @Autowired
    private DocumentChangesInvalidatedMapper documentChangesInvalidatedMapper;
    @Autowired
    private DocumentChangesInvalidatedIssueMapper documentChangesInvalidatedIssueMapper;
    @Autowired
    private DocumentChangesInvalidatedEvaluateMapper documentChangesInvalidatedEvaluateMapper;
    @Override
    public CommonPage selectDocumentChangesInvalidatedList(DocumentChangesInvalidated documentChangesInvalidated) {
        PageUtils.startPage();
        List<DocumentChangesInvalidated> documentChangesInvalidated1 = documentChangesInvalidatedMapper.getDocumentChangesInvalidated(documentChangesInvalidated);
        return CommonPage.restPage(documentChangesInvalidated1);
    }
    @Override
    @Transactional
    public CommonResult saveDocumentChangesInvalidated(DocumentChangesInvalidated documentChangesInvalidated) {
        int i = 0;
        if (documentChangesInvalidated.getId() == null){
            documentChangesInvalidated.setCreateBy(SecurityUtils.getUsername());
            documentChangesInvalidated.setCreateTime(LocalDateTime.now());
            i = documentChangesInvalidatedMapper.insert(documentChangesInvalidated);
        }else {
            documentChangesInvalidated.setUpdateTime(LocalDateTime.now());
            documentChangesInvalidated.setUpdateBy(SecurityUtils.getUsername());
            i = documentChangesInvalidatedMapper.updateById(documentChangesInvalidated);
        }
        if (i > 0){
            batchSave(documentChangesInvalidated.getId(), documentChangesInvalidated.getDocumentChangesInvalidatedEvaluateList()
                    , documentChangesInvalidated.getDocumentChangesInvalidatedIssueList(),documentChangesInvalidated.getDelEvaluateIds(),documentChangesInvalidated.getDelInvalidatedIssueIds());
        }
        return i > 0 ? CommonResult.success() : CommonResult.failed();
    }
    private void batchSave(Long id, List<DocumentChangesInvalidatedEvaluate> documentChangesInvalidatedEvaluates,
                           List<DocumentChangesInvalidatedIssue> documentChangesInvalidatedIssues,
                           List<Long> delEvaluateIds, List<Long> delInvalidatedIssueIds) {
        if (ObjectUtils.isNotEmpty(delEvaluateIds)){
            int update = documentChangesInvalidatedEvaluateMapper.update(new DocumentChangesInvalidatedEvaluate(),
                    new LambdaUpdateWrapper<DocumentChangesInvalidatedEvaluate>().set(DocumentChangesInvalidatedEvaluate::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentChangesInvalidatedEvaluate::getUpdateTime, LocalDateTime.now()).set(DocumentChangesInvalidatedEvaluate::getUpdateBy, SecurityUtils.getUsername())
                            .in(DocumentChangesInvalidatedEvaluate::getId, delEvaluateIds)
            );
        }
        if (ObjectUtils.isNotEmpty(delInvalidatedIssueIds)){
            int update = documentChangesInvalidatedIssueMapper.update(new DocumentChangesInvalidatedIssue(),
                    new LambdaUpdateWrapper<DocumentChangesInvalidatedIssue>().set(DocumentChangesInvalidatedIssue::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentChangesInvalidatedIssue::getUpdateTime, LocalDateTime.now()).set(DocumentChangesInvalidatedIssue:: getUpdateBy, SecurityUtils.getUsername())
                    .in(DocumentChangesInvalidatedIssue::getId, delInvalidatedIssueIds)
            );
        }
        if (ObjectUtils.isNotEmpty(documentChangesInvalidatedIssues)){
            documentChangesInvalidatedIssues.forEach(documentChangesInvalidatedIssue -> {
                if (documentChangesInvalidatedIssue.getId() == null){
                    documentChangesInvalidatedIssue.setDocumentChangesId(id);
                    documentChangesInvalidatedIssue.setCreateTime(LocalDateTime.now());
                    documentChangesInvalidatedIssue.setCreateBy(SecurityUtils.getUsername());
                    documentChangesInvalidatedIssueMapper.insert(documentChangesInvalidatedIssue);
                }else {
                    documentChangesInvalidatedIssue.setUpdateTime(LocalDateTime.now());
                    documentChangesInvalidatedIssue.setUpdateBy(SecurityUtils.getUsername());
                    documentChangesInvalidatedIssueMapper.updateById(documentChangesInvalidatedIssue);
                }
            });
        }
        if (ObjectUtils.isNotEmpty(documentChangesInvalidatedEvaluates)){
            documentChangesInvalidatedEvaluates.forEach(documentChangesInvalidatedEvaluate -> {
                if (documentChangesInvalidatedEvaluate.getId() == null){
                    documentChangesInvalidatedEvaluate.setDocumentChangesId(id);
                    documentChangesInvalidatedEvaluate.setCreateTime(LocalDateTime.now());
                    documentChangesInvalidatedEvaluate.setCreateBy(SecurityUtils.getUsername());
                    documentChangesInvalidatedEvaluateMapper.insert(documentChangesInvalidatedEvaluate);
                }else {
                    documentChangesInvalidatedEvaluate.setUpdateTime(LocalDateTime.now());
                    documentChangesInvalidatedEvaluate.setUpdateBy(SecurityUtils.getUsername());
                    documentChangesInvalidatedEvaluateMapper.updateById(documentChangesInvalidatedEvaluate);
                }
            });
        }
    }
    @Override
    public CommonResult getDocumentChangesInvalidated(Long id) {
        DocumentChangesInvalidated documentChangesInvalidated = documentChangesInvalidatedMapper.selectById(id);
        if (documentChangesInvalidated != null){
            List<DocumentChangesInvalidatedIssue> documentChangesInvalidatedIssues = documentChangesInvalidatedIssueMapper.selectList(new LambdaQueryWrapper<>(DocumentChangesInvalidatedIssue.class)
                    .eq(DocumentChangesInvalidatedIssue::getDocumentChangesId, id)
                    .eq(DocumentChangesInvalidatedIssue::getDelFlag, UserConstant.ENABLE).orderByAsc(DocumentChangesInvalidatedIssue::getSort));
            documentChangesInvalidated.setDocumentChangesInvalidatedIssueList(documentChangesInvalidatedIssues);
            documentChangesInvalidated.setDocumentChangesInvalidatedEvaluateList(documentChangesInvalidatedEvaluateMapper.selectList(new LambdaQueryWrapper<>(DocumentChangesInvalidatedEvaluate.class).eq(DocumentChangesInvalidatedEvaluate::getDocumentChangesId, id)
                    .eq(DocumentChangesInvalidatedEvaluate::getDelFlag, UserConstant.ENABLE).orderByAsc(DocumentChangesInvalidatedEvaluate::getSort)));
        }
        return CommonResult.success(documentChangesInvalidated);
    }
    @Override
    @Transactional
    public CommonResult deletedDocumentChangesInvalidated(Long id) {
        int i = documentChangesInvalidatedMapper.update(new DocumentChangesInvalidated(),
                new LambdaUpdateWrapper<DocumentChangesInvalidated>().set(DocumentChangesInvalidated::getDelFlag, UserConstant.DEPT_DISABLE)
                        .set(DocumentChangesInvalidated::getUpdateTime, LocalDateTime.now()).set(DocumentChangesInvalidated::getUpdateBy, SecurityUtils.getUsername())
                        .eq(DocumentChangesInvalidated::getId, id)
        );
        if (i > 0){
            documentChangesInvalidatedIssueMapper.update(new DocumentChangesInvalidatedIssue(),
                    new LambdaUpdateWrapper<DocumentChangesInvalidatedIssue>().set(DocumentChangesInvalidatedIssue::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentChangesInvalidatedIssue::getUpdateTime, LocalDateTime.now()).set(DocumentChangesInvalidatedIssue::getUpdateBy, SecurityUtils.getUsername())
                            .eq(DocumentChangesInvalidatedIssue::getDocumentChangesId, id)
            );
            documentChangesInvalidatedEvaluateMapper.update(new DocumentChangesInvalidatedEvaluate(),
                    new LambdaUpdateWrapper<DocumentChangesInvalidatedEvaluate>().set(DocumentChangesInvalidatedEvaluate::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentChangesInvalidatedEvaluate::getUpdateTime, LocalDateTime.now()).set(DocumentChangesInvalidatedEvaluate::getUpdateBy, SecurityUtils.getUsername())
                            .eq(DocumentChangesInvalidatedEvaluate::getDocumentChangesId, id)
            );
        }
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentDestructionApplyServiceImpl.java
对比新文件
@@ -0,0 +1,64 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment;
import com.gkhy.exam.system.domain.DocumentDestructionApply;
import com.gkhy.exam.system.mapper.DocumentDestructionApplyMapper;
import com.gkhy.exam.system.service.DocumentDestructionApplyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 文件销毁申请主表     服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class DocumentDestructionApplyServiceImpl extends ServiceImpl<DocumentDestructionApplyMapper, DocumentDestructionApply> implements DocumentDestructionApplyService {
    @Autowired
    private DocumentDestructionApplyMapper destructionApplyMapper;
    @Override
    public CommonPage selectDocumentDestructionApplyList(DocumentDestructionApply documentDestructionApply) {
        PageUtils.startPage();
        List<DocumentDestructionApply> documentDestructionApply1 = destructionApplyMapper.getDocumentDestructionApply(documentDestructionApply);
        return CommonPage.restPage(documentDestructionApply1);
    }
    @Override
    public CommonResult saveDocumentDestructionApply(DocumentDestructionApply documentDestructionApply) {
        int i = 0;
        if (documentDestructionApply.getId() == null) {
            documentDestructionApply.setCreateBy(SecurityUtils.getUsername());
            documentDestructionApply.setCreateTime(LocalDateTime.now());
            i = destructionApplyMapper.insert(documentDestructionApply);
        } else {
            documentDestructionApply.setUpdateTime(LocalDateTime.now());
            documentDestructionApply.setUpdateBy(SecurityUtils.getUsername());
            i = destructionApplyMapper.updateById(documentDestructionApply);
        }
        return i > 0 ? CommonResult.success() : CommonResult.failed();
    }
    @Override
    public CommonResult deletedDocumentDestructionApply(Long id) {
        destructionApplyMapper.update(new DocumentDestructionApply(), new LambdaUpdateWrapper<DocumentDestructionApply>().eq(DocumentDestructionApply::getId, id)
                .set(DocumentDestructionApply::getDelFlag, UserConstant.DEPT_DISABLE).set(DocumentDestructionApply::getUpdateTime, LocalDateTime.now())
                .set(DocumentDestructionApply::getUpdateBy, SecurityUtils.getUsername()));
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/DocumentDistributionCollectionServiceImpl.java
对比新文件
@@ -0,0 +1,127 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.DocumentBorrowCopy;
import com.gkhy.exam.system.domain.DocumentBorrowCopyRecord;
import com.gkhy.exam.system.domain.DocumentDistributionCollection;
import com.gkhy.exam.system.domain.DocumentDistributionCollectionRecord;
import com.gkhy.exam.system.mapper.DocumentDistributionCollectionMapper;
import com.gkhy.exam.system.mapper.DocumentDistributionCollectionRecordMapper;
import com.gkhy.exam.system.service.DocumentDistributionCollectionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 文件发放回收主表 服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class DocumentDistributionCollectionServiceImpl extends ServiceImpl<DocumentDistributionCollectionMapper, DocumentDistributionCollection> implements DocumentDistributionCollectionService {
    @Autowired
    private DocumentDistributionCollectionMapper documentDistributionCollectionMapper;
    @Autowired
    private DocumentDistributionCollectionRecordMapper documentDistributionCollectionRecordMapper;
    @Override
    public CommonPage selectDocumentDistributionCollectionList(DocumentDistributionCollection documentDistributionCollection) {
        PageUtils.startPage();
        List<DocumentDistributionCollection> documentDistributionCollections = documentDistributionCollectionMapper.selectDocumentDistributionCollectionList(documentDistributionCollection);
        return CommonPage.restPage(documentDistributionCollections);
    }
    @Override
    @Transactional
    public CommonResult saveDocumentDistributionCollection(DocumentDistributionCollection documentDistributionCollection) {
        List<DocumentDistributionCollectionRecord> documentDistributionCollectionRecordList = documentDistributionCollection.getDocumentDistributionCollectionRecordList();
        if (ObjectUtils.isEmpty(documentDistributionCollectionRecordList)){
            return CommonResult.failed("保存参数不能为空");
        }
        int i = 0;
        if (documentDistributionCollection.getId() == null){
            documentDistributionCollection.setCreateBy(SecurityUtils.getUsername());
            documentDistributionCollection.setCreateTime(LocalDateTime.now());
            i = documentDistributionCollectionMapper.insert(documentDistributionCollection);
        }else {
            documentDistributionCollection.setUpdateBy(SecurityUtils.getUsername());
            documentDistributionCollection.setUpdateTime(LocalDateTime.now());
            i = documentDistributionCollectionMapper.updateById(documentDistributionCollection);
        }
        if (i > 0){
            batchSave(documentDistributionCollection.getId(), documentDistributionCollectionRecordList,documentDistributionCollection.getDeleteIds());
        }
        return i > 0 ? CommonResult.success() : CommonResult.failed();
    }
    private void batchSave(Long id, List<DocumentDistributionCollectionRecord> documentDistributionCollectionRecordList,List<Long> delIds) {
        if (ObjectUtils.isNotEmpty(delIds)) {
            int update = documentDistributionCollectionRecordMapper.update(new DocumentDistributionCollectionRecord(),
                    new LambdaUpdateWrapper<DocumentDistributionCollectionRecord>().set(DocumentDistributionCollectionRecord::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentDistributionCollectionRecord::getUpdateTime, LocalDateTime.now())
                            .set(DocumentDistributionCollectionRecord::getUpdateBy, SecurityUtils.getUsername()).in(DocumentDistributionCollectionRecord::getId, delIds)
            );
        }
        if (ObjectUtils.isNotEmpty(documentDistributionCollectionRecordList)) {
            documentDistributionCollectionRecordList.forEach(documentDistributionCollectionRecord -> {
                if (documentDistributionCollectionRecord.getId() == null){
                    documentDistributionCollectionRecord.setDocumentId(id);
                    documentDistributionCollectionRecord.setCreateTime(LocalDateTime.now());
                    documentDistributionCollectionRecord.setCreateBy(SecurityUtils.getUsername());
                    documentDistributionCollectionRecordMapper.insert(documentDistributionCollectionRecord);
                }else {
                    documentDistributionCollectionRecord.setUpdateTime(LocalDateTime.now());
                    documentDistributionCollectionRecord.setUpdateBy(SecurityUtils.getUsername());
                    documentDistributionCollectionRecordMapper.updateById(documentDistributionCollectionRecord);
                }
            });
        }
    }
    @Override
    public CommonResult getDocumentDistributionCollection(Long id) {
        DocumentDistributionCollection documentDistributionCollection = documentDistributionCollectionMapper.selectById(id);
        if (documentDistributionCollection != null){
            List<DocumentDistributionCollectionRecord> documentBorrowCopyRecordList = documentDistributionCollectionRecordMapper.selectList(
                    new LambdaQueryWrapper<>(DocumentDistributionCollectionRecord.class).eq(DocumentDistributionCollectionRecord::getDocumentId, id)
                            .eq(DocumentDistributionCollectionRecord::getDelFlag, UserConstant.ENABLE).orderByAsc(DocumentDistributionCollectionRecord::getSort)
            );
            documentDistributionCollection.setDocumentDistributionCollectionRecordList(documentBorrowCopyRecordList);
        }
        return CommonResult.success(documentDistributionCollection);
    }
    @Override
    @Transactional
    public CommonResult deletedDocumentDistributionCollection(Long id) {
        int i = documentDistributionCollectionMapper.update(new DocumentDistributionCollection(),
                new LambdaUpdateWrapper<DocumentDistributionCollection>().set(DocumentDistributionCollection::getDelFlag, UserConstant.DEPT_DISABLE)
                        .set(DocumentDistributionCollection::getUpdateTime, LocalDateTime.now())
                        .set(DocumentDistributionCollection::getUpdateBy, SecurityUtils.getUsername()).eq(DocumentDistributionCollection::getId, id)
        );
        if (i > 0){
            documentDistributionCollectionRecordMapper.update(new DocumentDistributionCollectionRecord(),
                    new LambdaUpdateWrapper<DocumentDistributionCollectionRecord>().set(DocumentDistributionCollectionRecord::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(DocumentDistributionCollectionRecord::getUpdateTime, LocalDateTime.now()).set(DocumentDistributionCollectionRecord::getUpdateBy, SecurityUtils.getUsername())
                            .eq(DocumentDistributionCollectionRecord::getDocumentId, id));
        }
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExternalKnowledgeServiceImpl.java
对比新文件
@@ -0,0 +1,66 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.ExternalKnowledge;
import com.gkhy.exam.system.mapper.ExternalKnowledgeMapper;
import com.gkhy.exam.system.service.ExternalKnowledgeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 外部知识 服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class ExternalKnowledgeServiceImpl extends ServiceImpl<ExternalKnowledgeMapper, ExternalKnowledge> implements ExternalKnowledgeService {
    @Autowired
    private ExternalKnowledgeMapper externalKnowledgeMapper;
    @Override
    public CommonPage selectExternalKnowledgeList(ExternalKnowledge externalKnowledge) {
        PageUtils.startPage();
        List<ExternalKnowledge> externalKnowledge1 = externalKnowledgeMapper.getExternalKnowledge(externalKnowledge);
        return CommonPage.restPage(externalKnowledge1);
    }
    @Override
    public CommonResult saveExternalKnowledge(ExternalKnowledge externalKnowledge) {
        int i = 0;
        if (externalKnowledge.getId() == null){
            externalKnowledge.setCreateBy(SecurityUtils.getUsername());
            externalKnowledge.setCreateTime(LocalDateTime.now());
            i = externalKnowledgeMapper.insert(externalKnowledge);
        }else {
            externalKnowledge.setUpdateBy(SecurityUtils.getUsername());
            externalKnowledge.setUpdateTime(LocalDateTime.now());
            i = externalKnowledgeMapper.updateById(externalKnowledge);
        }
        return CommonResult.success();
    }
    @Override
    public CommonResult deletedExternalKnowledge(Integer id) {
        externalKnowledgeMapper.update(new ExternalKnowledge(),
                new LambdaUpdateWrapper<ExternalKnowledge>().eq(ExternalKnowledge::getId, id)
                        .set(ExternalKnowledge::getDelFlag, UserConstant.DEPT_DISABLE)
                        .set(ExternalKnowledge::getUpdateTime, LocalDateTime.now())
                        .set(ExternalKnowledge::getUpdateBy, SecurityUtils.getUsername()));
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/InternalKnowledgeServiceImpl.java
对比新文件
@@ -0,0 +1,64 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.InternalKnowledge;
import com.gkhy.exam.system.mapper.InternalKnowledgeMapper;
import com.gkhy.exam.system.service.InternalKnowledgeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 内部知识 服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class InternalKnowledgeServiceImpl extends ServiceImpl<InternalKnowledgeMapper, InternalKnowledge> implements InternalKnowledgeService {
    @Autowired
    private InternalKnowledgeMapper internalKnowledgeMapper;
    @Override
    public CommonPage selectInternalKnowledgeList(InternalKnowledge internalKnowledge) {
        PageUtils.startPage();
        List<InternalKnowledge> internalKnowledge1 = internalKnowledgeMapper.getInternalKnowledge(internalKnowledge);
        return CommonPage.restPage(internalKnowledge1);
    }
    @Override
    public CommonResult saveInternalKnowledge(InternalKnowledge internalKnowledge) {
        int i = 0;
        if (internalKnowledge.getId() == null){
            internalKnowledge.setCreateBy(SecurityUtils.getUsername());
            internalKnowledge.setCreateTime(LocalDateTime.now());
            i = internalKnowledgeMapper.insert(internalKnowledge);
        }else {
            internalKnowledge.setUpdateBy(SecurityUtils.getUsername());
            internalKnowledge.setUpdateTime(LocalDateTime.now());
            i = internalKnowledgeMapper.updateById(internalKnowledge);
        }
        return CommonResult.success();
    }
    @Override
    public CommonResult deletedInternalKnowledge(Integer id) {
        internalKnowledgeMapper.update(new InternalKnowledge(),
                new LambdaUpdateWrapper<InternalKnowledge>().eq(InternalKnowledge::getId, id)
                        .set(InternalKnowledge::getDelFlag, UserConstant.DEPT_DISABLE)
                        .set(InternalKnowledge::getUpdateTime, LocalDateTime.now())
                        .set(InternalKnowledge::getUpdateBy, SecurityUtils.getUsername()));
        return CommonResult.success();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SixInspectionServiceImpl.java
对比新文件
@@ -0,0 +1,161 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.constant.UserConstant;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.AnnualVerificationPlan;
import com.gkhy.exam.system.domain.SixInspection;
import com.gkhy.exam.system.domain.SixInspectionContent;
import com.gkhy.exam.system.domain.SixInspectionProblem;
import com.gkhy.exam.system.mapper.SixInspectionContentMapper;
import com.gkhy.exam.system.mapper.SixInspectionMapper;
import com.gkhy.exam.system.mapper.SixInspectionProblemMapper;
import com.gkhy.exam.system.service.SixInspectionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * 6s检查主表 服务实现类
 * </p>
 *
 * @author hh
 * @since 2025-08-25 15:01:44
 */
@Service
public class SixInspectionServiceImpl extends ServiceImpl<SixInspectionMapper, SixInspection> implements SixInspectionService {
    @Autowired
    private SixInspectionMapper sixInspectionMapper;
    @Autowired
    private SixInspectionProblemMapper sixInspectionProblemMapper;
    @Autowired
    private SixInspectionContentMapper sixInspectionContentMapper;
    @Override
    public CommonPage selectSixInspectionList(SixInspection sixInspection) {
        PageUtils.startPage();
        List<SixInspection> sixInspections = sixInspectionMapper.selectSixInspectionList(sixInspection);
        return CommonPage.restPage(sixInspections);
    }
    @Override
    @Transactional
    public CommonResult saveSixInspection(SixInspection sixInspection) {
        List<SixInspectionContent> sixInspectionContentList = sixInspection.getSixInspectionContentList();
        if (ObjectUtils.isEmpty(sixInspectionContentList)) {
            return CommonResult.failed("保存参数不能为空");
        }
        int i = 0;
        if (sixInspection.getId() == null) {
            sixInspection.setCreateBy(SecurityUtils.getUsername());
            sixInspection.setCreateTime(LocalDateTime.now());
            i = sixInspectionMapper.insert(sixInspection);
        } else {
            sixInspection.setUpdateBy(SecurityUtils.getUsername());
            sixInspection.setUpdateTime(LocalDateTime.now());
            i = sixInspectionMapper.updateById(sixInspection);
        }
        if (i > 0) {
            batchSave(sixInspection.getId(), sixInspectionContentList, sixInspection.getDelProblemIds(), sixInspection.getDelContentIds(), sixInspection.getSixInspectionProblemList());
        }
        return i > 0 ? CommonResult.success() : CommonResult.failed();
    }
    private void batchSave(Long id, List<SixInspectionContent> sixInspectionContentList,
                           List<Long> delProblemIds, List<Long> delContentIds, List<SixInspectionProblem> sixInspectionProblemList) {
        if (ObjectUtils.isNotEmpty(delProblemIds)) {
            int update = sixInspectionProblemMapper.update(new SixInspectionProblem(),
                    new LambdaUpdateWrapper<SixInspectionProblem>().set(SixInspectionProblem::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(SixInspectionProblem::getUpdateTime, LocalDateTime.now()).set(SixInspectionProblem::getUpdateBy, SecurityUtils.getUsername())
                            .in(SixInspectionProblem::getId, delProblemIds)
            );
        }
        if (ObjectUtils.isNotEmpty(delContentIds)) {
            int update = sixInspectionContentMapper.update(new SixInspectionContent(),
                    new LambdaUpdateWrapper<SixInspectionContent>().set(SixInspectionContent::getDelFlag, UserConstant.DEPT_DISABLE)
                            .set(SixInspectionContent::getUpdateTime, LocalDateTime.now()).set(SixInspectionContent::getUpdateBy, SecurityUtils.getUsername())
                            .in(SixInspectionContent::getId, delContentIds)
            );
        }
        if (ObjectUtils.isNotEmpty(sixInspectionContentList)) {
            sixInspectionContentList.forEach(sixInspectionContent -> {
                if (sixInspectionContent.getId() == null) {
                    sixInspectionContent.setSixInspectionId(id);
                    sixInspectionContent.setCreateTime(LocalDateTime.now());
                    sixInspectionContent.setCreateBy(SecurityUtils.getUsername());
                    sixInspectionContentMapper.insert(sixInspectionContent);
                } else {
                    sixInspectionContent.setUpdateTime(LocalDateTime.now());
                    sixInspectionContent.setUpdateBy(SecurityUtils.getUsername());
                    sixInspectionContentMapper.updateById(sixInspectionContent);
                }
            });
        }
        if (ObjectUtils.isNotEmpty(sixInspectionProblemList)) {
            sixInspectionProblemList.forEach(sixInspectionProblem -> {
                if (sixInspectionProblem.getId() == null) {
                    sixInspectionProblem.setSixInspectionId(id);
                    sixInspectionProblem.setCreateTime(LocalDateTime.now());
                    sixInspectionProblem.setCreateBy(SecurityUtils.getUsername());
                    sixInspectionProblemMapper.insert(sixInspectionProblem);
                } else {
                    sixInspectionProblem.setUpdateTime(LocalDateTime.now());
                    sixInspectionProblem.setUpdateBy(SecurityUtils.getUsername());
                    sixInspectionProblemMapper.updateById(sixInspectionProblem);
                }
            });
        }
    }
    @Override
    public CommonResult getSixInspection(Long id) {
        SixInspection sixInspection = sixInspectionMapper.selectById(id);
        if (sixInspection != null) {
            List<SixInspectionContent> sixInspectionContentList = sixInspectionContentMapper.selectList(new LambdaQueryWrapper<>(SixInspectionContent.class).eq(SixInspectionContent::getSixInspectionId, id)
                    .eq(SixInspectionContent::getDelFlag, UserConstant.ENABLE).orderByAsc(SixInspectionContent::getSort));
            sixInspection.setSixInspectionContentList(sixInspectionContentList);
            List<SixInspectionProblem> sixInspectionProblemList = sixInspectionProblemMapper.selectList(
                    new LambdaQueryWrapper<>(SixInspectionProblem.class).eq(SixInspectionProblem::getSixInspectionId, id)
                            .eq(SixInspectionProblem::getDelFlag, UserConstant.ENABLE).orderByAsc(SixInspectionProblem::getSort)
            );
            sixInspection.setSixInspectionProblemList(sixInspectionProblemList);
        }
        return CommonResult.success(sixInspection);
    }
    @Override
    @Transactional
    public CommonResult deletedSixInspection(Long id) {
        int update = sixInspectionMapper.update(new SixInspection(),
                new LambdaUpdateWrapper<SixInspection>().eq(SixInspection::getId, id)
                        .set(SixInspection::getDelFlag, UserConstant.DEPT_DISABLE).set(SixInspection::getUpdateTime, LocalDateTime.now())
                        .set(SixInspection::getUpdateBy, SecurityUtils.getUsername()));
        if (update > 0) {
            sixInspectionContentMapper.update(new SixInspectionContent(),
                    new LambdaUpdateWrapper<SixInspectionContent>().eq(SixInspectionContent::getSixInspectionId, id)
                            .set(SixInspectionContent::getDelFlag, UserConstant.DEPT_DISABLE).set(SixInspectionContent::getUpdateTime, LocalDateTime.now())
                            .set(SixInspectionContent::getUpdateBy, SecurityUtils.getUsername())
            );
            sixInspectionProblemMapper.update(new SixInspectionProblem(),
                    new LambdaUpdateWrapper<SixInspectionProblem>().eq(SixInspectionProblem::getSixInspectionId, id)
                            .set(SixInspectionProblem::getDelFlag, UserConstant.DEPT_DISABLE).set(SixInspectionProblem::getUpdateTime, LocalDateTime.now())
                            .set(SixInspectionProblem::getUpdateBy, SecurityUtils.getUsername())
            );
        }
        return update > 0 ? CommonResult.success() : CommonResult.failed();
    }
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.common.annotation.DataScope;
import com.gkhy.exam.common.api.CommonPage;
@@ -29,6 +30,7 @@
import javax.validation.Validator;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -56,20 +58,21 @@
    @Override
    public CommonPage<SysUser> selectUserList(SysUser user) {
        SysUser currentUser=SecurityUtils.getLoginUser().getUser();
        List<SysUser> users=new ArrayList<>();
        if(!currentUser.getUserType().equals(UserTypeEnum.WORKSHOP_USER.getCode())){
            if(!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
        List<SysUser> users = new ArrayList<>();
        if (!currentUser.getUserType().equals(UserTypeEnum.WORKSHOP_USER.getCode())) {
            if (!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())) {
                user.setCompanyId(currentUser.getCompanyId());
                Map<String,Object> paramsMap=new HashMap<>();
                Map<String, Object> paramsMap = new HashMap<>();
//                paramsMap.put("userType",currentUser.getUserType());
                user.setParams(paramsMap);
            }
            PageUtils.startPage();
            users=baseMapper.userList(user);
            users = baseMapper.userList(user);
        }
        return CommonPage.restPage(users);
    }
    /**
     * 根据条件分页查询已分配用户角色列表
     *
@@ -77,9 +80,8 @@
     * @return 用户信息集合信息
     */
    @Override
    @DataScope( userAlias = "u")
    public List<SysUser> selectAllocatedList(SysUser user)
    {
    @DataScope(userAlias = "u")
    public List<SysUser> selectAllocatedList(SysUser user) {
        return baseMapper.selectAllocatedList(user);
    }
@@ -90,28 +92,27 @@
     * @return 用户信息集合信息
     */
    @Override
    @DataScope( userAlias = "u")
    public List<SysUser> selectUnallocatedList(SysUser user)
    {
    @DataScope(userAlias = "u")
    public List<SysUser> selectUnallocatedList(SysUser user) {
        return baseMapper.selectUnallocatedList(user);
    }
    @Override
    public SysUser selectUserByUsername(String username) {
        String key=redisUtils.generateKey(CacheConstant.SYS_ADMIN_USER_NAME+username);
        SysUser sysUser =null;
        if(redisUtils.hasKey(key)){
            sysUser= (SysUser) redisUtils.get(key);
        }else {
        String key = redisUtils.generateKey(CacheConstant.SYS_ADMIN_USER_NAME + username);
        SysUser sysUser = null;
        if (redisUtils.hasKey(key)) {
            sysUser = (SysUser) redisUtils.get(key);
        } else {
            sysUser = baseMapper.getUserByUsername(username);
            redisUtils.set(key,sysUser,10, TimeUnit.MINUTES);
            redisUtils.set(key, sysUser, 10, TimeUnit.MINUTES);
        }
        return sysUser;
    }
    public void delCacheByUsername(String username){
        String key=redisUtils.generateKey(CacheConstant.SYS_ADMIN_USER_NAME+username);
    public void delCacheByUsername(String username) {
        String key = redisUtils.generateKey(CacheConstant.SYS_ADMIN_USER_NAME + username);
        redisUtils.del(key);
    }
@@ -127,8 +128,8 @@
    @Override
    public int deleteUserById(Long userId) {
        SysUser user=checkUserDataScope(userId);
        if (user.getId().toString().equals("1")){
        SysUser user = checkUserDataScope(userId);
        if (user.getId().toString().equals("1")) {
            throw new ApiException("管理员用户不能被删除");
        }
        delCacheByUsername(user.getUsername());
@@ -150,26 +151,26 @@
        checkUserAllowed(user);
        user.setCreateBy(SecurityUtils.getUsername());
        user.setPassword(SecurityUtils.encryptPassword(Base64.decodeStr(user.getPassword())));
        int row=baseMapper.insert(user);
        int row = baseMapper.insert(user);
        batchSaveRole(user.getRoles(),user.getId(),false);
        batchSaveRole(user.getRoles(), user.getId(), false);
        exStudentService.insertStudent(exStudent);
        if(row<1){
        if (row < 1) {
            throw new ApiException("新增用户失败");
        }
        return row;
    }
    public void batchSaveRole(List<SysRole> roleIds, Long userId, boolean isUpdate){
    public void batchSaveRole(List<SysRole> roleIds, Long userId, boolean isUpdate) {
        if (isUpdate){
        if (isUpdate) {
            userRoleMapper.deleteUserRoleByUserId(userId);
        }
        List<SysUserRole> userRoleList = new ArrayList<>();
        if(roleIds != null && !roleIds.isEmpty()){
        if (roleIds != null && !roleIds.isEmpty()) {
            for (SysRole roleId : roleIds) {
                SysUserRole sysUserRole = new SysUserRole();
@@ -177,7 +178,7 @@
                sysUserRole.setRoleId(roleId.getRoleId());
                userRoleList.add(sysUserRole);
            }
        }else {
        } else {
            SysUserRole sysUserRole = new SysUserRole();
            sysUserRole.setUserId(userId);
            sysUserRole.setRoleId(2L);
@@ -192,47 +193,60 @@
        checkUserAllowed(user);
        user.setUpdateBy(SecurityUtils.getUsername());
        user.setPassword(null);
        int row=baseMapper.updateById(user);
        batchSaveRole(user.getRoles(),user.getId(),true);
        int row = baseMapper.updateById(user);
        batchSaveRole(user.getRoles(), user.getId(), true);
        if(row<1){
        if (row < 1) {
            throw new ApiException("更新用户信息失败");
        }
        delCacheByUsername(user.getUsername());
        return row;
    }
    public void checkRequestData(SysUser user){
        if(!user.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())&&user.getCompanyId()==null){
    public void checkRequestData(SysUser user) {
        if (!user.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode()) && user.getCompanyId() == null) {
            throw new ApiException("所属公司不能为空");
        }
        if(!checkUsernameUnique(user)){
        if (!checkUsernameUnique(user)) {
            throw new ApiException("登录账号已存在");
        }
        if(StringUtils.isNotBlank(user.getPhone())&&!checkPhoneUnique(user)){
        if (StringUtils.isNotBlank(user.getPhone()) && !checkPhoneUnique(user)) {
            throw new ApiException("手机号已存在");
        }
    }
    @Override
    public int updateUserStatus(SysUser user) {
        SysUser existUser=checkUserDataScope(user.getId());
        SysUser su=new SysUser().setId(user.getId()).setStatus(user.getStatus());
        SysUser existUser = checkUserDataScope(user.getId());
        SysUser su = new SysUser().setId(user.getId()).setStatus(user.getStatus());
        su.setUpdateBy(SecurityUtils.getUsername());
        int row= baseMapper.updateById(su);
        if(row<1){
        int row = baseMapper.updateById(su);
        if (row < 1) {
            throw new ApiException("更新用户状态失败");
        }
        delCacheByUsername(existUser.getUsername());
        return row;
    }
    @Override
    public int updateSpecialCertificate(SysUser user) {
        SysUser existUser = checkUserDataScope(user.getId());
        SysUser su = new SysUser().setId(user.getId()).setOperationCertificate(user.getOperationCertificate());
        su.setUpdateBy(SecurityUtils.getUsername());
        int row = baseMapper.updateById(su);
        if (row < 1) {
            throw new ApiException("更新用户状态失败");
        }
        return row;
    }
    @Override
    public boolean resetUserPwd(SysUser user) {
        SysUser existUser=checkUserDataScope(user.getId());
        SysUser su=new SysUser().setId(user.getId()).setPassword(SecurityUtils.encryptPassword(Base64.decodeStr(user.getPassword())));
        SysUser existUser = checkUserDataScope(user.getId());
        SysUser su = new SysUser().setId(user.getId()).setPassword(SecurityUtils.encryptPassword(Base64.decodeStr(user.getPassword())));
        su.setUpdateBy(SecurityUtils.getUsername());
        delCacheByUsername(existUser.getUsername());
        return updateById(su);
@@ -240,21 +254,128 @@
    @Override
    public boolean checkUsernameUnique(SysUser user) {
        Long userId = user.getId()==null? -1L : user.getId();
        Long userId = user.getId() == null ? -1L : user.getId();
        SysUser info = baseMapper.checkLoginNameUnique(user.getUsername());
        if (info!=null && info.getId().longValue() != userId.longValue())
        {
        if (info != null && info.getId().longValue() != userId.longValue()) {
            return UserConstant.NOT_UNIQUE;
        }
        return UserConstant.UNIQUE;
    }
    @Override
    public Map<String, Object> getUserData(Long companyId) {
        List<SysUser> sysUsers = baseMapper.selectList(new LambdaQueryWrapper<>(
                SysUser.class
        ).eq(SysUser::getCompanyId, companyId).eq(SysUser::getDelFlag, UserConstant.ENABLE));
        int totalUser = sysUsers.size();
        Map<String, Object> map = new HashMap<>();
        //总人数
        map.put("totalUser", totalUser);
        //专业
        map.put("post", sysUsers.stream()
                .map(SysUser::getPost)
                .filter(Objects::nonNull)
                .distinct()
                .collect(Collectors.joining(",")));
        //学历硕士以上
        // 统计学历为硕士(4)和博士及以上(5)的人数
        long count = sysUsers.stream()
                .filter(user -> user.getQualification() != null)
                .filter(user -> user.getQualification() >= 4)  // 4: 硕士, 5: 博士及以上
                .count();
        map.put("qualification", count);
        long qualification1 = sysUsers.stream()
                .filter(user -> user.getQualification() != null)
                .filter(user -> user.getQualification().equals("1"))
                .count();
        map.put("qualification1", qualification1);//学历1、高中及以下
        long qualification2 = sysUsers.stream()
                .filter(user -> user.getQualification() != null)
                .filter(user -> user.getQualification().equals("2"))
                .count();
        map.put("qualification2", qualification2);//学历2、专科
        long qualification3 = sysUsers.stream()
                .filter(user -> user.getQualification() != null)
                .filter(user -> user.getQualification().equals("3"))
                .count();
        map.put("qualification3", qualification3);//学历3本科
        long qualification4 = sysUsers.stream()
                .filter(user -> user.getQualification() != null)
                .filter(user -> user.getQualification().equals("4"))
                .count();
        map.put("qualification4", qualification4);//学历4硕士
        long qualification5 = sysUsers.stream()
                .filter(user -> user.getQualification() != null)
                .filter(user -> user.getQualification().equals("5"))
                .count();
        map.put("qualification5", qualification5);//学历5博士及以上
        //高级职称人数
        long positionalCount = sysUsers.stream()
                .filter(user -> user.getPositional() != null)
                .filter(user -> user.getPositional().equals("3"))  // 4: 硕士, 5: 博士及以上
                .count();
        map.put("positional3", positionalCount);
        long positionalCount2 = sysUsers.stream()
                .filter(user -> user.getPositional() != null)
                .filter(user -> user.getPositional().equals("2"))  // 4: 硕士, 5: 博士及以上
                .count();
        map.put("positional2", positionalCount2);//中级
        long positionalCount1 = sysUsers.stream()
                .filter(user -> user.getPositional() != null)
                .filter(user -> user.getPositional().equals("1"))  // 4: 硕士, 5: 博士及以上
                .count();
        map.put("positional1", positionalCount1);//初级
        map.put("positional12", positionalCount2 + positionalCount1);//中级+初级
        long countBk = sysUsers.stream()
                .filter(user -> user.getQualification() != null)
                .filter(user -> user.getQualification() >= 3)  // 本科以上
                .count();
        //本科人数
        map.put("qualificationBK", countBk);
        double bachelorRatio = totalUser > 0 ? (double) countBk / totalUser * 100 : 0;
        //本科占比
        map.put("qualificationBKRatio", String.format("%.2f%%", bachelorRatio));
        long countJS = sysUsers.stream()
                .filter(user -> user.getPersonType() != null)
                .filter(user -> user.getPersonType() == 1)  // 技术类
                .count();
        map.put("personTypeJS", countJS);
        double jsRatio = totalUser > 0 ? (double) countJS / totalUser * 100 : 0;
        map.put("jsRatio", String.format("%.2f%%", jsRatio));
        double averageAge = sysUsers.stream()
                .filter(user -> user.getAge() != null)  // 过滤年龄为null的用户
                .mapToInt(SysUser::getAge)              // 提取年龄值
                .average()                              // 计算平均值
                .orElse(0.0);
        map.put("avgAge", String.format("%.1f", averageAge));//平均年龄
        long countAge40 = sysUsers.stream()
                .filter(user -> user.getAge() != null)
                .filter(user -> user.getAge() >= 40)  // 40以上人数
                .count();
        map.put("age40", countAge40);
        double age40Ratio = totalUser > 0 ? (double) countAge40 / totalUser * 100 : 0;
        map.put("age40Ratio", String.format("%.2f%%", age40Ratio));
        long countAge30 = totalUser - countAge40;
        map.put("age1840", countAge30);//18-40
        double age30Ratio = totalUser > 0 ? (double) countAge30 / totalUser * 100 : 0;
        map.put("age1840Ratio", String.format("%.2f%%", age30Ratio));
        return Collections.emptyMap();
    }
    @Override
    public boolean checkPhoneUnique(SysUser user) {
        Long userId = user.getId()==null ? -1L : user.getId();
        Long userId = user.getId() == null ? -1L : user.getId();
        SysUser info = baseMapper.checkPhoneUnique(user.getPhone());
        if (info!=null && info.getId().longValue() != userId.longValue())
        {
        if (info != null && info.getId().longValue() != userId.longValue()) {
            return UserConstant.NOT_UNIQUE;
        }
        return UserConstant.UNIQUE;
@@ -263,9 +384,9 @@
    @Override
    public void checkUserAllowed(SysUser user) {
        SysUser currentUser=SecurityUtils.getLoginUser().getUser();
        Integer currentUserType=currentUser.getUserType();
        Integer userType=user.getUserType();
        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
        Integer currentUserType = currentUser.getUserType();
        Integer userType = user.getUserType();
        //校验权限,规则:上一级用户可以增加下一级用户类型的用户
//        if(currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())){
//            if( !userType.equals(UserTypeEnum.SYSTEM_USER.getCode())&&!userType.equals(UserTypeEnum.OTHER_USER.getCode()) &&!userType.equals(UserTypeEnum.COMPANY_USER.getCode())){
@@ -275,16 +396,16 @@
//                throw new ApiException("管理员用户不能被删除");
//            }
//        }else{
        if(!currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())){
            if(userType.equals(UserTypeEnum.OTHER_USER.getCode())){
        if (!currentUserType.equals(UserTypeEnum.SYSTEM_USER.getCode())) {
            if (userType.equals(UserTypeEnum.OTHER_USER.getCode())) {
                throw new ApiException("没有权限操作或者更新上级用户类型的用户");
            }
            if(currentUserType.equals(UserTypeEnum.OTHER_USER.getCode()) || currentUserType.equals(UserTypeEnum.COMPANY_ADMIN.getCode())){
                if(userType<=UserTypeEnum.COMPANY_USER.getCode() && !currentUserType.equals(UserTypeEnum.COMPANY_ADMIN.getCode())){
            if (currentUserType.equals(UserTypeEnum.OTHER_USER.getCode()) || currentUserType.equals(UserTypeEnum.COMPANY_ADMIN.getCode())) {
                if (userType <= UserTypeEnum.COMPANY_USER.getCode() && !currentUserType.equals(UserTypeEnum.COMPANY_ADMIN.getCode())) {
                    throw new ApiException("没有权限操作或者更新上级用户类型的用户");
                }
            }else{
                if(userType<currentUserType){
            } else {
                if (userType < currentUserType) {
                    throw new ApiException("没有权限操作或者更新上级用户类型的用户");
                }
            }
@@ -293,12 +414,11 @@
    @Override
    public SysUser checkUserDataScope(Long userId) {
        if(userId==null){
        if (userId == null) {
            throw new ApiException("用户id为空!");
        }
        SysUser user = getById(userId);
        if (ObjectUtil.isNull(user))
        {
        if (ObjectUtil.isNull(user)) {
            throw new ApiException("用户数据不存在!");
        }
        checkUserAllowed(user);
multi-system/src/main/resources/mapper/system/AnnualVerificationDeviceMapper.xml
对比新文件
@@ -0,0 +1,5 @@
<?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.system.mapper.AnnualVerificationDeviceMapper">
</mapper>
multi-system/src/main/resources/mapper/system/AnnualVerificationPlanMapper.xml
对比新文件
@@ -0,0 +1,16 @@
<?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.system.mapper.AnnualVerificationPlanMapper">
    <select id="selectAnnualVerificationPlanList" parameterType="com.gkhy.exam.system.domain.AnnualVerificationPlan" resultType="com.gkhy.exam.system.domain.AnnualVerificationPlan">
        select * from annual_verification_plan where del_flag = 0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        <if test="year!=null and year != ''">
            and year = #{year}
        </if>
        ORDER BY create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/CalibrationMonitoringEquipmentMapper.xml
对比新文件
@@ -0,0 +1,14 @@
<?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.system.mapper.CalibrationMonitoringEquipmentMapper">
    <select id="selectCalibrationMonitoringEquipmentList" resultType="com.gkhy.exam.system.domain.CalibrationMonitoringEquipment"
            parameterType="com.gkhy.exam.system.domain.CalibrationMonitoringEquipment">
        select * from calibration_monitoring_equipment where del_flag=0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        order by create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/DocumentBorrowCopyMapper.xml
对比新文件
@@ -0,0 +1,14 @@
<?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.system.mapper.DocumentBorrowCopyMapper">
    <select id="selectDocumentBorrowCopyList" parameterType="com.gkhy.exam.system.domain.DocumentBorrowCopy" resultType="com.gkhy.exam.system.domain.DocumentBorrowCopy">
        select * from document_borrow_copy
        where del_flag = 0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        order by create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/DocumentBorrowCopyRecordMapper.xml
对比新文件
@@ -0,0 +1,5 @@
<?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.system.mapper.DocumentBorrowCopyRecordMapper">
</mapper>
multi-system/src/main/resources/mapper/system/DocumentChangesInvalidatedEvaluateMapper.xml
对比新文件
@@ -0,0 +1,5 @@
<?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.system.mapper.DocumentChangesInvalidatedEvaluateMapper">
</mapper>
multi-system/src/main/resources/mapper/system/DocumentChangesInvalidatedIssueMapper.xml
对比新文件
@@ -0,0 +1,5 @@
<?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.system.mapper.DocumentChangesInvalidatedIssueMapper">
</mapper>
multi-system/src/main/resources/mapper/system/DocumentChangesInvalidatedMapper.xml
对比新文件
@@ -0,0 +1,14 @@
<?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.system.mapper.DocumentChangesInvalidatedMapper">
    <select id="getDocumentChangesInvalidated" parameterType="com.gkhy.exam.system.domain.DocumentChangesInvalidated" resultType="com.gkhy.exam.system.domain.DocumentChangesInvalidated">
        select * from document_changes_invalidated where del_flag=0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        order by create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/DocumentDestructionApplyMapper.xml
对比新文件
@@ -0,0 +1,14 @@
<?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.system.mapper.DocumentDestructionApplyMapper">
    <select id="getDocumentDestructionApply" resultType="com.gkhy.exam.system.domain.DocumentDestructionApply" parameterType="com.gkhy.exam.system.domain.DocumentDestructionApply">
        SELECT * FROM document_destruction_apply WHERE del_flag = 0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        ORDER BY create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/DocumentDistributionCollectionMapper.xml
对比新文件
@@ -0,0 +1,14 @@
<?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.system.mapper.DocumentDistributionCollectionMapper">
    <select id="selectDocumentDistributionCollectionList" resultType="com.gkhy.exam.system.domain.DocumentDistributionCollection" parameterType="com.gkhy.exam.system.domain.DocumentDistributionCollection">
        select * from document_distribution_collection
        where del_flag = 0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        order by create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/DocumentDistributionCollectionRecordMapper.xml
对比新文件
@@ -0,0 +1,5 @@
<?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.system.mapper.DocumentDistributionCollectionRecordMapper">
</mapper>
multi-system/src/main/resources/mapper/system/ExternalKnowledgeMapper.xml
对比新文件
@@ -0,0 +1,12 @@
<?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.system.mapper.ExternalKnowledgeMapper">
    <select id="getExternalKnowledge" parameterType="com.gkhy.exam.system.domain.ExternalKnowledge" resultType="com.gkhy.exam.system.domain.ExternalKnowledge">
        select * from external_knowledge where del_flag=0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        ORDER BY create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/InternalKnowledgeMapper.xml
对比新文件
@@ -0,0 +1,11 @@
<?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.system.mapper.InternalKnowledgeMapper">
    <select id="getInternalKnowledge" parameterType="com.gkhy.exam.system.domain.InternalKnowledge" resultType="com.gkhy.exam.system.domain.InternalKnowledge">
        select * from internal_knowledge where del_flag=0
        <if test="companyId!=null ">
            and company_id = #{companyId}
        </if>
        ORDER BY create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/SixInspectionContentMapper.xml
对比新文件
@@ -0,0 +1,5 @@
<?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.system.mapper.SixInspectionContentMapper">
</mapper>
multi-system/src/main/resources/mapper/system/SixInspectionMapper.xml
对比新文件
@@ -0,0 +1,16 @@
<?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.system.mapper.SixInspectionMapper">
    <select id="selectSixInspectionList" parameterType="com.gkhy.exam.system.domain.SixInspection" resultType="com.gkhy.exam.system.domain.SixInspection">
        select * from six_inspection where del_flag=0
        <if test="year != null">
            and year=#{year}
        </if>
        <if test="companyId != null">
            and company_id=#{companyId}
        </if>
        order by create_time desc
    </select>
</mapper>
multi-system/src/main/resources/mapper/system/SixInspectionProblemMapper.xml
对比新文件
@@ -0,0 +1,5 @@
<?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.system.mapper.SixInspectionProblemMapper">
</mapper>
multi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -36,6 +36,8 @@
        <result property="personType"        column="person_type"          />
        <result property="age"        column="age"          />
        <result property="positional"        column="positional"          />
        <result property="qualification"        column="qualification"          />
        <result property="operationCertificate"        column="operation_certificate"          />
    </resultMap>
@@ -65,7 +67,7 @@
    <select id="userList"  resultMap="SysUserVoResult">
        select u.id,u.username,u.name,u.user_type,u.phone,u.parent_id,u.company_id,u.sex,u.status,u.del_flag,u.version,
               u.login_ip,u.login_date,u.create_by,u.create_time,u.remark,c.name as company_name,su.name as parent_name,
                u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time,u.resign_time,u.person_type,u.age,u.positional
                u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time,u.resign_time,u.person_type,u.age,u.positional,u.qualification,u.operation_certificate
        from sys_user u
        left join sys_company c on c.id=u.company_id
        left join sys_user su on su.id=u.parent_id and u.parent_id!=0
@@ -82,6 +84,12 @@
            <if test="status != null and status != ''">
                AND u.status = #{status}
            </if>
            <if test="personType != null">
                AND u.person_type = #{personType}
            </if>
            <if test="qualification != null">
                AND u.qualification = #{qualification}
            </if>
            <if test="userType != null">
                AND u.user_type = #{userType}
            </if>
@@ -93,6 +101,9 @@
            </if>
            <if test="phone != null and phone != ''">
                AND u.phone like concat('%', #{phone}, '%')
            </if>
            <if test="post != null and post != ''">
                AND u.post like concat('%', #{post}, '%')
            </if>
            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
@@ -109,6 +120,7 @@
            <if test="params.userType != null and params.userType==0">
                AND u.user_type in (1,2,3,4)
            </if>
        </where>
        order by u.id desc
    </select>
@@ -122,7 +134,8 @@
    <select id="getUserById" resultMap="SysUserResult">
        select u.id,u.username,u.user_type,u.name,u.phone,u.parent_id,u.company_id,u.status,u.sex,u.del_flag,u.version,c.name as company_name,
               c.remain_period,su.name as parent_name,u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time,u.resign_time,u.person_type,u.age,u.positional
               c.remain_period,su.name as parent_name,u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time,u.resign_time,
               u.person_type,u.age,u.positional,u.qualification,u.operation_certificate
        from sys_user u
       left join sys_company c on c.id=u.company_id
       left join sys_user su on su.id=u.parent_id and u.parent_id!=0
@@ -174,4 +187,7 @@
        </if>
    </select>
</mapper>