From 70de1a15aa975f29adc9e463673001b68cd7ab84 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期五, 10 十月 2025 10:27:59 +0800
Subject: [PATCH] 新增

---
 multi-system/src/main/resources/mapper/system/QualityEconomyMapper.xml                                  |   57 +
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityEconomyController.java              |   70 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationAnalyseMapper.java          |   19 
 multi-system/src/main/java/com/gkhy/exam/system/service/PerformanceEvaluationService.java               |   17 
 multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationInsideService.java            |   16 
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/ContinuousImproveController.java           |   74 ++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImprovePlanMapper.java                 |   17 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/PerformanceEvaluationServiceImpl.java      |  132 +++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityEconomyMapper.java                        |   14 
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PerformanceEvaluationController.java       |   75 ++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationTypeMapper.java             |   18 
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityInformationController.java          |  128 +++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationInsideMapper.java              |   12 
 multi-system/src/main/resources/mapper/system/PerformanceEvaluationMapper.xml                           |   46 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java                     |   14 
 multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationAnalyse.java                |   54 +
 multi-system/src/main/resources/mapper/system/ContinuousImprovePlanMapper.xml                           |   32 
 multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprove.java                           |   79 ++
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ContinuousImproveServiceImpl.java          |  102 ++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationMapper.java                 |   17 
 multi-system/src/main/java/com/gkhy/exam/system/service/ContinuousImproveService.java                   |   16 
 multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluation.java                       |   91 ++
 multi-system/src/main/resources/mapper/system/QualityInformationExteriorMapper.xml                      |   46 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/QualityInformationInside.java                    |  188 +++++
 multi-system/src/main/java/com/gkhy/exam/system/service/QualityEconomyService.java                      |   16 
 multi-system/src/main/resources/mapper/system/PerformanceEvaluationAnalyseMapper.xml                    |   30 
 multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml                               |   66 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprovePlan.java                       |   55 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/QualityInformationExterior.java                  |  139 +++
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java             |   79 ++
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java |   70 +
 multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationExteriorService.java          |   16 
 multi-system/src/main/java/com/gkhy/exam/system/domain/QualityEconomy.java                              |   92 ++
 multi-system/src/main/resources/mapper/system/QualityInformationInsideMapper.xml                        |   69 +
 multi-system/src/main/resources/mapper/system/PerformanceEvaluationTypeMapper.xml                       |   26 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationInsideServiceImpl.java   |   71 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationType.java                   |   35 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationExteriorMapper.java            |   13 
 38 files changed, 2,111 insertions(+), 0 deletions(-)

diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/ContinuousImproveController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/ContinuousImproveController.java
new file mode 100644
index 0000000..e92c24a
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/ContinuousImproveController.java
@@ -0,0 +1,74 @@
+package com.gkhy.exam.admin.controller.web;
+
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.ContinuousImprove;
+import com.gkhy.exam.system.domain.QualityInformationInside;
+import com.gkhy.exam.system.service.ContinuousImproveService;
+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.web.bind.annotation.*;
+
+@Api(tags = "持续改进")
+@RestController
+@RequestMapping("/continuous")
+public class ContinuousImproveController {
+
+    @Autowired
+    private ContinuousImproveService continuousImproveService;
+
+
+
+    /**
+     * 持续改进列表
+     * @param continuousImprove
+     * @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("/inside/list")
+    public CommonResult listContinuousImprove(ContinuousImprove continuousImprove){
+        return CommonResult.success(continuousImproveService.selectContinuousImproveList(continuousImprove));
+    }
+
+    /**
+     * 持续改进新增
+     * @param continuousImprove
+     * @return
+     */
+    @ApiOperation(value = "持续改进新增")
+    @PostMapping("/inside/insert")
+    public CommonResult insertContinuousImprove(@RequestBody ContinuousImprove continuousImprove){
+        return continuousImproveService.insertContinuousImprove(continuousImprove);
+    }
+
+    /**
+     * 持续改进修改
+     * @param continuousImprove
+     * @return
+     */
+    @ApiOperation(value = "持续改进修改")
+    @PostMapping("/inside/update")
+    public CommonResult updateContinuousImprove(@RequestBody ContinuousImprove continuousImprove){
+        return continuousImproveService.updateContinuousImprove(continuousImprove);
+    }
+
+    /**
+     * 持续改进删除
+     * @param improveId
+     * @return
+     */
+    @ApiOperation(value = "持续改进删除")
+    @GetMapping("/inside/deleted")
+    public CommonResult deletedContinuousImprove(@RequestParam("improveId") Integer improveId){
+        return continuousImproveService.deletedContinuousImprove(improveId);
+    }
+
+
+
+}
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PerformanceEvaluationController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PerformanceEvaluationController.java
new file mode 100644
index 0000000..909ed9b
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PerformanceEvaluationController.java
@@ -0,0 +1,75 @@
+package com.gkhy.exam.admin.controller.web;
+
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.PerformanceEvaluation;
+import com.gkhy.exam.system.domain.QualityInformationInside;
+import com.gkhy.exam.system.service.PerformanceEvaluationService;
+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.web.bind.annotation.*;
+
+@Api(tags = "绩效评价")
+@RestController
+@RequestMapping("/performance/evaluation")
+public class PerformanceEvaluationController {
+
+
+    @Autowired
+    private PerformanceEvaluationService performanceEvaluationService;
+
+
+
+    /**
+     * 绩效评价列表
+     * @param performanceEvaluation
+     * @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("/list")
+    public CommonResult listPerformanceEvaluation(PerformanceEvaluation performanceEvaluation){
+        return CommonResult.success(performanceEvaluationService.selectPerformanceEvaluationList(performanceEvaluation));
+    }
+
+    /**
+     * 绩效评价新增
+     * @param performanceEvaluation
+     * @return
+     */
+    @ApiOperation(value = "绩效评价新增")
+    @PostMapping("/insert")
+    public CommonResult insertPerformanceEvaluation(@RequestBody PerformanceEvaluation performanceEvaluation){
+        return performanceEvaluationService.insertPerformanceEvaluation(performanceEvaluation);
+    }
+
+    /**
+     * 绩效评价修改
+     * @param performanceEvaluation
+     * @return
+     */
+    @ApiOperation(value = "绩效评价修改")
+    @PostMapping("/update")
+    public CommonResult updatePerformanceEvaluation(@RequestBody PerformanceEvaluation performanceEvaluation){
+        return performanceEvaluationService.updatePerformanceEvaluation(performanceEvaluation);
+    }
+
+    /**
+     * 绩效评价删除
+     * @param evaluationId
+     * @return
+     */
+    @ApiOperation(value = "绩效评价删除")
+    @GetMapping("/deleted")
+    public CommonResult deletedPerformanceEvaluation(@RequestParam("evaluationId") Integer evaluationId){
+        return performanceEvaluationService.deletedPerformanceEvaluation(evaluationId);
+    }
+
+
+
+}
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityEconomyController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityEconomyController.java
new file mode 100644
index 0000000..fe16927
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityEconomyController.java
@@ -0,0 +1,70 @@
+package com.gkhy.exam.admin.controller.web;
+
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.QualityEconomy;
+import com.gkhy.exam.system.domain.QualityInformationInside;
+import com.gkhy.exam.system.service.QualityEconomyService;
+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.web.bind.annotation.*;
+
+@Api(tags = "质量经济性分析")
+@RestController
+@RequestMapping("/quality/economy")
+public class QualityEconomyController {
+
+    @Autowired
+    private QualityEconomyService qualityEconomyService;
+
+
+    /**
+     * 质量经济性分析列表
+     * @param qualityEconomy
+     * @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("/list")
+    public CommonResult listQualityEconomy(QualityEconomy qualityEconomy){
+        return CommonResult.success(qualityEconomyService.selectQualityEconomyList(qualityEconomy));
+    }
+
+    /**
+     * 质量经济性分析新增
+     * @param qualityEconomy
+     * @return
+     */
+    @ApiOperation(value = "质量经济性分析新增")
+    @PostMapping("/insert")
+    public CommonResult insertQualityInformationInside(@RequestBody QualityEconomy qualityEconomy){
+        return qualityEconomyService.insertQualityEconomy(qualityEconomy);
+    }
+
+    /**
+     * 质量经济性分析修改
+     * @param qualityEconomy
+     * @return
+     */
+    @ApiOperation(value = "质量经济性分析修改")
+    @PostMapping("/update")
+    public CommonResult updateQualityInformationInside(@RequestBody QualityEconomy qualityEconomy){
+        return qualityEconomyService.updateQualityEconomy(qualityEconomy);
+    }
+
+    /**
+     * 质量经济性分析删除
+     * @param economyId
+     * @return
+     */
+    @ApiOperation(value = "质量经济性分析删除")
+    @GetMapping("/deleted")
+    public CommonResult deletedQualityInformation(@RequestParam("economyId") Integer economyId){
+        return qualityEconomyService.deletedQualityEconomy(economyId);
+    }
+}
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityInformationController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityInformationController.java
new file mode 100644
index 0000000..d69c01f
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityInformationController.java
@@ -0,0 +1,128 @@
+package com.gkhy.exam.admin.controller.web;
+
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.Quality;
+import com.gkhy.exam.system.domain.QualityInformationExterior;
+import com.gkhy.exam.system.domain.QualityInformationInside;
+import com.gkhy.exam.system.domain.req.QualityTargetReq;
+import com.gkhy.exam.system.service.QualityInformationExteriorService;
+import com.gkhy.exam.system.service.QualityInformationInsideService;
+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.web.bind.annotation.*;
+
+@Api(tags = "质量信息管理")
+@RestController
+@RequestMapping("/quality/information")
+public class QualityInformationController {
+
+    @Autowired
+    private QualityInformationInsideService qualityInformationInsideService;
+
+    @Autowired
+    private QualityInformationExteriorService qualityInformationExteriorService;
+
+
+    /**
+     * 质量信息内部列表
+     * @param qualityInformationInside
+     * @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("/inside/list")
+    public CommonResult listQualityInformationInside(QualityInformationInside qualityInformationInside){
+        return CommonResult.success(qualityInformationInsideService.selectQualityInformationInsideList(qualityInformationInside));
+    }
+
+    /**
+     * 质量信息内部新增
+     * @param qualityInformationInside
+     * @return
+     */
+    @ApiOperation(value = "质量目标新增")
+    @PostMapping("/inside/insert")
+    public CommonResult insertQualityInformationInside(@RequestBody QualityInformationInside qualityInformationInside){
+        return qualityInformationInsideService.insertQualityInformationInside(qualityInformationInside);
+    }
+
+    /**
+     * 质量信息内部修改
+     * @param qualityInformationInside
+     * @return
+     */
+    @ApiOperation(value = "质量目标修改")
+    @PostMapping("/inside/update")
+    public CommonResult updateQualityInformationInside(@RequestBody QualityInformationInside qualityInformationInside){
+        return qualityInformationInsideService.updateQualityInformationInside(qualityInformationInside);
+    }
+
+    /**
+     * 质量信息内部删除
+     * @param insideId
+     * @return
+     */
+    @ApiOperation(value = "质量目标删除")
+    @GetMapping("/inside/deleted")
+    public CommonResult deletedQualityInformation(@RequestParam("insideId") Integer insideId){
+        return qualityInformationInsideService.deletedQualityInformationInside(insideId);
+    }
+
+
+
+    /**
+     * 质量信息外部列表
+     * @param qualityInformationExterior
+     * @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("/exterior/list")
+    public CommonResult listQualityInformationExterior(QualityInformationExterior qualityInformationExterior){
+        return CommonResult.success(qualityInformationExteriorService.selectQualityInformationExteriorList(qualityInformationExterior));
+    }
+
+    /**
+     * 质量信息外部新增
+     * @param qualityInformationExterior
+     * @return
+     */
+    @ApiOperation(value = "质量信息外部新增")
+    @PostMapping("/exterior/insert")
+    public CommonResult insertQualityInformationExterior(@RequestBody QualityInformationExterior qualityInformationExterior){
+        return qualityInformationExteriorService.insertQualityInformationExterior(qualityInformationExterior);
+    }
+
+    /**
+     * 质量信息外部修改
+     * @param qualityInformationExterior
+     * @return
+     */
+    @ApiOperation(value = "质量信息外部修改")
+    @PostMapping("/exterior/update")
+    public CommonResult updateQualityInformationExterior(@RequestBody QualityInformationExterior qualityInformationExterior){
+        return qualityInformationExteriorService.updateQualityInformationExterior(qualityInformationExterior);
+    }
+
+    /**
+     * 质量信息外部删除
+     * @param exteriorId
+     * @return
+     */
+    @ApiOperation(value = "质量信息外部删除")
+    @GetMapping("/exterior/deleted")
+    public CommonResult deletedQualityInformationExterior(@RequestParam("exteriorId") Integer exteriorId){
+        return qualityInformationExteriorService.deletedQualityInformationExterior(exteriorId);
+    }
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprove.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprove.java
new file mode 100644
index 0000000..8a2a97f
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprove.java
@@ -0,0 +1,79 @@
+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("continuous_improve")
+@ApiModel(value = "continuousImprove",description = "持续改进主表")
+public class ContinuousImprove implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "年份")
+    @TableField("year")
+    private String year;
+
+    @ApiModelProperty(value = "编制")
+    @TableField("fiction_id")
+    private Integer fictionId;
+
+    @TableField(exist = false)
+    private String fictionName;
+
+    @ApiModelProperty(value = "审核")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "批准")
+    @TableField("ratify_id")
+    private Integer ratifyId;
+
+    @TableField(exist = false)
+    private String ratifyName;
+
+    @ApiModelProperty(value = "是否删除 0否  1是")
+    @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<ContinuousImprovePlan> plans;
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprovePlan.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprovePlan.java
new file mode 100644
index 0000000..305ce25
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ContinuousImprovePlan.java
@@ -0,0 +1,55 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Setter
+@Getter
+@TableName("continuous_improve_plan")
+@ApiModel(value = "continuousImprovePlan",description = "持续改进附表")
+public class ContinuousImprovePlan implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "主表id")
+    @TableField("improve_id")
+    private Integer improveId;
+
+    @ApiModelProperty(value = "改进项")
+    @TableField("items")
+    private String items;
+
+    @ApiModelProperty(value = "具体措施")
+    @TableField("measure")
+    private String measure;
+
+    @ApiModelProperty(value = "责任部门")
+    @TableField("duty_id")
+    private Integer dutyId;
+
+    @TableField(exist = false)
+    private String dutyName;
+
+    @ApiModelProperty(value = "完成时间")
+    @TableField("finish_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate finishTime;
+
+    @ApiModelProperty(value = "跟踪验证")
+    @TableField("verify")
+    private String verify;
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluation.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluation.java
new file mode 100644
index 0000000..db8dafa
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluation.java
@@ -0,0 +1,91 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Setter
+@Getter
+@TableName("performance_evaluation")
+@ApiModel(value = "performanceEvaluation",description = "持续改进表")
+public class PerformanceEvaluation implements Serializable {
+
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "绩效评价表名称")
+    @TableField("evaluate_name")
+    private String evaluateName;
+
+    @ApiModelProperty(value = "编号")
+    @TableField("number")
+    private String number;
+
+    @ApiModelProperty(value = "内容")
+    @TableField("content")
+    private String content;
+
+    @ApiModelProperty(value = "编制人")
+    @TableField("fiction_id")
+    private Integer fictionId;
+
+    @TableField(exist = false)
+    private String fictionName;
+
+    @ApiModelProperty(value = "编制日期")
+    @TableField("fiction_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate fictionTime;
+
+    @ApiModelProperty(value = "审核人")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "审核人日期")
+    @TableField("check_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate checkTime;
+
+    @ApiModelProperty(value = "是否删除 0否  1是")
+    @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<PerformanceEvaluationType> types;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationAnalyse.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationAnalyse.java
new file mode 100644
index 0000000..f409920
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationAnalyse.java
@@ -0,0 +1,54 @@
+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("performance_evaluation_analyse")
+@ApiModel(value = "performanceEvaluationAnalyse",description = "持续改进附表表")
+public class PerformanceEvaluationAnalyse implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "主表id")
+    @TableField("type_id")
+    private Integer typeId;
+
+    @ApiModelProperty(value = "内容")
+    @TableField("content")
+    private String content;
+
+    @ApiModelProperty(value = "目的")
+    @TableField("purpose")
+    private String purpose;
+
+    @ApiModelProperty(value = "时机")
+    @TableField("opportunity")
+    private String opportunity;
+
+    @ApiModelProperty(value = "检测范围/对象")
+    @TableField("scope")
+    private String scope;
+
+    @ApiModelProperty(value = "方式及取得绩效")
+    @TableField("score")
+    private String score;
+
+    @ApiModelProperty(value = "责任部门")
+    @TableField("dept_id")
+    private Integer deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationType.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationType.java
new file mode 100644
index 0000000..7de361c
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/PerformanceEvaluationType.java
@@ -0,0 +1,35 @@
+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("performance_evaluation_type")
+@ApiModel(value = "performanceEvaluationType",description = "持续改进表类型")
+public class PerformanceEvaluationType implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "主表id")
+    @TableField("evaluation_id")
+    private Integer evaluationId;
+
+    @ApiModelProperty(value = "类型1内部  2外部")
+    @TableField("type")
+    private Integer type;
+
+    private List<PerformanceEvaluationAnalyse> analyses;
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityEconomy.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityEconomy.java
new file mode 100644
index 0000000..a24b9b0
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityEconomy.java
@@ -0,0 +1,92 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+
+@Setter
+@Getter
+@TableName("quality_economy")
+@ApiModel(value = "QualityEconomy",description = "质量经济性分析表")
+public class QualityEconomy implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "年份")
+    @TableField("year")
+    private String year;
+
+    @ApiModelProperty(value = "基本情况")
+    @TableField("basic")
+    private String basic;
+
+    @ApiModelProperty(value = "综合分析")
+    @TableField("synthesize")
+    private String synthesize;
+
+    @ApiModelProperty(value = "内外部损失")
+    @TableField("damage")
+    private String damage;
+
+    @ApiModelProperty(value = "纠正措施")
+    @TableField("measure")
+    private String measure;
+
+    @ApiModelProperty(value = "分析结果")
+    @TableField("analysis")
+    private String analysis;
+
+    @ApiModelProperty(value = "改进建议")
+    @TableField("suggest")
+    private String suggest;
+
+    @ApiModelProperty(value = "部门")
+    @TableField("duty_id")
+    private Integer dutyId;
+
+    @TableField(exist = false)
+    private String dutyName;
+
+    @ApiModelProperty(value = "日期")
+    @TableField("duty_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate dutyTime;
+
+    @ApiModelProperty(value = "是否删除 0否  1是")
+    @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/QualityInformationExterior.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityInformationExterior.java
new file mode 100644
index 0000000..ba788fb
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityInformationExterior.java
@@ -0,0 +1,139 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Setter
+@Getter
+@TableName("quality_information_exterior")
+@ApiModel(value = "qualityInformationExterior",description = "质量信息外部")
+public class QualityInformationExterior implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "反馈单名称")
+    @TableField("feed_from")
+    private String feedFrom;
+
+    @ApiModelProperty(value = "编号")
+    @TableField("number")
+    private String number;
+
+    @ApiModelProperty(value = "产品名称")
+    @TableField("product_name")
+    private String productName;
+
+    @ApiModelProperty(value = "制造号")
+    @TableField("make_num")
+    private String makeNum;
+
+    @ApiModelProperty(value = "提供单位")
+    @TableField("offer_unit")
+    private String offerUnit;
+
+    @ApiModelProperty(value = "提供日期")
+    @TableField("offer_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate offerTime;
+
+    @ApiModelProperty(value = "提供方式 1信函  2电话 3走访")
+    @TableField("offer_method")
+    private String offerMethod;
+
+    @ApiModelProperty(value = "型号")
+    @TableField("model")
+    private String model;
+
+    @ApiModelProperty(value = "公司编号")
+    @TableField("com_num")
+    private String comNum;
+
+    @ApiModelProperty(value = "反馈信息描述")
+    @TableField("feed_information")
+    private String feedInformation;
+
+    @ApiModelProperty(value = "责任单位意见")
+    @TableField("duty_mess")
+    private String dutyMess;
+
+    @ApiModelProperty(value = "综合办公室签名")
+    @TableField("general_sign")
+    private String generalSign;
+
+    @ApiModelProperty(value = "签名日期")
+    @TableField("general_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate generalTime;
+
+    @ApiModelProperty(value = "计划意见")
+    @TableField("plan_mess")
+    private String planMess;
+
+    @ApiModelProperty(value = "生产技术部签名")
+    @TableField("product_sign")
+    private String productSign;
+
+    @ApiModelProperty(value = "生产技术部签名日期")
+    @TableField("product_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate productTime;
+
+    @ApiModelProperty(value = "处置结果")
+    @TableField("dispose_mess")
+    private String disposeMess;
+
+    @ApiModelProperty(value = "处置人签名")
+    @TableField("dispose_sign")
+    private String disposeSign;
+
+    @ApiModelProperty(value = "处置人签名日期")
+    @TableField("dispose_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate disposeTime;
+
+    @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/QualityInformationInside.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityInformationInside.java
new file mode 100644
index 0000000..b45a13b
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityInformationInside.java
@@ -0,0 +1,188 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@Setter
+@Getter
+@TableName("quality_information_inside")
+@ApiModel(value = "qualityInformationInside",description = "质量信息内部")
+public class QualityInformationInside implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "反馈单名称")
+    @TableField("feed_form")
+    private String feedForm;
+
+    @ApiModelProperty(value = "编号")
+    @TableField("number")
+    private String number;
+
+    @ApiModelProperty(value = "产品名称")
+    @TableField("product_name")
+    private String productName;
+
+    @ApiModelProperty(value = "产品型号")
+    @TableField("product_model")
+    private String productModel;
+
+    @ApiModelProperty(value = "产品公司编号")
+    @TableField("product_number")
+    private String productNumber;
+
+    @ApiModelProperty(value = "责任单位")
+    @TableField("duty_unit_id")
+    private Integer dutyUnitId;
+
+    @TableField(exist = false)
+    private String dutyUnitName;
+
+    @ApiModelProperty(value = "产品件号")
+    @TableField("part_num")
+    private String partNum;
+
+    @ApiModelProperty(value = "反馈单位")
+    @TableField("feed_unit_id")
+    private Integer feedUnitId;
+
+    @TableField(exist = false)
+    private String  feedUnitName;
+
+    @ApiModelProperty(value = "反馈人")
+    @TableField("feed_user_id")
+    private Integer feedUserId;
+
+    @TableField(exist = false)
+    private String feedUserName;
+
+    @ApiModelProperty(value = "反馈日期")
+    @TableField("feed_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date feedTime;
+
+    @ApiModelProperty(value = "反馈问题描述")
+    @TableField("feed_question")
+    private String feedQuestion;
+
+    @ApiModelProperty(value = "处置情况概述")
+    @TableField("dispose")
+    private String dispose;
+
+    @ApiModelProperty(value = "处置人")
+    @TableField("dispose_id")
+    private Integer disposeId;
+
+    @TableField(exist = false)
+    private String disposeName;
+
+    @ApiModelProperty(value = "处置人日期")
+    @TableField("dispose_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate disposeTime;
+
+    @ApiModelProperty(value = "检验人")
+    @TableField("check_out_id")
+    private Integer checkOutId;
+
+    @TableField(exist = false)
+    private String checkOutName;
+
+    @ApiModelProperty(value = "检验人日期")
+    @TableField("check_out_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate checkOutTime;
+
+    @ApiModelProperty(value = "反馈单位复查人")
+    @TableField("review_id")
+    private Integer reviewId;
+
+    @TableField(exist = false)
+    private String reviewName;
+
+    @ApiModelProperty(value = "反馈单位复查人日期")
+    @TableField("review_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate reviewTime;
+
+    @ApiModelProperty(value = "返工工时")
+    @TableField("rework")
+    private BigDecimal rework;
+
+    @ApiModelProperty(value = "器材消耗")
+    @TableField("equipment")
+    private String equipment;
+
+    @ApiModelProperty(value = "延误工时")
+    @TableField("delay")
+    private BigDecimal delay;
+
+    @ApiModelProperty(value = "其他质量损伤")
+    @TableField("damage")
+    private String damage;
+
+    @ApiModelProperty(value = "检验组长")
+    @TableField("team_id")
+    private Integer teamId;
+
+    @TableField(exist = false)
+    private String teamName;
+
+    @ApiModelProperty(value = "检验组长日期")
+    @TableField("team_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate teamTime;
+
+    @ApiModelProperty(value = "责任单位领导")
+    @TableField("duty_leader_id")
+    private Integer dutyLeaderId;
+
+    @TableField(exist = false)
+    private String dutyLeaderName;
+
+    @ApiModelProperty(value = "责任单位领导日期")
+    @TableField("duty_leader_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate dutyLeaderTime;
+
+    @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/mapper/ContinuousImproveMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java
new file mode 100644
index 0000000..caac8cc
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java
@@ -0,0 +1,14 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ContinuousImprove;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ContinuousImproveMapper extends BaseMapper<ContinuousImprove> {
+    List<ContinuousImprove> selectImproveList(ContinuousImprove continuousImprove);
+
+    List<ContinuousImprove> selectByCompanyId(ContinuousImprove continuousImprove);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImprovePlanMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImprovePlanMapper.java
new file mode 100644
index 0000000..35547f5
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImprovePlanMapper.java
@@ -0,0 +1,17 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ContinuousImprovePlan;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ContinuousImprovePlanMapper extends BaseMapper<ContinuousImprovePlan> {
+    List<ContinuousImprovePlan> selectByImproveId(@Param("id") Integer id);
+
+    int insertPlans(@Param("plans") List<ContinuousImprovePlan> plans);
+
+    void deleteByImproveId(@Param("id") Integer id);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationAnalyseMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationAnalyseMapper.java
new file mode 100644
index 0000000..69b7e8e
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationAnalyseMapper.java
@@ -0,0 +1,19 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.PerformanceEvaluationAnalyse;
+import com.gkhy.exam.system.domain.PerformanceEvaluationType;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PerformanceEvaluationAnalyseMapper extends BaseMapper<PerformanceEvaluationAnalyse> {
+    List<PerformanceEvaluationAnalyse> selectByEvaluationId(@Param("id") Integer id);
+
+    int saveAnalyse(@Param("analyses") List<PerformanceEvaluationAnalyse> analyses);
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationMapper.java
new file mode 100644
index 0000000..d69a35e
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationMapper.java
@@ -0,0 +1,17 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.PerformanceEvaluation;
+import com.gkhy.exam.system.domain.PerformanceEvaluationType;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PerformanceEvaluationMapper extends BaseMapper<PerformanceEvaluation> {
+
+    List<PerformanceEvaluation> selectEvaluationList(PerformanceEvaluation performanceEvaluation);
+
+    void saveTypes(@Param("types") List<PerformanceEvaluationType> types);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationTypeMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationTypeMapper.java
new file mode 100644
index 0000000..0304ef3
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PerformanceEvaluationTypeMapper.java
@@ -0,0 +1,18 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.PerformanceEvaluationType;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PerformanceEvaluationTypeMapper extends BaseMapper<PerformanceEvaluationType> {
+
+    List<PerformanceEvaluationType> selectTypeList(@Param("id") Integer id);
+
+    int deleteByEvaluationId(@Param("id") Integer id);
+
+    int insertTypes(@Param("types") List<PerformanceEvaluationType> types);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityEconomyMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityEconomyMapper.java
new file mode 100644
index 0000000..7dd8cf8
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityEconomyMapper.java
@@ -0,0 +1,14 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.QualityEconomy;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface QualityEconomyMapper extends BaseMapper<QualityEconomy> {
+    List<QualityEconomy> selectEconomyList(QualityEconomy qualityEconomy);
+
+    List<QualityEconomy> selectByCompanyId(QualityEconomy qualityEconomy);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationExteriorMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationExteriorMapper.java
new file mode 100644
index 0000000..7abd2f2
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationExteriorMapper.java
@@ -0,0 +1,13 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.QualityInformationExterior;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface QualityInformationExteriorMapper extends BaseMapper<QualityInformationExterior> {
+    List<QualityInformationExterior> selectExteriorList(QualityInformationExterior qualityInformationExterior);
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationInsideMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationInsideMapper.java
new file mode 100644
index 0000000..d5992b8
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualityInformationInsideMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.QualityInformationInside;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface QualityInformationInsideMapper extends BaseMapper<QualityInformationInside> {
+    List<QualityInformationInside> selectInsideList(QualityInformationInside qualityInformationInside);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ContinuousImproveService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ContinuousImproveService.java
new file mode 100644
index 0000000..190fa6a
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ContinuousImproveService.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.ContinuousImprove;
+
+public interface ContinuousImproveService extends IService<ContinuousImprove> {
+    CommonPage selectContinuousImproveList(ContinuousImprove continuousImprove);
+
+    CommonResult insertContinuousImprove(ContinuousImprove continuousImprove);
+
+    CommonResult updateContinuousImprove(ContinuousImprove continuousImprove);
+
+    CommonResult deletedContinuousImprove(Integer improveId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/PerformanceEvaluationService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/PerformanceEvaluationService.java
new file mode 100644
index 0000000..786892a
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/PerformanceEvaluationService.java
@@ -0,0 +1,17 @@
+package com.gkhy.exam.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+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.system.domain.PerformanceEvaluation;
+
+public interface PerformanceEvaluationService extends IService<PerformanceEvaluation> {
+    CommonPage selectPerformanceEvaluationList(PerformanceEvaluation performanceEvaluation);
+
+    CommonResult insertPerformanceEvaluation(PerformanceEvaluation performanceEvaluation);
+
+    CommonResult updatePerformanceEvaluation(PerformanceEvaluation performanceEvaluation);
+
+    CommonResult deletedPerformanceEvaluation(Integer evaluationId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/QualityEconomyService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityEconomyService.java
new file mode 100644
index 0000000..7785a50
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityEconomyService.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.QualityEconomy;
+
+public interface QualityEconomyService extends IService<QualityEconomy> {
+    CommonPage selectQualityEconomyList(QualityEconomy qualityEconomy);
+
+    CommonResult insertQualityEconomy(QualityEconomy qualityEconomy);
+
+    CommonResult updateQualityEconomy(QualityEconomy qualityEconomy);
+
+    CommonResult deletedQualityEconomy(Integer economyId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationExteriorService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationExteriorService.java
new file mode 100644
index 0000000..2efbea6
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationExteriorService.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.QualityInformationExterior;
+
+public interface QualityInformationExteriorService extends IService<QualityInformationExterior> {
+    CommonPage selectQualityInformationExteriorList(QualityInformationExterior qualityInformationExterior);
+
+    CommonResult insertQualityInformationExterior(QualityInformationExterior qualityInformationExterior);
+
+    CommonResult updateQualityInformationExterior(QualityInformationExterior qualityInformationExterior);
+
+    CommonResult deletedQualityInformationExterior(Integer exteriorId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationInsideService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationInsideService.java
new file mode 100644
index 0000000..4bb5f59
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/QualityInformationInsideService.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.QualityInformationInside;
+
+public interface QualityInformationInsideService extends IService<QualityInformationInside> {
+    CommonPage selectQualityInformationInsideList(QualityInformationInside qualityInformationInside);
+
+    CommonResult insertQualityInformationInside(QualityInformationInside qualityInformationInside);
+
+    CommonResult updateQualityInformationInside(QualityInformationInside qualityInformationInside);
+
+    CommonResult deletedQualityInformationInside(Integer insideId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ContinuousImproveServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ContinuousImproveServiceImpl.java
new file mode 100644
index 0000000..e135a8e
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ContinuousImproveServiceImpl.java
@@ -0,0 +1,102 @@
+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.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.ContinuousImprove;
+import com.gkhy.exam.system.domain.ContinuousImprovePlan;
+import com.gkhy.exam.system.mapper.ContinuousImproveMapper;
+import com.gkhy.exam.system.mapper.ContinuousImprovePlanMapper;
+import com.gkhy.exam.system.service.ContinuousImproveService;
+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 ContinuousImproveServiceImpl extends ServiceImpl<ContinuousImproveMapper, ContinuousImprove> implements ContinuousImproveService {
+
+    @Autowired
+    private ContinuousImproveMapper continuousImproveMapper;
+
+    @Autowired
+    private ContinuousImprovePlanMapper continuousImprovePlanMapper;
+
+    @Override
+    public CommonPage selectContinuousImproveList(ContinuousImprove continuousImprove) {
+        if (!SecurityUtils.adminUser()){
+            if (continuousImprove.getCompanyId()==null){
+                throw new RuntimeException("非管理员操作,查询条件不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<ContinuousImprove> continuousImproves = continuousImproveMapper.selectImproveList(continuousImprove);
+        for (ContinuousImprove improve : continuousImproves) {
+            List<ContinuousImprovePlan> continuousImprovePlans = continuousImprovePlanMapper.selectByImproveId(improve.getId());
+            improve.setPlans(continuousImprovePlans);
+        }
+        return CommonPage.restPage(continuousImproves);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertContinuousImprove(ContinuousImprove continuousImprove) {
+        List<ContinuousImprove> continuousImproves = continuousImproveMapper.selectByCompanyId(continuousImprove);
+        if (!continuousImproves.isEmpty()){
+            return CommonResult.failed("当前企业已有相关数据");
+        }
+        List<ContinuousImprovePlan> plans = continuousImprove.getPlans();
+        continuousImprove.setCreateTime(LocalDateTime.now());
+        continuousImprove.setCreateBy(SecurityUtils.getUsername());
+        int insert = continuousImproveMapper.insert(continuousImprove);
+        if (insert>0){
+            for (ContinuousImprovePlan plan : plans) {
+                plan.setImproveId(continuousImprove.getId());
+            }
+            int i = continuousImprovePlanMapper.insertPlans(plans);
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    @Transactional
+    public CommonResult updateContinuousImprove(ContinuousImprove continuousImprove) {
+
+        List<ContinuousImprove> continuousImproves = continuousImproveMapper.selectByCompanyId(continuousImprove);
+        if (!continuousImproves.isEmpty()){
+            return CommonResult.failed("当前企业已有相关数据");
+        }
+        continuousImprove.setUpdateBy(SecurityUtils.getUsername());
+        continuousImprove.setUpdateTime(LocalDateTime.now());
+        int update = continuousImproveMapper.updateById(continuousImprove);
+        if (update>0){
+            List<ContinuousImprovePlan> plans = continuousImprove.getPlans();
+            for (ContinuousImprovePlan plan : plans) {
+                plan.setImproveId(continuousImprove.getId());
+            }
+            continuousImprovePlanMapper.deleteByImproveId(continuousImprove.getId());
+            continuousImprovePlanMapper.insertPlans(plans);
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    public CommonResult deletedContinuousImprove(Integer improveId) {
+        ContinuousImprove continuousImprove = new ContinuousImprove();
+        continuousImprove.setId(improveId);
+        continuousImprove.setUpdateTime(LocalDateTime.now());
+        continuousImprove.setUpdateBy(SecurityUtils.getUsername());
+        continuousImprove.setDelFlag(2);
+        int update = continuousImproveMapper.updateById(continuousImprove);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PerformanceEvaluationServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PerformanceEvaluationServiceImpl.java
new file mode 100644
index 0000000..ec01425
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PerformanceEvaluationServiceImpl.java
@@ -0,0 +1,132 @@
+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.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.PerformanceEvaluation;
+import com.gkhy.exam.system.domain.PerformanceEvaluationAnalyse;
+import com.gkhy.exam.system.domain.PerformanceEvaluationType;
+import com.gkhy.exam.system.mapper.PerformanceEvaluationAnalyseMapper;
+import com.gkhy.exam.system.mapper.PerformanceEvaluationMapper;
+import com.gkhy.exam.system.mapper.PerformanceEvaluationTypeMapper;
+import com.gkhy.exam.system.service.PerformanceEvaluationService;
+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 PerformanceEvaluationServiceImpl extends ServiceImpl<PerformanceEvaluationMapper, PerformanceEvaluation> implements PerformanceEvaluationService {
+
+    @Autowired
+    private PerformanceEvaluationMapper performanceEvaluationMapper;
+
+    @Autowired
+    private PerformanceEvaluationTypeMapper performanceEvaluationTypeMapper;
+
+    @Autowired
+    private PerformanceEvaluationAnalyseMapper performanceEvaluationAnalyseMapper;
+
+
+    @Override
+    public CommonPage selectPerformanceEvaluationList(PerformanceEvaluation performanceEvaluation) {
+        if (!SecurityUtils.adminUser()){
+            if (performanceEvaluation.getCompanyId()==null){
+                throw new RuntimeException("非管理员操作,查询条件不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<PerformanceEvaluation> performanceEvaluations = performanceEvaluationMapper.selectEvaluationList(performanceEvaluation);
+        for (PerformanceEvaluation evaluation : performanceEvaluations) {
+            List<PerformanceEvaluationType> performanceEvaluationTypes = performanceEvaluationTypeMapper.selectTypeList(evaluation.getId());
+            for (PerformanceEvaluationType performanceEvaluationType : performanceEvaluationTypes) {
+                List<PerformanceEvaluationAnalyse> performanceEvaluationAnalyses = performanceEvaluationAnalyseMapper.selectByEvaluationId(performanceEvaluationType.getId());
+                performanceEvaluationType.setAnalyses(performanceEvaluationAnalyses);
+            }
+            evaluation.setTypes(performanceEvaluationTypes);
+        }
+        return CommonPage.restPage(performanceEvaluations);
+    }
+
+    @Override
+    @Transactional
+    public CommonResult insertPerformanceEvaluation(PerformanceEvaluation performanceEvaluation) {
+        List<PerformanceEvaluationType> types = performanceEvaluation.getTypes();
+        performanceEvaluation.setCreateTime(LocalDateTime.now());
+        performanceEvaluation.setCreateBy(SecurityUtils.getUsername());
+        int insert = performanceEvaluationMapper.insert(performanceEvaluation);
+        ArrayList<PerformanceEvaluationAnalyse> performanceEvaluationAnalyses = new ArrayList<>();
+        if (insert>0){
+            if (types != null && !types.isEmpty()) {
+                for (PerformanceEvaluationType type : types) {
+                    type.setEvaluationId(performanceEvaluation.getId());
+                }
+                performanceEvaluationTypeMapper.insertTypes(types);
+            }
+            List<PerformanceEvaluationAnalyse> allAnalyses = types.stream()
+                    .filter(type -> type.getAnalyses() != null)
+                    .flatMap(type -> {
+                        type.getAnalyses().forEach(analysis ->
+                                analysis.setTypeId(type.getId()));
+                        return type.getAnalyses().stream();
+                    })
+                    .collect(Collectors.toList());
+
+            if (!allAnalyses.isEmpty()) {
+                performanceEvaluationAnalyseMapper.saveAnalyse(allAnalyses);
+            }
+        }
+        return CommonResult.success();
+    }
+
+    @Override
+    @Transactional
+    public CommonResult updatePerformanceEvaluation(PerformanceEvaluation performanceEvaluation) {
+        List<PerformanceEvaluationType> types = performanceEvaluation.getTypes();
+        performanceEvaluation.setUpdateBy(SecurityUtils.getUsername());
+        performanceEvaluation.setUpdateTime(LocalDateTime.now());
+        int update = performanceEvaluationMapper.updateById(performanceEvaluation);
+        if (update>0){
+            performanceEvaluationTypeMapper.deleteByEvaluationId(performanceEvaluation.getId());
+            if (types != null && !types.isEmpty()) {
+                for (PerformanceEvaluationType type : types) {
+                    type.setEvaluationId(performanceEvaluation.getId());
+                }
+                performanceEvaluationTypeMapper.insertTypes(types);
+            }
+            List<PerformanceEvaluationAnalyse> allAnalyses = types.stream()
+                    .filter(type -> type.getAnalyses() != null)
+                    .flatMap(type -> {
+                        type.getAnalyses().forEach(analysis ->
+                                analysis.setTypeId(type.getId()));
+                        return type.getAnalyses().stream();
+                    })
+                    .collect(Collectors.toList());
+
+            if (!allAnalyses.isEmpty()) {
+                performanceEvaluationAnalyseMapper.saveAnalyse(allAnalyses);
+            }
+        }
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedPerformanceEvaluation(Integer evaluationId) {
+        PerformanceEvaluation performanceEvaluation = new PerformanceEvaluation();
+        performanceEvaluation.setId(evaluationId);
+        performanceEvaluation.setDelFlag(2);
+        performanceEvaluation.setUpdateTime(LocalDateTime.now());
+        performanceEvaluation.setUpdateBy(SecurityUtils.getUsername());
+        int update = performanceEvaluationMapper.updateById(performanceEvaluation);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java
new file mode 100644
index 0000000..db40d07
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java
@@ -0,0 +1,79 @@
+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.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.QualityEconomy;
+import com.gkhy.exam.system.mapper.QualityEconomyMapper;
+import com.gkhy.exam.system.service.QualityEconomyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class QualityEconomyServiceImpl extends ServiceImpl<QualityEconomyMapper, QualityEconomy> implements QualityEconomyService {
+
+    @Autowired
+    private QualityEconomyMapper qualityEconomyMapper;
+
+    @Override
+    public CommonPage selectQualityEconomyList(QualityEconomy qualityEconomy) {
+        if (!SecurityUtils.adminUser()){
+            if (qualityEconomy.getCompanyId()==null){
+                throw new RuntimeException("非管理员操作,查询条件不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<QualityEconomy> qualityEconomies = qualityEconomyMapper.selectEconomyList(qualityEconomy);
+        return CommonPage.restPage(qualityEconomies);
+    }
+
+    @Override
+    public CommonResult insertQualityEconomy(QualityEconomy qualityEconomy) {
+        List<QualityEconomy> qualityEconomies = qualityEconomyMapper.selectByCompanyId(qualityEconomy);
+        if (!qualityEconomies.isEmpty()){
+            return CommonResult.failed("当前企业已有相关数据");
+        }
+        qualityEconomy.setCreateBy(SecurityUtils.getUsername());
+        qualityEconomy.setCreateTime(LocalDateTime.now());
+        int insert = qualityEconomyMapper.insert(qualityEconomy);
+        if (insert>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    public CommonResult updateQualityEconomy(QualityEconomy qualityEconomy) {
+        List<QualityEconomy> qualityEconomies = qualityEconomyMapper.selectByCompanyId(qualityEconomy);
+        if (!qualityEconomies.isEmpty()){
+            return CommonResult.failed("当前企业已有相关数据");
+        }
+        qualityEconomy.setUpdateBy(SecurityUtils.getUsername());
+        qualityEconomy.setUpdateTime(LocalDateTime.now());
+        int update = qualityEconomyMapper.updateById(qualityEconomy);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    public CommonResult deletedQualityEconomy(Integer economyId) {
+        QualityEconomy qualityEconomy = new QualityEconomy();
+        qualityEconomy.setId(economyId);
+        qualityEconomy.setUpdateTime(LocalDateTime.now());
+        qualityEconomy.setUpdateBy(SecurityUtils.getUsername());
+        qualityEconomy.setDelFlag(2);
+        int update = qualityEconomyMapper.updateById(qualityEconomy);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java
new file mode 100644
index 0000000..67962da
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java
@@ -0,0 +1,70 @@
+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.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.QualityInformationExterior;
+import com.gkhy.exam.system.mapper.QualityInformationExteriorMapper;
+import com.gkhy.exam.system.service.QualityInformationExteriorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class QualityInformationExteriorServiceImpl extends ServiceImpl<QualityInformationExteriorMapper, QualityInformationExterior> implements QualityInformationExteriorService {
+
+    @Autowired
+    private QualityInformationExteriorMapper qualityInformationExteriorMapper;
+
+    @Override
+    public CommonPage selectQualityInformationExteriorList(QualityInformationExterior qualityInformationExterior) {
+        if (!SecurityUtils.adminUser()){
+            if (qualityInformationExterior.getCompanyId()==null){
+                throw new RuntimeException("非管理员操作,查询条件不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<QualityInformationExterior> qualityInformationExteriors = qualityInformationExteriorMapper.selectExteriorList(qualityInformationExterior);
+        return CommonPage.restPage(qualityInformationExteriors);
+    }
+
+    @Override
+    public CommonResult insertQualityInformationExterior(QualityInformationExterior qualityInformationExterior) {
+        qualityInformationExterior.setCreateTime(LocalDateTime.now());
+        qualityInformationExterior.setCreateBy(SecurityUtils.getUsername());
+        int insert = qualityInformationExteriorMapper.insert(qualityInformationExterior);
+        if (insert>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    public CommonResult updateQualityInformationExterior(QualityInformationExterior qualityInformationExterior) {
+        qualityInformationExterior.setUpdateBy(SecurityUtils.getUsername());
+        qualityInformationExterior.setUpdateTime(LocalDateTime.now());
+        int update = qualityInformationExteriorMapper.updateById(qualityInformationExterior);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    public CommonResult deletedQualityInformationExterior(Integer exteriorId) {
+        QualityInformationExterior qualityInformationExterior = new QualityInformationExterior();
+        qualityInformationExterior.setId(exteriorId);
+        qualityInformationExterior.setUpdateBy(SecurityUtils.getUsername());
+        qualityInformationExterior.setUpdateTime(LocalDateTime.now());
+        qualityInformationExterior.setDelFlag(2);
+        int update = qualityInformationExteriorMapper.updateById(qualityInformationExterior);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationInsideServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationInsideServiceImpl.java
new file mode 100644
index 0000000..75b5b62
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationInsideServiceImpl.java
@@ -0,0 +1,71 @@
+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.utils.PageUtils;
+import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.system.domain.QualityInformationInside;
+import com.gkhy.exam.system.mapper.QualityInformationInsideMapper;
+import com.gkhy.exam.system.service.QualityInformationInsideService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class QualityInformationInsideServiceImpl extends ServiceImpl<QualityInformationInsideMapper, QualityInformationInside> implements QualityInformationInsideService {
+
+    @Autowired
+    private QualityInformationInsideMapper qualityInformationInsideMapper;
+
+
+    @Override
+    public CommonPage selectQualityInformationInsideList(QualityInformationInside qualityInformationInside) {
+        if (!SecurityUtils.adminUser()){
+            if (qualityInformationInside.getCompanyId()==null){
+                throw new RuntimeException("非管理员操作,查询条件不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<QualityInformationInside> qualityInformationInsides = qualityInformationInsideMapper.selectInsideList(qualityInformationInside);
+        return CommonPage.restPage(qualityInformationInsides);
+    }
+
+    @Override
+    public CommonResult insertQualityInformationInside(QualityInformationInside qualityInformationInside) {
+        qualityInformationInside.setCreateTime(LocalDateTime.now());
+        qualityInformationInside.setCreateBy(SecurityUtils.getUsername());
+        int insert = qualityInformationInsideMapper.insert(qualityInformationInside);
+        if (insert>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    public CommonResult updateQualityInformationInside(QualityInformationInside qualityInformationInside) {
+        qualityInformationInside.setUpdateTime(LocalDateTime.now());
+        qualityInformationInside.setUpdateBy(SecurityUtils.getUsername());
+        int update = qualityInformationInsideMapper.updateById(qualityInformationInside);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @Override
+    public CommonResult deletedQualityInformationInside(Integer insideId) {
+        QualityInformationInside qualityInformationInside = new QualityInformationInside();
+        qualityInformationInside.setId(insideId);
+        qualityInformationInside.setUpdateBy(SecurityUtils.getUsername());
+        qualityInformationInside.setUpdateTime(LocalDateTime.now());
+        qualityInformationInside.setDelFlag(2);
+        int update = qualityInformationInsideMapper.updateById(qualityInformationInside);
+        if (update>0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+}
diff --git a/multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml b/multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml
new file mode 100644
index 0000000..fb7cded
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml
@@ -0,0 +1,66 @@
+<?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.ContinuousImproveMapper">
+
+    <select id="selectImproveList" resultType="com.gkhy.exam.system.domain.ContinuousImprove">
+        SELECT
+            ci.`id`,
+            ci.`company_id`,
+            sc.`name` AS company_name,
+            ci.`year`,
+            ci.`fiction_id`,
+            su1.`name` AS fiction_name,
+            ci.`check_id`,
+            su2.`name` AS check_name,
+            ci.`ratify_id`,
+            su3.`name` AS ratify_name,
+            ci.`del_flag`,
+            ci.`create_by`,
+            ci.`create_time`,
+            ci.`update_by`,
+            ci.`update_time`
+        FROM
+            `continuous_improve` ci
+                LEFT JOIN sys_user su1 ON ci.fiction_id = su1.id
+                LEFT JOIN sys_user su2 ON ci.check_id = su2.id
+                LEFT JOIN sys_user su3 ON ci.ratify_id = su3.id
+                LEFT JOIN sys_company sc ON ci.company_id = sc.id
+        WHERE
+            ci.del_flag = 0
+            <if test="companyId!=null">
+                and ci.company_id = #{companyId}
+            </if>
+            <if test="year!=null and year != '' ">
+                and ci.`year` = #{year}
+            </if>
+        ORDER BY
+            ci.create_time DESC
+    </select>
+    <select id="selectByCompanyId" resultType="com.gkhy.exam.system.domain.ContinuousImprove">
+        SELECT
+        `id`,
+        `company_id`,
+        `year`,
+        `fiction_id`,
+        `check_id`,
+        `ratify_id`,
+        `del_flag`,
+        `create_by`,
+        `create_time`,
+        `update_by`,
+        `update_time`
+        FROM
+        `continuous_improve`
+        WHERE
+        del_flag = 0
+        <if test="companyId!=null">
+            and company_id = #{companyId}
+        </if>
+        <if test="year!=null">
+            and `year` = #{year}
+        </if>
+        <if test="id!=null">
+            and id != #{id}
+        </if>
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/ContinuousImprovePlanMapper.xml b/multi-system/src/main/resources/mapper/system/ContinuousImprovePlanMapper.xml
new file mode 100644
index 0000000..df9c548
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ContinuousImprovePlanMapper.xml
@@ -0,0 +1,32 @@
+<?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.ContinuousImprovePlanMapper">
+    <insert id="insertPlans">
+        INSERT INTO `continuous_improve_plan` (`improve_id`, `items`, `measure`, `duty_id`, `finish_time`, `verify` )
+        VALUES
+            <foreach collection="plans" separator="," item="item">
+                ( #{item.improveId}, #{item.items}, #{item.measure}, #{item.dutyId}, #{item.finishTime}, #{item.verify} )
+            </foreach>
+
+    </insert>
+    <delete id="deleteByImproveId">
+        delete from continuous_improve_plan where improve_id = #{id}
+    </delete>
+
+    <select id="selectByImproveId" resultType="com.gkhy.exam.system.domain.ContinuousImprovePlan">
+        SELECT
+            cip.`id`,
+            cip.`improve_id`,
+            cip.`items`,
+            cip.`measure`,
+            cip.`duty_id`,
+            sd.`dept_name` as duty_name,
+            cip.`finish_time`,
+            cip.`verify`
+        FROM
+            `continuous_improve_plan` cip
+                LEFT JOIN sys_dept sd ON cip.duty_id = sd.dept_id
+        WHERE
+            cip.improve_id = #{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/PerformanceEvaluationAnalyseMapper.xml b/multi-system/src/main/resources/mapper/system/PerformanceEvaluationAnalyseMapper.xml
new file mode 100644
index 0000000..eebcb64
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/PerformanceEvaluationAnalyseMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.exam.system.mapper.PerformanceEvaluationAnalyseMapper">
+
+    <insert id="saveAnalyse">
+        INSERT INTO `performance_evaluation_analyse` (`type_id`, `content`, `purpose`, `opportunity`, `scope`, `score`, `dept_id` )
+        VALUES
+            <foreach collection="analyses" item="item"  separator=",">
+                (#{item.typeId},#{item.content},#{item.purpose},#{item.opportunity},#{item.scope},#{item.score},#{item.deptId})
+            </foreach>
+
+    </insert>
+
+    <select id="selectByEvaluationId" resultType="com.gkhy.exam.system.domain.PerformanceEvaluationAnalyse">
+        SELECT
+            pea.`id`,
+            pea.`type_id`,
+            pea.`content`,
+            pea.`purpose`,
+            pea.`opportunity`,
+            pea.`scope`,
+            pea.`score`,
+            pea.`dept_id`,
+            sd.`dept_name`
+        FROM
+            `performance_evaluation_analyse` pea
+                LEFT JOIN sys_dept sd on pea.dept_id = sd.dept_id
+        WHERE type_id = #{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/PerformanceEvaluationMapper.xml b/multi-system/src/main/resources/mapper/system/PerformanceEvaluationMapper.xml
new file mode 100644
index 0000000..3d7c051
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/PerformanceEvaluationMapper.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.PerformanceEvaluationMapper">
+    <insert id="saveTypes">
+        INSERT INTO `performance_evaluation_type` ( `evaluation_id`, `type` )
+        VALUES
+            <foreach collection="types" item="item" separator=",">
+                (  #{item.evaluationId}, #{item.type} )
+            </foreach>
+
+
+    </insert>
+
+    <select id="selectEvaluationList" resultType="com.gkhy.exam.system.domain.PerformanceEvaluation">
+        SELECT
+            pe.`id`,
+            pe.`company_id`,
+            sc.`name` as company_name,
+            pe.`evaluate_name`,
+            pe.`number`,
+            pe.`content`,
+            pe.`fiction_id`,
+            su1.`name` as fiction_name,
+            pe.`fiction_time`,
+            pe.`check_id`,
+            su2.`name` as check_name,
+            pe.`check_time`,
+            pe.`del_flag`,
+            pe.`create_by`,
+            pe.`create_time`,
+            pe.`update_by`,
+            pe.`update_time`
+        FROM
+            `performance_evaluation` pe
+                LEFT JOIN sys_user su1 ON pe.fiction_id = su1.id
+                LEFT JOIN sys_user su2 ON pe.check_id = su2.id
+                LEFT JOIN sys_company sc ON pe.company_id = sc.id
+        WHERE
+            pe.del_flag = 0
+            <if test="companyId!=null">
+                and pe.company_id = #{companyId}
+            </if>
+        ORDER BY
+            pe.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/PerformanceEvaluationTypeMapper.xml b/multi-system/src/main/resources/mapper/system/PerformanceEvaluationTypeMapper.xml
new file mode 100644
index 0000000..cc1c869
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/PerformanceEvaluationTypeMapper.xml
@@ -0,0 +1,26 @@
+<?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.PerformanceEvaluationTypeMapper">
+    <insert id="insertTypes" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO `performance_evaluation_type` ( `evaluation_id`, `type` )
+        VALUES
+            <foreach collection="types" item="item" separator=",">
+                (  #{item.evaluationId}, #{item.type} )
+            </foreach>
+    </insert>
+
+    <delete id="deleteByEvaluationId">
+        delete from performance_evaluation_type where evaluation_id = #{id}
+    </delete>
+
+    <select id="selectTypeList" resultType="com.gkhy.exam.system.domain.PerformanceEvaluationType">
+
+        SELECT
+            `id`,
+            `evaluation_id`,
+            `type`
+        FROM
+            `performance_evaluation_type`
+        where evaluation_id = #{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/QualityEconomyMapper.xml b/multi-system/src/main/resources/mapper/system/QualityEconomyMapper.xml
new file mode 100644
index 0000000..25c41ab
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/QualityEconomyMapper.xml
@@ -0,0 +1,57 @@
+<?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.QualityEconomyMapper">
+
+    <select id="selectEconomyList" resultType="com.gkhy.exam.system.domain.QualityEconomy">
+        SELECT
+            qe.`id`,
+            qe.`company_id`,
+            sc.`name` AS company_name,
+            qe.`year`,
+            qe.`basic`,
+            qe.`synthesize`,
+            qe.`damage`,
+            qe.`measure`,
+            qe.`analysis`,
+            qe.`suggest`,
+            qe.`duty_id`,
+            sd.`dept_name` as duty_name,
+            qe.`duty_time`,
+            qe.`del_flag`,
+            qe.`create_by`,
+            qe.`create_time`,
+            qe.`update_by`,
+            qe.`update_time`
+        FROM
+            `quality_economy` qe
+                LEFT JOIN sys_company sc ON qe.company_id = sc.id
+                LEFT JOIN sys_dept sd ON qe.duty_id = sd.dept_id
+        WHERE
+            qe.del_flag = 0
+            <if test="companyId!=null">
+                and qe.company_id = #{companyId}
+            </if>
+            <if test="year!=null">
+                and qe.`year` = #{year}
+            </if>
+        ORDER BY
+            qe.create_time DESC
+    </select>
+    <select id="selectByCompanyId" resultType="com.gkhy.exam.system.domain.QualityEconomy">
+        SELECT
+            *
+        FROM
+            `quality_economy`
+        WHERE
+            del_flag = 0
+        <if test="companyId!=null">
+            and company_id = #{companyId}
+        </if>
+        <if test="year!=null and year != '' ">
+            and `year` = #{year}
+        </if>
+        <if test="id!=null">
+            and id != #{id}
+        </if>
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/QualityInformationExteriorMapper.xml b/multi-system/src/main/resources/mapper/system/QualityInformationExteriorMapper.xml
new file mode 100644
index 0000000..cbccd14
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/QualityInformationExteriorMapper.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.QualityInformationExteriorMapper">
+
+
+    <select id="selectExteriorList" resultType="com.gkhy.exam.system.domain.QualityInformationExterior">
+        SELECT
+            qie.`id`,
+            qie.`company_id`,
+            sc.`name` AS company_name,
+            qie.`feed_from`,
+            qie.`number`,
+            qie.`product_name`,
+            qie.`make_num`,
+            qie.`offer_unit`,
+            qie.`offer_time`,
+            qie.`offer_method`,
+            qie.`model`,
+            qie.`com_num`,
+            qie.`feed_information`,
+            qie.`duty_mess`,
+            qie.`general_sign`,
+            qie.`general_time`,
+            qie.`plan_mess`,
+            qie.`product_sign`,
+            qie.`product_time`,
+            qie.`dispose_mess`,
+            qie.`dispose_sign`,
+            qie.`dispose_time`,
+            qie.`del_flag`,
+            qie.`create_by`,
+            qie.`create_time`,
+            qie.`update_by`,
+            qie.`update_time`
+        FROM
+            `quality_information_exterior` qie
+                LEFT JOIN sys_company sc ON qie.company_id = sc.id
+        WHERE
+            qie.del_flag = 0
+            <if test="companyId != null">
+                and qie.company_id =#{companyId}
+            </if>
+        ORDER BY
+            qie.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/QualityInformationInsideMapper.xml b/multi-system/src/main/resources/mapper/system/QualityInformationInsideMapper.xml
new file mode 100644
index 0000000..ac53923
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/QualityInformationInsideMapper.xml
@@ -0,0 +1,69 @@
+<?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.QualityInformationInsideMapper">
+
+
+    <select id="selectInsideList" resultType="com.gkhy.exam.system.domain.QualityInformationInside">
+        SELECT
+            qi.`id`,
+            qi.`company_id`,
+            sc.`name` as company_name,
+            qi.`feed_form`,
+            qi.`number`,
+            qi.`product_name`,
+            qi.`product_model`,
+            qi.`product_number`,
+            qi.`duty_unit_id`,
+            sd1.`dept_name` as duty_unit_name,
+            qi.`part_num`,
+            qi.`feed_unit_id`,
+            sd2.`dept_name` as feed_unit_name,
+            qi.`feed_user_id`,
+            su1.`name` as feed_user_name,
+            qi.`feed_time`,
+            qi.`feed_question`,
+            qi.`dispose`,
+            qi.`dispose_id`,
+            su2.`name` as dispose_name,
+            qi.`dispose_time`,
+            qi.`check_out_id`,
+            su3.`name` as check_out_name,
+            qi.`check_out_time`,
+            qi.`review_id`,
+            su4.`name` as review_name,
+            qi.`review_time`,
+            qi.`rework`,
+            qi.`equipment`,
+            qi.`delay`,
+            qi.`damage`,
+            qi.`team_id`,
+            su5.`name` as team_name,
+            qi.`team_time`,
+            qi.`duty_leader_id`,
+            su6.`name` as duty_leader_name,
+            qi.`duty_leader_time`,
+            qi.`del_flag`,
+            qi.`create_by`,
+            qi.`create_time`,
+            qi.`update_by`,
+            qi.`update_time`
+        FROM
+            `quality_information_inside` qi
+                LEFT JOIN sys_user su1 ON qi.feed_user_id = su1.id
+                LEFT JOIN sys_user su2 ON qi.dispose_id = su2.id
+                LEFT JOIN sys_user su3 ON qi.check_out_id = su3.id
+                LEFT JOIN sys_user su4 ON qi.review_id = su4.id
+                LEFT JOIN sys_user su5 ON qi.team_id = su5.id
+                LEFT JOIN sys_user su6 ON qi.duty_leader_id = su6.id
+                LEFT JOIN sys_company sc ON qi.company_id = sc.id
+                LEFT JOIN sys_dept sd1 ON qi.duty_unit_id = sd1.dept_id
+                LEFT JOIN sys_dept sd2 ON qi.feed_unit_id = sd2.dept_id
+        WHERE
+            qi.del_flag = 0
+            <if test="companyId!=null">
+                and qi.company_id = #{companyId}
+            </if>
+        ORDER BY
+            qi.create_time DESC
+    </select>
+</mapper>

--
Gitblit v1.9.2