From 22308ccdd532d105598663f90a39285697f723e8 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期三, 06 八月 2025 13:25:25 +0800
Subject: [PATCH] 新增功能

---
 multi-system/src/main/java/com/gkhy/exam/system/service/FactorDiscernService.java                 |   18 
 multi-system/src/main/resources/mapper/system/FactorDiscernlMapper.xml                            |   72 +
 multi-system/src/main/resources/mapper/system/PositionJobMapper.xml                               |   33 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/PositionJobMapper.java                     |   13 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskMonitorMapper.java                     |   14 
 multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectDiscren.java                         |   94 +
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskMonitorServiceImpl.java          |   93 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectEvaluate.java                        |   95 +
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java       |   94 +
 multi-system/src/main/resources/mapper/system/RiskMonitorMapper.xml                               |   63 +
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysUserController.java            |   42 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/PositionJobServiceImpl.java          |   63 +
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskManageServiceImpl.java           |  123 ++
 multi-system/src/main/java/com/gkhy/exam/system/domain/FactorContent.java                         |   65 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContentMess.java                     |   39 
 multi-system/src/main/java/com/gkhy/exam/system/domain/FactorDiscern.java                         |   89 +
 multi-system/src/main/resources/mapper/system/RiskContentMapper.xml                               |   96 +
 multi-system/src/main/resources/mapper/system/RiskManageMapper.xml                                |   63 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContentMess.java                       |   72 +
 multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java                |   16 
 multi-system/src/main/java/com/gkhy/exam/system/domain/RiskMonitor.java                           |   97 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorContentMapper.java                   |   17 
 multi-system/src/main/java/com/gkhy/exam/system/domain/FactorControl.java                         |   96 +
 multi-system/src/main/java/com/gkhy/exam/system/service/RiskMonitorService.java                   |   16 
 multi-system/src/main/resources/mapper/system/FactorControlMapper.xml                             |   68 +
 multi-system/src/main/resources/mapper/system/ExpectContentMapper.xml                             |   55 +
 multi-system/src/main/resources/mapper/system/ExpectEvaluateMapper.xml                            |   65 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskContentMapper.java                     |   22 
 multi-system/src/main/java/com/gkhy/exam/system/service/RiskManageService.java                    |   18 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorDiscernMapper.java                   |   14 
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java |  346 +++++++
 multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java                 |   19 
 multi-system/src/main/java/com/gkhy/exam/system/domain/RiskManage.java                            |   89 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectContentMapper.java                   |   27 
 multi-system/src/main/java/com/gkhy/exam/system/service/PositionJobService.java                   |   16 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorControlServiceImpl.java        |   88 +
 multi-system/src/main/resources/mapper/system/FactorContentMapper.xml                             |   46 
 multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContent.java                           |   38 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorDiscernServiceImpl.java        |  101 ++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorControlMapper.java                   |   15 
 multi-system/src/main/java/com/gkhy/exam/system/service/FactorControlService.java                 |   16 
 multi-system/src/main/java/com/gkhy/exam/system/domain/PositionJob.java                           |   76 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskManageMapper.java                      |   14 
 multi-system/src/main/resources/mapper/system/ExpectDiscrenMapper.xml                             |   75 +
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java        |  128 ++
 multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContent.java                         |   56 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectDiscrenMapper.java                   |   14 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectEvaluateMapper.java                  |   15 
 48 files changed, 2,904 insertions(+), 0 deletions(-)

diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysUserController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysUserController.java
index 1da8aa6..207d34d 100644
--- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysUserController.java
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysUserController.java
@@ -5,6 +5,9 @@
 import com.gkhy.exam.common.api.CommonResult;
 import com.gkhy.exam.common.domain.entity.SysUser;
 import com.gkhy.exam.common.enums.BusinessType;
+import com.gkhy.exam.system.domain.Meetings;
+import com.gkhy.exam.system.domain.PositionJob;
+import com.gkhy.exam.system.service.PositionJobService;
 import com.gkhy.exam.system.service.SysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -21,6 +24,9 @@
 public class SysUserController {
     @Autowired
     private SysUserService sysUserService;
+
+    @Autowired
+    private PositionJobService positionJobService;
 
   //  @PreAuthorize("hasAuthority('train:exam:company')")
  //   @PreAuthorize("hasAnyAuthority('train:exam:system','train:exam:company')")
@@ -89,4 +95,40 @@
         sysUserService.updateUserStatus(user);
         return CommonResult.success();
     }
+
+  @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("/position/jobList")
+  public CommonResult selectPositionJobList(Integer companyId){
+    return CommonResult.success(positionJobService.selectPositionJobList(companyId));
+  }
+  @ApiOperation(value = "新增岗位任职")
+  @PostMapping("/position/savejob")
+  public CommonResult insertMeetings(@RequestBody PositionJob positionJob){
+    return positionJobService.insertPositionJob(positionJob);
+  }
+  @ApiOperation(value = "修改岗位任职")
+  @PostMapping("/position/updatejob")
+  public CommonResult updateMeetings(@RequestBody PositionJob positionJob){
+    return positionJobService.updatePositionJob(positionJob);
+  }
+  @ApiOperation(value = "删除岗位任职")
+  @ApiImplicitParams({
+          @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "id"),
+  })
+  @GetMapping("/position/deletedjob")
+  public CommonResult deletedMeetings(@RequestParam Integer id){
+    return positionJobService.deletedPositionJob(id);
+  }
+
+
+
+
+
+
+
 }
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java
new file mode 100644
index 0000000..6e3f562
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/EnvironmentDemandRiskController.java
@@ -0,0 +1,346 @@
+package com.gkhy.exam.admin.controller.web;
+
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.*;
+import com.gkhy.exam.system.service.*;
+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.*;
+
+@Api(tags = "环境需求风险管理")
+@RestController
+@RequestMapping("/composite")
+public class EnvironmentDemandRiskController {
+
+    @Autowired
+    private FactorDiscernService factorDiscernService;
+    @Autowired
+    private FactorControlService factorControlService;
+
+    @Autowired
+    private ExpectDiscrenService expectDiscrenService;
+    @Autowired
+    private ExpectEvaluateService evaluateService;
+
+    @Autowired
+    private RiskManageService riskManageService;
+    @Autowired
+    private RiskMonitorService riskMonitorService;
+
+
+    /**
+     * 内外部环境要素识别
+     * @param factorDiscern
+     * @return
+     */
+    @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"),
+    })
+    @GetMapping("/factor/discern/list")
+    public CommonResult selectFactorDiscernList(FactorDiscern factorDiscern){
+        return CommonResult.success(factorDiscernService.selectFactorDiscernList(factorDiscern));
+    }
+
+    @ApiOperation(value = "内外部环境要素识别")
+    @GetMapping("/factor/discern/listAll")
+    public CommonResult selectFactorDiscernListAll(FactorDiscern factorDiscern){
+        return factorDiscernService.selectFactorDiscernListAll(factorDiscern);
+    }
+
+    /**
+     * 内外部环境要素识别新增
+     * @param factorDiscern
+     * @return
+     */
+    @ApiOperation(value = "内外部环境要素识别新增")
+    @PostMapping("/factor/discern/insert")
+    public CommonResult insertFactorDiscern(@RequestBody FactorDiscern factorDiscern){
+        return factorDiscernService.insertFactorDiscern(factorDiscern);
+    }
+
+    /**
+     * 内外部环境要素识别修改
+     * @param factorDiscern
+     * @return
+     */
+    @ApiOperation(value = "内外部环境要素识别修改")
+    @PostMapping("/factor/discern/update")
+    public CommonResult updateFactorDiscern(@RequestBody FactorDiscern factorDiscern){
+        return factorDiscernService.updateFactorDiscern(factorDiscern);
+    }
+
+    /**
+     * 内外部环境要素识别删除
+     * @param factorDiscrenId
+     * @return
+     */
+    @ApiOperation(value = "内外部环境要素识别删除")
+    @GetMapping("/factor/discern/deleted")
+    public CommonResult deletedFactorDiscern(@RequestParam("factorDiscrenId") Integer factorDiscrenId){
+        return factorDiscernService.deletedFactorDiscern(factorDiscrenId);
+    }
+
+
+    /**
+     * 内外部环境要素控制
+     * @param factorControl
+     * @return
+     */
+    @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"),
+    })
+    @GetMapping("/factor/control/list")
+    public CommonResult selectFactorControlList(FactorControl factorControl){
+        return CommonResult.success(factorControlService.selectFactorControlList(factorControl));
+    }
+
+    /**
+     * 内外部环境要素识别新增
+     * @param factorControl
+     * @return
+     */
+    @ApiOperation(value = "内外部环境要素控制新增")
+    @PostMapping("/factor/control/insert")
+    public CommonResult insertFactorControl(@RequestBody FactorControl factorControl){
+        return factorControlService.insertFactorControl(factorControl);
+    }
+
+    /**
+     * 内外部环境要素识别修改
+     * @param factorControl
+     * @return
+     */
+    @ApiOperation(value = "内外部环境要素控制修改")
+    @PostMapping("/factor/control/update")
+    public CommonResult updateFactorControl(@RequestBody FactorControl factorControl){
+        return factorControlService.updateFactorControl(factorControl);
+    }
+
+    /**
+     * 内外部环境要素识别删除
+     * @param factorControlId
+     * @return
+     */
+    @ApiOperation(value = "内外部环境要素控制删除")
+    @GetMapping("/factor/control/deleted")
+    public CommonResult deletedFactorControl(@RequestParam("factorControlId") Integer factorControlId){
+        return factorControlService.deletedFactorControl(factorControlId);
+    }
+
+    /**
+     * 相关方需求识别
+     * @param expectDiscren
+     * @return
+     */
+    @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"),
+    })
+    @GetMapping("/expect/discren/list")
+    public CommonResult selectExpectDiscrenList(ExpectDiscren expectDiscren){
+        return CommonResult.success(expectDiscrenService.selectExpectDiscrenList(expectDiscren));
+    }
+    @ApiOperation(value = "相关方需求识别")
+    @GetMapping("/expect/discren/listAll")
+    public CommonResult selectExpectDiscrenListAll(ExpectDiscren expectDiscren){
+        return expectDiscrenService.selectExpectDiscrenListAll(expectDiscren);
+    }
+
+
+    /**
+     * 相关方需求识别新增
+     * @param expectDiscren
+     * @return
+     */
+    @ApiOperation(value = "相关方需求识别新增")
+    @PostMapping("/expect/discren/insert")
+    public CommonResult insertFactorControl(@RequestBody ExpectDiscren expectDiscren){
+        return expectDiscrenService.insertExpectDiscren(expectDiscren);
+    }
+
+    /**
+     * 相关方需求识别修改
+     * @param expectDiscren
+     * @return
+     */
+    @ApiOperation(value = "相关方需求识别修改")
+    @PostMapping("/expect/discren/update")
+    public CommonResult updateExpectDiscren(@RequestBody ExpectDiscren expectDiscren){
+        return expectDiscrenService.updateExpectDiscren(expectDiscren);
+    }
+
+    /**
+     * 相关方需求识别删除
+     * @param expectDiscrenId
+     * @return
+     */
+    @ApiOperation(value = "相关方需求识别删除")
+    @GetMapping("/expect/discren/deleted")
+    public CommonResult deletedExpectDiscren(@RequestParam("expectDiscrenId") Integer expectDiscrenId){
+        return expectDiscrenService.deletedExpectDiscren(expectDiscrenId);
+    }
+
+    /**
+     * 相关方需求评价
+     * @param expectEvaluate
+     * @return
+     */
+    @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"),
+    })
+    @GetMapping("/expect/evaluate/list")
+    public CommonResult selectExpectEvaluateList(ExpectEvaluate expectEvaluate){
+        return CommonResult.success(evaluateService.selectExpectEvaluateList(expectEvaluate));
+    }
+
+    /**
+     * 相关方需求识别新增
+     * @param expectEvaluate
+     * @return
+     */
+    @ApiOperation(value = "相关方需求评价新增")
+    @PostMapping("/expect/evaluate/insert")
+    public CommonResult insertExpectEvaluate(@RequestBody ExpectEvaluate expectEvaluate){
+        return evaluateService.insertExpectEvaluate(expectEvaluate);
+    }
+
+    /**
+     * 相关方需求识别修改
+     * @param expectEvaluate
+     * @return
+     */
+    @ApiOperation(value = "相关方需求评价修改")
+    @PostMapping("/expect/evaluate/update")
+    public CommonResult updateExpectEvaluate(@RequestBody ExpectEvaluate expectEvaluate){
+        return evaluateService.updateExpectEvaluate(expectEvaluate);
+    }
+
+    /**
+     * 相关方需求识别删除
+     * @param expectEvaluateId
+     * @return
+     */
+    @ApiOperation(value = "相关方需求评价删除")
+    @GetMapping("/expect/evaluate/deleted")
+    public CommonResult deletedExpectEvaluate(@RequestParam("expectEvaluateId") Integer expectEvaluateId){
+        return evaluateService.deletedExpectEvaluate(expectEvaluateId);
+    }
+
+
+
+    /**
+     * 风险管理控制
+     * @param riskManage
+     * @return
+     */
+    @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"),
+    })
+    @GetMapping("/risk/manage/list")
+    public CommonResult selectRiskManageList(RiskManage riskManage){
+        return CommonResult.success(riskManageService.selectRiskManageList(riskManage));
+    }
+    @ApiOperation(value = "风险管理控制")
+    @GetMapping("/risk/manage/listAll")
+    public CommonResult selectRiskManageListAll(RiskManage riskManage){
+        return riskManageService.selectRiskManageListAll(riskManage);
+    }
+
+
+    /**
+     * 风险管理控制新增
+     * @param riskManage
+     * @return
+     */
+    @ApiOperation(value = "风险管理控制新增")
+    @PostMapping("/risk/manage/insert")
+    public CommonResult insertRiskManage(@RequestBody RiskManage riskManage){
+        return riskManageService.insertRiskManage(riskManage);
+    }
+
+    /**
+     * 风险管理控制修改
+     * @param riskManage
+     * @return
+     */
+    @ApiOperation(value = "风险管理控制修改")
+    @PostMapping("/risk/manage/update")
+    public CommonResult updateRiskManage(@RequestBody RiskManage riskManage){
+        return riskManageService.updateRiskManage(riskManage);
+    }
+
+    /**
+     * 风险管理控制删除
+     * @param riskManageId
+     * @return
+     */
+    @ApiOperation(value = "风险管理控制删除")
+    @GetMapping("/risk/manage/deleted")
+    public CommonResult deletedRiskManage(@RequestParam("riskManageId") Integer riskManageId){
+        return riskManageService.deletedRiskManage(riskManageId);
+    }
+
+
+    /**
+     * 风险管理监视
+     * @param riskMonitor
+     * @return
+     */
+    @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"),
+    })
+    @GetMapping("/risk/monitor/list")
+    public CommonResult selectRiskMonitorList(RiskMonitor riskMonitor){
+        return CommonResult.success(riskMonitorService.selectRiskMonitorList(riskMonitor));
+    }
+
+
+    /**
+     * 风险管理监视新增
+     * @param riskMonitor
+     * @return
+     */
+    @ApiOperation(value = "风险管理监视新增")
+    @PostMapping("/risk/monitor/insert")
+    public CommonResult insertRiskMonitor(@RequestBody RiskMonitor riskMonitor){
+        return riskMonitorService.insertRiskMonitor(riskMonitor);
+    }
+
+    /**
+     * 风险管理监视修改
+     * @param riskMonitor
+     * @return
+     */
+    @ApiOperation(value = "风险管理监视修改")
+    @PostMapping("/risk/monitor/update")
+    public CommonResult updateRiskMonitor(@RequestBody RiskMonitor riskMonitor){
+        return riskMonitorService.updateRiskMonitor(riskMonitor);
+    }
+
+    /**
+     * 风险管理监视删除
+     * @param riskMonitorId
+     * @return
+     */
+    @ApiOperation(value = "风险管理监视删除")
+    @GetMapping("/risk/monitor/deleted")
+    public CommonResult deletedRiskMonitor(@RequestParam("riskMonitorId") Integer riskMonitorId){
+        return riskMonitorService.deletedRiskMonitor(riskMonitorId);
+    }
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContent.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContent.java
new file mode 100644
index 0000000..8a8ac21
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContent.java
@@ -0,0 +1,56 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("expect_content")
+@ApiModel(value = "expectContent",description = "相关方期望识别内容")
+public class ExpectContent implements Serializable {
+
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("expect_discren_id")
+    private Integer expectDiscrenId;
+
+    @ApiModelProperty(value = "相关方")
+    @TableField("stakeholder")
+    private String stakeholder;
+
+    @TableField(exist = false)
+   private List<ExpectContentMess> expectContentMesses;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContentMess.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContentMess.java
new file mode 100644
index 0000000..02c119f
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectContentMess.java
@@ -0,0 +1,39 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+
+@Setter
+@Getter
+@TableName("factor_content_")
+@ApiModel(value = "factorContent",description = "内外环境因素详细内容")
+public class ExpectContentMess implements Serializable {
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "因素内容id")
+    @TableField("expect_content_id")
+    private Integer expectContentId;
+
+    @ApiModelProperty(value = "期望或要求")
+    @TableField("expectation")
+    private String expectation;
+
+    @ApiModelProperty(value = "应对措施")
+    @TableField("solutions")
+    private String solutions;
+
+    @ApiModelProperty(value = "评价结果")
+    @TableField("review")
+    private String review;
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectDiscren.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectDiscren.java
new file mode 100644
index 0000000..c7f7312
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectDiscren.java
@@ -0,0 +1,94 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("expect_discren")
+@ApiModel(value = "expectDiscren",description = "相关方期望识别")
+public class ExpectDiscren implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "部门id")
+    @TableField("dept_id")
+    private Long deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+
+    @ApiModelProperty(value = "年份")
+    @TableField("year")
+    private String year;
+
+    @ApiModelProperty(value = "审核频次")
+    @TableField("frequency")
+    private String frequency;
+
+    @ApiModelProperty(value = "编制人id")
+    @TableField("fiction_id")
+    private Integer fictionId;
+
+    @TableField(exist = false)
+    private String fictionName;
+
+    @ApiModelProperty(value = "审核人id")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "批准人id")
+    @TableField("ratify_id")
+    private Integer ratifyId;
+
+    @TableField(exist = false)
+    private String ratifyName;
+
+    @ApiModelProperty(value = "日期")
+    @TableField("fiction_time")
+    private LocalDateTime fictionTime;
+
+    @ApiModelProperty(value = "是否删除")
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @TableField(exist = false)
+    private List<ExpectContent> expectContents;
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectEvaluate.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectEvaluate.java
new file mode 100644
index 0000000..b8a372d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ExpectEvaluate.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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("expect_evaluate")
+@ApiModel(value = "expectEvaluate",description = "相关方期望评价表")
+public class ExpectEvaluate implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("expect_discren_id")
+    private Integer expectDiscrenId;
+
+    @ApiModelProperty(value = "企业id")
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @TableField(exist = false)
+    private Integer deptId;
+    @TableField(exist = false)
+    private String deptName;
+
+
+    @TableField(exist = false)
+    private String year;
+    @TableField(exist = false)
+    private String frequency;
+
+
+    @ApiModelProperty(value = "评价人")
+    @TableField("evaluate_id")
+    private Integer evaluateId;
+    @TableField(exist = false)
+    private String evaluateName;
+
+    @ApiModelProperty(value = "确认人")
+    @TableField("confirm_id")
+    private String confirmId;
+
+    @TableField(exist = false)
+    private String confirmName;
+
+    @ApiModelProperty(value = "日期")
+    @TableField("evaluate_time")
+    private LocalDateTime evaluateTime;
+
+    @ApiModelProperty(value = "是否删除")
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @TableField(exist = false)
+    private List<ExpectContent> expectContents;
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorContent.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorContent.java
new file mode 100644
index 0000000..8137333
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorContent.java
@@ -0,0 +1,65 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Setter
+@Getter
+@TableName("factor_content")
+@ApiModel(value = "factorContent",description = "内外环境因素内容")
+public class FactorContent implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "要素识别id")
+    @TableField("factor_discern_id")
+    private Integer factorDiscernId;
+
+    @ApiModelProperty(value = "环境因素")
+    @TableField("factor_name")
+    private String factorName;
+
+    @ApiModelProperty(value = "主要内容太")
+    @TableField("factor_mess")
+    private String factorMess;
+
+    @ApiModelProperty(value = "影响")
+    @TableField("influence")
+    private String influence;
+
+    @ApiModelProperty(value = "监视方法")
+    @TableField("monitor_method")
+    private String monitorMethod;
+
+    @ApiModelProperty(value = "评审结论")
+    @TableField("review")
+    private String review;
+
+    @ApiModelProperty(value = "应对措施")
+    @TableField("solutions")
+    private String solutions;
+
+    @ApiModelProperty(value = "结果")
+    @TableField("result")
+    private String result;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+    @ApiModelProperty(value = "类型 1外部   2内部")
+    @TableField("type")
+    private Integer type;
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorControl.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorControl.java
new file mode 100644
index 0000000..f0adfa9
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorControl.java
@@ -0,0 +1,96 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("factor_control")
+@ApiModel(value = "factorControl",description = "内外环境因素控制")
+public class FactorControl implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @TableField(exist = false)
+    private Long deptId;
+    @TableField(exist = false)
+    private String deptName;
+
+    @ApiModelProperty(value = "要素识别id")
+    @TableField("factor_discern_id")
+    private Integer factorDiscernId;
+
+    @TableField(exist = false)
+    private String year;
+
+    @ApiModelProperty(value = "编号")
+    @TableField("number")
+    private String number;
+
+    @ApiModelProperty(value = "审核频次")
+    @TableField("frequency")
+    private String frequency;
+
+    @ApiModelProperty(value = "编制人id")
+    @TableField("fiction_id")
+    private Integer fictionId;
+
+    @TableField(exist = false)
+    private String fictionName;
+
+    @ApiModelProperty(value = "审核人id")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "批准人id")
+    @TableField("ratify_id")
+    private Integer ratifyId;
+
+    @TableField(exist = false)
+    private String ratifyName;
+
+    @ApiModelProperty(value = "是否删除")
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @TableField(exist = false)
+    private List<FactorContent> factorContents;
+
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorDiscern.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorDiscern.java
new file mode 100644
index 0000000..30f5899
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/FactorDiscern.java
@@ -0,0 +1,89 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("factor_discern")
+@ApiModel(value = "factorDiscern",description = "内外环境因素识别")
+public class FactorDiscern implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "部门id")
+    @TableField("dept_id")
+    private Long deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+
+    @ApiModelProperty(value = "年份")
+    @TableField("year")
+    private String year;
+
+    @ApiModelProperty(value = "编制人id")
+    @TableField("fiction_id")
+    private Integer fictionId;
+
+    @TableField(exist = false)
+    private String fictionName;
+
+    @ApiModelProperty(value = "审核人id")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "批准人id")
+    @TableField("ratify_id")
+    private Integer ratifyId;
+
+    @TableField(exist = false)
+    private String ratifyName;
+
+    @ApiModelProperty(value = "日期")
+    @TableField("fiction_time")
+    private LocalDateTime fictionTime;
+
+    @ApiModelProperty(value = "是否删除")
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @TableField(exist = false)
+    private List<FactorContent> factorContents;
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/PositionJob.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/PositionJob.java
new file mode 100644
index 0000000..9d5b782
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/PositionJob.java
@@ -0,0 +1,76 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Setter
+@Getter
+@TableName("position_job")
+@ApiModel(value = "positionJob",description = "岗位任职")
+public class PositionJob implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "岗位名称")
+    @TableField("position_name")
+    private String positionName;
+
+    @ApiModelProperty(value = "直属上级")
+    @TableField("superiors")
+    private String superiors;
+
+    @ApiModelProperty(value = "直属下级")
+    @TableField("subordinate")
+    private String subordinate;
+
+    @ApiModelProperty(value = "岗位性质")
+    @TableField("nature")
+    private String nature;
+
+    @ApiModelProperty(value = "管理权限")
+    @TableField("permission")
+    private String permission;
+
+    @ApiModelProperty(value = "任职要求")
+    @TableField("requirements")
+    private String requirements;
+
+    @ApiModelProperty(value = "岗位职责")
+    @TableField("duty")
+    private String duty;
+
+    @ApiModelProperty(value = "是否删除")
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContent.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContent.java
new file mode 100644
index 0000000..b231914
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContent.java
@@ -0,0 +1,38 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("risk_content")
+@ApiModel(value = "riskContent",description = "风险内容")
+public class RiskContent implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "风险管理id")
+    @TableField("risk_manage_id")
+    private Integer riskManageId;
+
+    @ApiModelProperty(value = "流程")
+    @TableField("process")
+    private String process;
+
+    @TableField(exist = false)
+    private List<RiskContentMess> contentMesses;
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContentMess.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContentMess.java
new file mode 100644
index 0000000..d60410e
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskContentMess.java
@@ -0,0 +1,72 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Setter
+@Getter
+@TableName("risk_content_mess")
+@ApiModel(value = "riskContentMess",description = "风险详细内容")
+public class RiskContentMess implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "风险管理id")
+    @TableField("risk_manage_id")
+    private Integer riskContentId;
+
+    @ApiModelProperty(value = "风险事件")
+    @TableField("risk_event")
+    private String riskEvent;
+
+    @ApiModelProperty(value = "风险后果")
+    @TableField("risk_consequence")
+    private String riskConsequence;
+
+    @ApiModelProperty(value = "严重度")
+    @TableField("severity")
+    private String severity;
+
+    @ApiModelProperty(value = "发生频率")
+    @TableField("frequency")
+    private String frequency;
+
+    @ApiModelProperty(value = "RPN")
+    @TableField("rpn")
+    private String rpn;
+
+    @ApiModelProperty(value = "风险等级")
+    @TableField("risk_level")
+    private String riskLevel;
+
+    @ApiModelProperty(value = "预防措施")
+    @TableField("measures")
+    private String measures;
+
+    @ApiModelProperty(value = "责任人")
+    @TableField("charge_user")
+    private String chargeUser;
+
+    @ApiModelProperty(value = "监视时间")
+    @TableField("monitor_time")
+    private String monitorTime;
+
+    @ApiModelProperty(value = "评价结果")
+    @TableField("review")
+    private String review;
+
+
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskManage.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskManage.java
new file mode 100644
index 0000000..d48564d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskManage.java
@@ -0,0 +1,89 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("risk_manage")
+@ApiModel(value = "riskManage",description = "风险管理")
+public class RiskManage implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "部门id")
+    @TableField("dept_id")
+    private Long deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+
+    @ApiModelProperty(value = "年份")
+    @TableField("year")
+    private String year;
+
+    @ApiModelProperty(value = "文件编号")
+    @TableField("document")
+    private String document;
+
+    @ApiModelProperty(value = "编制人id")
+    @TableField("fiction_id")
+    private Integer fictionId;
+
+    @TableField(exist = false)
+    private String fictionName;
+
+    @ApiModelProperty(value = "审核人id")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "批准人id")
+    @TableField("ratify_id")
+    private Integer ratifyId;
+
+    @TableField(exist = false)
+    private String ratifyName;
+
+
+    @ApiModelProperty(value = "是否删除")
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @TableField(exist = false)
+    private List<RiskContent> riskContents;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskMonitor.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskMonitor.java
new file mode 100644
index 0000000..2ec3aa5
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/RiskMonitor.java
@@ -0,0 +1,97 @@
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("risk_monitor")
+@ApiModel(value = "riskMonitor",description = "风险监视记录")
+public class RiskMonitor implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField(exist = false)
+    private String document;
+
+
+    @ApiModelProperty(value = "企业id")
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @TableField(exist = false)
+    private Integer deptId;
+    @TableField(exist = false)
+    private String deptName;
+    @TableField(exist = false)
+    private String year;
+
+    @ApiModelProperty(value = "风险管理id")
+    @TableField("risk_manage_id")
+    private Integer riskManageId;
+
+    @ApiModelProperty(value = "编制人id")
+    @TableField("fiction_id")
+    private Integer fictionId;
+
+    @TableField(exist = false)
+    private String fictionName;
+
+    @ApiModelProperty(value = "审核人id")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "批准人id")
+    @TableField("ratify_id")
+    private Integer ratifyId;
+
+    @TableField(exist = false)
+    private String ratifyName;
+
+    @ApiModelProperty(value = "日期")
+    @TableField("check_time")
+    private LocalDateTime checkTime;
+
+    @ApiModelProperty(value = "是否删除")
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @TableField(exist = false)
+    private List<RiskContent> riskContents;
+
+
+
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectContentMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectContentMapper.java
new file mode 100644
index 0000000..fdfb06d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectContentMapper.java
@@ -0,0 +1,27 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ExpectContent;
+import com.gkhy.exam.system.domain.ExpectContentMess;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ExpectContentMapper extends BaseMapper<ExpectContent> {
+    List<ExpectContent> selectByDiscrenId(@Param("id") Integer id);
+
+    void insertBatch(@Param("expectContents") List<ExpectContent> expectContents);
+
+    void deletedByDiscrenId(@Param("id") Integer id);
+
+    List<ExpectContentMess> selectByContentId(Integer id);
+
+    void insertContentMess(@Param("expectContentMesseslist") List<ExpectContentMess> expectContentMesseslist);
+
+    void deletedByConentId(@Param("id") Integer id);
+
+    void updateContentMessById(@Param("expectContentMess") List<ExpectContentMess> expectContentMess);
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectDiscrenMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectDiscrenMapper.java
new file mode 100644
index 0000000..c471485
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectDiscrenMapper.java
@@ -0,0 +1,14 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ExpectDiscren;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ExpectDiscrenMapper extends BaseMapper<ExpectDiscren> {
+    List<ExpectDiscren> selectDiscrenList(ExpectDiscren expectDiscren);
+
+    List<ExpectDiscren> selectCompanyIdAndDeptId(ExpectDiscren expectDiscren);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectEvaluateMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectEvaluateMapper.java
new file mode 100644
index 0000000..fc789db
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ExpectEvaluateMapper.java
@@ -0,0 +1,15 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ExpectEvaluate;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ExpectEvaluateMapper extends BaseMapper<ExpectEvaluate> {
+    List<ExpectEvaluate> selectEvaluateList(ExpectEvaluate expectEvaluate);
+
+    List<ExpectEvaluate> selectByDiscrenID(@Param("expectDiscrenId") Integer expectDiscrenId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorContentMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorContentMapper.java
new file mode 100644
index 0000000..9c6252d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorContentMapper.java
@@ -0,0 +1,17 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.FactorContent;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface FactorContentMapper extends BaseMapper<FactorContent> {
+    List<FactorContent> selectByFactorId(@Param("id") Integer id);
+
+    void insertBatch(@Param("factorContents") List<FactorContent> factorContents);
+
+    void deletedByFactorId(@Param("id") Integer id);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorControlMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorControlMapper.java
new file mode 100644
index 0000000..a94da2a
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorControlMapper.java
@@ -0,0 +1,15 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.FactorControl;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface FactorControlMapper extends BaseMapper<FactorControl> {
+    List<FactorControl> selectFactorControlList(FactorControl factorControl);
+
+    List<FactorControl> selectFactorDiscernId(@Param("factorDiscernId") Integer factorDiscernId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorDiscernMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorDiscernMapper.java
new file mode 100644
index 0000000..d775221
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/FactorDiscernMapper.java
@@ -0,0 +1,14 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.FactorDiscern;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface FactorDiscernMapper extends BaseMapper<FactorDiscern> {
+    List<FactorDiscern> selectFactorDiscernList(FactorDiscern factorDiscern);
+
+    List<FactorDiscern> selectByCompanyIdAndDeptId(FactorDiscern factorDiscern);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/PositionJobMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PositionJobMapper.java
new file mode 100644
index 0000000..563dcd3
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PositionJobMapper.java
@@ -0,0 +1,13 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.PositionJob;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PositionJobMapper extends BaseMapper<PositionJob> {
+    List<PositionJob> selectPositionJobList(@Param("companyId") Integer companyId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskContentMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskContentMapper.java
new file mode 100644
index 0000000..4ce8a43
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskContentMapper.java
@@ -0,0 +1,22 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.RiskContent;
+import com.gkhy.exam.system.domain.RiskContentMess;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface RiskContentMapper extends BaseMapper<RiskContent> {
+    List<RiskContent> selectRiskContent(@Param("id") Integer id);
+
+    List<RiskContentMess> selectContentMess(@Param("id") Integer id);
+
+    void insertRiskContentMess(@Param("riskContentMesses") List<RiskContentMess> riskContentMesses);
+
+    void updateContentMess(@Param("riskContentMesses") List<RiskContentMess> riskContentMesses);
+
+    void deletedByManageId(@Param("id") Integer id);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskManageMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskManageMapper.java
new file mode 100644
index 0000000..9a66775
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskManageMapper.java
@@ -0,0 +1,14 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.RiskManage;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface RiskManageMapper extends BaseMapper<RiskManage> {
+    List<RiskManage> selectRiskManageList(RiskManage riskManage);
+
+    List<RiskManage> selectManageList(RiskManage riskManage);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskMonitorMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskMonitorMapper.java
new file mode 100644
index 0000000..d9e0050
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/RiskMonitorMapper.java
@@ -0,0 +1,14 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.RiskMonitor;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface RiskMonitorMapper extends BaseMapper<RiskMonitor> {
+    List<RiskMonitor> selectMonitorList(RiskMonitor riskMonitor);
+
+    List<RiskMonitor> selectMonitor(RiskMonitor riskMonitor);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java
new file mode 100644
index 0000000..c631c10
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectDiscrenService.java
@@ -0,0 +1,19 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.ExpectDiscren;
+
+public interface ExpectDiscrenService extends IService<ExpectDiscren> {
+    CommonPage selectExpectDiscrenList(ExpectDiscren expectDiscren);
+
+    CommonResult insertExpectDiscren(ExpectDiscren expectDiscren);
+
+    CommonResult updateExpectDiscren(ExpectDiscren expectDiscren);
+
+    CommonResult deletedExpectDiscren(Integer expectDiscrenId);
+
+    CommonResult selectExpectDiscrenListAll(ExpectDiscren expectDiscren);
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java
new file mode 100644
index 0000000..9abab27
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ExpectEvaluateService.java
@@ -0,0 +1,16 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.ExpectEvaluate;
+
+public interface ExpectEvaluateService extends IService<ExpectEvaluate> {
+    CommonPage selectExpectEvaluateList(ExpectEvaluate expectEvaluate);
+
+    CommonResult insertExpectEvaluate(ExpectEvaluate expectEvaluate);
+
+    CommonResult updateExpectEvaluate(ExpectEvaluate expectEvaluate);
+
+    CommonResult deletedExpectEvaluate(Integer expectEvaluateId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/FactorControlService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/FactorControlService.java
new file mode 100644
index 0000000..b5d149e
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/FactorControlService.java
@@ -0,0 +1,16 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.FactorControl;
+
+public interface FactorControlService extends IService<FactorControl> {
+    CommonPage selectFactorControlList(FactorControl factorControl);
+
+    CommonResult insertFactorControl(FactorControl factorControl);
+
+    CommonResult updateFactorControl(FactorControl factorControl);
+
+    CommonResult deletedFactorControl(Integer factorControlId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/FactorDiscernService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/FactorDiscernService.java
new file mode 100644
index 0000000..52d325b
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/FactorDiscernService.java
@@ -0,0 +1,18 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.FactorDiscern;
+
+public interface FactorDiscernService extends IService<FactorDiscern> {
+    CommonPage selectFactorDiscernList(FactorDiscern factorDiscern);
+
+    CommonResult insertFactorDiscern(FactorDiscern factorDiscern);
+
+    CommonResult updateFactorDiscern(FactorDiscern factorDiscern);
+
+    CommonResult deletedFactorDiscern(Integer factorDiscrenId);
+
+    CommonResult selectFactorDiscernListAll(FactorDiscern factorDiscern);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/PositionJobService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/PositionJobService.java
new file mode 100644
index 0000000..9e9e011
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/PositionJobService.java
@@ -0,0 +1,16 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.PositionJob;
+
+public interface PositionJobService extends IService<PositionJob> {
+    CommonPage selectPositionJobList(Integer companyId);
+
+    CommonResult insertPositionJob(PositionJob positionJob);
+
+    CommonResult updatePositionJob(PositionJob positionJob);
+
+    CommonResult deletedPositionJob(Integer id);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/RiskManageService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/RiskManageService.java
new file mode 100644
index 0000000..f601a97
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/RiskManageService.java
@@ -0,0 +1,18 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.RiskManage;
+
+public interface RiskManageService extends IService<RiskManage> {
+    CommonPage selectRiskManageList(RiskManage riskManage);
+
+    CommonResult selectRiskManageListAll(RiskManage riskManage);
+
+    CommonResult insertRiskManage(RiskManage riskManage);
+
+    CommonResult updateRiskManage(RiskManage riskManage);
+
+    CommonResult deletedRiskManage(Integer riskManageId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/RiskMonitorService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/RiskMonitorService.java
new file mode 100644
index 0000000..7f7407a
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/RiskMonitorService.java
@@ -0,0 +1,16 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.RiskMonitor;
+
+public interface RiskMonitorService extends IService<RiskMonitor> {
+    CommonPage selectRiskMonitorList(RiskMonitor riskMonitor);
+
+    CommonResult insertRiskMonitor(RiskMonitor riskMonitor);
+
+    CommonResult updateRiskMonitor(RiskMonitor riskMonitor);
+
+    CommonResult deletedRiskMonitor(Integer riskMonitorId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java
new file mode 100644
index 0000000..fec0d0c
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectDiscrenServiceImpl.java
@@ -0,0 +1,128 @@
+package com.gkhy.exam.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.ExpectContent;
+import com.gkhy.exam.system.domain.ExpectContentMess;
+import com.gkhy.exam.system.domain.ExpectDiscren;
+import com.gkhy.exam.system.mapper.ExpectContentMapper;
+import com.gkhy.exam.system.mapper.ExpectDiscrenMapper;
+import com.gkhy.exam.system.service.ExpectDiscrenService;
+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.ArrayList;
+import java.util.List;
+
+@Service
+public class ExpectDiscrenServiceImpl extends ServiceImpl<ExpectDiscrenMapper, ExpectDiscren> implements ExpectDiscrenService {
+
+    @Autowired
+    private ExpectDiscrenMapper expectDiscrenMapper;
+
+    @Autowired
+    private ExpectContentMapper expectContentMapper;
+
+
+    @Override
+    public CommonPage selectExpectDiscrenList(ExpectDiscren expectDiscren) {
+        if (!SecurityUtils.adminUser()){
+            if (expectDiscren.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<ExpectDiscren> expectDiscrens = expectDiscrenMapper.selectDiscrenList(expectDiscren);
+        for (ExpectDiscren discren : expectDiscrens) {
+            List<ExpectContent> expectContents = expectContentMapper.selectByDiscrenId(discren.getId());
+            for (ExpectContent expectContent : expectContents) {
+                List<ExpectContentMess> expectContentMesses = expectContentMapper.selectByContentId(expectContent.getId());
+                expectContent.setExpectContentMesses(expectContentMesses);
+            }
+            discren.setExpectContents(expectContents);
+        }
+        return CommonPage.restPage(expectDiscrens);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertExpectDiscren(ExpectDiscren expectDiscren) {
+        List<ExpectDiscren> expectDiscrens = expectDiscrenMapper.selectCompanyIdAndDeptId(expectDiscren);
+        if (expectDiscrens.size()>0){
+            throw new ApiException("当前企业已有数据,请删除后重试");
+        }
+        expectDiscren.setCreateBy(SecurityUtils.getUsername());
+        expectDiscren.setCreateTime(LocalDateTime.now());
+        expectDiscrenMapper.insert(expectDiscren);
+        List<ExpectContent> expectContents = expectDiscren.getExpectContents();
+        //循环新增相关方需求
+        List<ExpectContentMess> expectContentMesseslist = new ArrayList<>();
+        for (ExpectContent expectContent : expectContents) {
+
+            expectContent.setExpectDiscrenId(expectDiscren.getId());
+            expectContentMapper.insert(expectContent);
+
+            //循环新增相关方需求详细内容
+            List<ExpectContentMess> expectContentMesses = expectContent.getExpectContentMesses();
+            for (ExpectContentMess expectContentMess : expectContentMesses) {
+                expectContentMess.setExpectContentId(expectContent.getId());
+            }
+            expectContentMesseslist.addAll(expectContentMesses);
+        }
+        expectContentMapper.insertContentMess(expectContentMesseslist);
+
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateExpectDiscren(ExpectDiscren expectDiscren) {
+        expectDiscren.setUpdateBy(SecurityUtils.getUsername());
+        expectDiscren.setUpdateTime(LocalDateTime.now());
+        expectDiscrenMapper.updateById(expectDiscren);
+        List<ExpectContent> expectContents = expectDiscren.getExpectContents();
+        expectContentMapper.deletedByDiscrenId(expectDiscren.getId());
+        List<ExpectContentMess> expectContentMesses = new ArrayList<>();
+        for (ExpectContent expectContent : expectContents) {
+            expectContent.setId(null);
+            expectContentMapper.insert(expectContent);
+            List<ExpectContentMess> expectContentMesses1 = expectContent.getExpectContentMesses();
+            for (ExpectContentMess expectContentMess : expectContentMesses1) {
+                expectContentMess.setExpectContentId(expectContent.getId());
+            }
+            expectContentMesses.addAll(expectContentMesses1);
+        }
+        expectContentMapper.insertContentMess(expectContentMesses);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedExpectDiscren(Integer expectDiscrenId) {
+        ExpectDiscren expectDiscren = new ExpectDiscren();
+        expectDiscren.setId(expectDiscrenId);
+        expectDiscren.setUpdateBy(SecurityUtils.getUsername());
+        expectDiscren.setUpdateTime(LocalDateTime.now());
+        expectDiscren.setDelFlag(2);
+        expectDiscrenMapper.updateById(expectDiscren);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult selectExpectDiscrenListAll(ExpectDiscren expectDiscren) {
+        List<ExpectDiscren> expectDiscrens = expectDiscrenMapper.selectDiscrenList(expectDiscren);
+        for (ExpectDiscren discren : expectDiscrens) {
+            List<ExpectContent> expectContents = expectContentMapper.selectByDiscrenId(discren.getId());
+            for (ExpectContent expectContent : expectContents) {
+                List<ExpectContentMess> expectContentMesses = expectContentMapper.selectByContentId(expectContent.getId());
+                expectContent.setExpectContentMesses(expectContentMesses);
+            }
+            discren.setExpectContents(expectContents);
+        }
+        return CommonResult.success(expectDiscrens);
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java
new file mode 100644
index 0000000..7b24e6c
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExpectEvaluateServiceImpl.java
@@ -0,0 +1,94 @@
+package com.gkhy.exam.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.ExpectContent;
+import com.gkhy.exam.system.domain.ExpectContentMess;
+import com.gkhy.exam.system.domain.ExpectEvaluate;
+import com.gkhy.exam.system.mapper.ExpectContentMapper;
+import com.gkhy.exam.system.mapper.ExpectEvaluateMapper;
+import com.gkhy.exam.system.service.ExpectEvaluateService;
+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.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class ExpectEvaluateServiceImpl extends ServiceImpl<ExpectEvaluateMapper, ExpectEvaluate> implements ExpectEvaluateService {
+    @Autowired
+    private ExpectEvaluateMapper expectEvaluateMapper;
+
+    @Autowired
+    private ExpectContentMapper expectContentMapper;
+
+
+    @Override
+    public CommonPage selectExpectEvaluateList(ExpectEvaluate expectEvaluate) {
+        if (!SecurityUtils.adminUser()){
+            if (expectEvaluate.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<ExpectEvaluate> expectEvaluates = expectEvaluateMapper.selectEvaluateList(expectEvaluate);
+        for (ExpectEvaluate evaluate : expectEvaluates) {
+            List<ExpectContent> expectContents = expectContentMapper.selectByDiscrenId(evaluate.getExpectDiscrenId());
+            for (ExpectContent expectContent : expectContents) {
+                List<ExpectContentMess> expectContentMesses = expectContentMapper.selectByContentId(expectContent.getId());
+                expectContent.setExpectContentMesses(expectContentMesses);
+            }
+            evaluate.setExpectContents(expectContents);
+        }
+        return CommonPage.restPage(expectEvaluates);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertExpectEvaluate(ExpectEvaluate expectEvaluate) {
+        List<ExpectEvaluate> expectEvaluates = expectEvaluateMapper.selectByDiscrenID(expectEvaluate.getExpectDiscrenId());
+        if (expectEvaluates.size()>0){
+            throw new ApiException("当前企业已有数据,请删除后重试");
+        }
+        expectEvaluate.setCreateBy(SecurityUtils.getUsername());
+        expectEvaluate.setCreateTime(LocalDateTime.now());
+        expectEvaluateMapper.insert(expectEvaluate);
+        List<ExpectContentMess> collect = expectEvaluate.getExpectContents()
+                .stream()
+                .flatMap(expectContent -> expectContent.getExpectContentMesses().stream())
+                .collect(Collectors.toList());
+        expectContentMapper.updateContentMessById(collect);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateExpectEvaluate(ExpectEvaluate expectEvaluate) {
+        expectEvaluate.setUpdateBy(SecurityUtils.getUsername());
+        expectEvaluate.setUpdateTime(LocalDateTime.now());
+        expectEvaluateMapper.updateById(expectEvaluate);
+        List<ExpectContentMess> collect = expectEvaluate.getExpectContents()
+                .stream()
+                .flatMap(expectContent -> expectContent.getExpectContentMesses().stream())
+                .collect(Collectors.toList());
+        expectContentMapper.updateContentMessById(collect);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedExpectEvaluate(Integer expectEvaluateId) {
+        ExpectEvaluate expectEvaluate = new ExpectEvaluate();
+        expectEvaluate.setId(expectEvaluateId);
+        expectEvaluate.setUpdateTime(LocalDateTime.now());
+        expectEvaluate.setUpdateBy(SecurityUtils.getUsername());
+        expectEvaluate.setDelFlag(2);
+        expectEvaluateMapper.updateById(expectEvaluate);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorControlServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorControlServiceImpl.java
new file mode 100644
index 0000000..89aa777
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorControlServiceImpl.java
@@ -0,0 +1,88 @@
+package com.gkhy.exam.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.FactorContent;
+import com.gkhy.exam.system.domain.FactorControl;
+import com.gkhy.exam.system.domain.FactorDiscern;
+import com.gkhy.exam.system.mapper.FactorContentMapper;
+import com.gkhy.exam.system.mapper.FactorControlMapper;
+import com.gkhy.exam.system.mapper.FactorDiscernMapper;
+import com.gkhy.exam.system.service.FactorControlService;
+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;
+
+@Service
+public class FactorControlServiceImpl extends ServiceImpl<FactorControlMapper, FactorControl> implements FactorControlService {
+
+    @Autowired
+    private FactorControlMapper factorControlMapper;
+
+    @Autowired
+    private FactorContentMapper factorContentMapper;
+
+
+    @Override
+    public CommonPage selectFactorControlList(FactorControl factorControl) {
+        if (!SecurityUtils.adminUser()){
+            if (factorControl.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<FactorControl> factorControls = factorControlMapper.selectFactorControlList(factorControl);
+        for (FactorControl control : factorControls) {
+            List<FactorContent> factorContents = factorContentMapper.selectByFactorId(control.getFactorDiscernId());
+            control.setFactorContents(factorContents);
+        }
+        return CommonPage.restPage(factorControls);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertFactorControl(FactorControl factorControl) {
+        List<FactorControl> factorControls = factorControlMapper.selectFactorDiscernId(factorControl.getFactorDiscernId());
+        if (factorControls.size()>0){
+            throw new ApiException("当前企业已有数据,请删除后重试");
+        }
+        factorControl.setCreateBy(SecurityUtils.getUsername());
+        factorControl.setCreateTime(LocalDateTime.now());
+        factorControlMapper.insert(factorControl);
+        List<FactorContent> factorContents = factorControl.getFactorContents();
+        for (FactorContent factorContent : factorContents) {
+            factorContentMapper.updateById(factorContent);
+        }
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateFactorControl(FactorControl factorControl) {
+        factorControl.setUpdateBy(SecurityUtils.getUsername());
+        factorControl.setUpdateTime(LocalDateTime.now());
+        factorControlMapper.updateById(factorControl);
+        List<FactorContent> factorContents = factorControl.getFactorContents();
+        for (FactorContent factorContent : factorContents) {
+            factorContentMapper.updateById(factorContent);
+        }
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedFactorControl(Integer factorControlId) {
+        FactorControl factorControl = new FactorControl();
+        factorControl.setId(factorControlId);
+        factorControl.setUpdateTime(LocalDateTime.now());
+        factorControl.setUpdateBy(SecurityUtils.getUsername());
+        factorControl.setDelFlag(2);
+        factorControlMapper.updateById(factorControl);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorDiscernServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorDiscernServiceImpl.java
new file mode 100644
index 0000000..e1d739a
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/FactorDiscernServiceImpl.java
@@ -0,0 +1,101 @@
+package com.gkhy.exam.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.FactorContent;
+import com.gkhy.exam.system.domain.FactorDiscern;
+import com.gkhy.exam.system.mapper.FactorContentMapper;
+import com.gkhy.exam.system.mapper.FactorDiscernMapper;
+import com.gkhy.exam.system.service.FactorDiscernService;
+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;
+
+@Service
+public class FactorDiscernServiceImpl extends ServiceImpl<FactorDiscernMapper, FactorDiscern> implements FactorDiscernService {
+
+    @Autowired
+    private FactorDiscernMapper factorDiscernMapper;
+
+    @Autowired
+    private FactorContentMapper factorContentMapper;
+
+
+    @Override
+    public CommonPage selectFactorDiscernList(FactorDiscern factorDiscern) {
+        if (!SecurityUtils.adminUser()){
+            if (factorDiscern.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<FactorDiscern> factorDiscerns = factorDiscernMapper.selectFactorDiscernList(factorDiscern);
+        for (FactorDiscern discern : factorDiscerns) {
+            List<FactorContent> factorContents = factorContentMapper.selectByFactorId(discern.getId());
+            discern.setFactorContents(factorContents);
+        }
+        return CommonPage.restPage(factorDiscerns);
+    }
+
+    @Override
+    public CommonResult selectFactorDiscernListAll(FactorDiscern factorDiscern) {
+        List<FactorDiscern> factorDiscerns = factorDiscernMapper.selectFactorDiscernList(factorDiscern);
+        for (FactorDiscern discern : factorDiscerns) {
+            List<FactorContent> factorContents = factorContentMapper.selectByFactorId(discern.getId());
+            discern.setFactorContents(factorContents);
+        }
+        return CommonResult.success(factorDiscerns);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertFactorDiscern(FactorDiscern factorDiscern) {
+        List<FactorDiscern> factorDiscerns = factorDiscernMapper.selectByCompanyIdAndDeptId(factorDiscern);
+        if (factorDiscerns.size()>0){
+            throw new ApiException("当前企业已有数据,请删除后重试");
+        }
+        factorDiscern.setCreateBy(SecurityUtils.getUsername());
+        factorDiscern.setCreateTime(LocalDateTime.now());
+        factorDiscernMapper.insert(factorDiscern);
+        List<FactorContent> factorContents = factorDiscern.getFactorContents();
+        for (FactorContent factorContent : factorContents) {
+            factorContent.setFactorDiscernId(factorDiscern.getId());
+        }
+        factorContentMapper.insertBatch(factorContents);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateFactorDiscern(FactorDiscern factorDiscern) {
+        factorDiscern.setUpdateBy(SecurityUtils.getUsername());
+        factorDiscern.setUpdateTime(LocalDateTime.now());
+        factorDiscernMapper.updateById(factorDiscern);
+        List<FactorContent> factorContents = factorDiscern.getFactorContents();
+        for (FactorContent factorContent : factorContents) {
+            factorContent.setFactorDiscernId(factorDiscern.getId());
+        }
+        factorContentMapper.deletedByFactorId(factorDiscern.getId());
+        factorContentMapper.insertBatch(factorContents);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedFactorDiscern(Integer factorDiscrenId) {
+        FactorDiscern factorDiscern = new FactorDiscern();
+        factorDiscern.setId(factorDiscrenId);
+        factorDiscern.setUpdateBy(SecurityUtils.getUsername());
+        factorDiscern.setUpdateTime(LocalDateTime.now());
+        factorDiscern.setDelFlag(2);
+        factorDiscernMapper.updateById(factorDiscern);
+        return CommonResult.success();
+    }
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PositionJobServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PositionJobServiceImpl.java
new file mode 100644
index 0000000..e37e446
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PositionJobServiceImpl.java
@@ -0,0 +1,63 @@
+package com.gkhy.exam.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.PositionJob;
+import com.gkhy.exam.system.mapper.PositionJobMapper;
+import com.gkhy.exam.system.service.PositionJobService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class PositionJobServiceImpl extends ServiceImpl<PositionJobMapper,PositionJob> implements PositionJobService {
+
+    @Autowired
+    private PositionJobMapper positionJobMapper;
+
+
+    @Override
+    public CommonPage selectPositionJobList(Integer companyId) {
+        if (!SecurityUtils.adminUser()){
+            if (companyId==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<PositionJob> positionJobs = positionJobMapper.selectPositionJobList(companyId);
+        return CommonPage.restPage(positionJobs);
+    }
+
+    @Override
+    public CommonResult insertPositionJob(PositionJob positionJob) {
+        positionJob.setCreateBy(SecurityUtils.getUsername());
+        positionJob.setCreateTime(LocalDateTime.now());
+        positionJobMapper.insert(positionJob);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updatePositionJob(PositionJob positionJob) {
+        positionJob.setUpdateBy(SecurityUtils.getUsername());
+        positionJob.setUpdateTime(LocalDateTime.now());
+        positionJobMapper.updateById(positionJob);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedPositionJob(Integer id) {
+        PositionJob positionJob = new PositionJob();
+        positionJob.setUpdateBy(SecurityUtils.getUsername());
+        positionJob.setUpdateTime(LocalDateTime.now());
+        positionJob.setId(id);
+        positionJob.setDelFlag(2);
+        positionJobMapper.updateById(positionJob);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskManageServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskManageServiceImpl.java
new file mode 100644
index 0000000..22092ba
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskManageServiceImpl.java
@@ -0,0 +1,123 @@
+package com.gkhy.exam.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.RiskContent;
+import com.gkhy.exam.system.domain.RiskContentMess;
+import com.gkhy.exam.system.domain.RiskManage;
+import com.gkhy.exam.system.mapper.RiskContentMapper;
+import com.gkhy.exam.system.mapper.RiskManageMapper;
+import com.gkhy.exam.system.service.RiskManageService;
+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.ArrayList;
+import java.util.List;
+
+@Service
+public class RiskManageServiceImpl extends ServiceImpl<RiskManageMapper, RiskManage> implements RiskManageService {
+
+    @Autowired
+    private RiskManageMapper riskManageMapper;
+
+    @Autowired
+    private RiskContentMapper riskContentMapper;
+
+
+    @Override
+    public CommonPage selectRiskManageList(RiskManage riskManage) {
+        if (!SecurityUtils.adminUser()){
+            if (riskManage.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<RiskManage> riskManages = riskManageMapper.selectRiskManageList(riskManage);
+        for (RiskManage manage : riskManages) {
+            List<RiskContent> riskContents = riskContentMapper.selectRiskContent(manage.getId());
+            for (RiskContent riskContent : riskContents) {
+                List<RiskContentMess> riskContentMesses = riskContentMapper.selectContentMess(riskContent.getId());
+                riskContent.setContentMesses(riskContentMesses);
+            }
+            manage.setRiskContents(riskContents);
+        }
+        return CommonPage.restPage(riskManages);
+    }
+
+    @Override
+    public CommonResult selectRiskManageListAll(RiskManage riskManage) {
+        List<RiskManage> riskManages = riskManageMapper.selectRiskManageList(riskManage);
+        for (RiskManage manage : riskManages) {
+            List<RiskContent> riskContents = riskContentMapper.selectRiskContent(manage.getId());
+            for (RiskContent riskContent : riskContents) {
+                List<RiskContentMess> riskContentMesses = riskContentMapper.selectContentMess(riskContent.getId());
+                riskContent.setContentMesses(riskContentMesses);
+            }
+            manage.setRiskContents(riskContents);
+        }
+        return CommonResult.success(riskManages);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertRiskManage(RiskManage riskManage) {
+        List<RiskManage> riskManages = riskManageMapper.selectManageList(riskManage);
+        if (riskManages.size()>0){
+            throw new ApiException("当前企业已有数据,请删除后重试");
+        }
+        riskManage.setCreateBy(SecurityUtils.getUsername());
+        riskManage.setCreateTime(LocalDateTime.now());
+        riskManageMapper.insert(riskManage);
+        List<RiskContent> riskContents = riskManage.getRiskContents();
+        List<RiskContentMess> riskContentMesses = new ArrayList<>();
+        for (RiskContent riskContent : riskContents) {
+            riskContent.setRiskManageId(riskManage.getId());
+            riskContentMapper.insert(riskContent);
+            List<RiskContentMess> contentMesses = riskContent.getContentMesses();
+            for (RiskContentMess contentMess : contentMesses) {
+                contentMess.setRiskContentId(riskContent.getId());
+            }
+            riskContentMesses.addAll(contentMesses);
+        }
+        riskContentMapper.insertRiskContentMess(riskContentMesses);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateRiskManage(RiskManage riskManage) {
+        riskManage.setUpdateBy(SecurityUtils.getUsername());
+        riskManage.setUpdateTime(LocalDateTime.now());
+        riskManageMapper.updateById(riskManage);
+        riskContentMapper.deletedByManageId(riskManage.getId());
+        List<RiskContent> riskContents = riskManage.getRiskContents();
+        List<RiskContentMess> riskContentMesses = new ArrayList<>();
+        for (RiskContent riskContent : riskContents) {
+            riskContent.setId(null);
+            riskContentMapper.insert(riskContent);
+            List<RiskContentMess> contentMesses = riskContent.getContentMesses();
+            for (RiskContentMess contentMess : contentMesses) {
+                contentMess.setRiskContentId(riskContent.getId());
+            }
+            riskContentMesses.addAll(contentMesses);
+        }
+        riskContentMapper.insertRiskContentMess(riskContentMesses);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedRiskManage(Integer riskManageId) {
+        RiskManage riskManage = new RiskManage();
+        riskManage.setUpdateTime(LocalDateTime.now());
+        riskManage.setUpdateBy(SecurityUtils.getUsername());
+        riskManage.setDelFlag(2);
+        riskManage.setId(riskManageId);
+        riskManageMapper.updateById(riskManage);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskMonitorServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskMonitorServiceImpl.java
new file mode 100644
index 0000000..cd0d036
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/RiskMonitorServiceImpl.java
@@ -0,0 +1,93 @@
+package com.gkhy.exam.system.service.impl;
+
+import cn.hutool.db.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.api.CommonPage;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.RiskContent;
+import com.gkhy.exam.system.domain.RiskContentMess;
+import com.gkhy.exam.system.domain.RiskMonitor;
+import com.gkhy.exam.system.mapper.RiskContentMapper;
+import com.gkhy.exam.system.mapper.RiskMonitorMapper;
+import com.gkhy.exam.system.service.RiskMonitorService;
+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;
+import java.util.stream.Collectors;
+
+@Service
+public class RiskMonitorServiceImpl extends ServiceImpl<RiskMonitorMapper, RiskMonitor> implements RiskMonitorService {
+
+    @Autowired
+    private RiskMonitorMapper riskMonitorMapper;
+
+    @Autowired
+    private RiskContentMapper riskContentMapper;
+
+
+    @Override
+    public CommonPage selectRiskMonitorList(RiskMonitor riskMonitor) {
+        if (!SecurityUtils.adminUser()){
+            if (riskMonitor.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<RiskMonitor> riskMonitors = riskMonitorMapper.selectMonitorList(riskMonitor);
+        for (RiskMonitor monitor : riskMonitors) {
+            List<RiskContent> riskContents = riskContentMapper.selectRiskContent(monitor.getRiskManageId());
+            for (RiskContent riskContent : riskContents) {
+                List<RiskContentMess> riskContentMesses = riskContentMapper.selectContentMess(riskContent.getId());
+                riskContent.setContentMesses(riskContentMesses);
+            }
+            monitor.setRiskContents(riskContents);
+        }
+        return CommonPage.restPage(riskMonitors);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertRiskMonitor(RiskMonitor riskMonitor) {
+        List<RiskMonitor> riskMonitors = riskMonitorMapper.selectMonitor(riskMonitor);
+        if (riskMonitors.size()>0){
+            throw new ApiException("当前企业已有数据,请删除后重试");
+        }
+        riskMonitor.setCreateBy(SecurityUtils.getUsername());
+        riskMonitor.setCreateTime(LocalDateTime.now());
+        riskMonitorMapper.insert(riskMonitor);
+        List<RiskContentMess> allContentMess = riskMonitor.getRiskContents().stream()
+                .flatMap(riskContent -> riskContent.getContentMesses().stream())
+                .collect(Collectors.toList());
+        riskContentMapper.updateContentMess(allContentMess);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateRiskMonitor(RiskMonitor riskMonitor) {
+        riskMonitor.setUpdateBy(SecurityUtils.getUsername());
+        riskMonitor.setUpdateTime(LocalDateTime.now());
+        riskMonitorMapper.updateById(riskMonitor);
+        List<RiskContentMess> allContentMess = riskMonitor.getRiskContents().stream()
+                .flatMap(riskContent -> riskContent.getContentMesses().stream())
+                .collect(Collectors.toList());
+        riskContentMapper.updateContentMess(allContentMess);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedRiskMonitor(Integer riskMonitorId) {
+        RiskMonitor riskMonitor = new RiskMonitor();
+        riskMonitor.setUpdateTime(LocalDateTime.now());
+        riskMonitor.setUpdateBy(SecurityUtils.getUsername());
+        riskMonitor.setId(riskMonitorId);
+        riskMonitor.setDelFlag(2);
+        riskMonitorMapper.updateById(riskMonitor);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/resources/mapper/system/ExpectContentMapper.xml b/multi-system/src/main/resources/mapper/system/ExpectContentMapper.xml
new file mode 100644
index 0000000..9ce8bf1
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ExpectContentMapper.xml
@@ -0,0 +1,55 @@
+<?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.ExpectContentMapper">
+    <insert id="insertBatch">
+        INSERT INTO `expect_content` (`expect_discren_id`, `stakeholder`, `expectation`, `solutions`, `review`)
+        VALUES
+            <foreach collection="expectContents" item="item" separator=",">
+                ( #{item.expectDiscrenId}, #{item.stakeholder}, #{item.expectation}, #{item.solutions}, #{item.review})
+            </foreach>
+
+
+    </insert>
+    <insert id="insertContentMess">
+        INSERT INTO `expect_content_mess` ( `expect_content_id`, `expectation`, `solutions`, `review` )
+        VALUES
+            <foreach collection="expectContentMesseslist" separator="," item="item">
+                ( #{item.expectContentId}, #{item.expectation}, #{item.solutions}, #{item.review} )
+            </foreach>
+    </insert>
+    <update id="updateContentMessById">
+        <foreach collection="expectContentMess" item="item" index="index" separator=";">
+            update expect_content_mess set review = #{item.review} where id = #{item.id}
+        </foreach>
+    </update>
+    <delete id="deletedByDiscrenId">
+        delete  from expect_content where expect_discren_id = #{id}
+    </delete>
+    <delete id="deletedByConentId">
+        delete  from expect_content_mess where expect_content_id = #{id}
+    </delete>
+
+    <select id="selectByDiscrenId" resultType="com.gkhy.exam.system.domain.ExpectContent">
+        SELECT
+            `id`,
+            `expect_discren_id`,
+            `stakeholder`,
+            `expectation`,
+            `solutions`,
+            `review`
+        FROM
+            `expect_content`
+        WHERE expect_discren_id  =#{id}
+    </select>
+    <select id="selectByContentId" resultType="com.gkhy.exam.system.domain.ExpectContentMess">
+        SELECT
+            `id`,
+            `expect_content_id`,
+            `expectation`,
+            `solutions`,
+            `review`
+        FROM
+            `expect_content_mess`
+        WHERE expect_content_id  =#{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/ExpectDiscrenMapper.xml b/multi-system/src/main/resources/mapper/system/ExpectDiscrenMapper.xml
new file mode 100644
index 0000000..00a3cb0
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ExpectDiscrenMapper.xml
@@ -0,0 +1,75 @@
+<?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.ExpectDiscrenMapper">
+
+    <select id="selectDiscrenList" resultType="com.gkhy.exam.system.domain.ExpectDiscren">
+
+        SELECT
+            ed.`id`,
+            ed.`company_id`,
+            sc.`name` AS company_name,
+            ed.`dept_id`,
+            sd.`dept_name`,
+            ed.`year`,
+            ed.`frequency`,
+            ed.`fiction_id`,
+            su1.`name` AS fiction_name,
+            ed.`check_id`,
+            su2.`name` AS check_name,
+            ed.`ratify_id`,
+            su3.`name` AS ratify_name,
+            ed.`fiction_time`,
+            ed.`del_flag`,
+            ed.`create_by`,
+            ed.`create_time`,
+            ed.`update_by`,
+            ed.`update_time`
+        FROM
+            `expect_discren` ed
+                LEFT JOIN sys_company sc ON ed.company_id = sc.id
+                LEFT JOIN sys_user su1 ON ed.fiction_id = su1.id
+                LEFT JOIN sys_user su2 ON ed.check_id = su2.id
+                LEFT JOIN sys_user su3 ON ed.ratify_id = su3.id
+                LEFT JOIN sys_dept sd ON ed.dept_id = sd.dept_id
+        WHERE
+            ed.del_flag = 1
+          <if test="companyId!=null">
+              AND ed.company_id = #{companyId}
+          </if>
+          <if test="year!=null and year!=''">
+              and ed.`year` = #{year}
+          </if>
+        ORDER BY
+        ed.create_time DESC
+    </select>
+    <select id="selectCompanyIdAndDeptId" resultType="com.gkhy.exam.system.domain.ExpectDiscren">
+        SELECT
+        `id`,
+        `company_id`,
+        `dept_id`,
+        `year`,
+        `frequency`,
+        `fiction_id`,
+        `check_id`,
+        `ratify_id`,
+        `fiction_time`,
+        `del_flag`,
+        `create_by`,
+        `create_time`,
+        `update_by`,
+        `update_time`
+        FROM
+        `expect_discren`
+        WHERE
+        del_flag = 1
+        <if test="companyId!=null">
+            AND company_id = #{companyId}
+        </if>
+        <if test="deptId!=null">
+            and `dept_id` = #{deptId}
+        </if>
+        <if test="year!=null and year!=''">
+            AND `year` = #{year}
+        </if>
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/ExpectEvaluateMapper.xml b/multi-system/src/main/resources/mapper/system/ExpectEvaluateMapper.xml
new file mode 100644
index 0000000..5a82b96
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ExpectEvaluateMapper.xml
@@ -0,0 +1,65 @@
+<?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.ExpectEvaluateMapper">
+
+    <select id="selectEvaluateList" resultType="com.gkhy.exam.system.domain.ExpectEvaluate">
+        SELECT
+        ee.`id`,
+        ee.`expect_discren_id`,
+        ee.`company_id`,
+        sc.`name` AS company_name,
+        ed.dept_id,
+        sd.dept_name,
+        ed.`year`,
+        ed.`frequency`,
+        ee.`evaluate_id`,
+        su1.`name` AS evaluate_name,
+        ee.`confirm_id`,
+        su2.`name` AS confirm_name,
+        ee.`evaluate_time`,
+        ee.`del_flag`,
+        ee.`create_by`,
+        ee.`create_time`,
+        ee.`update_by`,
+        ee.`update_time`
+        FROM
+        `expect_evaluate` ee
+        LEFT JOIN expect_discren ed on ee.expect_discren_id = ed.id
+        LEFT JOIN sys_company sc ON ee.company_id = sc.id
+        LEFT JOIN sys_user su1 ON ee.evaluate_id = su1.id
+        LEFT JOIN sys_user su2 ON ee.confirm_id = su2.id
+        left join sys_dept sd on ed.dept_id = sd.dept_id
+        WHERE
+        ee.del_flag = 1
+        <if test="companyId!=null">
+            and ee.company_id = #{companyId}
+        </if>
+        <if test="year!=null and year!=''">
+            and ed.`year` = #{year}
+        </if>
+        <if test="expectDiscrenId!=null">
+            and ee.expect_discren_id = #{expectDiscrenId}
+        </if>
+        order by ee.create_time desc
+    </select>
+    <select id="selectByDiscrenID" resultType="com.gkhy.exam.system.domain.ExpectEvaluate">
+        SELECT
+        `id`,
+        `expect_discren_id`,
+        `company_id`,
+        `evaluate_id`,
+        `confirm_id`,
+        `evaluate_time`,
+        `del_flag`,
+        `create_by`,
+        `create_time`,
+        `update_by`,
+        `update_time`
+        FROM
+        `expect_evaluate`
+        WHERE
+        del_flag = 1
+        and expect_discren_id = #{expectDiscrenId}
+
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/FactorContentMapper.xml b/multi-system/src/main/resources/mapper/system/FactorContentMapper.xml
new file mode 100644
index 0000000..2e89a43
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/FactorContentMapper.xml
@@ -0,0 +1,46 @@
+<?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.FactorContentMapper">
+    <insert id="insertBatch">
+        INSERT INTO `factor_content` (`factor_discern_id`, `factor_name`, `factor_mess`, `influence`, `monitor_method`, `review`, `solutions`, `result`, `remark`, `type` )
+        VALUES
+            <foreach collection="factorContents" separator="," item="item">
+                (
+                #{item.factorDiscernId},
+                #{item.factorName},
+                #{item.factorMess},
+                #{item.influence},
+                #{item.monitorMethod},
+                #{item.review},
+                #{item.solutions},
+                #{item.result},
+                #{item.remark},
+                #{item.type})
+            </foreach>
+    </insert>
+    <delete id="deletedByFactorId">
+        DELETE
+        FROM
+            factor_content
+        WHERE
+            factor_discern_id = #{id}
+    </delete>
+
+    <select id="selectByFactorId" resultType="com.gkhy.exam.system.domain.FactorContent">
+        SELECT
+            `id`,
+            `factor_discern_id`,
+            `factor_name`,
+            `factor_mess`,
+            `influence`,
+            `monitor_method`,
+            `review`,
+            `solutions`,
+            `result`,
+            `remark`,
+            `type`
+        FROM
+            `factor_content`
+        WHERE factor_discern_id  = #{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/FactorControlMapper.xml b/multi-system/src/main/resources/mapper/system/FactorControlMapper.xml
new file mode 100644
index 0000000..c0af744
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/FactorControlMapper.xml
@@ -0,0 +1,68 @@
+<?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.FactorControlMapper">
+
+    <select id="selectFactorControlList" resultType="com.gkhy.exam.system.domain.FactorControl">
+
+        SELECT
+            fc.`id`,
+            fc.`company_id`,
+            sc.`name` as company_name,
+            fd.dept_id,
+            sd.`dept_name`,
+            fc.`factor_discern_id`,
+            fd.`year`,
+            fc.`number`,
+            fc.`frequency`,
+            fc.`fiction_id`,
+            su1.`name` as fiction_name,
+            fc.`check_id`,
+            su2.`name` as check_name,
+            fc.`ratify_id`,
+            su3.`name` as ratify_name,
+            fc.`del_flag`,
+            fc.`create_by`,
+            fc.`create_time`,
+            fc.`update_by`,
+            fc.`update_time`
+        FROM
+            `factor_control` fc
+                LEFT JOIN factor_discern fd on fc.factor_discern_id = fd.id
+                LEFT JOIN sys_company sc ON fc.company_id = sc.id
+                LEFT JOIN sys_user su1 ON fc.fiction_id = su1.id
+                LEFT JOIN sys_user su2 ON fc.check_id = su2.id
+                LEFT JOIN sys_user su3 ON fc.ratify_id = su3.id
+                left join  sys_dept sd on fd.dept_id = sd.dept_id
+        WHERE
+            fc.del_flag = 1
+          <if test="companyId!=null">
+              AND fc.company_id = #{companyId}
+          </if>
+          <if test="year!=null and year!=''">
+              and fd.`year` = #{year}
+          </if>
+        ORDER BY
+            fc.create_time DESC
+    </select>
+    <select id="selectFactorDiscernId" resultType="com.gkhy.exam.system.domain.FactorControl">
+        SELECT
+        `id`,
+        `company_id`,
+        `factor_discern_id`,
+        `number`,
+        `frequency`,
+        `fiction_id`,
+        `check_id`,
+        `ratify_id`,
+        `del_flag`,
+        `create_by`,
+        `create_time`,
+        `update_by`,
+        `update_time`
+        FROM
+        `factor_control`
+        WHERE
+        del_flag = 1
+        and factor_discern_id = #{factorDiscernId}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/FactorDiscernlMapper.xml b/multi-system/src/main/resources/mapper/system/FactorDiscernlMapper.xml
new file mode 100644
index 0000000..f2df83a
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/FactorDiscernlMapper.xml
@@ -0,0 +1,72 @@
+<?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.FactorDiscernMapper">
+
+    <select id="selectFactorDiscernList" resultType="com.gkhy.exam.system.domain.FactorDiscern">
+        SELECT
+            fd.`id`,
+            fd.`company_id`,
+            sc.`name` as company_name,
+            fd.`dept_id`,
+            sd.`dept_name`,
+            fd.`year`,
+            fd.`fiction_id`,
+            su1.`name` as fiction_name,
+            fd.`check_id`,
+            su2.`name` as check_name,
+            fd.`ratify_id`,
+            su3.`name` as ratify_name,
+            fd.`fiction_time`,
+            fd.`del_flag`,
+            fd.`create_by`,
+            fd.`create_time`,
+            fd.`update_by`,
+            fd.`update_time`
+        FROM
+            `factor_discern` fd
+                LEFT JOIN sys_company sc ON fd.company_id = sc.id
+                LEFT JOIN sys_user su1 ON fd.fiction_id = su1.id
+                LEFT JOIN sys_user su2 ON fd.check_id = su2.id
+                LEFT JOIN sys_user su3 ON fd.ratify_id = su3.id
+                LEFT JOIN sys_dept sd ON fd.dept_id = sd.dept_id
+        WHERE
+            fd.del_flag = 1
+          <if test="companyId!=null">
+              AND fd.company_id = #{companyId}
+          </if>
+        <if test="year!=null and year!=''">
+            and fd.year = #{year}
+        </if>
+        ORDER BY
+            fd.create_time DESC
+    </select>
+    <select id="selectByCompanyIdAndDeptId" resultType="com.gkhy.exam.system.domain.FactorDiscern">
+        SELECT
+        `id`,
+        `company_id`,
+        `dept_id`,
+        `year`,
+        `fiction_id`,
+        `check_id`,
+        `ratify_id`,
+        `fiction_time`,
+        `del_flag`,
+        `create_by`,
+        `create_time`,
+        `update_by`,
+        `update_time`
+        FROM
+        `factor_discern`
+        WHERE
+        del_flag = 1
+        <if test="companyId!=null">
+            AND company_id = #{companyId}
+        </if>
+        <if test="deptId!=null">
+            and dept_id = #{deptId}
+        </if>
+        <if test="year!=null and year!=''">
+            and `year` = #{year}
+        </if>
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/PositionJobMapper.xml b/multi-system/src/main/resources/mapper/system/PositionJobMapper.xml
new file mode 100644
index 0000000..5af0a39
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/PositionJobMapper.xml
@@ -0,0 +1,33 @@
+<?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.PositionJobMapper">
+
+    <select id="selectPositionJobList" resultType="com.gkhy.exam.system.domain.PositionJob">
+        SELECT
+            pj.`id`,
+            pj.`company_id`,
+            sc.`name` AS company_name,
+            pj.`position_name`,
+            pj.`superiors`,
+            pj.`subordinate`,
+            pj.`nature`,
+            pj.`permission`,
+            pj.`requirements`,
+            pj.`duty`,
+            pj.`del_flag`,
+            pj.`create_by`,
+            pj.`create_time`,
+            pj.`update_by`,
+            pj.`update_time`
+        FROM
+            `position_job` pj
+                LEFT JOIN sys_company sc ON pj.company_id = sc.id
+        WHERE
+            pj.del_flag = 1
+          <if test="companyId!=null">
+              AND pj.company_id = #{companyId}
+          </if>
+        ORDER BY
+            pj.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/RiskContentMapper.xml b/multi-system/src/main/resources/mapper/system/RiskContentMapper.xml
new file mode 100644
index 0000000..6abdb39
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/RiskContentMapper.xml
@@ -0,0 +1,96 @@
+<?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.RiskContentMapper">
+    <insert id="insertRiskContentMess">
+        INSERT INTO `risk_content_mess` ( `risk_content_id`, `risk_event`, `risk_consequence`, `severity`, `frequency`, `rpn`, `risk_level`, `measures`, `charge_user`, `monitor_time`, `review` )
+        VALUES
+            <foreach collection="riskContentMesses" index="index" separator="," item="item">
+                (
+                #{item.riskContentId},
+                #{item.riskEvent},
+                #{item.riskConsequence},
+                #{item.severity},
+                #{item.frequency},
+                #{item.rpn},
+                #{item.riskLevel},
+                #{item.measures},
+                #{item.chargeUser},
+                #{item.monitorTime},
+                #{item.review})
+            </foreach>
+
+    </insert>
+    <update id="updateContentMess">
+        <foreach collection="riskContentMesses" item="item" index="index" separator=";">
+            UPDATE `risk_content_mess`
+            SET
+                <if test="item.riskContentId!=null">
+                    `risk_content_id` = #{item.riskContentId},
+                </if>
+                <if test="item.riskEvent!=null and item.riskEvent!=''">
+                    `risk_event` = #{item.riskEvent},
+                </if>
+                <if test="item.riskConsequence!=null and item.riskConsequence!=''">
+                    `risk_consequence` = #{item.riskConsequence},
+                </if>
+                <if test="item.severity!=null and item.severity!=''">
+                    `severity` = #{item.severity},
+                </if>
+                <if test="item.frequency!=null and item.frequency!=''">
+                    `frequency` = #{item.frequency},
+                </if>
+                <if test="item.rpn!=null and item.rpn!=''">
+                    `rpn` = #{item.rpn},
+                </if>
+                <if test="item.riskLevel!=null and item.riskLevel!=''">
+                    `risk_level` = #{item.riskLevel},
+                </if>
+                <if test="item.measures!=null and item.measures!=''">
+                    `measures` = #{item.measures},
+                </if>
+                <if test="item.chargeUser!=null and item.chargeUser!=''">
+                    `charge_user` = #{item.chargeUser}
+                </if>
+                <if test="item.monitorTime!=null and item.monitorTime!=''">
+                    ,`monitor_time` = #{item.monitorTime}
+                </if>
+                <if test="item.review!=null and item.review!=''">
+                    ,`review` = #{item.review}
+                </if>
+            WHERE
+            `id` = #{item.id}
+        </foreach>
+    </update>
+    <delete id="deletedByManageId">
+        delete from risk_content where risk_manage_id = #{id}
+    </delete>
+
+    <select id="selectRiskContent" resultType="com.gkhy.exam.system.domain.RiskContent">
+        SELECT
+            `id`,
+            `risk_manage_id`,
+            `process`
+        FROM
+            `risk_content`
+        WHERE
+            risk_manage_id = #{id}
+    </select>
+    <select id="selectContentMess" resultType="com.gkhy.exam.system.domain.RiskContentMess">
+        SELECT
+            `id`,
+            `risk_content_id`,
+            `risk_event`,
+            `risk_consequence`,
+            `severity`,
+            `frequency`,
+            `rpn`,
+            `risk_level`,
+            `measures`,
+            `charge_user`,
+            `monitor_time`,
+            `review`
+        FROM
+            `risk_content_mess`
+        WHERE risk_content_id = #{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/RiskManageMapper.xml b/multi-system/src/main/resources/mapper/system/RiskManageMapper.xml
new file mode 100644
index 0000000..79df6f8
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/RiskManageMapper.xml
@@ -0,0 +1,63 @@
+<?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.RiskManageMapper">
+
+    <select id="selectRiskManageList" resultType="com.gkhy.exam.system.domain.RiskManage">
+        SELECT
+            rm.`id`,
+            rm.`company_id`,
+            sc.`name` AS company_name,
+            rm.`dept_id`,
+            sd.dept_name,
+            rm.`year`,
+            rm.`document`,
+            rm.`fiction_id`,
+            su1.`name` AS fiction_name,
+            rm.`check_id`,
+            su2.`name` AS check_name,
+            rm.`ratify_id`,
+            su3.`name` AS ratify_name,
+            rm.`del_flag`,
+            rm.`create_by`,
+            rm.`create_time`,
+            rm.`update_by`,
+            rm.`update_time`
+        FROM
+            `risk_manage` rm
+                LEFT JOIN sys_company sc ON rm.company_id = sc.id
+                LEFT JOIN sys_user su1 ON rm.fiction_id = su1.id
+                LEFT JOIN sys_user su2 ON rm.check_id = su2.id
+                LEFT JOIN sys_user su3 ON rm.ratify_id = su3.id
+                LEFT JOIN sys_dept sd ON rm.dept_id = sd.dept_id
+        WHERE
+            rm.del_flag = 1
+        <if test="companyId!=null">
+            and rm.company_id =#{companyId}
+        </if>
+        <if test="year!=null and year!=''">
+            and rm.`year` = #{year}
+        </if>
+        ORDER BY
+            rm.create_time ASC
+    </select>
+    <select id="selectManageList" resultType="com.gkhy.exam.system.domain.RiskManage">
+        SELECT
+            `id`,
+            `company_id`,
+            `dept_id`,
+            `year`,
+            `document`,
+            `fiction_id`,
+            `check_id`,
+            `ratify_id`,
+            `del_flag`,
+            `create_by`,
+            `create_time`,
+            `update_by`,
+            `update_time`
+        FROM
+            `risk_manage`
+        WHERE del_flag = 1
+        and company_id = #{companyId} and `year` = #{year} and dept_id = #{deptId}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/RiskMonitorMapper.xml b/multi-system/src/main/resources/mapper/system/RiskMonitorMapper.xml
new file mode 100644
index 0000000..a699eb5
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/RiskMonitorMapper.xml
@@ -0,0 +1,63 @@
+<?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.RiskMonitorMapper">
+
+    <select id="selectMonitorList" resultType="com.gkhy.exam.system.domain.RiskMonitor">
+        SELECT
+            rm.`id`,
+            rm2.document,
+            rm.`company_id`,
+            sc.`name` as company_name,
+            rm2.dept_id,
+            sd.dept_name,
+            rm2.`year`,
+            rm.`risk_manage_id`,
+            rm.`fiction_id`,
+            su1.`name` as fiction_name,
+            rm.`check_id`,
+            su2.`name` as check_name,
+            rm.`ratify_id`,
+            su3.`name` as ratify_name,
+            rm.`check_time`,
+            rm.`del_flag`,
+            rm.`create_by`,
+            rm.`create_time`,
+            rm.`update_by`,
+            rm.`update_time`
+        FROM
+            `risk_monitor` rm
+                LEFT JOIN risk_manage rm2 on rm.risk_manage_id = rm2.id
+                LEFT JOIN sys_company sc ON rm.company_id = sc.id
+                LEFT JOIN sys_user su1 ON rm.fiction_id = su1.id
+                LEFT JOIN sys_user su2 ON rm.check_id = su2.id
+                LEFT JOIN sys_user su3 ON rm.ratify_id = su3.id
+                LEFT JOIN sys_dept sd ON rm2.dept_id = sd.dept_id
+        WHERE rm.del_flag = 1
+        <if test="companyId!=null">
+            and rm.company_id =#{companyId}
+        </if>
+        <if test="year!=null and year!=''">
+            and rm2.`year` = #{year}
+        </if>
+        ORDER BY
+            rm.create_time ASC
+    </select>
+    <select id="selectMonitor" resultType="com.gkhy.exam.system.domain.RiskMonitor">
+        SELECT
+            `id`,
+            `company_id`,
+            `risk_manage_id`,
+            `fiction_id`,
+            `check_id`,
+            `ratify_id`,
+            `check_time`,
+            `del_flag`,
+            `create_by`,
+            `create_time`,
+            `update_by`,
+            `update_time`
+        FROM
+            `risk_monitor`
+        WHERE del_flag = 1 and risk_manage_id = #{riskManageId}
+    </select>
+</mapper>

--
Gitblit v1.9.2