diff --git a/sk-module-biz/src/main/java/com/skua/modules/edu/mapper/xml/PaperMapper.xml b/sk-module-biz/src/main/java/com/skua/modules/edu/mapper/xml/PaperMapper.xml
index 91c2388..bc28880 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/edu/mapper/xml/PaperMapper.xml
+++ b/sk-module-biz/src/main/java/com/skua/modules/edu/mapper/xml/PaperMapper.xml
@@ -15,6 +15,12 @@
         <if test="param.departId != null and param.departId !=''">
             and p.depart_id = #{param.departId}
         </if>
+        <if test="param.paperTitle != null and param.paperTitle !=''">
+            and  p.paper_title like CONCAT('%',#{param.paperTitle},'%')
+        </if>
+        <if test="param.departId != null and param.departId !=''">
+            and  p.depart_id  = #{param.departId}
+        </if>
         and p.id NOT in (   select  DISTINCT p1.id
              from edu_user_paper  up , edu_paper p1
             where up.paper_id =  p1.id     and up.user_id = #{param.userId}
@@ -29,9 +35,14 @@
 
     <!-- 考试记录-->
     <select id="queryMyPaperRecoredByList" resultType="com.skua.modules.edu.entity.Paper">
-        select  up.score, up.rank,up.id as 'user_paper_id', p.* from edu_user_paper up
-        left join edu_paper p on   p.id = up.paper_id
-        where up.user_id = #{param.userId}
+        select  up.score, up.rank,up.id as 'user_paper_id', p.* from edu_user_paper up  ,edu_paper p
+        where up.user_id = #{param.userId} and   p.id = up.paper_id
+        <if test="param.paperTitle != null and param.paperTitle !=''">
+            and  p.paper_title like CONCAT('%',#{param.paperTitle},'%')
+        </if>
+        <if test="param.departId != null and param.departId !=''">
+            and  p.depart_id  = #{param.departId}
+        </if>
         order by up.start_time desc
     </select>
 </mapper>
\ No newline at end of file
diff --git a/sk-module-biz/src/main/java/com/skua/modules/erp/controller/ErpCommonController.java b/sk-module-biz/src/main/java/com/skua/modules/erp/controller/ErpCommonController.java
index 993c487..df5dca5 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/erp/controller/ErpCommonController.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/erp/controller/ErpCommonController.java
@@ -7,6 +7,7 @@ import com.skua.core.api.vo.Result;
 import com.skua.core.aspect.annotation.AutoLog;
 import com.skua.core.context.BaseContextHandler;
 import com.skua.core.query.QueryGenerator;
+import com.skua.core.util.ConvertUtils;
 import com.skua.modules.equipment.service.IEquipmentSparepartService;
 import com.skua.modules.erp.entity.ApproveRecord;
 import com.skua.modules.erp.entity.PurchaseMaterial;
@@ -15,16 +16,20 @@ import com.skua.modules.erp.service.IPurchaseMaterialService;
 import com.skua.modules.erp.vo.MaterialSearchVO;
 import com.skua.modules.erp.vo.PurchaseMaterialVO;
 import com.skua.modules.supplies.entity.EquipmentSparepartSupplies;
+import com.skua.modules.supplies.entity.EquipmentSparepartType;
 import com.skua.modules.supplies.service.IEquipmentSparepartSuppliesService;
+import com.skua.modules.supplies.service.IEquipmentSparepartTypeService;
 import com.skua.modules.system.entity.SysUser;
+import com.skua.tool.dfs.MapDFS;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.List;
+import java.util.*;
 
 @Slf4j
 @Api(tags="ert通用方法")
@@ -37,7 +42,7 @@ public class ErpCommonController {
     private IPurchaseMaterialService purchaseMaterialService;
 
     @Autowired
-    private IDistributMaterialService  distributMaterialService;
+    private IEquipmentSparepartTypeService equipmentSparepartTypeService;
 
     @AutoLog(value = "ERP-采购计划--物料列表")
     @ApiOperation(value = "ERP-采购计划--物料列表", notes = "ERP-采购计划--物料列表")
@@ -47,9 +52,20 @@ public class ErpCommonController {
                                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
         Result<IPage<EquipmentSparepartSupplies>> result = new Result<IPage<EquipmentSparepartSupplies>>();
         Page<EquipmentSparepartSupplies> page = new Page<EquipmentSparepartSupplies>(pageNo, pageSize);
-        String depId = BaseContextHandler.getRealDepartId();//临时参数
+
+        Set<String> sparepartTypeSet = new HashSet<>();
+        String sparepartTypeStr = "";
+        if (StringUtils.isNotEmpty(materialSearchVO.getSparepartType())) {
+            // 查询子集
+            sparepartTypeSet    = equipmentSparepartTypeService.getAllChildrenSparepartTypeIds(  materialSearchVO.getSparepartType() );
+            if(sparepartTypeSet.size() > 0 ){
+                // 使用String.join()方法转换Set为字符串,以逗号分隔
+                sparepartTypeStr = String.join(",", sparepartTypeSet);
+            }
+        }
+       // String depId = BaseContextHandler.getRealDepartId();//临时参数
        // String username = req.getParameter("username");
-        IPage<EquipmentSparepartSupplies> pageList = sparepartSuppliesService.queryPageByOut(page, depId  , materialSearchVO.getSparepartName() ,materialSearchVO.getSparepartType(),materialSearchVO.getSparepartCode());
+        IPage<EquipmentSparepartSupplies> pageList = sparepartSuppliesService.queryPageByOut(page  , materialSearchVO.getSparepartName() ,sparepartTypeStr ,materialSearchVO.getSparepartCode());
         result.setSuccess(true);
         result.setResult(pageList);
         return result;
diff --git a/sk-module-biz/src/main/java/com/skua/modules/guest/util/DateUtil.java b/sk-module-biz/src/main/java/com/skua/modules/guest/util/DateUtil.java
index b702d1c..2411c6b 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/guest/util/DateUtil.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/guest/util/DateUtil.java
@@ -4,6 +4,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.Period;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -28,6 +29,21 @@ public class DateUtil {
         return dateUtil;
     }
 
+
+    /***
+     * 计算年龄
+     * @param birthdate
+     * @return
+     */
+    public static int calculateAge(Date birthdate) {
+        LocalDate now = LocalDate.now();
+        LocalDate dob = birthdate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+
+        Period period = Period.between(dob, now);
+        int age = period.getYears();
+
+        return age;
+    }
     /**
      * 转化日期格式
      * @param dateString  要转换的日期字符串
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/controller/HealthRecordsController.java b/sk-module-biz/src/main/java/com/skua/modules/safe/controller/HealthRecordsController.java
index 737a6e5..b2bfd46 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/safe/controller/HealthRecordsController.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/controller/HealthRecordsController.java
@@ -1,8 +1,6 @@
 package com.skua.modules.safe.controller;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
@@ -10,16 +8,23 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import com.skua.core.api.vo.Result;
 import com.skua.core.aspect.annotation.AutoLog;
-import com.skua.core.context.BaseContextHandler;
 import com.skua.core.query.QueryGenerator;
 import com.skua.core.util.ConvertUtils;
+import com.skua.modules.flow.utils.StringUtil;
 import com.skua.modules.safe.entity.HealthRecords;
 import com.skua.modules.safe.service.IHealthRecordsService;
 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.skua.modules.safe.vo.HealthRecordsStatisticsVO;
+import com.skua.modules.safe.vo.HealthRecordsVO;
+import com.skua.modules.system.entity.SysUser;
+import com.skua.modules.system.service.ISysDepartService;
+import com.skua.modules.system.service.ISysUserDepartService;
+import com.skua.modules.system.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
 
+import org.apache.commons.lang.StringUtils;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -49,12 +54,18 @@ import io.swagger.annotations.ApiOperation;
 public class HealthRecordsController {
 	@Autowired
 	private IHealthRecordsService healthRecordsService;
+	@Autowired
+	private ISysUserDepartService userDepartService;
+	@Autowired
+	private ISysDepartService  departService;
 
+	@Autowired
+	private  ISysUserService userService;
 	/**
 	 * <pre>
 	 * 	分页列表查询
 	 * </pre>
-	 * @param healthRecords
+	 * @param healthRecordsVO
 	 * @param pageNo
 	 * @param pageSize
 	 * @param req
@@ -62,20 +73,38 @@ public class HealthRecordsController {
 	 * @author 开发者姓名, 开发时间
 	 * @Description: TODO(这里描述这个方法的需求变更情况)
 	 */
-
 	@AutoLog(value = "健康档案-分页列表查询")
 	@ApiOperation(value="健康档案-分页列表查询", notes="健康档案-分页列表查询")
 	@GetMapping(value = "/list")
-	public Result<IPage<HealthRecords>> queryPageList(HealthRecords healthRecords,
+	public Result<IPage<HealthRecordsVO>> queryPageList(HealthRecordsVO healthRecordsVO,
 									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 									  HttpServletRequest req) {
-		Result<IPage<HealthRecords>> result = new Result<IPage<HealthRecords>>();
-		QueryWrapper<HealthRecords> queryWrapper = QueryGenerator.initQueryWrapper(healthRecords, req.getParameterMap());
+		Result<IPage<HealthRecordsVO>> result = new Result<IPage<HealthRecordsVO>>();
+	/*	QueryWrapper<HealthRecords> queryWrapper = QueryGenerator.initQueryWrapper(healthRecords, req.getParameterMap());
 		Page<HealthRecords> page = new Page<HealthRecords>(pageNo, pageSize);
 		//queryWrapper.eq("depart_id",    BaseContextHandler.getRealDepartId());
 		queryWrapper.in("depart_id", BaseContextHandler.getDeparts().split(","));
-		IPage<HealthRecords> pageList = healthRecordsService.page(page, queryWrapper);
+		IPage<HealthRecords> pageList = healthRecordsService.page(page, queryWrapper);*/
+
+		String departAncestors = "";
+
+		Set<String> departSet = new HashSet<>();
+		if (StringUtils.isNotEmpty(healthRecordsVO.getDepartId() )) {
+			String departId = healthRecordsVO.getDepartId();
+			// 查询子集
+			departSet = departService.getAllChildrenDepartIds(departId);
+			if(departSet.size() > 0 ){
+				// 使用String.join()方法转换Set为字符串,以逗号分隔
+				departAncestors = String.join(",", departSet);
+			}
+		}
+		if(departAncestors.length() > 0 ){
+			healthRecordsVO.setDepartAncestors( departAncestors );
+		}
+
+		Page<HealthRecordsVO> page = new Page<HealthRecordsVO>(pageNo, pageSize);
+		IPage<HealthRecordsVO> pageList = healthRecordsService.queryByPage(page, healthRecordsVO);
 		result.setSuccess(true);
 		result.setResult(pageList);
 		return result;
@@ -96,6 +125,14 @@ public class HealthRecordsController {
 	public Result<HealthRecords> add(@RequestBody HealthRecords healthRecords) {
 		Result<HealthRecords> result = new Result<HealthRecords>();
 		try {
+			if( StringUtil.isNotBlank(healthRecords.getUserId())){
+				List<String> deparentList = userDepartService.getDepartByUserId(healthRecords.getUserId());
+				if(deparentList != null && !deparentList.isEmpty()){
+					healthRecords.setDepartId(deparentList.get(0)  );//获取用户所属的部门的第一条记录
+				}
+				SysUser sysUser  = userService.getById(healthRecords.getUserId());
+				if(sysUser != null ) healthRecords.setUserName( sysUser.getRealname());
+			}
 			healthRecordsService.save(healthRecords);
 			result.success("添加成功!");
 		} catch (Exception e) {
@@ -118,10 +155,21 @@ public class HealthRecordsController {
 	@PutMapping(value = "/edit")
 	public Result<HealthRecords> edit(@RequestBody HealthRecords healthRecords) {
 		Result<HealthRecords> result = new Result<HealthRecords>();
+
+
 		HealthRecords healthRecordsEntity = healthRecordsService.getById(healthRecords.getId());
 		if(healthRecordsEntity==null) {
 			result.error500("未找到对应实体");
 		}else {
+
+			if( StringUtil.isNotBlank(healthRecords.getUserId())){
+				List<String> deparentList = userDepartService.getDepartByUserId(healthRecords.getUserId());
+				if(deparentList != null && !deparentList.isEmpty()){
+					healthRecords.setDepartId(deparentList.get(0)  );//获取用户所属的部门的第一条记录
+				}
+				SysUser sysUser  = userService.getById(healthRecords.getUserId());
+				if(sysUser != null ) healthRecords.setUserName( sysUser.getRealname());
+			}
 			boolean ok = healthRecordsService.updateById(healthRecords);
 			//TODO 返回false说明什么?
 			if(ok) {
@@ -199,6 +247,30 @@ public class HealthRecordsController {
 		return result;
 	}
 
+
+	@AutoLog(value = "健康档案-统计接口")
+	@ApiOperation(value="健康档案-统计接口", notes="健康档案-统计接口")
+	@GetMapping(value = "/statistics")
+	public Result<HealthRecordsStatisticsVO> statistics(@RequestParam(name="departId",required=true) String departId) {
+		Result<HealthRecordsStatisticsVO> result = new Result<HealthRecordsStatisticsVO>();
+
+		// 查询子集
+		String departAncestors = "";
+
+		Set<String> departSet = new HashSet<>();
+		// 查询子集
+		departSet = departService.getAllChildrenDepartIds(departId);
+		if(departSet.size() > 0 ){
+			// 使用String.join()方法转换Set为字符串,以逗号分隔
+			departAncestors = String.join(",", departSet);
+		}
+
+		HealthRecordsStatisticsVO  statisticsVO = healthRecordsService.statistics(departAncestors);
+		result.setResult(statisticsVO);
+		result.setSuccess(true);
+		return result;
+	}
+
    /**
 	 * <pre>
 	 * 	 导出excel
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/entity/EpibolyOuterStaff.java b/sk-module-biz/src/main/java/com/skua/modules/safe/entity/EpibolyOuterStaff.java
index a9ddb09..fcbb610 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/safe/entity/EpibolyOuterStaff.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/entity/EpibolyOuterStaff.java
@@ -41,16 +41,11 @@ public class EpibolyOuterStaff {
 	@Dict(dictTable = "epiboly_company", dicCode="id", dicText = "company_name")
 	private String companyId;
 
-
-
-
 	/**关联外协单位ID*/
 	@Excel(name = "外协类型", width = 15)
 	@ApiModelProperty(value = "外协类型:1 单位合作;2 个人合作")
 	@Dict(dicCode = "cooperate_type")
 	private String cooperateType;
-
-
 	/**员工名称*/
 	@Excel(name = "员工名称", width = 15)
     @ApiModelProperty(value = "员工名称")
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/entity/HealthRecords.java b/sk-module-biz/src/main/java/com/skua/modules/safe/entity/HealthRecords.java
index ea3b0fa..2235362 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/safe/entity/HealthRecords.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/entity/HealthRecords.java
@@ -43,6 +43,14 @@ public class HealthRecords {
 	@Excel(name = "用户编号", width = 15)
     @ApiModelProperty(value = "用户编号")
 	private String userId;
+
+	@ApiModelProperty(value = "用户名称")
+	private String userName;
+
+	@Excel(name = "用户学历", width = 15)
+	@ApiModelProperty(value = "用户学历")
+	private String education;
+
 	/**检查地点*/
 	@Excel(name = "检查地点", width = 15)
     @ApiModelProperty(value = "检查地点")
@@ -50,7 +58,12 @@ public class HealthRecords {
 	/**检查结果*/
 	@Excel(name = "检查结果", width = 15)
     @ApiModelProperty(value = "检查结果")
+	@Dict(dicCode="health_records_inspection_results")
 	private String inspectResult;
+
+	@Excel(name = "检查日期", width = 15)
+	@ApiModelProperty(value = "检查日期")
+	private String inspectTime;
 	/**检查报告*/
 	@Excel(name = "检查报告", width = 15)
     @ApiModelProperty(value = "检查报告")
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/HealthRecordsMapper.java b/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/HealthRecordsMapper.java
index 3925fa1..f40610f 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/HealthRecordsMapper.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/HealthRecordsMapper.java
@@ -2,6 +2,10 @@ package com.skua.modules.safe.mapper;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.skua.modules.safe.vo.HealthRecordsStatisticsVO;
+import com.skua.modules.safe.vo.HealthRecordsVO;
 import org.apache.ibatis.annotations.Param;
 import com.skua.modules.safe.entity.HealthRecords;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -11,4 +15,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface HealthRecordsMapper extends BaseMapper<HealthRecords> {
 
+    public IPage<HealthRecordsVO> queryByPage(Page<HealthRecordsVO> page,@Param("healthRecordsVO") HealthRecordsVO healthRecordsVO);
+
+    /***
+     * 统计接口
+     * @param departAncestors
+     * @return
+     */
+    public HealthRecordsStatisticsVO statistics(@Param("departAncestors")  String  departAncestors );
 }
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/xml/HealthRecordsMapper.xml b/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/xml/HealthRecordsMapper.xml
index 59ddbe9..28fba6a 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/xml/HealthRecordsMapper.xml
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/mapper/xml/HealthRecordsMapper.xml
@@ -2,4 +2,40 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.skua.modules.safe.mapper.HealthRecordsMapper">
 
+
+    <select id="queryByPage" resultType="com.skua.modules.safe.vo.HealthRecordsVO" parameterType="com.skua.modules.safe.vo.HealthRecordsVO">
+        select u.phone, u.birthday,u.sex,
+        (select group_concat(DISTINCT (select r.role_name from  sys_role r where r.id = sur.role_id)) role_name
+        from sys_user_role sur where sur.user_id  = hr.user_id)  'role_name',
+        hr.*
+        from safety_health_records  hr
+        left join sys_user u  on hr.user_id = u.id
+        <where>
+            <if test="healthRecordsVO.userName != null and  healthRecordsVO.userName !=''">
+                and hr.user_name  like CONCAT('%',#{healthRecordsVO.userName},'%')
+            </if>
+            <if test="healthRecordsVO.departAncestors != null and  healthRecordsVO.departAncestors !=''">
+                and hr.depart_id  in (${healthRecordsVO.departAncestors})
+            </if>
+            <if test="healthRecordsVO.inspectTime != null and healthRecordsVO.inspectTime !=''">
+                and hr.inspect_time = #{healthRecordsVO.inspectTime}
+            </if>
+            <if test="healthRecordsVO.startTime != null and healthRecordsVO.startTime !=''">
+                and hr.inspect_time &gt;= #{healthRecordsVO.startTime}
+            </if>
+            <if test="healthRecordsVO.endTime != null and healthRecordsVO.endTime !=''">
+                and hr.inspect_time  &lt;= #{healthRecordsVO.endTime}
+            </if>
+        </where>
+        order by hr.create_time desc
+    </select>
+
+    <!-- 统计接口-->
+    <select id="statistics" resultType="com.skua.modules.safe.vo.HealthRecordsStatisticsVO">
+        select
+            (select count(1) from sys_user_depart      where dep_id   in (${departAncestors}) ) 'totalNum',
+                (select count(1 ) from  (select DISTINCT  user_id     from safety_health_records  hr where hr.depart_id  in ( ${departAncestors} )  ) aa)  'useNum'
+            from dual
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/service/IHealthRecordsService.java b/sk-module-biz/src/main/java/com/skua/modules/safe/service/IHealthRecordsService.java
index 95ad110..96d2926 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/safe/service/IHealthRecordsService.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/service/IHealthRecordsService.java
@@ -1,11 +1,28 @@
 package com.skua.modules.safe.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.skua.modules.safe.entity.HealthRecords;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.skua.modules.safe.vo.HealthRecordsStatisticsVO;
+import com.skua.modules.safe.vo.HealthRecordsVO;
 
 /**
  * 健康档案
  */
 public interface IHealthRecordsService extends IService<HealthRecords> {
+    /***
+     * 分页检索健康记录
+     * @param page
+     * @param healthRecordsVO
+     * @return
+     */
+    IPage<HealthRecordsVO> queryByPage(Page<HealthRecordsVO> page, HealthRecordsVO healthRecordsVO);
 
+    /***
+     * 统计
+     * @param departAncestors
+     * @return
+     */
+    public HealthRecordsStatisticsVO statistics(String departAncestors);
 }
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/service/impl/HealthRecordsServiceImpl.java b/sk-module-biz/src/main/java/com/skua/modules/safe/service/impl/HealthRecordsServiceImpl.java
index e0fad3f..aced515 100644
--- a/sk-module-biz/src/main/java/com/skua/modules/safe/service/impl/HealthRecordsServiceImpl.java
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/service/impl/HealthRecordsServiceImpl.java
@@ -1,8 +1,12 @@
 package com.skua.modules.safe.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.skua.modules.safe.entity.HealthRecords;
 import com.skua.modules.safe.mapper.HealthRecordsMapper;
 import com.skua.modules.safe.service.IHealthRecordsService;
+import com.skua.modules.safe.vo.HealthRecordsStatisticsVO;
+import com.skua.modules.safe.vo.HealthRecordsVO;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,4 +17,22 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class HealthRecordsServiceImpl extends ServiceImpl<HealthRecordsMapper, HealthRecords> implements IHealthRecordsService {
 
+    /***
+     * 分页检索健康记录
+     * @param page
+     * @param healthRecordsVO
+     * @return
+     */
+    public   IPage<HealthRecordsVO> queryByPage(Page<HealthRecordsVO> page, HealthRecordsVO healthRecordsVO){
+        return this.baseMapper.queryByPage( page,healthRecordsVO );
+    }
+
+    /***
+     * 统计
+     * @param departAncestors
+     * @return
+     */
+    public HealthRecordsStatisticsVO statistics(String departAncestors){
+        return this.baseMapper.statistics( departAncestors );
+    }
 }
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/vo/HealthRecordsStatisticsVO.java b/sk-module-biz/src/main/java/com/skua/modules/safe/vo/HealthRecordsStatisticsVO.java
new file mode 100644
index 0000000..df51eca
--- /dev/null
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/vo/HealthRecordsStatisticsVO.java
@@ -0,0 +1,15 @@
+package com.skua.modules.safe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value="HealthRecords健康档案统计对象", description="健康档案统计对象")
+public class HealthRecordsStatisticsVO {
+    @ApiModelProperty(value = "部门下总人数")
+    private String totalNum;
+
+    @ApiModelProperty(value = "已检查人数")
+    private String useNum;
+}
diff --git a/sk-module-biz/src/main/java/com/skua/modules/safe/vo/HealthRecordsVO.java b/sk-module-biz/src/main/java/com/skua/modules/safe/vo/HealthRecordsVO.java
new file mode 100644
index 0000000..6c86b2c
--- /dev/null
+++ b/sk-module-biz/src/main/java/com/skua/modules/safe/vo/HealthRecordsVO.java
@@ -0,0 +1,60 @@
+package com.skua.modules.safe.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.skua.core.aspect.annotation.Dict;
+import com.skua.modules.safe.entity.HealthRecords;
+import com.skua.modules.guest.util.DateUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value="HealthRecords健康档案", description="健康档案")
+public class HealthRecordsVO  extends HealthRecords {
+
+
+    /**
+     * 性别(1:男 2:女)
+     */
+    @Excel(name = "用户性别", width = 15,dicCode="sex")
+    @Dict(dicCode = "sex")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private String  age;
+
+
+    @Excel(name = "生日", width = 15, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date birthday;
+    /**
+     * 电话
+     */
+    @Excel(name = "电话", width = 15)
+    @ApiModelProperty(value = "电话")
+    private String phone;
+    /**
+     * 角色
+     */
+    @Excel(name = "角色", width = 15)
+    @ApiModelProperty(value = "角色名称")
+    private String roleName;
+
+    @ApiModelProperty(value = "开始时间")
+    private String startTime;
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    public String getAge(){
+        if(this.getBirthday() != null ){
+            return DateUtil.calculateAge(this.getBirthday() )+"";
+        }
+        return "";
+    }
+
+}
diff --git a/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/EquipmentSparepartSuppliesMapper.java b/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/EquipmentSparepartSuppliesMapper.java
index 1c654bd..abead81 100644
--- a/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/EquipmentSparepartSuppliesMapper.java
+++ b/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/EquipmentSparepartSuppliesMapper.java
@@ -15,10 +15,9 @@ public interface EquipmentSparepartSuppliesMapper extends BaseMapper<EquipmentSp
     /***
      * 物料列表+去年出库
      * @param page
-     * @param depId
+     * @param
      * @return
      */
-    public IPage<EquipmentSparepartSupplies> queryPageByOut(Page<EquipmentSparepartSupplies> page,
-                                                            @Param("depId") String depId ,@Param("sparepartName")String sparepartName,
+    public IPage<EquipmentSparepartSupplies> selectPageByOut(Page<EquipmentSparepartSupplies> page,@Param("sparepartName")String sparepartName,
                                                             @Param("sparepartType")String sparepartType ,@Param("sparepartCode")String sparepartCode);
 }
diff --git a/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/xml/EquipmentSparepartSuppliesMapper.xml b/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/xml/EquipmentSparepartSuppliesMapper.xml
index ae7bd26..3006efb 100644
--- a/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/xml/EquipmentSparepartSuppliesMapper.xml
+++ b/sk-module-equipment/src/main/java/com/skua/modules/supplies/mapper/xml/EquipmentSparepartSuppliesMapper.xml
@@ -3,7 +3,7 @@
 <mapper namespace="com.skua.modules.supplies.mapper.EquipmentSparepartSuppliesMapper">
 
     <!-- 物料列表+去年出库 -->
-    <select id="queryPageByOut" resultType="com.skua.modules.supplies.entity.EquipmentSparepartSupplies">
+    <select id="selectPageByOut" resultType="com.skua.modules.supplies.entity.EquipmentSparepartSupplies">
       select st.item_text 'sparepart_type_name' , aaa.out_num, ss.* from equipment_sparepart_supplies ss
         left join equipment_sparepart_type st on ss.sparepart_type = st.id
         left join (
@@ -20,7 +20,7 @@
                 and ss.sparepart_code like CONCAT('%', #{sparepartCode},'%')
             </if>
             <if test="sparepartType != null and sparepartType !=''">
-                and ss.sparepart_type  = #{sparepartType}
+                and ss.sparepart_type  in  ( ${sparepartType})
             </if>
         </where>
     </select>
diff --git a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartSuppliesService.java b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartSuppliesService.java
index fd85de8..9247271 100644
--- a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartSuppliesService.java
+++ b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartSuppliesService.java
@@ -15,5 +15,5 @@ public interface IEquipmentSparepartSuppliesService extends IService<EquipmentSp
      * @param depId
      * @return
      */
-    public IPage<EquipmentSparepartSupplies> queryPageByOut(Page<EquipmentSparepartSupplies> page, String depId ,String sparepartName,String sparepartType ,String sparepartCode);
+    public IPage<EquipmentSparepartSupplies> queryPageByOut(Page<EquipmentSparepartSupplies> page, String sparepartName,String sparepartType ,String sparepartCode);
 }
diff --git a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartTypeService.java b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartTypeService.java
index 6ae8c2e..020b096 100644
--- a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartTypeService.java
+++ b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/IEquipmentSparepartTypeService.java
@@ -3,10 +3,20 @@ package com.skua.modules.supplies.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.skua.modules.supplies.entity.EquipmentSparepartType;
 
+import java.util.Set;
+
 /**
  * 设备物资类型
  */
 public interface IEquipmentSparepartTypeService extends IService<EquipmentSparepartType> {
+
+
+	/***
+	 * 获取类别下所有的子分类
+	 * @param sparepartTypeId
+	 * @return
+	 */
+	public Set<String> getAllChildrenSparepartTypeIds( String sparepartTypeId );
 	/**
 	 * <pre>
 	 * 保存并修改父级叶子节点状态
diff --git a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartSuppliesServiceImpl.java b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartSuppliesServiceImpl.java
index e479024..a75beec 100644
--- a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartSuppliesServiceImpl.java
+++ b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartSuppliesServiceImpl.java
@@ -17,10 +17,10 @@ public class EquipmentSparepartSuppliesServiceImpl extends ServiceImpl<Equipment
     /***
      * 物料列表+去年出库
      * @param page
-     * @param depId
+     * @param
      * @return
      */
-    public IPage<EquipmentSparepartSupplies> queryPageByOut(Page<EquipmentSparepartSupplies> page, String depId ,String sparepartName,String sparepartType ,String sparepartCode){
-        return baseMapper.queryPageByOut(page,depId ,sparepartName,sparepartType,sparepartCode);
+    public IPage<EquipmentSparepartSupplies> queryPageByOut(Page<EquipmentSparepartSupplies> page ,String sparepartName,String sparepartType ,String sparepartCode){
+        return baseMapper.selectPageByOut(page ,sparepartName,sparepartType,sparepartCode);
     }
 }
diff --git a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartTypeServiceImpl.java b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartTypeServiceImpl.java
index c9c702e..1857939 100644
--- a/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartTypeServiceImpl.java
+++ b/sk-module-equipment/src/main/java/com/skua/modules/supplies/service/impl/EquipmentSparepartTypeServiceImpl.java
@@ -1,7 +1,9 @@
 package com.skua.modules.supplies.service.impl;
 
-import java.util.List;
+import java.util.*;
 
+import com.skua.core.util.ConvertUtils;
+import com.skua.tool.dfs.MapDFS;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -20,7 +22,32 @@ import com.skua.modules.supplies.service.IEquipmentSparepartTypeService;
 public class EquipmentSparepartTypeServiceImpl extends ServiceImpl<EquipmentSparepartTypeMapper, EquipmentSparepartType> implements IEquipmentSparepartTypeService {
 	@Autowired
 	private ISequenceService sequenceService;
-	@Override
+
+	/***
+	 * 获取类别下所有的子分类
+	 * @param sparepartTypeId
+	 * @return
+	 */
+	public Set<String> getAllChildrenSparepartTypeIds(String sparepartTypeId ){
+		Set<String> sparepartTypeSet = new HashSet<>();
+		//查询子集
+		MapDFS mapDFS = new MapDFS();
+		List<Map<String, Object>> tree = mapDFS.buildTree(this.listMaps(new QueryWrapper<EquipmentSparepartType>().select("id, parent_id as parentId")));
+		LinkedList<LinkedList<Map<String, Object>>> routeList = mapDFS.getRouteList(tree);
+		for (LinkedList<Map<String, Object>> route: routeList) {
+			for (int i = 0; i < route.size(); i++) {
+				if (sparepartTypeId.equals(route.get(i).get("id"))) {
+					for (int j = i; j < route.size(); j++) {
+						sparepartTypeSet.add(  "'"+ ConvertUtils.getString(route.get(j).get("id"))+"'");
+						//sparepartTypeStr  = sparepartTypeStr + ConvertUtils.getString(route.get(j).get("id")) + ",";
+					}
+				}
+			}
+		}
+
+		return  sparepartTypeSet;
+	}
+
 	@Transactional(rollbackFor = Exception.class)
 	public void saveAndUpdateParent(EquipmentSparepartType equipmentSparepartType) {
 		//保存新数据
diff --git a/sk-module-system/src/main/java/com/skua/modules/system/service/ISysDepartService.java b/sk-module-system/src/main/java/com/skua/modules/system/service/ISysDepartService.java
index 3dedde2..55c52f0 100644
--- a/sk-module-system/src/main/java/com/skua/modules/system/service/ISysDepartService.java
+++ b/sk-module-system/src/main/java/com/skua/modules/system/service/ISysDepartService.java
@@ -10,6 +10,7 @@ import com.skua.modules.system.vo.SysDeptUserVO;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * 部门表 服务实现类
@@ -17,6 +18,13 @@ import java.util.Map;
 public interface ISysDepartService extends IService<SysDepart>{
 
 
+	/***
+	 * 查询子集所有的部门
+	 * @param departId
+	 * @return
+	 */
+	public Set<String> getAllChildrenDepartIds(String departId);
+
     /**
      * 查询所有部门信息,并分节点进行显示
      * @return
diff --git a/sk-module-system/src/main/java/com/skua/modules/system/service/ISysUserDepartService.java b/sk-module-system/src/main/java/com/skua/modules/system/service/ISysUserDepartService.java
index cc7df0f..06d2cb1 100644
--- a/sk-module-system/src/main/java/com/skua/modules/system/service/ISysUserDepartService.java
+++ b/sk-module-system/src/main/java/com/skua/modules/system/service/ISysUserDepartService.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.skua.modules.system.entity.SysUser;
 import com.skua.modules.system.entity.SysUserDepart;
 import com.skua.modules.system.model.DepartIdModel;
+import io.lettuce.core.dynamic.annotation.Param;
 
 import java.util.List;
 
@@ -29,6 +30,13 @@ public interface ISysUserDepartService extends IService<SysUserDepart> {
 	 */
 	String queryDepartIdsStringOfUserId(String userId);
 
+
+	/***
+	 * 根据用户编号查询所属部门
+	 * @param userId
+	 * @return
+	 */
+	List<String> getDepartByUserId(String userId);
 	/**
 	 * 根据指定用户id查询部门id集合
 	 * @param userId
diff --git a/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysDepartServiceImpl.java b/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysDepartServiceImpl.java
index 0c843d1..5893cf5 100644
--- a/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysDepartServiceImpl.java
+++ b/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysDepartServiceImpl.java
@@ -17,6 +17,7 @@ import com.skua.modules.system.service.ISysDepartService;
 import com.skua.modules.system.util.FindsDepartsChildrenUtil;
 import com.skua.modules.system.vo.DepartTree;
 import com.skua.modules.system.vo.SysDeptUserVO;
+import com.skua.tool.dfs.MapDFS;
 import io.netty.util.internal.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +36,30 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
 	private SysDepartMapper sysDepartMapper;
 	@Autowired
 	private ISequenceService sequenceService;
+
+	/***
+	 * 查询子集所有的部门
+	 * @param departId
+	 * @return
+	 */
+	public Set<String> getAllChildrenDepartIds(String departId){
+		MapDFS mapDFS = new MapDFS();
+		Set<String> departSet = new HashSet<>();
+		List<Map<String, Object>> tree = mapDFS.buildTree( this.listMaps(new QueryWrapper<SysDepart>().select("id, parent_id as parentId")));
+		LinkedList<LinkedList<Map<String, Object>>> routeList = mapDFS.getRouteList(tree);
+		for (LinkedList<Map<String, Object>> route: routeList) {
+			for (int i = 0; i < route.size(); i++) {
+				if (departId.equals(route.get(i).get("id"))) {
+					for (int j = i; j < route.size(); j++) {
+						departSet.add( "'"+ ConvertUtils.getString(route.get(j).get("id")) +"'");
+						/*if(departAncestors.length() > 0 ) departAncestors+=",";
+						departAncestors = departAncestors+ "'"+ConvertUtils.getString(route.get(j).get("id")) +"'";*/
+					}
+				}
+			}
+		}
+		return departSet;
+	}
 	/**
 	 * queryTreeList 对应 queryTreeList 查询所有的部门数据,以树结构形式响应给前端
 	 */
diff --git a/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysUserDepartServiceImpl.java b/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysUserDepartServiceImpl.java
index e7d0552..f4a14d3 100644
--- a/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysUserDepartServiceImpl.java
+++ b/sk-module-system/src/main/java/com/skua/modules/system/service/impl/SysUserDepartServiceImpl.java
@@ -30,6 +30,16 @@ public class SysUserDepartServiceImpl extends ServiceImpl<SysUserDepartMapper, S
 	private ISysUserService sysUserService;
 
 
+	/***
+	 * 根据用户编号查询所属部门
+	 * @param userId
+	 * @return
+	 */
+	public List<String> getDepartByUserId(String userId){
+		return this.baseMapper.getDepartByUserId(userId);
+	}
+
+
 	/**
 	 * 根据用户id查询部门信息
 	 */
@@ -43,17 +53,17 @@ public class SysUserDepartServiceImpl extends ServiceImpl<SysUserDepartMapper, S
 			List<DepartIdModel> depIdModelList = new ArrayList<>();
 			List<SysUserDepart> userDepList = this.list(queryUDep);
 			if(userDepList != null && userDepList.size() > 0) {
-			for(SysUserDepart userDepart : userDepList) {
+				for(SysUserDepart userDepart : userDepList) {
 					depIdList.add(userDepart.getDepId());
-			}
-			queryDep.in(SysDepart::getId, depIdList);
-			List<SysDepart> depList = sysDepartService.list(queryDep);
-			if(depList != null || depList.size() > 0) {
-				for(SysDepart depart : depList) {
-					depIdModelList.add(new DepartIdModel().convertByUserDepart(depart));
 				}
-			}
-			return depIdModelList;
+				queryDep.in(SysDepart::getId, depIdList);
+				List<SysDepart> depList = sysDepartService.list(queryDep);
+				if(depList != null || depList.size() > 0) {
+					for(SysDepart depart : depList) {
+						depIdModelList.add(new DepartIdModel().convertByUserDepart(depart));
+					}
+				}
+				return depIdModelList;
 			}
 		}catch(Exception e) {
 			e.fillInStackTrace();