From 759bbb8ee99665382a689fa90277a9b2279238da Mon Sep 17 00:00:00 2001
From: songhuangfeng123 <shf18767906695@163.com>
Date: 星期五, 19 八月 2022 19:04:02 +0800
Subject: [PATCH] Merge branches 'genchuang' and 'master' of https://sinanoaq.cn:8888/r/safePlatform-out into master

---
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java                |    5 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/enums/TargetDutyResultCodes.java                              |    1 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetMngServiceImpl.java                        |  142 ++
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetMngService.java                                 |    2 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDutyWorkApproveServiceImpl.java            |   62 +
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoImportExcel.java                        |   13 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/WorkApproveRelateDesc.java                     |   52 +
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentReportController.java          |    9 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencySuppliesCountQuery.java                             |   14 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencySuppliesInfoServiceImpl.java     |    6 
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentCountServiceImpl.java        |   56 +
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencySuppliesInfoService.java              |    3 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetMngQueryCriteria.java                     |    2 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetTypeRepository.java                          |   16 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetExamineController.java                       |  184 ++--
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencySuppliesServiceImpl.java                     |    1 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetTypeService.java                                |   23 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/EquipmentInfo.java                                          |   11 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetTypeQueryCriteria.java                    |   63 +
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetType.java                                        |   52 +
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoSaveOrUpdate.java                       |   12 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/utils/BeanToMapUtil.java                                      |  107 ++
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetDutyWorkApproveService.java                     |    4 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDutyWorkApproveDto.java                  |   15 
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentCountController.java           |   28 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java                           |   40 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/EquipmentInfoRepository.java                            |    5 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetDutyWorkApproveController.java               |    4 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java |   10 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetExamineServiceImpl.java                    |  126 ++
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDivideDetailDto.java                     |   99 ++
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java          |    5 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/excepiton/TargetDutyException.java                            |    5 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/KeypointEquipmentInfo.java                                  |    1 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetExamineService.java                             |    2 
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentCountService.java                 |   12 
 emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml                                   |   50 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetMngRepository.java                           |   18 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetDivideDetail.java                                |   61 +
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetTypeDto.java                             |   62 +
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java                        |  152 +++
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetTypeServiceImpl.java                       |   61 +
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/query/AccidentReportCountQuery.java               |   12 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/KeypointEquipmentInfoQueryCriteria.java              |    2 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoQueryCriteria.java                      |    2 
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/utils/TimeUtils.java                              |    4 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetTypeController.java                          |  105 ++
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineQueryCriteria.java                 |   50 +
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/ExamineMngServiceImpl.java                       |   33 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoExcel.java                             |   13 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencySuppliesCountRespDTO.java                  |   26 
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentReportService.java                |    3 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyDrillExecuteServiceImpl.java                 |   41 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetApproveDivideDetailDto.java              |  160 +++
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/EquipmentInfoServiceImpl.java                         |    7 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineSaveOrUpdate.java                  |  113 ++
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencySuppliesService.java                              |    1 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetExamine.java                                     |   55 -
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyDrillExecuteController.java                    |   11 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillExecuteCountQuery.java                         |   27 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/EquipmentInfoController.java                            |    2 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyDrillExecuteService.java                          |    3 
 /dev/null                                                                                                                                    |   36 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java                                 |   17 
 emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencySuppliesInfoMapper.xml                                       |    5 
 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoDto.java                               |   12 
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencySuppliesInfoRepository.java                    |    3 
 incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentReportServiceImpl.java       |   29 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDivideDetailServiceImpl.java               |   12 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetMngController.java                           |   18 
 goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetExamineDto.java                          |   94 ++
 71 files changed, 2,076 insertions(+), 416 deletions(-)

diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java
new file mode 100644
index 0000000..1430965
--- /dev/null
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyCountController.java
@@ -0,0 +1,40 @@
+package com.gkhy.safePlatform.emergency.controller;
+
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.commons.utils.PageUtils;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyDrillExecuteCountRespDTO;
+import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencySuppliesCountRespDTO;
+import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery;
+import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
+import com.gkhy.safePlatform.emergency.service.EmergencyCountService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/emergencyCount")
+public class EmergencyCountController {
+
+    @Autowired
+    private EmergencyCountService emergencyCountService;
+
+    /**
+     * 应急演练次数统计图
+     */
+    @RequestMapping(value = "/emergencyDrillExecute/count",method = RequestMethod.POST)
+    public ResultVO<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(@RequestBody EmergencyDrillExecuteCountQuery query){
+        return emergencyCountService.countEmergencyDrillExecute(query);
+    }
+
+    /**
+     * 应急物资统计图
+     */
+    @RequestMapping(value = "/emergencySupplies/count" ,method = RequestMethod.POST)
+    private ResultVO<List<EmergencySuppliesCountRespDTO>> list (@RequestBody PageQuery<EmergencySuppliesCountQuery> pageQuery){
+        PageUtils.checkCheck(pageQuery);
+        return  emergencyCountService.countEmergencySupplies(pageQuery);
+    }
+
+}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyDrillExecuteController.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyDrillExecuteController.java
index b1d6573..97060a4 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyDrillExecuteController.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/EmergencyDrillExecuteController.java
@@ -5,17 +5,14 @@
 import com.gkhy.safePlatform.commons.utils.PageUtils;
 import com.gkhy.safePlatform.commons.vo.ResultVO;
 import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyDrillExecuteReqDTO;
-import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyDrillExecuteCountRespDTO;
 import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyDrillExecuteDetailRespDTO;
 import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyDrillExecutePageRespDTO;
 import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteQuery;
-import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteRPCQuery;
 import com.gkhy.safePlatform.emergency.service.EmergencyDrillExecuteService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.Authentication;
 import org.springframework.web.bind.annotation.*;
 
-import java.security.Principal;
 import java.util.List;
 
 @RestController
@@ -66,14 +63,6 @@
     @RequestMapping(value = "/batchDelete",method = RequestMethod.POST)
     public ResultVO batchDeleteEmergencyDrillExecute(@RequestBody Long[] ids){
         return emergencyDrillExecuteService.batchDeleteEmergencyDrillExecute(ids);
-    }
-
-    /**
-     * 应急演练统计的rpc接口
-     */
-    @RequestMapping(value = "/count",method = RequestMethod.POST)
-    public ResultVO<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(@RequestBody EmergencyDrillExecuteRPCQuery query){
-        return emergencyDrillExecuteService.countEmergencyDrillExecute(query);
     }
 
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencySuppliesCountRespDTO.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencySuppliesCountRespDTO.java
new file mode 100644
index 0000000..9715bff
--- /dev/null
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/model/dto/resp/EmergencySuppliesCountRespDTO.java
@@ -0,0 +1,26 @@
+package com.gkhy.safePlatform.emergency.model.dto.resp;
+
+
+public class EmergencySuppliesCountRespDTO {
+
+    private String name;
+
+    private Integer totalNum;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getTotalNum() {
+        return totalNum;
+    }
+
+    public void setTotalNum(Integer totalNum) {
+        this.totalNum = totalNum;
+    }
+
+}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillExecuteCountQuery.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillExecuteCountQuery.java
new file mode 100644
index 0000000..d3ae591
--- /dev/null
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillExecuteCountQuery.java
@@ -0,0 +1,27 @@
+package com.gkhy.safePlatform.emergency.query;
+
+
+public class EmergencyDrillExecuteCountQuery {
+
+    // type=1:月  type=2:年
+    private Integer type;
+
+    // 部门id
+    private Long deptId;
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillExecuteRPCQuery.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillExecuteRPCQuery.java
deleted file mode 100644
index fb991a7..0000000
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencyDrillExecuteRPCQuery.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.gkhy.safePlatform.emergency.query;
-
-public class EmergencyDrillExecuteRPCQuery {
-
-    private String level;
-
-    // type=1:月  type=2:年
-    private Integer type;
-
-    private int year;
-
-    private int month;
-
-    public String getLevel() {
-        return level;
-    }
-
-    public void setLevel(String level) {
-        this.level = level;
-    }
-
-    public Integer getType() {
-        return type;
-    }
-
-    public void setType(Integer type) {
-        this.type = type;
-    }
-
-    public int getYear() {
-        return year;
-    }
-
-    public void setYear(int year) {
-        this.year = year;
-    }
-
-    public int getMonth() {
-        return month;
-    }
-
-    public void setMonth(int month) {
-        this.month = month;
-    }
-}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencySuppliesCountQuery.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencySuppliesCountQuery.java
new file mode 100644
index 0000000..2d16412
--- /dev/null
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/EmergencySuppliesCountQuery.java
@@ -0,0 +1,14 @@
+package com.gkhy.safePlatform.emergency.query;
+
+public class EmergencySuppliesCountQuery {
+
+    private String classification ;
+
+    public String getClassification() {
+        return classification;
+    }
+
+    public void setClassification(String classification) {
+        this.classification = classification;
+    }
+}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/db/EmergencyDrillExecuteRPCDBQuery.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/db/EmergencyDrillExecuteRPCDBQuery.java
deleted file mode 100644
index b70ad0a..0000000
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/query/db/EmergencyDrillExecuteRPCDBQuery.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.gkhy.safePlatform.emergency.query.db;
-
-
-
-public class EmergencyDrillExecuteRPCDBQuery {
-
-    private String level;
-
-    private String startTime;
-
-    private String endTime;
-
-    public String getLevel() {
-        return level;
-    }
-
-    public void setLevel(String level) {
-        this.level = level;
-    }
-
-    public String getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(String startTime) {
-        this.startTime = startTime;
-    }
-
-    public String getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(String endTime) {
-        this.endTime = endTime;
-    }
-}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java
index 660dc83..8e62a8e 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencyDrillExecuteInfoRepository.java
@@ -7,7 +7,6 @@
 import com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteInfoDetailDO;
 import com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteInfoPageDO;
 import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteDBQuery;
-import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteRPCDBQuery;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -30,7 +29,7 @@
 
     Integer selectEmergencyDrillExecuteIntervalTime();
 
-    List<EmergencyDrillExecuteCountData> selectByMouthTimeAndType(@Param("query")EmergencyDrillExecuteRPCDBQuery dbQuery);
+    List<EmergencyDrillExecuteCountData> selectByMonthAndDept(@Param("startTime") String startTime ,@Param("endTime")String endTime ,@Param("deptIds")List<Long> deptIds);
 
-    List<EmergencyDrillExecuteCountData> selectByYearTimeAndType(@Param("query")EmergencyDrillExecuteRPCDBQuery dbQuery);
+    List<EmergencyDrillExecuteCountData> selectByYearAndDept(@Param("startTime") String startTime ,@Param("endTime")String endTime ,@Param("deptIds")List<Long> deptIds);
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencySuppliesInfoRepository.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencySuppliesInfoRepository.java
index 8c317e2..7783407 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencySuppliesInfoRepository.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/repository/EmergencySuppliesInfoRepository.java
@@ -5,6 +5,7 @@
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfo;
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfoDetailDO;
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfoPageDO;
+import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
 import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesDBQuery;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -23,4 +24,6 @@
     void updateEmergencySupplies(EmergencySuppliesInfo emergencySuppliesInfo);
 
     void deleteEmergencySupplies(@Param("id") Long id);
+
+    List<EmergencySuppliesInfoDetailDO> countEmergencySupplies(Page<EmergencySuppliesInfoDetailDO> page, EmergencySuppliesCountQuery query);
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java
new file mode 100644
index 0000000..13379ff
--- /dev/null
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyCountService.java
@@ -0,0 +1,17 @@
+package com.gkhy.safePlatform.emergency.service;
+
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyDrillExecuteCountRespDTO;
+import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencySuppliesCountRespDTO;
+import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery;
+import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
+
+import java.util.List;
+
+public interface EmergencyCountService {
+
+    ResultVO<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(EmergencyDrillExecuteCountQuery query);
+
+    ResultVO<List<EmergencySuppliesCountRespDTO>> countEmergencySupplies(PageQuery<EmergencySuppliesCountQuery> pageQuery);
+}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyDrillExecuteService.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyDrillExecuteService.java
index 94a6ebe..802034b 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyDrillExecuteService.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencyDrillExecuteService.java
@@ -8,7 +8,7 @@
 import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyDrillExecuteDetailRespDTO;
 import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyDrillExecutePageRespDTO;
 import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteQuery;
-import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteRPCQuery;
+import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery;
 
 import java.util.List;
 
@@ -24,5 +24,4 @@
 
     ResultVO batchDeleteEmergencyDrillExecute(Long[] ids);
 
-    ResultVO<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(EmergencyDrillExecuteRPCQuery query);
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencySuppliesService.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencySuppliesService.java
index 4463d16..7a13d85 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencySuppliesService.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/EmergencySuppliesService.java
@@ -21,4 +21,5 @@
     ResultVO updateEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO);
 
     ResultVO batchDeleteEmergencySupplies( Long[]  ids);
+
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java
index 2ff3ce5..9e165ba 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencyDrillExecuteInfoService.java
@@ -7,7 +7,6 @@
 import com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteInfoDetailDO;
 import com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteInfoPageDO;
 import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteDBQuery;
-import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteRPCDBQuery;
 
 import java.util.List;
 
@@ -28,7 +27,7 @@
 
     Integer selectEmergencyDrillExecuteIntervalTime();
 
-    List<EmergencyDrillExecuteCountData> selectByMouthTimeAndType(EmergencyDrillExecuteRPCDBQuery dbQuery);
+    List<EmergencyDrillExecuteCountData> selectByMonthAndDept(String startTime ,String endTime ,List<Long> deptIds);
 
-    List<EmergencyDrillExecuteCountData> selectByYearTimeAndType(EmergencyDrillExecuteRPCDBQuery dbQuery);
+    List<EmergencyDrillExecuteCountData> selectByYearAndDept(String startTime ,String endTime ,List<Long> deptIds);
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencySuppliesInfoService.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencySuppliesInfoService.java
index 4e8c1e0..0da757e 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencySuppliesInfoService.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/EmergencySuppliesInfoService.java
@@ -5,6 +5,7 @@
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfo;
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfoDetailDO;
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfoPageDO;
+import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
 import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesDBQuery;
 
 import java.util.List;
@@ -21,4 +22,6 @@
     void updateEmergencySupplies(EmergencySuppliesInfo emergencySuppliesInfo);
 
     void deleteEmergencySupplies(Long SuppliesId);
+
+    List<EmergencySuppliesInfoDetailDO> countEmergencySupplies(Page<EmergencySuppliesInfoDetailDO> page,EmergencySuppliesCountQuery query);
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java
index 5219134..9f48ac1 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencyDrillExecuteInfoServiceImpl.java
@@ -7,7 +7,6 @@
 import com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteInfoDetailDO;
 import com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteInfoPageDO;
 import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteDBQuery;
-import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteRPCDBQuery;
 import com.gkhy.safePlatform.emergency.repository.EmergencyDrillExecuteInfoRepository;
 import com.gkhy.safePlatform.emergency.service.baseService.EmergencyDrillExecuteInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,14 +56,13 @@
     }
 
     @Override
-    public List<EmergencyDrillExecuteCountData> selectByMouthTimeAndType(EmergencyDrillExecuteRPCDBQuery dbQuery) {
-        return emergencyDrillExecuteInfoRepository.selectByMouthTimeAndType(dbQuery);
+    public List<EmergencyDrillExecuteCountData> selectByMonthAndDept(String startTime ,String endTime ,List<Long> deptIds) {
+        return emergencyDrillExecuteInfoRepository.selectByMonthAndDept(startTime,endTime,deptIds);
     }
 
     @Override
-    public List<EmergencyDrillExecuteCountData> selectByYearTimeAndType(EmergencyDrillExecuteRPCDBQuery dbQuery) {
-        return emergencyDrillExecuteInfoRepository.selectByYearTimeAndType(dbQuery);
+    public List<EmergencyDrillExecuteCountData> selectByYearAndDept(String startTime ,String endTime ,List<Long> deptIds) {
+        return emergencyDrillExecuteInfoRepository.selectByYearAndDept(startTime,endTime,deptIds);
     }
-
 
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencySuppliesInfoServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencySuppliesInfoServiceImpl.java
index 85c6343..19b2d8e 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencySuppliesInfoServiceImpl.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/baseService/impl/EmergencySuppliesInfoServiceImpl.java
@@ -5,6 +5,7 @@
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfo;
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfoDetailDO;
 import com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfoPageDO;
+import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
 import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesDBQuery;
 import com.gkhy.safePlatform.emergency.repository.EmergencySuppliesInfoRepository;
 import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesInfoService;
@@ -44,5 +45,10 @@
         emergencySuppliesInfoRepository.deleteEmergencySupplies(SuppliesId);
     }
 
+    @Override
+    public List<EmergencySuppliesInfoDetailDO> countEmergencySupplies(Page<EmergencySuppliesInfoDetailDO> page,EmergencySuppliesCountQuery query){
+        return emergencySuppliesInfoRepository.countEmergencySupplies(page,query);
+    }
+
 
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java
new file mode 100644
index 0000000..b9ddad0
--- /dev/null
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyCountServiceImpl.java
@@ -0,0 +1,152 @@
+package com.gkhy.safePlatform.emergency.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService;
+import com.gkhy.safePlatform.commons.enums.E;
+import com.gkhy.safePlatform.commons.enums.ResultCodes;
+import com.gkhy.safePlatform.commons.exception.BusinessException;
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.commons.vo.SearchResultVO;
+import com.gkhy.safePlatform.emergency.entity.*;
+import com.gkhy.safePlatform.emergency.model.dto.resp.*;
+import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery;
+import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
+import com.gkhy.safePlatform.emergency.service.EmergencyCountService;
+import com.gkhy.safePlatform.emergency.service.EmergencySuppliesService;
+import com.gkhy.safePlatform.emergency.service.baseService.EmergencyDrillExecuteInfoService;
+import com.gkhy.safePlatform.emergency.service.baseService.EmergencySuppliesInfoService;
+import com.gkhy.safePlatform.emergency.utils.TimeUtils;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Service("emergencyCountService")
+public class EmergencyCountServiceImpl implements EmergencyCountService {
+
+    @Autowired
+    private EmergencyDrillExecuteInfoService emergencyDrillExecuteInfoService;
+
+    @DubboReference(check = false)
+    private AccountDepartmentService accountDepartmentService;
+
+    @Autowired
+    private EmergencySuppliesInfoService emergencySuppliesInfoService;
+
+
+
+    @Override
+    public ResultVO<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(EmergencyDrillExecuteCountQuery query) {
+
+        EmergencyDrillExecuteCountRespDTO emergencyDrillExecuteCountRespDTO = new EmergencyDrillExecuteCountRespDTO();
+
+        // 根据最新的应急演练实施的创建时间与当前时间  获取间隔天数
+        Integer days = emergencyDrillExecuteInfoService.selectEmergencyDrillExecuteIntervalTime();
+        emergencyDrillExecuteCountRespDTO.setDays(days);
+
+        // 根据时间类型(年/月),部门id 获取统计结果
+        List<EmergencyDrillExecuteCountData> list = new ArrayList<>();
+        // 获取部门id集合
+        List<Long> deptIds = new ArrayList<>();
+
+        ResultVO<List<Long>> rpcResult = accountDepartmentService.listDepAndSubDepIds(query.getDeptId());
+        if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
+            if (rpcResult.getData() != null) {
+                deptIds = (List<Long>) rpcResult.getData();
+            }
+        }else{
+            throw new BusinessException(ResultCodes.CLIENT_DEP_NOT_EXIST);
+        }
+        // 获取时间
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+        Date date = new Date();
+        int year = Integer.parseInt(sdf.format(date));
+        if (query.getType()==1){
+            // 月
+            String startTime = TimeUtils.getYearFirst(year);
+            String endTime = TimeUtils.getYearLast(year);
+            list = emergencyDrillExecuteInfoService.selectByMonthAndDept(startTime,endTime,deptIds);
+        }
+        if (query.getType()==2){
+            // 年
+            String startTime = TimeUtils.getYearFirst(year-10);
+            String endTime = TimeUtils.getYearLast(year);
+            list = emergencyDrillExecuteInfoService.selectByYearAndDept(startTime,endTime,deptIds);
+        }
+
+        if (!CollectionUtils.isEmpty(list)){
+            List<EmergencyDrillExecuteCountDataRespDTO> dataList = BeanCopyUtils.copyBeanList(list,EmergencyDrillExecuteCountDataRespDTO.class);
+            emergencyDrillExecuteCountRespDTO.setDataList(dataList);
+        }else{
+            emergencyDrillExecuteCountRespDTO.setDataList(new ArrayList<>());
+        }
+        return new ResultVO<>(ResultCodes.OK,emergencyDrillExecuteCountRespDTO);
+    }
+
+    @Override
+    public ResultVO<List<EmergencySuppliesCountRespDTO>> countEmergencySupplies(PageQuery<EmergencySuppliesCountQuery> pageQuery) {
+        List<EmergencySuppliesCountRespDTO> respList = new ArrayList<>();
+
+        Long pageIndex = pageQuery.getPageIndex();
+        Long pageSize = pageQuery.getPageSize();
+        Page<EmergencySuppliesInfoDetailDO> page = new Page<>(pageIndex,pageSize);
+        List<EmergencySuppliesInfoDetailDO> emergencySuppliesInfoDetailDOList =  emergencySuppliesInfoService.countEmergencySupplies(page,pageQuery.getSearchParams());
+
+        if (!CollectionUtils.isEmpty(emergencySuppliesInfoDetailDOList)){
+            for (EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO :emergencySuppliesInfoDetailDOList){
+                EmergencySuppliesCountRespDTO emergencySuppliesCountRespDTO = new EmergencySuppliesCountRespDTO();
+                // 名称+数量
+                emergencySuppliesCountRespDTO.setName(emergencySuppliesInfoDetailDO.getName());
+                emergencySuppliesCountRespDTO.setTotalNum(emergencySuppliesInfoDetailDO.getCount());
+//                // 保质期内数量
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化一下
+//                Date produceDate = emergencySuppliesInfoDetailDO.getProductionDate();
+//                Integer usePeriod = emergencySuppliesInfoDetailDO.getUsePeriod();
+//
+//                String[] arr = sdf.format(produceDate).split("-");
+//
+//                Calendar calendar = Calendar.getInstance();//获取对日期操作的类对象
+//                calendar.clear();
+//                calendar.set(Calendar.YEAR, Integer.parseInt(arr[0]));
+//                calendar.set(Calendar.MONTH, Integer.parseInt(arr[1]));
+//                calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(arr[2]));
+//
+//                calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) +usePeriod);
+//
+//                Date qualityD = calendar.getTime();
+//                String time= sdf.format(calendar.getTime());
+//                System.out.println(time);
+
+                respList.add(emergencySuppliesCountRespDTO);
+            }
+        }
+        return new SearchResultVO<>(
+                true,
+                pageIndex,
+                pageSize,page.getPages(),
+                page.getTotal(),
+                respList,
+                ResultCodes.OK
+        );
+    }
+
+    public static void main(String[] args) {
+         Date date = new Date();//获取当前日期
+         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化一下
+         Calendar calendar1 = Calendar.getInstance();//获取对日期操作的类对象
+         //两种写法都可以获取到前三天的日期
+          calendar1.set(Calendar.DAY_OF_YEAR,calendar1.get(Calendar.DAY_OF_YEAR) -40);
+         //在当前时间的基础上获取前三天的日期
+//         calendar1.add(Calendar.DATE, -40);
+        //add方法 参数也可传入 月份,获取的是前几月或后几月的日期
+        //calendar1.add(Calendar.MONTH, -3);
+         Date today = calendar1.getTime();
+         String time= sdf.format(today);
+        System.out.println(time);
+    }
+}
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyDrillExecuteServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyDrillExecuteServiceImpl.java
index 76c3610..00a745e 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyDrillExecuteServiceImpl.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyDrillExecuteServiceImpl.java
@@ -13,9 +13,8 @@
 import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyDrillExecuteUserReqDTO;
 import com.gkhy.safePlatform.emergency.model.dto.resp.*;
 import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteQuery;
-import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteRPCQuery;
+import com.gkhy.safePlatform.emergency.query.EmergencyDrillExecuteCountQuery;
 import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteDBQuery;
-import com.gkhy.safePlatform.emergency.query.db.EmergencyDrillExecuteRPCDBQuery;
 import com.gkhy.safePlatform.emergency.service.EmergencyDrillExecuteService;
 import com.gkhy.safePlatform.emergency.service.baseService.EmergencyDrillEvaluationInfoService;
 import com.gkhy.safePlatform.emergency.service.baseService.EmergencyDrillExecuteInfoService;
@@ -232,42 +231,4 @@
         }
     }
 
-    @Override
-    public ResultVO<EmergencyDrillExecuteCountRespDTO> countEmergencyDrillExecute(EmergencyDrillExecuteRPCQuery query) {
-
-        EmergencyDrillExecuteCountRespDTO emergencyDrillExecuteCountRespDTO = new EmergencyDrillExecuteCountRespDTO();
-
-        // 根据应急演练实施的创建时间与当前时间  获取间隔天数
-        Integer days = emergencyDrillExecuteInfoService.selectEmergencyDrillExecuteIntervalTime();
-        emergencyDrillExecuteCountRespDTO.setDays(days);
-
-        // 根据时间、级别获取统计
-        List<EmergencyDrillExecuteCountData> list = new ArrayList<>();
-        EmergencyDrillExecuteRPCDBQuery dbQuery = new EmergencyDrillExecuteRPCDBQuery();
-        dbQuery.setLevel(query.getLevel());
-        if (query.getType()==1){
-            // 月
-            int year = query.getYear();
-            int month = query.getMonth();
-            dbQuery.setStartTime(TimeUtils.getMonthFirst(year,month));
-            dbQuery.setEndTime(TimeUtils.getMonthLast(year,month));
-            list = emergencyDrillExecuteInfoService.selectByMouthTimeAndType(dbQuery);
-        }
-        if (query.getType()==2){
-            // 年
-            int year = query.getYear();
-            dbQuery.setStartTime(TimeUtils.getYearFirst(year));
-            dbQuery.setEndTime(TimeUtils.getYearLast(year));
-            list = emergencyDrillExecuteInfoService.selectByYearTimeAndType(dbQuery);
-        }
-
-        if (!CollectionUtils.isEmpty(list)){
-            List<EmergencyDrillExecuteCountDataRespDTO> dataList = BeanCopyUtils.copyBeanList(list,EmergencyDrillExecuteCountDataRespDTO.class);
-            emergencyDrillExecuteCountRespDTO.setDataList(dataList);
-        }else{
-            emergencyDrillExecuteCountRespDTO.setDataList(new ArrayList<>());
-        }
-
-        return new ResultVO<>(ResultCodes.OK,emergencyDrillExecuteCountRespDTO);
-    }
 }
diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencySuppliesServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencySuppliesServiceImpl.java
index ee0cac2..4144f5c 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencySuppliesServiceImpl.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencySuppliesServiceImpl.java
@@ -13,6 +13,7 @@
 import com.gkhy.safePlatform.emergency.excepiton.EmergencyException;
 import com.gkhy.safePlatform.emergency.model.dto.req.*;
 import com.gkhy.safePlatform.emergency.model.dto.resp.*;
+import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
 import com.gkhy.safePlatform.emergency.query.EmergencySuppliesQuery;
 import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesDBQuery;
 import com.gkhy.safePlatform.emergency.service.EmergencySuppliesMaintainService;
diff --git a/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml b/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
index 8e603c8..cb840df 100644
--- a/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
+++ b/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
@@ -131,23 +131,7 @@
         <result column="name" property="name"/>
     </resultMap>
 
-    <select id="selectByMouthTimeAndType" resultMap="emergencyDrillExecuteCountChart">
-        SELECT
-        count( 0 ) AS num,
-        DATE_FORMAT( a.gmt_create, '%Y-%m-%d' ) AS `name`
-        FROM
-        `emergency_drill_execute` a
-        LEFT JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
-        WHERE
-        a.del_flag = 0
-        AND a.gmt_create <![CDATA[ >= ]]> #{query.startTime}
-        AND a.gmt_create <![CDATA[ <= ]]> #{query.endTime}
-        <if test="query.level != null and query.level != ''" >and b.drill_level = #{query.level}</if>
-        GROUP BY
-        DATE_FORMAT( a.gmt_create, '%Y-%m-%d' )
-    </select>
-
-    <select id="selectByYearTimeAndType" resultMap="emergencyDrillExecuteCountChart">
+    <select id="selectByMonthAndDept" resultMap="emergencyDrillExecuteCountChart">
         SELECT
         count( 0 ) AS num,
         DATE_FORMAT( a.gmt_create, '%Y-%m' ) AS `name`
@@ -156,10 +140,36 @@
         LEFT JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
         WHERE
         a.del_flag = 0
-        AND a.gmt_create <![CDATA[ >= ]]> #{query.startTime}
-        AND a.gmt_create <![CDATA[ <= ]]> #{query.endTime}
-        <if test="query.level != null and query.level != ''" >and b.drill_level = #{query.level}</if>
+        AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
+        AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
+        <if test="deptIds != null " >
+        and b.department_id in
+            <foreach item="id" collection="deptIds" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY
         DATE_FORMAT( a.gmt_create, '%Y-%m' )
     </select>
+
+    <select id="selectByYearAndDept" resultMap="emergencyDrillExecuteCountChart">
+        SELECT
+        count( 0 ) AS num,
+        DATE_FORMAT( a.gmt_create, '%Y' ) AS `name`
+        FROM
+        `emergency_drill_execute` a
+        LEFT JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
+        WHERE
+        a.del_flag = 0
+        AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
+        AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
+        <if test="deptIds != null " >
+            and b.department_id in
+            <foreach item="id" collection="deptIds" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY
+        DATE_FORMAT( a.gmt_create, '%Y' )
+    </select>
 </mapper>
diff --git a/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencySuppliesInfoMapper.xml b/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencySuppliesInfoMapper.xml
index 9b4c5c5..f9d36cf 100644
--- a/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencySuppliesInfoMapper.xml
+++ b/emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencySuppliesInfoMapper.xml
@@ -114,6 +114,11 @@
         from emergency_supplies  where del_flag = 0 and id = #{id}
     </select>
 
+    <select id="countEmergencySupplies" resultMap="emergencySuppliesInfoDetailDOResult">
+        select id,`name`,`count`,`production_date`,`use_period`,classification from emergency_supplies where del_flag = 0
+        <if test="query.classification != null  and query.classification != ''">and `classification` =  #{query.classification}</if>
+    </select>
+
     <update id="updateEmergencySupplies" parameterType="com.gkhy.safePlatform.emergency.entity.EmergencySuppliesInfo">
         update emergency_supplies
         <trim prefix="SET" suffixOverrides=",">
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/EquipmentInfoController.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/EquipmentInfoController.java
index cdada2a..a7f0856 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/EquipmentInfoController.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/EquipmentInfoController.java
@@ -186,6 +186,7 @@
         map.put("45", "报废理由");
         map.put("46", "报废填报日期(yyyy-MM-dd HH:mm:ss)");
         map.put("47", "实际报废日期(yyyy-MM-dd HH:mm:ss)");
+        map.put("48", "保养周期");
         String fileName = URLEncoder.encode("设备设施管理数据导入模板.xls", "UTF-8");
         response.setContentType("application/vnd.ms-excel");
         response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
@@ -278,6 +279,7 @@
         map.put("45", "报废理由");
         map.put("46", "报废填报日期(yyyy-MM-dd HH:mm:ss)");
         map.put("47", "实际报废日期(yyyy-MM-dd HH:mm:ss)");
+        map.put("48", "保养周期");
 
         String key = DateUtils.date2String(new Date(), DateUtils.PATTERN_ALLTIME_NOSIGN) ;
         String fileName = URLEncoder.encode("设备设施管理"+key+".xls", "UTF-8");
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/EquipmentInfo.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/EquipmentInfo.java
index edaed14..b67dbbc 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/EquipmentInfo.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/EquipmentInfo.java
@@ -555,4 +555,15 @@
     public void setAreaName(String areaName) {
         this.areaName = areaName;
     }
+
+    //保养周期
+    private String takecareCycle;
+
+    public String getTakecareCycle() {
+        return takecareCycle;
+    }
+
+    public void setTakecareCycle(String takecareCycle) {
+        this.takecareCycle = takecareCycle;
+    }
 }
\ No newline at end of file
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/KeypointEquipmentInfo.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/KeypointEquipmentInfo.java
index bf930bb..a191098 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/KeypointEquipmentInfo.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/KeypointEquipmentInfo.java
@@ -216,4 +216,5 @@
     public void setMemo(String memo) {
         this.memo = memo;
     }
+
 }
\ No newline at end of file
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoImportExcel.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoImportExcel.java
index 5020ff6..94536de 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoImportExcel.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoImportExcel.java
@@ -147,7 +147,18 @@
     //实际报废日期
     @ExcelCell(index = 47)
     private Timestamp actualDestoryDate;
-        
+
+    //保养周期
+    @ExcelCell(index = 48)
+    private String takecareCycle;
+
+    public String getTakecareCycle() {
+        return takecareCycle;
+    }
+
+    public void setTakecareCycle(String takecareCycle) {
+        this.takecareCycle = takecareCycle;
+    }
 
     //类型/类别外键
     public Long getEquipmentTypeId() {
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoQueryCriteria.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoQueryCriteria.java
index 0d8a8c2..a0d6a2c 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoQueryCriteria.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoQueryCriteria.java
@@ -49,4 +49,4 @@
     public void setPositionNum(String positionNum) {
         this.positionNum = positionNum;
     }
-}
+}
\ No newline at end of file
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoSaveOrUpdate.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoSaveOrUpdate.java
index 0e68549..c37834a 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoSaveOrUpdate.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/EquipmentInfoSaveOrUpdate.java
@@ -164,6 +164,18 @@
     //要删除的检查标准
     private String delCheckStandardeDetails;
 
+
+    //保养周期
+    private String takecareCycle;
+
+    public String getTakecareCycle() {
+        return takecareCycle;
+    }
+
+    public void setTakecareCycle(String takecareCycle) {
+        this.takecareCycle = takecareCycle;
+    }
+
     public String getLeadingPersonName() {
         return leadingPersonName;
     }
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/KeypointEquipmentInfoQueryCriteria.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/KeypointEquipmentInfoQueryCriteria.java
index 1047f88..e51cf06 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/KeypointEquipmentInfoQueryCriteria.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/KeypointEquipmentInfoQueryCriteria.java
@@ -27,4 +27,4 @@
     public void setEquipmentTypeId(Integer equipmentTypeId) {
         this.equipmentTypeId = equipmentTypeId;
     }
-}
+}
\ No newline at end of file
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoDto.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoDto.java
index edc1e7f..401642c 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoDto.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoDto.java
@@ -146,6 +146,18 @@
     //区域名称
     private String areaName;
 
+
+    //保养周期
+    private String takecareCycle;
+
+    public String getTakecareCycle() {
+        return takecareCycle;
+    }
+
+    public void setTakecareCycle(String takecareCycle) {
+        this.takecareCycle = takecareCycle;
+    }
+
     public Long getAreaId() {
         return areaId;
     }
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoExcel.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoExcel.java
index e140344..7046adc 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoExcel.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/EquipmentInfoExcel.java
@@ -150,7 +150,18 @@
     //实际报废日期
     @ExcelCell(index = 47)
     private Timestamp actualDestoryDate;
-        
+
+    //保养周期
+    @ExcelCell(index = 48)
+    private String takecareCycle;
+
+    public String getTakecareCycle() {
+        return takecareCycle;
+    }
+
+    public void setTakecareCycle(String takecareCycle) {
+        this.takecareCycle = takecareCycle;
+    }
 
     //ID
     public Long getId() {
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/EquipmentInfoRepository.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/EquipmentInfoRepository.java
index 41cf464..a3b67b6 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/EquipmentInfoRepository.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/EquipmentInfoRepository.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gkhy.safePlatform.equipment.entity.EquipmentInfo;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -13,4 +14,8 @@
 @Repository
 public interface EquipmentInfoRepository extends BaseMapper<EquipmentInfo> {
 
+    @Select("<script> select count(1) from equipment_info m INNER JOIN \n" +
+            "(select a.id,max(b.takecare_date) mdate from equipment_info a INNER JOIN equipment_takecare_detail b on a.id = b.equipment_id GROUP BY b.equipment_id) n \n" +
+            "on m.id = n.id where DATEDIFF(NOW(),n.mdate) >m.takecare_cycle</script> ")
+    Object countOverTime();
 }
\ No newline at end of file
diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/EquipmentInfoServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/EquipmentInfoServiceImpl.java
index ba3e45f..9a5f690 100644
--- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/EquipmentInfoServiceImpl.java
+++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/EquipmentInfoServiceImpl.java
@@ -302,7 +302,12 @@
                 .select("stop_status as stopStatus,count(0) as count")
                 .groupBy("stop_status");
 
-        return this.listMaps(wrapper);
+        List<Map<String, Object>> list = this.listMaps(wrapper);
+
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("-1",equipmentInfoRepository.countOverTime());//超时未保养
+        return list;
     }
 
     @Override
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetDutyWorkApproveController.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetDutyWorkApproveController.java
index 642d6c1..4ef3fe6 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetDutyWorkApproveController.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetDutyWorkApproveController.java
@@ -9,6 +9,7 @@
 import com.gkhy.safePlatform.commons.co.ContextCacheUser;
 import com.gkhy.safePlatform.targetDuty.entity.ExamineMng;
 import com.gkhy.safePlatform.targetDuty.entity.TargetDutyWorkApprove;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetDutyWorkApproveDto;
 import com.gkhy.safePlatform.targetDuty.service.TargetDutyWorkApproveService;
 import com.gkhy.safePlatform.targetDuty.utils.DateUtils;
 import org.springframework.security.core.Authentication;
@@ -63,7 +64,8 @@
      */
     @GetMapping(value = "/selectOne/{id}")
     public ResultVO selectOne(@PathVariable Serializable id) {
-        return new ResultVO<>(ResultCodes.OK,this.targetDutyWorkApproveService.getById(id));
+        TargetDutyWorkApproveDto dto = this.targetDutyWorkApproveService.selectOne(id);
+        return new ResultVO<>(ResultCodes.OK,dto);
     }
 
 	/**
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetExamineController.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetExamineController.java
index 4088452..768aebe 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetExamineController.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetExamineController.java
@@ -1,37 +1,23 @@
 package com.gkhy.safePlatform.targetDuty.controller;
-import java.util.*;
-import java.sql.Timestamp;
 
-
-
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
-import com.gkhy.safePlatform.targetDuty.entity.ExamineItem;
-import com.gkhy.safePlatform.targetDuty.entity.TargetExamine;
-import com.gkhy.safePlatform.targetDuty.entity.TargetMng;
-import com.gkhy.safePlatform.targetDuty.model.dto.req.ExamineTemplateSaveOrUpdate;
-import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetExamineSaveOrUpdate;
-import com.gkhy.safePlatform.targetDuty.model.dto.resp.ExamineTemplateDto;
-import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetExamineDivideDto;
-import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetExamineDto;
-import com.gkhy.safePlatform.targetDuty.service.CommonService;
-import com.gkhy.safePlatform.targetDuty.service.TargetExamineService;
-import com.gkhy.safePlatform.targetDuty.service.TargetMngService;
-import com.google.common.collect.Lists;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.*;
+import com.gkhy.safePlatform.commons.enums.ResultCodes;
 import com.gkhy.safePlatform.commons.query.PageQuery;
 import com.gkhy.safePlatform.commons.utils.PageUtils;
 import com.gkhy.safePlatform.commons.vo.ResultVO;
-import com.gkhy.safePlatform.commons.enums.ResultCodes;
+import com.gkhy.safePlatform.targetDuty.entity.TargetExamine;
 import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetExamineQueryCriteria;
+import com.gkhy.safePlatform.targetDuty.service.CommonService;
+import com.gkhy.safePlatform.targetDuty.service.TargetExamineService;
+import com.gkhy.safePlatform.targetDuty.service.TargetMngService;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import java.io.Serializable;
+import java.sql.Timestamp;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 
 /**
  * (TargetExamine)表控制层
@@ -53,49 +39,75 @@
     @Resource
     private CommonService commonService;
 
+//    /**
+//     * 通过主键查询单条数据
+//     *
+//     * @param targetId 主键
+//     * @return 单条数据
+//     */
+//    @GetMapping(value = "/selectOne/{targetId}")
+//    public ResultVO selectOne(@PathVariable Long targetId) {
+//        TargetExamineDto dto = new TargetExamineDto();
+//        TargetMng targetMng = targetMngService.getById(targetId);
+//        if(targetMng == null) {
+//            return new ResultVO<>(ResultCodes.CLIENT_PROJECT_NOT_EXIST);
+//        }
+//
+//        TargetExamineQueryCriteria criteria = new TargetExamineQueryCriteria();
+//        criteria.setTargetId(targetId);
+//
+//        List<TargetExamineDivideDto> respList = BeanCopyUtils.copyBeanList(this.targetExamineService.queryAll(criteria), TargetExamineDivideDto.class);
+//
+//
+//        // --------------------------- 获取部门信息-----------------------
+//        //收集所用到的部门ID
+//        Set<Long> collectDepIdSet = new HashSet();
+//        respList.forEach(f->{
+//            collectDepIdSet.add(f.getDutyDepartmentId());
+//            collectDepIdSet.add(f.getMakerDepartmentId());
+//        });
+//        //获取部门名集合
+//        Map<Long,String> depNameMap = commonService.getDepName(collectDepIdSet);
+//
+//        respList.forEach(f->{
+//            f.setDutyDepartmentName(depNameMap.get(f.getDutyDepartmentId()));
+//            f.setMakerDepartmentName(depNameMap.get(f.getMakerDepartmentId()));
+//        });
+//
+//        dto.setExamineList(respList);
+//        dto.setId(targetMng.getId());
+//        dto.setIndexNum(targetMng.getIndexNum());
+//        dto.setqName(targetMng.getqName());
+//        dto.setValue(targetMng.getValue());
+//        dto.setYear(targetMng.getYear());
+//        return new ResultVO<>(ResultCodes.OK,dto);
+//    }
+
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param pageQuery 查询实体
+     * @return 所有数据
+     */
+    @PostMapping(value = "/page/list")
+    public ResultVO selectAll(@RequestBody PageQuery<TargetExamineQueryCriteria> pageQuery){
+        PageUtils.checkCheck(pageQuery);
+        return this.targetExamineService.queryAll(pageQuery);
+    }
+
+
     /**
      * 通过主键查询单条数据
      *
-     * @param targetId 主键
+     * @param id 主键
      * @return 单条数据
      */
-    @GetMapping(value = "/selectOne/{targetId}")
-    public ResultVO selectOne(@PathVariable Long targetId) {
-        TargetExamineDto dto = new TargetExamineDto();
-        TargetMng targetMng = targetMngService.getById(targetId);
-        if(targetMng == null) {
-            return new ResultVO<>(ResultCodes.CLIENT_PROJECT_NOT_EXIST);
-        }
-
-        TargetExamineQueryCriteria criteria = new TargetExamineQueryCriteria();
-        criteria.setTargetId(targetId);
-
-        List<TargetExamineDivideDto> respList = BeanCopyUtils.copyBeanList(this.targetExamineService.queryAll(criteria), TargetExamineDivideDto.class);
-
-
-        // --------------------------- 获取部门信息-----------------------
-        //收集所用到的部门ID
-        Set<Long> collectDepIdSet = new HashSet();
-        respList.forEach(f->{
-            collectDepIdSet.add(f.getDutyDepartmentId());
-            collectDepIdSet.add(f.getMakerDepartmentId());
-        });
-        //获取部门名集合
-        Map<Long,String> depNameMap = commonService.getDepName(collectDepIdSet);
-
-        respList.forEach(f->{
-            f.setDutyDepartmentName(depNameMap.get(f.getDutyDepartmentId()));
-            f.setMakerDepartmentName(depNameMap.get(f.getMakerDepartmentId()));
-        });
-
-        dto.setExamineList(respList);
-        dto.setId(targetMng.getId());
-        dto.setIndexNum(targetMng.getIndexNum());
-        dto.setqName(targetMng.getqName());
-        dto.setValue(targetMng.getValue());
-        dto.setYear(targetMng.getYear());
-        return new ResultVO<>(ResultCodes.OK,dto);
+    @GetMapping(value = "/selectOne/{id}")
+    public ResultVO selectOne(@PathVariable Serializable id) {
+        return new ResultVO<>(ResultCodes.OK,this.targetExamineService.getById(id));
     }
+
 
 	/**
      * 新增或者修改数据
@@ -104,17 +116,14 @@
      * @return 修改结果
      */
     @PostMapping(value = "/addOrUpdate")
-    public ResultVO update(@RequestBody TargetExamineSaveOrUpdate infoDto) {
-        if(infoDto.getId() == null) {
-            return new ResultVO<>(ResultCodes.CLIENT_PARAM_ERROR);
+    public ResultVO update(@RequestBody TargetExamine infoDto) {
+        infoDto.setExamineDate(new Timestamp(new Date().getTime()));
+        if (infoDto.getId() == null) {
+            return new ResultVO<>(ResultCodes.OK,targetExamineService.save(infoDto));
+        } else {
+            targetExamineService.update(infoDto,new UpdateWrapper<TargetExamine>().eq("id",infoDto.getId()));
+            return new ResultVO<>(ResultCodes.OK);
         }
-        TargetMng targetMng = targetMngService.getById(infoDto.getId());
-        if(targetMng == null) {
-            return new ResultVO<>(ResultCodes.CLIENT_PROJECT_NOT_EXIST);
-        }
-
-        targetExamineService.addOrUpdate(infoDto);
-        return new ResultVO<>(ResultCodes.OK);
     }
 
     /**
@@ -135,23 +144,20 @@
 
 
     public static void main(String[] args) {
-        TargetExamineSaveOrUpdate saveOrUpdate = new TargetExamineSaveOrUpdate();
-        saveOrUpdate.setDelIds("1,2");
-
-
-        List<TargetExamine> examineList = Lists.newArrayList();
-        TargetExamine item = new TargetExamine();
-        item.setDutyDepartmentId(12L);
-        item.setExamineValue("3");
-        item.setMakerDepartmentId(4L);
-        item.setMakeDate(new Timestamp(new java.util.Date().getTime()));
-        item.setUploadValue("2");
-        item.setUploadDate(new Timestamp(new java.util.Date().getTime()));
-        item.setExamineResult(1);
-        item.setExaminePersonId(0L);
-        item.setExamineDate(new Timestamp(new java.util.Date().getTime()));
-        examineList.add(item);
-        saveOrUpdate.setExamineList(examineList);
-        System.out.println(JSONObject.toJSONString(saveOrUpdate));
+//        TargetExamineSaveOrUpdate saveOrUpdate = new TargetExamineSaveOrUpdate();
+//        saveOrUpdate.setDelIds("1,2");
+//
+//
+//        List<TargetExamine> examineList = Lists.newArrayList();
+//        TargetExamine item = new TargetExamine();
+//        item.setTargetDivideDetailId(1L);
+//        item.setUploadValue("2");
+//        item.setUploadDate(new Timestamp(new java.util.Date().getTime()));
+//        item.setExamineResult(1);
+//        item.setExaminePersonId(0L);
+//        item.setExamineDate(new Timestamp(new java.util.Date().getTime()));
+//        examineList.add(item);
+//        saveOrUpdate.setExamineList(examineList);
+//        System.out.println(JSONObject.toJSONString(saveOrUpdate));
     }
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetMngController.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetMngController.java
index d0e84d5..d7bfeff 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetMngController.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetMngController.java
@@ -74,7 +74,7 @@
 		PageUtils.checkCheck(pageQuery);
         return this.targetMngService.queryAll(pageQuery);
     }
-	
+
 
     /**
      * 通过主键查询单条数据
@@ -137,7 +137,7 @@
         Map<String,String> map = new LinkedHashMap<>();
         map.put("1","安全目标指标");
         map.put("2","目标指标编号");
-        map.put("3","指标类型 1:年指标 2:月指标");
+        map.put("3","指标类型 1:年指标 2:月指标 3:半年 4:季度");
         map.put("4","年度");
         map.put("5","指标值");
         map.put("6","指标级别 1:公司级 2:部门分厂级 3:工段班组级");
@@ -217,12 +217,22 @@
      */
     @PostMapping(value = "/checkAndSubimt/list")
     public ResultVO list(Authentication authentication, @RequestBody PageQuery<TargetCheckAndSubmitQueryCriteria> pageQuery){
-        if(pageQuery.getSearchParams().getTargetType() == null){
+        if(pageQuery.getSearchParams().getRelateType() == null){
             return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL,"缺少targetType");
         }
         PageUtils.checkCheck(pageQuery);
         ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal();
         return this.targetMngService.queryAll(currentUser.getUid(),pageQuery);
+    }
+
+    /**
+     * 统计
+     *
+     * @return 删除结果
+     */
+    @GetMapping(value = "/statistics")
+    public ResultVO statistics(TargetMngQueryCriteria criteria) {
+        return new ResultVO<>(ResultCodes.OK,this.targetMngService.statistics(criteria));
     }
 
 
@@ -240,4 +250,4 @@
         System.out.println(JSONObject.toJSONString(mng));
 
     }
-}
\ No newline at end of file
+}
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetTypeController.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetTypeController.java
new file mode 100644
index 0000000..ddb716c
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/controller/TargetTypeController.java
@@ -0,0 +1,105 @@
+package com.gkhy.safePlatform.targetDuty.controller;
+
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gkhy.safePlatform.targetDuty.entity.TargetType;
+import com.gkhy.safePlatform.targetDuty.service.TargetTypeService;
+import org.springframework.web.bind.annotation.*;
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.commons.utils.PageUtils;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.commons.enums.ResultCodes;
+import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetTypeQueryCriteria;
+
+import java.util.Arrays;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 目标分类(TargetType)表控制层
+ *
+ * @author xurui
+ * @since 2022-08-17 10:20:01
+ */
+@RestController
+@RequestMapping("targetType")
+public class TargetTypeController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private TargetTypeService targetTypeService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param pageQuery 查询实体
+     * @return 所有数据
+     */
+    @PostMapping(value = "/page/list")
+    public ResultVO selectAll(@RequestBody PageQuery<TargetTypeQueryCriteria> pageQuery){
+		PageUtils.checkCheck(pageQuery);
+		return this.targetTypeService.queryAll(pageQuery);
+    }
+
+
+
+    /**
+     * 查询所有数据
+     *
+     * @param criteria 查询实体
+     * @return 所有数据
+     */
+    @PostMapping(value = "/page/listAll")
+    public ResultVO listAll(@RequestBody TargetTypeQueryCriteria criteria){
+        return new ResultVO<>(ResultCodes.OK,this.targetTypeService.queryAll(criteria));
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping(value = "/selectOne/{id}")
+    public ResultVO selectOne(@PathVariable Serializable id) {
+        return new ResultVO<>(ResultCodes.OK,this.targetTypeService.getById(id));
+    }
+
+	/**
+     * 新增或者修改数据
+     *
+     * @param targetType 实体对象
+     * @return 修改结果
+     */
+    @PostMapping(value = "/addOrUpdate")
+    public ResultVO update(@RequestBody TargetType targetType) {
+        if (targetType.getId() == null) {
+            return new ResultVO<>(ResultCodes.OK,targetTypeService.save(targetType));
+        } else {
+            targetTypeService.update(targetType,new UpdateWrapper<TargetType>().eq("id",targetType.getId()));
+            return new ResultVO<>(ResultCodes.OK);
+        }
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param ids 主键结合
+     * @return 删除结果
+     */
+    @RequestMapping(value = "/delete",method = RequestMethod.POST)
+    public ResultVO delete(@RequestBody Long[] ids) {
+        if(ids == null){
+            return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL);
+        }
+        List<Long> idList = Arrays.asList(ids);
+        this.targetTypeService.removeByIds(idList);
+        return new ResultVO<>(ResultCodes.OK);
+    }
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetDivideDetail.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetDivideDetail.java
index 77f17d2..d28e720 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetDivideDetail.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetDivideDetail.java
@@ -1,18 +1,17 @@
 package com.gkhy.safePlatform.targetDuty.entity;
 
 import java.sql.Timestamp;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.gkhy.safePlatform.targetDuty.entity.BaseDomain;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 目标指标分解详情(TargetDivideDetail)表实体类
  *
  * @author xurui
- * @since 2022-08-03 09:25:40
+ * @since 2022-08-17 11:22:35
  */
 @SuppressWarnings("serial")
 @TableName("target_divide_detail")
@@ -30,7 +29,7 @@
     }
 
                 //关联的目标指标/外键
-    private Long targetId;
+            private Long targetId;
         
     public Long getTargetId() {
         return targetId;
@@ -40,7 +39,7 @@
         this.targetId = targetId;
     }
                 //考核指标值
-    private String value;
+            private String value;
         
     public String getValue() {
         return value;
@@ -50,8 +49,8 @@
         this.value = value;
     }
                 //制定日期
-                @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Timestamp makeDate;
+            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private Timestamp makeDate;
         
     public Timestamp getMakeDate() {
         return makeDate;
@@ -61,7 +60,7 @@
         this.makeDate = makeDate;
     }
                 //责任部门/外键
-    private Long dutyDepartmentId;
+            private Long dutyDepartmentId;
         
     public Long getDutyDepartmentId() {
         return dutyDepartmentId;
@@ -71,7 +70,7 @@
         this.dutyDepartmentId = dutyDepartmentId;
     }
                 //制定人部门/外键
-    private Long makerDepartmentId;
+            private Long makerDepartmentId;
         
     public Long getMakerDepartmentId() {
         return makerDepartmentId;
@@ -81,7 +80,7 @@
         this.makerDepartmentId = makerDepartmentId;
     }
                 //上报人/外键
-    private Long commitPersonId;
+            private Long commitPersonId;
         
     public Long getCommitPersonId() {
         return commitPersonId;
@@ -91,7 +90,7 @@
         this.commitPersonId = commitPersonId;
     }
                 //上报人名称
-    private String commitPersonName;
+            private String commitPersonName;
         
     public String getCommitPersonName() {
         return commitPersonName;
@@ -100,5 +99,45 @@
     public void setCommitPersonName(String commitPersonName) {
         this.commitPersonName = commitPersonName;
     }
+                //目标分类/外键
+            private Long targetTypeId;
+        
+    public Long getTargetTypeId() {
+        return targetTypeId;
+    }
+
+    public void setTargetTypeId(Long targetTypeId) {
+        this.targetTypeId = targetTypeId;
+    }
+                //责任人/外键
+            private Long dutyPersonId;
+        
+    public Long getDutyPersonId() {
+        return dutyPersonId;
+    }
+
+    public void setDutyPersonId(Long dutyPersonId) {
+        this.dutyPersonId = dutyPersonId;
+    }
+                //责任人名称
+            private String dutyPersonName;
+        
+    public String getDutyPersonName() {
+        return dutyPersonName;
+    }
+
+    public void setDutyPersonName(String dutyPersonName) {
+        this.dutyPersonName = dutyPersonName;
+    }
+                //计划措施
+            private String planDesc;
+        
+    public String getPlanDesc() {
+        return planDesc;
+    }
+
+    public void setPlanDesc(String planDesc) {
+        this.planDesc = planDesc;
+    }
             
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetExamine.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetExamine.java
index f9cbda8..069c1a2 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetExamine.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetExamine.java
@@ -11,7 +11,7 @@
  * 安全目标考核(TargetExamine)表实体类
  *
  * @author xurui
- * @since 2022-08-12 08:07:53
+ * @since 2022-08-18 16:27:12
  */
 @SuppressWarnings("serial")
 @TableName("target_examine")
@@ -28,56 +28,15 @@
         this.id = id;
     }
 
-                //关联的目标指标/外键
-            private Long targetId;
+                //关联的目标分解/外键
+            private Long targetDivideDetailId;
         
-    public Long getTargetId() {
-        return targetId;
+    public Long getTargetDivideDetailId() {
+        return targetDivideDetailId;
     }
 
-    public void setTargetId(Long targetId) {
-        this.targetId = targetId;
-    }
-                //责任部门id/外键
-            private Long dutyDepartmentId;
-        
-    public Long getDutyDepartmentId() {
-        return dutyDepartmentId;
-    }
-
-    public void setDutyDepartmentId(Long dutyDepartmentId) {
-        this.dutyDepartmentId = dutyDepartmentId;
-    }
-                //考核指标
-            private String examineValue;
-        
-    public String getExamineValue() {
-        return examineValue;
-    }
-
-    public void setExamineValue(String examineValue) {
-        this.examineValue = examineValue;
-    }
-                //制定部门id/外键
-            private Long makerDepartmentId;
-        
-    public Long getMakerDepartmentId() {
-        return makerDepartmentId;
-    }
-
-    public void setMakerDepartmentId(Long makerDepartmentId) {
-        this.makerDepartmentId = makerDepartmentId;
-    }
-                //制定日期
-            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-        private Timestamp makeDate;
-        
-    public Timestamp getMakeDate() {
-        return makeDate;
-    }
-
-    public void setMakeDate(Timestamp makeDate) {
-        this.makeDate = makeDate;
+    public void setTargetDivideDetailId(Long targetDivideDetailId) {
+        this.targetDivideDetailId = targetDivideDetailId;
     }
                 //上报值
             private String uploadValue;
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetType.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetType.java
new file mode 100644
index 0000000..0077802
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/entity/TargetType.java
@@ -0,0 +1,52 @@
+package com.gkhy.safePlatform.targetDuty.entity;
+
+import java.sql.Timestamp;
+import com.gkhy.safePlatform.targetDuty.entity.BaseDomain;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * 目标分类(TargetType)表实体类
+ *
+ * @author xurui
+ * @since 2022-08-17 10:26:39
+ */
+@SuppressWarnings("serial")
+@TableName("target_type")
+public class TargetType extends BaseDomain {
+	
+	
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+                //分类名称
+            private String typeName;
+        
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+                //说明
+            private String memo;
+        
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+            
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/enums/TargetDutyResultCodes.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/enums/TargetDutyResultCodes.java
index 26dd754..e268017 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/enums/TargetDutyResultCodes.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/enums/TargetDutyResultCodes.java
@@ -13,6 +13,7 @@
     APPROVE_STATUS_NULL("A1004","审批状态不可为空"),
 
     APPROVE_NOT_EXIST("A1005" , "审批记录不存在"),
+
     ERROR("A3000", "未知错误");
 
     private String code;
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/excepiton/TargetDutyException.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/excepiton/TargetDutyException.java
index 4968b0a..f92147f 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/excepiton/TargetDutyException.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/excepiton/TargetDutyException.java
@@ -13,6 +13,11 @@
         this.message = error.getDesc();
     }
 
+    public TargetDutyException(String message) {
+        super(message);
+        this.code = "A3000";
+    }
+
     public TargetDutyException(String code, String message) {
         super(message);
         this.code = code;
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineQueryCriteria.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineQueryCriteria.java
index f0c9021..60d22be 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineQueryCriteria.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineQueryCriteria.java
@@ -4,15 +4,51 @@
 import com.gkhy.safePlatform.targetDuty.annotation.Query;
 
 public class TargetExamineQueryCriteria {
-    //关联的目标指标/外键
+    //安全目标指标
+    @Query(type = Query.Type.INNER_LIKE)
+    private String qName;
+    //目标指标编号
+    @Query(type = Query.Type.INNER_LIKE)
+    private String indexNum;
+    //指标类型 1:年指标 2:月指标 3:半年 4:季度
     @Query()
-    private Long targetId;
-    //关联的目标指标/外键
-    public Long getTargetId() {
-        return targetId;
+    private Integer targetType;
+    //分解状态 1:已分解 2:未分解
+    @Query()
+    private Integer divideStatus;
+
+    public Integer getDivideStatus() {
+        return divideStatus;
     }
 
-    public void setTargetId(Long targetId) {
-        this.targetId = targetId;
+    public void setDivideStatus(Integer divideStatus) {
+        this.divideStatus = divideStatus;
+    }
+
+    //安全目标指标
+
+    public String getqName() {
+        return qName;
+    }
+
+    public void setqName(String qName) {
+        this.qName = qName;
+    }
+
+    //目标指标编号
+    public String getIndexNum() {
+        return indexNum;
+    }
+
+    public void setIndexNum(String indexNum) {
+        this.indexNum = indexNum;
+    }
+    //指标类型 1:年指标 2:月指标
+    public Integer getTargetType() {
+        return targetType;
+    }
+
+    public void setTargetType(Integer targetType) {
+        this.targetType = targetType;
     }
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineSaveOrUpdate.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineSaveOrUpdate.java
index f295e23..41a2ec1 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineSaveOrUpdate.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetExamineSaveOrUpdate.java
@@ -2,16 +2,16 @@
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.gkhy.safePlatform.targetDuty.entity.ExamineItem;
 import com.gkhy.safePlatform.targetDuty.entity.TargetExamine;
 
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
 
 public class TargetExamineSaveOrUpdate implements Serializable {
-
-
     @TableId(type = IdType.AUTO)
     private Long id;
     public Long getId() {
@@ -22,25 +22,110 @@
         this.id = id;
     }
 
-    //关联的考核数据列表
-    private List<TargetExamine> examineList = new ArrayList<>();
+    //关联的目标分解/外键
+    private Long targetDivideDetailId;
 
-    public List<TargetExamine> getExamineList() {
-        return examineList;
+    public Long getTargetDivideDetailId() {
+        return targetDivideDetailId;
     }
 
-    public void setExamineList(List<TargetExamine> examineList) {
-        this.examineList = examineList;
+    public void setTargetDivideDetailId(Long targetDivideDetailId) {
+        this.targetDivideDetailId = targetDivideDetailId;
+    }
+    //上报值
+    private String uploadValue;
+
+    public String getUploadValue() {
+        return uploadValue;
     }
 
-    //要删除的id集合,多个用逗号隔开
-    private String delIds;
+    public void setUploadValue(String uploadValue) {
+        this.uploadValue = uploadValue;
+    }
+    //上报时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Timestamp uploadDate;
 
-    public String getDelIds() {
-        return delIds;
+    public Timestamp getUploadDate() {
+        return uploadDate;
     }
 
-    public void setDelIds(String delIds) {
-        this.delIds = delIds;
+    public void setUploadDate(Timestamp uploadDate) {
+        this.uploadDate = uploadDate;
     }
+    //考核结果 1:合格 2:不合格
+    private Integer examineResult;
+
+    public Integer getExamineResult() {
+        return examineResult;
+    }
+
+    public void setExamineResult(Integer examineResult) {
+        this.examineResult = examineResult;
+    }
+    //考核人ID/外键
+    private Long examinePersonId;
+
+    public Long getExaminePersonId() {
+        return examinePersonId;
+    }
+
+    public void setExaminePersonId(Long examinePersonId) {
+        this.examinePersonId = examinePersonId;
+    }
+    //考核人名称
+    private String examinePersonName;
+
+    public String getExaminePersonName() {
+        return examinePersonName;
+    }
+
+    public void setExaminePersonName(String examinePersonName) {
+        this.examinePersonName = examinePersonName;
+    }
+    //考核时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Timestamp examineDate;
+
+    public Timestamp getExamineDate() {
+        return examineDate;
+    }
+
+    public void setExamineDate(Timestamp examineDate) {
+        this.examineDate = examineDate;
+    }
+
+
+//
+//    @TableId(type = IdType.AUTO)
+//    private Long id;
+//    public Long getId() {
+//        return id;
+//    }
+//
+//    public void setId(Long id) {
+//        this.id = id;
+//    }
+//
+//    //关联的考核数据列表
+//    private List<TargetExamine> examineList = new ArrayList<>();
+//
+//    public List<TargetExamine> getExamineList() {
+//        return examineList;
+//    }
+//
+//    public void setExamineList(List<TargetExamine> examineList) {
+//        this.examineList = examineList;
+//    }
+//
+//    //要删除的id集合,多个用逗号隔开
+//    private String delIds;
+//
+//    public String getDelIds() {
+//        return delIds;
+//    }
+//
+//    public void setDelIds(String delIds) {
+//        this.delIds = delIds;
+//    }
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetMngQueryCriteria.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetMngQueryCriteria.java
index 19af780..6e49053 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetMngQueryCriteria.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetMngQueryCriteria.java
@@ -10,7 +10,7 @@
     //目标指标编号    
     @Query(type = Query.Type.INNER_LIKE)
     private String indexNum;
-    //指标类型 1:年指标 2:月指标
+    //指标类型 1:年指标 2:月指标 3:半年 4:季度
     @Query()
     private Integer targetType;
     //分解状态 1:已分解 2:未分解
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetTypeQueryCriteria.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetTypeQueryCriteria.java
new file mode 100644
index 0000000..289edee
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/req/TargetTypeQueryCriteria.java
@@ -0,0 +1,63 @@
+package com.gkhy.safePlatform.targetDuty.model.dto.req;
+
+import java.sql.Timestamp;
+import com.gkhy.safePlatform.targetDuty.annotation.Query;
+
+public class TargetTypeQueryCriteria {
+        
+    @Query()
+    private Long id;
+    //分类名称    
+    @Query(type = Query.Type.INNER_LIKE)
+    private String typeName;
+    //说明    
+    @Query()
+    private String memo;
+        
+    @Query()
+    private Timestamp createTime;
+        
+    @Query()
+    private Timestamp updateTime;
+
+            
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    //分类名称        
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+    //说明        
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+            
+    public Timestamp getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+            
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetApproveDivideDetailDto.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetApproveDivideDetailDto.java
new file mode 100644
index 0000000..3b0e4b9
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetApproveDivideDetailDto.java
@@ -0,0 +1,160 @@
+package com.gkhy.safePlatform.targetDuty.model.dto.resp;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+public class TargetApproveDivideDetailDto implements Serializable {
+        
+    private Long id;
+    //关联的目标指标/外键    
+    private Long targetId;
+    //考核指标值    
+    private String value;
+    //制定日期    
+    private Timestamp makeDate;
+    //责任部门/外键    
+    private Long dutyDepartmentId;
+    //制定人部门/外键    
+    private Long makerDepartmentId;
+    //上报人/外键    
+    private Long commitPersonId;
+        
+    private Timestamp createTime;
+        
+    private Timestamp updateTime;
+
+    //上报人名称
+    private String commitPersonName;
+
+    //责任部门名称
+    private String dutyDepartmentName;
+    //制定人部门名称
+    private String makerDepartmentName;
+
+    private String personId;
+
+    private String personName;
+
+    //上报值
+    private String commitValue;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getTargetId() {
+        return targetId;
+    }
+
+    public void setTargetId(Long targetId) {
+        this.targetId = targetId;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public Timestamp getMakeDate() {
+        return makeDate;
+    }
+
+    public void setMakeDate(Timestamp makeDate) {
+        this.makeDate = makeDate;
+    }
+
+    public Long getDutyDepartmentId() {
+        return dutyDepartmentId;
+    }
+
+    public void setDutyDepartmentId(Long dutyDepartmentId) {
+        this.dutyDepartmentId = dutyDepartmentId;
+    }
+
+    public Long getMakerDepartmentId() {
+        return makerDepartmentId;
+    }
+
+    public void setMakerDepartmentId(Long makerDepartmentId) {
+        this.makerDepartmentId = makerDepartmentId;
+    }
+
+    public Long getCommitPersonId() {
+        return commitPersonId;
+    }
+
+    public void setCommitPersonId(Long commitPersonId) {
+        this.commitPersonId = commitPersonId;
+    }
+
+    public Timestamp getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getCommitPersonName() {
+        return commitPersonName;
+    }
+
+    public void setCommitPersonName(String commitPersonName) {
+        this.commitPersonName = commitPersonName;
+    }
+
+    public String getDutyDepartmentName() {
+        return dutyDepartmentName;
+    }
+
+    public void setDutyDepartmentName(String dutyDepartmentName) {
+        this.dutyDepartmentName = dutyDepartmentName;
+    }
+
+    public String getMakerDepartmentName() {
+        return makerDepartmentName;
+    }
+
+    public void setMakerDepartmentName(String makerDepartmentName) {
+        this.makerDepartmentName = makerDepartmentName;
+    }
+
+    public String getPersonId() {
+        return personId;
+    }
+
+    public void setPersonId(String personId) {
+        this.personId = personId;
+    }
+
+    public String getPersonName() {
+        return personName;
+    }
+
+    public void setPersonName(String personName) {
+        this.personName = personName;
+    }
+
+    public String getCommitValue() {
+        return commitValue;
+    }
+
+    public void setCommitValue(String commitValue) {
+        this.commitValue = commitValue;
+    }
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDivideDetailDto.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDivideDetailDto.java
index f7e4147..3cca7bf 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDivideDetailDto.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDivideDetailDto.java
@@ -1,5 +1,7 @@
 package com.gkhy.safePlatform.targetDuty.model.dto.resp;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.sql.Timestamp;
 import java.io.Serializable;
 
@@ -30,6 +32,60 @@
     private String dutyDepartmentName;
     //制定人部门名称
     private String makerDepartmentName;
+
+    //目标分类/外键
+    private Long targetTypeId;
+
+    public Long getTargetTypeId() {
+        return targetTypeId;
+    }
+
+    public void setTargetTypeId(Long targetTypeId) {
+        this.targetTypeId = targetTypeId;
+    }
+
+    //目标分类名称
+    private String targetTypeName;
+
+    public String getTargetTypeName() {
+        return targetTypeName;
+    }
+
+    public void setTargetTypeName(String targetTypeName) {
+        this.targetTypeName = targetTypeName;
+    }
+
+    //责任人/外键
+    private Long dutyPersonId;
+
+    public Long getDutyPersonId() {
+        return dutyPersonId;
+    }
+
+    public void setDutyPersonId(Long dutyPersonId) {
+        this.dutyPersonId = dutyPersonId;
+    }
+    //责任人名称
+    private String dutyPersonName;
+
+    public String getDutyPersonName() {
+        return dutyPersonName;
+    }
+
+    public void setDutyPersonName(String dutyPersonName) {
+        this.dutyPersonName = dutyPersonName;
+    }
+    //计划措施
+    private String planDesc;
+
+    public String getPlanDesc() {
+        return planDesc;
+    }
+
+    public void setPlanDesc(String planDesc) {
+        this.planDesc = planDesc;
+    }
+
 
     public String getDutyDepartmentName() {
         return dutyDepartmentName;
@@ -126,4 +182,47 @@
     public void setUpdateTime(Timestamp updateTime) {
         this.updateTime = updateTime;
     }
+
+    //考核结果 1:合格 2:不合格
+    private Integer examineResult;
+
+    public Integer getExamineResult() {
+        return examineResult;
+    }
+
+    public void setExamineResult(Integer examineResult) {
+        this.examineResult = examineResult;
+    }
+
+    //考核人ID/外键
+    private Long examinePersonId;
+
+    public Long getExaminePersonId() {
+        return examinePersonId;
+    }
+
+    public void setExaminePersonId(Long examinePersonId) {
+        this.examinePersonId = examinePersonId;
+    }
+    //考核人名称
+    private String examinePersonName;
+
+    public String getExaminePersonName() {
+        return examinePersonName;
+    }
+
+    public void setExaminePersonName(String examinePersonName) {
+        this.examinePersonName = examinePersonName;
+    }
+    //考核时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Timestamp examineDate;
+
+    public Timestamp getExamineDate() {
+        return examineDate;
+    }
+
+    public void setExamineDate(Timestamp examineDate) {
+        this.examineDate = examineDate;
+    }
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDutyWorkApproveDto.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDutyWorkApproveDto.java
index 7fe201d..2ff16d1 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDutyWorkApproveDto.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetDutyWorkApproveDto.java
@@ -4,6 +4,8 @@
 
 import java.sql.Timestamp;
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 public class TargetDutyWorkApproveDto implements Serializable {
     
@@ -47,6 +49,19 @@
     //排序
         private Integer sort;
 
+
+    //目标指标分解列表
+    private List<TargetApproveDivideDetailDto> targetDivideDetailList = new ArrayList<>();
+
+    public List<TargetApproveDivideDetailDto> getTargetDivideDetailList() {
+        return targetDivideDetailList;
+    }
+
+    public void setTargetDivideDetailList(List<TargetApproveDivideDetailDto> targetDivideDetailList) {
+        this.targetDivideDetailList = targetDivideDetailList;
+    }
+
+
             
     public Long getId() {
         return id;
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetExamineDto.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetExamineDto.java
index 2505295..9065579 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetExamineDto.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetExamineDto.java
@@ -1,5 +1,8 @@
 package com.gkhy.safePlatform.targetDuty.model.dto.resp;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.gkhy.safePlatform.targetDuty.entity.TargetExamine;
 
 import java.sql.Timestamp;
@@ -8,6 +11,7 @@
 import java.util.List;
 
 public class TargetExamineDto implements Serializable {
+
     private Long id;
     //安全目标指标
     private String qName;
@@ -17,8 +21,31 @@
     private String year;
     //指标值
     private String value;
-    //关联的考核数据列表
-    private List<TargetExamineDivideDto> examineList = new ArrayList<>();
+    //指标级别 1:公司级 2:部门分厂级 3:工段班组级
+    private Integer level;
+    //完成期限
+    private Timestamp completeDate;
+    //备注信息
+    private String memo;
+    //指标类型 1:年指标 2:月指标
+    private Integer targetType;
+    //分解状态 1:已分解 2:未分解
+    private Integer divideStatus;
+
+    private Timestamp createTime;
+
+    private Timestamp updateTime;
+
+    //目标指标分解列表
+    private List<TargetDivideDetailDto> targetDivideDetailList = new ArrayList<>();
+
+    public List<TargetDivideDetailDto> getTargetDivideDetailList() {
+        return targetDivideDetailList;
+    }
+
+    public void setTargetDivideDetailList(List<TargetDivideDetailDto> targetDivideDetailList) {
+        this.targetDivideDetailList = targetDivideDetailList;
+    }
 
     public Long getId() {
         return id;
@@ -36,6 +63,7 @@
         this.qName = qName;
     }
 
+    //目标指标编号
     public String getIndexNum() {
         return indexNum;
     }
@@ -43,7 +71,7 @@
     public void setIndexNum(String indexNum) {
         this.indexNum = indexNum;
     }
-
+    //年度
     public String getYear() {
         return year;
     }
@@ -51,7 +79,7 @@
     public void setYear(String year) {
         this.year = year;
     }
-
+    //指标值
     public String getValue() {
         return value;
     }
@@ -59,12 +87,60 @@
     public void setValue(String value) {
         this.value = value;
     }
-
-    public List<TargetExamineDivideDto> getExamineList() {
-        return examineList;
+    //指标级别 1:公司级 2:部门分厂级 3:工段班组级
+    public Integer getLevel() {
+        return level;
     }
 
-    public void setExamineList(List<TargetExamineDivideDto> examineList) {
-        this.examineList = examineList;
+    public void setLevel(Integer level) {
+        this.level = level;
+    }
+    //完成期限
+    public Timestamp getCompleteDate() {
+        return completeDate;
+    }
+
+    public void setCompleteDate(Timestamp completeDate) {
+        this.completeDate = completeDate;
+    }
+    //备注信息
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+    //指标类型 1:年指标 2:月指标
+    public Integer getTargetType() {
+        return targetType;
+    }
+
+    public void setTargetType(Integer targetType) {
+        this.targetType = targetType;
+    }
+    //分解状态 1:已分解 2:未分解
+    public Integer getDivideStatus() {
+        return divideStatus;
+    }
+
+    public void setDivideStatus(Integer divideStatus) {
+        this.divideStatus = divideStatus;
+    }
+
+    public Timestamp getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
     }
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetTypeDto.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetTypeDto.java
new file mode 100644
index 0000000..ea0219e
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/TargetTypeDto.java
@@ -0,0 +1,62 @@
+package com.gkhy.safePlatform.targetDuty.model.dto.resp;
+
+import java.sql.Timestamp;
+import java.io.Serializable;
+import java.sql.Timestamp;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+public class TargetTypeDto implements Serializable {
+    
+        private Long id;
+    //分类名称
+        private String typeName;
+    //说明
+        private String memo;
+    
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private Timestamp createTime;
+    
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private Timestamp updateTime;
+
+            
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    //分类名称        
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+    //说明        
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+            
+    public Timestamp getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+            
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/WorkApproveRelateDesc.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/WorkApproveRelateDesc.java
new file mode 100644
index 0000000..961dc8e
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/model/dto/resp/WorkApproveRelateDesc.java
@@ -0,0 +1,52 @@
+package com.gkhy.safePlatform.targetDuty.model.dto.resp;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+
+public class WorkApproveRelateDesc implements Serializable {
+    
+    private Long id;
+
+    private String personId;
+
+    private String personName;
+
+    //上报值
+    private String value;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getPersonId() {
+        return personId;
+    }
+
+    public void setPersonId(String personId) {
+        this.personId = personId;
+    }
+
+    public String getPersonName() {
+        return personName;
+    }
+
+    public void setPersonName(String personName) {
+        this.personName = personName;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetMngRepository.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetMngRepository.java
index 424f49b..45d375e 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetMngRepository.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetMngRepository.java
@@ -2,7 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gkhy.safePlatform.targetDuty.entity.TargetMng;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
+
+import java.util.Map;
 
 /**
  * 目标指标(TargetMng)表数据库访问层
@@ -12,5 +15,20 @@
  */
 @Repository
 public interface TargetMngRepository extends BaseMapper<TargetMng> {
+    @Select("<script>select COUNT(1) from target_mng where 1=1 " +
+            "<if test =\"divideStatus !='' and divideStatus !=null\">and divide_status = #{divideStatus}</if> " +
+            "<if test =\"targetType !='' and targetType !=null\">and target_type = #{targetType}</if>" +
+            "<if test =\"qName !='' and qName !=null\">and q_name = #{qName}</if>" +
+            "<if test =\"indexNum !='' and indexNum !=null\">and index_num = #{indexNum}</if>" +
+            "</script> ")
+    Integer selectTotal(Map<String, Object> beanToMap);
 
+    @Select("<script>select COUNT(target_id) from target_divide_detail a INNER JOIN target_mng b on a.target_id = b.id \n" +
+            "WHERE a.id not in (select target_divide_detail_id from target_examine where examine_result = 1)\n" +
+            "<if test =\"divideStatus !='' and divideStatus !=null\">and b.divide_status = #{divideStatus}</if> " +
+            "<if test =\"targetType !='' and targetType !=null\">and b.target_type = #{targetType}</if>" +
+            "<if test =\"qName !='' and qName !=null\">and b.q_name = #{qName}</if>" +
+            "<if test =\"indexNum !='' and indexNum !=null\">and b.index_num = #{indexNum}</if>" +
+            "GROUP BY a.target_id</script> ")
+    Integer selectNoComplete(Map<String, Object> beanToMap);
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetTypeRepository.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetTypeRepository.java
new file mode 100644
index 0000000..cdd5690
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/repository/TargetTypeRepository.java
@@ -0,0 +1,16 @@
+package com.gkhy.safePlatform.targetDuty.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.safePlatform.targetDuty.entity.TargetType;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 目标分类(TargetType)表数据库访问层
+ *
+ * @author xurui
+ * @since 2022-08-17 10:26:39
+ */
+@Repository
+public interface TargetTypeRepository extends BaseMapper<TargetType> {
+
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetDutyWorkApproveService.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetDutyWorkApproveService.java
index aa76624..c82ea09 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetDutyWorkApproveService.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetDutyWorkApproveService.java
@@ -6,7 +6,9 @@
 import com.gkhy.safePlatform.commons.vo.ResultVO;
 import com.gkhy.safePlatform.commons.query.PageQuery;
 import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetDutyWorkApproveQueryCriteria;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetDutyWorkApproveDto;
 
+import java.io.Serializable;
 import java.util.List;
 
 
@@ -26,4 +28,6 @@
     void addInfo(ContextCacheUser currentUser, TargetDutyWorkApprove targetDutyWorkApprove);
 
     ResultVO listCheckData(PageQuery<TargetDutyWorkApproveQueryCriteria> pageQuery);
+
+    TargetDutyWorkApproveDto selectOne(Serializable id);
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetExamineService.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetExamineService.java
index 1b8fa07..658b287 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetExamineService.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetExamineService.java
@@ -21,5 +21,5 @@
     
     List<TargetExamine> queryAll(TargetExamineQueryCriteria criteria);
 
-    void addOrUpdate(TargetExamineSaveOrUpdate infoDto);
+//    void addOrUpdate(TargetExamineSaveOrUpdate infoDto);
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetMngService.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetMngService.java
index 4a78422..90e01db 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetMngService.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetMngService.java
@@ -26,4 +26,6 @@
     Object selectOne(Serializable id);
 
     ResultVO queryAll(Long uid, PageQuery<TargetCheckAndSubmitQueryCriteria> pageQuery);
+
+    Object statistics(TargetMngQueryCriteria criteria);
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetTypeService.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetTypeService.java
new file mode 100644
index 0000000..cbb7b85
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/TargetTypeService.java
@@ -0,0 +1,23 @@
+package com.gkhy.safePlatform.targetDuty.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.safePlatform.targetDuty.entity.TargetType;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetTypeQueryCriteria;
+
+import java.util.List;
+
+
+/**
+ * 目标分类(TargetType)表服务接口
+ *
+ * @author xurui
+ * @since 2022-08-17 10:20:01
+ */
+public interface TargetTypeService extends IService<TargetType> {
+    ResultVO queryAll(PageQuery<TargetTypeQueryCriteria> pageQuery);
+    
+    List<TargetType> queryAll(TargetTypeQueryCriteria criteria);
+
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/ExamineMngServiceImpl.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/ExamineMngServiceImpl.java
index 229f028..d4b353d 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/ExamineMngServiceImpl.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/ExamineMngServiceImpl.java
@@ -16,6 +16,7 @@
 import com.gkhy.safePlatform.targetDuty.service.CommonService;
 import com.gkhy.safePlatform.targetDuty.service.ExamineMngService;
 import com.gkhy.safePlatform.targetDuty.service.ExamineTemplateService;
+import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.gkhy.safePlatform.commons.enums.ResultCodes;
@@ -55,8 +56,8 @@
 
     @Resource
     private CommonService commonService;
-    
-	
+
+
 	@Override
     public ResultVO queryAll(PageQuery<ExamineMngQueryCriteria> pageQuery) {
         Long pageIndex = pageQuery.getPageIndex();
@@ -87,19 +88,21 @@
             List<CurrentExamineDto> list = JSONObject.parseArray( dto.getNumberDetailJson(), CurrentExamineDto.class);
             List<Long> idList = list.stream().map(CurrentExamineDto::getId).collect(Collectors.toList());
 
-            List<ExamineItem> itemList = examineItemRepository.selectBatchIds(idList);
-            Map<Long,ExamineItem> itemMap = itemList.stream().collect(
-                    Collectors.toMap(ExamineItem::getId, Function.identity(),(k1, k2)->k1));
+            if (!idList.isEmpty()){
+                List<ExamineItem> itemList = examineItemRepository.selectBatchIds(idList);
+                Map<Long,ExamineItem> itemMap = itemList.stream().collect(
+                        Collectors.toMap(ExamineItem::getId, Function.identity(),(k1, k2)->k1));
 
-            if(itemMap != null){
-                list.forEach(f->{
-                    ExamineItem item = itemMap.get(f.getId());
-                    if(item != null){
-                        f.setItemDetail(item.getItemDetail());
-                        f.setContent(item.getContent());
-                        f.setJudgeStandard(item.getJudgeStandard());
-                    }
-                });
+                if(itemMap != null){
+                    list.forEach(f->{
+                        ExamineItem item = itemMap.get(f.getId());
+                        if(item != null){
+                            f.setItemDetail(item.getItemDetail());
+                            f.setContent(item.getContent());
+                            f.setJudgeStandard(item.getJudgeStandard());
+                        }
+                    });
+                }
             }
             dto.setCurrentExamineDtoList(list);
         });
@@ -161,4 +164,4 @@
 
         return dto;
     }
-}
\ No newline at end of file
+}
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDivideDetailServiceImpl.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDivideDetailServiceImpl.java
index 5c6b9c5..287af74 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDivideDetailServiceImpl.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDivideDetailServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.safePlatform.targetDuty.entity.ExamineItem;
 import com.gkhy.safePlatform.targetDuty.entity.TargetMng;
 import com.gkhy.safePlatform.targetDuty.enums.TargetDutyResultCodes;
 import com.gkhy.safePlatform.targetDuty.excepiton.TargetDutyException;
@@ -96,8 +97,15 @@
         list.forEach(f->{f.setTargetId(infoDto.getTargetId());});
         this.saveOrUpdateBatch(list);
 
-        //设置状态为 《已分解》
-        targetMng.setDivideStatus(1);
+        //查询最新的分解数量,如果>0,设置状态为 《已分解》,否则设置为未分解
+        int divideStatus = 2;
+        if(infoDto.getTargetId() != null){
+            long number = this.count(new QueryWrapper<TargetDivideDetail>().eq("target_id",infoDto.getTargetId()));
+            if(number > 0){
+                divideStatus = 1;
+            }
+        }
+        targetMng.setDivideStatus(divideStatus);
         targetMngRepository.update(targetMng,new UpdateWrapper<TargetMng>().eq("id",targetMng.getId()));
 
 
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDutyWorkApproveServiceImpl.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDutyWorkApproveServiceImpl.java
index f6594b6..14f41c7 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDutyWorkApproveServiceImpl.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetDutyWorkApproveServiceImpl.java
@@ -1,13 +1,19 @@
 package com.gkhy.safePlatform.targetDuty.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.safePlatform.commons.co.ContextCacheUser;
+import com.gkhy.safePlatform.targetDuty.entity.ExamineItem;
+import com.gkhy.safePlatform.targetDuty.entity.TargetDivideDetail;
 import com.gkhy.safePlatform.targetDuty.enums.TargetDutyResultCodes;
 import com.gkhy.safePlatform.targetDuty.excepiton.TargetDutyException;
 import com.gkhy.safePlatform.targetDuty.model.dto.resp.ListCheckDataDto;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetApproveDivideDetailDto;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.WorkApproveRelateDesc;
+import com.gkhy.safePlatform.targetDuty.repository.TargetDivideDetailRepository;
 import com.gkhy.safePlatform.targetDuty.repository.TargetDutyWorkApproveRepository;
 import com.gkhy.safePlatform.targetDuty.entity.TargetDutyWorkApprove;
 import com.gkhy.safePlatform.targetDuty.service.CommonService;
@@ -23,10 +29,14 @@
 import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetDutyWorkApproveDto;
 import com.gkhy.safePlatform.targetDuty.utils.QueryHelpPlus;
 import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 目标责任管理工作流审批表(TargetDutyWorkApprove)表服务实现类
@@ -42,6 +52,9 @@
 
     @Resource
     private CommonService commonService;
+
+    @Autowired
+    private TargetDivideDetailRepository targetDivideDetailRepository;
     
 	
 	@Override
@@ -117,6 +130,10 @@
         if (targetDutyWorkApprove.getRelateId()==null){
             throw new TargetDutyException(TargetDutyResultCodes.APPROVE_RELATE_TYPE_NULL);
         }
+        // 关联业务json
+        if (!StringUtils.hasText(targetDutyWorkApprove.getRelateDesc())){
+            throw new TargetDutyException("参数错误");
+        }
         // 审批人
         if (targetDutyWorkApprove.getApprovePersonId()==null){
             throw new TargetDutyException(TargetDutyResultCodes.APPROVE_PERSON_NULL);
@@ -174,4 +191,49 @@
                 ResultCodes.OK
         );
     }
+
+    @Override
+    public TargetDutyWorkApproveDto selectOne(Serializable id) {
+	    TargetDutyWorkApprove targetDutyWorkApprove = this.getById(id);
+	    if(targetDutyWorkApprove == null){
+	        return new TargetDutyWorkApproveDto();
+        }
+
+        TargetDutyWorkApproveDto dto = BeanCopyUtils.copyBean(targetDutyWorkApprove, TargetDutyWorkApproveDto.class);
+
+        List<WorkApproveRelateDesc> relateDescList = JSONObject.parseArray(targetDutyWorkApprove.getRelateDesc(),WorkApproveRelateDesc.class);
+        Map<Long,WorkApproveRelateDesc> relateDescMap = relateDescList.stream()
+        .collect(Collectors.toMap(WorkApproveRelateDesc::getId, Function.identity(),(k1, k2)->k1));
+
+        //
+        List<TargetDivideDetail> dList = targetDivideDetailRepository.selectBatchIds(relateDescMap.keySet());
+        List<TargetApproveDivideDetailDto> divideDetailList = BeanCopyUtils.copyBeanList(dList, TargetApproveDivideDetailDto.class);
+
+        divideDetailList.forEach(f->{
+            WorkApproveRelateDesc relateDesc = relateDescMap.get(f.getId());
+            if(relateDesc != null){
+                f.setPersonId(relateDesc.getPersonId());
+                f.setPersonName(relateDesc.getPersonName());
+                f.setCommitValue(relateDesc.getValue());
+            }
+        });
+
+        // --------------------------- 获取部门信息-----------------------
+        //收集所用到的部门ID
+        Set<Long> collectDepIdSet = new HashSet();
+        divideDetailList.forEach(f->{
+            collectDepIdSet.add(f.getDutyDepartmentId());
+            collectDepIdSet.add(f.getMakerDepartmentId());
+        });
+        //获取部门名集合
+        Map<Long,String> depNameMap = commonService.getDepName(collectDepIdSet);
+
+        divideDetailList.forEach(f->{
+            f.setDutyDepartmentName(depNameMap.get(f.getDutyDepartmentId()));
+            f.setMakerDepartmentName(depNameMap.get(f.getMakerDepartmentId()));
+        });
+
+        dto.setTargetDivideDetailList(divideDetailList);
+        return dto;
+    }
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetExamineServiceImpl.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetExamineServiceImpl.java
index 82c4d72..9031014 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetExamineServiceImpl.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetExamineServiceImpl.java
@@ -4,9 +4,18 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.safePlatform.targetDuty.entity.TargetMng;
+import com.gkhy.safePlatform.targetDuty.entity.TargetType;
+import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetDivideDetailQueryCriteria;
 import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetExamineSaveOrUpdate;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetDivideDetailDto;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetMngDto;
 import com.gkhy.safePlatform.targetDuty.repository.TargetExamineRepository;
 import com.gkhy.safePlatform.targetDuty.entity.TargetExamine;
+import com.gkhy.safePlatform.targetDuty.repository.TargetMngRepository;
+import com.gkhy.safePlatform.targetDuty.repository.TargetTypeRepository;
+import com.gkhy.safePlatform.targetDuty.service.CommonService;
+import com.gkhy.safePlatform.targetDuty.service.TargetDivideDetailService;
 import com.gkhy.safePlatform.targetDuty.service.TargetExamineService;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,8 +29,8 @@
 import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
 import org.springframework.util.StringUtils;
 
-import java.util.Arrays;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -35,18 +44,87 @@
 
     @Autowired
     private TargetExamineRepository targetExamineRepository;
-    
-    
-	
-	@Override
+
+    @Autowired
+    private TargetMngRepository targetMngRepository;
+    @Resource
+    private CommonService commonService;
+
+    @Resource
+    private TargetDivideDetailService targetDivideDetailService;
+
+    @Autowired
+    private TargetTypeRepository targetTypeRepository;
+
+    @Override
     public ResultVO queryAll(PageQuery<TargetExamineQueryCriteria> pageQuery) {
         Long pageIndex = pageQuery.getPageIndex();
         Long pageSize = pageQuery.getPageSize();
-        IPage<TargetExamine> page = new Page<>(pageIndex, pageSize);
+        IPage<TargetMng> page = new Page<>(pageIndex, pageSize);
 
-        page = baseMapper.selectPage(page,
-                QueryHelpPlus.getPredicate(TargetExamine.class, pageQuery.getSearchParams()));
+        page = targetMngRepository.selectPage(page,
+                QueryHelpPlus.getPredicate(TargetMng.class, pageQuery.getSearchParams()));
         List<TargetExamineDto> respList = BeanCopyUtils.copyBeanList(page.getRecords(), TargetExamineDto.class);
+        respList.forEach(dto->{
+            //查询关联分解信息
+            TargetDivideDetailQueryCriteria criteria = new TargetDivideDetailQueryCriteria();
+            criteria.setTargetId(dto.getId());
+            List<TargetDivideDetailDto> respList1 = BeanCopyUtils.copyBeanList(targetDivideDetailService.queryAll(criteria), TargetDivideDetailDto.class);
+
+            // --------------------------- 获取部门信息-----------------------
+            //收集所用到的部门ID
+            Set<Long> collectDepIdSet = new HashSet();
+            respList1.forEach(f->{
+                collectDepIdSet.add(f.getDutyDepartmentId());
+                collectDepIdSet.add(f.getMakerDepartmentId());
+            });
+            //获取部门名集合
+            Map<Long,String> depNameMap = commonService.getDepName(collectDepIdSet);
+
+            respList1.forEach(f->{
+                f.setDutyDepartmentName(depNameMap.get(f.getDutyDepartmentId()));
+                f.setMakerDepartmentName(depNameMap.get(f.getMakerDepartmentId()));
+            });
+
+
+            // --------------------------- 获取目标分类名称-----------------------
+            //收集所用到的目标分类ID
+            Set<Long> collectTypeSet = new HashSet();
+            respList1.forEach(f->{
+                collectTypeSet.add(f.getTargetTypeId());
+            });
+            //获取目标分类名集合
+            if(!collectTypeSet.isEmpty()){
+                List<TargetType> typeList = targetTypeRepository.selectBatchIds(collectTypeSet); // TODO
+                Map<Long,String> typeNameMap = typeList.stream()
+                        .collect(Collectors.toMap(TargetType::getId, TargetType::getTypeName,(k1, k2)->k1));
+
+                respList1.forEach(f->{
+                    f.setTargetTypeName(typeNameMap.get(f.getTargetTypeId()));
+                });
+            }
+
+
+            // --------------------------- 获取考核结果-----------------------
+            //收集所用到的分解详情ID
+            Set<Long> collectExamResultSet = new HashSet();
+            respList1.forEach(f->{
+                collectExamResultSet.add(f.getId());
+            });
+            //获取核结果集合
+            if(!collectTypeSet.isEmpty()){
+                List<TargetExamine> typeList = targetExamineRepository.selectBatchIds(collectTypeSet);
+                Map<Long,Integer> examResultMap = typeList.stream()
+                        .collect(Collectors.toMap(TargetExamine::getId, TargetExamine::getExamineResult,(k1, k2)->k1));
+
+                respList1.forEach(f->{
+                    f.setExamineResult(examResultMap.get(f.getId()));
+                });
+            }
+
+
+            dto.setTargetDivideDetailList(respList1);
+        });
 
         return new SearchResultVO<>(
                 true,
@@ -64,19 +142,19 @@
         return baseMapper.selectList(QueryHelpPlus.getPredicate(TargetExamine.class, criteria));
     }
 
-    @Override
-    public void addOrUpdate(TargetExamineSaveOrUpdate infoDto) {
-
-
-        if(StringUtils.hasText(infoDto.getDelIds())) {
-            List<Long> idList = Arrays.stream(infoDto.getDelIds().split(",")).map(s-> Long.parseLong(s.trim()))
-                    .collect(Collectors.toList());
-            this.removeByIds(idList);
-        }
-
-        infoDto.getExamineList().forEach(f->{
-            f.setTargetId(infoDto.getId());
-        });
-        this.saveOrUpdateBatch(infoDto.getExamineList());
-    }
+//    @Override
+//    public void addOrUpdate(TargetExamineSaveOrUpdate infoDto) {
+//
+//
+//        if(StringUtils.hasText(infoDto.getDelIds())) {
+//            List<Long> idList = Arrays.stream(infoDto.getDelIds().split(",")).map(s-> Long.parseLong(s.trim()))
+//                    .collect(Collectors.toList());
+//            this.removeByIds(idList);
+//        }
+//
+//        infoDto.getExamineList().forEach(f->{
+//            f.setTargetId(infoDto.getId());
+//        });
+//        this.saveOrUpdateBatch(infoDto.getExamineList());
+//    }
 }
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetMngServiceImpl.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetMngServiceImpl.java
index 7ed78cb..b9144f9 100644
--- a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetMngServiceImpl.java
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetMngServiceImpl.java
@@ -1,40 +1,39 @@
 package com.gkhy.safePlatform.targetDuty.service.impl;
-import java.sql.Timestamp;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.core.toolkit.BeanUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService;
-import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepInfoRPCRespDTO;
-import com.gkhy.safePlatform.targetDuty.entity.ExamineItem;
-import com.gkhy.safePlatform.targetDuty.entity.TargetDutyWorkApprove;
+import com.gkhy.safePlatform.commons.enums.ResultCodes;
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.commons.vo.SearchResultVO;
+import com.gkhy.safePlatform.targetDuty.entity.*;
 import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetCheckAndSubmitQueryCriteria;
 import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetDivideDetailQueryCriteria;
+import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetMngQueryCriteria;
 import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetCheckAndSubmitDto;
 import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetDivideDetailDto;
-import com.gkhy.safePlatform.targetDuty.repository.TargetDutyWorkApproveRepository;
-import com.gkhy.safePlatform.targetDuty.repository.TargetMngRepository;
-import com.gkhy.safePlatform.targetDuty.entity.TargetMng;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetMngDto;
+import com.gkhy.safePlatform.targetDuty.repository.*;
 import com.gkhy.safePlatform.targetDuty.service.CommonService;
 import com.gkhy.safePlatform.targetDuty.service.TargetDivideDetailService;
 import com.gkhy.safePlatform.targetDuty.service.TargetMngService;
-import org.springframework.stereotype.Service;
-import org.springframework.beans.factory.annotation.Autowired;
-import com.gkhy.safePlatform.commons.enums.ResultCodes;
-import com.gkhy.safePlatform.commons.query.PageQuery;
-import com.gkhy.safePlatform.commons.vo.ResultVO;
-import com.gkhy.safePlatform.commons.vo.SearchResultVO;
-import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetMngQueryCriteria;
-import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetMngDto;
+import com.gkhy.safePlatform.targetDuty.utils.BeanToMapUtil;
 import com.gkhy.safePlatform.targetDuty.utils.QueryHelpPlus;
-import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.beans.IntrospectionException;
 import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
 import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 目标指标(TargetMng)表服务实现类
@@ -51,13 +50,22 @@
     @Resource
     private TargetDivideDetailService targetDivideDetailService;
 
+    @Autowired
+    private TargetDivideDetailRepository targetDivideDetailRepository;
+
     @Resource
     private TargetDutyWorkApproveRepository targetDutyWorkApproveRepository;
 
     @Resource
     private CommonService commonService;
 
-	@Override
+    @Autowired
+    private TargetTypeRepository targetTypeRepository;
+
+    @Autowired
+    private TargetExamineRepository targetExamineRepository;
+
+    @Override
     public ResultVO queryAll(PageQuery<TargetMngQueryCriteria> pageQuery) {
         Long pageIndex = pageQuery.getPageIndex();
         Long pageSize = pageQuery.getPageSize();
@@ -87,6 +95,23 @@
                 f.setMakerDepartmentName(depNameMap.get(f.getMakerDepartmentId()));
             });
 
+
+            // --------------------------- 获取目标分类名称-----------------------
+            //收集所用到的目标分类ID
+            Set<Long> collectTypeSet = new HashSet();
+            respList1.forEach(f->{
+                collectTypeSet.add(f.getTargetTypeId());
+            });
+            //获取目标分类名集合
+            if(!collectTypeSet.isEmpty()){
+                List<TargetType> typeList = targetTypeRepository.selectBatchIds(collectTypeSet); // TODO
+                Map<Long,String> typeNameMap = typeList.stream()
+                        .collect(Collectors.toMap(TargetType::getId, TargetType::getTypeName,(k1, k2)->k1));
+
+                respList1.forEach(f->{
+                    f.setTargetTypeName(typeNameMap.get(f.getDutyDepartmentId()));
+                });
+            }
 
             dto.setTargetDivideDetailList(respList1);
         });
@@ -136,6 +161,32 @@
         });
 
 
+
+
+        // --------------------------- 获取考核结果-----------------------
+        //收集所用到的分解详情ID
+        Set<Long> collectExamResultSet = new HashSet();
+        respList.forEach(f->{
+            collectExamResultSet.add(f.getId());
+        });
+        //获取核结果集合
+        if(!collectExamResultSet.isEmpty()){
+            List<TargetExamine> typeList = targetExamineRepository.selectList(new QueryWrapper<TargetExamine>().in("target_divide_detail_id",collectExamResultSet));
+            Map<Long,TargetExamine> examResultMap = typeList.stream()
+                    .collect(Collectors.toMap(TargetExamine::getTargetDivideDetailId, Function.identity(),(k1, k2)->k1));
+
+            respList.forEach(f->{
+                TargetExamine targetExamine = examResultMap.get(f.getId());
+                if(targetExamine != null){
+                    f.setExamineResult(targetExamine.getExamineResult());
+                    f.setExamineDate(targetExamine.getExamineDate());
+                    f.setExaminePersonId(targetExamine.getExaminePersonId());
+                    f.setExaminePersonName(targetExamine.getExaminePersonName());
+                }
+
+            });
+        }
+
         targetMngDto.setTargetDivideDetailList(respList);
         return targetMngDto;
     }
@@ -154,7 +205,7 @@
         respList.forEach(dto->{
             List<TargetDutyWorkApprove> list = targetDutyWorkApproveRepository.selectList(
                     new QueryWrapper<TargetDutyWorkApprove>().eq("del_flag",0)
-                            .eq("relate_type",pageQuery.getSearchParams().getTargetType())
+                            .eq("relate_type",pageQuery.getSearchParams().getRelateType())
                             .eq("relate_id",dto.getId())
                             .orderByDesc("sort"));
 
@@ -179,5 +230,56 @@
         );
     }
 
+    @Override
+    public Object statistics(TargetMngQueryCriteria criteria) {
+        Map<String,String> map = new HashMap<>();
+        // 查询总数
+        Integer total = 0;
+        // 完成数量
+        Integer complete=0;
+
+        // 查询目标已分解且事件类型对一个的目标
+        List<TargetMng> targetMngList = targetMngRepository.selectList(
+                new QueryWrapper<TargetMng>()
+                .eq("target_type",criteria.getTargetType())
+                .eq("divide_status",1)
+        );
+        if (!targetMngList.isEmpty()){
+            total = targetMngList.size();
+            // 查询目标下的所有分解项
+            for (TargetMng targetMng : targetMngList){
+                Boolean completeFlag = true;
+                List<TargetDivideDetail> targetDivideDetailList = targetDivideDetailRepository.selectList(
+                        new QueryWrapper<TargetDivideDetail>()
+                        .eq("target_id",targetMng.getId())
+                );
+                if (!targetDivideDetailList.isEmpty()){
+                    // 查询分解项 是否已经审核通过
+                    for (TargetDivideDetail targetDivideDetail :targetDivideDetailList){
+                        List<TargetExamine> targetExamineList = targetExamineRepository.selectList(
+                                new QueryWrapper<TargetExamine>()
+                                        .eq("target_divide_detail_id",targetDivideDetail.getId())
+                                        .eq("examine_result",1)
+                        );
+                        if (targetExamineList.isEmpty()){
+                            completeFlag=false;
+                        }
+                    }
+                }
+                // 该目标中有未评价的或者不合格的
+                if (completeFlag){
+                    complete++;
+                }
+            }
+        }
+        //未完成数
+        int noComplete = total-complete;
+        map.put("total",total+"");
+        map.put("noComplete",noComplete+"");
+        map.put("complete",complete+"");
+        return map;
+    }
+
+
 
 }
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetTypeServiceImpl.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetTypeServiceImpl.java
new file mode 100644
index 0000000..b49a247
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/service/impl/TargetTypeServiceImpl.java
@@ -0,0 +1,61 @@
+package com.gkhy.safePlatform.targetDuty.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.safePlatform.targetDuty.repository.TargetTypeRepository;
+import com.gkhy.safePlatform.targetDuty.entity.TargetType;
+import com.gkhy.safePlatform.targetDuty.service.TargetTypeService;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.gkhy.safePlatform.commons.enums.ResultCodes;
+import com.gkhy.safePlatform.commons.query.PageQuery;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.commons.vo.SearchResultVO;
+import com.gkhy.safePlatform.targetDuty.model.dto.req.TargetTypeQueryCriteria;
+import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetTypeDto;
+import com.gkhy.safePlatform.targetDuty.utils.QueryHelpPlus;
+import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
+
+import java.util.List;
+
+/**
+ * 目标分类(TargetType)表服务实现类
+ *
+ * @author xurui
+ * @since 2022-08-17 10:20:01
+ */
+@Service("targetTypeService")
+public class TargetTypeServiceImpl extends ServiceImpl<TargetTypeRepository, TargetType> implements TargetTypeService {
+
+    @Autowired
+    private TargetTypeRepository targetTypeRepository;
+    
+    
+	
+	@Override
+    public ResultVO queryAll(PageQuery<TargetTypeQueryCriteria> pageQuery) {
+        Long pageIndex = pageQuery.getPageIndex();
+        Long pageSize = pageQuery.getPageSize();
+        IPage<TargetType> page = new Page<>(pageIndex, pageSize);
+
+        page = baseMapper.selectPage(page,
+                QueryHelpPlus.getPredicate(TargetType.class, pageQuery.getSearchParams()));
+        List<TargetTypeDto> respList = BeanCopyUtils.copyBeanList(page.getRecords(), TargetTypeDto.class);
+
+        return new SearchResultVO<>(
+                true,
+                pageIndex,
+                pageSize,page.getPages(),
+                page.getTotal(),
+                respList,
+                ResultCodes.OK
+        );
+    }
+
+
+    @Override
+    public List<TargetType> queryAll(TargetTypeQueryCriteria criteria) {
+        return baseMapper.selectList(QueryHelpPlus.getPredicate(TargetType.class, criteria));
+    }
+}
\ No newline at end of file
diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/utils/BeanToMapUtil.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/utils/BeanToMapUtil.java
new file mode 100644
index 0000000..35ac5d8
--- /dev/null
+++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/targetDuty/utils/BeanToMapUtil.java
@@ -0,0 +1,107 @@
+package com.gkhy.safePlatform.targetDuty.utils;
+
+/**
+ */
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+public class BeanToMapUtil {
+
+    /**
+     * 将一个 Map 对象转化为一个 JavaBean
+     * @param type 要转化的类型
+     * @param map 包含属性值的 map
+     * @return 转化出来的 JavaBean 对象
+     * @throws IntrospectionException
+     *             如果分析类属性失败
+     * @throws IllegalAccessException
+     *             如果实例化 JavaBean 失败
+     * @throws InstantiationException
+     *             如果实例化 JavaBean 失败
+     * @throws InvocationTargetException
+     *             如果调用属性的 setter 方法失败
+     */
+    public static Object convertMap(Class type, Map map)
+            throws IntrospectionException, IllegalAccessException,
+            InstantiationException, InvocationTargetException {
+        BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性
+        Object obj = type.newInstance(); // 创建 JavaBean 对象
+
+        // 给 JavaBean 对象的属性赋值
+        PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
+        for (int i = 0; i< propertyDescriptors.length; i++) {
+            PropertyDescriptor descriptor = propertyDescriptors[i];
+            String propertyName = descriptor.getName();
+
+            if (map.containsKey(propertyName)) {
+                // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。
+                Object value = map.get(propertyName);
+
+                Object[] args = new Object[1];
+                args[0] = value;
+
+                descriptor.getWriteMethod().invoke(obj, args);
+            }
+        }
+        return obj;
+    }
+
+    /**
+     * 将一个 JavaBean 对象转化为一个  Map
+     * @param bean 要转化的JavaBean 对象
+     * @return 转化出来的  Map 对象
+     * @throws IntrospectionException 如果分析类属性失败
+     * @throws IllegalAccessException 如果实例化 JavaBean 失败
+     * @throws InvocationTargetException 如果调用属性的 setter 方法失败
+     */
+    public static Map convertBean(Object bean)
+            throws IntrospectionException, IllegalAccessException, InvocationTargetException {
+        Class type = bean.getClass();
+        Map returnMap = new HashMap();
+        BeanInfo beanInfo = Introspector.getBeanInfo(type);
+
+        PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
+        for (int i = 0; i< propertyDescriptors.length; i++) {
+            PropertyDescriptor descriptor = propertyDescriptors[i];
+            String propertyName = descriptor.getName();
+            if (!propertyName.equals("class")) {
+                Method readMethod = descriptor.getReadMethod();
+                Object result = readMethod.invoke(bean, new Object[0]);
+                if (result != null) {
+                    returnMap.put(propertyName, result);
+                } else {
+                    returnMap.put(propertyName, "");
+                }
+            }
+        }
+        return returnMap;
+    }
+
+
+    public static Map convertHaveDataBean(Object bean)
+            throws IntrospectionException, IllegalAccessException, InvocationTargetException {
+        Class type = bean.getClass();
+        Map returnMap = new HashMap();
+        BeanInfo beanInfo = Introspector.getBeanInfo(type);
+
+        PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
+        for (int i = 0; i< propertyDescriptors.length; i++) {
+            PropertyDescriptor descriptor = propertyDescriptors[i];
+            String propertyName = descriptor.getName();
+            if (!propertyName.equals("class")) {
+                Method readMethod = descriptor.getReadMethod();
+                Object result = readMethod.invoke(bean, new Object[0]);
+                if (result != null) { //有值得字段放入map中,其他的不要
+                    returnMap.put(propertyName, result);
+                }
+            }
+        }
+        return returnMap;
+    }
+}
\ No newline at end of file
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentCountController.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentCountController.java
new file mode 100644
index 0000000..581eb80
--- /dev/null
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentCountController.java
@@ -0,0 +1,28 @@
+package com.gkhy.safePlatform.incidentManage.controller;
+
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportCountRespDTO;
+import com.gkhy.safePlatform.incidentManage.query.AccidentReportCountQuery;
+import com.gkhy.safePlatform.incidentManage.service.AccidentCountService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/accidentCount")
+public class AccidentCountController {
+
+    @Autowired
+    private AccidentCountService accidentCountService;
+
+
+    /**
+     * 事故报告统计的rpc接口
+     */
+    @RequestMapping(value = "/accidentReport/count",method = RequestMethod.POST)
+    public ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(@RequestBody AccidentReportCountQuery query){
+        return accidentCountService.countAccidentReport(query);
+    }
+
+}
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentReportController.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentReportController.java
index a037e86..ab0c764 100644
--- a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentReportController.java
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/controller/AccidentReportController.java
@@ -5,11 +5,9 @@
 import com.gkhy.safePlatform.commons.utils.PageUtils;
 import com.gkhy.safePlatform.commons.vo.ResultVO;
 import com.gkhy.safePlatform.incidentManage.model.dto.req.AccidentReportReqDTO;
-import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportCountRespDTO;
 import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportDetailRespDTO;
 import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportPageRespDTO;
 import com.gkhy.safePlatform.incidentManage.query.AccidentReportQuery;
-import com.gkhy.safePlatform.incidentManage.query.AccidentReportRPCQuery;
 import com.gkhy.safePlatform.incidentManage.service.AccidentReportService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.Authentication;
@@ -67,11 +65,4 @@
         return accidentReportService.batchDeleteAccidentReport(ids);
     }
 
-    /**
-     * 事故报告统计的rpc接口
-     */
-    @RequestMapping(value = "/count",method = RequestMethod.POST)
-    public ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(@RequestBody AccidentReportRPCQuery query){
-        return accidentReportService.countAccidentReport(query);
-    }
 }
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/query/AccidentReportRPCQuery.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/query/AccidentReportCountQuery.java
similarity index 75%
rename from incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/query/AccidentReportRPCQuery.java
rename to incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/query/AccidentReportCountQuery.java
index bc7008a..9e7189e 100644
--- a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/query/AccidentReportRPCQuery.java
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/query/AccidentReportCountQuery.java
@@ -1,6 +1,6 @@
 package com.gkhy.safePlatform.incidentManage.query;
 
-public class AccidentReportRPCQuery {
+public class AccidentReportCountQuery {
 
     private String level;
 
@@ -11,6 +11,16 @@
 
     private int month;
 
+    private String realMonth;
+
+    public String getRealMonth() {
+        return realMonth;
+    }
+
+    public void setRealMonth(String realMonth) {
+        this.realMonth = realMonth;
+    }
+
     public String getLevel() {
         return level;
     }
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentCountService.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentCountService.java
new file mode 100644
index 0000000..dff27a0
--- /dev/null
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentCountService.java
@@ -0,0 +1,12 @@
+package com.gkhy.safePlatform.incidentManage.service;
+
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportCountRespDTO;
+import com.gkhy.safePlatform.incidentManage.query.AccidentReportCountQuery;
+
+import java.util.List;
+
+public interface AccidentCountService {
+
+    ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(AccidentReportCountQuery query);
+}
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentReportService.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentReportService.java
index 77d07de..9f6b0ad 100644
--- a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentReportService.java
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/AccidentReportService.java
@@ -4,11 +4,9 @@
 import com.gkhy.safePlatform.commons.vo.ResultVO;
 import com.gkhy.safePlatform.commons.vo.SearchResultVO;
 import com.gkhy.safePlatform.incidentManage.model.dto.req.AccidentReportReqDTO;
-import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportCountRespDTO;
 import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportDetailRespDTO;
 import com.gkhy.safePlatform.incidentManage.model.dto.resp.AccidentReportPageRespDTO;
 import com.gkhy.safePlatform.incidentManage.query.AccidentReportQuery;
-import com.gkhy.safePlatform.incidentManage.query.AccidentReportRPCQuery;
 
 import java.util.List;
 
@@ -24,5 +22,4 @@
 
     ResultVO batchDeleteAccidentReport(Long[] ids);
 
-    ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(AccidentReportRPCQuery query);
 }
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentCountServiceImpl.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentCountServiceImpl.java
new file mode 100644
index 0000000..bcadd55
--- /dev/null
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentCountServiceImpl.java
@@ -0,0 +1,56 @@
+package com.gkhy.safePlatform.incidentManage.service.impl;
+
+import com.gkhy.safePlatform.commons.enums.ResultCodes;
+import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
+import com.gkhy.safePlatform.commons.vo.ResultVO;
+import com.gkhy.safePlatform.incidentManage.entity.*;
+import com.gkhy.safePlatform.incidentManage.model.dto.resp.*;
+import com.gkhy.safePlatform.incidentManage.query.AccidentReportCountQuery;
+import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportRPCDBQuery;
+import com.gkhy.safePlatform.incidentManage.service.AccidentCountService;
+import com.gkhy.safePlatform.incidentManage.service.baseService.AccidentReportInfoService;
+import com.gkhy.safePlatform.incidentManage.utils.TimeUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+@Service("accidentCountService")
+public class AccidentCountServiceImpl implements AccidentCountService {
+
+    @Autowired
+    private AccidentReportInfoService accidentReportInfoService;
+
+
+    @Override
+    public ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(AccidentReportCountQuery query) {
+
+        List<AccidentReportCount> list = new ArrayList<>();
+        AccidentReportRPCDBQuery dbQuery = new AccidentReportRPCDBQuery();
+        if (query.getType() == 1) {
+            // 月
+            int year = query.getYear();
+            int month;
+            if (query.getMonth() == 0) {
+                Calendar date = Calendar.getInstance();
+                month = date.get(Calendar.MONTH) + 1;
+            } else {
+                month = query.getMonth();
+            }
+            dbQuery.setStartTime(TimeUtils.getMonthFirst(year, month));
+            dbQuery.setEndTime(TimeUtils.getMonthLast(year, month));
+            list = accidentReportInfoService.selectByTimeAndType(dbQuery);
+        }
+        if (query.getType() == 2) {
+            // 年
+            int year = query.getYear();
+            dbQuery.setStartTime(TimeUtils.getYearFirst(year));
+            dbQuery.setEndTime(TimeUtils.getYearLast(year));
+            list = accidentReportInfoService.selectByTimeAndType(dbQuery);
+        }
+
+        List<AccidentReportCountRespDTO> accidentReportCountRespDTOList = BeanCopyUtils.copyBeanList(list, AccidentReportCountRespDTO.class);
+        return new ResultVO<>(ResultCodes.OK, accidentReportCountRespDTOList);
+    }
+
+}
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentReportServiceImpl.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentReportServiceImpl.java
index 72b5683..69ee086 100644
--- a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentReportServiceImpl.java
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/service/impl/AccidentReportServiceImpl.java
@@ -16,17 +16,13 @@
 import com.gkhy.safePlatform.incidentManage.model.dto.req.AccidentReportReqDTO;
 import com.gkhy.safePlatform.incidentManage.model.dto.resp.*;
 import com.gkhy.safePlatform.incidentManage.query.AccidentReportQuery;
-import com.gkhy.safePlatform.incidentManage.query.AccidentReportRPCQuery;
 import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportDBQuery;
-import com.gkhy.safePlatform.incidentManage.query.db.AccidentReportRPCDBQuery;
 import com.gkhy.safePlatform.incidentManage.service.AccidentReportService;
 import com.gkhy.safePlatform.incidentManage.service.baseService.AccidentExpressFileInfoService;
 import com.gkhy.safePlatform.incidentManage.service.baseService.AccidentExpressInfoService;
 import com.gkhy.safePlatform.incidentManage.service.baseService.AccidentReportFileInfoService;
 import com.gkhy.safePlatform.incidentManage.service.baseService.AccidentReportInfoService;
-import com.gkhy.safePlatform.incidentManage.utils.TimeUtils;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -310,31 +306,6 @@
         if (AccidentReportReqDTO.getFillInTime() == null) {
             throw new AccidentException(AccidentResultCodes.REPORT_FILL_IN_TIME_NULL);
         }
-    }
-
-    @Override
-    public ResultVO<List<AccidentReportCountRespDTO>> countAccidentReport(AccidentReportRPCQuery query) {
-
-        List<AccidentReportCount> list = new ArrayList<>();
-        AccidentReportRPCDBQuery dbQuery = new AccidentReportRPCDBQuery();
-        if (query.getType()==1){
-            // 月
-            int year = query.getYear();
-            int month = query.getMonth();
-            dbQuery.setStartTime(TimeUtils.getMonthFirst(year,month));
-            dbQuery.setEndTime(TimeUtils.getMonthLast(year,month));
-            list = accidentReportInfoService.selectByTimeAndType(dbQuery);
-        }
-        if (query.getType()==2){
-            // 年
-            int year = query.getYear();
-            dbQuery.setStartTime(TimeUtils.getYearFirst(year));
-            dbQuery.setEndTime(TimeUtils.getYearLast(year));
-            list = accidentReportInfoService.selectByTimeAndType(dbQuery);
-        }
-
-        List<AccidentReportCountRespDTO> accidentReportCountRespDTOList = BeanCopyUtils.copyBeanList(list,AccidentReportCountRespDTO.class);
-        return new ResultVO<>(ResultCodes.OK,accidentReportCountRespDTOList);
     }
 
 }
diff --git a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/utils/TimeUtils.java b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/utils/TimeUtils.java
index 70d8f9d..e93eb27 100644
--- a/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/utils/TimeUtils.java
+++ b/incident-manage/incident-manage-service/src/main/java/com/gkhy/safePlatform/incidentManage/utils/TimeUtils.java
@@ -74,7 +74,7 @@
     public static void main(String[] args) {
         Calendar date = Calendar.getInstance();
         int year = date.get(Calendar.YEAR);
-        int month = date.get(Calendar.MONTH);
-        System.out.println(getMonthLast(year,2));
+        int month = date.get(Calendar.MONTH) + 1;
+        System.out.println(month);
     }
 }

--
Gitblit v1.9.2