From dd59c95e87ba585c4e3e2f059e218853784402e5 Mon Sep 17 00:00:00 2001
From: zhangfeng <1603559716@qq.com>
Date: 星期三, 26 七月 2023 11:17:31 +0800
Subject: [PATCH] 附件上传接口

---
 src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml              |    5 
 src/main/java/com/gk/hotwork/Controller/AttachmentController.java                       |  223 +++++++++++
 src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java                       |   11 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java          |  212 +++------
 src/main/java/com/gk/hotwork/Service/AttachmentService.java                             |   35 +
 src/main/resources/application-prod.yml                                                 |   47 +
 src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml                       |   41 ++
 src/main/java/com/gk/hotwork/Mapper/mybatis/AttachmentInfoMapper.xml                    |   21 +
 src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java                         |   12 
 src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java             |    2 
 src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java             |    2 
 src/main/java/com/gk/hotwork/Config/Cors/MyMvcConfigurer.java                           |    4 
 src/main/java/com/gk/hotwork/Mapper/AttachmentInfoMapper.java                           |   20 +
 src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java |   27 +
 src/main/java/com/gk/hotwork/Service/AttachmentInfoService.java                         |   33 +
 src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentInfoServiceImpl.java         |   83 ++++
 src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml            |    3 
 src/main/resources/application-dev.yml                                                  |   47 +
 src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentServiceImpl.java             |  327 ++++++++++++++++
 src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java                           |    2 
 src/main/resources/application.yml                                                      |    6 
 21 files changed, 974 insertions(+), 189 deletions(-)

diff --git a/src/main/java/com/gk/hotwork/Config/Cors/MyMvcConfigurer.java b/src/main/java/com/gk/hotwork/Config/Cors/MyMvcConfigurer.java
index 8e6113b..e168a6c 100644
--- a/src/main/java/com/gk/hotwork/Config/Cors/MyMvcConfigurer.java
+++ b/src/main/java/com/gk/hotwork/Config/Cors/MyMvcConfigurer.java
@@ -1,5 +1,6 @@
 package com.gk.hotwork.Config.Cors;
 
+import com.gk.hotwork.Config.attachment.FilePathConfig;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
@@ -30,6 +31,8 @@
     private String taskPath;
     @Value("${emergencyPlanPath}")
     private String emergencyPlanPath;
+
+
 
 
     @Override
@@ -67,5 +70,6 @@
                 .addResourceLocations("file:" + taskPath);
         registry.addResourceHandler("/upload/emergencyPlan/**")
                 .addResourceLocations("file:" + emergencyPlanPath);
+
     }
 }
diff --git a/src/main/java/com/gk/hotwork/Controller/AttachmentController.java b/src/main/java/com/gk/hotwork/Controller/AttachmentController.java
new file mode 100644
index 0000000..d9cee31
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Controller/AttachmentController.java
@@ -0,0 +1,223 @@
+package com.gk.hotwork.Controller;
+import com.gk.hotwork.Controller.Base.BaseController;
+import com.gk.hotwork.Domain.AttachmentInfo;
+import com.gk.hotwork.Domain.Utils.Msg;
+import com.gk.hotwork.Service.AttachmentService;
+
+import com.gk.hotwork.common.FileProjectConstants;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/5/6
+ * @time: 14:22
+ */
+@Api(tags = "附件上传接口")
+@RestController
+@RequestMapping("/attachment")
+public class AttachmentController extends BaseController {
+
+    @Autowired
+    private AttachmentService attachmentService;
+
+
+ /**
+     * 根据标识查询文件具体信息
+     * @param key
+     * @return
+     */
+     @ApiOperation(value = "根据标识查询文件具体信息",response = Msg.class)
+     @ApiImplicitParams({
+             @ApiImplicitParam(name = "key",value = "文件标识")
+     })
+    @GetMapping("/get/key/{key}")
+    public Msg findByKey(@PathVariable String key) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("查询成功");
+        AttachmentInfo byKey = attachmentService.findByKey(key);
+        msg.setResult(byKey);
+        return msg;
+    }
+
+   /**
+     * 根据id获取文件
+     * @param id
+     * @return
+     */
+   @ApiOperation(value = "根据id获取文件",response = Msg.class)
+   @ApiImplicitParams({
+           @ApiImplicitParam(name = "id",value = "文件id")
+   })
+    @GetMapping("/get/id/{id}")
+    public Msg get(@PathVariable Long id) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("查询成功");
+        AttachmentInfo byKey = attachmentService.findById(id);
+        msg.setResult(byKey);
+        return msg;
+    }
+
+    /**
+     * 删除文件数据
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除文件数据",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",value = "文件id")
+    })
+    @DeleteMapping("/delete/{id}")
+    public Msg delete(@PathVariable Long id) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("删除成功");
+        attachmentService.delete(id,getUser());
+        return msg;
+
+    }
+
+    /**
+     * 单个文件上传
+     * @Description 上传文件(返回文件标识)
+     * @Param [file, module]
+     **/
+    @ApiOperation(value = "上传文件(返回文件标识)-单个文件",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file",value = "文件"),
+            @ApiImplicitParam(name = "module",value = "checkPath")
+    })
+    @PostMapping("/upload/key")
+    public Msg uploadReturnKey(@RequestParam("file") MultipartFile
+                                     file, @RequestParam("module") String module) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("上传成功");
+        Object returnStr = attachmentService.saveFileToPath(file, module, FileProjectConstants.ReturnType.KEY,getUser());
+        msg.setResult(returnStr);
+        return msg;
+    }
+
+    /**
+     * 单个文件
+     * @Description 上传文件(返回文件信息)
+     * @Param [file, module]
+     **/
+    @ApiOperation(value = "上传文件(返回文件信息)-单个文件",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file",value = "文件"),
+            @ApiImplicitParam(name = "module",value = "模块(checkPath)")
+    })
+    @PostMapping("/upload/detail")
+    public Msg uploadReturnDetail(@RequestParam("file") MultipartFile
+                                        file, @RequestParam("module") String module) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("上传成功");
+        Object detail = attachmentService.saveFileToPath(file, module, FileProjectConstants.ReturnType.DETAIL,getUser());
+        msg.setResult(detail);
+        return msg;
+    }
+    /**
+     * 单个文件
+     * @Description 上传文件(返回访问路径)
+     * @Date 2021/4/20 19:28
+     * @Param [file, module]
+     **/
+    @ApiOperation(value = "上传文件(返回访问路径)-单个文件",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file",value = "文件"),
+            @ApiImplicitParam(name = "module",value = "模块(checkPath)")
+    })
+    @PostMapping("/upload/url")
+    public Msg uploadReturnUrl(@RequestParam("file") MultipartFile file, @RequestParam("module") String module) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("上传成功");
+        Object returnStr = attachmentService.saveFileToPath(file, module, FileProjectConstants.ReturnType.URL,getUser());
+        msg.setResult(returnStr);
+        return msg;
+    }
+
+    /**
+     * 批量文件
+     * @Description 上传文件(返回文件信息)
+     * @Param [file, module]
+     **/
+    @ApiOperation(value = "上传文件(返回访问路径)-批量",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file",value = "文件"),
+            @ApiImplicitParam(name = "module",value = "模块(checkPath)")
+    })
+    @PostMapping("/upload/batch/detail")
+    public Msg uploadBatchReturnDetail(@RequestParam("file") MultipartFile[]
+                                          file, @RequestParam("module") String module) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("上传成功");
+        Object detail = attachmentService.saveBatchFileToPath(file, module,getUser());
+        msg.setResult(detail);
+        return msg;
+    }
+
+    /**
+     * @return org.springframework.http.ResponseEntity<byte [ ]>
+     * @Description 获取下载文件流
+     * @Param [key]
+     **/
+    @ApiOperation(value = "获取下载文件流",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "key",value = "文件标识"),
+    })
+    @GetMapping("/downloadFile/{key}")
+    public void download(@PathVariable String key, HttpServletResponse response) {
+        attachmentService.downloadForStream(response, key);
+    }
+
+    /**
+     * @return void
+     * @Description 文件下载
+     * @Param [key, response, request]
+     **/
+    @ApiOperation(value = "文件下载",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",value = "文件id"),
+    })
+    @RequestMapping(value = "/downloadFileById/{id}", method = {RequestMethod.POST, RequestMethod.GET})
+    public void downloadFileByKey(@PathVariable Long id, HttpServletResponse response, HttpServletRequest
+            request) {
+        attachmentService.downloadById(response, request, id);
+    }
+
+    /**
+     * @Description 获取下载文件路径
+     * @Param [key]
+     **/
+    @ApiOperation(value = "获取下载文件路径",response = Msg.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "key",value = "文件key"),
+    })
+    @GetMapping("/downloadUrl/{key}")
+    public Msg downLoad( @PathVariable String key) {
+        Msg msg = new Msg();
+        msg.setCode("200");
+        msg.setMessage("查询成功");
+        AttachmentInfo byKey = attachmentService.findByKey(key);
+        msg.setResult(byKey);
+        return msg;
+    }
+
+
+}
diff --git a/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java b/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java
index 2c60902..c9a545c 100644
--- a/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java
+++ b/src/main/java/com/gk/hotwork/Controller/SafetySelfInspectionController.java
@@ -38,7 +38,7 @@
             @ApiImplicitParam(name = "pageSize",value = "每页行数"),
             @ApiImplicitParam(name = "inspectionName",value = "自查清单名称"),
             @ApiImplicitParam(name = "inspectorName",value = "检查人名称"),
-            @ApiImplicitParam(name = "checkedCompanyId",value = "被检查公司id"),
+            @ApiImplicitParam(name = "checkedCompanyName",value = "被检查公司名称"),
             @ApiImplicitParam(name = "inspectionStartTime",value = "开始时间"),
             @ApiImplicitParam(name = "inspectionEndTime",value = "结束时间"),
             @ApiImplicitParam(name = "status",value = "状态"),
diff --git a/src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java b/src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java
index 93674dd..c993701 100644
--- a/src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java
+++ b/src/main/java/com/gk/hotwork/Domain/InspectionHiddenDanger.java
@@ -5,6 +5,7 @@
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @email 1603559716@qq.com
@@ -28,6 +29,9 @@
      * 2重大
      */
     private Integer level;
+    /**
+     * 隐患附件
+     */
     private String url;
     private Boolean validFlag;
     /**
@@ -36,16 +40,12 @@
     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已整改
      */
@@ -54,7 +54,6 @@
      * 整改描述
      */
     private String rectificationInfo;
-
     /**
      * 整改附件
      */
@@ -73,5 +72,8 @@
     private String reviewMethod;
     @TableField(exist = false)
     private String veto;
+    //附件
+    @TableField(exist = false)
+    private List<AttachmentInfo> attachmentList;
 
 }
diff --git a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java
index bb541cc..c01ae2a 100644
--- a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java
+++ b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspection.java
@@ -100,7 +100,7 @@
     /** 检查单位 **/
     private String checkUnit;
 
-    //检查标识 0自查,1监管检查
+    //检查标识 2自查,1监管检查
     private Byte flag;
     /**
      * 隐患总数
diff --git a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java
index a065214..548fc40 100644
--- a/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java
+++ b/src/main/java/com/gk/hotwork/Domain/SafetySelfInspectionItem.java
@@ -106,6 +106,17 @@
      */
     private String expertNames;
 
+    //附件
+    @TableField(exist = false)
+    private List<AttachmentInfo> attachmentList;
+
+    public List<AttachmentInfo> getAttachmentList() {
+        return attachmentList;
+    }
+
+    public void setAttachmentList(List<AttachmentInfo> attachmentList) {
+        this.attachmentList = attachmentList;
+    }
 
     public String getExpertIds() {
         return expertIds;
diff --git a/src/main/java/com/gk/hotwork/Mapper/AttachmentInfoMapper.java b/src/main/java/com/gk/hotwork/Mapper/AttachmentInfoMapper.java
new file mode 100644
index 0000000..74fb4fb
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/AttachmentInfoMapper.java
@@ -0,0 +1,20 @@
+package com.gk.hotwork.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gk.hotwork.Domain.AttachmentInfo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/24
+ * @time: 13:49
+ */
+@Repository
+public interface AttachmentInfoMapper extends BaseMapper<AttachmentInfo> {
+    void saveBatch(List<AttachmentInfo> attachmentList);
+
+    void updateBusinessIdBatch(List<AttachmentInfo> attachmentList);
+}
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/AttachmentInfoMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/AttachmentInfoMapper.xml
new file mode 100644
index 0000000..601c86e
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/AttachmentInfoMapper.xml
@@ -0,0 +1,21 @@
+<?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.AttachmentInfoMapper" >
+  <insert id="saveBatch" useGeneratedKeys="true" keyProperty="id" >
+    insert into attachment (file_key,file_path,file_url,file_name,file_suffix,file_desc,file_size,file_type,module,del_flag,
+                            create_uid,create_uname,create_time,update_uid,update_uname,update_time)values
+    <foreach collection="attachmentList" item="attachment" separator=",">
+      (#{attachment.fileKey},#{attachment.filePath},#{attachment.fileUrl},#{attachment.fileName},#{attachment.fileSuffix},#{attachment.fileDesc},
+       #{attachment.fileSize},#{attachment.fileType},#{attachment.module},#{attachment.delFlag},#{attachment.createUid},#{attachment.createUname},
+       #{attachment.createTime},#{attachment.updateUid},#{attachment.updateUname},#{attachment.updateTime})
+    </foreach>
+  </insert>
+  <update id="updateBusinessIdBatch">
+      <foreach collection="attachmentList" item="attachment">
+          update attachment
+          set
+              business_id = #{attachment.id}
+      </foreach>
+  </update>
+
+</mapper>
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 2ed110d..fc4038c 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/CompanyInfoMapper.xml
@@ -28,6 +28,7 @@
     id,code,company, contactname, contactphone, ismain, province, city, area, town, community, isdel,
     createdby,createddate, lastmodifiedby, lastmodifieddate, longitude, latitude, isbanned
   </sql>
+<!--
   <select id="selectDataGrid" resultType="com.gk.hotwork.Domain.CompanyInfo">
     select *
     from company
@@ -60,6 +61,46 @@
       </if>
     </where>
   </select>
+-->
+  <select id="selectDataGrid" resultType="com.gk.hotwork.Domain.CompanyInfo">
+    select c.*
+    from
+    (select *
+    from company
+    <where>
+      1=1
+      and isdel = 0
+      <if test="condition.province != null and condition.province !=''">
+        and province = #{condition.province}
+      </if>
+      <if test="condition.city != null and condition.city !=''">
+        and city = #{condition.city}
+      </if>
+      <if test="condition.area != null and condition.area !=''">
+        and area = #{condition.area}
+      </if>
+    </where>
+    union
+    select *
+    from company
+    <where>1=1
+      and
+      isdel = 0
+      and province is null
+      or province = ''
+    </where>) c
+    <where>
+        1=1
+      <if test="condition.company != null and condition.company !=''">
+        and c.company like concat('%',#{condition.company},'%')
+      </if>
+      <if test="condition.companyid != null ">
+        and c.id = #{condition.companyid}
+      </if>
+    </where>
+
+  </select>
+
   <select id="selectExistByName" resultType="com.gk.hotwork.Domain.CompanyInfo">
     select *
     from company
diff --git a/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml b/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml
index cfbc11c..735e914 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/InspectionHiddenDangerMapper.xml
@@ -30,6 +30,9 @@
         <if test="params.inspectionName != null  and params.inspectionName != ''">
             and s.inspection_name like concat("%",#{params.inspectionName},"%")
         </if>
+        <if test="params.checkedCompanyId != null and params.checkedCompanyId != ''">
+            and s.checked_company_id like concat("%",#{params.checkedCompanyId},"%")
+        </if>
         <if test="params.checkedCompanyName != null and params.checkedCompanyName != ''">
             and s.checked_company_name like concat("%",#{params.checkedCompanyName},"%")
         </if>
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 7048d62..ec4215d 100644
--- a/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml
+++ b/src/main/java/com/gk/hotwork/Mapper/mybatis/SafetySelfInspectionMapper.xml
@@ -27,7 +27,7 @@
     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 != '' ">
+    <if test="params.flag != null and params.flag != '' ">
       and a.flag = #{params.flag}
     </if>
     <if test="params.inspectionName != null  and params.inspectionName != ''">
@@ -36,6 +36,9 @@
     <if test="params.checkedCompanyId != null">
       and a.checked_company_id = #{params.checkedCompanyId}
     </if>
+    <if test="params.checkedCompanyName != null and params.checkedCompanyName != ''">
+      and a.checked_company_name like concat("%",#{params.checkedCompanyName},"%")
+    </if>
     <if test="params.roleid != null ">
       and c.roleid = #{params.roleid}
     </if>
diff --git a/src/main/java/com/gk/hotwork/Service/AttachmentInfoService.java b/src/main/java/com/gk/hotwork/Service/AttachmentInfoService.java
new file mode 100644
index 0000000..e365859
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/AttachmentInfoService.java
@@ -0,0 +1,33 @@
+package com.gk.hotwork.Service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gk.hotwork.Domain.AttachmentInfo;
+import com.gk.hotwork.Domain.UserInfo;
+
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/24
+ * @time: 13:51
+ */
+public interface AttachmentInfoService extends IService<AttachmentInfo> {
+     AttachmentInfo findByKey(String key);
+
+     AttachmentInfo findById(Long id);
+
+     List<AttachmentInfo> findByBusinessId(Long businessId);
+
+     List<AttachmentInfo> findByIds(List<Long> ids);
+
+
+     void delete(Long id, UserInfo userInfo);
+
+     AttachmentInfo saveOne(AttachmentInfo attachmentInfo);
+
+     List<AttachmentInfo> saveBatchAttachment(List<AttachmentInfo> attachmentInfoList);
+
+     void updateBusinessIdBatch(List<AttachmentInfo> attachmentList);
+
+}
diff --git a/src/main/java/com/gk/hotwork/Service/AttachmentService.java b/src/main/java/com/gk/hotwork/Service/AttachmentService.java
new file mode 100644
index 0000000..5886c21
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/AttachmentService.java
@@ -0,0 +1,35 @@
+package com.gk.hotwork.Service;
+
+import com.gk.hotwork.Domain.AttachmentInfo;
+import com.gk.hotwork.Domain.Exception.BusinessException;
+import com.gk.hotwork.Domain.UserInfo;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/24
+ * @time: 13:53
+ */
+public interface AttachmentService {
+    AttachmentInfo findByKey(String key);
+
+    AttachmentInfo findById(Long id);
+    List<AttachmentInfo> findByIds(List<Long> ids);
+    List<AttachmentInfo> findByBusinessId(Long businessId);
+
+    void delete(Long id, UserInfo userInfo);
+
+    Object saveFileToPath(MultipartFile file, String module, int type, UserInfo user);
+
+    Object saveBatchFileToPath(MultipartFile[] file, String module, UserInfo user);
+
+    void downloadForStream(HttpServletResponse response, String key);
+
+    void downloadById(HttpServletResponse response, HttpServletRequest request, Long id);
+}
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentInfoServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentInfoServiceImpl.java
new file mode 100644
index 0000000..4692a03
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentInfoServiceImpl.java
@@ -0,0 +1,83 @@
+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.AttachmentInfo;
+import com.gk.hotwork.Domain.UserInfo;
+import com.gk.hotwork.Mapper.AttachmentInfoMapper;
+import com.gk.hotwork.Service.AttachmentInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/24
+ * @time: 13:48
+ */
+@Service
+public class AttachmentInfoServiceImpl extends ServiceImpl<AttachmentInfoMapper, AttachmentInfo> implements AttachmentInfoService {
+    @Autowired
+    private AttachmentInfoMapper attachmentInfoMapper;
+
+    @Override
+    public AttachmentInfo findByKey(String key) {
+        AttachmentInfo attachmentInfo = attachmentInfoMapper.selectOne(new LambdaQueryWrapper<AttachmentInfo>()
+                .eq(AttachmentInfo::getDelFlag,0)
+                .eq(AttachmentInfo::getFileKey,key));
+        return attachmentInfo;
+    }
+    @Override
+    public AttachmentInfo findById(Long id) {
+        AttachmentInfo attachmentInfo = attachmentInfoMapper.selectOne(new LambdaQueryWrapper<AttachmentInfo>()
+                .eq(AttachmentInfo::getDelFlag,0)
+                .eq(AttachmentInfo::getId,id));
+        return attachmentInfo;
+    }
+    @Override
+    public List<AttachmentInfo> findByBusinessId(Long businessId) {
+        List<AttachmentInfo> attachmentInfoList = attachmentInfoMapper.selectList(new LambdaQueryWrapper<AttachmentInfo>()
+                .eq(AttachmentInfo::getDelFlag,0)
+                .eq(AttachmentInfo::getBusinessId,businessId));
+        return attachmentInfoList;
+    }
+
+    @Override
+    public List<AttachmentInfo> findByIds(List<Long> ids) {
+        return attachmentInfoMapper.selectList(new LambdaQueryWrapper<AttachmentInfo>()
+                .in(AttachmentInfo::getBusinessId,ids)
+                .eq(AttachmentInfo::getDelFlag,0));
+    }
+
+    @Override
+    public void delete(Long id, UserInfo userInfo) {
+        AttachmentInfo attachmentInfo = new AttachmentInfo();
+        attachmentInfo.setId(id);
+        attachmentInfo.setUpdateTime(new Date());
+        attachmentInfo.setUpdateUid(userInfo.getId());
+        attachmentInfo.setUpdateUname(userInfo.getRealname());
+        attachmentInfo.setDelFlag(1);
+        attachmentInfoMapper.updateById(attachmentInfo);
+    }
+
+    @Override
+    public AttachmentInfo saveOne(AttachmentInfo attachmentInfo) {
+        attachmentInfoMapper.insert(attachmentInfo);
+        return attachmentInfoMapper.selectById(attachmentInfo.getId());
+    }
+
+    @Override
+    public List<AttachmentInfo> saveBatchAttachment(List<AttachmentInfo> attachmentInfoList) {
+        attachmentInfoMapper.saveBatch(attachmentInfoList);
+        return attachmentInfoList;
+    }
+
+    @Override
+    public void updateBusinessIdBatch(List<AttachmentInfo> attachmentList) {
+        attachmentInfoMapper.updateBusinessIdBatch(attachmentList);
+    }
+}
+
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentServiceImpl.java
new file mode 100644
index 0000000..eeb77a0
--- /dev/null
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/AttachmentServiceImpl.java
@@ -0,0 +1,327 @@
+package com.gk.hotwork.Service.ServiceImpl;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.servlet.ServletUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.gk.hotwork.Config.attachment.FilePathConfig;
+import com.gk.hotwork.Domain.AttachmentInfo;
+import com.gk.hotwork.Domain.Enum.ResultCodes;
+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.AttachmentInfoMapper;
+import com.gk.hotwork.Service.AttachmentInfoService;
+import com.gk.hotwork.Service.AttachmentService;
+import com.gk.hotwork.common.FileProjectConstants;
+import org.apache.commons.collections4.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import static cn.hutool.core.io.FileTypeUtil.getType;
+
+/**
+ * @email 1603559716@qq.com
+ * @author: zf
+ * @date: 2023/7/24
+ * @time: 13:54
+ */
+@Service
+public class AttachmentServiceImpl implements AttachmentService {
+
+    @Autowired
+    private AttachmentInfoService attachmentInfoService;
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    /**
+     * 错误信息格式
+     */
+    private static final String ERROR_FORMATTER = "{}:{}";
+
+    @Resource
+    private FilePathConfig filePathConfig;
+    @Override
+    public AttachmentInfo findByKey(String key) {
+        if (StringUtils.isBlank(key)){
+            throw new BusinessException("文件标识为空");
+        }
+        return attachmentInfoService.findByKey(key);
+    }
+    @Override
+    public AttachmentInfo findById(Long id) {
+        if (id == null){
+            throw new BusinessException("文件主键为空");
+        }
+        return attachmentInfoService.findById(id);
+    }
+    @Override
+    public List<AttachmentInfo> findByIds(List<Long> ids) {
+        if (CollectionUtils.isEmpty(ids)){
+            throw new BusinessException("文件主键为空");
+        }
+        return attachmentInfoService.findByIds(ids);
+    }
+    @Override
+    public List<AttachmentInfo> findByBusinessId(Long businessId) {
+        if (businessId == null){
+            throw new BusinessException("业务主键为空");
+        }
+        return attachmentInfoService.findByBusinessId(businessId);
+    }
+
+    @Override
+    public void delete(Long id, UserInfo userInfo) {
+        if (id == null){
+            throw new BusinessException("文件主键为空");
+        }
+        attachmentInfoService.delete(id,userInfo);
+    }
+
+    @Override
+    public Object saveFileToPath(MultipartFile file, String module, int type, UserInfo user) {
+        //获取对应模块路径
+        String path;
+        //获取对应模块根路径
+        String dcPath;
+        path = filePathConfig.getModule().get(module);
+        dcPath = filePathConfig.getDcPath();
+
+        String originalFilename = file.getOriginalFilename();
+        if (com.alibaba.druid.util.StringUtils.isEmpty(originalFilename)) {
+            logger.error(ERROR_FORMATTER,module, ResultCodes.PATH_NOT_EXISIST.getDesc());
+            throw new BusinessException(ResultCodes.FILE_NOT_EXISIST);
+        }
+        if (com.alibaba.druid.util.StringUtils.isEmpty(path)) {
+            logger.error(ERROR_FORMATTER, module, ResultCodes.PATH_NOT_EXISIST.getDesc());
+            throw new BusinessException(ResultCodes.PATH_NOT_EXISIST);
+        }
+        assert originalFilename != null;
+        LocalDateTime now = LocalDateTime.now();
+        File newFile = null;
+        try {
+            //文件标识 UUID 如4d6873609b144945935ae84442711fd6
+            String key = "";
+            String suffix = "";
+            if (originalFilename.contains(".mp3")) {
+                key = originalFilename;
+                suffix = "";
+            } else {
+                key = UUID.randomUUID().toString().replace("-", "");
+                //文件后缀  包含.
+                suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
+            }
+
+            path = path.replace("/", File.separator);
+            //文件模块路径 如 2021/base/build/0421
+            String modulePath = now.getYear() + path + now.format(DateTimeFormatter.ofPattern("MMdd"));
+            //文件路径  如 2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
+            String newFilePath = modulePath + File.separator + key + suffix;
+            //文件绝对路径 如 /home/img/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
+            String localPath = dcPath + newFilePath;
+            //文件访问路径 如 /upload/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
+            String url = filePathConfig.getUrlRootPath() + newFilePath.replace(File.separator, "/");
+            newFile = new File(localPath);
+            if (!newFile.exists() && !newFile.mkdirs()) {
+                logger.error(ERROR_FORMATTER, newFilePath, ResultCodes.FILE_UPLOAD_FAIL.getDesc());
+                throw new BusinessException(ResultCodes.FILE_UPLOAD_FAIL);
+            }
+            file.transferTo(newFile);
+            //创建文件信息
+            AttachmentInfo attachmentInfo = new AttachmentInfo();
+            attachmentInfo.setDelFlag(0);
+            attachmentInfo.setFileKey(key);
+            attachmentInfo.setFileSuffix(suffix);
+            attachmentInfo.setFilePath(localPath);
+            attachmentInfo.setFileUrl(url);
+            attachmentInfo.setFileName(file.getOriginalFilename());
+            attachmentInfo.setFileSize(file.getSize());
+            attachmentInfo.setModule(module);
+            attachmentInfo.setFileType(getType(suffix));
+            attachmentInfo.setCreateUid(user.getId());
+            attachmentInfo.setCreateUname(user.getRealname());
+            attachmentInfo.setUpdateUid(user.getId());
+            attachmentInfo.setUpdateUname(user.getRealname());
+            attachmentInfo.setUpdateTime(new Date());
+            attachmentInfo.setCreateTime(new Date());
+            AttachmentInfo attachment = attachmentInfoService.saveOne(attachmentInfo);
+            switch (type) {
+                case FileProjectConstants.ReturnType.URL:
+                    return url;
+                case FileProjectConstants.ReturnType.KEY:
+                    return key;
+                case FileProjectConstants.ReturnType.DETAIL:
+                    return attachment;
+                default:
+                    return null;
+            }
+        } catch (IOException e) {
+            if (newFile != null && newFile.exists()) {
+                newFile.delete();
+            }
+            logger.error(ERROR_FORMATTER, ResultCodes.FILE_UPLOAD_FAIL, e.getMessage());
+            throw new BusinessException(ResultCodes.FILE_UPLOAD_FAIL);
+        }
+    }
+
+    @Override
+    public Object saveBatchFileToPath(MultipartFile[] fileList, String module, UserInfo user) {
+        //获取对应模块路径
+        String path;
+        //获取对应模块根路径
+        String dcPath;
+        path = filePathConfig.getModule().get(module);
+        dcPath = filePathConfig.getDcPath();
+        List<AttachmentInfo> attachmentInfoList = new ArrayList<>();
+        for (MultipartFile file : fileList) {
+            String originalFilename = file.getOriginalFilename();
+            if (com.alibaba.druid.util.StringUtils.isEmpty(originalFilename)) {
+                logger.error(ERROR_FORMATTER,module, ResultCodes.PATH_NOT_EXISIST.getDesc());
+                throw new BusinessException(ResultCodes.FILE_NOT_EXISIST);
+            }
+            if (com.alibaba.druid.util.StringUtils.isEmpty(path)) {
+                logger.error(ERROR_FORMATTER, module, ResultCodes.PATH_NOT_EXISIST.getDesc());
+                throw new BusinessException(ResultCodes.PATH_NOT_EXISIST);
+            }
+            assert originalFilename != null;
+            LocalDateTime now = LocalDateTime.now();
+            File newFile = null;
+            try {
+                //文件标识 UUID 如4d6873609b144945935ae84442711fd6
+                String key = "";
+                String suffix = "";
+                if (originalFilename.contains(".mp3")) {
+                    key = originalFilename;
+                    suffix = "";
+                } else {
+                    key = UUID.randomUUID().toString().replace("-", "");
+                    //文件后缀  包含.
+                    suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
+                }
+
+                path = path.replace("/", File.separator);
+                //文件模块路径 如 2021/base/build/0421
+                String modulePath = now.getYear() + path + now.format(DateTimeFormatter.ofPattern("MMdd"));
+                //文件路径  如 2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
+                String newFilePath = modulePath + File.separator + key + suffix;
+                //文件绝对路径 如 /home/img/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
+                String localPath = dcPath + newFilePath;
+                //文件访问路径 如 /upload/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀
+                String url = filePathConfig.getUrlRootPath() + newFilePath.replace(File.separator, "/");
+                newFile = new File(localPath);
+                if (!newFile.exists() && !newFile.mkdirs()) {
+                    logger.error(ERROR_FORMATTER, newFilePath, ResultCodes.FILE_UPLOAD_FAIL.getDesc());
+                    throw new BusinessException(ResultCodes.FILE_UPLOAD_FAIL);
+                }
+                //上传文件
+                file.transferTo(newFile);
+                //创建文件信息
+                AttachmentInfo attachmentInfo = new AttachmentInfo();
+                attachmentInfo.setDelFlag(0);
+                attachmentInfo.setFileKey(key);
+                attachmentInfo.setFileSuffix(suffix);
+                attachmentInfo.setFilePath(localPath);
+                attachmentInfo.setFileUrl(url);
+                attachmentInfo.setFileName(file.getOriginalFilename());
+                attachmentInfo.setFileSize(file.getSize());
+                attachmentInfo.setModule(module);
+                attachmentInfo.setFileType(getType(suffix));
+                attachmentInfo.setCreateUid(user.getId());
+                attachmentInfo.setCreateUname(user.getRealname());
+                attachmentInfo.setUpdateUid(user.getId());
+                attachmentInfo.setUpdateUname(user.getRealname());
+                attachmentInfo.setUpdateTime(new Date());
+                attachmentInfo.setCreateTime(new Date());
+                attachmentInfoList.add(attachmentInfo);
+
+            } catch (IOException e) {
+                if (newFile != null && newFile.exists()) {
+                    newFile.delete();
+                }
+                logger.error(ERROR_FORMATTER, ResultCodes.FILE_UPLOAD_FAIL, e.getMessage());
+                throw new BusinessException(ResultCodes.FILE_UPLOAD_FAIL);
+            }
+        }
+        List<AttachmentInfo> detailList = attachmentInfoService.saveBatchAttachment(attachmentInfoList);
+
+        return detailList;
+    }
+
+    @Override
+    public void downloadForStream(HttpServletResponse response, String key) {
+        AttachmentInfo byKey = findByKey(key);
+        File file;
+        try {
+            response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(byKey.getFileName(), StandardCharsets.UTF_8.name()));
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            file = new File(byKey.getFilePath());
+            if (!file.exists()) {
+                logger.error(ERROR_FORMATTER, key, ResultCodes.FILE_NOT_EXISIST.getDesc());
+                throw new BusinessException(ResultCodes.FILE_NOT_EXISIST);
+            }
+            OutputStream outputStream = response.getOutputStream();
+            FileInputStream inputStream = new FileInputStream(file);
+            IoUtil.copy(inputStream, outputStream);
+            outputStream.close();
+        } catch (IOException e) {
+            logger.error(e.getMessage());
+            throw new BusinessException(ResultCodes.FILE_DOWNLOAD_EXPERTION);
+        }
+    }
+    @Override
+    public void downloadById(HttpServletResponse response, HttpServletRequest request, Long id) {
+        Assert.isTrue(id == null, "文件key未知异常");
+        AttachmentInfo byId = findById(id);
+        downloadByEntity(response, request, byId);
+    }
+
+
+    public void downloadByEntity(HttpServletResponse response, HttpServletRequest request, AttachmentInfo attachmentInfo) {
+        if (ObjectUtil.isNotNull(attachmentInfo)) {
+            String type = attachmentInfo.getFileType();
+            if (StrUtil.isBlank(type)) {
+                type = "application/octet-stream";
+            }
+            type = type + ";charset=utf-8";
+            String fileName = attachmentInfo.getFileName();
+            response.setContentType("multipart/form-data;charset=utf-8");
+            ServletUtil.setHeader(response, "Access-Control-Expose-Headers", "Content-Disposition");
+            //本地文件下载
+            File file = FileUtil.file(attachmentInfo.getFilePath());
+            if (!FileUtil.exist(file)) {
+                throw new BusinessException(attachmentInfo.getFileKey() + "文件不存在");
+            }
+            InputStream is = null;
+            try {
+                is = IoUtil.toStream(file);
+                ServletUtil.write(response, is, type, fileName);
+            } catch (Exception e) {
+                throw new BusinessException(ResultCodes.FILE_DOWNLOAD_EXPERTION);
+            } finally {
+                IoUtil.close(is);
+            }
+        } else {
+            throw new BusinessException(ResultCodes.FILE_NOT_EXISIST);
+        }
+    }
+}
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 d36b43c..e7741f2 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
@@ -193,7 +193,7 @@
         List<ElementTree> returnTree = new ArrayList<>();
         List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
         for (Map<String, Object> map : list) {
-            if(map.get("value") == parentId){ //一级要素,MenuType2
+            if(map.get("value").equals(parentId)){ //一级要素
                 ElementTree elementTree=new ElementTree();
                 elementTree.setType(Integer.valueOf(map.get("type").toString()));
                 elementTree.setLabel(map.get("label").toString());
diff --git a/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java
index 311197d..ff755c1 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/InspectionHiddenDangerServiceImpl.java
@@ -4,17 +4,15 @@
 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.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.AttachmentInfoService;
 import com.gk.hotwork.Service.InspectionExpertService;
 import com.gk.hotwork.Service.InspectionHiddenDangerService;
 import org.apache.commons.collections4.CollectionUtils;
@@ -41,6 +39,9 @@
     @Autowired
     private InspectionHiddenDangerMapper inspectionHiddenDangerMapper;
 
+    @Autowired
+    private AttachmentInfoService attachmentInfoService;
+
     /**
      * 修改
      * @param inspectionHiddenDanger
@@ -49,9 +50,26 @@
     @Override
     public void mod(InspectionHiddenDanger inspectionHiddenDanger, UserInfo userInfo) {
         modrequiredVerification(inspectionHiddenDanger);
+
+        StringBuffer stringBuffer = new StringBuffer();
+        //附件
+        if(CollectionUtils.isNotEmpty(inspectionHiddenDanger.getAttachmentList())){
+            for (AttachmentInfo attachmentInfo : inspectionHiddenDanger.getAttachmentList()) {
+                attachmentInfo.setBusinessId(inspectionHiddenDanger.getId());
+                stringBuffer.append(attachmentInfo.getId().toString()).append(",");
+            }
+            stringBuffer = stringBuffer.deleteCharAt(stringBuffer.length()-1);
+        }
+
         inspectionHiddenDanger.setUpdateTime(new Date());
         inspectionHiddenDanger.setUpdateBy(userInfo.getRealname());
+        inspectionHiddenDanger.setUrl(stringBuffer.toString());
         inspectionHiddenDangerMapper.updateById(inspectionHiddenDanger);
+        //更新附件
+        if(CollectionUtils.isNotEmpty(inspectionHiddenDanger.getAttachmentList())){
+            attachmentInfoService.updateBusinessIdBatch(inspectionHiddenDanger.getAttachmentList());
+
+        }
     }
 
     /**
@@ -163,7 +181,6 @@
         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/SafetySelfInspectionImpl.java b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java
index b8e40f0..eeab821 100644
--- a/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java
+++ b/src/main/java/com/gk/hotwork/Service/ServiceImpl/SafetySelfInspectionImpl.java
@@ -53,9 +53,11 @@
     private InspectionExpertService expertService;
     @Autowired
     private InspectionHiddenDangerService dangerService;
+    @Autowired
+    private AttachmentInfoService attachmentInfoService;
 
     /**
-     * @Description: 分页
+     * @Description: 自查分页
      */
     @Override
     public IPage<SafetySelfInspection> selectPage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user) {
@@ -72,7 +74,7 @@
             filter.put("city",user.getCity());
             filter.put("area",user.getCounty());
         }
-        filter.put("flag",0);
+        filter.put("flag",(byte)2);
 
         IPage<SafetySelfInspection> res = safetySelfInspectionMapper.selectPages(page, filter);
         List<SafetySelfInspection> records = res.getRecords();
@@ -97,7 +99,7 @@
     }
 
     /**
-     * @Description: 分页
+     * @Description: 监管检查分页
      */
     @Override
     public IPage<SafetySelfInspection> selectSupervisePage(Page<SafetySelfInspection> page, Map<String, Object> filter, UserInfo user) {
@@ -114,7 +116,7 @@
             filter.put("city",user.getCity());
             filter.put("area",user.getCounty());
         }
-        filter.put("flag",1);
+        filter.put("flag",(byte)1);
 
         IPage<SafetySelfInspection> res = safetySelfInspectionMapper.selectPages(page, filter);
         List<SafetySelfInspection> records = res.getRecords();
@@ -137,119 +139,7 @@
         }
         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;
@@ -283,7 +173,7 @@
         Date date = new Date();
         String username = user.getRealname();
         param.setValidFlag(Boolean.TRUE);
-        param.setFlag((byte) 0);
+        param.setFlag((byte) 2);
         param.setUpdateBy(username);
         param.setCreateBy(username);
         param.setUpdateTime(date);
@@ -521,25 +411,23 @@
         BeanUtils.copyProperties(safetySelfInspection,safetySelfInspectionRespDTO);
         //获取所有检查项
         List<SafetySelfInspectionItem> itemList= safetySelfInspectionItemMapper.getDetailBySafetySelfInspectionId(id,unqualified);
-        //获取关联要素
-        List<SafetyInspectionElementA> inspectionElementAList = safetyInspectionElementAService.getBySafetySelfInspectionId(id);
+        //获取要素树
+        List<ElementTree> elementTreeList = elementManagementService.getMenuType1Tree();
 
         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);
+        if (CollectionUtils.isNotEmpty(elementTreeList)) {
+            for (ElementTree elementA : elementTreeList) {
+
+                List<SafetySelfInspectionItem> selectElementList = itemList.stream().filter(item -> item.getElementA().equals(elementA.getValue())).collect(Collectors.toList());
+                if (CollectionUtils.isNotEmpty(selectElementList)) {
                     SafetySelfInspectionElementRespDTO elementARespDTO = new SafetySelfInspectionElementRespDTO();
-                    elementARespDTO.setElementId(otree.getValue());
-                    elementARespDTO.setElementName(otree.getLabel());
-                    elementARespDTO.setType(otree.getType());
+                    elementARespDTO.setElementId(elementA.getValue());
+                    elementARespDTO.setElementName(elementA.getLabel());
+                    elementARespDTO.setType(elementA.getType());
 
                     List<SafetySelfInspectionElementRespDTO> brespDTOList = new ArrayList<>();
                     //二级要素
-                    List<ElementTree> elementBList = otree.getChildren();
+                    List<ElementTree> elementBList = elementA.getChildren();
                     if(CollectionUtils.isNotEmpty(elementBList)){
                         for (ElementTree stree : elementBList) {
                             SafetySelfInspectionElementRespDTO elementBRespDTO = new SafetySelfInspectionElementRespDTO();
@@ -669,6 +557,7 @@
         SafetySelfInspectionItem safetySelfInspectionItem = safetySelfInspectionItemMapper.getDetailById(id);
         List<SafetySelfInspectionItemDeduction> selfDeductionList = safetySelfInspectionItemDeductionMapper.getBySafetySelfInspectionItemId(safetySelfInspectionItem.getId());
         List<InspectionHiddenDanger> inspectionHiddenDangerList = dangerService.getBySafetySelfInspectionItemId(id);
+        List<AttachmentInfo> byBusinessId = attachmentInfoService.findByBusinessId(id);
 
         if (CollectionUtils.isNotEmpty(selfDeductionList)){
             safetySelfInspectionItem.setSelfDeductionList(selfDeductionList);
@@ -689,6 +578,20 @@
                 safetySelfInspectionItem.setSelfDeductionList(new ArrayList<>());
             }
         }
+        for (InspectionHiddenDanger inspectionHiddenDanger : inspectionHiddenDangerList) {
+            if(StringUtils.isNotBlank(inspectionHiddenDanger.getUrl())){
+                List<Long> attachmentIds = new ArrayList<>();
+                String[] split = inspectionHiddenDanger.getUrl().split(",");
+                for (String s : split) {
+                    attachmentIds.add(Long.valueOf(s));
+                }
+
+                List<AttachmentInfo> dangerAttachList = attachmentInfoService.findByIds(attachmentIds);
+                inspectionHiddenDanger.setAttachmentList(dangerAttachList);
+            }
+
+        }
+        safetySelfInspectionItem.setAttachmentList(byBusinessId);
         safetySelfInspectionItem.setDangerList(inspectionHiddenDangerList);
         return safetySelfInspectionItem;
     }
@@ -705,6 +608,15 @@
         param.setUpdateTime(date);
         param.setUpdateBy(username);
         safetySelfInspectionItemMapper.updateById(param);
+        //附件
+        List<AttachmentInfo> attachmentInfoList = new ArrayList<>();
+        if(CollectionUtils.isNotEmpty(param.getAttachmentList())){
+            for (AttachmentInfo attachmentInfo : param.getAttachmentList()) {
+                attachmentInfo.setBusinessId(param.getId());
+                attachmentInfoList.add(attachmentInfo);
+            }
+        }
+
         if (param.getSafetyInspectionItemResult()==0 || param.getSafetyInspectionItemResult() == 2){
             //否决 合格--删除扣分记录
             safetySelfInspectionItemDeductionMapper.delBySafetySelfInspectionItemId(param.getId(),username,date);
@@ -747,6 +659,15 @@
                     dangerService.delByIds(idList);
                 }
                 for (InspectionHiddenDanger inspectionHiddenDanger : param.getDangerList()) {
+                    StringBuffer stringBuffer = new StringBuffer();
+                    //附件
+                    if(CollectionUtils.isNotEmpty(inspectionHiddenDanger.getAttachmentList())){
+                        for (AttachmentInfo attachmentInfo : inspectionHiddenDanger.getAttachmentList()) {
+                            stringBuffer.append(attachmentInfo.getId().toString()).append(",");
+                        }
+                        stringBuffer = stringBuffer.deleteCharAt(stringBuffer.length()-1);
+                    }
+
                     if(inspectionHiddenDanger.getId() == null){
                         inspectionHiddenDanger.setCreateBy(user.getRealname());
                         inspectionHiddenDanger.setCreateTime(new Date());
@@ -756,14 +677,35 @@
                         inspectionHiddenDanger.setValidFlag(true);
                         inspectionHiddenDanger.setSelfInspectionId(param.getSafetySelfInspectionId());
                         inspectionHiddenDanger.setSelfInspectionItemId(param.getId());
+                        inspectionHiddenDanger.setUrl(stringBuffer.toString());
                         dangerService.save(inspectionHiddenDanger);
+                        //附件
+                        if(StringUtils.isNotBlank(inspectionHiddenDanger.getUrl())){
+                            for (AttachmentInfo attachmentInfo : inspectionHiddenDanger.getAttachmentList()) {
+                                attachmentInfo.setBusinessId(inspectionHiddenDanger.getId());
+                                attachmentInfoList.add(attachmentInfo);
+                            }
+                        }
                     }else {
                         inspectionHiddenDanger.setUpdateBy(user.getRealname());
                         inspectionHiddenDanger.setUpdateTime(new Date());
+                        inspectionHiddenDanger.setUrl(stringBuffer.toString());
                         dangerService.updateById(inspectionHiddenDanger);
+                        //附件
+                        if(CollectionUtils.isNotEmpty(inspectionHiddenDanger.getAttachmentList())){
+                            for (AttachmentInfo attachmentInfo : inspectionHiddenDanger.getAttachmentList()) {
+                                attachmentInfo.setBusinessId(inspectionHiddenDanger.getId());
+                                attachmentInfoList.add(attachmentInfo);
+                            }
+                        }
                     }
                 }
             }
+
+        }
+        //附件信息更新
+        if(CollectionUtils.isNotEmpty(attachmentInfoList)){
+            attachmentInfoService.updateBusinessIdBatch(attachmentInfoList);
 
         }
     }
@@ -844,13 +786,7 @@
         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/resources/application-dev.yml b/src/main/resources/application-dev.yml
index e815830..0d5847e 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -35,63 +35,63 @@
 
 
 
-host: http://localhost:8006
+host: http://localhost:8016
 
 filePath: d:/uploads/
-fileurl: http://localhost:8006/upload/
+fileurl: http://localhost:8016/upload/
 socketport: 504
 
 sqlPath: /home/dbback/
-sqlurl: http://nmy.sinanoaq.cn:8006/dbback/
+sqlurl: http://nmy.sinanoaq.cn:8016/dbback/
 
 enterprisePath: /home/uploads/enterprise/
-enterpriseUrl: http://nmy.sinanoaq.cn:8006/upload/enterprise/
+enterpriseUrl: http://nmy.sinanoaq.cn:8016/upload/enterprise/
 enterprise: enterprise/
 
 transportCertificatePath: /home/uploads/transportCertificate/
-transportCertificateUrl: http://nmy.sinanoaq.cn:8006/upload/transportCertificate/
+transportCertificateUrl: http://nmy.sinanoaq.cn:8016/upload/transportCertificate/
 transportCertificate: transportCertificate/
 
 hiddenDangerPath: /home/uploads/hiddenDanger/
-hiddenDangerUrl: http://nmy.sinanoaq.cn:8006/upload/hiddenDanger/
+hiddenDangerUrl: http://nmy.sinanoaq.cn:8016/upload/hiddenDanger/
 hiddenDanger: hiddenDanger/
 
 standardPath: /home/uploads/standard/
-standardUrl: http://nmy.sinanoaq.cn:8006/upload/standard/
+standardUrl: http://nmy.sinanoaq.cn:8016/upload/standard/
 standard: standard/
 
 contractPath: /home/uploads/contract/
-contractUrl: http://nmy.sinanoaq.cn:8006/upload/contract/
+contractUrl: http://nmy.sinanoaq.cn:8016/upload/contract/
 contract: contract/
 
 patrolPath: /home/uploads/patrol/
-patrolUrl: http://nmy.sinanoaq.cn:8006/upload/patrol/
+patrolUrl: http://nmy.sinanoaq.cn:8016/upload/patrol/
 
 appPath: /home/uploads/app/
 app: app/
-appUrl: http://nmy.sinanoaq.cn:8006/upload/app/
+appUrl: http://nmy.sinanoaq.cn:8016/upload/app/
 
 productPath: /home/uploads/product/
-productUrl: http://nmy.sinanoaq.cn:8006/upload/product/
+productUrl: http://nmy.sinanoaq.cn:8016/upload/product/
 
 assessApplyPath: /home/uploads/assessApply/
-assessApplytUrl: http://nmy.sinanoaq.cn:8006/upload/assessApply/
+assessApplytUrl: http://nmy.sinanoaq.cn:8016/upload/assessApply/
 assessApply: assessApply/
 
 workCertPath: /home/uploads/workCert/
-workCertUrl: http://nmy.sinanoaq.cn:8006/upload/workCert/
+workCertUrl: http://nmy.sinanoaq.cn:8016/upload/workCert/
 workCert: workCert/
 
-nanowebUrl: http://nmy.sinanoaq.cn:8006/nanoweb/api/register
+nanowebUrl: http://nmy.sinanoaq.cn:8016/nanoweb/api/register
 nanowebEnable: true
 
 taskPath: d:/uploads/task/
 taskPathPrefix: d:/uploads/
-taskUrl: http://localhost:8006/upload/task/
+taskUrl: http://localhost:8016/upload/task/
 task: task/
 
 emergencyPlanPath:  /home/uploads/emergencyPlan/
-emergencyPlanUrl: http://localhost:8006/upload/emergencyPlan/
+emergencyPlanUrl: http://localhost:8016/upload/emergencyPlan/
 emergencyPlan : emergencyPlan/
 
 safecheckExecImagePath : /home/uploads/safecheck/
@@ -115,3 +115,18 @@
       name: ali
       key:
       url:
+#windous测试
+file:
+  path:
+    #基础路径
+    dcPath: E:\file\gkhy\test\
+    urlRootPath: /uploadfile/
+    module:
+      #用户模块
+      accountPath: /account/user/
+      #排查模块
+      checkPath: /check/
+
+# swagger生产环境中禁止显示
+swagger:
+  show: false
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 31290d4..1879bb0 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -17,7 +17,7 @@
 
   #redis
   redis:
-    database: 0
+    database: 14
     host: 127.0.0.1
     port: 6379
     password: akj78avauba789a
@@ -33,63 +33,63 @@
 #  enabled: true
   enabled: false
 
-host: http://localhost:8006/zhongtai
+host: http://localhost:8016
 
 filePath: /home/uploads/
-fileurl: http://nmy.sinanoaq.cn:8006/upload/
+fileurl: http://nmy.sinanoaq.cn:8016/upload/
 socketport: 504
 
 sqlPath: /home/dbback/
-sqlurl: http://nmy.sinanoaq.cn:8006/dbback/
+sqlurl: http://nmy.sinanoaq.cn:8016/dbback/
 
 enterprisePath: /home/uploads/enterprise/
-enterpriseUrl: http://nmy.sinanoaq.cn:8006/upload/enterprise/
+enterpriseUrl: http://nmy.sinanoaq.cn:8016/upload/enterprise/
 enterprise: enterprise/
 
 transportCertificatePath: /home/uploads/transportCertificate/
-transportCertificateUrl: http://nmy.sinanoaq.cn:8006/upload/transportCertificate/
+transportCertificateUrl: http://nmy.sinanoaq.cn:8016/upload/transportCertificate/
 transportCertificate: transportCertificate/
 
 hiddenDangerPath: /home/uploads/hiddenDanger/
-hiddenDangerUrl: http://nmy.sinanoaq.cn:8006/upload/hiddenDanger/
+hiddenDangerUrl: http://nmy.sinanoaq.cn:8016/upload/hiddenDanger/
 hiddenDanger: hiddenDanger/
 
 standardPath: /home/uploads/standard/
-standardUrl: http://nmy.sinanoaq.cn:8006/upload/standard/
+standardUrl: http://nmy.sinanoaq.cn:8016/upload/standard/
 standard: standard/
 
 contractPath: /home/uploads/contract/
-contractUrl: http://nmy.sinanoaq.cn:8006/upload/contract/
+contractUrl: http://nmy.sinanoaq.cn:8016/upload/contract/
 contract: contract/
 
 patrolPath: /home/uploads/patrol/
-patrolUrl: http://nmy.sinanoaq.cn:8006/upload/patrol/
+patrolUrl: http://nmy.sinanoaq.cn:8016/upload/patrol/
 
 appPath: /home/uploads/app/
 app: app/
-appUrl: http://nmy.sinanoaq.cn:8006/upload/app/
+appUrl: http://nmy.sinanoaq.cn:8016/upload/app/
 
 productPath: /home/uploads/product/
-productUrl: http://nmy.sinanoaq.cn:8006/upload/product/
+productUrl: http://nmy.sinanoaq.cn:8016/upload/product/
 
 assessApplyPath: /home/uploads/assessApply/
-assessApplytUrl: http://nmy.sinanoaq.cn:8006/upload/assessApply/
+assessApplytUrl: http://nmy.sinanoaq.cn:8016/upload/assessApply/
 assessApply: assessApply/
 
 workCertPath: /home/uploads/workCert/
-workCertUrl: http://nmy.sinanoaq.cn:8006/upload/workCert/
+workCertUrl: http://nmy.sinanoaq.cn:8016/upload/workCert/
 workCert: workCert/
 
-nanowebUrl: http://nmy.sinanoaq.cn:8006/nanoweb/api/register
+nanowebUrl: http://nmy.sinanoaq.cn:8016/nanoweb/api/register
 nanowebEnable: true
 
 taskPath: /home/uploads/task/
 taskPathPrefix: /home/uploads/
-taskUrl: http://nmy.sinanoaq.cn:8006/upload/task/
+taskUrl: http://nmy.sinanoaq.cn:8016/upload/task/
 task: task/
 
 emergencyPlanPath:  /home/uploads/emergencyPlan/
-emergencyPlanUrl: http://localhost:8006/upload/emergencyPlan/
+emergencyPlanUrl: http://localhost:8016/upload/emergencyPlan/
 emergencyPlan : emergencyPlan/
 
 safecheckExecImagePath : /home/uploads/safecheck/
@@ -119,3 +119,16 @@
       key:
       url:
 
+file:
+  path:
+    #基础路径
+    dcPath: /home/upload/hazardInvestigation/
+    urlRootPath: /uploadfile/
+    module:
+      #用户模块
+      accountPath: /account/user/
+      #排查模块
+      checkPath: /check/
+# swagger生产环境中禁止显示
+swagger:
+  show: false
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 428a5d4..b70fc9d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,12 +1,10 @@
-# swagger生产环境中禁止显示
-swagger: 
-  show: false
+
 # mysql 多数据源
 spring:
   application:
   # 环境 dev|prod|online
   profiles:
-    active: prod
+    active: dev
 #    active: prod
 #    active: test
 #    active: online

--
Gitblit v1.9.2