瀏覽代碼

徐明浩

徐明浩 3 年之前
父節點
當前提交
32c0fa6dcb
共有 36 個文件被更改,包括 2841 次插入840 次删除
  1. 123 0
      master/src/main/java/com/ruoyi/project/configuration/controller/TMatterController.java
  2. 91 0
      master/src/main/java/com/ruoyi/project/configuration/controller/TMatterFeatureController.java
  3. 98 0
      master/src/main/java/com/ruoyi/project/configuration/controller/TMatterProtectController.java
  4. 19 19
      master/src/main/java/com/ruoyi/project/configuration/domain/TMatter.java
  5. 66 0
      master/src/main/java/com/ruoyi/project/configuration/domain/TMatterFeature.java
  6. 47 9
      master/src/main/java/com/ruoyi/project/configuration/domain/TMatterProtect.java
  7. 17 17
      master/src/main/java/com/ruoyi/project/configuration/mapper/TMatterFeatureMapper.java
  8. 63 0
      master/src/main/java/com/ruoyi/project/configuration/mapper/TMatterMapper.java
  9. 17 17
      master/src/main/java/com/ruoyi/project/configuration/mapper/TMatterProtectMapper.java
  10. 64 0
      master/src/main/java/com/ruoyi/project/configuration/service/ITMatterFeatureService.java
  11. 64 0
      master/src/main/java/com/ruoyi/project/configuration/service/ITMatterProtectService.java
  12. 61 0
      master/src/main/java/com/ruoyi/project/configuration/service/ITMatterService.java
  13. 8 14
      master/src/main/java/com/ruoyi/project/configuration/service/impl/TDeviceServiceImpl.java
  14. 22 23
      master/src/main/java/com/ruoyi/project/configuration/service/impl/TMatterFeatureServiceImpl.java
  15. 23 22
      master/src/main/java/com/ruoyi/project/configuration/service/impl/TMatterProtectServiceImpl.java
  16. 88 0
      master/src/main/java/com/ruoyi/project/configuration/service/impl/TMatterServiceImpl.java
  17. 0 57
      master/src/main/java/com/ruoyi/project/ehs/controller/TMatterController.java
  18. 0 65
      master/src/main/java/com/ruoyi/project/ehs/domain/TMatterFeature.java
  19. 0 64
      master/src/main/java/com/ruoyi/project/ehs/mapper/TMatterMapper.java
  20. 0 64
      master/src/main/java/com/ruoyi/project/ehs/service/ITMatterFeatureService.java
  21. 0 64
      master/src/main/java/com/ruoyi/project/ehs/service/ITMatterProtectService.java
  22. 0 54
      master/src/main/java/com/ruoyi/project/ehs/service/ITMatterService.java
  23. 0 76
      master/src/main/java/com/ruoyi/project/ehs/service/impl/TMatterServiceImpl.java
  24. 161 158
      master/src/main/java/com/ruoyi/project/ticket/domain/THazardWorkPermit.java
  25. 0 0
      master/src/main/resources/mybatis/configuration/TDeviceMapper.xml
  26. 2 2
      master/src/main/resources/mybatis/configuration/TMatterFeatureMapper.xml
  27. 2 2
      master/src/main/resources/mybatis/configuration/TMatterMapper.xml
  28. 4 5
      master/src/main/resources/mybatis/configuration/TMatterProtectMapper.xml
  29. 53 0
      ui/src/api/configuration/feature.js
  30. 53 0
      ui/src/api/configuration/matter.js
  31. 53 0
      ui/src/api/configuration/protect.js
  32. 1 1
      ui/src/api/ehs/throughcleanbcc.js
  33. 397 0
      ui/src/views/configuration/feature/index.vue
  34. 526 0
      ui/src/views/configuration/matter/index.vue
  35. 432 0
      ui/src/views/configuration/protect/index.vue
  36. 286 107
      ui/src/views/invoicing/hazardwork/index.vue

+ 123 - 0
master/src/main/java/com/ruoyi/project/configuration/controller/TMatterController.java

@@ -0,0 +1,123 @@
+package com.ruoyi.project.configuration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.project.configuration.domain.TMatter;
+import com.ruoyi.project.configuration.domain.TMatterProtect;
+import com.ruoyi.project.configuration.service.ITMatterFeatureService;
+import com.ruoyi.project.configuration.service.ITMatterProtectService;
+import com.ruoyi.project.configuration.service.ITMatterService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 危害物质数据关联Controller
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+@RestController
+@RequestMapping("/configuration/matter")
+public class TMatterController extends BaseController {
+
+    @Autowired
+    private ITMatterService tMatterService;
+
+    @Autowired
+    private ITMatterFeatureService itMatterFeatureService;
+
+    @Autowired
+    private ITMatterProtectService itMatterProtectService;
+
+    /**
+     * 获取所有的危害物料
+     *
+     * @return
+     */
+    @GetMapping("/listMatters")
+    public AjaxResult list() {
+        List<TMatter> tMatters = this.tMatterService.selectTMatterList(new TMatter());
+        for (TMatter tMatter : tMatters) {
+            //获取危害分类
+            String matterFeatures = tMatter.getMatterFeatures();
+            String[] split = matterFeatures.split(",");
+            List<String> matterFeatureList = this.itMatterFeatureService.queryByIds(split);
+            tMatter.setMatterFeatureList(matterFeatureList);
+            //获取危害防护
+            String matterProtects = tMatter.getMatterProtects();
+            String[] protectIds = matterProtects.split(",");
+            List<TMatterProtect> tMatterProtects = this.itMatterProtectService.queryByIds(protectIds);
+            tMatter.setProtects(tMatterProtects);
+        }
+        return AjaxResult.success(tMatters);
+    }
+
+    /**
+     * 查询危害物质数据关联列表
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:matter:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TMatter tMatter) {
+        startPage();
+        List<TMatter> list = tMatterService.selectTMatterList(tMatter);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出危害物质数据关联列表
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:matter:export')")
+    @Log(title = "危害物质数据关联", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TMatter tMatter) {
+        List<TMatter> list = tMatterService.selectTMatterList(tMatter);
+        ExcelUtil<TMatter> util = new ExcelUtil<TMatter>(TMatter.class);
+        return util.exportExcel(list, "matter");
+    }
+
+    /**
+     * 获取危害物质数据关联详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:matter:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(tMatterService.selectTMatterById(id));
+    }
+
+    /**
+     * 新增危害物质数据关联
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:matter:add')")
+    @Log(title = "危害物质数据关联", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TMatter tMatter) {
+        return toAjax(tMatterService.insertTMatter(tMatter));
+    }
+
+    /**
+     * 修改危害物质数据关联
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:matter:edit')")
+    @Log(title = "危害物质数据关联", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TMatter tMatter) {
+        return toAjax(tMatterService.updateTMatter(tMatter));
+    }
+
+    /**
+     * 删除危害物质数据关联
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:matter:remove')")
+    @Log(title = "危害物质数据关联", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(tMatterService.deleteTMatterByIds(ids));
+    }
+}

+ 91 - 0
master/src/main/java/com/ruoyi/project/configuration/controller/TMatterFeatureController.java

@@ -0,0 +1,91 @@
+package com.ruoyi.project.configuration.controller;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.project.configuration.domain.TMatterFeature;
+import com.ruoyi.project.configuration.service.ITMatterFeatureService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 危害物质-危害性质Controller
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+@RestController
+@RequestMapping("/configuration/feature")
+public class TMatterFeatureController extends BaseController {
+
+    @Autowired
+    private ITMatterFeatureService tMatterFeatureService;
+
+    /**
+     * 查询危害物质-危害性质列表
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:feature:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TMatterFeature tMatterFeature) {
+        startPage();
+        List<TMatterFeature> list = tMatterFeatureService.selectTMatterFeatureList(tMatterFeature);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出危害物质-危害性质列表
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:feature:export')")
+    @Log(title = "危害物质-危害性质", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TMatterFeature tMatterFeature) {
+        List<TMatterFeature> list = tMatterFeatureService.selectTMatterFeatureList(tMatterFeature);
+        ExcelUtil<TMatterFeature> util = new ExcelUtil<TMatterFeature>(TMatterFeature.class);
+        return util.exportExcel(list, "feature");
+    }
+
+    /**
+     * 获取危害物质-危害性质详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:feature:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(tMatterFeatureService.selectTMatterFeatureById(id));
+    }
+
+    /**
+     * 新增危害物质-危害性质
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:feature:add')")
+    @Log(title = "危害物质-危害性质", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TMatterFeature tMatterFeature) {
+        return toAjax(tMatterFeatureService.insertTMatterFeature(tMatterFeature));
+    }
+
+    /**
+     * 修改危害物质-危害性质
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:feature:edit')")
+    @Log(title = "危害物质-危害性质", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TMatterFeature tMatterFeature) {
+        return toAjax(tMatterFeatureService.updateTMatterFeature(tMatterFeature));
+    }
+
+    /**
+     * 删除危害物质-危害性质
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:feature:remove')")
+    @Log(title = "危害物质-危害性质", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(tMatterFeatureService.deleteTMatterFeatureByIds(ids));
+    }
+}

+ 98 - 0
master/src/main/java/com/ruoyi/project/configuration/controller/TMatterProtectController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.project.configuration.controller;
+
+import java.util.List;
+
+import com.ruoyi.project.configuration.domain.TMatterProtect;
+import com.ruoyi.project.configuration.service.ITMatterProtectService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.page.TableDataInfo;
+
+/**
+ * 危害物质-防护用品Controller
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+@RestController
+@RequestMapping("/configuration/protect")
+public class TMatterProtectController extends BaseController {
+
+    @Autowired
+    private ITMatterProtectService tMatterProtectService;
+
+    /**
+     * 查询危害物质-防护用品列表
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:protect:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TMatterProtect tMatterProtect) {
+        startPage();
+        List<TMatterProtect> list = tMatterProtectService.selectTMatterProtectList(tMatterProtect);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出危害物质-防护用品列表
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:protect:export')")
+    @Log(title = "危害物质-防护用品", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TMatterProtect tMatterProtect) {
+        List<TMatterProtect> list = tMatterProtectService.selectTMatterProtectList(tMatterProtect);
+        ExcelUtil<TMatterProtect> util = new ExcelUtil<TMatterProtect>(TMatterProtect.class);
+        return util.exportExcel(list, "protect");
+    }
+
+    /**
+     * 获取危害物质-防护用品详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:protect:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(tMatterProtectService.selectTMatterProtectById(id));
+    }
+
+    /**
+     * 新增危害物质-防护用品
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:protect:add')")
+    @Log(title = "危害物质-防护用品", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TMatterProtect tMatterProtect) {
+        return toAjax(tMatterProtectService.insertTMatterProtect(tMatterProtect));
+    }
+
+    /**
+     * 修改危害物质-防护用品
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:protect:edit')")
+    @Log(title = "危害物质-防护用品", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TMatterProtect tMatterProtect) {
+        return toAjax(tMatterProtectService.updateTMatterProtect(tMatterProtect));
+    }
+
+    /**
+     * 删除危害物质-防护用品
+     */
+    @PreAuthorize("@ss.hasPermi('configuration:protect:remove')")
+    @Log(title = "危害物质-防护用品", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(tMatterProtectService.deleteTMatterProtectByIds(ids));
+    }
+}

+ 19 - 19
master/src/main/java/com/ruoyi/project/ehs/domain/TMatter.java → master/src/main/java/com/ruoyi/project/configuration/domain/TMatter.java

@@ -1,4 +1,7 @@
-package com.ruoyi.project.ehs.domain;
+package com.ruoyi.project.configuration.domain;
+
+import java.util.Date;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
@@ -6,14 +9,11 @@ import com.ruoyi.framework.web.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
-import java.util.Date;
-import java.util.List;
-
 /**
- * 工作票-危害物质对象 t_matter
+ * 危害物质数据关联对象 t_matter
  *
  * @author ruoyi
- * @date 2021-09-22
+ * @date 2021-12-28
  */
 public class TMatter extends BaseEntity {
     private static final long serialVersionUID = 1L;
@@ -23,18 +23,6 @@ public class TMatter extends BaseEntity {
      */
     private Long id;
 
-    private List<String> matterFeatureList;
-
-    private List<TMatterProtect> protects;
-
-    public List<TMatterProtect> getProtects() {
-        return protects;
-    }
-
-    public void setProtects(List<TMatterProtect> protects) {
-        this.protects = protects;
-    }
-
     /**
      * 删除标识
      */
@@ -83,7 +71,7 @@ public class TMatter extends BaseEntity {
      * 1:危险
      * 2:警告
      */
-    @Excel(name = "物料危险警告类型")
+    @Excel(name = "物料危险警告类型 1:危险 2:警告")
     private Long matterType;
 
     /**
@@ -98,6 +86,18 @@ public class TMatter extends BaseEntity {
     @Excel(name = "相关防护措施集合")
     private String matterProtects;
 
+    private List<String> matterFeatureList;
+
+    private List<TMatterProtect> protects;
+
+    public List<TMatterProtect> getProtects() {
+        return protects;
+    }
+
+    public void setProtects(List<TMatterProtect> protects) {
+        this.protects = protects;
+    }
+
     public List<String> getMatterFeatureList() {
         return matterFeatureList;
     }

+ 66 - 0
master/src/main/java/com/ruoyi/project/configuration/domain/TMatterFeature.java

@@ -0,0 +1,66 @@
+package com.ruoyi.project.configuration.domain;
+
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 危害物质-危害性质对象 t_matter_feature
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+public class TMatterFeature extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一标识ID
+     */
+    private Long id;
+
+    /**
+     * 物料特性名称
+     */
+    @Excel(name = "物料特性名称")
+    private String featureName;
+
+    /**
+     * 物料特性编码
+     */
+    @Excel(name = "物料特性编码")
+    private String featureCode;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setFeatureName(String featureName) {
+        this.featureName = featureName;
+    }
+
+    public String getFeatureName() {
+        return featureName;
+    }
+
+    public void setFeatureCode(String featureCode) {
+        this.featureCode = featureCode;
+    }
+
+    public String getFeatureCode() {
+        return featureCode;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("featureName", getFeatureName())
+                .append("featureCode", getFeatureCode())
+                .toString();
+    }
+}

+ 47 - 9
master/src/main/java/com/ruoyi/project/ehs/domain/TMatterProtect.java → master/src/main/java/com/ruoyi/project/configuration/domain/TMatterProtect.java

@@ -1,33 +1,53 @@
-package com.ruoyi.project.ehs.domain;
+package com.ruoyi.project.configuration.domain;
 
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.framework.web.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 /**
+ * 危害物质-防护用品对象 t_matter_protect
+ *
  * @author ruoyi
- * @date 2021-09-23
+ * @date 2021-12-28
  */
 public class TMatterProtect extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 唯一标识ID
+     */
     private Long id;
 
+    /**
+     * 防护用品中文名称
+     */
+    @Excel(name = "防护用品中文名称")
     private String conservatoryMeasureName;
 
+    /**
+     * 防护用品对应显示
+     */
+    @Excel(name = "防护用品对应显示")
     private String conservatoryMeasureCode;
 
+    /**
+     * 防护用品对应分项
+     */
+    @Excel(name = "防护用品对应分项")
     private String conservatoryMeasureNo;
 
+    /**
+     * 防护用品显示字段
+     */
+    @Excel(name = "防护用品显示字段")
     private String conservatoryMeasureContent;
 
-    public String getConservatoryMeasureContent() {
-        return conservatoryMeasureContent;
-    }
-
-    public void setConservatoryMeasureContent(String conservatoryMeasureContent) {
-        this.conservatoryMeasureContent = conservatoryMeasureContent;
-    }
+    /**
+     * 防护用品类型
+     */
+    @Excel(name = "防护用品类型")
+    private String protectType;
 
     public void setId(Long id) {
         this.id = id;
@@ -61,6 +81,22 @@ public class TMatterProtect extends BaseEntity {
         return conservatoryMeasureNo;
     }
 
+    public void setConservatoryMeasureContent(String conservatoryMeasureContent) {
+        this.conservatoryMeasureContent = conservatoryMeasureContent;
+    }
+
+    public String getConservatoryMeasureContent() {
+        return conservatoryMeasureContent;
+    }
+
+    public void setProtectType(String protectType) {
+        this.protectType = protectType;
+    }
+
+    public String getProtectType() {
+        return protectType;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
@@ -68,6 +104,8 @@ public class TMatterProtect extends BaseEntity {
                 .append("conservatoryMeasureName", getConservatoryMeasureName())
                 .append("conservatoryMeasureCode", getConservatoryMeasureCode())
                 .append("conservatoryMeasureNo", getConservatoryMeasureNo())
+                .append("conservatoryMeasureContent", getConservatoryMeasureContent())
+                .append("protectType", getProtectType())
                 .toString();
     }
 }

+ 17 - 17
master/src/main/java/com/ruoyi/project/ehs/mapper/TMatterFeatureMapper.java → master/src/main/java/com/ruoyi/project/configuration/mapper/TMatterFeatureMapper.java

@@ -1,63 +1,63 @@
-package com.ruoyi.project.ehs.mapper;
+package com.ruoyi.project.configuration.mapper;
 
 import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
-import com.ruoyi.project.ehs.domain.TMatterFeature;
+import com.ruoyi.project.configuration.domain.TMatterFeature;
 
 import java.util.List;
 
 /**
- * 危害物质关联危险类型Mapper接口
+ * 危害物质-危害性质Mapper接口
  *
  * @author ruoyi
- * @date 2021-09-22
+ * @date 2021-12-28
  */
 public interface TMatterFeatureMapper {
 
     public List<String> queryByIds(String[] ids);
 
     /**
-     * 查询危害物质关联危险类型
+     * 查询危害物质-危害性质
      *
-     * @param id 危害物质关联危险类型ID
-     * @return 危害物质关联危险类型
+     * @param id 危害物质-危害性质ID
+     * @return 危害物质-危害性质
      */
     public TMatterFeature selectTMatterFeatureById(Long id);
 
     /**
-     * 查询危害物质关联危险类型列表
+     * 查询危害物质-危害性质列表
      *
-     * @param tMatterFeature 危害物质关联危险类型
-     * @return 危害物质关联危险类型集合
+     * @param tMatterFeature 危害物质-危害性质
+     * @return 危害物质-危害性质集合
      */
     @DataScope(deptAlias = "d")
     public List<TMatterFeature> selectTMatterFeatureList(TMatterFeature tMatterFeature);
 
     /**
-     * 新增危害物质关联危险类型
+     * 新增危害物质-危害性质
      *
-     * @param tMatterFeature 危害物质关联危险类型
+     * @param tMatterFeature 危害物质-危害性质
      * @return 结果
      */
     public int insertTMatterFeature(TMatterFeature tMatterFeature);
 
     /**
-     * 修改危害物质关联危险类型
+     * 修改危害物质-危害性质
      *
-     * @param tMatterFeature 危害物质关联危险类型
+     * @param tMatterFeature 危害物质-危害性质
      * @return 结果
      */
     public int updateTMatterFeature(TMatterFeature tMatterFeature);
 
     /**
-     * 删除危害物质关联危险类型
+     * 删除危害物质-危害性质
      *
-     * @param id 危害物质关联危险类型ID
+     * @param id 危害物质-危害性质ID
      * @return 结果
      */
     public int deleteTMatterFeatureById(Long id);
 
     /**
-     * 批量删除危害物质关联危险类型
+     * 批量删除危害物质-危害性质
      *
      * @param ids 需要删除的数据ID
      * @return 结果

+ 63 - 0
master/src/main/java/com/ruoyi/project/configuration/mapper/TMatterMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.project.configuration.mapper;
+
+import java.util.List;
+import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
+import com.ruoyi.project.configuration.domain.TMatter;
+
+/**
+ * 危害物质数据关联Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+public interface TMatterMapper
+{
+    /**
+     * 查询危害物质数据关联
+     *
+     * @param id 危害物质数据关联ID
+     * @return 危害物质数据关联
+     */
+    public TMatter selectTMatterById(Long id);
+
+    /**
+     * 查询危害物质数据关联列表
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 危害物质数据关联集合
+     */
+    @DataScope(deptAlias = "d")
+    public List<TMatter> selectTMatterList(TMatter tMatter);
+
+    /**
+     * 新增危害物质数据关联
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 结果
+     */
+    public int insertTMatter(TMatter tMatter);
+
+    /**
+     * 修改危害物质数据关联
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 结果
+     */
+    public int updateTMatter(TMatter tMatter);
+
+    /**
+     * 删除危害物质数据关联
+     *
+     * @param id 危害物质数据关联ID
+     * @return 结果
+     */
+    public int deleteTMatterById(Long id);
+
+    /**
+     * 批量删除危害物质数据关联
+     *
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTMatterByIds(Long[] ids);
+}

+ 17 - 17
master/src/main/java/com/ruoyi/project/ehs/mapper/TMatterProtectMapper.java → master/src/main/java/com/ruoyi/project/configuration/mapper/TMatterProtectMapper.java

@@ -1,63 +1,63 @@
-package com.ruoyi.project.ehs.mapper;
+package com.ruoyi.project.configuration.mapper;
 
 import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
-import com.ruoyi.project.ehs.domain.TMatterProtect;
+import com.ruoyi.project.configuration.domain.TMatterProtect;
 
 import java.util.List;
 
 /**
- * 【请填写功能名称】Mapper接口
+ * 危害物质-防护用品Mapper接口
  *
  * @author ruoyi
- * @date 2021-09-23
+ * @date 2021-12-28
  */
 public interface TMatterProtectMapper {
 
     public List<TMatterProtect> queryByIds(String[] ids);
 
     /**
-     * 查询【请填写功能名称】
+     * 查询危害物质-防护用品
      *
-     * @param id 【请填写功能名称】ID
-     * @return 【请填写功能名称】
+     * @param id 危害物质-防护用品ID
+     * @return 危害物质-防护用品
      */
     public TMatterProtect selectTMatterProtectById(Long id);
 
     /**
-     * 查询【请填写功能名称】列表
+     * 查询危害物质-防护用品列表
      *
-     * @param tMatterProtect 【请填写功能名称】
-     * @return 【请填写功能名称】集合
+     * @param tMatterProtect 危害物质-防护用品
+     * @return 危害物质-防护用品集合
      */
     @DataScope(deptAlias = "d")
     public List<TMatterProtect> selectTMatterProtectList(TMatterProtect tMatterProtect);
 
     /**
-     * 新增【请填写功能名称】
+     * 新增危害物质-防护用品
      *
-     * @param tMatterProtect 【请填写功能名称】
+     * @param tMatterProtect 危害物质-防护用品
      * @return 结果
      */
     public int insertTMatterProtect(TMatterProtect tMatterProtect);
 
     /**
-     * 修改【请填写功能名称】
+     * 修改危害物质-防护用品
      *
-     * @param tMatterProtect 【请填写功能名称】
+     * @param tMatterProtect 危害物质-防护用品
      * @return 结果
      */
     public int updateTMatterProtect(TMatterProtect tMatterProtect);
 
     /**
-     * 删除【请填写功能名称】
+     * 删除危害物质-防护用品
      *
-     * @param id 【请填写功能名称】ID
+     * @param id 危害物质-防护用品ID
      * @return 结果
      */
     public int deleteTMatterProtectById(Long id);
 
     /**
-     * 批量删除【请填写功能名称】
+     * 批量删除危害物质-防护用品
      *
      * @param ids 需要删除的数据ID
      * @return 结果

+ 64 - 0
master/src/main/java/com/ruoyi/project/configuration/service/ITMatterFeatureService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.project.configuration.service;
+
+import java.util.List;
+
+import com.ruoyi.project.configuration.domain.TMatterFeature;
+
+/**
+ * 危害物质-危害性质Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+public interface ITMatterFeatureService {
+
+    public List<String> queryByIds(String[] ids);
+
+    /**
+     * 查询危害物质-危害性质
+     *
+     * @param id 危害物质-危害性质ID
+     * @return 危害物质-危害性质
+     */
+    public TMatterFeature selectTMatterFeatureById(Long id);
+
+    /**
+     * 查询危害物质-危害性质列表
+     *
+     * @param tMatterFeature 危害物质-危害性质
+     * @return 危害物质-危害性质集合
+     */
+    public List<TMatterFeature> selectTMatterFeatureList(TMatterFeature tMatterFeature);
+
+    /**
+     * 新增危害物质-危害性质
+     *
+     * @param tMatterFeature 危害物质-危害性质
+     * @return 结果
+     */
+    public int insertTMatterFeature(TMatterFeature tMatterFeature);
+
+    /**
+     * 修改危害物质-危害性质
+     *
+     * @param tMatterFeature 危害物质-危害性质
+     * @return 结果
+     */
+    public int updateTMatterFeature(TMatterFeature tMatterFeature);
+
+    /**
+     * 批量删除危害物质-危害性质
+     *
+     * @param ids 需要删除的危害物质-危害性质ID
+     * @return 结果
+     */
+    public int deleteTMatterFeatureByIds(Long[] ids);
+
+    /**
+     * 删除危害物质-危害性质信息
+     *
+     * @param id 危害物质-危害性质ID
+     * @return 结果
+     */
+    public int deleteTMatterFeatureById(Long id);
+}

+ 64 - 0
master/src/main/java/com/ruoyi/project/configuration/service/ITMatterProtectService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.project.configuration.service;
+
+import com.ruoyi.project.configuration.domain.TMatterProtect;
+
+import java.util.List;
+
+/**
+ * 危害物质-防护用品Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+public interface ITMatterProtectService {
+
+    public List<TMatterProtect> queryByIds(String[] ids);
+
+    /**
+     * 查询危害物质-防护用品
+     *
+     * @param id 危害物质-防护用品ID
+     * @return 危害物质-防护用品
+     */
+    public TMatterProtect selectTMatterProtectById(Long id);
+
+    /**
+     * 查询危害物质-防护用品列表
+     *
+     * @param tMatterProtect 危害物质-防护用品
+     * @return 危害物质-防护用品集合
+     */
+    public List<TMatterProtect> selectTMatterProtectList(TMatterProtect tMatterProtect);
+
+    /**
+     * 新增危害物质-防护用品
+     *
+     * @param tMatterProtect 危害物质-防护用品
+     * @return 结果
+     */
+    public int insertTMatterProtect(TMatterProtect tMatterProtect);
+
+    /**
+     * 修改危害物质-防护用品
+     *
+     * @param tMatterProtect 危害物质-防护用品
+     * @return 结果
+     */
+    public int updateTMatterProtect(TMatterProtect tMatterProtect);
+
+    /**
+     * 批量删除危害物质-防护用品
+     *
+     * @param ids 需要删除的危害物质-防护用品ID
+     * @return 结果
+     */
+    public int deleteTMatterProtectByIds(Long[] ids);
+
+    /**
+     * 删除危害物质-防护用品信息
+     *
+     * @param id 危害物质-防护用品ID
+     * @return 结果
+     */
+    public int deleteTMatterProtectById(Long id);
+}

+ 61 - 0
master/src/main/java/com/ruoyi/project/configuration/service/ITMatterService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.project.configuration.service;
+
+import com.ruoyi.project.configuration.domain.TMatter;
+
+import java.util.List;
+
+/**
+ * 危害物质数据关联Service接口
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+public interface ITMatterService {
+    /**
+     * 查询危害物质数据关联
+     *
+     * @param id 危害物质数据关联ID
+     * @return 危害物质数据关联
+     */
+    public TMatter selectTMatterById(Long id);
+
+    /**
+     * 查询危害物质数据关联列表
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 危害物质数据关联集合
+     */
+    public List<TMatter> selectTMatterList(TMatter tMatter);
+
+    /**
+     * 新增危害物质数据关联
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 结果
+     */
+    public int insertTMatter(TMatter tMatter);
+
+    /**
+     * 修改危害物质数据关联
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 结果
+     */
+    public int updateTMatter(TMatter tMatter);
+
+    /**
+     * 批量删除危害物质数据关联
+     *
+     * @param ids 需要删除的危害物质数据关联ID
+     * @return 结果
+     */
+    public int deleteTMatterByIds(Long[] ids);
+
+    /**
+     * 删除危害物质数据关联信息
+     *
+     * @param id 危害物质数据关联ID
+     * @return 结果
+     */
+    public int deleteTMatterById(Long id);
+}

+ 8 - 14
master/src/main/java/com/ruoyi/project/configuration/service/impl/TDeviceServiceImpl.java

@@ -16,8 +16,8 @@ import javax.annotation.Resource;
  * @date 2021-12-23
  */
 @Service
-public class TDeviceServiceImpl implements ITDeviceService
-{
+public class TDeviceServiceImpl implements ITDeviceService {
+
     @Resource
     private TDeviceMapper tDeviceMapper;
 
@@ -28,8 +28,7 @@ public class TDeviceServiceImpl implements ITDeviceService
      * @return 设备管理
      */
     @Override
-    public TDevice selectTDeviceById(Long id)
-    {
+    public TDevice selectTDeviceById(Long id) {
         return tDeviceMapper.selectTDeviceById(id);
     }
 
@@ -40,8 +39,7 @@ public class TDeviceServiceImpl implements ITDeviceService
      * @return 设备管理
      */
     @Override
-    public List<TDevice> selectTDeviceList(TDevice tDevice)
-    {
+    public List<TDevice> selectTDeviceList(TDevice tDevice) {
         return tDeviceMapper.selectTDeviceList(tDevice);
     }
 
@@ -52,8 +50,7 @@ public class TDeviceServiceImpl implements ITDeviceService
      * @return 结果
      */
     @Override
-    public int insertTDevice(TDevice tDevice)
-    {
+    public int insertTDevice(TDevice tDevice) {
         return tDeviceMapper.insertTDevice(tDevice);
     }
 
@@ -64,8 +61,7 @@ public class TDeviceServiceImpl implements ITDeviceService
      * @return 结果
      */
     @Override
-    public int updateTDevice(TDevice tDevice)
-    {
+    public int updateTDevice(TDevice tDevice) {
         return tDeviceMapper.updateTDevice(tDevice);
     }
 
@@ -76,8 +72,7 @@ public class TDeviceServiceImpl implements ITDeviceService
      * @return 结果
      */
     @Override
-    public int deleteTDeviceByIds(Long[] ids)
-    {
+    public int deleteTDeviceByIds(Long[] ids) {
         return tDeviceMapper.deleteTDeviceByIds(ids);
     }
 
@@ -88,8 +83,7 @@ public class TDeviceServiceImpl implements ITDeviceService
      * @return 结果
      */
     @Override
-    public int deleteTDeviceById(Long id)
-    {
+    public int deleteTDeviceById(Long id) {
         return tDeviceMapper.deleteTDeviceById(id);
     }
 }

+ 22 - 23
master/src/main/java/com/ruoyi/project/ehs/service/impl/TMatterFeatureServiceImpl.java → master/src/main/java/com/ruoyi/project/configuration/service/impl/TMatterFeatureServiceImpl.java

@@ -1,36 +1,35 @@
-package com.ruoyi.project.ehs.service.impl;
+package com.ruoyi.project.configuration.service.impl;
 
-import com.ruoyi.project.ehs.domain.TMatterFeature;
-import com.ruoyi.project.ehs.mapper.TMatterFeatureMapper;
-import com.ruoyi.project.ehs.service.ITMatterFeatureService;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.ruoyi.project.configuration.domain.TMatterFeature;
+import com.ruoyi.project.configuration.mapper.TMatterFeatureMapper;
+import com.ruoyi.project.configuration.service.ITMatterFeatureService;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
- * 危害物质关联危险类型Service业务层处理
+ * 危害物质-危害性质Service业务层处理
  *
  * @author ruoyi
- * @date 2021-09-22
+ * @date 2021-12-28
  */
 @Service
 public class TMatterFeatureServiceImpl implements ITMatterFeatureService {
 
-    @Autowired
+    @Resource
     private TMatterFeatureMapper tMatterFeatureMapper;
 
-
     @Override
     public List<String> queryByIds(String[] ids) {
         return this.tMatterFeatureMapper.queryByIds(ids);
     }
 
     /**
-     * 查询危害物质关联危险类型
+     * 查询危害物质-危害性质
      *
-     * @param id 危害物质关联危险类型ID
-     * @return 危害物质关联危险类型
+     * @param id 危害物质-危害性质ID
+     * @return 危害物质-危害性质
      */
     @Override
     public TMatterFeature selectTMatterFeatureById(Long id) {
@@ -38,10 +37,10 @@ public class TMatterFeatureServiceImpl implements ITMatterFeatureService {
     }
 
     /**
-     * 查询危害物质关联危险类型列表
+     * 查询危害物质-危害性质列表
      *
-     * @param tMatterFeature 危害物质关联危险类型
-     * @return 危害物质关联危险类型
+     * @param tMatterFeature 危害物质-危害性质
+     * @return 危害物质-危害性质
      */
     @Override
     public List<TMatterFeature> selectTMatterFeatureList(TMatterFeature tMatterFeature) {
@@ -49,9 +48,9 @@ public class TMatterFeatureServiceImpl implements ITMatterFeatureService {
     }
 
     /**
-     * 新增危害物质关联危险类型
+     * 新增危害物质-危害性质
      *
-     * @param tMatterFeature 危害物质关联危险类型
+     * @param tMatterFeature 危害物质-危害性质
      * @return 结果
      */
     @Override
@@ -60,9 +59,9 @@ public class TMatterFeatureServiceImpl implements ITMatterFeatureService {
     }
 
     /**
-     * 修改危害物质关联危险类型
+     * 修改危害物质-危害性质
      *
-     * @param tMatterFeature 危害物质关联危险类型
+     * @param tMatterFeature 危害物质-危害性质
      * @return 结果
      */
     @Override
@@ -71,9 +70,9 @@ public class TMatterFeatureServiceImpl implements ITMatterFeatureService {
     }
 
     /**
-     * 批量删除危害物质关联危险类型
+     * 批量删除危害物质-危害性质
      *
-     * @param ids 需要删除的危害物质关联危险类型ID
+     * @param ids 需要删除的危害物质-危害性质ID
      * @return 结果
      */
     @Override
@@ -82,9 +81,9 @@ public class TMatterFeatureServiceImpl implements ITMatterFeatureService {
     }
 
     /**
-     * 删除危害物质关联危险类型信息
+     * 删除危害物质-危害性质信息
      *
-     * @param id 危害物质关联危险类型ID
+     * @param id 危害物质-危害性质ID
      * @return 结果
      */
     @Override

+ 23 - 22
master/src/main/java/com/ruoyi/project/ehs/service/impl/TMatterProtectServiceImpl.java → master/src/main/java/com/ruoyi/project/configuration/service/impl/TMatterProtectServiceImpl.java

@@ -1,22 +1,23 @@
-package com.ruoyi.project.ehs.service.impl;
+package com.ruoyi.project.configuration.service.impl;
 
-import com.ruoyi.project.ehs.domain.TMatterProtect;
-import com.ruoyi.project.ehs.mapper.TMatterProtectMapper;
-import com.ruoyi.project.ehs.service.ITMatterProtectService;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.ruoyi.project.configuration.domain.TMatterProtect;
+import com.ruoyi.project.configuration.mapper.TMatterProtectMapper;
+import com.ruoyi.project.configuration.service.ITMatterProtectService;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
- * 【请填写功能名称】Service业务层处理
+ * 危害物质-防护用品Service业务层处理
  *
  * @author ruoyi
- * @date 2021-09-23
+ * @date 2021-12-28
  */
 @Service
 public class TMatterProtectServiceImpl implements ITMatterProtectService {
-    @Autowired
+
+    @Resource
     private TMatterProtectMapper tMatterProtectMapper;
 
     @Override
@@ -25,10 +26,10 @@ public class TMatterProtectServiceImpl implements ITMatterProtectService {
     }
 
     /**
-     * 查询【请填写功能名称】
+     * 查询危害物质-防护用品
      *
-     * @param id 【请填写功能名称】ID
-     * @return 【请填写功能名称】
+     * @param id 危害物质-防护用品ID
+     * @return 危害物质-防护用品
      */
     @Override
     public TMatterProtect selectTMatterProtectById(Long id) {
@@ -36,10 +37,10 @@ public class TMatterProtectServiceImpl implements ITMatterProtectService {
     }
 
     /**
-     * 查询【请填写功能名称】列表
+     * 查询危害物质-防护用品列表
      *
-     * @param tMatterProtect 【请填写功能名称】
-     * @return 【请填写功能名称】
+     * @param tMatterProtect 危害物质-防护用品
+     * @return 危害物质-防护用品
      */
     @Override
     public List<TMatterProtect> selectTMatterProtectList(TMatterProtect tMatterProtect) {
@@ -47,9 +48,9 @@ public class TMatterProtectServiceImpl implements ITMatterProtectService {
     }
 
     /**
-     * 新增【请填写功能名称】
+     * 新增危害物质-防护用品
      *
-     * @param tMatterProtect 【请填写功能名称】
+     * @param tMatterProtect 危害物质-防护用品
      * @return 结果
      */
     @Override
@@ -58,9 +59,9 @@ public class TMatterProtectServiceImpl implements ITMatterProtectService {
     }
 
     /**
-     * 修改【请填写功能名称】
+     * 修改危害物质-防护用品
      *
-     * @param tMatterProtect 【请填写功能名称】
+     * @param tMatterProtect 危害物质-防护用品
      * @return 结果
      */
     @Override
@@ -69,9 +70,9 @@ public class TMatterProtectServiceImpl implements ITMatterProtectService {
     }
 
     /**
-     * 批量删除【请填写功能名称】
+     * 批量删除危害物质-防护用品
      *
-     * @param ids 需要删除的【请填写功能名称】ID
+     * @param ids 需要删除的危害物质-防护用品ID
      * @return 结果
      */
     @Override
@@ -80,9 +81,9 @@ public class TMatterProtectServiceImpl implements ITMatterProtectService {
     }
 
     /**
-     * 删除【请填写功能名称】信息
+     * 删除危害物质-防护用品信息
      *
-     * @param id 【请填写功能名称】ID
+     * @param id 危害物质-防护用品ID
      * @return 结果
      */
     @Override

+ 88 - 0
master/src/main/java/com/ruoyi/project/configuration/service/impl/TMatterServiceImpl.java

@@ -0,0 +1,88 @@
+package com.ruoyi.project.configuration.service.impl;
+
+import com.ruoyi.project.configuration.domain.TMatter;
+import com.ruoyi.project.configuration.mapper.TMatterMapper;
+import com.ruoyi.project.configuration.service.ITMatterService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 危害物质数据关联Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-12-28
+ */
+@Service
+public class TMatterServiceImpl implements ITMatterService {
+
+    @Resource
+    private TMatterMapper tMatterMapper;
+
+    /**
+     * 查询危害物质数据关联
+     *
+     * @param id 危害物质数据关联ID
+     * @return 危害物质数据关联
+     */
+    @Override
+    public TMatter selectTMatterById(Long id) {
+        return tMatterMapper.selectTMatterById(id);
+    }
+
+    /**
+     * 查询危害物质数据关联列表
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 危害物质数据关联
+     */
+    @Override
+    public List<TMatter> selectTMatterList(TMatter tMatter) {
+        return tMatterMapper.selectTMatterList(tMatter);
+    }
+
+    /**
+     * 新增危害物质数据关联
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 结果
+     */
+    @Override
+    public int insertTMatter(TMatter tMatter) {
+        return tMatterMapper.insertTMatter(tMatter);
+    }
+
+    /**
+     * 修改危害物质数据关联
+     *
+     * @param tMatter 危害物质数据关联
+     * @return 结果
+     */
+    @Override
+    public int updateTMatter(TMatter tMatter) {
+        return tMatterMapper.updateTMatter(tMatter);
+    }
+
+    /**
+     * 批量删除危害物质数据关联
+     *
+     * @param ids 需要删除的危害物质数据关联ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTMatterByIds(Long[] ids) {
+        return tMatterMapper.deleteTMatterByIds(ids);
+    }
+
+    /**
+     * 删除危害物质数据关联信息
+     *
+     * @param id 危害物质数据关联ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTMatterById(Long id) {
+        return tMatterMapper.deleteTMatterById(id);
+    }
+}

+ 0 - 57
master/src/main/java/com/ruoyi/project/ehs/controller/TMatterController.java

@@ -1,57 +0,0 @@
-package com.ruoyi.project.ehs.controller;
-
-import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.project.ehs.domain.TMatter;
-import com.ruoyi.project.ehs.domain.TMatterProtect;
-import com.ruoyi.project.ehs.service.ITMatterFeatureService;
-import com.ruoyi.project.ehs.service.ITMatterProtectService;
-import com.ruoyi.project.ehs.service.ITMatterService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-/**
- * 工作票-危害物质Controller
- *
- * @author ruoyi
- * @date 2021-09-22
- */
-@RestController
-@RequestMapping("/ehs/matter")
-public class TMatterController extends BaseController {
-    @Autowired
-    private ITMatterService tMatterService;
-
-    @Autowired
-    private ITMatterFeatureService itMatterFeatureService;
-
-    @Autowired
-    private ITMatterProtectService itMatterProtectService;
-
-    /**
-     * 获取所有的危害物料
-     *
-     * @return
-     */
-    @GetMapping("/listMatters")
-    public AjaxResult list() {
-        List<TMatter> tMatters = this.tMatterService.selectTMatterList(new TMatter());
-        for (TMatter tMatter : tMatters) {
-            //获取危害分类
-            String matterFeatures = tMatter.getMatterFeatures();
-            String[] split = matterFeatures.split(",");
-            List<String> matterFeatureList = this.itMatterFeatureService.queryByIds(split);
-            tMatter.setMatterFeatureList(matterFeatureList);
-            //获取危害防护
-            String matterProtects = tMatter.getMatterProtects();
-            String[] protectIds = matterProtects.split(",");
-            List<TMatterProtect> tMatterProtects = this.itMatterProtectService.queryByIds(protectIds);
-            tMatter.setProtects(tMatterProtects);
-        }
-        return AjaxResult.success(tMatters);
-    }
-}

+ 0 - 65
master/src/main/java/com/ruoyi/project/ehs/domain/TMatterFeature.java

@@ -1,65 +0,0 @@
-package com.ruoyi.project.ehs.domain;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import com.ruoyi.framework.web.domain.BaseEntity;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-/**
- * 危害物质关联危险类型对象 t_matter_feature
- *
- * @author ruoyi
- * @date 2021-09-22
- */
-public class TMatterFeature extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 唯一标识ID */
-    private Long id;
-
-    /** 物料特性名称 */
-    @Excel(name = "物料特性名称")
-    private String featureName;
-
-    /** 物料特性编码 */
-    @Excel(name = "物料特性编码")
-    private String featureCode;
-
-    public void setId(Long id)
-    {
-        this.id = id;
-    }
-
-    public Long getId()
-    {
-        return id;
-    }
-    public void setFeatureName(String featureName)
-    {
-        this.featureName = featureName;
-    }
-
-    public String getFeatureName()
-    {
-        return featureName;
-    }
-    public void setFeatureCode(String featureCode)
-    {
-        this.featureCode = featureCode;
-    }
-
-    public String getFeatureCode()
-    {
-        return featureCode;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("featureName", getFeatureName())
-            .append("featureCode", getFeatureCode())
-            .toString();
-    }
-}

+ 0 - 64
master/src/main/java/com/ruoyi/project/ehs/mapper/TMatterMapper.java

@@ -1,64 +0,0 @@
-package com.ruoyi.project.ehs.mapper;
-
-import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
-import com.ruoyi.project.ehs.domain.TMatter;
-
-import java.util.List;
-
-/**
- * 工作票-危害物质Mapper接口
- * 
- * @author ruoyi
- * @date 2021-09-22
- */
-public interface TMatterMapper 
-{
-    /**
-     * 查询工作票-危害物质
-     * 
-     * @param id 工作票-危害物质ID
-     * @return 工作票-危害物质
-     */
-    public TMatter selectTMatterById(Long id);
-
-    /**
-     * 查询工作票-危害物质列表
-     * 
-     * @param tMatter 工作票-危害物质
-     * @return 工作票-危害物质集合
-     */
-    @DataScope(deptAlias = "d")
-    public List<TMatter> selectTMatterList(TMatter tMatter);
-
-    /**
-     * 新增工作票-危害物质
-     * 
-     * @param tMatter 工作票-危害物质
-     * @return 结果
-     */
-    public int insertTMatter(TMatter tMatter);
-
-    /**
-     * 修改工作票-危害物质
-     * 
-     * @param tMatter 工作票-危害物质
-     * @return 结果
-     */
-    public int updateTMatter(TMatter tMatter);
-
-    /**
-     * 删除工作票-危害物质
-     * 
-     * @param id 工作票-危害物质ID
-     * @return 结果
-     */
-    public int deleteTMatterById(Long id);
-
-    /**
-     * 批量删除工作票-危害物质
-     * 
-     * @param ids 需要删除的数据ID
-     * @return 结果
-     */
-    public int deleteTMatterByIds(Long[] ids);
-}

+ 0 - 64
master/src/main/java/com/ruoyi/project/ehs/service/ITMatterFeatureService.java

@@ -1,64 +0,0 @@
-package com.ruoyi.project.ehs.service;
-
-import com.ruoyi.project.ehs.domain.TMatterFeature;
-
-import java.util.List;
-
-/**
- * 危害物质关联危险类型Service接口
- *
- * @author ruoyi
- * @date 2021-09-22
- */
-public interface ITMatterFeatureService {
-
-    public List<String> queryByIds(String[] ids);
-
-    /**
-     * 查询危害物质关联危险类型
-     *
-     * @param id 危害物质关联危险类型ID
-     * @return 危害物质关联危险类型
-     */
-    public TMatterFeature selectTMatterFeatureById(Long id);
-
-    /**
-     * 查询危害物质关联危险类型列表
-     *
-     * @param tMatterFeature 危害物质关联危险类型
-     * @return 危害物质关联危险类型集合
-     */
-    public List<TMatterFeature> selectTMatterFeatureList(TMatterFeature tMatterFeature);
-
-    /**
-     * 新增危害物质关联危险类型
-     *
-     * @param tMatterFeature 危害物质关联危险类型
-     * @return 结果
-     */
-    public int insertTMatterFeature(TMatterFeature tMatterFeature);
-
-    /**
-     * 修改危害物质关联危险类型
-     *
-     * @param tMatterFeature 危害物质关联危险类型
-     * @return 结果
-     */
-    public int updateTMatterFeature(TMatterFeature tMatterFeature);
-
-    /**
-     * 批量删除危害物质关联危险类型
-     *
-     * @param ids 需要删除的危害物质关联危险类型ID
-     * @return 结果
-     */
-    public int deleteTMatterFeatureByIds(Long[] ids);
-
-    /**
-     * 删除危害物质关联危险类型信息
-     *
-     * @param id 危害物质关联危险类型ID
-     * @return 结果
-     */
-    public int deleteTMatterFeatureById(Long id);
-}

+ 0 - 64
master/src/main/java/com/ruoyi/project/ehs/service/ITMatterProtectService.java

@@ -1,64 +0,0 @@
-package com.ruoyi.project.ehs.service;
-
-import com.ruoyi.project.ehs.domain.TMatterProtect;
-
-import java.util.List;
-
-/**
- * 【请填写功能名称】Service接口
- *
- * @author ruoyi
- * @date 2021-09-23
- */
-public interface ITMatterProtectService {
-
-    public List<TMatterProtect> queryByIds(String[] ids);
-
-    /**
-     * 查询【请填写功能名称】
-     *
-     * @param id 【请填写功能名称】ID
-     * @return 【请填写功能名称】
-     */
-    public TMatterProtect selectTMatterProtectById(Long id);
-
-    /**
-     * 查询【请填写功能名称】列表
-     *
-     * @param tMatterProtect 【请填写功能名称】
-     * @return 【请填写功能名称】集合
-     */
-    public List<TMatterProtect> selectTMatterProtectList(TMatterProtect tMatterProtect);
-
-    /**
-     * 新增【请填写功能名称】
-     *
-     * @param tMatterProtect 【请填写功能名称】
-     * @return 结果
-     */
-    public int insertTMatterProtect(TMatterProtect tMatterProtect);
-
-    /**
-     * 修改【请填写功能名称】
-     *
-     * @param tMatterProtect 【请填写功能名称】
-     * @return 结果
-     */
-    public int updateTMatterProtect(TMatterProtect tMatterProtect);
-
-    /**
-     * 批量删除【请填写功能名称】
-     *
-     * @param ids 需要删除的【请填写功能名称】ID
-     * @return 结果
-     */
-    public int deleteTMatterProtectByIds(Long[] ids);
-
-    /**
-     * 删除【请填写功能名称】信息
-     *
-     * @param id 【请填写功能名称】ID
-     * @return 结果
-     */
-    public int deleteTMatterProtectById(Long id);
-}

+ 0 - 54
master/src/main/java/com/ruoyi/project/ehs/service/ITMatterService.java

@@ -1,54 +0,0 @@
-package com.ruoyi.project.ehs.service;
-
-import com.ruoyi.project.ehs.domain.TMatter;
-
-import java.util.List;
-
-/**
- * 工作票-危害物质Service接口
- *
- * @author ruoyi
- * @date 2021-09-22
- */
-public interface ITMatterService {
-
-    /**
-     * 查询工作票-危害物质列表
-     *
-     * @param tMatter 工作票-危害物质
-     * @return 工作票-危害物质集合
-     */
-    public List<TMatter> selectTMatterList(TMatter tMatter);
-
-    /**
-     * 新增工作票-危害物质
-     *
-     * @param tMatter 工作票-危害物质
-     * @return 结果
-     */
-    public int insertTMatter(TMatter tMatter);
-
-    /**
-     * 修改工作票-危害物质
-     *
-     * @param tMatter 工作票-危害物质
-     * @return 结果
-     */
-    public int updateTMatter(TMatter tMatter);
-
-    /**
-     * 批量删除工作票-危害物质
-     *
-     * @param ids 需要删除的工作票-危害物质ID
-     * @return 结果
-     */
-    public int deleteTMatterByIds(Long[] ids);
-
-    /**
-     * 删除工作票-危害物质信息
-     *
-     * @param id 工作票-危害物质ID
-     * @return 结果
-     */
-    public int deleteTMatterById(Long id);
-}

+ 0 - 76
master/src/main/java/com/ruoyi/project/ehs/service/impl/TMatterServiceImpl.java

@@ -1,76 +0,0 @@
-package com.ruoyi.project.ehs.service.impl;
-
-import com.ruoyi.project.ehs.domain.TMatter;
-import com.ruoyi.project.ehs.mapper.TMatterMapper;
-import com.ruoyi.project.ehs.service.ITMatterService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 工作票-危害物质Service业务层处理
- *
- * @author ruoyi
- * @date 2021-09-22
- */
-@Service
-public class TMatterServiceImpl implements ITMatterService {
-    @Autowired
-    private TMatterMapper tMatterMapper;
-
-    /**
-     * 查询工作票-危害物质列表
-     *
-     * @param tMatter 工作票-危害物质
-     * @return 工作票-危害物质
-     */
-    @Override
-    public List<TMatter> selectTMatterList(TMatter tMatter) {
-        return tMatterMapper.selectTMatterList(tMatter);
-    }
-
-    /**
-     * 新增工作票-危害物质
-     *
-     * @param tMatter 工作票-危害物质
-     * @return 结果
-     */
-    @Override
-    public int insertTMatter(TMatter tMatter) {
-        return tMatterMapper.insertTMatter(tMatter);
-    }
-
-    /**
-     * 修改工作票-危害物质
-     *
-     * @param tMatter 工作票-危害物质
-     * @return 结果
-     */
-    @Override
-    public int updateTMatter(TMatter tMatter) {
-        return tMatterMapper.updateTMatter(tMatter);
-    }
-
-    /**
-     * 批量删除工作票-危害物质
-     *
-     * @param ids 需要删除的工作票-危害物质ID
-     * @return 结果
-     */
-    @Override
-    public int deleteTMatterByIds(Long[] ids) {
-        return tMatterMapper.deleteTMatterByIds(ids);
-    }
-
-    /**
-     * 删除工作票-危害物质信息
-     *
-     * @param id 工作票-危害物质ID
-     * @return 结果
-     */
-    @Override
-    public int deleteTMatterById(Long id) {
-        return tMatterMapper.deleteTMatterById(id);
-    }
-}

文件差異過大導致無法顯示
+ 161 - 158
master/src/main/java/com/ruoyi/project/ticket/domain/THazardWorkPermit.java


+ 0 - 0
master/src/main/resources/mybatis/device/TDeviceMapper.xml → master/src/main/resources/mybatis/configuration/TDeviceMapper.xml


+ 2 - 2
master/src/main/resources/mybatis/ehs/TMatterFeatureMapper.xml → master/src/main/resources/mybatis/configuration/TMatterFeatureMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.project.ehs.mapper.TMatterFeatureMapper">
+<mapper namespace="com.ruoyi.project.configuration.mapper.TMatterFeatureMapper">
 
     <resultMap type="TMatterFeature" id="TMatterFeatureResult">
         <result property="id" column="id"/>
@@ -90,4 +90,4 @@
         </foreach>
     </update>
 
-</mapper>
+</mapper>

+ 2 - 2
master/src/main/resources/mybatis/ehs/TMatterMapper.xml → master/src/main/resources/mybatis/configuration/TMatterMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.project.ehs.mapper.TMatterMapper">
+<mapper namespace="com.ruoyi.project.configuration.mapper.TMatterMapper">
 
     <resultMap type="TMatter" id="TMatterResult">
         <result property="id" column="id"/>
@@ -140,4 +140,4 @@
         </foreach>
     </update>
 
-</mapper>
+</mapper>

+ 4 - 5
master/src/main/resources/mybatis/ehs/TMatterProtectMapper.xml → master/src/main/resources/mybatis/configuration/TMatterProtectMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.project.ehs.mapper.TMatterProtectMapper">
+<mapper namespace="com.ruoyi.project.configuration.mapper.TMatterProtectMapper">
 
     <resultMap type="TMatterProtect" id="TMatterProtectResult">
         <result property="id" column="id"/>
@@ -10,6 +10,7 @@
         <result property="conservatoryMeasureCode" column="conservatory_measure_code"/>
         <result property="conservatoryMeasureNo" column="conservatory_measure_no"/>
         <result property="conservatoryMeasureContent" column="conservatory_measure_content"/>
+        <result property="protectType" column="protect_type"/>
         <result property="deptName" column="dept_name"/>
     </resultMap>
 
@@ -26,9 +27,8 @@
     </select>
 
     <sql id="selectTMatterProtectVo">
-        select d.id, d.conservatory_measure_name, d.conservatory_measure_code, d.conservatory_measure_no, s.dept_name
+        select d.id, d.conservatory_measure_name, d.conservatory_measure_code, d.conservatory_measure_no
         from t_matter_protect d
-                 left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
     <select id="selectTMatterProtectList" parameterType="TMatterProtect" resultMap="TMatterProtectResult">
@@ -98,5 +98,4 @@
             #{id}
         </foreach>
     </update>
-
-</mapper>
+</mapper>

+ 53 - 0
ui/src/api/configuration/feature.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询危害物质-危害性质列表
+export function listFeature(query) {
+  return request({
+    url: '/configuration/feature/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询危害物质-危害性质详细
+export function getFeature(id) {
+  return request({
+    url: '/configuration/feature/' + id,
+    method: 'get'
+  })
+}
+
+// 新增危害物质-危害性质
+export function addFeature(data) {
+  return request({
+    url: '/configuration/feature',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改危害物质-危害性质
+export function updateFeature(data) {
+  return request({
+    url: '/configuration/feature',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除危害物质-危害性质
+export function delFeature(id) {
+  return request({
+    url: '/configuration/feature/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出危害物质-危害性质
+export function exportFeature(query) {
+  return request({
+    url: '/configuration/feature/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/configuration/matter.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询危害物质数据关联列表
+export function listMatter(query) {
+  return request({
+    url: '/configuration/matter/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询危害物质数据关联详细
+export function getMatter(id) {
+  return request({
+    url: '/configuration/matter/' + id,
+    method: 'get'
+  })
+}
+
+// 新增危害物质数据关联
+export function addMatter(data) {
+  return request({
+    url: '/configuration/matter',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改危害物质数据关联
+export function updateMatter(data) {
+  return request({
+    url: '/configuration/matter',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除危害物质数据关联
+export function delMatter(id) {
+  return request({
+    url: '/configuration/matter/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出危害物质数据关联
+export function exportMatter(query) {
+  return request({
+    url: '/configuration/matter/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/configuration/protect.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询危害物质-防护用品列表
+export function listProtect(query) {
+  return request({
+    url: '/configuration/protect/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询危害物质-防护用品详细
+export function getProtect(id) {
+  return request({
+    url: '/configuration/protect/' + id,
+    method: 'get'
+  })
+}
+
+// 新增危害物质-防护用品
+export function addProtect(data) {
+  return request({
+    url: '/configuration/protect',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改危害物质-防护用品
+export function updateProtect(data) {
+  return request({
+    url: '/configuration/protect',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除危害物质-防护用品
+export function delProtect(id) {
+  return request({
+    url: '/configuration/protect/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出危害物质-防护用品
+export function exportProtect(query) {
+  return request({
+    url: '/configuration/protect/export',
+    method: 'get',
+    params: query
+  })
+}

+ 1 - 1
ui/src/api/ehs/throughcleanbcc.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询危害物质
 export function listMatters() {
   return request({
-    url: '/ehs/matter/listMatters',
+    url: '/configuration/matter/listMatters',
     method: 'get'
   })
 }

+ 397 - 0
ui/src/views/configuration/feature/index.vue

@@ -0,0 +1,397 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="物料特性名称" prop="featureName">
+        <el-input
+          v-model="queryParams.featureName"
+          placeholder="请输入物料特性名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物料特性编码" prop="featureCode">
+        <el-input
+          v-model="queryParams.featureCode"
+          placeholder="请输入物料特性编码"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['ehs:feature:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['ehs:feature:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['ehs:feature:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+          v-hasPermi="['ehs:feature:edit']"
+        >导入
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['ehs:feature:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="featureList" @selection-change="handleSelectionChange" :height="clientHeight"
+              border>
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>
+      <el-table-column label="物料特性名称" align="center" prop="featureName" :show-overflow-tooltip="true"/>
+      <el-table-column label="物料特性编码" align="center" prop="featureCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['ehs:feature:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['ehs:feature:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改危害物质-危害性质对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="物料特性名称" prop="featureName">
+          <el-input v-model="form.featureName" placeholder="请输入物料特性名称"/>
+        </el-form-item>
+        <el-form-item label="物料特性编码" prop="featureCode">
+          <el-input v-model="form.featureCode" placeholder="请输入物料特性编码"/>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport"/>
+          是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listFeature,
+  getFeature,
+  delFeature,
+  addFeature,
+  updateFeature,
+  exportFeature,
+  importTemplate
+} from "@/api/configuration/feature";
+import {treeselect} from "@/api/system/dept";
+import {getToken} from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Feature",
+  components: {Treeselect},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 危害物质-危害性质表格数据
+      featureList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight: 300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/ehs/feature/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        featureName: null,
+        featureCode: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        featureName: [
+          {required: true, message: "物料特性名称不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight - 250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询危害物质-危害性质列表 */
+    getList() {
+      this.loading = true;
+      listFeature(this.queryParams).then(response => {
+        this.featureList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        featureName: null,
+        featureCode: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加危害物质-危害性质";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFeature(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改危害物质-危害性质";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFeature(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFeature(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return delFeature(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有危害物质-危害性质数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return exportFeature(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", {dangerouslyUseHTMLString: true});
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

+ 526 - 0
ui/src/views/configuration/matter/index.vue

@@ -0,0 +1,526 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="备注" prop="remarks">
+        <el-input
+          v-model="queryParams.remarks"
+          placeholder="请输入备注"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createrCode">
+        <el-input
+          v-model="queryParams.createrCode"
+          placeholder="请输入创建人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建日期" prop="createdate">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.createdate"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择创建日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updaterCode">
+        <el-input
+          v-model="queryParams.updaterCode"
+          placeholder="请输入更新人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新日期" prop="updatedate">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams.updatedate"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择更新日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="物料名称" prop="matterName">
+        <el-input
+          v-model="queryParams.matterName"
+          placeholder="请输入物料名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物料危险警告类型
+1:危险
+2:警告" prop="matterType">
+        <el-select v-model="queryParams.matterType" placeholder="请选择物料危险警告类型
+1:危险
+2:警告" clearable size="small">
+          <el-option label="请选择字典生成" value=""/>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="相关危害集合" prop="matterFeatures">
+        <el-input
+          v-model="queryParams.matterFeatures"
+          placeholder="请输入相关危害集合"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="相关防护措施集合" prop="matterProtects">
+        <el-input
+          v-model="queryParams.matterProtects"
+          placeholder="请输入相关防护措施集合"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['ehs:matter:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['ehs:matter:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['ehs:matter:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+          v-hasPermi="['ehs:matter:edit']"
+        >导入
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['ehs:matter:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="matterList" @selection-change="handleSelectionChange" :height="clientHeight"
+              border>
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>
+      <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+      <el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="创建日期" align="center" prop="createdate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="更新日期" align="center" prop="updatedate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="物料名称" align="center" prop="matterName" :show-overflow-tooltip="true"/>
+      <el-table-column label="物料危险警告类型
+1:危险
+2:警告" align="center" prop="matterType" :show-overflow-tooltip="true"/>
+      <el-table-column label="相关危害集合" align="center" prop="matterFeatures" :show-overflow-tooltip="true"/>
+      <el-table-column label="相关防护措施集合" align="center" prop="matterProtects" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['ehs:matter:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['ehs:matter:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改危害物质数据关联对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="删除标识" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入删除标识"/>
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="请输入备注"/>
+        </el-form-item>
+        <el-form-item label="创建人" prop="createrCode">
+          <el-input v-model="form.createrCode" placeholder="请输入创建人"/>
+        </el-form-item>
+        <el-form-item label="创建日期" prop="createdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.createdate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择创建日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updaterCode">
+          <el-input v-model="form.updaterCode" placeholder="请输入更新人"/>
+        </el-form-item>
+        <el-form-item label="更新日期" prop="updatedate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.updatedate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择更新日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="物料名称" prop="matterName">
+          <el-input v-model="form.matterName" placeholder="请输入物料名称"/>
+        </el-form-item>
+        <el-form-item label="物料危险警告类型" prop="matterType">
+          <el-select v-model="form.matterType" placeholder="请选择物料危险警告类型">
+            <el-option label="请选择字典生成" value=""/>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="相关危害集合" prop="matterFeatures">
+          <el-input v-model="form.matterFeatures" placeholder="请输入相关危害集合"/>
+        </el-form-item>
+        <el-form-item label="相关防护措施集合" prop="matterProtects">
+          <el-input v-model="form.matterProtects" placeholder="请输入相关防护措施集合"/>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport"/>
+          是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listMatter,
+  getMatter,
+  delMatter,
+  addMatter,
+  updateMatter,
+  exportMatter,
+  importTemplate
+} from "@/api/configuration/matter";
+import {treeselect} from "@/api/system/dept";
+import {getToken} from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Matter",
+  components: {Treeselect},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 危害物质数据关联表格数据
+      matterList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight: 300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/ehs/matter/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        remarks: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        matterName: null,
+        matterType: null,
+        matterFeatures: null,
+        matterProtects: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        matterName: [
+          {required: true, message: "物料名称不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight - 250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询危害物质数据关联列表 */
+    getList() {
+      this.loading = true;
+      listMatter(this.queryParams).then(response => {
+        this.matterList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        delFlag: null,
+        remarks: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        matterName: null,
+        matterType: null,
+        matterFeatures: null,
+        matterProtects: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加危害物质数据关联";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getMatter(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改危害物质数据关联";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateMatter(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addMatter(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return delMatter(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有危害物质数据关联数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return exportMatter(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", {dangerouslyUseHTMLString: true});
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

+ 432 - 0
ui/src/views/configuration/protect/index.vue

@@ -0,0 +1,432 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="防护用品中文名称" prop="conservatoryMeasureName">
+        <el-input
+          v-model="queryParams.conservatoryMeasureName"
+          placeholder="请输入防护用品中文名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="防护用品对应显示" prop="conservatoryMeasureCode">
+        <el-input
+          v-model="queryParams.conservatoryMeasureCode"
+          placeholder="请输入防护用品对应显示"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="防护用品对应分项" prop="conservatoryMeasureNo">
+        <el-input
+          v-model="queryParams.conservatoryMeasureNo"
+          placeholder="请输入防护用品对应分项"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="防护用品类型" prop="protectType">
+        <el-select v-model="queryParams.protectType" placeholder="请选择防护用品类型" clearable size="small">
+          <el-option label="请选择字典生成" value=""/>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['ehs:protect:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['ehs:protect:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['ehs:protect:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+          v-hasPermi="['ehs:protect:edit']"
+        >导入
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['ehs:protect:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="protectList" @selection-change="handleSelectionChange" :height="clientHeight"
+              border>
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>
+      <el-table-column label="防护用品中文名称" align="center" prop="conservatoryMeasureName" :show-overflow-tooltip="true"/>
+      <el-table-column label="防护用品对应显示" align="center" prop="conservatoryMeasureCode" :show-overflow-tooltip="true"/>
+      <el-table-column label="防护用品对应分项" align="center" prop="conservatoryMeasureNo" :show-overflow-tooltip="true"/>
+      <el-table-column label="防护用品显示字段" align="center" prop="conservatoryMeasureContent" :show-overflow-tooltip="true"/>
+      <el-table-column label="防护用品类型" align="center" prop="protectType" :show-overflow-tooltip="true"/>
+      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['ehs:protect:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['ehs:protect:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改危害物质-防护用品对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="防护用品中文名称" prop="conservatoryMeasureName">
+          <el-input v-model="form.conservatoryMeasureName" placeholder="请输入防护用品中文名称"/>
+        </el-form-item>
+        <el-form-item label="防护用品对应显示" prop="conservatoryMeasureCode">
+          <el-input v-model="form.conservatoryMeasureCode" placeholder="请输入防护用品对应显示"/>
+        </el-form-item>
+        <el-form-item label="防护用品对应分项" prop="conservatoryMeasureNo">
+          <el-input v-model="form.conservatoryMeasureNo" placeholder="请输入防护用品对应分项"/>
+        </el-form-item>
+        <el-form-item label="防护用品显示字段">
+          <editor v-model="form.conservatoryMeasureContent" :min-height="192"/>
+        </el-form-item>
+        <el-form-item label="防护用品类型" prop="protectType">
+          <el-select v-model="form.protectType" placeholder="请选择防护用品类型">
+            <el-option label="请选择字典生成" value=""/>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport"/>
+          是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listProtect,
+  getProtect,
+  delProtect,
+  addProtect,
+  updateProtect,
+  exportProtect,
+  importTemplate
+} from "@/api/configuration/protect";
+import {treeselect} from "@/api/system/dept";
+import {getToken} from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "Protect",
+  components: {Treeselect},
+  // components: { Editor },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 危害物质-防护用品表格数据
+      protectList: [],
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      clientHeight: 300,
+      // 是否显示弹出层
+      open: false,
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/ehs/protect/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        conservatoryMeasureName: null,
+        conservatoryMeasureCode: null,
+        conservatoryMeasureNo: null,
+        conservatoryMeasureContent: null,
+        protectType: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        conservatoryMeasureName: [
+          {required: true, message: "防护用品中文名称不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = document.body.clientHeight - 250
+    })
+    this.getList();
+    this.getTreeselect();
+  },
+  methods: {
+    /** 查询危害物质-防护用品列表 */
+    getList() {
+      this.loading = true;
+      listProtect(this.queryParams).then(response => {
+        this.protectList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        conservatoryMeasureName: null,
+        conservatoryMeasureCode: null,
+        conservatoryMeasureNo: null,
+        conservatoryMeasureContent: null,
+        protectType: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加危害物质-防护用品";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getProtect(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改危害物质-防护用品";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateProtect(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addProtect(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return delProtect(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有危害物质-防护用品数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function () {
+        return exportProtect(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+      })
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", {dangerouslyUseHTMLString: true});
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>

+ 286 - 107
ui/src/views/invoicing/hazardwork/index.vue

@@ -168,7 +168,8 @@
                     <td>3.</td>
                     <td>有效期:由
                       <el-date-picker v-model="value1" type="datetimerange" range-separator="至" start-placeholder="开始日期"
-                                      end-placeholder="结束日期">
+                                      end-placeholder="结束日期" format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss">
                       </el-date-picker>
                     </td>
                   </tr>
@@ -178,11 +179,12 @@
                 <table>
                   <tr>
                     <td>
-                      <el-checkbox v-model="isYesDanger"/>
+                      <el-checkbox v-model="isYesDanger" true-label="1" false-label="0"/>
                     </td>
                     <td colspan="10">危害物质(正常运行时存在于设备中的物料名称):
                       <!-- 物料数据源绑定 -->
-                      <el-select v-model="item" placeholder="请选择物料名称" @change="selectChange(item)">
+                      <el-select v-model="form.cHarmMatterName" placeholder="请选择物料名称"
+                                 @change="selectChange(form.cHarmMatterName)">
                         <el-option v-for="item in matterNames" :key="item.id" :label="item.matterName" :value="item.id">
                         </el-option>
                       </el-select>
@@ -191,7 +193,7 @@
                   <!-- 图标及物料特性根据物料进行动态展示 -->
                   <tr style="text-align: center;">
                     <td style="width: 20px;">
-                      <el-checkbox v-model="cIsDanger"/>
+                      <el-checkbox v-model="form.cIsDanger" true-label="1" false-label="0"/>
                     </td>
                     <td>危险</td>
                     <td style="width: 80px;">
@@ -236,67 +238,68 @@
                   </tr>
                   <tr style="text-align: center;">
                     <td>
-                      <el-checkbox v-model="cIsAttention"/>
+                      <el-checkbox v-model="form.cIsAttention" true-label="1" false-label="0"/>
                     </td>
                     <td>注意</td>
                     <td style="width: 50px;">毒性<br>
-                      <el-checkbox v-model="cIsToxic"></el-checkbox>
+                      <el-checkbox v-model="cIsToxic" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 50px;">易燃性<br>
-                      <el-checkbox v-model="cIsFlammable"></el-checkbox>
+                      <el-checkbox v-model="cIsFlammable" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 50px;">氧化性<br>
-                      <el-checkbox v-model="cIsOxidizing"></el-checkbox>
+                      <el-checkbox v-model="cIsOxidizing" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 50px;">爆炸性<br>
-                      <el-checkbox v-model="cIsExplosive"></el-checkbox>
+                      <el-checkbox v-model="cIsExplosive" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 50px;">腐蚀性<br>
-                      <el-checkbox v-model="cIsCorrosive"></el-checkbox>
+                      <el-checkbox v-model="cIsCorrosive" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 120px;">刺激性/致敏性/毒性<br>
-                      <el-checkbox v-model="cIsIrritantToxic"></el-checkbox>
+                      <el-checkbox v-model="cIsIrritantToxic" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 70px;">健康危害<br>
-                      <el-checkbox v-model="cIsHealthHazard"></el-checkbox>
+                      <el-checkbox v-model="cIsHealthHazard" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 70px;">压力下气体<br>
-                      <el-checkbox v-model="cIsCompressedGas"></el-checkbox>
+                      <el-checkbox v-model="cIsCompressedGas" true-label="1" false-label="0"/>
                     </td>
                     <td style="width: 90px;">危害水生环境<br>
-                      <el-checkbox v-model="cIsEnvironmentalHazard"></el-checkbox>
+                      <el-checkbox v-model="cIsEnvironmentalHazard" true-label="1" false-label="0"/>
                     </td>
                   </tr>
                 </table>
                 <table>
                   <tr>
                     <td>
-                      <el-checkbox v-model="form.isEquipmentHazards"></el-checkbox>
+                      <el-checkbox v-model="isEquipmentHazards"/>
                     </td>
                     <td colspan="5"><small>
                       设备内物质处于危险状态
-                      <el-checkbox v-model="form.cIsHighTemp"
-                                   :disabled="this.form.isEquipmentHazards==true?false:true" @change="highTempChange"/>
+                      <el-checkbox v-model="form.cIsHighTemp" true-label="1" false-label="0"
+                                   :disabled="this.isEquipmentHazards==true?false:true" @change="highTempChange"/>
                       高温
                       /
-                      <el-checkbox v-model="form.cIsLowTemp" :disabled="this.form.isEquipmentHazards==true?false:true"
+                      <el-checkbox v-model="form.cIsLowTemp" true-label="1" false-label="0"
+                                   :disabled="this.isEquipmentHazards==true?false:true"
                                    @change="lowTempChange"/>
                       低温;
-                      <el-checkbox v-model="form.cIsPosPressure"
-                                   :disabled="this.form.isEquipmentHazards==true?false:true"
+                      <el-checkbox v-model="form.cIsPosPressure" true-label="1" false-label="0"
+                                   :disabled="this.isEquipmentHazards==true?false:true"
                                    @change="posPressureChange"/>
                       正压
                       /
-                      <el-checkbox v-model="form.cIsNegPressure"
-                                   :disabled="this.form.isEquipmentHazards==true?false:true"
+                      <el-checkbox v-model="form.cIsNegPressure" true-label="1" false-label="0"
+                                   :disabled="this.isEquipmentHazards==true?false:true"
                                    @change="negPressureChange"/>
                       负压
                     </small>
                     </td>
                     <td>
-                      <el-checkbox v-model="form.cIsHazardsProd"/>
+                      <el-checkbox v-model="form.cIsHazardsProd" true-label="1" false-label="0"/>
                     </td>
                     <td colspan="4">施工队生产单位的危害:
                       <el-input style="width: 150px;" v-model="form.cIsHazardsProdContent"
@@ -305,35 +308,35 @@
                   </tr>
                   <tr>
                     <td>
-                      <el-checkbox v-model="form.isFacilityHazards"></el-checkbox>
+                      <el-checkbox v-model="isFacilityHazards"/>
                     </td>
                     <td colspan="5">
                       来自设备/设施的危害(
-                      <el-checkbox v-model="form.cIsMovingParts"
-                                   :disabled="this.form.isFacilityHazards==true?false:true"/>
+                      <el-checkbox v-model="form.cIsMovingParts" true-label="1" false-label="0"
+                                   :disabled="this.isFacilityHazards==true?false:true"/>
                       移动部件,
-                      <el-checkbox v-model="form.cIsHotSurfaces"
-                                   :disabled="this.form.isFacilityHazards==true?false:true"
+                      <el-checkbox v-model="form.cIsHotSurfaces" true-label="1" false-label="0"
+                                   :disabled="this.isFacilityHazards==true?false:true"
                                    @change="hotSurfacesChange"/>
                       热表面/
-                      <el-checkbox v-model="form.cIsColdSurfaces"
-                                   :disabled="this.form.isFacilityHazards==true?false:true"
+                      <el-checkbox v-model="form.cIsColdSurfaces" true-label="1" false-label="0"
+                                   :disabled="this.isFacilityHazards==true?false:true"
                                    @change="coldSurfacesChange"/>
                       冷表面,
-                      <el-checkbox v-model="form.cIsVoltages"
-                                   :disabled="this.form.isFacilityHazards==true?false:true"/>
+                      <el-checkbox v-model="form.cIsVoltages" true-label="1" false-label="0"
+                                   :disabled="this.isFacilityHazards==true?false:true"/>
                       电压
                     </td>
                     <td>
-                      <el-checkbox v-model="form.cIsFire"/>
+                      <el-checkbox v-model="form.cIsFire" true-label="1" false-label="0"/>
                     </td>
                     <td>火灾或爆炸性危害,参考动火许可证:
                     </td>
                   </tr>
                   <tr>
                     <td>
-                      <el-checkbox v-model="form.cIsWorkProtective"/>
+                      <el-checkbox v-model="form.cIsWorkProtective" true-label="1" false-label="0"/>
                     </td>
                     <td colspan="5">安全保护设备的施工(
                       <el-checkbox/>
@@ -346,7 +349,7 @@
                   </tr>
                   <tr>
                     <td>
-                      <el-checkbox v-model="form.cIsOtherDanger"/>
+                      <el-checkbox v-model="form.cIsOtherDanger" true-label="1" false-label="0"/>
                     </td>
                     <td colspan="5">其他危害:
                       <el-input style="width: 150px;" v-model="form.cOtherDangerContent"
@@ -385,12 +388,16 @@
                         </el-option>
                       </el-select>
                       <el-date-picker style="width: 80px" v-model="form.dSafeImplDate11" type="date"
+                                      format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss"
                                       :disabled="this.form.dIsOpenSafe==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign11" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate11" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate11" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -442,13 +449,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate12" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate12" type="date"
                                       :disabled="this.form.dIsBreakIncl == 1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign12" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate12" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate12" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -469,13 +480,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate13" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate13" type="date"
                                       :disabled="this.form.dIsRadioactiveSources==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign13" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate13" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate13" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -499,13 +514,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate14" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate14" type="date"
                                       :disabled="this.form.dIsOtherEquSafe==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign14" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate14" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate14" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -530,7 +549,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate21" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate21" type="date"
                                       :disabled="this.form.dIsDepress==1?false:true">
                       </el-date-picker>
                     </td>
@@ -552,13 +573,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate22" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate22" type="date"
                                       :disabled="this.form.dIsSingleBlocking==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign22" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate22" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate22" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -581,13 +606,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate23" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate23" type="date"
                                       :disabled="this.form.dIsDoubleBlock==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign23" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate23" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate23" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -613,13 +642,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate24" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate24" type="date"
                                       :disabled="this.form.dIsLockoutUsing==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign24" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate24" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate24" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -640,13 +673,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate25" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate25" type="date"
                                       :disabled="this.form.dIsRemovePipe==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign25" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate25" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate25" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -667,13 +704,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate26" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate26" type="date"
                                       :disabled="this.form.dIsDisPipes==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign26" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate26" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate26" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -694,13 +735,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate27" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate27" type="date"
                                       :disabled="this.form.dIsInsertBlindPlage==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign27" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate27" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate27" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -724,13 +769,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate28" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate28" type="date"
                                       :disabled="this.form.dIsMecSecure==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign28" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate28" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate28" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -751,7 +800,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate29" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate29" type="date"
                                       :disabled="this.form.dIsIsolationDiagram==1?false:true">
                       </el-date-picker>
                     </td>
@@ -776,13 +827,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate210" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate210" type="date"
                                       :disabled="this.form.dIsOtherSafePlant==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign210" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate210" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate210" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -807,7 +862,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate31" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate31" type="date"
                                       :disabled="this.form.dIsDrain==1?false:true">
                       </el-date-picker>
                     </td>
@@ -833,7 +890,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate32" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate32" type="date"
                                       :disabled="this.form.dIsClean==1?false:true">
                       </el-date-picker>
                     </td>
@@ -859,7 +918,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate33" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate33" type="date"
                                       :disabled="this.form.dIsFlush==1?false:true">
                       </el-date-picker>
                     </td>
@@ -884,7 +945,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate34" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate34" type="date"
                                       :disabled="this.form.dIsOhterClean==1?false:true">
                       </el-date-picker>
                     </td>
@@ -913,13 +976,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate41" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate41" type="date"
                                       :disabled="this.form.dIsSiteDemarcation==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign41" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate41" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate41" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -943,13 +1010,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate42" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate42" type="date"
                                       :disabled="this.form.dIsAreaCover==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign42" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate42" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate42" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -970,13 +1041,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate43" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate43" type="date"
                                       :disabled="this.form.dIsCloseTrucks==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign43" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate43" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate43" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -997,13 +1072,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate44" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate44" type="date"
                                       :disabled="this.form.dIsLeakFlanges==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign44" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate44" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate44" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -1027,13 +1106,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate45" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate45" type="date"
                                       :disabled="this.form.dIsOtherWorkSafe==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign45" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate45" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate45" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -1061,13 +1144,17 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeImplDate51" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeImplDate51" type="date"
                                       :disabled="this.form.dIsOtherMeasure==1?false:true">
                       </el-date-picker>
                     </td>
                     <td style="text-align: center;">
                       <el-input style="width: 70px;" v-model="form.dSafeLiftedSign51" disabled/>
-                      <el-date-picker style="width: 80px" v-model="form.dSafeLiftedDate51" type="date" disabled>
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dSafeLiftedDate51" type="date" disabled>
                       </el-date-picker>
                     </td>
                   </tr>
@@ -1085,7 +1172,9 @@
                       参与交底人签名/日期
                       <el-input style="width: 70px;" v-model="form.dPartakeBriefingSign"
                                 :disabled="this.form.dIsSafeBriefing==1?false:true"/>
-                      <el-date-picker style="width: 80px" v-model="form.dPartakeBriefingDate" type="date"
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 80px"
+                                      v-model="form.dPartakeBriefingDate" type="date"
                                       :disabled="this.form.dIsSafeBriefing==1?false:true">
                       </el-date-picker>
                     </td>
@@ -1380,7 +1469,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 100px" v-model="form.gFirstDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 100px" v-model="form.gFirstDate"
+                                      type="datetime">
                       </el-date-picker>
                     </td>
                     <td align="right">
@@ -1397,7 +1488,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 100px" v-model="form.gSecondDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 100px" v-model="form.gSecondDate"
+                                      type="datetime">
                       </el-date-picker>
                     </td>
                     <td><small>第三签名(相应部门人员及部门名称):</small>
@@ -1405,7 +1498,9 @@
                         <el-option v-for="item in users" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                       </el-select>
-                      <el-date-picker style="width: 100px" v-model="form.gThirdDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 100px" v-model="form.gThirdDate"
+                                      type="datetime">
                       </el-date-picker>
                     </td>
                   </tr>
@@ -1416,7 +1511,8 @@
                   <tr>
                     <td>签名:
                       <el-input style="width: 150px;" v-model="form.hSafeMesSign"/>
-                      <el-date-picker v-model="form.hSafeMesDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" v-model="form.hSafeMesDate" type="datetime">
                       </el-date-picker>
                     </td>
                     <td align="right">相应延期许可证号码:</td>
@@ -1441,13 +1537,17 @@
                     <td>
                       1a 签名(授权维修主管)
                       <el-input style="width: 100px;" v-model="form.iOneASign"/>
-                      <el-date-picker style="width: 120px" v-model="form.iOneADate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 120px" v-model="form.iOneADate"
+                                      type="datetime">
                       </el-date-picker>
                     </td>
                     <td>
                       1b 签名(授权维修工人)
                       <el-input style="width: 100px;" v-model="form.iOneBSign"/>
-                      <el-date-picker style="width: 120px" v-model="form.iOneBDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 120px" v-model="form.iOneBDate"
+                                      type="datetime">
                       </el-date-picker>
                     </td>
                   </tr>
@@ -1468,17 +1568,23 @@
                   <tr>
                     <td>
                       <el-input style="width: 130px;" v-model="form.jOneBSign"/>
-                      <el-date-picker style="width: 120px" v-model="form.jOneBDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 120px" v-model="form.jOneBDate"
+                                      type="datetime">
                       </el-date-picker>
                     </td>
                     <td>
                       <el-input style="width: 130px;" v-model="form.jResMemberSign"/>
-                      <el-date-picker style="width: 120px" v-model="form.jResMemberDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 120px"
+                                      v-model="form.jResMemberDate" type="datetime">
                       </el-date-picker>
                     </td>
                     <td>
                       <el-input style="width: 130px;" v-model="form.jEISign"/>
-                      <el-date-picker style="width: 120px" v-model="form.jEIDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" style="width: 120px" v-model="form.jEIDate"
+                                      type="datetime">
                       </el-date-picker>
                     </td>
                   </tr>
@@ -1502,7 +1608,8 @@
               <el-collapse-item title="K 确认F栏的安全措施完成" name="12" style="width: 800px;">
                 签名,日期/时间
                 <el-input style="width: 80px;" v-model="form.kConfirmSign"/>
-                <el-date-picker v-model="form.kConfirmDate" type="datetime">
+                <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                value-format="yyyy-MM-dd HH:mm:ss" v-model="form.kConfirmDate" type="datetime">
                 </el-date-picker>
               </el-collapse-item>
               <el-collapse-item title="L 授权的维修工人通知生产装置施工完成" name="13" style="width: 800px;">
@@ -1510,7 +1617,8 @@
                 <br>
                 签名,日期/时间
                 <el-input style="width: 80px;" v-model="form.lNoticeSign"/>
-                <el-date-picker v-model="form.lNoticeDate" type="datetime">
+                <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                value-format="yyyy-MM-dd HH:mm:ss" v-model="form.lNoticeDate" type="datetime">
                 </el-date-picker>
               </el-collapse-item>
               <el-collapse-item title="M 评估/批准撤销D栏的施工前安全措施" name="14" style="width: 800px;">
@@ -1521,7 +1629,8 @@
                     </td>
                     <td>
                       <el-input style="width: 80px;" v-model="form.mAssessDSign"/>
-                      <el-date-picker v-model="form.mAssessDDate" type="datetime">
+                      <el-date-picker format="yyyy-MM-dd HH:mm:ss"
+                                      value-format="yyyy-MM-dd HH:mm:ss" v-model="form.mAssessDDate" type="datetime">
                       </el-date-picker>
                     </td>
                   </tr>
@@ -1752,8 +1861,6 @@ export default {
       matterNames: [],
       item: "",
       isYesDanger: null,
-      cIsDanger: null,
-      cIsAttention: null,
       cIsToxic: null,
       cIsFlammable: null,
       cIsOxidizing: null,
@@ -1775,6 +1882,9 @@ export default {
       eResProtectContent: null,
       eIsFallArrest: null,
       eFallArrestContent: null,
+      aIsNeedSafeLiaison: '2',
+      isFacilityHazards: null,
+      isEquipmentHazards: null,
       form: {
         //危害工作许可证ID
         aId: null,
@@ -1803,6 +1913,8 @@ export default {
         bValidityStartTime: null,
         bValidityEndTime: null,
         //C 危害识别
+        cIsDanger: null,
+        cIsAttention: null,
         cHarmMatterName: null,
         cIsToxic: null,
         cIsFlammable: null,
@@ -2023,7 +2135,6 @@ export default {
         mOtherLicenceTwo: null,
         mOtherLicenceThree: null,
       },
-
       /* 日期格式模板,目前年月日均默认当日 */
       /* value1: [
                 new Date(2000, 10, 10, 10, 10),
@@ -2034,6 +2145,7 @@ export default {
           new Date().getMinutes()),
         new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), 17, 0),
       ],
+      timeValue: [],
       //新增修改窗口内容是否展开
       activeNames: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'],
     }
@@ -2046,14 +2158,13 @@ export default {
     if (id != null) {
       getInfo(id).then(response => {
         this.form = response.data;
-        this.value1[0] = this.form.bValidityStartTime;
-        this.value1[1] = this.form.bValidityEndTime;
-        console.log(this.form.dIsOpenSafe);
+        this.dataLoading(this.form);
         this.msgSuccess(this.$t('数据加载成功'));
       });
       this.aIdDisabled = true;
     }
 
+    //加载施工单位
     listDept(this.aConstructionsQuery).then(response => {
       this.aConstructions = response.data;
     })
@@ -2074,9 +2185,9 @@ export default {
             var pro = mf.protects;
             if (ff != null && ff.length > 0) {
               this.trueCheckbox(ff);
-              this.cIsDanger = true;
-              this.cIsAttention = true;
-              this.isYesDanger = true;
+              this.cIsDanger = "1";
+              this.cIsAttention = "1";
+              this.isYesDanger = "1";
             } else {
               console.log("没有需要选中的多选框");
             }
@@ -2131,7 +2242,7 @@ export default {
     trueCheckbox(arr) {
       console.log(arr);
       arr.forEach((m) => {
-        this[m] = true;
+        this[m] = '1';
       })
     },
 
@@ -2151,8 +2262,7 @@ export default {
       console.log(val + " : " + this[val])
     },
     onSubmit() {
-      this.form.bValidityStartTime = this.value1[0];
-      this.form.bValidityEndTime = this.value1[1];
+      this.dataSet();
       updateTicket(this.form).then(response => {
         this.msgSuccess(this.$t('票据数据已更新'));
       });
@@ -2233,22 +2343,91 @@ export default {
       }
     },
     highTempChange() {
-      this.form.cIsLowTemp = null;
+      this.form.cIsLowTemp = "0";
     },
     lowTempChange() {
-      this.form.cIsHighTemp = null;
+      this.form.cIsHighTemp = "0";
     },
     posPressureChange() {
-      this.form.cIsNegPressure = null;
+      this.form.cIsNegPressure = "0";
     },
     negPressureChange() {
-      this.form.cIsPosPressure = null;
+      this.form.cIsPosPressure = "0";
     },
     hotSurfacesChange() {
-      this.form.cIsColdSurfaces = null;
+      this.form.cIsColdSurfaces = "0";
     },
     coldSurfacesChange() {
-      this.form.cIsHotSurfaces = null;
+      this.form.cIsHotSurfaces = "0";
+    },
+    // form表单选择框数据无法正常加载,数据加载处理,数据为字符串可正常显示,后台存储的数据为数值型
+    dataLoading(val) {
+      //A栏4.是否需要安全联络员数据回显
+      this.form.aConstructionName = parseInt(this.form.aConstructionName);
+      //B栏3.有效期开始结束时间回显
+      this.$set(this.value1, 0, val.bValidityStartTime);
+      this.$set(this.value1, 1, val.bValidityEndTime);
+      //C栏危害物质回显
+      this.form.cHarmMatterName = parseInt(this.form.cHarmMatterName);
+      if (this.form.cHarmMatterName != null) {
+        this.isYesDanger = '1';
+      }
+      //处理(来自设备/设施的危害)选中按钮未入库保存的选中实现
+      if (this.form.cIsMovingParts == "1"
+        || this.form.cIsHotSurfaces == "1"
+        || this.form.cIsColdSurfaces == "1"
+        || this.form.cIsVoltages == "1") {
+        this.isFacilityHazards = true;
+      }
+      //处理(设备内物质处于危险状态)选中按钮未入库保存的选中实现
+      if (this.form.cIsHighTemp == "1"
+        || this.form.cIsLowTemp == "1"
+        || this.form.cIsPosPressure == "1"
+        || this.form.cIsNegPressure == "1") {
+        this.isEquipmentHazards = true;
+      }
+      this.cIsToxic = this.form.cIsToxic;
+      this.cIsFlammable = this.form.cIsFlammable;
+      this.cIsOxidizing = this.form.cIsOxidizing;
+      this.cIsExplosive = this.form.cIsExplosive;
+      this.cIsCorrosive = this.form.cIsCorrosive;
+      this.cIsIrritantToxic = this.form.cIsIrritantToxic;
+      this.cIsHealthHazard = this.form.cIsHealthHazard;
+      this.cIsCompressedGas = this.form.cIsCompressedGas;
+      this.cIsEnvironmentalHazard = this.form.cIsEnvironmentalHazard;
+      this.eIsSafeGoggles = this.form.eIsSafeGoggles;
+      this.eIsFaceShield = this.form.eIsFaceShield;
+      this.eIsProtectGloves = this.form.eIsProtectGloves;
+      this.eIsRubberBoots = this.form.eIsRubberBoots;
+      this.eIsRubberApron = this.form.eIsRubberApron;
+      this.eIsProtectSuit = this.form.eIsProtectSuit;
+      this.eIsResProtect = this.form.eIsResProtect;
+      this.eIsFallArrest = this.form.eIsFallArrest;
+    },
+    //数据提交时保存的数据处理
+    dataSet() {
+      //B栏有效期开始结束时间处理
+      this.form.bValidityStartTime = this.value1[0];
+      this.form.bValidityEndTime = this.value1[1];
+      //C栏
+      this.form.cIsToxic = this.cIsToxic;
+      this.form.cIsFlammable = this.cIsFlammable;
+      this.form.cIsOxidizing = this.cIsOxidizing;
+      this.form.cIsExplosive = this.cIsExplosive;
+      this.form.cIsCorrosive = this.cIsCorrosive;
+      this.form.cIsIrritantToxic = this.cIsIrritantToxic;
+      this.form.cIsHealthHazard = this.cIsHealthHazard;
+      this.form.cIsCompressedGas = this.cIsCompressedGas;
+      this.form.cIsEnvironmentalHazard = this.cIsEnvironmentalHazard;
+      this.form.eIsSafeGoggles = this.eIsSafeGoggles;
+      this.form.eIsFaceShield = this.eIsFaceShield;
+      this.form.eIsProtectGloves = this.eIsProtectGloves;
+      this.form.eIsRubberBoots = this.eIsRubberBoots;
+      this.form.eIsRubberApron = this.eIsRubberApron;
+      this.form.eIsProtectSuit = this.eIsProtectSuit;
+      this.form.eIsResProtect = this.eIsResProtect;
+      this.form.eIsFallArrest = this.eIsFallArrest;
+
     },
   }
 };

部分文件因文件數量過多而無法顯示