From c1628ae5526ffae9cb12e70778cac8195c405382 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期一, 18 八月 2025 09:28:21 +0800
Subject: [PATCH] 新增功能

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionRecordServiceImpl.java        |   78 +
 multi-system/src/main/java/com/gkhy/exam/system/service/QualitySystemPlanService.java                |   16 
 multi-system/src/main/resources/mapper/system/InspectionRecordMapper.xml                             |   33 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualReportMapper.java                       |   12 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/AnnualReportServiceImpl.java            |   63 +
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/InternalAuditController.java            |  157 +++
 multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml                                 |   48 +
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectDeliveryServiceImpl.java         |   63 +
 multi-system/src/main/resources/mapper/system/PurchaseApplyMapper.xml                                |   42 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMessMapper.java              |   17 
 multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseApplyService.java                    |   16 
 multi-system/src/main/resources/mapper/system/ProjectResearchMapper.xml                              |   35 
 multi-system/src/main/resources/mapper/system/QualitySystemPlanMapper.xml                            |   37 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseApplyServiceImpl.java           |   79 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseApply.java                            |   94 ++
 multi-system/src/main/java/com/gkhy/exam/system/domain/QualitySystemPlan.java                        |   81 +
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectResearchServiceImpl.java         |   63 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionSpecification.java                  |   61 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/QualitySystemPlanMess.java                    |   53 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMessMapper.java               |   17 
 multi-system/src/main/java/com/gkhy/exam/system/domain/ProjectResearch.java                          |   93 ++
 multi-system/src/main/resources/mapper/system/InspectionSpecificationMapper.xml                      |   27 
 multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseApplyPlan.java                        |   53 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectDeliveryMapper.java                    |   12 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMapper.java                   |   12 
 multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionRecordMess.java                     |   56 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyPlanMapper.java                  |   17 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectResearchMapper.java                    |   12 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualitySystemPlanServiceImpl.java       |   83 +
 multi-system/src/main/resources/mapper/system/PurchaseContractMapper.xml                             |   29 
 multi-system/src/main/java/com/gkhy/exam/system/service/ProjectDeliveryService.java                  |   16 
 multi-system/src/main/java/com/gkhy/exam/system/service/AnnualReportService.java                     |   16 
 multi-system/src/main/java/com/gkhy/exam/system/service/ProjectResearchService.java                  |   16 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseContractMapper.java                   |   12 
 multi-system/src/main/java/com/gkhy/exam/system/service/InspectionSpecificationService.java          |   16 
 multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualReport.java                             |  125 ++
 multi-system/src/main/resources/mapper/system/ProjectDeliveryMapper.xml                              |   38 
 multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseContractService.java                 |   16 
 multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionRecord.java                         |   77 +
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseContractServiceImpl.java        |   63 +
 multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionSpecificationMapper.java            |   12 
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PurchaseController.java                 |  232 +++++
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java                 |   58 +
 multi-system/src/main/resources/mapper/system/InspectionRecordMessMapper.xml                         |   19 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionSpecificationServiceImpl.java |   63 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/ProjectDelivery.java                          |   93 ++
 multi-system/src/main/resources/mapper/system/PurchaseApplyPlanMapper.xml                            |   30 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMapper.java                  |   12 
 multi-system/src/main/java/com/gkhy/exam/system/service/InspectionRecordService.java                 |   16 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyMapper.java                      |   12 
 multi-system/src/main/resources/mapper/system/QualitySystemPlanMessMapper.xml                        |   25 
 multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseContract.java                         |   60 +
 52 files changed, 2,483 insertions(+), 3 deletions(-)

diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/InternalAuditController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/InternalAuditController.java
index e23faaa..4343dff 100644
--- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/InternalAuditController.java
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/InternalAuditController.java
@@ -24,6 +24,15 @@
     @Autowired
     private InternalAuditCarryService carryService;
 
+    @Autowired
+    private ProjectResearchService researchService;
+
+    @Autowired
+    private ProjectDeliveryService deliveryService;
+
+    @Autowired
+    private AnnualReportService annualReportService;
+
 
     @Autowired
     private CustomerService customerService;
@@ -282,8 +291,156 @@
         return customerService.deletedCustomer(customerId);
     }
 
+    /**
+     * 在研项目
+     * @param projectResearch
+     * @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("/research/list")
+    public CommonResult listResearch(ProjectResearch projectResearch){
+        return CommonResult.success(researchService.selectResearchList(projectResearch));
+    }
 
 
+    /**
+     * 在研项目新增
+     * @param projectResearch
+     * @return
+     */
+    @ApiOperation(value = "在研项目新增")
+    @PostMapping("/research/insert")
+    public CommonResult insertResearch(@RequestBody ProjectResearch projectResearch){
+        return researchService.insertResearch(projectResearch);
+    }
+
+    /**
+     * 在研项目修改
+     * @param projectResearch
+     * @return
+     */
+    @ApiOperation(value = "在研项目修改")
+    @PostMapping("/research/update")
+    public CommonResult updateResearch(@RequestBody ProjectResearch projectResearch){
+        return researchService.updateResearch(projectResearch);
+    }
+
+    /**
+     * 在研项目删除
+     * @param researchId
+     * @return
+     */
+    @ApiOperation(value = "在研项目删除")
+    @GetMapping("/research/deleted")
+    public CommonResult deletedResearch(@RequestParam("researchId") Integer researchId){
+        return researchService.deletedResearch(researchId);
+    }
+
+
+    /**
+     * 交付项目
+     * @param projectDelivery
+     * @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("/delivery/list")
+    public CommonResult listDelivery(ProjectDelivery projectDelivery){
+        return CommonResult.success(deliveryService.selectDeliveryList(projectDelivery));
+    }
+
+
+    /**
+     *交付项目新增
+     * @param projectDelivery
+     * @return
+     */
+    @ApiOperation(value = "交付项目新增")
+    @PostMapping("/delivery/insert")
+    public CommonResult insertDelivery(@RequestBody ProjectDelivery projectDelivery){
+        return deliveryService.insertDelivery(projectDelivery);
+    }
+
+    /**
+     * 交付项目修改
+     * @param projectDelivery
+     * @return
+     */
+    @ApiOperation(value = "交付项目修改")
+    @PostMapping("/delivery/update")
+    public CommonResult updateDelivery(@RequestBody ProjectDelivery projectDelivery){
+        return deliveryService.updateDelivery(projectDelivery);
+    }
+
+    /**
+     * 交付项目删除
+     * @param deliveryId
+     * @return
+     */
+    @ApiOperation(value = "交付项目删除")
+    @GetMapping("/delivery/deleted")
+    public CommonResult deletedDelivery(@RequestParam("deliveryId") Integer deliveryId){
+        return deliveryService.deletedDelivery(deliveryId);
+    }
+
+
+
+    /**
+     * 年度报告
+     * @param annualReport
+     * @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("/annual/list")
+    public CommonResult listAnnual(AnnualReport annualReport){
+        return CommonResult.success(annualReportService.selectAnnualList(annualReport));
+    }
+
+
+    /**
+     *年度报告新增
+     * @param annualReport
+     * @return
+     */
+    @ApiOperation(value = "年度报告新增")
+    @PostMapping("/annual/insert")
+    public CommonResult insertAnnual(@RequestBody AnnualReport annualReport){
+        return annualReportService.insertAnnual(annualReport);
+    }
+
+    /**
+     * 年度报告修改
+     * @param annualReport
+     * @return
+     */
+    @ApiOperation(value = "年度报告修改")
+    @PostMapping("/annual/update")
+    public CommonResult updateAnnual(@RequestBody AnnualReport annualReport){
+        return annualReportService.updateAnnual(annualReport);
+    }
+
+    /**
+     * 年度报告删除
+     * @param annualId
+     * @return
+     */
+    @ApiOperation(value = "年度报告删除")
+    @GetMapping("/annual/deleted")
+    public CommonResult deletedAnnual(@RequestParam("annualId") Integer annualId){
+        return annualReportService.deletedAnnual(annualId);
+    }
+
 
 
 
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PurchaseController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PurchaseController.java
new file mode 100644
index 0000000..026ff28
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/PurchaseController.java
@@ -0,0 +1,232 @@
+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.InspectionRecordService;
+import com.gkhy.exam.system.service.InspectionSpecificationService;
+import com.gkhy.exam.system.service.PurchaseApplyService;
+import com.gkhy.exam.system.service.PurchaseContractService;
+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("/purchase/audit")
+public class PurchaseController {
+    @Autowired
+    private PurchaseApplyService applyService;
+
+    @Autowired
+    private PurchaseContractService contractService;
+
+    @Autowired
+    private InspectionSpecificationService specificationService;
+
+    @Autowired
+    private InspectionRecordService recordService;
+
+
+
+    /**
+     * 采购申请
+     * @param purchaseApply
+     * @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("/apply/list")
+    public CommonResult listApply(PurchaseApply purchaseApply){
+        return CommonResult.success(applyService.selectApplyList(purchaseApply));
+    }
+
+
+    /**
+     *采购申请新增
+     * @param purchaseApply
+     * @return
+     */
+    @ApiOperation(value = "采购申请新增")
+    @PostMapping("/apply/insert")
+    public CommonResult insertApply(@RequestBody PurchaseApply purchaseApply){
+        return applyService.insertApply(purchaseApply);
+    }
+
+    /**
+     * 采购申请修改
+     * @param purchaseApply
+     * @return
+     */
+    @ApiOperation(value = "采购申请修改")
+    @PostMapping("/apply/update")
+    public CommonResult updateApply(@RequestBody PurchaseApply purchaseApply){
+        return applyService.updateApply(purchaseApply);
+    }
+
+    /**
+     * 采购申请删除
+     * @param applyId
+     * @return
+     */
+    @ApiOperation(value = "采购申请删除")
+    @GetMapping("/apply/deleted")
+    public CommonResult deletedApply(@RequestParam("applyId") Integer applyId){
+        return applyService.deletedApply(applyId);
+    }
+
+
+    /**
+     * 采购合同
+     * @param purchaseContract
+     * @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("/contract/list")
+    public CommonResult listContract(PurchaseContract purchaseContract){
+        return CommonResult.success(contractService.selectContractList(purchaseContract));
+    }
+
+
+    /**
+     *采购合同新增
+     * @param purchaseContract
+     * @return
+     */
+    @ApiOperation(value = "采购合同新增")
+    @PostMapping("/contract/insert")
+    public CommonResult insertContract(@RequestBody PurchaseContract purchaseContract){
+        return contractService.insertContract(purchaseContract);
+    }
+
+    /**
+     * 采购合同修改
+     * @param purchaseContract
+     * @return
+     */
+    @ApiOperation(value = "采购合同修改")
+    @PostMapping("/contract/update")
+    public CommonResult updateContract(@RequestBody PurchaseContract purchaseContract){
+        return contractService.updateContract(purchaseContract);
+    }
+
+    /**
+     * 采购合同删除
+     * @param contractId
+     * @return
+     */
+    @ApiOperation(value = "采购合同删除")
+    @GetMapping("/contract/deleted")
+    public CommonResult deletedContract(@RequestParam("contractId") Integer contractId){
+        return contractService.deletedContract(contractId);
+    }
+
+    /**
+     * 检验规范
+     * @param specification
+     * @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("/specification/list")
+    public CommonResult listSpecification(InspectionSpecification specification){
+        return CommonResult.success(specificationService.selectSpecificationList(specification));
+    }
+
+
+    /**
+     *检验规范新增
+     * @param specification
+     * @return
+     */
+    @ApiOperation(value = "检验规范新增")
+    @PostMapping("/specification/insert")
+    public CommonResult insertSpecification(@RequestBody InspectionSpecification specification){
+        return specificationService.insertSpecification(specification);
+    }
+
+    /**
+     * 检验规范修改
+     * @param specification
+     * @return
+     */
+    @ApiOperation(value = "检验规范修改")
+    @PostMapping("/specification/update")
+    public CommonResult updateSpecification(@RequestBody InspectionSpecification specification){
+        return specificationService.updateSpecification(specification);
+    }
+
+    /**
+     * 检验规范删除
+     * @param specificationId
+     * @return
+     */
+    @ApiOperation(value = "检验规范删除")
+    @GetMapping("/specification/deleted")
+    public CommonResult deletedSpecification(@RequestParam("specificationId") Integer specificationId){
+        return specificationService.deletedSpecification(specificationId);
+    }
+
+    /**
+     * 检验记录
+     * @param record
+     * @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("/record/list")
+    public CommonResult listRecord(InspectionRecord record){
+        return CommonResult.success(recordService.selectRecordList(record));
+    }
+
+
+    /**
+     *检验记录新增
+     * @param record
+     * @return
+     */
+    @ApiOperation(value = "检验记录新增")
+    @PostMapping("/record/insert")
+    public CommonResult insertRecord(@RequestBody InspectionRecord record){
+        return recordService.insertRecord(record);
+    }
+
+    /**
+     * 检验记录修改
+     * @param record
+     * @return
+     */
+    @ApiOperation(value = "检验记录修改")
+    @PostMapping("/record/update")
+    public CommonResult updateRecord(@RequestBody InspectionRecord record){
+        return recordService.updateRecord(record);
+    }
+
+    /**
+     * 检验记录删除
+     * @param recordId
+     * @return
+     */
+    @ApiOperation(value = "检验记录删除")
+    @GetMapping("/record/deleted")
+    public CommonResult deletedRecord(@RequestParam("recordId") Integer recordId){
+        return recordService.deletedRecord(recordId);
+    }
+
+
+}
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java
index ab88a35..afdce38 100644
--- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java
@@ -1,9 +1,8 @@
 package com.gkhy.exam.admin.controller.web;
 
 import com.gkhy.exam.common.api.CommonResult;
-import com.gkhy.exam.system.domain.CompanyIndustryTemplate;
-import com.gkhy.exam.system.domain.StandardizedQuality;
-import com.gkhy.exam.system.domain.StandardizedTemplate;
+import com.gkhy.exam.system.domain.*;
+import com.gkhy.exam.system.service.QualitySystemPlanService;
 import com.gkhy.exam.system.service.StandardizedTemplateService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -21,6 +20,9 @@
 
     @Autowired
     private StandardizedTemplateService standardizedTemplateService;
+
+    @Autowired
+    private QualitySystemPlanService qualitySystemPlanService;
 
     /**
      * 行业模版
@@ -129,4 +131,54 @@
     public CommonResult standardizedQualityDataInfo(@RequestParam("companyId") Integer companyId){
         return standardizedTemplateService.getStandardizedQualityByCompanyId(companyId);
     }
+
+
+    /**
+     * 质量体系策划
+     * @param qualitySystemPlan
+     * @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 listQualitySystemPlan(QualitySystemPlan qualitySystemPlan){
+        return CommonResult.success(qualitySystemPlanService.selectQualitySystemPlanList(qualitySystemPlan));
+    }
+
+
+    /**
+     * 质量体系策划新增
+     * @param qualitySystemPlan
+     * @return
+     */
+    @ApiOperation(value = "质量体系策划新增")
+    @PostMapping("/insert")
+    public CommonResult insertQualitySystemPlan(@RequestBody QualitySystemPlan qualitySystemPlan){
+        return qualitySystemPlanService.insertQualitySystemPlan(qualitySystemPlan);
+    }
+
+    /**
+     * 质量体系策划修改
+     * @param qualitySystemPlan
+     * @return
+     */
+    @ApiOperation(value = "质量体系策划修改")
+    @PostMapping("/update")
+    public CommonResult updateQualitySystemPlan(@RequestBody QualitySystemPlan qualitySystemPlan){
+        return qualitySystemPlanService.updateQualitySystemPlan(qualitySystemPlan);
+    }
+
+    /**
+     * 质量体系策划删除
+     * @param planId
+     * @return
+     */
+    @ApiOperation(value = "质量体系策划删除")
+    @GetMapping("/deleted")
+    public CommonResult deletedQualitySystemPlan(@RequestParam("planId") Integer planId){
+        return qualitySystemPlanService.deletedQualitySystemPlan(planId);
+    }
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualReport.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualReport.java
new file mode 100644
index 0000000..476f7a6
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualReport.java
@@ -0,0 +1,125 @@
+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.LocalDate;
+import java.time.LocalDateTime;
+
+
+@Getter
+@Setter
+@TableName("annual_report")
+@ApiModel(value = "annualReport",description = "年度报告")
+public class AnnualReport implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "报告名称")
+    @TableField("report_name")
+    private String reportName;
+
+    @ApiModelProperty(value = "编号")
+    @TableField("number")
+    private String number;
+
+    @ApiModelProperty(value = "实施部门")
+    @TableField("dept_id")
+    private Integer deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+
+    @ApiModelProperty(value = "调查结束日期")
+    @TableField("end_time")
+    private LocalDate endTime;
+
+    @ApiModelProperty(value = "问卷发放数")
+    @TableField("grant_amount")
+    private Integer grantAmount;
+
+    @ApiModelProperty(value = "问卷回收数")
+    @TableField("recycle_amount")
+    private Integer recycleAmount;
+
+    @ApiModelProperty(value = "回收率")
+    @TableField("recycle_rate")
+    private String recycleRate;
+
+    @ApiModelProperty(value = "检查项目数量")
+    @TableField("check_amount")
+    private Integer checkAmount;
+
+    @ApiModelProperty(value = "今年覆盖率")
+    @TableField("year_rate")
+    private String yearRate;
+
+    @ApiModelProperty(value = "以往覆盖率")
+    @TableField("anciently_rate")
+    private String ancientlyRate;
+
+    @ApiModelProperty(value = "在研满意度")
+    @TableField("research_satisficing")
+    private String researchSatisficing;
+
+    @ApiModelProperty(value = "交付满意度")
+    @TableField("delivery_satisficing")
+    private String deliverySatisficing;
+
+    @ApiModelProperty(value = "总体满意度")
+    @TableField("sum_satisficing")
+    private String sumSatisficing;
+
+    @ApiModelProperty(value = "用户反馈建议")
+    @TableField("suggest")
+    private String suggest;
+
+    @ApiModelProperty(value = "经办人")
+    @TableField("agent_id")
+    private Integer agentId;
+
+    @TableField(exist = false)
+    private String agentName;
+
+    @ApiModelProperty(value = "部门领导")
+    @TableField("dept_user")
+    private Integer deptUser;
+
+    @TableField(exist = false)
+    private String deptUserName;
+
+    @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/InspectionRecord.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionRecord.java
new file mode 100644
index 0000000..f333ff1
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionRecord.java
@@ -0,0 +1,77 @@
+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;
+
+@Getter
+@Setter
+@TableName("inspection_record")
+@ApiModel(value = "inspectionRecord",description = "检验记录")
+public class InspectionRecord implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "记录名称")
+    @TableField("record_name")
+    private String recordName;
+
+    @ApiModelProperty(value = "说明")
+    @TableField("`explain`")
+    private String explain;
+
+    @ApiModelProperty(value = "现场签字人")
+    @TableField("sign_id")
+    private Integer signId;
+
+    @TableField(exist = false)
+    private String signName;
+
+    @ApiModelProperty(value = "日期")
+    @TableField("sign_time")
+    private LocalDateTime signTime;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+    @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<InspectionRecordMess> recordMesses;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionRecordMess.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionRecordMess.java
new file mode 100644
index 0000000..4e0590c
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionRecordMess.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;
+
+@Getter
+@Setter
+@TableName("inspection_record_mess")
+@ApiModel(value = "inspectionRecordMess",description = "检验记录材料清单")
+public class InspectionRecordMess implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private String id;
+
+    @ApiModelProperty(value = "记录id")
+    @TableField("record_id")
+    private Integer recordId;
+
+    @ApiModelProperty(value = "材料名称")
+    @TableField("materials_name")
+    private String materialsName;
+
+    @ApiModelProperty(value = "合格材料证明")
+    @TableField("qualified_materials")
+    private String qualifiedMaterials;
+
+    @ApiModelProperty(value = "外观检验")
+    @TableField("appearance")
+    private String appearance;
+
+    @ApiModelProperty(value = "功能检验")
+    @TableField("function")
+    private String function;
+
+    @ApiModelProperty(value = "单位")
+    @TableField("unit")
+    private String unit;
+
+    @ApiModelProperty(value = "数量")
+    @TableField("amount")
+    private Integer amount;
+
+    @ApiModelProperty(value = "检验员")
+    @TableField("check_user")
+    private String checkUser;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionSpecification.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionSpecification.java
new file mode 100644
index 0000000..1c83bb2
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/InspectionSpecification.java
@@ -0,0 +1,61 @@
+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;
+
+@Getter
+@Setter
+@TableName("inspection_specification")
+@ApiModel(value = "inspectionSpecification",description = "检验规范")
+public class InspectionSpecification implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "文件名称")
+    @TableField("file_name")
+    private String fileName;
+
+    @ApiModelProperty(value = "文件路径")
+    @TableField("file_path")
+    private String filePath;
+
+    @ApiModelProperty(value = "规范名称")
+    @TableField("specification")
+    private String specification;
+
+    @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/ProjectDelivery.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ProjectDelivery.java
new file mode 100644
index 0000000..c340288
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ProjectDelivery.java
@@ -0,0 +1,93 @@
+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;
+
+@Getter
+@Setter
+@TableName("project_delivery")
+@ApiModel(value = "projectDelivery",description = "交付项目")
+public class ProjectDelivery implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "问卷名称")
+    @TableField("question_name")
+    private String questionName;
+
+    @ApiModelProperty(value = "编号")
+    @TableField("number")
+    private String number;
+
+    @ApiModelProperty(value = "单位名称")
+    @TableField("unit_name")
+    private String unitName;
+
+    @ApiModelProperty(value = "联系人")
+    @TableField("person")
+    private String person;
+
+    @ApiModelProperty(value = "联系地址")
+    @TableField("address")
+    private String address;
+
+    @ApiModelProperty(value = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "1系统  2软件  3整机  4试剂柜  5印制板  6手持终端  7其他")
+    @TableField("product")
+    private String product;
+
+    @ApiModelProperty(value = "产品名称")
+    @TableField("product_name")
+    private String productName;
+
+    @ApiModelProperty(value = "内容")
+    @TableField("mess")
+    private String mess;
+
+    @ApiModelProperty(value = "建议")
+    @TableField("suggest")
+    private String suggest;
+
+    @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/ProjectResearch.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ProjectResearch.java
new file mode 100644
index 0000000..aa2294c
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ProjectResearch.java
@@ -0,0 +1,93 @@
+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;
+
+@Getter
+@Setter
+@TableName("project_research")
+@ApiModel(value = "projectResearch",description = "在研项目")
+public class ProjectResearch implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "问卷名称")
+    @TableField("question_name")
+    private String questionName;
+
+    @ApiModelProperty(value = "编号")
+    @TableField("number")
+    private String number;
+
+    @ApiModelProperty(value = "单位名称")
+    @TableField("unit_name")
+    private String unitName;
+
+    @ApiModelProperty(value = "联系人")
+    @TableField("person")
+    private String person;
+
+    @ApiModelProperty(value = "联系地址")
+    @TableField("address")
+    private String address;
+
+    @ApiModelProperty(value = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "1系统  2软件  3整机  4试剂柜  5印制板  6手持终端  7其他")
+    @TableField("product")
+    private String product;
+
+    @ApiModelProperty(value = "产品名称")
+    @TableField("product_name")
+    private String productName;
+
+    @ApiModelProperty(value = "内容")
+    @TableField("mess")
+    private String mess;
+
+    @ApiModelProperty(value = "建议")
+    @TableField("suggest")
+    private String suggest;
+
+    @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/PurchaseApply.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseApply.java
new file mode 100644
index 0000000..1a204bb
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseApply.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;
+
+@Getter
+@Setter
+@TableName("purchase_apply")
+@ApiModel(value = "purchaseApply",description = "采购申请")
+public class PurchaseApply implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "申购单名称")
+    @TableField("apply_name")
+    private String applyName;
+
+    @ApiModelProperty(value = "申请部门")
+    @TableField("dept_id")
+    private Integer deptId;
+
+    @TableField(exist = false)
+    private String deptName;
+
+    @ApiModelProperty(value = "申请日期")
+    @TableField("apply_time")
+    private LocalDateTime applyTime;
+
+    @ApiModelProperty(value = "申请了理由")
+    @TableField("apply_reason")
+    private String applyReason;
+
+    @ApiModelProperty(value = "申请人")
+    @TableField("apply_user")
+    private Integer applyUser;
+
+    @TableField(exist = false)
+    private String applyUserName;
+
+    @ApiModelProperty(value = "直属部门领导")
+    @TableField("dept_user")
+    private Integer deptUser;
+
+    @TableField(exist = false)
+    private String deptUserName;
+
+    @ApiModelProperty(value = "财务部人员")
+    @TableField("finance_user")
+    private Integer financeUser;
+
+    @TableField(exist = false)
+    private String financeUserName;
+
+    @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<PurchaseApplyPlan> purchaseApplyPlans;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseApplyPlan.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseApplyPlan.java
new file mode 100644
index 0000000..5016160
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseApplyPlan.java
@@ -0,0 +1,53 @@
+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.math.BigDecimal;
+
+@Getter
+@Setter
+@TableName("purchase_apply_plan")
+@ApiModel(value = "purchaseApplyPlan",description = "采购申请")
+public class PurchaseApplyPlan implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "申请id")
+    @TableField("apply_id")
+    private Integer applyId;
+
+    @ApiModelProperty(value = "品名")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "型号规格")
+    @TableField("model")
+    private String model;
+
+    @ApiModelProperty(value = "建议供应商")
+    @TableField("supplier")
+    private String supplier;
+
+    @ApiModelProperty(value = "数量")
+    @TableField("amount")
+    private Integer amount;
+
+    @ApiModelProperty(value = "预计单价")
+    @TableField("money")
+    private BigDecimal money;
+
+    @ApiModelProperty(value = "分类")
+    @TableField("type")
+    private String type;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseContract.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseContract.java
new file mode 100644
index 0000000..7a9e9f3
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/PurchaseContract.java
@@ -0,0 +1,60 @@
+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;
+
+
+@Getter
+@Setter
+@TableName("purchase_contract")
+@ApiModel(value = "purchaseContract",description = "采购合同")
+public class PurchaseContract implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "文件名称")
+    @TableField("file_name")
+    private String fileName;
+
+    @ApiModelProperty(value = "文件路径")
+    @TableField("file_path")
+    private String filePath;
+
+    @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/QualitySystemPlan.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualitySystemPlan.java
new file mode 100644
index 0000000..c000101
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualitySystemPlan.java
@@ -0,0 +1,81 @@
+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("quality_system_plan")
+@ApiModel(value = "qualitySystemPlan",description = "质量体系策划")
+public class QualitySystemPlan implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "企业ID")
+    @TableField("company_id")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "年份")
+    @TableField("year")
+    private String year;
+
+    @ApiModelProperty(value = "编写")
+    @TableField("write_id")
+    private Integer writeId;
+
+    @ApiModelProperty(value = "编写名称")
+    @TableField(exist = false)
+    private String writeName;
+
+    @ApiModelProperty(value = "审核")
+    @TableField("check_id")
+    private Integer checkId;
+
+    @ApiModelProperty(value = "审核名称")
+    @TableField(exist = false)
+    private String checkName;
+
+    @ApiModelProperty(value = "批准")
+    @TableField("ratify_id")
+    private Integer ratifyId;
+
+    @ApiModelProperty(value = "批转名称")
+    @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<QualitySystemPlanMess> planMesses;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/QualitySystemPlanMess.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualitySystemPlanMess.java
new file mode 100644
index 0000000..6754f93
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualitySystemPlanMess.java
@@ -0,0 +1,53 @@
+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("quality_system_plan_mess")
+@ApiModel(value = "qualitySystemPlanMess",description = "质量体系策划内容")
+public class QualitySystemPlanMess implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "策划id")
+    @TableField("plan_id")
+    private Integer planId;
+
+    @ApiModelProperty(value = "项目")
+    @TableField("project")
+    private String project;
+
+    @ApiModelProperty(value = "内容")
+    @TableField("content")
+    private String content;
+
+    @ApiModelProperty(value = "参与人员")
+    @TableField("participant")
+    private String participant;
+
+    @ApiModelProperty(value = "时间")
+    @TableField("apply_time")
+    private String applyTime;
+
+    @ApiModelProperty(value = "完成时间")
+    @TableField("accomplish_time")
+    private String accomplishTime;
+
+    @ApiModelProperty(value = "完成情况")
+    @TableField("accomplish_status")
+    private String accomplishStatus;
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualReportMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualReportMapper.java
new file mode 100644
index 0000000..1a35121
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/AnnualReportMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.AnnualReport;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface AnnualReportMapper extends BaseMapper<AnnualReport> {
+    List<AnnualReport> selectAnnualList(AnnualReport annualReport);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMapper.java
new file mode 100644
index 0000000..be494e0
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.InspectionRecord;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface InspectionRecordMapper extends BaseMapper<InspectionRecord> {
+    List<InspectionRecord> selectRecordList(InspectionRecord record);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMessMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMessMapper.java
new file mode 100644
index 0000000..3a35adf
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionRecordMessMapper.java
@@ -0,0 +1,17 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.InspectionRecordMess;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface InspectionRecordMessMapper extends BaseMapper<InspectionRecordMess> {
+    List<InspectionRecordMess> selectByRecordId(@Param("id") Integer id);
+
+    void insertRecordMess(@Param("recordMesses") List<InspectionRecordMess> recordMesses);
+
+    void deletedByRecordId(@Param("id") Integer id);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionSpecificationMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionSpecificationMapper.java
new file mode 100644
index 0000000..0796451
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InspectionSpecificationMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.InspectionSpecification;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface InspectionSpecificationMapper extends BaseMapper<InspectionSpecification> {
+    List<InspectionSpecification> selectSpecificationList(InspectionSpecification specification);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectDeliveryMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectDeliveryMapper.java
new file mode 100644
index 0000000..b076d46
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectDeliveryMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ProjectDelivery;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ProjectDeliveryMapper extends BaseMapper<ProjectDelivery> {
+    List<ProjectDelivery> selectDeliveryList(ProjectDelivery projectDelivery);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectResearchMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectResearchMapper.java
new file mode 100644
index 0000000..b5e1695
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ProjectResearchMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ProjectResearch;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ProjectResearchMapper extends BaseMapper<ProjectResearch> {
+    List<ProjectResearch> selectResearchList(ProjectResearch projectResearch);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyMapper.java
new file mode 100644
index 0000000..ed9341c
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.PurchaseApply;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PurchaseApplyMapper extends BaseMapper<PurchaseApply> {
+    List<PurchaseApply> selectApplyList(PurchaseApply purchaseApply);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyPlanMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyPlanMapper.java
new file mode 100644
index 0000000..857264d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseApplyPlanMapper.java
@@ -0,0 +1,17 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.PurchaseApplyPlan;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PurchaseApplyPlanMapper extends BaseMapper<PurchaseApplyPlan> {
+    List<PurchaseApplyPlan> selectByApplyId(@Param("id") Integer id);
+
+    void insertPlans(@Param("purchaseApplyPlans") List<PurchaseApplyPlan> purchaseApplyPlans);
+
+    void deletedByIds(@Param("id") Integer id);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseContractMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseContractMapper.java
new file mode 100644
index 0000000..a69d25d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/PurchaseContractMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.PurchaseContract;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PurchaseContractMapper extends BaseMapper<PurchaseContract> {
+    List<PurchaseContract> selectContractList(PurchaseContract purchaseContract);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMapper.java
new file mode 100644
index 0000000..ab354d4
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMapper.java
@@ -0,0 +1,12 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.QualitySystemPlan;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface QualitySystemPlanMapper extends BaseMapper<QualitySystemPlan> {
+    List<QualitySystemPlan> selectSystemPlanList(QualitySystemPlan qualitySystemPlan);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMessMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMessMapper.java
new file mode 100644
index 0000000..4014e19
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/QualitySystemPlanMessMapper.java
@@ -0,0 +1,17 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.QualitySystemPlanMess;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface QualitySystemPlanMessMapper extends BaseMapper<QualitySystemPlanMess> {
+    List<QualitySystemPlanMess> selectByPlanId(@Param("id") Integer id);
+
+    void insertPlanMess(@Param("planMesses") List<QualitySystemPlanMess> planMesses);
+
+    void deletedByPlanId(@Param("id") Integer id);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/AnnualReportService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/AnnualReportService.java
new file mode 100644
index 0000000..3370c7e
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/AnnualReportService.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.AnnualReport;
+
+public interface AnnualReportService extends IService<AnnualReport> {
+    CommonPage selectAnnualList(AnnualReport annualReport);
+
+    CommonResult insertAnnual(AnnualReport annualReport);
+
+    CommonResult updateAnnual(AnnualReport annualReport);
+
+    CommonResult deletedAnnual(Integer annualId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/InspectionRecordService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/InspectionRecordService.java
new file mode 100644
index 0000000..cbc1cae
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/InspectionRecordService.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.InspectionRecord;
+
+public interface InspectionRecordService extends IService<InspectionRecord> {
+    CommonPage selectRecordList(InspectionRecord record);
+
+    CommonResult insertRecord(InspectionRecord record);
+
+    CommonResult updateRecord(InspectionRecord record);
+
+    CommonResult deletedRecord(Integer recordId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/InspectionSpecificationService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/InspectionSpecificationService.java
new file mode 100644
index 0000000..283903b
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/InspectionSpecificationService.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.InspectionSpecification;
+
+public interface InspectionSpecificationService extends IService<InspectionSpecification> {
+    CommonPage selectSpecificationList(InspectionSpecification specification);
+
+    CommonResult insertSpecification(InspectionSpecification specification);
+
+    CommonResult updateSpecification(InspectionSpecification specification);
+
+    CommonResult deletedSpecification(Integer specificationId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ProjectDeliveryService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ProjectDeliveryService.java
new file mode 100644
index 0000000..b39a6f4
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ProjectDeliveryService.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.ProjectDelivery;
+
+public interface ProjectDeliveryService extends IService<ProjectDelivery> {
+    CommonPage selectDeliveryList(ProjectDelivery projectDelivery);
+
+    CommonResult insertDelivery(ProjectDelivery projectDelivery);
+
+    CommonResult updateDelivery(ProjectDelivery projectDelivery);
+
+    CommonResult deletedDelivery(Integer deliveryId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ProjectResearchService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ProjectResearchService.java
new file mode 100644
index 0000000..acd9780
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ProjectResearchService.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.ProjectResearch;
+
+public interface ProjectResearchService extends IService<ProjectResearch> {
+    CommonPage selectResearchList(ProjectResearch projectResearch);
+
+    CommonResult insertResearch(ProjectResearch projectResearch);
+
+    CommonResult updateResearch(ProjectResearch projectResearch);
+
+    CommonResult deletedResearch(Integer researchId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseApplyService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseApplyService.java
new file mode 100644
index 0000000..6ba0fa4
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseApplyService.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.PurchaseApply;
+
+public interface PurchaseApplyService extends IService<PurchaseApply> {
+    CommonPage selectApplyList(PurchaseApply purchaseApply);
+
+    CommonResult insertApply(PurchaseApply purchaseApply);
+
+    CommonResult updateApply(PurchaseApply purchaseApply);
+
+    CommonResult deletedApply(Integer applyId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseContractService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseContractService.java
new file mode 100644
index 0000000..16555cc
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/PurchaseContractService.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.PurchaseContract;
+
+public interface PurchaseContractService extends IService<PurchaseContract> {
+    CommonPage selectContractList(PurchaseContract purchaseContract);
+
+    CommonResult insertContract(PurchaseContract purchaseContract);
+
+    CommonResult updateContract(PurchaseContract purchaseContract);
+
+    CommonResult deletedContract(Integer contractId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/QualitySystemPlanService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/QualitySystemPlanService.java
new file mode 100644
index 0000000..6ead156
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/QualitySystemPlanService.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.QualitySystemPlan;
+
+public interface QualitySystemPlanService extends IService<QualitySystemPlan> {
+    CommonPage selectQualitySystemPlanList(QualitySystemPlan qualitySystemPlan);
+
+    CommonResult insertQualitySystemPlan(QualitySystemPlan qualitySystemPlan);
+
+    CommonResult updateQualitySystemPlan(QualitySystemPlan qualitySystemPlan);
+
+    CommonResult deletedQualitySystemPlan(Integer planId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/AnnualReportServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/AnnualReportServiceImpl.java
new file mode 100644
index 0000000..fac860d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/AnnualReportServiceImpl.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.AnnualReport;
+import com.gkhy.exam.system.mapper.AnnualReportMapper;
+import com.gkhy.exam.system.service.AnnualReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class AnnualReportServiceImpl extends ServiceImpl<AnnualReportMapper, AnnualReport> implements AnnualReportService {
+
+    @Autowired
+    private AnnualReportMapper annualReportMapper;
+
+
+    @Override
+    public CommonPage selectAnnualList(AnnualReport annualReport) {
+        if (!SecurityUtils.adminUser()){
+            if (annualReport.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<AnnualReport> annualReports = annualReportMapper.selectAnnualList(annualReport);
+        return CommonPage.restPage(annualReports);
+    }
+
+    @Override
+    public CommonResult insertAnnual(AnnualReport annualReport) {
+        annualReport.setCreateBy(SecurityUtils.getUsername());
+        annualReport.setCreateTime(LocalDateTime.now());
+        annualReportMapper.insert(annualReport);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateAnnual(AnnualReport annualReport) {
+        annualReport.setUpdateBy(SecurityUtils.getUsername());
+        annualReport.setUpdateTime(LocalDateTime.now());
+        annualReportMapper.updateById(annualReport);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedAnnual(Integer annualId) {
+        AnnualReport annualReport = new AnnualReport();
+        annualReport.setId(annualId);
+        annualReport.setUpdateBy(SecurityUtils.getUsername());
+        annualReport.setUpdateTime(LocalDateTime.now());
+        annualReport.setDelFlag(2);
+        annualReportMapper.updateById(annualReport);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionRecordServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionRecordServiceImpl.java
new file mode 100644
index 0000000..e235328
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionRecordServiceImpl.java
@@ -0,0 +1,78 @@
+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.InspectionRecord;
+import com.gkhy.exam.system.domain.InspectionRecordMess;
+import com.gkhy.exam.system.mapper.InspectionRecordMapper;
+import com.gkhy.exam.system.mapper.InspectionRecordMessMapper;
+import com.gkhy.exam.system.service.InspectionRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class InspectionRecordServiceImpl extends ServiceImpl<InspectionRecordMapper, InspectionRecord> implements InspectionRecordService {
+
+    @Autowired
+    private InspectionRecordMapper recordMapper;
+
+    @Autowired
+    private InspectionRecordMessMapper recordMessMapper;
+    @Override
+    public CommonPage selectRecordList(InspectionRecord record) {
+        if (!SecurityUtils.adminUser()){
+            if (record.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<InspectionRecord> inspectionRecords = recordMapper.selectRecordList(record);
+        for (InspectionRecord inspectionRecord : inspectionRecords) {
+            List<InspectionRecordMess> inspectionRecordMesses = recordMessMapper.selectByRecordId(inspectionRecord.getId());
+            inspectionRecord.setRecordMesses(inspectionRecordMesses);
+        }
+        return CommonPage.restPage(inspectionRecords);
+    }
+
+    @Override
+    public CommonResult insertRecord(InspectionRecord record) {
+        record.setCreateBy(SecurityUtils.getUsername());
+        record.setCreateTime(LocalDateTime.now());
+        recordMapper.insert(record);
+        List<InspectionRecordMess> recordMesses = record.getRecordMesses();
+        for (InspectionRecordMess recordMess : recordMesses) {
+            recordMess.setRecordId(record.getId());
+        }
+        recordMessMapper.insertRecordMess(recordMesses);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateRecord(InspectionRecord record) {
+        record.setUpdateBy(SecurityUtils.getUsername());
+        record.setUpdateTime(LocalDateTime.now());
+        recordMapper.updateById(record);
+        List<InspectionRecordMess> recordMesses = record.getRecordMesses();
+        recordMessMapper.deletedByRecordId(record.getId());
+        recordMessMapper.insertRecordMess(recordMesses);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedRecord(Integer recordId) {
+        InspectionRecord inspectionRecord = new InspectionRecord();
+        inspectionRecord.setId(recordId);
+        inspectionRecord.setUpdateTime(LocalDateTime.now());
+        inspectionRecord.setUpdateBy(SecurityUtils.getUsername());
+        inspectionRecord.setDelFlag(2);
+        recordMapper.updateById(inspectionRecord);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionSpecificationServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionSpecificationServiceImpl.java
new file mode 100644
index 0000000..b5ac843
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InspectionSpecificationServiceImpl.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.InspectionSpecification;
+import com.gkhy.exam.system.mapper.InspectionSpecificationMapper;
+import com.gkhy.exam.system.service.InspectionSpecificationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class InspectionSpecificationServiceImpl extends ServiceImpl<InspectionSpecificationMapper, InspectionSpecification> implements InspectionSpecificationService {
+
+
+    @Autowired
+    private InspectionSpecificationMapper specificationMapper;
+
+    @Override
+    public CommonPage selectSpecificationList(InspectionSpecification specification) {
+        if(!SecurityUtils.adminUser()){
+            if (specification.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<InspectionSpecification> inspectionSpecifications = specificationMapper.selectSpecificationList(specification);
+        return CommonPage.restPage(inspectionSpecifications);
+    }
+
+    @Override
+    public CommonResult insertSpecification(InspectionSpecification specification) {
+        specification.setCreateBy(SecurityUtils.getUsername());
+        specification.setCreateTime(LocalDateTime.now());
+        specificationMapper.insert(specification);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateSpecification(InspectionSpecification specification) {
+        specification.setUpdateBy(SecurityUtils.getUsername());
+        specification.setUpdateTime(LocalDateTime.now());
+        specificationMapper.updateById(specification);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedSpecification(Integer specificationId) {
+        InspectionSpecification inspectionSpecification = new InspectionSpecification();
+        inspectionSpecification.setId(specificationId);
+        inspectionSpecification.setUpdateBy(SecurityUtils.getUsername());
+        inspectionSpecification.setUpdateTime(LocalDateTime.now());
+        inspectionSpecification.setDelFlag(2);
+        specificationMapper.updateById(inspectionSpecification);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectDeliveryServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectDeliveryServiceImpl.java
new file mode 100644
index 0000000..354cd0e
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectDeliveryServiceImpl.java
@@ -0,0 +1,63 @@
+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.ProjectDelivery;
+import com.gkhy.exam.system.mapper.ProjectDeliveryMapper;
+import com.gkhy.exam.system.service.ProjectDeliveryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class ProjectDeliveryServiceImpl extends ServiceImpl<ProjectDeliveryMapper, ProjectDelivery> implements ProjectDeliveryService {
+
+    @Autowired
+    private ProjectDeliveryMapper deliveryMapper;
+
+    @Override
+    public CommonPage selectDeliveryList(ProjectDelivery projectDelivery) {
+        if (!SecurityUtils.adminUser()){
+            if (projectDelivery.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<ProjectDelivery> projectDeliveries = deliveryMapper.selectDeliveryList(projectDelivery);
+        return CommonPage.restPage(projectDeliveries);
+    }
+
+    @Override
+    public CommonResult insertDelivery(ProjectDelivery projectDelivery) {
+        projectDelivery.setCreateBy(SecurityUtils.getUsername());
+        projectDelivery.setCreateTime(LocalDateTime.now());
+        deliveryMapper.insert(projectDelivery);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateDelivery(ProjectDelivery projectDelivery) {
+        projectDelivery.setUpdateBy(SecurityUtils.getUsername());
+        projectDelivery.setUpdateTime(LocalDateTime.now());
+        deliveryMapper.updateById(projectDelivery);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedDelivery(Integer deliveryId) {
+        ProjectDelivery projectDelivery = new ProjectDelivery();
+        projectDelivery.setId(deliveryId);
+        projectDelivery.setUpdateBy(SecurityUtils.getUsername());
+        projectDelivery.setUpdateTime(LocalDateTime.now());
+        projectDelivery.setDelFlag(2);
+        deliveryMapper.updateById(projectDelivery);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectResearchServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectResearchServiceImpl.java
new file mode 100644
index 0000000..931eb1d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ProjectResearchServiceImpl.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.ProjectResearch;
+import com.gkhy.exam.system.mapper.ProjectResearchMapper;
+import com.gkhy.exam.system.service.ProjectResearchService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class ProjectResearchServiceImpl extends ServiceImpl<ProjectResearchMapper, ProjectResearch> implements ProjectResearchService {
+
+    @Autowired
+    private ProjectResearchMapper researchMapper;
+
+
+    @Override
+    public CommonPage selectResearchList(ProjectResearch projectResearch) {
+        if (!SecurityUtils.adminUser()){
+            if (projectResearch.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<ProjectResearch> projectResearches = researchMapper.selectResearchList(projectResearch);
+        return CommonPage.restPage(projectResearches);
+    }
+
+    @Override
+    public CommonResult insertResearch(ProjectResearch projectResearch) {
+        projectResearch.setCreateBy(SecurityUtils.getUsername());
+        projectResearch.setCreateTime(LocalDateTime.now());
+        researchMapper.insert(projectResearch);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateResearch(ProjectResearch projectResearch) {
+        projectResearch.setUpdateBy(SecurityUtils.getUsername());
+        projectResearch.setUpdateTime(LocalDateTime.now());
+        researchMapper.updateById(projectResearch);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedResearch(Integer researchId) {
+        ProjectResearch projectResearch = new ProjectResearch();
+        projectResearch.setUpdateTime(LocalDateTime.now());
+        projectResearch.setUpdateBy(SecurityUtils.getUsername());
+        projectResearch.setId(researchId);
+        projectResearch.setDelFlag(2);
+        researchMapper.updateById(projectResearch);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseApplyServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseApplyServiceImpl.java
new file mode 100644
index 0000000..0c83d1d
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseApplyServiceImpl.java
@@ -0,0 +1,79 @@
+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.PurchaseApply;
+import com.gkhy.exam.system.domain.PurchaseApplyPlan;
+import com.gkhy.exam.system.mapper.PurchaseApplyMapper;
+import com.gkhy.exam.system.mapper.PurchaseApplyPlanMapper;
+import com.gkhy.exam.system.service.PurchaseApplyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class PurchaseApplyServiceImpl extends ServiceImpl<PurchaseApplyMapper, PurchaseApply> implements PurchaseApplyService {
+
+    @Autowired
+    private PurchaseApplyMapper applyMapper;
+
+    @Autowired
+    private PurchaseApplyPlanMapper applyPlanMapper;
+
+    @Override
+    public CommonPage selectApplyList(PurchaseApply purchaseApply) {
+        if (!SecurityUtils.adminUser()){
+            if (purchaseApply.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<PurchaseApply> purchaseApplies = applyMapper.selectApplyList(purchaseApply);
+        for (PurchaseApply apply : purchaseApplies) {
+            List<PurchaseApplyPlan> purchaseApplyPlans = applyPlanMapper.selectByApplyId(apply.getId());
+            apply.setPurchaseApplyPlans(purchaseApplyPlans);
+        }
+        return CommonPage.restPage(purchaseApplies);
+    }
+
+    @Override
+    public CommonResult insertApply(PurchaseApply purchaseApply) {
+        purchaseApply.setCreateTime(LocalDateTime.now());
+        purchaseApply.setCreateBy(SecurityUtils.getUsername());
+        applyMapper.insert(purchaseApply);
+        List<PurchaseApplyPlan> purchaseApplyPlans = purchaseApply.getPurchaseApplyPlans();
+        for (PurchaseApplyPlan purchaseApplyPlan : purchaseApplyPlans) {
+            purchaseApplyPlan.setApplyId(purchaseApply.getId());
+        }
+        applyPlanMapper.insertPlans(purchaseApplyPlans);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateApply(PurchaseApply purchaseApply) {
+        purchaseApply.setUpdateTime(LocalDateTime.now());
+        purchaseApply.setUpdateBy(SecurityUtils.getUsername());
+        applyMapper.updateById(purchaseApply);
+        List<PurchaseApplyPlan> purchaseApplyPlans = purchaseApply.getPurchaseApplyPlans();
+        applyPlanMapper.deletedByIds(purchaseApply.getId());
+        applyPlanMapper.insertPlans(purchaseApplyPlans);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedApply(Integer applyId) {
+        PurchaseApply purchaseApply = new PurchaseApply();
+        purchaseApply.setId(applyId);
+        purchaseApply.setUpdateBy(SecurityUtils.getUsername());
+        purchaseApply.setUpdateTime(LocalDateTime.now());
+        purchaseApply.setDelFlag(2);
+        applyMapper.updateById(purchaseApply);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseContractServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseContractServiceImpl.java
new file mode 100644
index 0000000..b41e593
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/PurchaseContractServiceImpl.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.PurchaseContract;
+import com.gkhy.exam.system.mapper.PurchaseContractMapper;
+import com.gkhy.exam.system.service.PurchaseContractService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class PurchaseContractServiceImpl extends ServiceImpl<PurchaseContractMapper, PurchaseContract> implements PurchaseContractService {
+
+    @Autowired
+    private PurchaseContractMapper contractMapper;
+
+
+    @Override
+    public CommonPage selectContractList(PurchaseContract purchaseContract) {
+        if (!SecurityUtils.adminUser()){
+            if (purchaseContract.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<PurchaseContract> purchaseContracts = contractMapper.selectContractList(purchaseContract);
+        return CommonPage.restPage(purchaseContracts);
+    }
+
+    @Override
+    public CommonResult insertContract(PurchaseContract purchaseContract) {
+        purchaseContract.setCreateTime(LocalDateTime.now());
+        purchaseContract.setCreateBy(SecurityUtils.getUsername());
+        contractMapper.insert(purchaseContract);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateContract(PurchaseContract purchaseContract) {
+        purchaseContract.setUpdateBy(SecurityUtils.getUsername());
+        purchaseContract.setUpdateTime(LocalDateTime.now());
+        contractMapper.updateById(purchaseContract);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedContract(Integer contractId) {
+        PurchaseContract purchaseContract = new PurchaseContract();
+        purchaseContract.setUpdateBy(SecurityUtils.getUsername());
+        purchaseContract.setUpdateTime(LocalDateTime.now());
+        purchaseContract.setId(contractId);
+        purchaseContract.setDelFlag(2);
+        contractMapper.updateById(purchaseContract);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualitySystemPlanServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualitySystemPlanServiceImpl.java
new file mode 100644
index 0000000..8e2ae9f
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualitySystemPlanServiceImpl.java
@@ -0,0 +1,83 @@
+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.QualitySystemPlan;
+import com.gkhy.exam.system.domain.QualitySystemPlanMess;
+import com.gkhy.exam.system.mapper.QualitySystemPlanMapper;
+import com.gkhy.exam.system.mapper.QualitySystemPlanMessMapper;
+import com.gkhy.exam.system.service.QualitySystemPlanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class QualitySystemPlanServiceImpl extends ServiceImpl<QualitySystemPlanMapper, QualitySystemPlan> implements QualitySystemPlanService {
+
+    @Autowired
+    private QualitySystemPlanMapper qualitySystemPlanMapper;
+
+    @Autowired
+    private QualitySystemPlanMessMapper qualitySystemPlanMessMapper;
+
+    @Override
+    public CommonPage selectQualitySystemPlanList(QualitySystemPlan qualitySystemPlan) {
+        if (!SecurityUtils.adminUser()){
+            if (qualitySystemPlan.getCompanyId()==null){
+                throw new ApiException("非管理员操作,企业id不可为空");
+            }
+        }
+        PageUtils.startPage();
+        List<QualitySystemPlan> qualitySystemPlans = qualitySystemPlanMapper.selectSystemPlanList(qualitySystemPlan);
+        for (QualitySystemPlan systemPlan : qualitySystemPlans) {
+            List<QualitySystemPlanMess> qualitySystemPlanMesses = qualitySystemPlanMessMapper.selectByPlanId(systemPlan.getId());
+            systemPlan.setPlanMesses(qualitySystemPlanMesses);
+        }
+        return CommonPage.restPage(qualitySystemPlans);
+    }
+
+    @Override
+    public CommonResult insertQualitySystemPlan(QualitySystemPlan qualitySystemPlan) {
+        List<QualitySystemPlan> qualitySystemPlans = qualitySystemPlanMapper.selectSystemPlanList(qualitySystemPlan);
+        if (qualitySystemPlans.size()>0){
+            throw new ApiException("当前企业存在重复数据,请删除后重试");
+        }
+        qualitySystemPlan.setCreateBy(SecurityUtils.getUsername());
+        qualitySystemPlan.setCreateTime(LocalDateTime.now());
+        qualitySystemPlanMapper.insert(qualitySystemPlan);
+        List<QualitySystemPlanMess> planMesses = qualitySystemPlan.getPlanMesses();
+        for (QualitySystemPlanMess planMess : planMesses) {
+            planMess.setPlanId(qualitySystemPlan.getId());
+        }
+        qualitySystemPlanMessMapper.insertPlanMess(planMesses);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult updateQualitySystemPlan(QualitySystemPlan qualitySystemPlan) {
+        qualitySystemPlan.setUpdateBy(SecurityUtils.getUsername());
+        qualitySystemPlan.setUpdateTime(LocalDateTime.now());
+        qualitySystemPlanMapper.updateById(qualitySystemPlan);
+        List<QualitySystemPlanMess> planMesses = qualitySystemPlan.getPlanMesses();
+        qualitySystemPlanMessMapper.deletedByPlanId(qualitySystemPlan.getId());
+        qualitySystemPlanMessMapper.insertPlanMess(planMesses);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult deletedQualitySystemPlan(Integer planId) {
+        QualitySystemPlan qualitySystemPlan = new QualitySystemPlan();
+        qualitySystemPlan.setId(planId);
+        qualitySystemPlan.setUpdateBy(SecurityUtils.getUsername());
+        qualitySystemPlan.setUpdateTime(LocalDateTime.now());
+        qualitySystemPlan.setDelFlag(2);
+        qualitySystemPlanMapper.updateById(qualitySystemPlan);
+        return CommonResult.success();
+    }
+}
diff --git a/multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml b/multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml
new file mode 100644
index 0000000..592ecf9
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml
@@ -0,0 +1,48 @@
+<?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.AnnualReportMapper">
+
+    <select id="selectAnnualList" resultType="com.gkhy.exam.system.domain.AnnualReport">
+        SELECT
+            ar.`id`,
+            ar.`company_id`,
+            sc.`name` AS company_name,
+            ar.`report_name`,
+            ar.`number`,
+            ar.`dept_id`,
+            sd.dept_name,
+            ar.`end_time`,
+            ar.`grant_amount`,
+            ar.`recycle_amount`,
+            ar.`recycle_rate`,
+            ar.`check_amount`,
+            ar.`year_rate`,
+            ar.`anciently_rate`,
+            ar.`research_satisficing`,
+            ar.`delivery_satisficing`,
+            ar.`sum_satisficing`,
+            ar.`suggest`,
+            ar.`agent_id`,
+            su1.`name` AS agent_name,
+            ar.`dept_user`,
+            su2.`name` AS dept_user_name,
+            ar.`del_flag`,
+            ar.`create_by`,
+            ar.`create_time`,
+            ar.`update_by`,
+            ar.`update_time`
+        FROM
+            `annual_report` ar
+                LEFT JOIN sys_company sc ON ar.company_id = sc.id
+                LEFT JOIN sys_user su1 ON ar.agent_id = su1.id
+                LEFT JOIN sys_user su2 ON ar.dept_user = su2.id
+                LEFT JOIN sys_dept sd ON ar.dept_id = sd.dept_id
+        WHERE
+            ar.del_flag = 1
+          <if test="companyId!=null">
+              AND ar.company_id = 24
+          </if>
+        ORDER BY
+            ar.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/InspectionRecordMapper.xml b/multi-system/src/main/resources/mapper/system/InspectionRecordMapper.xml
new file mode 100644
index 0000000..2a764c0
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/InspectionRecordMapper.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.InspectionRecordMapper">
+
+    <select id="selectRecordList" resultType="com.gkhy.exam.system.domain.InspectionRecord">
+        SELECT
+            ir.`id`,
+            ir.`company_id`,
+            sc.`name` AS company_name,
+            ir.`record_name`,
+            ir.`explain`,
+            ir.`sign_id`,
+            su.`name` AS sign_name,
+            ir.`sign_time`,
+            ir.`remark`,
+            ir.`del_flag`,
+            ir.`create_by`,
+            ir.`create_time`,
+            ir.`update_by`,
+            ir.`update_time`
+        FROM
+            `inspection_record` ir
+                LEFT JOIN sys_company sc ON ir.company_id = sc.id
+                LEFT JOIN sys_user su ON ir.sign_id = su.id
+        WHERE
+            ir.del_flag = 1
+        <if test="companyId !=null">
+            and ir.company_id = #{companyId}
+        </if>
+        ORDER BY
+            ir.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/InspectionRecordMessMapper.xml b/multi-system/src/main/resources/mapper/system/InspectionRecordMessMapper.xml
new file mode 100644
index 0000000..afaef5a
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/InspectionRecordMessMapper.xml
@@ -0,0 +1,19 @@
+<?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.InspectionRecordMessMapper">
+    <insert id="insertRecordMess">
+        INSERT INTO `inspection_record_mess` ( `record_id`, `materials_name`, `qualified_materials`, `appearance`, `function`, `unit`, `amount`, `check_user` )
+        VALUES
+            <foreach collection="recordMesses" separator="," item="item">
+                ( #{item.recordId}, #{item.materialsName}, #{item.qualifiedMaterials}, #{item.appearance}, #{item.function}, #{item.unit}, #{item.amount}, #{item.checkUser} )
+            </foreach>
+
+    </insert>
+    <delete id="deletedByRecordId">
+        delete  from inspection_record_mess where record_id = #{id}
+    </delete>
+
+    <select id="selectByRecordId" resultType="com.gkhy.exam.system.domain.InspectionRecordMess">
+        select * from inspection_record_mess where record_id = #{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/InspectionSpecificationMapper.xml b/multi-system/src/main/resources/mapper/system/InspectionSpecificationMapper.xml
new file mode 100644
index 0000000..70e2dbf
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/InspectionSpecificationMapper.xml
@@ -0,0 +1,27 @@
+<?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.InspectionSpecificationMapper">
+
+    <select id="selectSpecificationList" resultType="com.gkhy.exam.system.domain.InspectionSpecification">
+        SELECT
+            iss.`id`,
+            iss.`company_id`,
+            sc.`name` AS company_name,
+            iss.`file_name`,
+            iss.`file_path`,
+            iss.`specification`,
+            iss.`del_flag`,
+            iss.`create_by`,
+            iss.`create_time`,
+            iss.`update_by`,
+            iss.`update_time`
+        FROM
+            `inspection_specification` iss
+                LEFT JOIN sys_company sc ON iss.company_id = sc.id
+        WHERE
+            iss.del_flag = 1
+          AND iss.company_id = 24
+        ORDER BY
+            iss.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/ProjectDeliveryMapper.xml b/multi-system/src/main/resources/mapper/system/ProjectDeliveryMapper.xml
new file mode 100644
index 0000000..6540b2c
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ProjectDeliveryMapper.xml
@@ -0,0 +1,38 @@
+<?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.ProjectDeliveryMapper">
+
+
+    <select id="selectDeliveryList" resultType="com.gkhy.exam.system.domain.ProjectDelivery">
+
+        SELECT
+            pd.`id`,
+            pd.`company_id`,
+            sc.`name` AS company_name,
+            pd.`question_name`,
+            pd.`number`,
+            pd.`unit_name`,
+            pd.`person`,
+            pd.`address`,
+            pd.`phone`,
+            pd.`product`,
+            pd.`product_name`,
+            pd.`mess`,
+            pd.`suggest`,
+            pd.`del_flag`,
+            pd.`create_by`,
+            pd.`create_time`,
+            pd.`update_by`,
+            pd.`update_time`
+        FROM
+            `project_delivery` pd
+        LEFT JOIN sys_company sc ON pd.company_id = sc.id
+        WHERE
+            pd.del_flag = 1
+          <if test="companyId!=null">
+              AND pd.company_id = #{companyId}
+          </if>
+        ORDER BY
+            pd.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/ProjectResearchMapper.xml b/multi-system/src/main/resources/mapper/system/ProjectResearchMapper.xml
new file mode 100644
index 0000000..373eba2
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ProjectResearchMapper.xml
@@ -0,0 +1,35 @@
+<?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.ProjectResearchMapper">
+
+
+    <select id="selectResearchList" resultType="com.gkhy.exam.system.domain.ProjectResearch">
+        SELECT
+            pr.`id`,
+            pr.`company_id`,
+            sc.`name` AS company_name,
+            pr.`question_name`,
+            pr.`number`,
+            pr.`unit_name`,
+            pr.`person`,
+            pr.`address`,
+            pr.`phone`,
+            pr.`product`,
+            pr.`product_name`,
+            pr.`mess`,
+            pr.`suggest`,
+            pr.`del_flag`,
+            pr.`create_by`,
+            pr.`create_time`,
+            pr.`update_by`,
+            pr.`update_time`
+        FROM
+            `project_research` pr
+                LEFT JOIN sys_company sc ON pr.company_id = sc.id
+        WHERE
+            pr.del_flag = 1
+          AND pr.company_id = 24
+        ORDER BY
+            pr.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/PurchaseApplyMapper.xml b/multi-system/src/main/resources/mapper/system/PurchaseApplyMapper.xml
new file mode 100644
index 0000000..6544f34
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/PurchaseApplyMapper.xml
@@ -0,0 +1,42 @@
+<?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.PurchaseApplyMapper">
+
+
+    <select id="selectApplyList" resultType="com.gkhy.exam.system.domain.PurchaseApply">
+        SELECT
+            pa.`id`,
+            pa.`company_id`,
+            sc.`name` AS company_name,
+            pa.`apply_name`,
+            pa.`dept_id`,
+            sd.dept_name,
+            pa.`apply_time`,
+            pa.`apply_reason`,
+            pa.`apply_user`,
+            su1.`name` AS apply_user_name,
+            pa.`dept_user`,
+            su2.`name` AS dept_user_name,
+            pa.`finance_user`,
+            su3.`name` AS finance_user_name,
+            pa.`del_flag`,
+            pa.`create_by`,
+            pa.`create_time`,
+            pa.`update_by`,
+            pa.`update_time`
+        FROM
+            `purchase_apply` pa
+                LEFT JOIN sys_company sc ON pa.company_id = sc.id
+                LEFT JOIN sys_user su1 ON pa.apply_user = su1.id
+                LEFT JOIN sys_user su2 ON pa.dept_user = su2.id
+                LEFT JOIN sys_user su3 ON pa.finance_user = su3.id
+                LEFT JOIN sys_dept sd ON pa.dept_id = sd.dept_id
+        WHERE
+            pa.del_flag = 1
+          <if test="companyId!=null">
+              AND pa.company_id = #{companyId}
+          </if>
+        ORDER BY
+            pa.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/PurchaseApplyPlanMapper.xml b/multi-system/src/main/resources/mapper/system/PurchaseApplyPlanMapper.xml
new file mode 100644
index 0000000..d821566
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/PurchaseApplyPlanMapper.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.PurchaseApplyPlanMapper">
+    <insert id="insertPlans">
+        INSERT INTO `purchase_apply_plan` ( `apply_id`, `name`, `model`, `supplier`, `amount`, `money`, `type` )
+        VALUES
+            <foreach collection="purchaseApplyPlans" item="item" separator=",">
+                ( #{item.applyId}, #{item.name}, #{item.model}, #{item.supplier}, #{item.amount}, #{item.money}, #{item.type} )
+            </foreach>
+    </insert>
+    <delete id="deletedByIds">
+        delete  from purchase_apply_plan where apply_id =#{id}
+    </delete>
+
+
+    <select id="selectByApplyId" resultType="com.gkhy.exam.system.domain.PurchaseApplyPlan">
+        SELECT
+            `id`,
+            `apply_id`,
+            `name`,
+            `model`,
+            `supplier`,
+            `amount`,
+            `money`,
+            `type`
+        FROM
+            `purchase_apply_plan`
+        WHERE apply_id = #{id}
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/PurchaseContractMapper.xml b/multi-system/src/main/resources/mapper/system/PurchaseContractMapper.xml
new file mode 100644
index 0000000..32ba396
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/PurchaseContractMapper.xml
@@ -0,0 +1,29 @@
+<?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.PurchaseContractMapper">
+
+
+    <select id="selectContractList" resultType="com.gkhy.exam.system.domain.PurchaseContract">
+        SELECT
+            pc.`id`,
+            pc.`company_id`,
+            sc.`name` AS company_name,
+            pc.`file_name`,
+            pc.`file_path`,
+            pc.`del_flag`,
+            pc.`create_by`,
+            pc.`create_time`,
+            pc.`update_by`,
+            pc.`update_time`
+        FROM
+            `purchase_contract` pc
+                LEFT JOIN sys_company sc ON pc.company_id = sc.id
+        WHERE
+            pc.del_flag = 1
+          <if test="companyId!=null">
+              AND pc.company_id = #{companyId}
+          </if>
+        ORDER BY
+            pc.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/QualitySystemPlanMapper.xml b/multi-system/src/main/resources/mapper/system/QualitySystemPlanMapper.xml
new file mode 100644
index 0000000..c7a6e30
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/QualitySystemPlanMapper.xml
@@ -0,0 +1,37 @@
+<?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.QualitySystemPlanMapper">
+
+    <select id="selectSystemPlanList" resultType="com.gkhy.exam.system.domain.QualitySystemPlan">
+        SELECT
+            qsp.`id`,
+            qsp.`company_id`,
+            sc.`name` as company_name,
+            qsp.`year`,
+            qsp.`write_id`,
+            su1.`name` as write_name,
+            qsp.`check_id`,
+            su2.`name` as check_name,
+            qsp.`ratify_id`,
+            su2.`name` as ratify_name,
+            qsp.`del_flag`,
+            qsp.`create_by`,
+            qsp.`create_time`,
+            qsp.`update_by`,
+            qsp.`update_time`
+        FROM
+            `quality_system_plan` qsp
+                INNER JOIN sys_company sc on qsp.company_id = sc.id
+                LEFT JOIN sys_user su1 on qsp.write_id = su1.id
+                LEFT JOIN sys_user su2 on qsp.check_id = su2.id
+                LEFT JOIN sys_user su3 on qsp.ratify_id = su3.id
+        WHERE qsp.del_flag = 1
+        <if test="companyId!=null">
+            and qsp.company_id = #{companyId}
+        </if>
+        <if test="year!=null and year != ''">
+            and qsp.year = #{year}
+        </if>
+        ORDER BY qsp.create_time DESC
+    </select>
+</mapper>
diff --git a/multi-system/src/main/resources/mapper/system/QualitySystemPlanMessMapper.xml b/multi-system/src/main/resources/mapper/system/QualitySystemPlanMessMapper.xml
new file mode 100644
index 0000000..78a2813
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/QualitySystemPlanMessMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.exam.system.mapper.QualitySystemPlanMessMapper">
+    <insert id="insertPlanMess">
+        INSERT INTO `quality_system_plan_mess` ( `plan_id`, `project`, `content`, `participant`, `apply_time`, `accomplish_time`, `accomplish_status` )
+        VALUES
+            <foreach collection="planMesses" separator="," item="item">
+                (
+                #{item.planId},
+                #{item.project},
+                #{item.content},
+                #{item.participant},
+                #{item.applyTime},
+                #{item.accomplishTime},
+                #{item.accomplishStatus})
+            </foreach>
+    </insert>
+    <delete id="deletedByPlanId">
+        delete from quality_system_plan_mess where plan_id = #{id}
+    </delete>
+
+    <select id="selectByPlanId" resultType="com.gkhy.exam.system.domain.QualitySystemPlanMess">
+        select * from  quality_system_plan_mess where plan_id = #{id}
+    </select>
+</mapper>

--
Gitblit v1.9.2