From ef406c4432c290f2627fa3742a1489e660dcc239 Mon Sep 17 00:00:00 2001
From: zhangfeng <1603559716@qq.com>
Date: 星期六, 22 七月 2023 18:30:26 +0800
Subject: [PATCH] 检查修改

---
 src/main/java/com/gk/hotwork/Domain/dto/resp/SafetyInspectionElementRespDTO.java          |   29 
 src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionElementRespDTO.java      |   34 
 src/main/java/com/gk/hotwork/Domain/Vo/UserVo.java                                        |   34 
 src/main/java/com/gk/hotwork/Mapper/CompanyInfoMapper.java                                |    4 
 src/main/java/com/gk/hotwork/Mapper/InspectionExpertGroupMapper.java                      |   22 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java            |  546 ++++++++++++
 src/main/java/com/gk/hotwork/Domain/ElementTree.java                                      |   11 
 src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionRespDTO.java             |   84 +
 src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml                   |   42 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java               |   62 +
 src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java               |   52 +
 src/main/java/com/gk/hotwork/Mapper/InspectionExpertMapper.java                           |   16 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java   |  170 +++
 src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionElementAServiceImpl.java |   32 
 src/main/java/com/gk/hotwork/Controller/InspectionHiddenDangerController.java             |  104 ++
 src/main/java/com/gk/hotwork/Controller/UserController.java                               |   39 
 src/main/java/com/gk/hotwork/Service/CompanyService.java                                  |    3 
 src/main/java/com/gk/hotwork/Mapper/SafetyInspectionElementAMapper.java                   |   16 
 src/main/java/com/gk/hotwork/Mapper/mybatis/UserInfoMapper.xml                            |   25 
 src/main/java/com/gk/hotwork/Service/SafetySelfInspectionService.java                     |   15 
 src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionMapper.java                       |    3 
 src/main/java/com/gk/hotwork/Service/SafetyInspectionElementAService.java                 |   17 
 src/main/java/com/gk/hotwork/Domain/dto/resp/InspectionHiddenDangerRespDTO.java           |   32 
 src/main/java/com/gk/hotwork/Service/InspectionExpertGroupService.java                    |   22 
 src/main/java/com/gk/hotwork/Mapper/UserInfoMapper.java                                   |    2 
 src/main/java/com/gk/hotwork/Domain/query/CompanyQuery.java                               |   28 
 src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionExpertGroupMapper.xml               |   43 +
 src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml              |   83 +
 src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionItemMapper.xml            |   26 
 src/main/java/com/gk/hotwork/Controller/InspectionExpertcGroupController.java             |   57 +
 src/main/java/com/gk/hotwork/Domain/query/InspectionQuery.java                            |   37 
 src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java                         |   50 +
 src/main/java/com/gk/hotwork/Service/InspectionHiddenDangerService.java                   |   33 
 src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml                         |   32 
 src/main/java/com/gk/hotwork/Service/ElementManagementService.java                        |    3 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java            |   79 +
 src/main/java/com/gk/hotwork/Mapper/InspectionHiddenDangerMapper.java                     |   29 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/CompanyServiceImpl.java                  |   28 
 src/main/java/com/gk/hotwork/Service/UserService.java                                     |    2 
 src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionItemMapper.java                   |    3 
 src/main/java/com/gk/hotwork/Controller/InspectionExpertController.java                   |   86 ++
 src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertServiceImpl.java         |   92 ++
 src/main/java/com/gk/hotwork/Controller/Base/BaseController.java                          |    5 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertGroupServiceImpl.java    |   59 +
 src/main/java/com/gk/hotwork/Service/InspectionExpertService.java                         |   21 
 src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml                |   10 
 src/main/java/com/gk/hotwork/Domain/SafetyInspectionElementA.java                         |   24 
 src/main/java/com/gk/hotwork/Controller/SafetyInspectionItemController.java               |    6 
 src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java                           |   77 +
 src/main/java/com/gk/hotwork/Service/ServiceImpl/UserServiceImpl.java                     |    4 
 src/main/java/com/gk/hotwork/Service/SafetyInspectionItemService.java                     |    3 
 src/main/java/com/gk/hotwork/Domain/InspectionExpertGroup.java                            |   54 +
 src/main/java/com/gk/hotwork/Domain/InspectionExpert.java                                 |   57 +
 src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java                             |  101 ++
 src/main/resources/application.yml                                                        |    2 
 55 files changed, 2,496 insertions(+), 54 deletions(-)

diff --git a/src/main/java/com/gk/hotwork/Controller/Base/BaseController.java b/src/main/java/com/gk/hotwork/Controller/Base/BaseController.java
index 498a9ee..4facf08 100644
--- a/src/main/java/com/gk/hotwork/Controller/Base/BaseController.java
+++ b/src/main/java/com/gk/hotwork/Controller/Base/BaseController.java
@@ -94,6 +94,11 @@
                 user.setRealname(jo.getString("realname"));
                 user.setType(jo.getInteger("type"));
                 user.setCompanyid(jo.getLong("companyid"));
+                user.setCompany(jo.getString("company"));
+                user.setProvince(jo.getString("province"));
+                user.setCity(jo.getString("city"));
+                user.setCounty(jo.getString("county"));
+                user.setProfessionalLevel(jo.getInteger("professionalLevel"));
                 user.setDepartment(jo.getLong("department"));
                 user.setDepartmentname(jo.getString("departmentname"));
                 return user;
diff --git a/src/main/java/com/gk/hotwork/Controller/InspectionExpertController.java b/src/main/java/com/gk/hotwork/Controller/InspectionExpertController.java
new file mode 100644
index 0000000..8193118
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Controller/InspectionExpertController.java
@@ -0,0 +1,86 @@
+package com.gk.hotwork.Controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gk.hotwork.Controller.Base.BaseController;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.InspectionHiddenDanger;
+import com.gk.hotwork.Domain.Utils.FilterObject;
+import com.gk.hotwork.Domain.Utils.Msg;
+import com.gk.hotwork.Domain.dto.req.IdParam;
+import com.gk.hotwork.Service.InspectionExpertService;
+import com.gk.hotwork.Service.InspectionHiddenDangerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/17
+ * @time: 13:36
+ */
+@Api(tags = "监管检查清单-专家成员")
+@RequestMapping("/expert")
+@RestController
+public class InspectionExpertController extends BaseController {
+
+    @Autowired
+    private InspectionExpertService expertService;
+
+
+    @PostMapping("/setLeader")
+    @ApiOperation(value = "修改专家成员数据",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",value = "主键"),
+            @ApiImplicitParam(name = "isLeader",value = "是否是组长(0否,1是)"),
+    })
+    public Msg setLeader(@RequestBody InspectionExpert inspectionExpert){
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        expertService.setLeader(inspectionExpert,getUser());
+        return msg;
+    }
+
+    @PostMapping("/del")
+    @ApiOperation(value = "删除专家成员数据",response = Msg.class)
+    public Msg del(@Validated @RequestBody IdParam idParam){
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        expertService.removeById(idParam.getId());
+        return msg;
+    }
+
+    @PostMapping("/listByGroupId")
+    @ApiOperation(value = "根据专家组id获取专家成员数据",response = Msg.class)
+    public Msg getByGroupId(@RequestBody JSONObject jsonObject){
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        Long expertGroupId = jsonObject.getLong("expertGroupId");
+        msg.setResult(expertService.getByGroupId(expertGroupId));
+        return msg;
+    }
+
+    @PostMapping("/listBySelfInspectionId")
+    @ApiOperation(value = "根据检查清单获取专家成员数据",response = Msg.class)
+    public Msg getBySelfInspectionId(@RequestBody JSONObject jsonObject){
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        Long selfInspectionId = jsonObject.getLong("selfInspectionId");
+        msg.setResult(expertService.getBySelfInspectionId(selfInspectionId));
+        return msg;
+    }
+
+}
diff --git a/src/main/java/com/gk/hotwork/Controller/InspectionExpertcGroupController.java b/src/main/java/com/gk/hotwork/Controller/InspectionExpertcGroupController.java
new file mode 100644
index 0000000..64a0bfb
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Controller/InspectionExpertcGroupController.java
@@ -0,0 +1,57 @@
+package com.gk.hotwork.Controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gk.hotwork.Controller.Base.BaseController;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.InspectionExpertGroup;
+import com.gk.hotwork.Domain.InspectionHiddenDanger;
+import com.gk.hotwork.Domain.Utils.FilterObject;
+import com.gk.hotwork.Domain.Utils.Msg;
+import com.gk.hotwork.Domain.dto.req.IdParam;
+import com.gk.hotwork.Service.InspectionExpertGroupService;
+import com.gk.hotwork.Service.InspectionHiddenDangerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/17
+ * @time: 13:36
+ */
+@Api(tags = "监管检查清单-专家组")
+@RequestMapping("/expert/group")
+@RestController
+public class InspectionExpertcGroupController extends BaseController {
+
+    @Autowired
+    private InspectionExpertGroupService expertGroupService;
+
+
+    @PostMapping("/list/page")
+    @ApiOperation(value = "分页查询隐患排查数据",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageIndex",value = "当前页码"),
+            @ApiImplicitParam(name = "pageSize",value = "每页行数"),
+            @ApiImplicitParam(name = "inspectionName",value = "检查名称"),
+            @ApiImplicitParam(name = "checkedCompanyName",value = "被检查公司"),
+            @ApiImplicitParam(name = "inspectionStartTime",value = "开始时间"),
+            @ApiImplicitParam(name = "inspectionEndTime",value = "结束时间")
+    })
+    public Msg selectPage(@RequestBody FilterObject filterObject) {
+        Integer pageIndex = filterObject.getPageIndex();
+        Integer pageSize = filterObject.getPageSize();
+        IPage page = expertGroupService.selectPage(new Page<>(pageIndex, pageSize), filterObject.getFilter(), getUser());
+        return success(page);
+    }
+
+}
diff --git a/src/main/java/com/gk/hotwork/Controller/InspectionHiddenDangerController.java b/src/main/java/com/gk/hotwork/Controller/InspectionHiddenDangerController.java
new file mode 100644
index 0000000..bc76068
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Controller/InspectionHiddenDangerController.java
@@ -0,0 +1,104 @@
+package com.gk.hotwork.Controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gk.hotwork.Controller.Base.BaseController;
+import com.gk.hotwork.Domain.InspectionHiddenDanger;
+import com.gk.hotwork.Domain.SpecialityInfo;
+import com.gk.hotwork.Domain.Utils.FilterObject;
+import com.gk.hotwork.Domain.Utils.Msg;
+import com.gk.hotwork.Domain.Utils.PageInfo;
+import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Domain.dto.req.IdParam;
+import com.gk.hotwork.Domain.dto.req.SpecialityAddReqDTO;
+import com.gk.hotwork.Domain.dto.req.SpecialityModReqDTO;
+import com.gk.hotwork.Service.InspectionHiddenDangerService;
+import com.gk.hotwork.Service.SpecialityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/17
+ * @time: 13:36
+ */
+@Api(tags = "隐患接口(新)")
+@RequestMapping("/hiddendanger")
+@RestController
+public class InspectionHiddenDangerController extends BaseController {
+
+    @Autowired
+    private InspectionHiddenDangerService dangerService;
+
+
+    @PostMapping("/mod")
+    @ApiOperation(value = "修改隐患数据",response = Msg.class)
+    public Msg mod(@RequestBody InspectionHiddenDanger inspectionHiddenDanger){
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        dangerService.mod(inspectionHiddenDanger,getUser());
+        return msg;
+    }
+
+    @PostMapping("/del")
+    @ApiOperation(value = "删除专业数据",response = Msg.class)
+    public Msg del(@Validated @RequestBody IdParam idParam){
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        InspectionHiddenDanger inspectionHiddenDanger = new InspectionHiddenDanger();
+        inspectionHiddenDanger.setId(idParam.getId());
+        inspectionHiddenDanger.setValidFlag(false);
+        inspectionHiddenDanger.setUpdateTime(new Date());
+        inspectionHiddenDanger.setCreateBy(getUser().getRealname());
+        dangerService.updateById(inspectionHiddenDanger);
+        return msg;
+    }
+
+    @PostMapping("/list/page")
+    @ApiOperation(value = "分页查询隐患排查数据",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageIndex",value = "当前页码"),
+            @ApiImplicitParam(name = "pageSize",value = "每页行数"),
+            @ApiImplicitParam(name = "inspectionName",value = "检查名称"),
+            @ApiImplicitParam(name = "checkedCompanyName",value = "被检查公司"),
+            @ApiImplicitParam(name = "inspectionStartTime",value = "开始时间"),
+            @ApiImplicitParam(name = "inspectionEndTime",value = "结束时间"),
+            @ApiImplicitParam(name = "flag",value = "检查类型"),
+
+    })
+    public Msg selectPage(@RequestBody FilterObject filterObject) {
+        Integer pageIndex = filterObject.getPageIndex();
+        Integer pageSize = filterObject.getPageSize();
+        IPage page = dangerService.selectPage(new Page<>(pageIndex, pageSize), filterObject.getFilter(), getUser());
+        return success(page);
+    }
+
+
+    @GetMapping("/inspection/hdanger/list")
+    @ApiOperation(value = "检查清单隐患数据列表",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "selfInspectionId",value = "检查清单id")
+    })
+    public Msg inspectionHdangerlist(Long selfInspectionId){
+
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        List<InspectionHiddenDanger> specialityInfos = dangerService.inspectionHdangerlist(selfInspectionId);
+        msg.setResult(specialityInfos);
+        return msg;
+    }
+
+}
diff --git a/src/main/java/com/gk/hotwork/Controller/SafetyInspectionItemController.java b/src/main/java/com/gk/hotwork/Controller/SafetyInspectionItemController.java
index 827a892..f508ae0 100644
--- a/src/main/java/com/gk/hotwork/Controller/SafetyInspectionItemController.java
+++ b/src/main/java/com/gk/hotwork/Controller/SafetyInspectionItemController.java
@@ -7,6 +7,7 @@
 import com.gk.hotwork.Domain.SafetyInspectionItem;
 import com.gk.hotwork.Domain.Utils.FilterObject;
 import com.gk.hotwork.Domain.Utils.Msg;
+import com.gk.hotwork.Domain.dto.resp.SafetyInspectionElementRespDTO;
 import com.gk.hotwork.Service.SafetyInspectionItemService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -63,8 +64,8 @@
     })
     public Msg infoElementA(@RequestBody JSONObject jsonObject) {
         Long id = jsonObject.getLong("id");
-        List<SafetyInspectionItem> list = safetyInspectionItemService.infoElementA(id, getUser());
-        return success(list);
+        SafetyInspectionElementRespDTO respDTO = safetyInspectionItemService.infoElementA(id, getUser());
+        return success(respDTO);
     }
 
 
@@ -85,6 +86,7 @@
         return success();
     }
 
+
     @ApiOperation("/修改")
     @PostMapping("/mod")
     @ApiImplicitParams({
diff --git a/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java b/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java
index 67f9390..2c60902 100644
--- a/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java
+++ b/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java
@@ -8,6 +8,7 @@
 import com.gk.hotwork.Domain.SafetySelfInspectionItem;
 import com.gk.hotwork.Domain.Utils.FilterObject;
 import com.gk.hotwork.Domain.Utils.Msg;
+import com.gk.hotwork.Domain.dto.resp.SafetySelfInspectionRespDTO;
 import com.gk.hotwork.Service.SafetySelfInspectionService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -19,6 +20,8 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 
 @Api(tags = "安全生产标准化_自查清单")
 @RestController
@@ -28,7 +31,7 @@
     @Autowired
     private SafetySelfInspectionService safetySelfInspectionService;
 
-    @ApiOperation("分页")
+    @ApiOperation("自排查分页")
     @PostMapping("/page")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "pageIndex",value = "当前页码"),
@@ -46,6 +49,24 @@
         IPage page = safetySelfInspectionService.selectPage(new Page<>(pageIndex, pageSize), filterObject.getFilter(), getUser());
         return success(page);
     }
+    @ApiOperation("监管排查分页")
+    @PostMapping("/supervise/page")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageIndex",value = "当前页码"),
+            @ApiImplicitParam(name = "pageSize",value = "每页行数"),
+            @ApiImplicitParam(name = "inspectionName",value = "自查清单名称"),
+            @ApiImplicitParam(name = "inspectorName",value = "检查人名称"),
+            @ApiImplicitParam(name = "checkedCompanyId",value = "被检查公司id"),
+            @ApiImplicitParam(name = "inspectionStartTime",value = "开始时间"),
+            @ApiImplicitParam(name = "inspectionEndTime",value = "结束时间"),
+            @ApiImplicitParam(name = "status",value = "状态"),
+    })
+    public Msg selectSupervisePage(@RequestBody FilterObject filterObject) {
+        Integer pageIndex = filterObject.getPageIndex();
+        Integer pageSize = filterObject.getPageSize();
+        IPage page = safetySelfInspectionService.selectSupervisePage(new Page<>(pageIndex, pageSize), filterObject.getFilter(), getUser());
+        return success(page);
+    }
 
     @ApiOperation("/自查清单详情")
     @PostMapping("/info")
@@ -56,7 +77,7 @@
     public Msg info(@RequestBody JSONObject jsonObject) {
         Long id = jsonObject.getLong("id");
         String unqualified = jsonObject.getString("unqualified");
-        SafetySelfInspection safetySelfInspection= safetySelfInspectionService.infoOne(id,unqualified,getUser());
+        SafetySelfInspectionRespDTO safetySelfInspection= safetySelfInspectionService.infoOne(id,unqualified,getUser());
         return success(safetySelfInspection);
     }
 
@@ -96,6 +117,15 @@
         safetySelfInspectionService.modItemInfo(param, getUser());
         return success();
     }
+    @ApiOperation("/添加专家")
+    @PostMapping("/add/item/expert")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "itemList",value = "检查项集合"),
+    })
+    public Msg addItemExpert(@RequestBody List<SafetySelfInspectionItem> itemList) {
+        safetySelfInspectionService.addItemExpert(itemList, getUser());
+        return success();
+    }
 
 
     @ApiOperation("/新增")
@@ -108,11 +138,29 @@
             @ApiImplicitParam(name = "inspectionTime",value = "检查时间"),
             @ApiImplicitParam(name = "status",value = "状态"),
             @ApiImplicitParam(name = "itemList",value = "检查项集合"),
+            @ApiImplicitParam(name = "elementAList",value = "一级要素id"),
     })
     public Msg add(@RequestBody SafetySelfInspection param) {
         safetySelfInspectionService.addOne(param, getUser());
         return success();
     }
+    @ApiOperation("/新增监管排查")
+    @PostMapping("/add/supervise")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "inspectionName",value = "排查清单名称"),
+            @ApiImplicitParam(name = "checkedCompanyId",value = "被检查公司id"),
+            @ApiImplicitParam(name = "checkedCompanyName",value = "被检查公司"),
+            @ApiImplicitParam(name = "inspectionTime",value = "检查时间"),
+            @ApiImplicitParam(name = "status",value = "状态"),
+            @ApiImplicitParam(name = "itemList",value = "检查项集合"),
+            @ApiImplicitParam(name = "elementAList",value = "一级要素id"),
+            @ApiImplicitParam(name = "expertList",value = "专家用户id"),
+    })
+    public Msg addSupervise(@RequestBody SafetySelfInspection param) {
+        safetySelfInspectionService.addSupervise(param, getUser());
+        return success();
+    }
+
 
     @ApiOperation("/修改")
     @PostMapping("/mod")
diff --git a/src/main/java/com/gk/hotwork/Controller/UserController.java b/src/main/java/com/gk/hotwork/Controller/UserController.java
index d61a2b2..c77f074 100644
--- a/src/main/java/com/gk/hotwork/Controller/UserController.java
+++ b/src/main/java/com/gk/hotwork/Controller/UserController.java
@@ -1760,8 +1760,15 @@
         if (StringUtils.isNotBlank(company)) {
             condition.put("company", company.trim());
         }
-
-        if (StringUtils.isNotBlank(province)) {
+        if(getUser().getType() == 3){
+            condition.put("companyid", getUser().getCompanyid());
+        }
+        if(getUser().getType() == 2){
+            condition.put("province", getUser().getProvince());
+            condition.put("city", getUser().getCity());
+            condition.put("area", getUser().getCounty());
+        }
+        /*if (StringUtils.isNotBlank(province)) {
             condition.put("province", province.trim());
         }
 
@@ -1779,11 +1786,11 @@
 
         if (StringUtils.isNotBlank(community)) {
             condition.put("community", community.trim());
-        }
-        UserInfo userInfo = userService.selectByUser(getUser().getUsername());
+        }*/
+        /*UserInfo userInfo = userService.selectByUser(getUser().getUsername());
         if (!companyService.isMain(userInfo.getCompany())){
             condition.put("company",userInfo.getCompany());
-        }
+        }*/
         //是系统菜单下的就显示主体,否则非主体
 //        if (isMain) {
 //            condition.put("isMain", 1);
@@ -1792,6 +1799,9 @@
 //        }
         pageInfo.setCondition(condition);
         companyService.selectDataGrid(pageInfo);
+        if(getUser().getType() ==4 ){
+            pageInfo.setResult(new ArrayList());
+        }
         msg.setResult(pageInfo);
         return msg;
     }
@@ -2669,4 +2679,23 @@
         msg.setResult(userService.selectExpertList(realname));
         return msg;
     }
+
+    /**
+     * 获取监管辖区内的企业
+     */
+    /**
+     * 获取专家用户列表
+     */
+    @GetMapping("/company/list")
+    @ApiOperation(value = "获取监管辖区企业数据",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "companyName",value = "企业名称"),
+    })
+    public Msg getCompanyList(String companyName){
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("success");
+        msg.setResult(companyService.selectCompanyList(companyName,getUser()));
+        return msg;
+    }
 }
diff --git a/src/main/java/com/gk/hotwork/Domain/ElementTree.java b/src/main/java/com/gk/hotwork/Domain/ElementTree.java
index de28875..5de7625 100644
--- a/src/main/java/com/gk/hotwork/Domain/ElementTree.java
+++ b/src/main/java/com/gk/hotwork/Domain/ElementTree.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.models.auth.In;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -28,9 +29,19 @@
     /** 父级ID **/
     private Long pid;
 
+    private Integer point;
+
     /** 子节点 **/
     private List<ElementTree> children;
 
+    public Integer getPoint() {
+        return point;
+    }
+
+    public void setPoint(Integer point) {
+        this.point = point;
+    }
+
     public Long getPid() {
 		return pid;
 	}
diff --git a/src/main/java/com/gk/hotwork/Domain/InspectionExpert.java b/src/main/java/com/gk/hotwork/Domain/InspectionExpert.java
new file mode 100644
index 0000000..1848350
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/InspectionExpert.java
@@ -0,0 +1,57 @@
+package com.gk.hotwork.Domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 9:24
+ */
+@TableName("inspection_expert")
+@Data
+public class InspectionExpert implements Serializable {
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    //专家用户
+    private Long expertId;
+
+    //用户类型
+    private Integer type;
+
+    //名称
+    private String name;
+
+    //是否是组长 0否,1是
+    private Boolean isLeader;
+    //检查清单id
+    private Long selfInspectionId;
+
+    //专家组id
+    private Long expertGropId;
+
+    //身份证
+    private String idcard;
+
+    //手机号
+    private String phone;
+
+    //职称
+    private Integer professionalLevel;
+
+    //专业方向
+    private String specialityName;
+
+    //单位名称
+    private String companyName;
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/InspectionExpertGroup.java b/src/main/java/com/gk/hotwork/Domain/InspectionExpertGroup.java
new file mode 100644
index 0000000..0b47199
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/InspectionExpertGroup.java
@@ -0,0 +1,54 @@
+package com.gk.hotwork.Domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 9:43
+ */
+@Data
+@TableName("inspection_expert_group")
+public class InspectionExpertGroup implements Serializable {
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    //检查名称
+    private String inspectionName;
+
+    //检查时间
+    private Date inspectionTime;
+
+    //指定单位
+    private String checkUnit;
+
+    //被检查单位id
+    private Long checkedCompanyId;
+
+    //被检查单位名称
+    private String checkedCompanyName;
+
+    //组长
+    private String expertLeader;
+
+    //是否有效
+    private Boolean validFlag;
+
+    //创建时间
+    private Date createTime;
+    //检查清单
+    private Long selfInspectionId;
+
+
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java b/src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java
new file mode 100644
index 0000000..93674dd
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java
@@ -0,0 +1,77 @@
+package com.gk.hotwork.Domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 16:16
+ */
+@Data
+@TableName("inspection_hidden_danger")
+public class InspectionHiddenDanger {
+    private Long id;
+    /**
+     * 检查清单Id
+     */
+    private Long selfInspectionId;
+
+    private String info;
+    /**
+     * 隐患级别
+     * 1一般
+     * 2重大
+     */
+    private Integer level;
+    private String url;
+    private Boolean validFlag;
+    /**
+     * 检查项id
+     */
+    private Long selfInspectionItemId;
+    /** 创建时间  create_time **/
+    private Date createTime;
+
+    /** 创建人  create_by **/
+    private String createBy;
+
+    /** 最新更新时间  update_time **/
+    private Date updateTime;
+
+    /** 最后更新人  update_by **/
+    private String updateBy;
+
+    /**
+     * 整改状态 0未整改,1已整改
+     */
+    private Byte status;
+    /**
+     * 整改描述
+     */
+    private String rectificationInfo;
+
+    /**
+     * 整改附件
+     */
+    private String rectificationUrl;
+    @TableField(exist = false)
+    private String elementAname;
+    @TableField(exist = false)
+    private String elementBname;
+    @TableField(exist = false)
+    private String elementCname;
+    @TableField(exist = false)
+    private String standardizationRequirements;
+    @TableField(exist = false)
+    private String enterpriseStandard;
+    @TableField(exist = false)
+    private String reviewMethod;
+    @TableField(exist = false)
+    private String veto;
+
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/SafetyInspectionElementA.java b/src/main/java/com/gk/hotwork/Domain/SafetyInspectionElementA.java
new file mode 100644
index 0000000..5c7639f
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/SafetyInspectionElementA.java
@@ -0,0 +1,24 @@
+package com.gk.hotwork.Domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:23
+ */
+@Data
+@TableName("safety_inspection_element_a")
+public class SafetyInspectionElementA {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Long safetyInspectionId;
+
+    private Long elementA;
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java
index 32a6081..bb541cc 100644
--- a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java
+++ b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java
@@ -67,7 +67,16 @@
     /** 检查项集合   **/
     @TableField(exist = false)
     private List<SafetySelfInspectionItem> itemList;
-
+    /**
+     * 一级要素
+     */
+    @TableField(exist = false)
+    private List<SafetyInspectionElementA> elementAList;
+    /**
+     * 评价专家
+     */
+    @TableField(exist = false)
+    private List<InspectionExpert> expertList;
 
     /** 主键id  id **/
     @TableId(type = IdType.AUTO)
@@ -88,6 +97,96 @@
     /** 最后更新人  update_by **/
     private String updateBy;
 
+    /** 检查单位 **/
+    private String checkUnit;
+
+    //检查标识 0自查,1监管检查
+    private Byte flag;
+    /**
+     * 隐患总数
+     */
+    @TableField(exist = false)
+    private Integer hdTocalCount;
+    /**
+     * 一般隐患数量
+     */
+    @TableField(exist = false)
+    private Integer sameAsCount;
+    /**
+     * 重大隐患数量
+     */
+    @TableField(exist = false)
+    private Integer majorCount;
+    /**
+     * 整改状态 0未整改 1部分整改 2全部整改
+     */
+    @TableField(exist = false)
+    private Integer rectificationStatus;
+
+    public List<InspectionExpert> getExpertList() {
+        return expertList;
+    }
+
+    public Integer getHdTocalCount() {
+        return hdTocalCount;
+    }
+
+    public void setHdTocalCount(Integer hdTocalCount) {
+        this.hdTocalCount = hdTocalCount;
+    }
+
+    public Integer getSameAsCount() {
+        return sameAsCount;
+    }
+
+    public void setSameAsCount(Integer sameAsCount) {
+        this.sameAsCount = sameAsCount;
+    }
+
+    public Integer getMajorCount() {
+        return majorCount;
+    }
+
+    public void setMajorCount(Integer majorCount) {
+        this.majorCount = majorCount;
+    }
+
+    public Integer getRectificationStatus() {
+        return rectificationStatus;
+    }
+
+    public void setRectificationStatus(Integer rectificationStatus) {
+        this.rectificationStatus = rectificationStatus;
+    }
+
+    public void setExpertList(List<InspectionExpert> expertList) {
+        this.expertList = expertList;
+    }
+
+    public String getCheckUnit() {
+        return checkUnit;
+    }
+
+    public void setCheckUnit(String checkUnit) {
+        this.checkUnit = checkUnit;
+    }
+
+    public Byte getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Byte flag) {
+        this.flag = flag;
+    }
+
+    public List<SafetyInspectionElementA> getElementAList() {
+        return elementAList;
+    }
+
+    public void setElementAList(List<SafetyInspectionElementA> elementAList) {
+        this.elementAList = elementAList;
+    }
+
 
     public Long getCheckedCompanyId() {
         return checkedCompanyId;
diff --git a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java
index f2ffca4..a065214 100644
--- a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java
+++ b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java
@@ -21,7 +21,7 @@
     /** 检查项id  safety_inspection_item_id  **/
     private Long safetyInspectionItemId;
 
-    /** 检查结果0:否决 1:扣分  safety_inspection_item_result **/
+    /** 检查结果0:否决 1:扣分 2:合格 safety_inspection_item_result **/
     private Integer safetyInspectionItemResult;
 
     /** 否决项说明 **/
@@ -42,13 +42,13 @@
 
     /** A级要素   **/
     @TableField(exist = false)
-    private Integer elementA;
+    private Long elementA;
     /** A级要素权重   **/
     @TableField(exist = false)
     private Float elementAWeight;
     /** B级要素   **/
     @TableField(exist = false)
-    private Integer elementB;
+    private Long elementB;
 
     /** B级要素   **/
     @TableField(exist = false)
@@ -75,6 +75,10 @@
     /** 扣分项集合   **/
     private List<SafetySelfInspectionItemDeduction> selfDeductionList;
 
+    @TableField(exist = false)
+    /** 隐患项集合   **/
+    private List<InspectionHiddenDanger> dangerList;
+
 
     /** 主键id  id **/
     @TableId(type = IdType.AUTO)
@@ -94,6 +98,38 @@
 
     /** 最后更新人  update_by **/
     private String updateBy;
+
+    /*专家id*/
+    private String expertIds;
+    /**
+     * 专家名称
+     */
+    private String expertNames;
+
+
+    public String getExpertIds() {
+        return expertIds;
+    }
+
+    public void setExpertIds(String expertIds) {
+        this.expertIds = expertIds;
+    }
+
+    public String getExpertNames() {
+        return expertNames;
+    }
+
+    public void setExpertNames(String expertNames) {
+        this.expertNames = expertNames;
+    }
+
+    public List<InspectionHiddenDanger> getDangerList() {
+        return dangerList;
+    }
+
+    public void setDangerList(List<InspectionHiddenDanger> dangerList) {
+        this.dangerList = dangerList;
+    }
 
     public String getElementCName() {
         return elementCName;
@@ -259,19 +295,19 @@
         this.selfDeductionList = selfDeductionList;
     }
 
-    public Integer getElementA() {
+    public Long getElementA() {
         return elementA;
     }
 
-    public void setElementA(Integer elementA) {
+    public void setElementA(Long elementA) {
         this.elementA = elementA;
     }
 
-    public Integer getElementB() {
+    public Long getElementB() {
         return elementB;
     }
 
-    public void setElementB(Integer elementB) {
+    public void setElementB(Long elementB) {
         this.elementB = elementB;
     }
 
diff --git a/src/main/java/com/gk/hotwork/Domain/Vo/UserVo.java b/src/main/java/com/gk/hotwork/Domain/Vo/UserVo.java
index 7ada84a..fb614ae 100644
--- a/src/main/java/com/gk/hotwork/Domain/Vo/UserVo.java
+++ b/src/main/java/com/gk/hotwork/Domain/Vo/UserVo.java
@@ -53,11 +53,45 @@
      * 专业方向id
      */
     private Long specialityId;
+
+    private String specialityName;
     /**
      * 专业等级(1初级,2中级,3高级,4其他)
      */
     private Integer professionalLevel;
 
+    private String company;
+
+    private Long companyid;
+
+    @Override
+    public Long getCompanyid() {
+        return companyid;
+    }
+
+    @Override
+    public void setCompanyid(Long companyid) {
+        this.companyid = companyid;
+    }
+
+    public String getSpecialityName() {
+        return specialityName;
+    }
+
+    public void setSpecialityName(String specialityName) {
+        this.specialityName = specialityName;
+    }
+
+    @Override
+    public String getCompany() {
+        return company;
+    }
+
+    @Override
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
 
     private CompanyInfo companyInfo;
 
diff --git a/src/main/java/com/gk/hotwork/Domain/dto/resp/InspectionHiddenDangerRespDTO.java b/src/main/java/com/gk/hotwork/Domain/dto/resp/InspectionHiddenDangerRespDTO.java
new file mode 100644
index 0000000..be4d332
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/dto/resp/InspectionHiddenDangerRespDTO.java
@@ -0,0 +1,32 @@
+package com.gk.hotwork.Domain.dto.resp;
+
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 17:53
+ */
+@Data
+public class InspectionHiddenDangerRespDTO {
+    /**
+     * 检查清单id
+     */
+    private Long selfInspectionId;
+    private Date inspectionTime;
+    private String inspectionName;
+    private Byte flag;
+    private String  checkedCompanyName;
+    private Integer hdTocalCount;
+    private Integer sameAsCount;
+    private Integer majorCount;
+    /**
+     * 整改状态 0未整改 1部分整改 2全部整改
+     */
+    private Integer rectificationStatus;
+
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetyInspectionElementRespDTO.java b/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetyInspectionElementRespDTO.java
new file mode 100644
index 0000000..c648528
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetyInspectionElementRespDTO.java
@@ -0,0 +1,29 @@
+package com.gk.hotwork.Domain.dto.resp;
+
+import com.gk.hotwork.Domain.SafetyInspectionItem;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/20
+ * @time: 8:52
+ */
+@Data
+public class SafetyInspectionElementRespDTO {
+    //要素id
+    private Long elementId;
+    //要素名称
+    private String elementName;
+    //要素等级
+    private Integer type;
+    //父级
+    private Long pid;
+    //检查项目
+    private List<SafetyInspectionItem> itemList;
+    //孩子节点
+    private List<SafetyInspectionElementRespDTO> children;
+
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionElementRespDTO.java b/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionElementRespDTO.java
new file mode 100644
index 0000000..c3db200
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionElementRespDTO.java
@@ -0,0 +1,34 @@
+package com.gk.hotwork.Domain.dto.resp;
+
+import com.gk.hotwork.Domain.SafetyInspectionItem;
+import com.gk.hotwork.Domain.SafetySelfInspectionItem;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/20
+ * @time: 8:52
+ */
+@Data
+public class SafetySelfInspectionElementRespDTO {
+    //要素id
+    private Long elementId;
+    //要素名称
+    private String elementName;
+    //要素等级
+    private Integer type;
+    //父级
+    private Long pid;
+    //总分
+    private Integer totalScore;
+    //得分
+    private Integer score;
+    //检查项目
+    private List<SafetySelfInspectionItem> itemList;
+    //孩子节点
+    private List<SafetySelfInspectionElementRespDTO> children;
+
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionRespDTO.java b/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionRespDTO.java
new file mode 100644
index 0000000..95d3f4b
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/dto/resp/SafetySelfInspectionRespDTO.java
@@ -0,0 +1,84 @@
+package com.gk.hotwork.Domain.dto.resp;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/20
+ * @time: 16:24
+ */
+@Data
+public class SafetySelfInspectionRespDTO {
+    /** 自查清单名称  inspection_name **/
+    private String inspectionName;
+
+    /** 检查时间  inspection_time  **/
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
+    private Date inspectionTime;
+
+    /** 检察人员  inspector **/
+    private Long inspector;
+
+    /** 被检查公司id **/
+    private Long checkedCompanyId;
+
+    /** 被检查公司名字 **/
+    private String checkedCompanyName;
+
+    /** 状态 0:暂存 1:评审中 2:已评审  status **/
+    private Integer status;
+
+    /** 不合格项数  **/
+    @TableField(exist = false)
+    private Integer unqualifiedItem;
+
+    /** 项数  **/
+    @TableField(exist = false)
+    private Integer itemSum;
+
+    /** 合格率  **/
+    private String qualifiedRate;
+
+    /** 角色id  **/
+    private Long roleid;
+
+    /** 检察人员   **/
+    private String inspectorName;
+
+    /** 检查开始时间   **/
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
+    private Date inspectionStartTime;
+
+    /** 检查结束时间   **/
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
+    private Date inspectionEndTime;
+
+    /** 主键id  id **/
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 有效标识  valid_flag **/
+    private Boolean validFlag;
+
+    /** 创建时间  create_time **/
+    private Date createTime;
+
+    /** 创建人  create_by **/
+    private String createBy;
+
+    /** 最新更新时间  update_time **/
+    private Date updateTime;
+
+    /** 最后更新人  update_by **/
+    private String updateBy;
+
+    List<SafetySelfInspectionElementRespDTO> elementList;
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/query/CompanyQuery.java b/src/main/java/com/gk/hotwork/Domain/query/CompanyQuery.java
new file mode 100644
index 0000000..5399901
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/query/CompanyQuery.java
@@ -0,0 +1,28 @@
+package com.gk.hotwork.Domain.query;
+
+import lombok.Data;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 15:57
+ */
+@Data
+public class CompanyQuery {
+    private String company;
+    private Long companyid;
+
+    private String province;
+
+    /** 城市  city **/
+    private String city;
+
+    /** 区县  area **/
+    private String area;
+
+    /** 乡镇  town **/
+    private String town;
+
+
+}
diff --git a/src/main/java/com/gk/hotwork/Domain/query/InspectionQuery.java b/src/main/java/com/gk/hotwork/Domain/query/InspectionQuery.java
new file mode 100644
index 0000000..ac21232
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Domain/query/InspectionQuery.java
@@ -0,0 +1,37 @@
+package com.gk.hotwork.Domain.query;
+
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/22
+ * @time: 9:41
+ */
+@Data
+public class InspectionQuery {
+    /**
+     * 检查名称
+     */
+    private String inspectionName;
+    /**
+     * 被检查公司
+     */
+    private String companyName;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 检查类型
+     */
+    private Integer flag;
+
+}
diff --git a/src/main/java/com/gk/hotwork/Mapper/CompanyInfoMapper.java b/src/main/java/com/gk/hotwork/Mapper/CompanyInfoMapper.java
index e8d9ec6..6bd117f 100644
--- a/src/main/java/com/gk/hotwork/Mapper/CompanyInfoMapper.java
+++ b/src/main/java/com/gk/hotwork/Mapper/CompanyInfoMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gk.hotwork.Domain.CompanyInfo;
+import com.gk.hotwork.Domain.query.CompanyQuery;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -19,4 +20,7 @@
     List<CompanyInfo> selectByAll();
 
     CompanyInfo selectExistMain(@Param("id") Long id);
+
+
+    List<CompanyInfo> selectCompanyList(@Param("query") CompanyQuery query);
 }
diff --git a/src/main/java/com/gk/hotwork/Mapper/InspectionExpertGroupMapper.java b/src/main/java/com/gk/hotwork/Mapper/InspectionExpertGroupMapper.java
new file mode 100644
index 0000000..3c774d8
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/InspectionExpertGroupMapper.java
@@ -0,0 +1,22 @@
+package com.gk.hotwork.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.InspectionExpertGroup;
+import com.gk.hotwork.Domain.SafetySelfInspection;
+import org.springframework.stereotype.Repository;
+
+import java.util.Map;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:31
+ */
+@Repository
+public interface InspectionExpertGroupMapper extends BaseMapper<InspectionExpertGroup> {
+    IPage<InspectionExpertGroup> selectPages(Page<InspectionExpertGroup> page, Map<String, Object> params);
+}
diff --git a/src/main/java/com/gk/hotwork/Mapper/InspectionExpertMapper.java b/src/main/java/com/gk/hotwork/Mapper/InspectionExpertMapper.java
new file mode 100644
index 0000000..269c1bc
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/InspectionExpertMapper.java
@@ -0,0 +1,16 @@
+package com.gk.hotwork.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.SafetyInspectionElementA;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:31
+ */
+@Repository
+public interface InspectionExpertMapper extends BaseMapper<InspectionExpert> {
+}
diff --git a/src/main/java/com/gk/hotwork/Mapper/InspectionHiddenDangerMapper.java b/src/main/java/com/gk/hotwork/Mapper/InspectionHiddenDangerMapper.java
new file mode 100644
index 0000000..de4f1a1
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/InspectionHiddenDangerMapper.java
@@ -0,0 +1,29 @@
+package com.gk.hotwork.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gk.hotwork.Domain.InspectionHiddenDanger;
+import com.gk.hotwork.Domain.SafetySelfInspection;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:31
+ */
+@Repository
+public interface InspectionHiddenDangerMapper extends BaseMapper<InspectionHiddenDanger> {
+    void delByInspectionItemId(InspectionHiddenDanger inspectionHiddenDanger);
+
+    void delByIds(List<Long> idList);
+
+    IPage<SafetySelfInspection> selectPages(Page<SafetySelfInspection> page, @Param("params") Map<String, Object> params);
+
+    List<InspectionHiddenDanger> inspectionHdangerlist(Long selfInspectionId);
+}
diff --git a/src/main/java/com/gk/hotwork/Mapper/SafetyInspectionElementAMapper.java b/src/main/java/com/gk/hotwork/Mapper/SafetyInspectionElementAMapper.java
new file mode 100644
index 0000000..815efb5
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/SafetyInspectionElementAMapper.java
@@ -0,0 +1,16 @@
+package com.gk.hotwork.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gk.hotwork.Domain.SafetyInspectionElementA;
+import org.springframework.stereotype.Repository;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:31
+ */
+@Repository
+public interface SafetyInspectionElementAMapper extends BaseMapper<SafetyInspectionElementA> {
+}
diff --git a/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionItemMapper.java b/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionItemMapper.java
index 5fcae75..3a35e29 100644
--- a/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionItemMapper.java
+++ b/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionItemMapper.java
@@ -13,6 +13,7 @@
 public interface SafetySelfInspectionItemMapper extends BaseMapper<SafetySelfInspectionItem> {
 
     List<SafetySelfInspectionItem> getBySafetySelfInspectionId(@Param("safetySelfInspectionId") Long safetySelfInspectionId);
+    List<SafetySelfInspectionItem> getBySafetySelfInspectionId2(@Param("safetySelfInspectionId") Long safetySelfInspectionId);
 
     void deleteById(@Param("id") Long id ,@Param("updateBy") String updateBy ,@Param("updateTime") Date updateTime);
 
@@ -21,4 +22,6 @@
     SafetySelfInspectionItem getDetailById(@Param("id")Long id);
 
     SafetySelfInspectionItemQualifiedCountDO countQualifiedDataById(@Param("id") Long id);
+
+    void updateBatch(List<SafetySelfInspectionItem> itemList);
 }
diff --git a/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionMapper.java b/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionMapper.java
index 6dd278e..30fd1bf 100644
--- a/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionMapper.java
+++ b/src/main/java/com/gk/hotwork/Mapper/SafetySelfInspectionMapper.java
@@ -4,8 +4,10 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gk.hotwork.Domain.SafetySelfInspection;
+import com.gk.hotwork.Domain.SafetySelfInspectionItem;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
 import java.util.Map;
 
 @Repository
@@ -13,4 +15,5 @@
 
     IPage<SafetySelfInspection> selectPages(Page<SafetySelfInspection> page, Map<String, Object> params);
 
+
 }
diff --git a/src/main/java/com/gk/hotwork/Mapper/UserInfoMapper.java b/src/main/java/com/gk/hotwork/Mapper/UserInfoMapper.java
index 6dfc7c6..904d029 100644
--- a/src/main/java/com/gk/hotwork/Mapper/UserInfoMapper.java
+++ b/src/main/java/com/gk/hotwork/Mapper/UserInfoMapper.java
@@ -65,4 +65,6 @@
     List<UserVo> selectExpertUserDataList(Page<UserVo> page, Map<String, Object> record);
 
     List<UserInfo> selectExpertList(String realname);
+
+    UserVo selectUserVoById(Long userId);
 }
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml
index 9297928..2ed110d 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml
@@ -37,14 +37,17 @@
       <if test="condition.company != null and condition.company !=''">
         and company like concat('%',#{condition.company},'%')
       </if>
+      <if test="condition.companyid != null ">
+        and id = #{condition.companyid}
+      </if>
       <if test="condition.province != null and condition.province !=''">
-        and province like concat('%',#{condition.province},'%')
+        and province = #{condition.province}
       </if>
       <if test="condition.city != null and condition.city !=''">
-        and city like concat('%',#{condition.city},'%')
+        and city = #{condition.city}
       </if>
       <if test="condition.area != null and condition.area !=''">
-        and area like concat('%',#{condition.area},'%')
+        and area = #{condition.area}
       </if>
       <if test="condition.town != null and condition.town !=''">
         and town like concat('%',#{condition.town},'%')
@@ -84,4 +87,27 @@
     </if>
     limit 1
   </select>
+  <select id="selectCompanyList" resultType="com.gk.hotwork.Domain.CompanyInfo">
+    select *
+    from company
+    <where>
+      1=1
+      and isdel = 0
+      <if test="query.companyid != null and query.companyid !=''">
+        and id = #{query.companyid}
+      </if>
+      <if test="query.company != null and query.company !=''">
+        and company like concat('%',#{query.company},'%')
+      </if>
+      <if test="query.province != null and query.province !=''">
+        and province = #{query.province}
+      </if>
+      <if test="query.city != null and query.city !=''">
+        and city = #{query.city}
+      </if>
+      <if test="query.area != null and query.area !=''">
+        and area = #{query.area}
+      </if>
+    </where>
+  </select>
 </mapper>
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml
index a97d635..7b16e76 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml
@@ -39,12 +39,50 @@
   </select>
   
   
-  <select id="getElementTree" resultType="java.util.Map">
+ <!-- <select id="getElementTree" resultType="java.util.Map">
   	select DISTINCT t.label,t.mt,t.type,t.pid,t.value,(case when (t.keyw is null and t.type>0) then  1 else  0 end ) as isLeaf from(
 	select t1.mt,t1.label,t1.type,t1.value,t1.pid,t2.label as keyw
 	from (select name as label,menu_type as mt,type,id as value,parent_id as pid from element_management WHERE valid_flag=1) t1  left join (select name as label,type,id as value,	  parent_id as pid from element_management WHERE valid_flag=1) t2
 	on t1.value=t2.pid) t
-  </select>
+  </select>-->
+  <select id="getElementTree" resultType="java.util.Map">
+    SELECT DISTINCT
+      t.label,
+      t.mt,
+      t.type,
+      t.pid,
+      t.point,
+      t.value,
+      (CASE
 
+         WHEN ( t.keyw IS NULL AND t.type > 0 ) THEN
+           1 ELSE 0
+        END ) AS isLeaf
+    FROM
+      (
+        SELECT
+          t1.mt,
+          t1.label,
+          t1.type,
+          t1.value,
+          t1.pid,
+          t1.point,
+          t2.label AS keyw
+        FROM
+          ( SELECT
+              name AS label,
+              menu_type AS mt,
+              type,
+              id AS value,
+			  parent_id AS pid,
+			  point
+            FROM
+              element_management
+            WHERE
+              valid_flag = 1
+          ) t1
+            LEFT JOIN ( SELECT name AS label, type, id AS value, parent_id AS pid FROM element_management WHERE valid_flag = 1 ) t2 ON t1.value= t2.pid
+      ) t
+  </select>
 
 </mapper>
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionExpertGroupMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionExpertGroupMapper.xml
new file mode 100644
index 0000000..1d53a5d
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionExpertGroupMapper.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.gk.hotwork.Mapper.InspectionExpertGroupMapper" >
+
+    <select id="selectPages" resultType="com.gk.hotwork.Domain.InspectionExpertGroup">
+        SELECT
+            g.*
+        FROM
+            inspection_expert_group g
+            left join safety_self_inspection s on s.id = g.self_inspection_id
+            left join company as co on g.checked_company_id = co.id
+        WHERE
+            g.valid_flag =1
+            and s.valid_flag = 1
+        <if test="params.inspectionName != null  and params.inspectionName != ''">
+            and g.inspection_name like concat("%",#{params.inspectionName},"%")
+        </if>
+        <if test="params.checkedCompanyName != null and params.checkedCompanyName != ''">
+            and g.checked_company_name like concat("%",#{params.checkedCompanyName},"%")
+        </if>
+        <if test="params.flag != null  and params.flag != '' ">
+            and s.flag = #{params.flag}
+        </if>
+        <if test="params.inspectionStartTime != null and params.inspectionStartTime != ''" >
+            and g.inspection_time <![CDATA[ >= ]]> #{params.inspectionStartTime}
+        </if>
+        <if test="params.inspectionEndTime != null and params.inspectionEndTime != ''" >
+            and g.inspection_time <![CDATA[ <= ]]> #{params.inspectionEndTime}
+        </if>
+        <if test="params.province != null and params.province != ''" >
+            and co.province = #{params.province}
+        </if>
+        <if test="params.city != null and params.city != ''" >
+            and co.city = #{params.city}
+        </if>
+        <if test="params.area != null and params.area != ''" >
+            and co.area = #{params.area}
+        </if>
+        ORDER BY g.create_time
+    </select>
+
+
+</mapper>
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml
new file mode 100644
index 0000000..a2eb5b0
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.gk.hotwork.Mapper.InspectionHiddenDangerMapper" >
+     <update id="delByInspectionItemId">
+       update inspection_hidden_danger set valid_flag = 0 , update_time = #{inspectionHiddenDanger.updateTime},update_by = #{inspectionHiddenDanger.updateBy}
+     </update>
+
+    <update id="delByIds">
+        update inspection_hidden_danger
+        set valid_flag = 0
+        where
+            id in
+        <foreach collection="idList" item="id" close=")" open="(" separator=",">
+            #{id}
+        </foreach>
+
+    </update>
+
+    <select id="selectPages" resultType="com.gk.hotwork.Domain.SafetySelfInspection">
+        SELECT
+            s.*
+        FROM
+            safety_self_inspection s
+            LEFT JOIN inspection_hidden_danger h ON s.id = h.self_inspection_id
+            left join company as co on s.checked_company_id = co.id
+        WHERE
+            s.valid_flag = 1
+          AND h.valid_flag = 1
+          AND h.id IS NOT NULL
+        <if test="params.inspectionName != null  and params.inspectionName != ''">
+            and s.inspection_name like concat("%",#{params.inspectionName},"%")
+        </if>
+        <if test="params.checkedCompanyName != null and params.checkedCompanyName != ''">
+            and h.checked_company_name like concat("%",#{params.checkedCompanyName},"%")
+        </if>
+        <if test="params.flag != null  and params.flag != '' ">
+            and s.flag = #{params.flag}
+        </if>
+        <if test="params.inspectionStartTime != null and params.inspectionStartTime != ''" >
+            and s.inspection_time <![CDATA[ >= ]]> #{params.inspectionStartTime}
+        </if>
+        <if test="params.inspectionEndTime != null and params.inspectionEndTime != ''" >
+            and s.inspection_time <![CDATA[ <= ]]> #{params.inspectionEndTime}
+        </if>
+        <if test="params.province != null and params.province != ''" >
+            and co.province = #{params.province}
+        </if>
+        <if test="params.city != null and params.city != ''" >
+            and co.city = #{params.city}
+        </if>
+        <if test="params.area != null and params.area != ''" >
+            and co.area = #{params.area}
+        </if>
+        GROUP BY
+            s.id
+        ORDER BY s.create_time
+    </select>
+    <select id="inspectionHdangerlist" resultType="com.gk.hotwork.Domain.InspectionHiddenDanger">
+        SELECT
+            h.*,
+            i.element_a,
+            a.`name` as elementAname,
+            i.element_b,
+            b.`name` as elementBname,
+            i.element_c ,
+            c.`name` as elementCname,
+            i.standardization_requirements,
+            i.enterprise_standard,
+            i.review_method,
+            i.veto
+        FROM
+            inspection_hidden_danger h
+                LEFT JOIN safety_self_inspection_item s ON h.self_inspection_item_id = s.id
+                LEFT JOIN safety_inspection_item i ON s.safety_inspection_item_id = i.id
+                left join element_management a on a.id = i.element_a
+                left join element_management b on b.id = i.element_b
+                left join element_management c on c.id = i.element_c
+        where h.valid_flag = 1
+        and h.self_inspection_id = #{selfInspectionId}
+    </select>
+
+
+</mapper>
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionItemMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionItemMapper.xml
index 17d0345..25a9cd8 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionItemMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionItemMapper.xml
@@ -20,6 +20,19 @@
   <select id="getBySafetySelfInspectionId" resultMap="BaseResultMap">
     select * from safety_self_inspection_item where  valid_flag = 1 and safety_self_inspection_id=#{safetySelfInspectionId}
   </select>
+    <select id="getBySafetySelfInspectionId2" resultType="com.gk.hotwork.Domain.SafetySelfInspectionItem">
+        SELECT
+            ss.* ,
+            si.element_a,
+            si.element_b,
+            si.element_c
+        FROM
+            safety_self_inspection_item ss
+                LEFT JOIN safety_inspection_item si on si.id = ss.safety_inspection_item_id
+        WHERE
+            ss.valid_flag = 1
+          and ss.safety_self_inspection_id = #{safetySelfInspectionId}
+    </select>
 
   <update id="deleteById">
     update safety_self_inspection_item set
@@ -36,6 +49,7 @@
         b.enterprise_standard AS enterpriseStandard,
         b.review_method AS reviewMethod,
         b.veto AS veto,
+        b.element_c as elementC,
         c.id AS elementA,
         c.NAME AS elementAName,
         c.weight AS elementAWeight,
@@ -89,6 +103,18 @@
         FROM safety_self_inspection_item WHERE valid_flag = 1
 
     </select>
+    <update id="updateBatch">
+        <foreach collection="itemList" item="item" index="index" open="" close="" separator=";">
+            update safety_self_inspection_item
+            set
+            expert_ids=#{item.expertIds},
+            expert_names=#{item.expertNames},
+            update_time=#{item.updateTime},
+            update_by=#{item.updateBy}
+            where id=#{item.id}
+        </foreach>
+
+    </update>
 
 
 </mapper>
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml
index 5c68c7c..7048d62 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml
@@ -14,7 +14,7 @@
 
     <result column="inspection_name" property="inspectionName" jdbcType="BIGINT" />
     <result column="inspection_time" property="inspectionTime" jdbcType="BIGINT" />
-    <result column="inspector" property="inspector" jdbcType="VARCHAR" />
+    <result column="inspector" property="inspector" jdbcType="BIGINT" />
     <result column="status" property="status" jdbcType="VARCHAR" />
     <result column="inspector_name" property="inspectorName" jdbcType="VARCHAR" />
 
@@ -27,14 +27,14 @@
     LEFT JOIN userroles as c on b.id = c.userid
     left join company as co on a.checked_company_id = co.id
     where a.valid_flag = 1
+    <if test="params.flag != null  and params.flag != '' ">
+      and a.flag = #{params.flag}
+    </if>
     <if test="params.inspectionName != null  and params.inspectionName != ''">
       and a.inspection_name like concat("%",#{params.inspectionName},"%")
     </if>
-    <if test="params.companyid != null  and params.companyid != ''">
-      and b.companyid = #{params.companyid}
-    </if>
     <if test="params.checkedCompanyId != null">
-      and b.checkedCompanyId = #{params.checkedCompanyId}
+      and a.checked_company_id = #{params.checkedCompanyId}
     </if>
     <if test="params.roleid != null ">
       and c.roleid = #{params.roleid}
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/UserInfoMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/UserInfoMapper.xml
index c456458..612b83c 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/UserInfoMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/UserInfoMapper.xml
@@ -39,6 +39,7 @@
     <result column="password" property="password" jdbcType="VARCHAR" />
     <result column="email" property="email" jdbcType="VARCHAR" />
     <result column="company" property="company" jdbcType="VARCHAR" />
+    <result column="companyid" property="companyid" jdbcType="BIGINT" />
     <result column="department" property="department" jdbcType="VARCHAR" />
     <result column="job" property="job" jdbcType="VARCHAR" />
     <result column="createdby" property="createdby" jdbcType="VARCHAR" />
@@ -70,6 +71,8 @@
     <result column="city" property="city" jdbcType="VARCHAR" />
     <result column="county" property="county" jdbcType="VARCHAR" />
     <result column="professional_level" property="professionalLevel" jdbcType="INTEGER" />
+    <result column="speciality_id" property="specialityId" jdbcType="BIGINT" />
+    <result column="speciality_name" property="specialityName" jdbcType="VARCHAR" />
     <association property="companyInfo" javaType="com.gk.hotwork.Domain.CompanyInfo">
       <result column="company_id" property="id"  />
       <result column="company" property="company"  />
@@ -365,10 +368,12 @@
     select
     `user`.*,
     c.ismain AS isMainCompany,
-    d.department departmentname
+    d.department departmentname,
+    s.name as speciality_name
     from `user` as user
     LEFT JOIN company as c ON c.id = `user`.companyid
     left join department as d on d.id = user.department and d.isdel = 0
+    left join speciality as s on s.id = `user`.speciality_id
     where
      `user`.username = #{username,jdbcType=VARCHAR}
     and `user`.status = 1
@@ -556,12 +561,26 @@
     left join userroles r on r.userid = u.id
     where
         u.status = 1
-      and u.type != 1
-    and r.roleid = 36
+      and u.type = 4
     <if test="realname != null and realname != ''">
       u.realname  like concat("%",#{realname},"%")
     </if>
 
   </select>
 
+  <select id="selectUserVoById" resultType="com.gk.hotwork.Domain.Vo.UserVo">
+    select
+      `user`.*,
+      c.ismain AS isMainCompany,
+      d.department departmentname,
+      s.name as speciality_name
+    from `user` as user
+    LEFT JOIN company as c ON c.id = `user`.companyid
+      left join department as d on d.id = user.department and d.isdel = 0
+      left join speciality as s on s.id = `user`.speciality_id
+    where
+      `user`.id = #{userId}
+      and `user`.status = 1
+  </select>
+
 </mapper>
diff --git a/src/main/java/com/gk/hotwork/Service/CompanyService.java b/src/main/java/com/gk/hotwork/Service/CompanyService.java
index ff5bd56..e532450 100644
--- a/src/main/java/com/gk/hotwork/Service/CompanyService.java
+++ b/src/main/java/com/gk/hotwork/Service/CompanyService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gk.hotwork.Domain.CompanyInfo;
+import com.gk.hotwork.Domain.UserInfo;
 import com.gk.hotwork.Domain.Utils.PageInfo;
 
 import java.util.List;
@@ -19,4 +20,6 @@
     CompanyInfo selectExistMain(Long id);
 
     boolean isMain(String company);
+
+    List<CompanyInfo> selectCompanyList(String companyName, UserInfo user);
 }
diff --git a/src/main/java/com/gk/hotwork/Service/ElementManagementService.java b/src/main/java/com/gk/hotwork/Service/ElementManagementService.java
index 9a03f7e..5774f39 100644
--- a/src/main/java/com/gk/hotwork/Service/ElementManagementService.java
+++ b/src/main/java/com/gk/hotwork/Service/ElementManagementService.java
@@ -50,4 +50,7 @@
 
 	List<ElementTree> getMenuType2Tree();
 
+    List<ElementManagement> getElementByParentId(Long elementB);
+
+    List<ElementTree> getElementTreeByParentId(Long parentId);
 }
diff --git a/src/main/java/com/gk/hotwork/Service/InspectionExpertGroupService.java b/src/main/java/com/gk/hotwork/Service/InspectionExpertGroupService.java
new file mode 100644
index 0000000..a43f405
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/InspectionExpertGroupService.java
@@ -0,0 +1,22 @@
+package com.gk.hotwork.Service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.InspectionExpertGroup;
+import com.gk.hotwork.Domain.UserInfo;
+
+import java.util.Map;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 9:55
+ */
+public interface InspectionExpertGroupService extends IService<InspectionExpertGroup> {
+    IPage selectPage(Page<InspectionExpertGroup> page, Map<String, Object> filter, UserInfo user);
+
+    InspectionExpertGroup getBySelfInspectionId(Long id);
+}
diff --git a/src/main/java/com/gk/hotwork/Service/InspectionExpertService.java b/src/main/java/com/gk/hotwork/Service/InspectionExpertService.java
new file mode 100644
index 0000000..84e8797
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/InspectionExpertService.java
@@ -0,0 +1,21 @@
+package com.gk.hotwork.Service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.UserInfo;
+
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 9:55
+ */
+public interface InspectionExpertService extends IService<InspectionExpert> {
+
+    void setLeader(InspectionExpert inspectionExpert, UserInfo user);
+    List<InspectionExpert> getByGroupId(Long expertGroupId);
+    List<InspectionExpert> getBySelfInspectionId(Long selfInspectionId);
+
+}
diff --git a/src/main/java/com/gk/hotwork/Service/InspectionHiddenDangerService.java b/src/main/java/com/gk/hotwork/Service/InspectionHiddenDangerService.java
new file mode 100644
index 0000000..769ac7a
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/InspectionHiddenDangerService.java
@@ -0,0 +1,33 @@
+package com.gk.hotwork.Service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gk.hotwork.Domain.InspectionHiddenDanger;
+import com.gk.hotwork.Domain.SafetySelfInspection;
+import com.gk.hotwork.Domain.UserInfo;
+import com.gk.hotwork.Domain.Utils.PageInfo;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/21
+ * @time: 9:55
+ */
+public interface InspectionHiddenDangerService extends IService<InspectionHiddenDanger> {
+    void mod(InspectionHiddenDanger inspectionHiddenDanger, UserInfo userInfo);
+    void delByInspectionItemId(Long inspectionItemId,UserInfo userInfo);
+
+    List<InspectionHiddenDanger> getBySafetySelfInspectionItemId(Long inspectionItemId);
+
+    List<InspectionHiddenDanger> listByPage(PageInfo pageInfo);
+
+    void delByIds(List<Long> idList);
+
+    IPage selectPage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user);
+
+    List<InspectionHiddenDanger> inspectionHdangerlist(Long selfInspectionId);
+}
diff --git a/src/main/java/com/gk/hotwork/Service/SafetyInspectionElementAService.java b/src/main/java/com/gk/hotwork/Service/SafetyInspectionElementAService.java
new file mode 100644
index 0000000..5846407
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/SafetyInspectionElementAService.java
@@ -0,0 +1,17 @@
+package com.gk.hotwork.Service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gk.hotwork.Domain.SafetyInspectionElementA;
+
+import java.util.List;
+
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:28
+ */
+public interface SafetyInspectionElementAService extends IService<SafetyInspectionElementA> {
+    List<SafetyInspectionElementA> getBySafetySelfInspectionId(Long safetyInspectionId);
+}
diff --git a/src/main/java/com/gk/hotwork/Service/SafetyInspectionItemService.java b/src/main/java/com/gk/hotwork/Service/SafetyInspectionItemService.java
index 4ac779c..e666d59 100644
--- a/src/main/java/com/gk/hotwork/Service/SafetyInspectionItemService.java
+++ b/src/main/java/com/gk/hotwork/Service/SafetyInspectionItemService.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gk.hotwork.Domain.SafetyInspectionItem;
 import com.gk.hotwork.Domain.UserInfo;
+import com.gk.hotwork.Domain.dto.resp.SafetyInspectionElementRespDTO;
 
 import java.util.List;
 import java.util.Map;
@@ -33,7 +34,7 @@
     */
     void delOne(Long id, UserInfo user);
 
-    List<SafetyInspectionItem> infoElementA(Long id, UserInfo user);
+    SafetyInspectionElementRespDTO infoElementA(Long id, UserInfo user);
 
     SafetyInspectionItem info(Long id, UserInfo user);
 
diff --git a/src/main/java/com/gk/hotwork/Service/SafetySelfInspectionService.java b/src/main/java/com/gk/hotwork/Service/SafetySelfInspectionService.java
index ff2b012..9522b48 100644
--- a/src/main/java/com/gk/hotwork/Service/SafetySelfInspectionService.java
+++ b/src/main/java/com/gk/hotwork/Service/SafetySelfInspectionService.java
@@ -6,7 +6,9 @@
 import com.gk.hotwork.Domain.SafetySelfInspection;
 import com.gk.hotwork.Domain.SafetySelfInspectionItem;
 import com.gk.hotwork.Domain.UserInfo;
+import com.gk.hotwork.Domain.dto.resp.SafetySelfInspectionRespDTO;
 
+import java.util.List;
 import java.util.Map;
 
 public interface SafetySelfInspectionService extends IService<SafetySelfInspection> {
@@ -16,12 +18,16 @@
     */
     IPage<SafetySelfInspection> selectPage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user);
 
-
+    IPage<SafetySelfInspection> selectSupervisePage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user);
     /**
     * @Description: 新增
     */
     void addOne(SafetySelfInspection param, UserInfo user);
 
+    /**
+     * 新增监管检查
+     */
+    void addSupervise(SafetySelfInspection param, UserInfo user);
     /**
     * @Description: 修改
     */
@@ -33,11 +39,16 @@
     */
     void delOne(Long id, UserInfo user);
 
-    SafetySelfInspection infoOne(Long id,String unqualified, UserInfo user);
+    SafetySelfInspectionRespDTO infoOne(Long id, String unqualified, UserInfo user);
 
     SafetySelfInspectionItem itemInfoOne(Long id, UserInfo user);
 
     void modItemInfo(SafetySelfInspectionItem param, UserInfo user);
 
+
     void finish(Long id, UserInfo user);
+
+
+
+    void addItemExpert(List<SafetySelfInspectionItem> itemList, UserInfo user);
 }
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/CompanyServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/CompanyServiceImpl.java
index da98dfb..d424e76 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/CompanyServiceImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/CompanyServiceImpl.java
@@ -5,15 +5,19 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gk.hotwork.Domain.CompanyInfo;
+import com.gk.hotwork.Domain.UserInfo;
 import com.gk.hotwork.Domain.Utils.PageInfo;
 import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Domain.query.CompanyQuery;
 import com.gk.hotwork.Mapper.CompanyInfoMapper;
 import com.gk.hotwork.Service.CompanyService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service("CompanyService")
 public class CompanyServiceImpl extends ServiceImpl<CompanyInfoMapper, CompanyInfo> implements CompanyService {
@@ -70,5 +74,29 @@
         return companyInfo.getIsmain() == 1;
     }
 
+    @Override
+    public List<CompanyInfo> selectCompanyList(String companyName, UserInfo user) {
+        CompanyQuery query = new CompanyQuery();
+        query.setCompany(companyName);
+
+
+        Integer type = user.getType();
+        //企业用户
+        if (type.equals(3)) {
+            Long companyid = user.getCompanyid();
+            query.setCompanyid(companyid);
+        }
+        //监管用户
+        if (type.equals(2)) {
+            //获取企业信息
+            query.setArea(user.getCounty());
+            query.setProvince(user.getProvince());
+            query.setCity(user.getCity());
+        }
+
+        List<CompanyInfo> companyInfos = companyInfoMapper.selectCompanyList(query);
+        return companyInfos;
+    }
+
 
 }
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
index e2a60e2..d36b43c 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
@@ -5,12 +5,11 @@
 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.gk.hotwork.Domain.ElementManagement;
-import com.gk.hotwork.Domain.ElementTree;
+import com.gk.hotwork.Domain.*;
 import com.gk.hotwork.Domain.Exception.BusinessException;
-import com.gk.hotwork.Domain.UserInfo;
 import com.gk.hotwork.Domain.Utils.StringUtils;
 import com.gk.hotwork.Mapper.ElementManagementMapper;
+import com.gk.hotwork.Mapper.SafetyInspectionItemMapper;
 import com.gk.hotwork.Service.ElementManagementService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +27,9 @@
 
     @Autowired
     private ElementManagementMapper elementManagementMapper;
+
+    @Autowired
+    private SafetyInspectionItemMapper safetyInspectionItemMapper;
 
     /**
     * @Description: 分页
@@ -96,7 +98,9 @@
                 elementTree.setType(Integer.valueOf(e.get("type").toString()));
                 elementTree.setLabel(e.get("label").toString());
                 elementTree.setValue(Long.valueOf(e.get("value").toString()));
-                elementTree.setLeaf(e.get("isLeaf").toString().equals("1")?true:false);                
+                elementTree.setLeaf(e.get("isLeaf").toString().equals("1")?true:false);
+                elementTree.setPid(Long.valueOf(e.get("pid").toString()));
+                elementTree.setPoint(e.get("point") != null ? Integer.valueOf(e.get("point").toString()) : 0);
                 if(elementTree.isLeaf()){
                 	elementTree.setChildren(new ArrayList<ElementTree>());
                 	elementTreeList.add(elementTree);
@@ -175,6 +179,36 @@
         return returnTree;
     }
 
+    @Override
+    public List<ElementManagement> getElementByParentId(Long parentId) {
+        List<ElementManagement> list = elementManagementMapper.selectList(new LambdaQueryWrapper<ElementManagement>()
+                .eq(ElementManagement::getValidFlag, 1)
+                .eq(ElementManagement::getParentId, parentId));
+        return list;
+    }
+
+    @Override
+    public List<ElementTree> getElementTreeByParentId(Long parentId) {
+
+        List<ElementTree> returnTree = new ArrayList<>();
+        List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
+        for (Map<String, Object> map : list) {
+            if(map.get("value") == parentId){ //一级要素,MenuType2
+                ElementTree elementTree=new ElementTree();
+                elementTree.setType(Integer.valueOf(map.get("type").toString()));
+                elementTree.setLabel(map.get("label").toString());
+                elementTree.setValue(Long.valueOf(map.get("value").toString()));
+                elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
+                elementTree.setPoint(map.get("point") != null ? Integer.valueOf(map.get("point").toString()) : 0);
+                elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
+                returnTree.add(elementTree);
+            }else{
+                continue;
+            }
+        }
+        return returnTree;
+    }
+
     /**
      * 查询验证
      * 验证对象存在
@@ -194,9 +228,25 @@
     public void requiredVerification(ElementManagement param){
         if(StringUtils.isBlank(param.getName())) throw new BusinessException("请填写要素名称");
         if (param.getType() == null) throw new BusinessException("请选择要素类型");
-        if (param.getType() == 1 && param.getParentId()==null){
-            throw new BusinessException("请选择父要素");
+        if (param.getType() == 1 && param.getParentId() == null){//二级要素
+            throw new BusinessException("请选择一级要素");
         }
+        if(param.getType() == 2){//三级要素
+            if(param.getParentId() == null){
+                throw new BusinessException("请选择二级要素");
+            }
+            List<SafetyInspectionItem> safetyInspectionItems = safetyInspectionItemMapper.selectList(new LambdaQueryWrapper<SafetyInspectionItem>()
+                    .eq(SafetyInspectionItem::getValidFlag, 1)
+                    .eq(SafetyInspectionItem::getElementB, param.getParentId()));
+            if(safetyInspectionItems.size() > 0){
+                throw new BusinessException("二级要素下存在检查内容,不可建立三级");
+            }
+
+        }
+
+
+
+
     }
 
     /**
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertGroupServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertGroupServiceImpl.java
new file mode 100644
index 0000000..31d76d0
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertGroupServiceImpl.java
@@ -0,0 +1,59 @@
+package com.gk.hotwork.Service.ServiceImpl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.InspectionExpertGroup;
+import com.gk.hotwork.Domain.SafetySelfInspection;
+import com.gk.hotwork.Domain.UserInfo;
+import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Mapper.InspectionExpertGroupMapper;
+import com.gk.hotwork.Service.InspectionExpertGroupService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:30
+ */
+@Service
+public class InspectionExpertGroupServiceImpl extends ServiceImpl<InspectionExpertGroupMapper, InspectionExpertGroup> implements InspectionExpertGroupService {
+
+    @Autowired
+    private InspectionExpertGroupMapper inspectionExpertGroupMapper;
+
+
+    @Override
+    public IPage selectPage(Page<InspectionExpertGroup> page, Map<String, Object> filter, UserInfo user) {
+        Integer type = user.getType();
+        //普通用户
+        if (type.equals(3)) {
+            Long companyid = user.getCompanyid();
+            filter.put("checkedCompanyId",companyid);
+        }
+        //监管用户
+        if (type.equals(2)) {
+            //获取企业信息
+            filter.put("province",user.getProvince());
+            filter.put("city",user.getCity());
+            filter.put("area",user.getCounty());
+        }
+        IPage<InspectionExpertGroup> res = inspectionExpertGroupMapper.selectPages(page, filter);
+        return res;
+    }
+
+    @Override
+    public InspectionExpertGroup getBySelfInspectionId(Long selfInspectionId) {
+
+        return inspectionExpertGroupMapper.selectOne(new LambdaQueryWrapper<InspectionExpertGroup>()
+                .eq(InspectionExpertGroup::getValidFlag,true)
+                .eq(InspectionExpertGroup::getSelfInspectionId,selfInspectionId)
+        );
+    }
+}
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertServiceImpl.java
new file mode 100644
index 0000000..a57a36d
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionExpertServiceImpl.java
@@ -0,0 +1,92 @@
+package com.gk.hotwork.Service.ServiceImpl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gk.hotwork.Domain.Exception.BusinessException;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.SafetyInspectionElementA;
+import com.gk.hotwork.Domain.UserInfo;
+import com.gk.hotwork.Mapper.InspectionExpertGroupMapper;
+import com.gk.hotwork.Mapper.InspectionExpertMapper;
+import com.gk.hotwork.Mapper.SafetyInspectionElementAMapper;
+import com.gk.hotwork.Service.InspectionExpertService;
+import com.gk.hotwork.Service.SafetyInspectionElementAService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:30
+ */
+@Service
+public class InspectionExpertServiceImpl extends ServiceImpl<InspectionExpertMapper, InspectionExpert> implements InspectionExpertService {
+
+    @Autowired
+    private InspectionExpertMapper inspectionExpertMapper;
+
+
+    @Override
+    public void setLeader(InspectionExpert inspectionExpert, UserInfo user) {
+        requireVertify(inspectionExpert);
+        inspectionExpertMapper.updateById(inspectionExpert);
+    }
+
+    /**
+     * 根据专家组id获取专家成员
+     * @param expertGroupId
+     * @return
+     */
+    public List<InspectionExpert> getByGroupId(Long expertGroupId){
+        List<InspectionExpert> list = inspectionExpertMapper.selectList(new LambdaQueryWrapper<InspectionExpert>().eq(InspectionExpert::getExpertGropId, expertGroupId));
+        return list;
+    }
+
+    /**
+     * 根据检查清单id获取专家成员
+     * @param selfInspectionId
+     * @return
+     */
+    public List<InspectionExpert> getBySelfInspectionId(Long selfInspectionId){
+        List<InspectionExpert> list = inspectionExpertMapper.selectList(new LambdaQueryWrapper<InspectionExpert>()
+                .eq(InspectionExpert::getSelfInspectionId, selfInspectionId));
+        return list;
+    }
+
+    public List<InspectionExpert> getLeaderList(Long expertGroupId){
+        List<InspectionExpert> list = inspectionExpertMapper
+                .selectList(new LambdaQueryWrapper<InspectionExpert>()
+                        .eq(InspectionExpert::getExpertGropId, expertGroupId)
+                        .eq(InspectionExpert::getIsLeader,true));
+        return list;
+
+    }
+
+    private void requireVertify(InspectionExpert inspectionExpert) {
+        if(inspectionExpert.getId() == null){
+            throw new BusinessException("专家主键不可为空");
+        }
+        if(inspectionExpert.getIsLeader() == null){
+            throw new BusinessException("专家成员类型不可为空");
+        }
+        if(inspectionExpert.getExpertGropId() == null){
+            throw new BusinessException("专家组id不可为空");
+        }
+        List<InspectionExpert> leaderList = this.getLeaderList(inspectionExpert.getExpertGropId());
+        if(leaderList.size() > 0){
+            InspectionExpert expert = leaderList.get(0);
+            if(expert.getId().equals(inspectionExpert.getId())){
+                if(expert.getIsLeader() == true){
+                    throw new BusinessException("该专家成员已是组长");
+                }
+            }else {
+                throw new BusinessException("该专家组已有组长");
+            }
+
+
+        }
+    }
+}
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java
new file mode 100644
index 0000000..311197d
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java
@@ -0,0 +1,170 @@
+package com.gk.hotwork.Service.ServiceImpl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.gk.hotwork.Domain.Do.SafetySelfInspectionItemQualifiedCountDO;
+import com.gk.hotwork.Domain.Exception.BusinessException;
+import com.gk.hotwork.Domain.InspectionExpert;
+import com.gk.hotwork.Domain.InspectionHiddenDanger;
+import com.gk.hotwork.Domain.SafetySelfInspection;
+import com.gk.hotwork.Domain.UserInfo;
+import com.gk.hotwork.Domain.Utils.PageInfo;
+import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Domain.dto.resp.InspectionHiddenDangerRespDTO;
+import com.gk.hotwork.Mapper.InspectionExpertMapper;
+import com.gk.hotwork.Mapper.InspectionHiddenDangerMapper;
+import com.gk.hotwork.Service.InspectionExpertService;
+import com.gk.hotwork.Service.InspectionHiddenDangerService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:30
+ */
+@Service
+public class InspectionHiddenDangerServiceImpl extends ServiceImpl<InspectionHiddenDangerMapper, InspectionHiddenDanger> implements InspectionHiddenDangerService {
+
+    @Autowired
+    private InspectionHiddenDangerMapper inspectionHiddenDangerMapper;
+
+    /**
+     * 修改
+     * @param inspectionHiddenDanger
+     */
+
+    @Override
+    public void mod(InspectionHiddenDanger inspectionHiddenDanger, UserInfo userInfo) {
+        modrequiredVerification(inspectionHiddenDanger);
+        inspectionHiddenDanger.setUpdateTime(new Date());
+        inspectionHiddenDanger.setUpdateBy(userInfo.getRealname());
+        inspectionHiddenDangerMapper.updateById(inspectionHiddenDanger);
+    }
+
+    /**
+     * 删除
+     * @param
+     */
+    public void delByInspectionItemId(Long inspectionItemId,UserInfo userInfo){
+        InspectionHiddenDanger inspectionHiddenDanger = new InspectionHiddenDanger();
+        inspectionHiddenDanger.setSelfInspectionItemId(inspectionItemId);
+        inspectionHiddenDanger.setUpdateBy(userInfo.getRealname());
+        inspectionHiddenDanger.setUpdateTime(new Date());
+        inspectionHiddenDangerMapper.delByInspectionItemId(inspectionHiddenDanger);
+    }
+
+    @Override
+    public List<InspectionHiddenDanger> getBySafetySelfInspectionItemId(Long inspectionItemId) {
+        List<InspectionHiddenDanger> inspectionHiddenDangerList = inspectionHiddenDangerMapper.selectList(new LambdaQueryWrapper<InspectionHiddenDanger>()
+                .eq(InspectionHiddenDanger::getValidFlag, true)
+                .eq(InspectionHiddenDanger::getSelfInspectionItemId, inspectionItemId));
+        return inspectionHiddenDangerList;
+    }
+    
+    
+    public List<InspectionHiddenDanger> getBySafetySelfInspectionId(Long inspectionId) {
+        List<InspectionHiddenDanger> inspectionHiddenDangerList = inspectionHiddenDangerMapper.selectList(new LambdaQueryWrapper<InspectionHiddenDanger>()
+                .eq(InspectionHiddenDanger::getValidFlag, true)
+                .eq(InspectionHiddenDanger::getSelfInspectionId, inspectionId));
+        return inspectionHiddenDangerList;
+    }
+
+    @Override
+    public List<InspectionHiddenDanger> listByPage(PageInfo pageInfo) {
+        return null;
+    }
+
+    @Override
+    public void delByIds(List<Long> idList) {
+        inspectionHiddenDangerMapper.delByIds(idList);
+    }
+
+    @Override
+    public IPage selectPage(Page<SafetySelfInspection> page, Map<String, Object> params, UserInfo user) {
+        Integer type = user.getType();
+        //普通用户
+        if (type.equals(3)) {
+            Long companyid = user.getCompanyid();
+            params.put("checkedCompanyId",companyid);
+        }
+        //监管用户
+        if (type.equals(2)) {
+            //获取企业信息
+            params.put("province",user.getProvince());
+            params.put("city",user.getCity());
+            params.put("area",user.getCounty());
+        }
+        IPage<SafetySelfInspection> res = inspectionHiddenDangerMapper.selectPages(page, params);
+        List<SafetySelfInspection> records = res.getRecords();
+        if (CollectionUtils.isNotEmpty(records)){
+            for (SafetySelfInspection inspection : records) {
+                List<InspectionHiddenDanger> dangerList = this.getBySafetySelfInspectionId(inspection.getId());
+                //一般 1
+                int sameasCount = 0;
+                //重大 2
+                int majorCount = 0;
+                //总数
+                int totalCount = 0;
+                //未整改数量
+                int unRectifyCount = 0;
+
+                for (InspectionHiddenDanger inspectionHiddenDanger : dangerList) {
+                    if (inspectionHiddenDanger.getLevel().equals(1)) {
+                        sameasCount += 1;
+                    }else {
+                        majorCount += 1;
+                    }
+                    if(inspectionHiddenDanger.getStatus().equals((byte) 0)){
+                        unRectifyCount += 1;
+                    }
+                    totalCount += 1;
+                }
+
+                inspection.setSameAsCount(sameasCount);
+                inspection.setMajorCount(majorCount);
+                inspection.setHdTocalCount(totalCount);
+                if(unRectifyCount == 0){
+                    inspection.setRectificationStatus(2);
+                }else if(unRectifyCount == totalCount){
+                    inspection.setRectificationStatus(0);
+                }else {
+                    inspection.setRectificationStatus(1);
+                }
+
+            }
+            res.setRecords(records);
+        }
+        return res;
+    }
+
+    @Override
+    public List<InspectionHiddenDanger> inspectionHdangerlist(Long selfInspectionId) {
+        return inspectionHiddenDangerMapper.inspectionHdangerlist(selfInspectionId);
+    }
+
+    private void modrequiredVerification(InspectionHiddenDanger inspectionHiddenDanger){
+        if(inspectionHiddenDanger.getId() == null){
+            throw new BusinessException("隐患主键不可为空");
+        }
+        InspectionHiddenDanger danger = this.inspectionHiddenDangerMapper.selectById(inspectionHiddenDanger.getId());
+        if(danger.getStatus().equals((byte) 1)){
+          throw new BusinessException("已整改不可再修改");
+        }
+        if (StringUtils.isBlank(inspectionHiddenDanger.getInfo())) throw new BusinessException("请填写隐患描述");
+        if (inspectionHiddenDanger.getLevel() == null) throw new BusinessException("请选择隐患等级");
+        if (inspectionHiddenDanger.getStatus() == null) throw new BusinessException("整改状态不可为空");
+    }
+}
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionElementAServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionElementAServiceImpl.java
new file mode 100644
index 0000000..344e77f
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionElementAServiceImpl.java
@@ -0,0 +1,32 @@
+package com.gk.hotwork.Service.ServiceImpl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gk.hotwork.Domain.SafetyInspectionElementA;
+import com.gk.hotwork.Mapper.SafetyInspectionElementAMapper;
+import com.gk.hotwork.Service.SafetyInspectionElementAService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/19
+ * @time: 17:30
+ */
+@Service
+public class SafetyInspectionElementAServiceImpl extends ServiceImpl<SafetyInspectionElementAMapper, SafetyInspectionElementA> implements SafetyInspectionElementAService {
+
+    @Autowired
+    private SafetyInspectionElementAMapper safetyInspectionElementAMapper;
+
+    @Override
+    public List<SafetyInspectionElementA> getBySafetySelfInspectionId(Long safetyInspectionId) {
+
+        return safetyInspectionElementAMapper.selectList(new LambdaQueryWrapper<SafetyInspectionElementA>()
+                .eq(SafetyInspectionElementA::getSafetyInspectionId,safetyInspectionId)
+        );
+    }
+}
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java
index d5bebd9..d1dc7fb 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetyInspectionItemImpl.java
@@ -6,9 +6,11 @@
 import com.gk.hotwork.Domain.*;
 import com.gk.hotwork.Domain.Exception.BusinessException;
 import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Domain.dto.resp.SafetyInspectionElementRespDTO;
 import com.gk.hotwork.Mapper.SafetyInspectionItemDeductionMapper;
 import com.gk.hotwork.Mapper.SafetyInspectionItemMapper;
 import com.gk.hotwork.Service.ElementManagementService;
+import com.gk.hotwork.Service.SafetyInspectionElementAService;
 import com.gk.hotwork.Service.SafetyInspectionItemService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.checkerframework.checker.units.qual.C;
@@ -20,6 +22,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service("SafetyInspectionItemService")
 @Transactional
@@ -32,6 +35,9 @@
 
     @Autowired
     private ElementManagementService elementManagementService;
+
+    @Autowired
+    private SafetyInspectionElementAService safetyInspectionElementAService;
 
     /**
     * @Description: 分页
@@ -175,10 +181,69 @@
     }
 
     @Override
-    public List<SafetyInspectionItem> infoElementA(Long id, UserInfo user) {
+    public SafetyInspectionElementRespDTO infoElementA(Long id, UserInfo user) {
+
+        //获取要素
+        List<ElementTree> elementTree = elementManagementService.getElementTreeByParentId(id);
+        if(CollectionUtils.isEmpty(elementTree)){
+            throw new BusinessException("该要素记录不存在");
+        }
+        //获取要素树下面的检查项
         List<SafetyInspectionItem> list = safetyInspectionItemMapper.infoElementA(id);
-        if (CollectionUtils.isNotEmpty(list)){
-            for (SafetyInspectionItem safetyInspectionItem : list){
+
+        //一级
+        SafetyInspectionElementRespDTO respDTO = new SafetyInspectionElementRespDTO();
+        respDTO.setElementId(elementTree.get(0).getValue());
+        respDTO.setElementName(elementTree.get(0).getLabel());
+        respDTO.setType(elementTree.get(0).getType());
+        respDTO.setPid(elementTree.get(0).getPid());
+        List<SafetyInspectionElementRespDTO> sRespList = new ArrayList<>();
+        //循环孩子节点(二级)
+        if(CollectionUtils.isNotEmpty(elementTree.get(0).getChildren())){
+            for (ElementTree schildren : elementTree.get(0).getChildren()){
+                SafetyInspectionElementRespDTO schildrenRespDTO = new SafetyInspectionElementRespDTO();
+                schildrenRespDTO.setElementId(schildren.getValue());
+                schildrenRespDTO.setElementName(schildren.getLabel());
+                schildrenRespDTO.setType(schildren.getType());
+                schildrenRespDTO.setPid(schildren.getPid());
+                if(CollectionUtils.isEmpty(schildren.getChildren())){
+                    List<SafetyInspectionItem> sSelectItemList = list
+                            .stream()
+                            .filter(item -> item.getElementB().equals(schildren.getValue()) && item.getElementC() == null)
+                            .collect(Collectors.toList());
+                    schildrenRespDTO.setItemList(getSafetyInspectionItem(sSelectItemList));
+                }else {
+                    List<SafetyInspectionElementRespDTO> tRespList = new ArrayList<>();
+                    //三级
+                    for (ElementTree tchildren : schildren.getChildren()){
+                        SafetyInspectionElementRespDTO tchildrenRespDTO = new SafetyInspectionElementRespDTO();
+                        tchildrenRespDTO.setElementId(tchildren.getValue());
+                        tchildrenRespDTO.setElementName(tchildren.getLabel());
+                        tchildrenRespDTO.setType(tchildren.getType());
+                        tchildrenRespDTO.setPid(tchildren.getPid());
+                        List<SafetyInspectionItem> tSelectItemList = list
+                                .stream()
+                                .filter(item -> item.getElementC() != null && item.getElementC().equals(tchildren.getValue()))
+                                .collect(Collectors.toList());
+                        tchildrenRespDTO.setItemList(getSafetyInspectionItem(tSelectItemList));
+                        tRespList.add(tchildrenRespDTO);
+                    }
+                    schildrenRespDTO.setChildren(tRespList);
+                }
+                sRespList.add(schildrenRespDTO);
+
+
+            }
+        }
+        respDTO.setChildren(sRespList);
+        return respDTO;
+
+    }
+
+    private List<SafetyInspectionItem> getSafetyInspectionItem(List<SafetyInspectionItem> itemList){
+
+        if (CollectionUtils.isNotEmpty(itemList)){
+            for (SafetyInspectionItem safetyInspectionItem : itemList){
                 List<SafetyInspectionItemDeduction> deductionList = safetyInspectionItemDeductionMapper.getBySafetyInspectionItemId(safetyInspectionItem.getId());
                 if (CollectionUtils.isNotEmpty(deductionList)){
                     safetyInspectionItem.setDeductionList(deductionList);
@@ -187,7 +252,8 @@
                 }
             }
         }
-        return list;
+        return itemList;
+
     }
 
     @Override
@@ -221,6 +287,11 @@
     public void requiredVerification(SafetyInspectionItem param){
         if (param.getElementA() == null) throw new BusinessException("请选择A级要素");
         if (param.getElementB() == null) throw new BusinessException("请选择B级要素");
+        //如果有三级要素则不创建标准
+        List<ElementManagement> elementList = elementManagementService.getElementByParentId(param.getElementB());
+        if(elementList.size() > 0){
+            throw new BusinessException("请先删除三级要素");
+        }
         if(StringUtils.isBlank(param.getStandardizationRequirements())) throw new BusinessException("请填写标准化要求");
         if(StringUtils.isBlank(param.getEnterpriseStandard())) throw new BusinessException("请填写企业达标标准");
         if(StringUtils.isBlank(param.getReviewMethod())) throw new BusinessException("请填写评审方法");
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java
index 14dd1ae..d6664fa 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java
@@ -1,16 +1,19 @@
 package com.gk.hotwork.Service.ServiceImpl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.gk.hotwork.Domain.*;
 import com.gk.hotwork.Domain.Do.SafetySelfInspectionItemQualifiedCountDO;
 import com.gk.hotwork.Domain.Exception.BusinessException;
+import com.gk.hotwork.Domain.Utils.BeanUtils;
 import com.gk.hotwork.Domain.Utils.StringUtils;
+import com.gk.hotwork.Domain.Vo.UserVo;
+import com.gk.hotwork.Domain.dto.resp.SafetySelfInspectionElementRespDTO;
+import com.gk.hotwork.Domain.dto.resp.SafetySelfInspectionRespDTO;
 import com.gk.hotwork.Mapper.*;
-import com.gk.hotwork.Service.CompanyService;
-import com.gk.hotwork.Service.SafetySelfInspectionService;
-import com.gk.hotwork.Service.UserService;
+import com.gk.hotwork.Service.*;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,26 +41,38 @@
     private SafetyInspectionItemDeductionMapper safetyInspectionItemDeductionMapper;
     @Autowired
     private CompanyService companyService;
+    @Autowired
+    private ElementManagementService elementManagementService;
+    @Autowired
+    private SafetyInspectionElementAService safetyInspectionElementAService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private InspectionExpertGroupService expertGroupService;
+    @Autowired
+    private InspectionExpertService expertService;
+    @Autowired
+    private InspectionHiddenDangerService dangerService;
+
     /**
      * @Description: 分页
      */
     @Override
     public IPage<SafetySelfInspection> selectPage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user) {
         Integer type = user.getType();
-        //普通用户
+        //企业用户
         if (type.equals(3)) {
             Long companyid = user.getCompanyid();
-            filter.put("companyid",companyid);
+            filter.put("checkedCompanyId",companyid);
         }
         //监管用户
         if (type.equals(2)) {
-            Long companyid = user.getCompanyid();
             //获取企业信息
-            CompanyInfo companyInfo = companyService.getById(companyid);
-            filter.put("province",companyInfo.getProvince());
-            filter.put("city",companyInfo.getCity());
-            filter.put("area",companyInfo.getArea());
+            filter.put("province",user.getProvince());
+            filter.put("city",user.getCity());
+            filter.put("area",user.getCounty());
         }
+        filter.put("flag",0);
 
         IPage<SafetySelfInspection> res = safetySelfInspectionMapper.selectPages(page, filter);
         List<SafetySelfInspection> records = res.getRecords();
@@ -83,6 +98,183 @@
         return res;
     }
 
+    /**
+     * @Description: 分页
+     */
+    @Override
+    public IPage<SafetySelfInspection> selectSupervisePage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user) {
+        Integer type = user.getType();
+        //普通用户
+        if (type.equals(3)) {
+            Long companyid = user.getCompanyid();
+            filter.put("checkedCompanyId",companyid);
+        }
+        //监管用户
+        if (type.equals(2)) {
+            //获取企业信息
+            filter.put("province",user.getProvince());
+            filter.put("city",user.getCity());
+            filter.put("area",user.getCounty());
+        }
+        filter.put("flag",1);
+
+        IPage<SafetySelfInspection> res = safetySelfInspectionMapper.selectPages(page, filter);
+        List<SafetySelfInspection> records = res.getRecords();
+        if (CollectionUtils.isNotEmpty(records)){
+            DecimalFormat df = new DecimalFormat("0.00%");
+            records = records.stream().map((safetySelfInspection) -> {
+                if (safetySelfInspection.getStatus() == 2) {
+                    Long id = safetySelfInspection.getId();
+                    SafetySelfInspectionItemQualifiedCountDO countDO = safetySelfInspectionItemMapper.countQualifiedDataById(id);
+                    safetySelfInspection.setUnqualifiedItem(countDO.getItemSum() - countDO.getQualifiedItem());
+                    if (countDO != null && countDO.getItemSum() != 0 && countDO.getItemSum() != null) {
+                        BigDecimal rate = new BigDecimal(countDO.getQualifiedItem())
+                                .divide(new BigDecimal(countDO.getItemSum()), 4, BigDecimal.ROUND_HALF_UP);
+                        String qualifiedRate = df.format(rate);
+                        safetySelfInspection.setQualifiedRate(qualifiedRate);
+                        safetySelfInspection.setItemSum(countDO.getItemSum());
+                    }
+                }
+                return safetySelfInspection;
+            }).collect(Collectors.toList());
+            res.setRecords(records);
+        }
+        return res;
+    }
+   /* @Override
+    public IPage<SafetySelfInspection> selectPage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user) {
+        Integer type = user.getType();
+        //普通用户
+        if (type.equals(3)) {
+            Long companyid = user.getCompanyid();
+            filter.put("companyid",companyid);
+        }
+        //监管用户
+        if (type.equals(2)) {
+            Long companyid = user.getCompanyid();
+            //获取企业信息
+            CompanyInfo companyInfo = companyService.getById(companyid);
+            filter.put("province",companyInfo.getProvince());
+            filter.put("city",companyInfo.getCity());
+            filter.put("area",companyInfo.getArea());
+        }
+
+        IPage<SafetySelfInspection> res = safetySelfInspectionMapper.selectPages(page, filter);
+        List<SafetySelfInspection> records = res.getRecords();
+        if (CollectionUtils.isNotEmpty(records)){
+            DecimalFormat df = new DecimalFormat("0.00%");
+            records = records.stream().map((safetySelfInspection) -> {
+                //总分
+                Integer totalScore = 0;
+                //扣分
+                Integer delScore =0;
+
+                Long id = safetySelfInspection.getId();
+                SafetySelfInspectionItemQualifiedCountDO countDO = safetySelfInspectionItemMapper.countQualifiedDataById(id);
+                safetySelfInspection.setUnqualifiedItem(countDO.getItemSum() - countDO.getQualifiedItem());
+                if (countDO != null && countDO.getItemSum() != 0 && countDO.getItemSum() != null) {
+                    BigDecimal rate = new BigDecimal(countDO.getQualifiedItem())
+                            .divide(new BigDecimal(countDO.getItemSum()), 4, BigDecimal.ROUND_HALF_UP);
+                    String qualifiedRate = df.format(rate);
+                    safetySelfInspection.setQualifiedRate(qualifiedRate);
+                    safetySelfInspection.setItemSum(countDO.getItemSum());
+                }
+                //计算总分以及得分
+                //获取要素
+                List<SafetyInspectionElementA> inspectionElementAList = safetyInspectionElementAService.getBySafetySelfInspectionId(id);
+                //获取检查项
+                List<SafetySelfInspectionItem> safetySelfInspectionItemList = safetySelfInspectionItemMapper.getBySafetySelfInspectionId2(id);
+                //循环要素
+                for(SafetyInspectionElementA elementA : inspectionElementAList){
+                    //获取该要素的树
+                    List<ElementTree> elementTree = elementManagementService.getElementTreeByParentId(elementA.getElementA());
+                    //二级要素
+                    if (CollectionUtils.isNotEmpty(elementTree)) {
+                        List<ElementTree> elementBList = elementTree.get(0).getChildren();
+                        for(ElementTree stree : elementBList){
+                            //三级要素为空
+                            if(CollectionUtils.isEmpty(stree.getChildren())){
+                                //总分累计
+                                totalScore += stree.getPoint();
+                                //无三级要素过滤出二级要素检查内容
+                                List<SafetySelfInspectionItem> sItemList = safetySelfInspectionItemList
+                                        .stream()
+                                        .filter(item -> item.getElementC() == null && item.getElementB().equals(stree.getValue()))
+                                        .collect(Collectors.toList());
+                                //判断是否有否决项
+                                List<SafetySelfInspectionItem> rejectList = sItemList
+                                        .stream()
+                                        .filter(item -> item.getSafetyInspectionItemResult().equals(0))
+                                        .collect(Collectors.toList());
+
+                                if(rejectList.size() > 0){
+                                    delScore += stree.getPoint();
+                                }else {
+                                    //计算出不合格扣分
+                                    delScore += unqualifiedItemDelScore(sItemList);
+                                }
+
+                            } else {
+                                List<ElementTree> elementCList = stree.getChildren();
+                                for(ElementTree ttree : elementCList){
+                                    //计算总分
+                                    totalScore += ttree.getPoint();
+                                    //过滤该三级要素检查项目
+                                    List<SafetySelfInspectionItem> tItemList = safetySelfInspectionItemList
+                                            .stream()
+                                            .filter(item -> item.getElementC() != null && item.getElementC().equals(ttree.getValue()))
+                                            .collect(Collectors.toList());
+                                    //判断是否有被否决
+                                    List<SafetySelfInspectionItem> rejectList = tItemList
+                                            .stream()
+                                            .filter(item -> item.getSafetyInspectionItemResult().equals(0))
+                                            .collect(Collectors.toList());
+                                    if(rejectList.size() > 0){
+                                        delScore += ttree.getPoint();
+                                    }else {
+                                        //计算出不合格扣分
+                                        totalScore += unqualifiedItemDelScore(tItemList);
+                                    }
+                                }
+
+                            }
+                        }
+
+                    }
+
+
+                }
+                //得分
+                Integer score = totalScore - delScore;
+                safetySelfInspection.setTotalScore(totalScore.toString());
+                safetySelfInspection.setScore(score.toString());
+                return safetySelfInspection;
+            }).collect(Collectors.toList());
+            res.setRecords(records);
+        }
+        return res;
+    }*/
+    //累计过出不合格扣分
+    private Integer unqualifiedItemDelScore(List<SafetySelfInspectionItem> itemList){
+        int delScore = 0;
+        //过滤出不合格
+        List<SafetySelfInspectionItem> unqualifiedItemList = itemList
+                .stream()
+                .filter(item -> item.getSafetyInspectionItemResult().equals(1))
+                .collect(Collectors.toList());
+        for (SafetySelfInspectionItem unqualifiedItem : unqualifiedItemList){
+            List<SafetySelfInspectionItemDeduction> itemDeductionList = safetySelfInspectionItemDeductionMapper
+                    .selectList(new LambdaQueryWrapper<SafetySelfInspectionItemDeduction>()
+                            .eq(SafetySelfInspectionItemDeduction::getSafetySelfInspectionItemId, unqualifiedItem.getId())
+                            .eq(SafetySelfInspectionItemDeduction::getValidFlag,1));
+            for (SafetySelfInspectionItemDeduction itemDeduction : itemDeductionList) {
+                delScore += itemDeduction.getPoint();
+            }
+        }
+        return delScore;
+    }
+
+
 
     /**
      * @Description: 新增
@@ -95,14 +287,18 @@
         Date date = new Date();
         String username = user.getRealname();
         param.setValidFlag(Boolean.TRUE);
+        param.setFlag((byte) 0);
         param.setUpdateBy(username);
         param.setCreateBy(username);
         param.setUpdateTime(date);
         param.setCreateTime(date);
+        param.setCheckUnit(user.getCompany());
         this.save(param);
 
         if (CollectionUtils.isNotEmpty(param.getItemList())) {
             for (SafetySelfInspectionItem safetySelfInspectionItem : param.getItemList()) {
+                //默认合格
+                safetySelfInspectionItem.setSafetyInspectionItemResult(2);
                 safetySelfInspectionItem.setValidFlag(Boolean.TRUE);
                 safetySelfInspectionItem.setUpdateBy(username);
                 safetySelfInspectionItem.setCreateBy(username);
@@ -110,6 +306,93 @@
                 safetySelfInspectionItem.setCreateTime(date);
                 safetySelfInspectionItem.setSafetySelfInspectionId(param.getId());
                 safetySelfInspectionItemMapper.insert(safetySelfInspectionItem);
+            }
+        }
+        if(CollectionUtils.isNotEmpty(param.getElementAList())){
+            for (SafetyInspectionElementA inspectionElementA : param.getElementAList()) {
+                SafetyInspectionElementA safetyInspectionElementA = new SafetyInspectionElementA();
+                safetyInspectionElementA.setSafetyInspectionId(param.getId());
+                safetyInspectionElementA.setElementA(inspectionElementA.getElementA());
+                safetyInspectionElementAService.save(safetyInspectionElementA);
+            }
+        }
+
+    }
+
+    /**
+     * 监管检查-新增
+     * @param param
+     * @param user
+     */
+    @Override
+    public void addSupervise(SafetySelfInspection param, UserInfo user) {
+        requiredSuperviseVerification(param);
+
+        Date date = new Date();
+        String username = user.getRealname();
+        param.setValidFlag(Boolean.TRUE);
+        param.setFlag((byte) 1);
+        param.setInspector(user.getId());
+        param.setUpdateBy(username);
+        param.setCreateBy(username);
+        param.setUpdateTime(date);
+        param.setCreateTime(date);
+        param.setCheckUnit(user.getCompany());
+        this.save(param);
+
+        //生成专家组记录
+        InspectionExpertGroup inspectionExpertGroup = new InspectionExpertGroup();
+        inspectionExpertGroup.setInspectionName(param.getInspectionName());
+        inspectionExpertGroup.setInspectionTime(param.getInspectionTime());
+        inspectionExpertGroup.setCheckedCompanyId(param.getCheckedCompanyId());
+        inspectionExpertGroup.setCheckedCompanyName(param.getCheckedCompanyName());
+        inspectionExpertGroup.setCheckUnit(user.getCompany());
+        inspectionExpertGroup.setSelfInspectionId(param.getId());
+        inspectionExpertGroup.setValidFlag(true);
+        inspectionExpertGroup.setCreateTime(new Date());
+        List<InspectionExpert> collect = param.getExpertList().stream().filter(inspectionExpert -> inspectionExpert.getIsLeader() == true).collect(Collectors.toList());
+        if (collect.size() > 0) {
+            UserVo userVo = userService.selectUserVoById(collect.get(0).getExpertId());
+            inspectionExpertGroup.setExpertLeader(userVo.getRealname());
+        }
+        expertGroupService.save(inspectionExpertGroup);
+
+
+        if (CollectionUtils.isNotEmpty(param.getItemList())) {
+            for (SafetySelfInspectionItem safetySelfInspectionItem : param.getItemList()) {
+                //默认合格
+                safetySelfInspectionItem.setSafetyInspectionItemResult(2);
+                safetySelfInspectionItem.setValidFlag(Boolean.TRUE);
+                safetySelfInspectionItem.setUpdateBy(username);
+                safetySelfInspectionItem.setCreateBy(username);
+                safetySelfInspectionItem.setUpdateTime(date);
+                safetySelfInspectionItem.setCreateTime(date);
+                safetySelfInspectionItem.setSafetySelfInspectionId(param.getId());
+                safetySelfInspectionItemMapper.insert(safetySelfInspectionItem);
+            }
+        }
+        if(CollectionUtils.isNotEmpty(param.getElementAList())){
+            for (SafetyInspectionElementA inspectionElementA : param.getElementAList()) {
+                SafetyInspectionElementA safetyInspectionElementA = new SafetyInspectionElementA();
+                safetyInspectionElementA.setSafetyInspectionId(param.getId());
+                safetyInspectionElementA.setElementA(inspectionElementA.getElementA());
+                safetyInspectionElementAService.save(safetyInspectionElementA);
+            }
+        }
+
+        if(CollectionUtils.isNotEmpty(param.getExpertList())){
+            for (InspectionExpert inspectionExpert : param.getExpertList()) {
+                UserVo userVo = userService.selectUserVoById(inspectionExpert.getExpertId());
+                inspectionExpert.setCompanyName(userVo.getCompany());
+                inspectionExpert.setIdcard(userVo.getIdcard());
+                inspectionExpert.setName(userVo.getRealname());
+                inspectionExpert.setPhone(userVo.getUsername());
+                inspectionExpert.setType(userVo.getType());
+                inspectionExpert.setProfessionalLevel(user.getProfessionalLevel());
+                inspectionExpert.setSpecialityName(userVo.getSpecialityName());
+                inspectionExpert.setSelfInspectionId(param.getId());
+                inspectionExpert.setExpertGropId(inspectionExpertGroup.getId());
+                expertService.save(inspectionExpert);
             }
         }
     }
@@ -186,9 +469,15 @@
         delOne.setUpdateBy(user.getRealname());
         delOne.setValidFlag(Boolean.FALSE);
         this.updateById(delOne);
+        InspectionExpertGroup expertGroup = expertGroupService.getBySelfInspectionId(id);
+        if(expertGroup != null){
+            expertGroup.setValidFlag(false);
+            expertGroupService.updateById(expertGroup);
+        }
+
     }
 
-    @Override
+  /*  @Override
     public SafetySelfInspection infoOne(Long id,String unqualified, UserInfo user) {
         SafetySelfInspection safetySelfInspection=selectVerification(id);
         //组装检查项
@@ -225,12 +514,164 @@
             safetySelfInspection.setItemList(new ArrayList<>());
         }
         return safetySelfInspection;
+    }*/
+
+    @Override
+    public SafetySelfInspectionRespDTO infoOne(Long id, String unqualified, UserInfo user) {
+        SafetySelfInspection safetySelfInspection = selectVerification(id);
+        SafetySelfInspectionRespDTO safetySelfInspectionRespDTO = new SafetySelfInspectionRespDTO();
+        BeanUtils.copyProperties(safetySelfInspection,safetySelfInspectionRespDTO);
+        //获取所有检查项
+        List<SafetySelfInspectionItem> itemList= safetySelfInspectionItemMapper.getDetailBySafetySelfInspectionId(id,unqualified);
+        //获取关联要素
+        List<SafetyInspectionElementA> inspectionElementAList = safetyInspectionElementAService.getBySafetySelfInspectionId(id);
+
+        List<SafetySelfInspectionElementRespDTO> arespDTOList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(inspectionElementAList)) {
+            for (SafetyInspectionElementA elementA : inspectionElementAList) {
+                //获取该要素的树
+                List<ElementTree> elementTree = elementManagementService.getElementTreeByParentId(elementA.getElementA());
+                if (CollectionUtils.isNotEmpty(elementTree)) {
+                    //一级要素
+                    ElementTree otree = elementTree.get(0);
+                    SafetySelfInspectionElementRespDTO elementARespDTO = new SafetySelfInspectionElementRespDTO();
+                    elementARespDTO.setElementId(otree.getValue());
+                    elementARespDTO.setElementName(otree.getLabel());
+                    elementARespDTO.setType(otree.getType());
+
+                    List<SafetySelfInspectionElementRespDTO> brespDTOList = new ArrayList<>();
+                    //二级要素
+                    List<ElementTree> elementBList = otree.getChildren();
+                    if(CollectionUtils.isNotEmpty(elementBList)){
+                        for (ElementTree stree : elementBList) {
+                            SafetySelfInspectionElementRespDTO elementBRespDTO = new SafetySelfInspectionElementRespDTO();
+                            elementBRespDTO.setElementId(stree.getValue());
+                            elementBRespDTO.setElementName(stree.getLabel());
+                            elementBRespDTO.setType(stree.getType());
+                            elementBRespDTO.setPid(stree.getPid());
+
+                            List<SafetySelfInspectionElementRespDTO> cRespDTOList = new ArrayList<>();
+                            //三级要素
+                            List<ElementTree> elementCList = stree.getChildren();
+                            if(CollectionUtils.isEmpty(elementCList)){
+                                //扣分
+                                int delScore = 0;
+                                int totalScore = stree.getPoint();
+                                //无三级要素过滤出二级要素检查内容
+                                List<SafetySelfInspectionItem> sItemList = itemList
+                                        .stream()
+                                        .filter(item -> item.getElementC() == null && item.getElementB().equals(stree.getValue()))
+                                        .collect(Collectors.toList());
+                                //填充检查项
+                                elementBRespDTO.setItemList(assemblyDeduction(sItemList));
+
+                                //判断是否有否决项
+                                List<SafetySelfInspectionItem> rejectList = sItemList
+                                        .stream()
+                                        .filter(item -> item.getSafetyInspectionItemResult().equals(0))
+                                        .collect(Collectors.toList());
+                                if(rejectList.size() > 0){
+                                    delScore = stree.getPoint();
+                                }else {
+                                    //计算出不合格扣分
+                                    delScore += unqualifiedItemDelScore(sItemList);
+                                }
+                                //总分
+                                elementBRespDTO.setTotalScore(stree.getPoint());
+                                //得分
+                                elementBRespDTO.setScore(totalScore-delScore);
+
+
+                            }else {
+                                for(ElementTree ttree : elementCList){
+                                    SafetySelfInspectionElementRespDTO elementCRespDTO = new SafetySelfInspectionElementRespDTO();
+                                    elementCRespDTO.setElementId(ttree.getValue());
+                                    elementCRespDTO.setElementName(ttree.getLabel());
+                                    elementCRespDTO.setType(ttree.getType());
+                                    elementCRespDTO.setPid(ttree.getPid());
+
+                                    //扣分
+                                    int delScore = 0;
+                                    int totalScore = ttree.getPoint();
+
+                                    //过滤该三级要素检查项目
+                                    List<SafetySelfInspectionItem> tItemList = itemList
+                                            .stream()
+                                            .filter(item -> item.getElementC() != null && item.getElementC().equals(ttree.getValue()))
+                                            .collect(Collectors.toList());
+                                    //填充检查项
+                                    elementCRespDTO.setItemList(assemblyDeduction(tItemList));
+
+                                    //判断是否有被否决
+                                    List<SafetySelfInspectionItem> rejectList = tItemList
+                                            .stream()
+                                            .filter(item -> item.getSafetyInspectionItemResult().equals(0))
+                                            .collect(Collectors.toList());
+                                    if(rejectList.size() > 0){
+                                        delScore = ttree.getPoint();
+                                    }else {
+                                        //计算出不合格扣分
+                                        delScore = unqualifiedItemDelScore(tItemList);
+                                    }
+                                    //总分
+                                    elementCRespDTO.setTotalScore(ttree.getPoint());
+                                    //得分
+                                    elementCRespDTO.setScore(totalScore-delScore);
+                                    cRespDTOList.add(elementCRespDTO);
+                                }
+                            }
+                            elementBRespDTO.setChildren(cRespDTOList);
+                            brespDTOList.add(elementBRespDTO);
+                        }
+                    }
+                    elementARespDTO.setChildren(brespDTOList);
+                    arespDTOList.add(elementARespDTO);
+                }
+            }
+
+        }
+        safetySelfInspectionRespDTO.setElementList(arespDTOList);
+
+        return safetySelfInspectionRespDTO;
+    }
+
+
+    //组装扣分项
+    private List<SafetySelfInspectionItem> assemblyDeduction( List<SafetySelfInspectionItem> itemList){
+        for (SafetySelfInspectionItem safetySelfInspectionItem : itemList){
+            if (safetySelfInspectionItem.getSafetyInspectionItemResult().equals(2)){
+                //根据检查项id获取原始扣分项
+                List<SafetyInspectionItemDeduction> safetyInspectionItemDeductionList = safetyInspectionItemDeductionMapper.getBySafetyInspectionItemId(safetySelfInspectionItem.getSafetyInspectionItemId());
+                if (CollectionUtils.isNotEmpty(safetyInspectionItemDeductionList)){
+                    List<SafetySelfInspectionItemDeduction> oldSafetySelfInspectionItemDeductionList=new ArrayList<>();
+                    for (SafetyInspectionItemDeduction safetyInspectionItemDeduction : safetyInspectionItemDeductionList){
+                        SafetySelfInspectionItemDeduction safetySelfInspectionItemDeduction = new SafetySelfInspectionItemDeduction();
+                        safetySelfInspectionItemDeduction.setSafetyInspectionItemDeductionId(safetyInspectionItemDeduction.getId());
+                        safetySelfInspectionItemDeduction.setName(safetyInspectionItemDeduction.getName());
+                        safetySelfInspectionItemDeduction.setPoint(0);
+                        oldSafetySelfInspectionItemDeductionList.add(safetySelfInspectionItemDeduction);
+                    }
+                    safetySelfInspectionItem.setSelfDeductionList(oldSafetySelfInspectionItemDeductionList);
+                }else{
+                    safetySelfInspectionItem.setSelfDeductionList(new ArrayList<>());
+                }
+            }else if (safetySelfInspectionItem.getSafetyInspectionItemResult().equals(1)){
+                //根据自查清单记录的检查项id获取其扣分项
+                List<SafetySelfInspectionItemDeduction> selfDeductionList = safetySelfInspectionItemDeductionMapper.getBySafetySelfInspectionItemId(safetySelfInspectionItem.getId());
+                if (CollectionUtils.isNotEmpty(selfDeductionList)){
+                    safetySelfInspectionItem.setSelfDeductionList(selfDeductionList);
+                }
+            }
+        }
+        return itemList;
     }
 
     @Override
     public SafetySelfInspectionItem itemInfoOne(Long id, UserInfo user){
         SafetySelfInspectionItem safetySelfInspectionItem = safetySelfInspectionItemMapper.getDetailById(id);
         List<SafetySelfInspectionItemDeduction> selfDeductionList = safetySelfInspectionItemDeductionMapper.getBySafetySelfInspectionItemId(safetySelfInspectionItem.getId());
+        List<InspectionHiddenDanger> inspectionHiddenDangerList = dangerService.getBySafetySelfInspectionItemId(id);
+
         if (CollectionUtils.isNotEmpty(selfDeductionList)){
             safetySelfInspectionItem.setSelfDeductionList(selfDeductionList);
         }else{
@@ -250,11 +691,13 @@
                 safetySelfInspectionItem.setSelfDeductionList(new ArrayList<>());
             }
         }
+        safetySelfInspectionItem.setDangerList(inspectionHiddenDangerList);
         return safetySelfInspectionItem;
     }
 
     @Override
     public void modItemInfo(SafetySelfInspectionItem param, UserInfo user) {
+
         if (param.getSafetyInspectionItemResult()==0 && StringUtils.isBlank(param.getSafetyInspectionItemResultDesc())){
             throw new BusinessException("否决说明必填!");
         }
@@ -266,6 +709,8 @@
         if (param.getSafetyInspectionItemResult()==0 || param.getSafetyInspectionItemResult() == 2){
             //否决 合格--删除扣分记录
             safetySelfInspectionItemDeductionMapper.delBySafetySelfInspectionItemId(param.getId(),username,date);
+            //删除隐患
+            dangerService.delByInspectionItemId(param.getSafetyInspectionItemId(),user);
         }else{
             //扣分
             List<SafetySelfInspectionItemDeduction> list = safetySelfInspectionItemDeductionMapper.getBySafetySelfInspectionItemId(param.getId());
@@ -289,8 +734,41 @@
                     safetySelfInspectionItemDeductionMapper.updateById(safetySelfInspectionItemDeduction);
                 }
             }
+            //隐患
+            if(CollectionUtils.isNotEmpty(param.getDangerList())){
+                List<InspectionHiddenDanger> oldDangerList = dangerService.getBySafetySelfInspectionItemId(param.getId());
+                //过滤出要删除数据
+                List<InspectionHiddenDanger> deleteOldDangerList = oldDangerList.stream().parallel().filter(a ->
+                                param.getDangerList().stream().noneMatch(b ->
+                                        a.getId().equals(b.getId())))
+                        .collect(Collectors.toList());
+                //删除
+                if (CollectionUtils.isNotEmpty(deleteOldDangerList)) {
+                    List<Long> idList = deleteOldDangerList.stream().map(InspectionHiddenDanger::getId).collect(Collectors.toList());
+                    dangerService.delByIds(idList);
+                }
+                for (InspectionHiddenDanger inspectionHiddenDanger : param.getDangerList()) {
+                    if(inspectionHiddenDanger.getId() == null){
+                        inspectionHiddenDanger.setCreateBy(user.getRealname());
+                        inspectionHiddenDanger.setCreateTime(new Date());
+                        inspectionHiddenDanger.setUpdateBy(user.getRealname());
+                        inspectionHiddenDanger.setUpdateTime(new Date());
+                        inspectionHiddenDanger.setStatus((byte)0);
+                        inspectionHiddenDanger.setValidFlag(true);
+                        inspectionHiddenDanger.setSelfInspectionId(param.getSafetySelfInspectionId());
+                        inspectionHiddenDanger.setSelfInspectionItemId(param.getId());
+                        dangerService.save(inspectionHiddenDanger);
+                    }else {
+                        inspectionHiddenDanger.setUpdateBy(user.getRealname());
+                        inspectionHiddenDanger.setUpdateTime(new Date());
+                        dangerService.updateById(inspectionHiddenDanger);
+                    }
+                }
+            }
+
         }
     }
+
 
     @Override
     public void finish(Long id, UserInfo user) {
@@ -303,6 +781,14 @@
         safetySelfInspectionMapper.updateById(safetySelfInspection);
     }
 
+    @Override
+    public void addItemExpert(List<SafetySelfInspectionItem> itemList, UserInfo user) {
+        itemList.forEach(item -> {
+            item.setUpdateBy(user.getRealname());
+            item.setUpdateTime(new Date());
+        });
+        safetySelfInspectionItemMapper.updateBatch(itemList);
+    }
 
     /**
      * 查询验证
@@ -329,5 +815,43 @@
         if (param.getCheckedCompanyId() == null){
             throw new BusinessException("请选择被检查公司");
         }
+        if(CollectionUtils.isEmpty(param.getElementAList())){
+            throw new BusinessException("请选择A检查要素");
+        }
+        for(SafetyInspectionElementA elementA : param.getElementAList()){
+            if(elementA.getElementA() == null){
+                throw new BusinessException("请选择A检查要素");
+            }
+        }
+    }
+    public void requiredSuperviseVerification(SafetySelfInspection param) {
+        if (StringUtils.isBlank(param.getInspectionName())) throw new BusinessException("请填写排查清单名称");
+        if (param.getInspectionTime() == null) throw new BusinessException("请选择排查时间");
+        if (CollectionUtils.isEmpty(param.getExpertList())) throw new BusinessException("请选择检查专家");
+        for(InspectionExpert inspectionExpert : param.getExpertList()){
+            if(inspectionExpert.getExpertId() == null){
+                throw new BusinessException("请选择检查专家");
+            }
+            if(StringUtils.isBlank(inspectionExpert.getName())){
+                throw new BusinessException("请选择检查专家名字");
+            }
+            if(inspectionExpert.getIsLeader() == null){
+                throw new BusinessException("请选择组长或者组员");
+            }
+        }
+        if (CollectionUtils.isEmpty(param.getItemList())) {
+            throw new BusinessException("请选择检查项");
+        }
+        if (param.getCheckedCompanyId() == null){
+            throw new BusinessException("请选择被检查公司");
+        }
+        if(CollectionUtils.isEmpty(param.getElementAList())){
+            throw new BusinessException("请选择A检查要素");
+        }
+        for(SafetyInspectionElementA elementA : param.getElementAList()){
+            if(elementA.getElementA() == null){
+                throw new BusinessException("请选择A检查要素");
+            }
+        }
     }
 }
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/UserServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/UserServiceImpl.java
index fe91ae2..674ae10 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/UserServiceImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/UserServiceImpl.java
@@ -181,6 +181,10 @@
     public UserVo selectUserVoByName(String examtype,String username) {
         return userInfoMapper.selectUserVoByName(examtype,username);
     }
+    @Override
+    public UserVo selectUserVoById(Long userId) {
+        return userInfoMapper.selectUserVoById(userId);
+    }
 
 
     @Override
diff --git a/src/main/java/com/gk/hotwork/Service/UserService.java b/src/main/java/com/gk/hotwork/Service/UserService.java
index 204a402..6a72b07 100644
--- a/src/main/java/com/gk/hotwork/Service/UserService.java
+++ b/src/main/java/com/gk/hotwork/Service/UserService.java
@@ -32,6 +32,8 @@
 
     UserVo selectUserVoByName(String examtype, String username);
 
+    UserVo selectUserVoById(Long userId);
+
     void deleteById(Long id);
 
     void recoverOneById(Long id);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index a97433d..634e0e4 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -54,6 +54,8 @@
   mapper-locations: classpath*:com/gk/hotwork/**/*.xml
   type-aliases-package: com.gk.hotwork.Domain
   type-enums-package: com.gk.hotwork.Domain.Enum
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 
 #线程池配置
 threadPool:

--
Gitblit v1.9.2