From 5011ebf747ddfa41840b352c9e39cf369a8f047c Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期三, 26 十一月 2025 16:22:34 +0800
Subject: [PATCH] 情况汇总

---
 multi-system/src/main/java/com/gkhy/exam/system/domain/CompanyCertificate.java                          |    8 
 multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyStatisticsVo.java            |  102 +++++++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/EmployeeRecordMapper.java                        |    2 
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StandingBookController.java                |    1 
 multi-system/src/main/resources/mapper/system/CompanyCertificateMapper.xml                              |    6 
 multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationDevice.java                    |    7 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/CompanySummaryMapper.java                        |    3 
 multi-system/src/main/resources/mapper/system/CompanySummaryMapper.xml                                  |  105 +++++++-
 multi-system/src/main/java/com/gkhy/exam/system/domain/ContractLedger.java                              |    4 
 multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyResources.java               |   20 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/QualityTarget.java                               |    1 
 multi-system/src/main/java/com/gkhy/exam/system/domain/req/EmployeeRecordReq.java                       |    5 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java                     |    2 
 multi-system/src/main/java/com/gkhy/exam/system/domain/CompanySummary.java                              |   30 ++
 multi-system/src/main/resources/mapper/system/InternalAuditCheckMapper.xml                              |   13 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualReport.java                                |    4 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/AnnualReportServiceImpl.java               |   20 +
 multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml                                    |   78 +++--
 multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml                               |    6 
 multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyCertificateVO.java           |   27 ++
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java             |    3 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java |    3 
 multi-system/src/main/resources/mapper/system/ContractLedgerMapper.xml                                  |    3 
 multi-system/src/main/java/com/gkhy/exam/system/domain/InternalAuditCheckCatalogue.java                 |    2 
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StatisticsController.java                  |   33 ++
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/EmployeeRecordServiceImpl.java             |    2 
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/StatisticsServiceImpl.java                 |  216 ++++++++++++++++
 multi-system/src/main/java/com/gkhy/exam/system/service/StatisticsService.java                          |    8 
 multi-system/src/main/resources/mapper/system/EmployeeRecordMapper.xml                                  |    9 
 multi-system/src/main/java/com/gkhy/exam/system/mapper/InternalAuditCheckMapper.java                    |    2 
 30 files changed, 660 insertions(+), 65 deletions(-)

diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StandingBookController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StandingBookController.java
index c51b0d8..b352034 100644
--- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StandingBookController.java
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StandingBookController.java
@@ -3,7 +3,6 @@
 
 import com.gkhy.exam.common.annotation.RepeatSubmit;
 import com.gkhy.exam.common.api.CommonResult;
-import com.gkhy.exam.system.domain.Correction;
 import com.gkhy.exam.system.domain.StandingBook;
 import com.gkhy.exam.system.service.StandingBookService;
 import io.swagger.annotations.Api;
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StatisticsController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StatisticsController.java
new file mode 100644
index 0000000..4c8b952
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/StatisticsController.java
@@ -0,0 +1,33 @@
+package com.gkhy.exam.admin.controller.web;
+
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.service.StatisticsService;
+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.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/system/statistics")
+@Api(tags = "统计管理")
+public class StatisticsController {
+
+    @Autowired
+    private StatisticsService statisticsService;
+
+    @ApiOperation(value = "企业的基本情况")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = true, value = "公司id"),
+            @ApiImplicitParam(paramType = "query", name = "year", dataType = "String", required = true, value = "年")
+    })
+    @GetMapping("/getCompanyStatistics")
+    public CommonResult getCompanyStatistics(@RequestParam Integer companyId , @RequestParam String year){
+        return CommonResult.success(statisticsService.getCompanyStatistics(companyId, year));
+    }
+
+}
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
index 476f7a6..39c5e58 100644
--- 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
@@ -28,6 +28,10 @@
     @TableField("company_id")
     private Integer companyId;
 
+    @ApiModelProperty(value = "年度")
+    @TableField("year")
+    private String year;
+
     @ApiModelProperty(value = "企业名称")
     @TableField(exist = false)
     private String companyName;
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationDevice.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationDevice.java
index 3cb34d4..09b843e 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationDevice.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/AnnualVerificationDevice.java
@@ -11,6 +11,8 @@
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * <p>
  * 年度检定计划设备表
@@ -70,6 +72,11 @@
     @TableField("status")
     private String status;
 
+    @ApiModelProperty("类型1软件2硬件")
+    @NotNull(message = "类型不能为空")
+    @TableField("plan_type")
+    private Integer planType;
+
     @ApiModelProperty("删除标志(0为删除,1删除,默认0)")
     @TableField("del_flag")
     private Integer delFlag;
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanyCertificate.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanyCertificate.java
index c4228fc..47d5565 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanyCertificate.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanyCertificate.java
@@ -4,15 +4,14 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.time.LocalDateTime;
-import java.util.Date;
 
 @Getter
 @Setter
@@ -44,6 +43,11 @@
     @TableField("effective_time")
     private LocalDateTime effectiveTime;
 
+    @ApiModelProperty(value = "企业证书获取时间")
+    @TableField("get_time")
+    @NotNull(message = "获取时间不能为空")
+    private LocalDateTime getTime;
+
     @ApiModelProperty(value = "证书名称")
     @TableField("file_name")
     private String fileName;
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanySummary.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanySummary.java
index 2db6ea4..1188691 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanySummary.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/CompanySummary.java
@@ -12,7 +12,6 @@
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.time.LocalDateTime;
-import java.util.Date;
 
 @Getter
 @Setter
@@ -37,6 +36,35 @@
     @TableField("company_summary")
     private String companySummary;
 
+    @ApiModelProperty(value = "企业类型1民营2私营3企事业单位")
+    @TableField("company_type")
+    private Integer companyType;
+
+    @ApiModelProperty(value = "行业")
+    @TableField("industry")
+    private String industry;
+
+    @ApiModelProperty(value = "法人编号")
+    @TableField("legal_person_code")
+    private String legalPersonCode;
+
+    @ApiModelProperty(value = "法人代表")
+    @TableField("legal_person")
+    private String legalPerson;
+
+    @ApiModelProperty(value = "注册资本")
+    @TableField("registered_capital")
+    private String registeredCapital;
+
+    @ApiModelProperty(value = "总办公地址")
+    @TableField("office_address")
+    private String officeAddress;
+
+    @ApiModelProperty(value = "其他分场所地址")
+    @TableField("other_address")
+    private String otherAddress;
+
+
     @ApiModelProperty(value = "营业执照")
     @TableField("file_path")
     private String filePath;
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ContractLedger.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ContractLedger.java
index 58cb8c7..30b30bb 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/ContractLedger.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ContractLedger.java
@@ -42,6 +42,10 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate signDate;
 
+    @ApiModelProperty(value = "交付0否1是")
+    @TableField("deliver")
+    private Integer deliver;
+
     @TableField("del_flag")
     private Integer delFlag;
 
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/InternalAuditCheckCatalogue.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/InternalAuditCheckCatalogue.java
index c602720..17b0eca 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/InternalAuditCheckCatalogue.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/InternalAuditCheckCatalogue.java
@@ -14,7 +14,7 @@
 
 @Getter
 @Setter
-@TableName("InternalAuditCheckCatalogue")
+@TableName("internal_audit_check_catalogue")
 @ApiModel(value = "internalAuditCheckCatalogue对象", description = "内审检查标准款项")
 public class InternalAuditCheckCatalogue implements Serializable {
 
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityTarget.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityTarget.java
index d02a882..c97a415 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityTarget.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/QualityTarget.java
@@ -84,6 +84,7 @@
     @TableField("update_time")
     private LocalDateTime updateTime;
 
+    @TableField(exist = false)
     private List<QualityTargetMess> qualityTargetMesses;
 
 
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/req/EmployeeRecordReq.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/req/EmployeeRecordReq.java
index e4f3ff0..e277ca0 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/req/EmployeeRecordReq.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/req/EmployeeRecordReq.java
@@ -29,4 +29,9 @@
 
     @ApiModelProperty("职称1、初级2中级3高级")
     private String positional;
+
+    @ApiModelProperty("开始时间")
+    private String startTime;
+    @ApiModelProperty("结束时间")
+    private String endTime;
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyCertificateVO.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyCertificateVO.java
new file mode 100644
index 0000000..b141cab
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyCertificateVO.java
@@ -0,0 +1,27 @@
+package com.gkhy.exam.system.domain.vo.statistic;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("企业证书统计")
+public class CompanyCertificateVO {
+
+    @ApiModelProperty(value = "企业资质证书名称")
+    private String certificateName;
+
+    @ApiModelProperty(value = "企业资质证书编号")
+    private String certificateNum;
+
+    @ApiModelProperty(value = "企业证书有效期")
+    private LocalDateTime effectiveTime;
+
+    @ApiModelProperty(value = "企业证书获取时间")
+    private LocalDateTime getTime;
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyResources.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyResources.java
new file mode 100644
index 0000000..89d9bcb
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyResources.java
@@ -0,0 +1,20 @@
+//package com.gkhy.exam.system.domain.vo.statistic;
+//
+//import io.swagger.annotations.ApiModel;
+//import io.swagger.annotations.ApiModelProperty;
+//import lombok.Data;
+//
+//@Data
+//@ApiModel("企业资源和能力情况")
+//public class CompanyResources {
+//
+//    @ApiModelProperty("计算机总数")
+//    private Integer computerTotal;
+//    @ApiModelProperty("其他办公设备")
+//    private Integer otherOfficeEquipment;
+//    @ApiModelProperty("生产设备")
+//    private Integer productionEquipment;
+//    @ApiModelProperty("检测设备")
+//    private Integer detectionEquipment;
+//
+//}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyStatisticsVo.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyStatisticsVo.java
new file mode 100644
index 0000000..da8361f
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/statistic/CompanyStatisticsVo.java
@@ -0,0 +1,102 @@
+package com.gkhy.exam.system.domain.vo.statistic;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("企业的基本情况统计")
+public class CompanyStatisticsVo {
+
+    @ApiModelProperty(value = "企业ID")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "企业名称")
+    private String companyName;
+
+    @ApiModelProperty(value = "企业类型1民营2私营3企事业单位")
+    private Integer companyType;
+
+    @ApiModelProperty(value = "行业")
+    private String industry;
+
+    @ApiModelProperty(value = "法人编号")
+    private String legalPersonCode;
+
+    @ApiModelProperty(value = "法人代表")
+    private String legalPerson;
+
+    @ApiModelProperty(value = "注册资本")
+    private String registeredCapital;
+
+    @ApiModelProperty(value = "总办公地址")
+    private String officeAddress;
+
+    @ApiModelProperty(value = "其他分场所地址")
+    private String otherAddress;
+
+    @ApiModelProperty(value = "员工总数")
+    private Integer totalEmployee;
+
+    @ApiModelProperty(value = "专业技术人员")
+    private Integer professionalEmployee;
+
+    @ApiModelProperty(value = "企业证书列表")
+    List<CompanyCertificateVO> companyCertificateVOList;
+
+    @ApiModelProperty("2)计算机总数")
+    private Integer computerTotal;
+    @ApiModelProperty("2)其他办公设备数量")
+    private Integer otherOfficeEquipment;
+    @ApiModelProperty("2)生产设备数量")
+    private Integer productionEquipment;
+    @ApiModelProperty("2)检测设备数量")
+    private Integer detectionEquipment;
+
+    @ApiModelProperty("3)质量方针内容")
+    private String companyQualityPolicy;
+
+    @ApiModelProperty("3)年份")
+    private String year;
+
+    @ApiModelProperty("3)公司质量目标内容")
+    private List<String> companyQualityTarget;
+
+    @ApiModelProperty("4)合同数量")
+    private Integer contractLedger;
+
+    @ApiModelProperty("4)已交付合同")
+    private Integer deliveredContract;
+
+    @ApiModelProperty("4)满意度")
+    private String sumSatisficing;
+
+    @ApiModelProperty("4)专利数量")
+    private Integer patent;
+
+    @ApiModelProperty("5)培训计划")
+    private String trainPlanName;
+
+    @ApiModelProperty("6)内审不符合数目")
+    private Integer internalAuditCheckResult;
+
+    @ApiModelProperty("6)管审时间改进项")
+    private Integer conStatisticNum;
+
+    @ApiModelProperty("7)外包过程")
+    private String outsourcedProduct;
+
+    @ApiModelProperty(value = "8)员工总数新增数")
+    private Integer totalEmployeeAdd;
+
+    @ApiModelProperty(value = "8)专业技术人员新增数")
+    private Integer professionalEmployeeAdd;
+
+    @ApiModelProperty("8)检测设备数量新增数")
+    private Integer detectionEquipmentAdd;
+
+    @ApiModelProperty("8)培训计划已完成数")
+    private Integer trainPlanCompleted;
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/CompanySummaryMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/CompanySummaryMapper.java
index 2e715a2..334948b 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/mapper/CompanySummaryMapper.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/CompanySummaryMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gkhy.exam.system.domain.CompanySummary;
+import com.gkhy.exam.system.domain.vo.statistic.CompanyStatisticsVo;
 import org.mapstruct.Mapper;
 
 import java.util.List;
@@ -11,4 +12,6 @@
     List<CompanySummary> selectCompanySummaryList(Integer companyId);
 
     int updateSummaryById(CompanySummary companySummary);
+
+    CompanyStatisticsVo selectCompanyStatistics(Integer companyId);
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java
index 67980ce..d23d1b2 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ContinuousImproveMapper.java
@@ -14,4 +14,6 @@
     List<ContinuousImprove> selectByCompanyId(ContinuousImprove continuousImprove);
 
     ContinuousImprove selectListById(@Param("improveId") Integer improveId);
+
+    int getConStatistic(@Param("companyId") Integer companyId, @Param("year") String year);
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/EmployeeRecordMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/EmployeeRecordMapper.java
index a725ecb..8616cb0 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/mapper/EmployeeRecordMapper.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/EmployeeRecordMapper.java
@@ -20,5 +20,5 @@
 public interface EmployeeRecordMapper extends BaseMapper<EmployeeRecord> {
 
     List<EmployeeRecordVO> selectEmployeeRecordList(EmployeeRecordReq req);
-    List<EmployeeRecord> getEmployeeRecordList(Long companyId);
+    List<EmployeeRecordVO> getEmployeeRecordList(Long companyId);
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/InternalAuditCheckMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InternalAuditCheckMapper.java
index 532804f..5a79bab 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/mapper/InternalAuditCheckMapper.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/InternalAuditCheckMapper.java
@@ -20,5 +20,7 @@
 public interface InternalAuditCheckMapper extends BaseMapper<InternalAuditCheck> {
     List<InternalAuditCheck> selectInternalAuditCheckList(@Param("companyId") Integer companyId);
 
+    int getStatisticData(@Param("companyId") Integer companyId, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
 
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/StatisticsService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/StatisticsService.java
new file mode 100644
index 0000000..7b25ce8
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/StatisticsService.java
@@ -0,0 +1,8 @@
+package com.gkhy.exam.system.service;
+
+import com.gkhy.exam.system.domain.vo.statistic.CompanyStatisticsVo;
+
+public interface StatisticsService {
+
+    CompanyStatisticsVo getCompanyStatistics(Integer companyId,String year);
+}
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
index fac860d..1004231 100644
--- 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
@@ -1,5 +1,6 @@
 package com.gkhy.exam.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.exam.common.api.CommonPage;
 import com.gkhy.exam.common.api.CommonResult;
@@ -24,8 +25,8 @@
 
     @Override
     public CommonPage selectAnnualList(AnnualReport annualReport) {
-        if (!SecurityUtils.adminUser()){
-            if (annualReport.getCompanyId()==null){
+        if (!SecurityUtils.adminUser()) {
+            if (annualReport.getCompanyId() == null) {
                 throw new ApiException("非管理员操作,企业id不可为空");
             }
         }
@@ -36,6 +37,13 @@
 
     @Override
     public CommonResult insertAnnual(AnnualReport annualReport) {
+        LambdaQueryWrapper<AnnualReport> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AnnualReport::getCompanyId, annualReport.getCompanyId())
+                .eq(AnnualReport::getYear, annualReport.getYear())
+                .eq(AnnualReport::getDelFlag, 1);
+        if (annualReportMapper.selectCount(queryWrapper) > 0) {
+            return CommonResult.failed("该年度报表已存在");
+        }
         annualReport.setCreateBy(SecurityUtils.getUsername());
         annualReport.setCreateTime(LocalDateTime.now());
         annualReportMapper.insert(annualReport);
@@ -44,6 +52,14 @@
 
     @Override
     public CommonResult updateAnnual(AnnualReport annualReport) {
+        LambdaQueryWrapper<AnnualReport> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AnnualReport::getCompanyId, annualReport.getCompanyId())
+                .eq(AnnualReport::getYear, annualReport.getYear())
+                .eq(AnnualReport::getDelFlag, 1)
+                .ne(AnnualReport::getId, annualReport.getId());
+        if (annualReportMapper.selectCount(queryWrapper) > 0) {
+            return CommonResult.failed("该年度报表已存在");
+        }
         annualReport.setUpdateBy(SecurityUtils.getUsername());
         annualReport.setUpdateTime(LocalDateTime.now());
         annualReportMapper.updateById(annualReport);
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/EmployeeRecordServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/EmployeeRecordServiceImpl.java
index 5b22abe..bd64fa9 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/EmployeeRecordServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/EmployeeRecordServiceImpl.java
@@ -54,7 +54,7 @@
 //        LambdaQueryWrapper<EmployeeRecord>  queryWrapper = new LambdaQueryWrapper<>();
 //        queryWrapper.eq(EmployeeRecord::getCompanyId, companyId);
 //        queryWrapper.eq(EmployeeRecord::getDelFlag, 0);
-        List<EmployeeRecord> employeeRecords = employeeRecordMapper.getEmployeeRecordList(companyId);
+        List<EmployeeRecordVO> employeeRecords = employeeRecordMapper.getEmployeeRecordList(companyId);
         return CommonResult.success(employeeRecords);
     }
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java
index db40d07..3d26086 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityEconomyServiceImpl.java
@@ -4,6 +4,7 @@
 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.QualityEconomy;
@@ -25,7 +26,7 @@
     public CommonPage selectQualityEconomyList(QualityEconomy qualityEconomy) {
         if (!SecurityUtils.adminUser()){
             if (qualityEconomy.getCompanyId()==null){
-                throw new RuntimeException("非管理员操作,查询条件不可为空");
+                throw new ApiException("非管理员操作,查询条件不可为空");
             }
         }
         PageUtils.startPage();
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java
index 67962da..fc189bc 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/QualityInformationExteriorServiceImpl.java
@@ -3,6 +3,7 @@
 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.QualityInformationExterior;
@@ -24,7 +25,7 @@
     public CommonPage selectQualityInformationExteriorList(QualityInformationExterior qualityInformationExterior) {
         if (!SecurityUtils.adminUser()){
             if (qualityInformationExterior.getCompanyId()==null){
-                throw new RuntimeException("非管理员操作,查询条件不可为空");
+                throw new ApiException("非管理员操作,查询条件不可为空");
             }
         }
         PageUtils.startPage();
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StatisticsServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StatisticsServiceImpl.java
new file mode 100644
index 0000000..7819b36
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StatisticsServiceImpl.java
@@ -0,0 +1,216 @@
+package com.gkhy.exam.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.system.domain.*;
+import com.gkhy.exam.system.domain.req.EmployeeRecordReq;
+import com.gkhy.exam.system.domain.vo.EmployeeRecordVO;
+import com.gkhy.exam.system.domain.vo.statistic.CompanyStatisticsVo;
+import com.gkhy.exam.system.mapper.*;
+import com.gkhy.exam.system.service.StatisticsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class StatisticsServiceImpl implements StatisticsService {
+
+    @Autowired
+    private CompanySummaryMapper companySummaryMapper;
+    @Autowired
+    private EmployeeRecordMapper employeeRecordMapper;
+
+    @Autowired
+    private StandingBookMapper standingBookMapper;
+
+    @Autowired
+    private AnnualVerificationPlanMapper annualVerificationPlanMapper;
+
+    @Autowired
+    private AnnualVerificationDeviceMapper annualVerificationDeviceMapper;
+    @Autowired
+    private CompanyQualityPolicyMapper companyQualityPolicyMapper;
+
+    @Autowired
+    private QualityMapper qualityMapper;
+    @Autowired
+    private QualityTargetMapper qualityTargetMapper;
+
+    @Autowired
+    private ContractLedgerMapper contractLedgerMapper;
+
+    @Autowired
+    private AnnualReportMapper annualReportMapper;
+
+    @Autowired
+    private InternalKnowledgeMapper internalKnowledgeMapper;
+
+    @Autowired
+    private TrainPlanMapper trainPlanMapper;
+
+    @Autowired
+    private InternalAuditCheckMapper internalAuditCheckMapper;
+
+    @Autowired
+    private ContinuousImproveMapper continuousImproveMapper;
+
+    @Autowired
+    private OutsourcedProductMapper outsourcedProductMapper;
+
+    @Override
+    public CompanyStatisticsVo getCompanyStatistics(Integer companyId, String year) {
+
+        String yearBegin = year + "-01-01 00:00:00";
+        String yearEnd = year + "-12-31 23:59:59";
+
+        CompanyStatisticsVo companyStatisticsVo = companySummaryMapper.selectCompanyStatistics(companyId);
+        if (companyStatisticsVo == null) {
+            return companyStatisticsVo;
+        }
+        companyStatisticsVo.setYear(year);
+        EmployeeRecordReq req = new EmployeeRecordReq();
+        req.setCompanyId(companyId.longValue());
+        List<EmployeeRecordVO> sysUsers = employeeRecordMapper.selectEmployeeRecordList(req);
+        int totalUser = sysUsers.size();
+        long countJS = sysUsers.stream()
+                .filter(user -> user.getPersonType() != null)
+                .filter(user -> user.getPersonType() == 1)  // 技术类
+                .count();
+        companyStatisticsVo.setTotalEmployee(totalUser);
+        companyStatisticsVo.setProfessionalEmployee(
+                countJS > 0 ? (int) countJS : 0
+        );
+
+        //企业资源和能力情况
+
+        LambdaQueryWrapper<StandingBook> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(StandingBook::getCompanyId, companyId);
+        queryWrapper.eq(StandingBook::getDelFlag, 0);
+        List<StandingBook> standingBooks = standingBookMapper.selectList(queryWrapper);
+        //计算计算机总数
+        long computerTotal = standingBooks.stream()
+                .filter(st -> st.getDeviceType() != null)
+                .filter(st -> st.getDeviceType() == 1)
+                .count();
+        //生成设备
+        long productionEquipment = standingBooks.stream()
+                .filter(st -> st.getDeviceType() != null)
+                .filter(st -> st.getDeviceType() == 5)
+                .count();
+        companyStatisticsVo.setComputerTotal(computerTotal > 0 ? (int) computerTotal : 0);
+        companyStatisticsVo.setProductionEquipment(productionEquipment > 0 ? (int) productionEquipment : 0);
+        companyStatisticsVo.setOtherOfficeEquipment(standingBooks.size() - (int) computerTotal - (int) productionEquipment);
+
+        LambdaQueryWrapper<AnnualVerificationPlan> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(AnnualVerificationPlan::getCompanyId, companyId).eq(AnnualVerificationPlan::getDelFlag, 0).eq(AnnualVerificationPlan::getYear, year);
+        List<AnnualVerificationPlan> annualVerificationPlans = annualVerificationPlanMapper.selectList(queryWrapper1);
+        if (!annualVerificationPlans.isEmpty()) {
+            AnnualVerificationPlan annualVerificationPlan = annualVerificationPlans.get(0);
+            LambdaQueryWrapper<AnnualVerificationDevice> queryWrapper2 = new LambdaQueryWrapper<>();
+            queryWrapper2.eq(AnnualVerificationDevice::getAnnualVerificationId, annualVerificationPlan.getId()).eq(AnnualVerificationDevice::getDelFlag, 0).eq(AnnualVerificationDevice::getPlanType, 2);
+            List<AnnualVerificationDevice> annualVerificationDevices = annualVerificationDeviceMapper.selectList(queryWrapper2);
+            companyStatisticsVo.setDetectionEquipment(annualVerificationDevices.size());
+            queryWrapper2.between(AnnualVerificationDevice::getCreateTime, yearBegin, yearEnd);
+            List<AnnualVerificationDevice> annualVerificationDevices1 = annualVerificationDeviceMapper.selectList(queryWrapper2);
+            companyStatisticsVo.setDetectionEquipmentAdd(annualVerificationDevices1.size());
+        } else {
+            companyStatisticsVo.setDetectionEquipment(0);
+        }
+
+        LambdaQueryWrapper<CompanyQualityPolicy> queryWrapper3 = new LambdaQueryWrapper<>();
+        queryWrapper3.eq(CompanyQualityPolicy::getCompanyId, companyId).eq(CompanyQualityPolicy::getDelFlag, 1);
+        List<CompanyQualityPolicy> qualities = companyQualityPolicyMapper.selectList(queryWrapper3);
+        if (!qualities.isEmpty()) {
+            companyStatisticsVo.setCompanyQualityPolicy(qualities.get(0).getPolicy());
+        }
+
+
+        LambdaQueryWrapper<Quality> queryWrapper4 = new LambdaQueryWrapper<>();
+        queryWrapper4.eq(Quality::getCompanyId, companyId).eq(Quality::getDelFlag, 1).eq(Quality::getYear, year);
+        List<Quality> qualities1 = qualityMapper.selectList(queryWrapper4);
+        if (!qualities1.isEmpty()) {
+            LambdaQueryWrapper<QualityTarget> queryWrapper5 = new LambdaQueryWrapper<>();
+            queryWrapper5.eq(QualityTarget::getQualityId, qualities1.get(0).getId()).eq(QualityTarget::getDelFlag, 1).orderByDesc(QualityTarget::getCreateTime);
+            List<QualityTarget> qualityTargets = qualityTargetMapper.selectList(queryWrapper5);
+            if (!qualityTargets.isEmpty()) {
+                List<String> collect = qualityTargets.stream().map(QualityTarget::getMessage).collect(Collectors.toList());
+                companyStatisticsVo.setCompanyQualityTarget(collect);
+            }
+        }
+        LambdaQueryWrapper<ContractLedger> queryWrapper6 = new LambdaQueryWrapper<>();
+        queryWrapper6.eq(ContractLedger::getCompanyId, companyId).eq(ContractLedger::getDelFlag, 1).between(ContractLedger::getSignDate, yearBegin, yearEnd);
+
+        List<ContractLedger> contractLedgers = contractLedgerMapper.selectList(queryWrapper6);
+        companyStatisticsVo.setContractLedger(contractLedgers.size());
+        if (!contractLedgers.isEmpty()) {
+            Long count = contractLedgers.stream().filter(contractLedger -> contractLedger.getDeliver() == 1).count();
+            companyStatisticsVo.setDeliveredContract(count.intValue());
+        } else {
+            companyStatisticsVo.setDeliveredContract(0);
+        }
+        //满意度
+        LambdaQueryWrapper<AnnualReport> queryWrapper7 = new LambdaQueryWrapper<>();
+        queryWrapper7.eq(AnnualReport::getCompanyId, companyId).eq(AnnualReport::getDelFlag, 1).eq(AnnualReport::getYear, year);
+        AnnualReport annualReport = annualReportMapper.selectOne(queryWrapper7);
+        if (annualReport != null) {
+            companyStatisticsVo.setSumSatisficing(annualReport.getSumSatisficing());
+        } else {
+            companyStatisticsVo.setSumSatisficing("0");
+        }
+        //只是产权数量
+        LambdaQueryWrapper<InternalKnowledge> queryWrapper8 = new LambdaQueryWrapper<>();
+        queryWrapper8.eq(InternalKnowledge::getCompanyId, companyId).eq(InternalKnowledge::getDelFlag, 0)
+                .between(InternalKnowledge::getCreateTime, yearBegin, yearEnd);
+        Long l = internalKnowledgeMapper.selectCount(queryWrapper8);
+        companyStatisticsVo.setPatent(l.intValue());
+        //培训计划名称
+        LambdaQueryWrapper<TrainPlan> queryWrapper9 = new LambdaQueryWrapper<>();
+        queryWrapper9.eq(TrainPlan::getCompanyId, companyId).eq(TrainPlan::getDelFlag, 1).between(TrainPlan::getTrainTime, yearBegin, yearEnd);
+        List<TrainPlan> trainPlans = trainPlanMapper.selectList(queryWrapper9);
+        if (!trainPlans.isEmpty()) {
+            String courseNames = trainPlans.stream()
+                    .map(TrainPlan::getTrainName)
+                    .collect(Collectors.joining(","));
+            companyStatisticsVo.setTrainPlanName(courseNames);
+        }
+        //内审检查不符合
+        int statisticData = internalAuditCheckMapper.getStatisticData(companyId, yearBegin, yearEnd);
+        companyStatisticsVo.setInternalAuditCheckResult(statisticData);
+        //改进项
+        int conStatistic = continuousImproveMapper.getConStatistic(companyId, year);
+        companyStatisticsVo.setConStatisticNum(conStatistic);
+        LambdaQueryWrapper<OutsourcedProduct> queryWrapper10 = new LambdaQueryWrapper<>();
+        queryWrapper10.eq(OutsourcedProduct::getCompanyId, companyId).eq(OutsourcedProduct::getDelFlag, 0)
+                .between(OutsourcedProduct::getCreateTime, yearBegin, yearEnd);
+        List<OutsourcedProduct> outsourcedProducts = outsourcedProductMapper.selectList(queryWrapper10);
+        if (!outsourcedProducts.isEmpty()){
+            String ps = outsourcedProducts.stream()
+                    .map(OutsourcedProduct::getProductName)
+                    .collect(Collectors.joining(","));
+            companyStatisticsVo.setOutsourcedProduct(ps);
+        }
+
+        req.setCompanyId(companyId.longValue());
+        req.setStartTime(yearBegin);
+        req.setEndTime(yearEnd);
+        List<EmployeeRecordVO> sysUsersAdd = employeeRecordMapper.selectEmployeeRecordList(req);
+        int totalUserAdd = sysUsersAdd.size();
+        long countJSAdd = sysUsersAdd.stream()
+                .filter(user -> user.getPersonType() != null)
+                .filter(user -> user.getPersonType() == 1)  // 技术类
+                .count();
+        companyStatisticsVo.setTotalEmployeeAdd(totalUserAdd);
+        companyStatisticsVo.setProfessionalEmployeeAdd(
+                countJSAdd > 0 ? (int) countJSAdd : 0
+        );
+
+        queryWrapper9.eq(TrainPlan::getStatus, 0);
+        Long l1 = trainPlanMapper.selectCount(queryWrapper9);
+        companyStatisticsVo.setTrainPlanCompleted(l1.intValue());
+
+        return companyStatisticsVo;
+    }
+
+}
diff --git a/multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml b/multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml
index 592ecf9..29aec7f 100644
--- a/multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/AnnualReportMapper.xml
@@ -4,45 +4,49 @@
 
     <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`
+        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`,
+        ar.`year`
         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
+        `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>
+        ar.del_flag = 1
+        <if test="companyId!=null">
+            AND ar.company_id = 24
+        </if>
+        <if test="year!=null">
+            AND ar.year = #{year}
+        </if>
         ORDER BY
-            ar.create_time DESC
+        ar.create_time DESC
     </select>
 </mapper>
diff --git a/multi-system/src/main/resources/mapper/system/CompanyCertificateMapper.xml b/multi-system/src/main/resources/mapper/system/CompanyCertificateMapper.xml
index e2fac32..af45afa 100644
--- a/multi-system/src/main/resources/mapper/system/CompanyCertificateMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/CompanyCertificateMapper.xml
@@ -28,6 +28,9 @@
             <if test="delFlag != null and delFlag != ''" >
                 del_flag = #{delFlag},
             </if>
+            <if test="getTime != null" >
+                get_time = #{getTime},
+            </if>
             <if test="createBy != null" >
                 create_by = #{createBy},
             </if>
@@ -59,7 +62,8 @@
             cc.`create_by`,
             cc.`create_time`,
             cc.`update_by`,
-            cc.`update_time`
+            cc.`update_time`,
+            cc.get_time
         FROM
             company_certificate cc
         left join sys_company sc on cc.company_id = sc.id
diff --git a/multi-system/src/main/resources/mapper/system/CompanySummaryMapper.xml b/multi-system/src/main/resources/mapper/system/CompanySummaryMapper.xml
index 42f9a2c..6acb0e7 100644
--- a/multi-system/src/main/resources/mapper/system/CompanySummaryMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/CompanySummaryMapper.xml
@@ -13,6 +13,27 @@
             <if test="companySummary != null and companySummary !=''" >
                 company_summary = #{companySummary},
             </if>
+            <if test="companyType != null " >
+                company_type = #{companyType},
+            </if>
+            <if test="industry != null and industry != ''" >
+                industry = #{industry},
+            </if>
+            <if test="legalPersonCode != null and legalPersonCode != ''" >
+                legal_person_code = #{legalPersonCode},
+            </if>
+            <if test="legalPerson != null and legalPerson != ''" >
+                legal_person = #{legalPerson},
+            </if>
+            <if test="registeredCapital != null and registeredCapital != ''" >
+                registered_capital = #{registeredCapital},
+            </if>
+            <if test="officeAddress != null and officeAddress != ''" >
+                office_address = #{officeAddress},
+            </if>
+            <if test="otherAddress != null and otherAddress != ''" >
+                other_address = #{otherAddress},
+            </if>
             <if test="filePath!=null and filePath != ''">
                 file_path = #{filePath},
             </if>
@@ -40,26 +61,82 @@
 
     <select id="selectCompanySummaryList" resultType="com.gkhy.exam.system.domain.CompanySummary">
         SELECT
-            cs.`id`,
-            cs.`company_id`,
-            sc.`name` as company_name,
-            cs.`company_summary`,
-            cs.file_path,
-            cs.file_name,
-            cs.`del_flag`,
-            cs.`create_by`,
-            cs.`create_time`,
-            cs.`update_by`,
-            cs.`update_time`
+        cs.`id`,
+        cs.`company_id`,
+        sc.`name` as company_name,
+        cs.`company_summary`,
+        cs.file_path,
+        cs.file_name,
+        cs.`del_flag`,
+        cs.`create_by`,
+        cs.`create_time`,
+        cs.`update_by`,
+        cs.`update_time`,
+        cs.company_type,
+        cs.industry,
+        cs.legal_person_code,
+        cs.legal_person,
+        cs.registered_capital,
+        cs.office_address,
+        cs.other_address
         FROM
-            company_summary cs
+        company_summary cs
         left join sys_company sc on cs.company_id = sc.id
         WHERE
-             cs.del_flag = 1
+        cs.del_flag = 1
         <if test="companyId!=null and companyId!=''">
             and cs.company_id = #{companyId}
         </if>
         ORDER BY
-            cs.create_time DESC
+        cs.create_time DESC
     </select>
+
+
+
+
+    <resultMap id="CompanyStatisticsMap" type="com.gkhy.exam.system.domain.vo.statistic.CompanyStatisticsVo">
+
+        <result property="companyId" column="company_id"/>
+        <result property="companyName" column="company_name"/>
+        <result property="companyType" column="company_type"/>
+        <result property="industry" column="industry"/>
+        <result property="legalPersonCode" column="legal_person_code"/>
+        <result property="legalPerson" column="legal_person"/>
+        <result property="registeredCapital" column="registered_capital"/>
+        <result property="officeAddress" column="office_address"/>
+        <result property="otherAddress" column="other_address"/>
+<!--        <result property="totalEmployee" column="total_employee"/>-->
+<!--        <result property="professionalEmployee" column="professional_employee"/>-->
+        <collection property="companyCertificateVOList" javaType="java.util.List" resultMap="CompanyCertificateVO"/>
+    </resultMap>
+    <resultMap id="CompanyCertificateVO" type="com.gkhy.exam.system.domain.vo.statistic.CompanyCertificateVO">
+        <result property="certificateName" column="certificate_name"/>
+        <result property="certificateNum" column="certificate_num"/>
+        <result property="effectiveTime" column="effective_time"/>
+        <result property="getTime" column="get_time"/>
+    </resultMap>
+
+    <select id="selectCompanyStatistics" resultMap="CompanyStatisticsMap" parameterType="int">
+        SELECT cs.`company_id`,
+               sc.`name` as company_name,
+               cs.company_type,
+               cs.industry,
+               cs.legal_person_code,
+               cs.legal_person,
+               cs.registered_capital,
+               cs.office_address,
+               cs.other_address,
+               cc.certificate_name,
+               cc.certificate_num,
+               cc.effective_time,
+               cc.get_time
+        FROM company_summary cs
+                 inner join sys_company sc on cs.company_id = sc.id and sc.del_flag = 0
+                 left join company_certificate cc on cs.company_id = cc.company_id and cc.del_flag = 1
+        WHERE cs.del_flag = 1
+          and cs.company_id = #{companyId}
+    </select>
+
+
+
 </mapper>
diff --git a/multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml b/multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml
index 2671884..339d8f5 100644
--- a/multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/ContinuousImproveMapper.xml
@@ -90,4 +90,10 @@
             ci.del_flag = 0
             and ci.id = #{improveId}
     </select>
+
+    <select id="getConStatistic" resultType="int">
+        SELECT count(*) FROM `continuous_improve_plan` aa
+                                 INNER JOIN continuous_improve bb on aa.improve_id =bb.id
+        where bb.del_flag = 0 and bb.company_id = #{companyId} and bb.`year` = #{year}
+    </select>
 </mapper>
diff --git a/multi-system/src/main/resources/mapper/system/ContractLedgerMapper.xml b/multi-system/src/main/resources/mapper/system/ContractLedgerMapper.xml
index a764d7b..74d3616 100644
--- a/multi-system/src/main/resources/mapper/system/ContractLedgerMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/ContractLedgerMapper.xml
@@ -14,7 +14,8 @@
             cl.`create_by`,
             cl.`create_time`,
             cl.`update_by`,
-            cl.`update_time`
+            cl.`update_time`,
+            cl.`deliver`
         FROM
             `contract_ledger` cl
                 LEFT JOIN sys_company sc ON cl.company_id = sc.id
diff --git a/multi-system/src/main/resources/mapper/system/EmployeeRecordMapper.xml b/multi-system/src/main/resources/mapper/system/EmployeeRecordMapper.xml
index 901405a..a571872 100644
--- a/multi-system/src/main/resources/mapper/system/EmployeeRecordMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/EmployeeRecordMapper.xml
@@ -32,10 +32,17 @@
         <if test="positional != null">
             and aa.positional = #{positional}
         </if>
+        <if test="startTime != '' and startTime != null" >
+            and aa.create_time &gt;= #{startTime}
+        </if>
+        <if test="endTime != '' and endTime != null" >
+            and aa.create_time &lt;= #{endTime}
+        </if>
+        order by aa.create_time desc
     </select>
 
     <select id="getEmployeeRecordList" parameterType="long"
-            resultType="com.gkhy.exam.system.domain.EmployeeRecord">
+            resultType="com.gkhy.exam.system.domain.vo.EmployeeRecordVO">
         select
         a.name,
         aa.employee_id employeeId, aa.user_id userId
diff --git a/multi-system/src/main/resources/mapper/system/InternalAuditCheckMapper.xml b/multi-system/src/main/resources/mapper/system/InternalAuditCheckMapper.xml
index d4cd614..04aa843 100644
--- a/multi-system/src/main/resources/mapper/system/InternalAuditCheckMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/InternalAuditCheckMapper.xml
@@ -33,4 +33,17 @@
             resultType="com.gkhy.exam.system.domain.InternalAuditCheckCatalogue">
 
     </select>
+
+
+    <select id ="getStatisticData" resultType="int">
+        select count(*)
+        from internal_audit_check_content aa
+                 INNER JOIN internal_audit_check_catalogue bb on aa.check_catalogue_id = bb.id
+                 INNER JOIN internal_audit_check cc on bb.check_id = cc.id
+        where aa.del_flag = 0
+          and bb.del_flag = 0
+          and cc.del_flag = 0
+          and aa.result != 1
+          and cc.company_id = #{companyId} and cc.check_time between #{startTime} and #{endTime}
+    </select>
 </mapper>

--
Gitblit v1.9.2