Parcourir la source

漏点清单自动生成

jiangbiao il y a 1 an
Parent
commit
274d6feb06
46 fichiers modifiés avec 2342 ajouts et 98 suppressions
  1. 112 8
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/controller/TLeakagePointsController.java
  2. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/controller/TLeakagePointsPatrolController.java
  3. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/controller/TLeakagePointsRecordController.java
  4. 224 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/domain/TLeakagePointsPatrol.java
  5. 250 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/domain/TLeakagePointsRecord.java
  6. 61 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/mapper/TLeakagePointsPatrolMapper.java
  7. 61 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/mapper/TLeakagePointsRecordMapper.java
  8. 61 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/ITLeakagePointsPatrolService.java
  9. 61 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/ITLeakagePointsRecordService.java
  10. 93 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/impl/TLeakagePointsPatrolServiceImpl.java
  11. 93 0
      ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/impl/TLeakagePointsRecordServiceImpl.java
  12. 115 4
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
  13. 1 1
      ruoyi-admin/src/main/resources/application.yml
  14. 1 3
      ruoyi-admin/src/main/resources/mapper/asset/TLeakagePointsMapper.xml
  15. 115 0
      ruoyi-admin/src/main/resources/mapper/asset/TLeakagePointsPatrolMapper.xml
  16. 125 0
      ruoyi-admin/src/main/resources/mapper/asset/TLeakagePointsRecordMapper.xml
  17. BIN
      ruoyi-admin/src/main/resources/static/template/asset/assetPoints.xlsx
  18. 2 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  19. 1 1
      ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
  20. 1 1
      ruoyi-generator/src/main/resources/vm/vue/v3/index.vue.vm
  21. 44 0
      ruoyi-ui/src/api/asset/pointPatrol.js
  22. 44 0
      ruoyi-ui/src/api/asset/pointRecord.js
  23. 1 1
      ruoyi-ui/src/components/Pagination/index.vue
  24. 2 2
      ruoyi-ui/src/views/approval/index.vue
  25. 243 0
      ruoyi-ui/src/views/asset/pointPatrol/index.vue
  26. 194 0
      ruoyi-ui/src/views/asset/pointRecord/index.vue
  27. 204 52
      ruoyi-ui/src/views/asset/points/index.vue
  28. 1 1
      ruoyi-ui/src/views/file/file/index.vue
  29. 1 1
      ruoyi-ui/src/views/monitor/job/index.vue
  30. 1 1
      ruoyi-ui/src/views/monitor/job/log.vue
  31. 1 1
      ruoyi-ui/src/views/monitor/logininfor/index.vue
  32. 1 1
      ruoyi-ui/src/views/monitor/online/index.vue
  33. 1 1
      ruoyi-ui/src/views/monitor/operlog/index.vue
  34. 1 1
      ruoyi-ui/src/views/shiftmgr/log/index.vue
  35. 1 1
      ruoyi-ui/src/views/system/config/index.vue
  36. 2 2
      ruoyi-ui/src/views/system/dict/data.vue
  37. 2 2
      ruoyi-ui/src/views/system/dict/index.vue
  38. 1 1
      ruoyi-ui/src/views/system/notice/index.vue
  39. 1 1
      ruoyi-ui/src/views/system/post/index.vue
  40. 2 2
      ruoyi-ui/src/views/system/role/authUser.vue
  41. 2 2
      ruoyi-ui/src/views/system/role/index.vue
  42. 1 1
      ruoyi-ui/src/views/system/role/selectUser.vue
  43. 2 2
      ruoyi-ui/src/views/system/user/authRole.vue
  44. 2 2
      ruoyi-ui/src/views/system/user/index.vue
  45. 1 1
      ruoyi-ui/src/views/tool/gen/importTable.vue
  46. 1 1
      ruoyi-ui/src/views/tool/gen/index.vue

+ 112 - 8
ruoyi-admin/src/main/java/com/ruoyi/project/asset/controller/TLeakagePointsController.java

@@ -1,19 +1,21 @@
 package com.ruoyi.project.asset.controller;
 
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.project.asset.service.ITLeakagePointsService;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
 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 org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -21,6 +23,7 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.project.asset.domain.TLeakagePoints;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 漏点清单Controller
@@ -102,4 +105,105 @@ public class TLeakagePointsController extends BaseController
     {
         return toAjax(tLeakagePointsService.deleteTLeakagePointsByIds(ids));
     }
+
+
+    @Log(title = "漏点清单批量导入", businessType = BusinessType.INSERT)
+    @PostMapping("/importData")
+    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException {
+        //获取操作人员ID
+        Long userId = getUserId();
+        //报错行数统计
+        List<Integer> failRow = new ArrayList<>();
+        Workbook workbook = ExcelUtils.getWorkBook(file);
+        Sheet sheet = workbook.getSheetAt(0);
+        List<TLeakagePoints> list = new ArrayList<>();
+        int rowNum = sheet.getPhysicalNumberOfRows();
+        int failNumber = 0;
+        for (int i = 2; i < rowNum; i++) {
+            try {
+                logger.info("读取行数:" + i);
+                Row row = sheet.getRow(i);
+                int cellNum = row.getLastCellNum();
+                TLeakagePoints entity = new TLeakagePoints();
+                for (int j = 0; j < cellNum; j++) {
+                    Cell cell = row.getCell(j);
+                    if (cell == null) {
+                        continue;
+                    }
+                    String cellValue = ExcelUtils.getCellValue(cell);
+                    logger.info("cellValue:" + cellValue);
+                    if (j == 0) {
+                        //type
+                        entity.setPointNo(cellValue);
+                    } else if (j == 1) {
+                        //内容
+                        entity.setLeakagePosition(cellValue);
+                    } else if (j == 2) {
+                        //PID图号/管线号
+                        entity.setLeakageMedium(cellValue);
+                    } else if (j == 3) {
+                        //是分解具体位置及描述
+                        entity.setDiscoveryTime(DateUtils.parseDate(cellValue));
+                    } else if (j == 4) {
+                        //According to
+                        entity.setDiscoveryName(cellValue);
+                    } else if (j == 5) {
+                        //资产
+                        entity.setLeakageAmount(cellValue);
+                    } else if (j == 6) {
+                        //DCS操作
+                        entity.setSapNo(cellValue);
+                    } else if (j == 7) {
+                        //现场操作8小时
+                        entity.setLeakageEliminationTime(DateUtils.parseDate(cellValue));
+                    } else if (j == 8) {
+                        //现场操作8小时外
+                        entity.setLeakageEliminationFunc(cellValue);
+                    } else if (j == 9) {
+                        //巡检8小时
+                        entity.setListing(cellValue);
+                    } else if (j == 10) {
+                        //巡检8小时外
+                        entity.setPressurePlugging(cellValue);
+                    } else if (j == 11) {
+                        //维修8小时
+                        entity.setLeakageEliminationResult(cellValue);
+                    } else if (j == 12) {
+                        //维修8小时外
+                        entity.setNextCheckDate(DateUtils.parseDate(cellValue));
+                    } else if (j == 13) {
+                        //维修协调8小时
+                        entity.setRemarks(cellValue);
+                    }
+                }
+                entity.setCreaterCode(String.valueOf(userId));
+                logger.info("entity:" + entity);
+                list.add(entity);
+            } catch (Exception e) {
+                failNumber++;
+                logger.info("e:" + JSON.toJSONString(e));
+                failRow.add(i + 1);
+            }
+        }
+        int successNumber = 0;
+        int failNum = 0;
+        for (TLeakagePoints t : list
+        ) {
+            failNum++;
+            try {
+                //根据使用证、注册编号、位号,进行数据更新
+                add(t);
+                successNumber++;
+            } catch (Exception e) {
+                failNumber++;
+                logger.info("e:" + e);
+                failRow.add(failNum + 1);
+            }
+        }
+        logger.info("list:" + JSON.toJSONString(list));
+        logger.info("successNumber:" + successNumber);
+        logger.info("failNumber:" + failNumber);
+        logger.info("failRow:" + failRow);
+        return AjaxResult.success(String.valueOf(successNumber), failRow);
+    }
 }

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/controller/TLeakagePointsPatrolController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.project.asset.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.project.asset.domain.TLeakagePointsPatrol;
+import com.ruoyi.project.asset.service.ITLeakagePointsPatrolService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 漏点巡检Controller
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+@RestController
+@RequestMapping("/asset/pointPatrol")
+public class TLeakagePointsPatrolController extends BaseController
+{
+    @Autowired
+    private ITLeakagePointsPatrolService tLeakagePointsPatrolService;
+
+    /**
+     * 查询漏点巡检列表
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TLeakagePointsPatrol tLeakagePointsPatrol)
+    {
+        startPage();
+        List<TLeakagePointsPatrol> list = tLeakagePointsPatrolService.selectTLeakagePointsPatrolList(tLeakagePointsPatrol);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出漏点巡检列表
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:export')")
+    @Log(title = "漏点巡检", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TLeakagePointsPatrol tLeakagePointsPatrol)
+    {
+        List<TLeakagePointsPatrol> list = tLeakagePointsPatrolService.selectTLeakagePointsPatrolList(tLeakagePointsPatrol);
+        ExcelUtil<TLeakagePointsPatrol> util = new ExcelUtil<TLeakagePointsPatrol>(TLeakagePointsPatrol.class);
+        util.exportExcel(response, list, "漏点巡检数据");
+    }
+
+    /**
+     * 获取漏点巡检详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(tLeakagePointsPatrolService.selectTLeakagePointsPatrolById(id));
+    }
+
+    /**
+     * 新增漏点巡检
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:add')")
+    @Log(title = "漏点巡检", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TLeakagePointsPatrol tLeakagePointsPatrol)
+    {
+        return toAjax(tLeakagePointsPatrolService.insertTLeakagePointsPatrol(tLeakagePointsPatrol));
+    }
+
+    /**
+     * 修改漏点巡检
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:edit')")
+    @Log(title = "漏点巡检", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TLeakagePointsPatrol tLeakagePointsPatrol)
+    {
+        return toAjax(tLeakagePointsPatrolService.updateTLeakagePointsPatrol(tLeakagePointsPatrol));
+    }
+
+    /**
+     * 删除漏点巡检
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:remove')")
+    @Log(title = "漏点巡检", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tLeakagePointsPatrolService.deleteTLeakagePointsPatrolByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/controller/TLeakagePointsRecordController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.project.asset.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+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.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.project.asset.domain.TLeakagePointsRecord;
+import com.ruoyi.project.asset.service.ITLeakagePointsRecordService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 漏点巡检记录 Controller
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+@RestController
+@RequestMapping("/asset/pointRecord")
+public class TLeakagePointsRecordController extends BaseController
+{
+    @Autowired
+    private ITLeakagePointsRecordService tLeakagePointsRecordService;
+
+    /**
+     * 查询漏点巡检记录 列表
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointRecord:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TLeakagePointsRecord tLeakagePointsRecord)
+    {
+        startPage();
+        List<TLeakagePointsRecord> list = tLeakagePointsRecordService.selectTLeakagePointsRecordList(tLeakagePointsRecord);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出漏点巡检记录 列表
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointRecord:export')")
+    @Log(title = "漏点巡检记录 ", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TLeakagePointsRecord tLeakagePointsRecord)
+    {
+        List<TLeakagePointsRecord> list = tLeakagePointsRecordService.selectTLeakagePointsRecordList(tLeakagePointsRecord);
+        ExcelUtil<TLeakagePointsRecord> util = new ExcelUtil<TLeakagePointsRecord>(TLeakagePointsRecord.class);
+        util.exportExcel(response, list, "漏点巡检记录 数据");
+    }
+
+    /**
+     * 获取漏点巡检记录 详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointRecord:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(tLeakagePointsRecordService.selectTLeakagePointsRecordById(id));
+    }
+
+    /**
+     * 新增漏点巡检记录 
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointRecord:add')")
+    @Log(title = "漏点巡检记录 ", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TLeakagePointsRecord tLeakagePointsRecord)
+    {
+        return toAjax(tLeakagePointsRecordService.insertTLeakagePointsRecord(tLeakagePointsRecord));
+    }
+
+    /**
+     * 修改漏点巡检记录 
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointRecord:edit')")
+    @Log(title = "漏点巡检记录 ", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TLeakagePointsRecord tLeakagePointsRecord)
+    {
+        return toAjax(tLeakagePointsRecordService.updateTLeakagePointsRecord(tLeakagePointsRecord));
+    }
+
+    /**
+     * 删除漏点巡检记录 
+     */
+    @PreAuthorize("@ss.hasPermi('asset:pointRecord:remove')")
+    @Log(title = "漏点巡检记录 ", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tLeakagePointsRecordService.deleteTLeakagePointsRecordByIds(ids));
+    }
+}

+ 224 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/domain/TLeakagePointsPatrol.java

@@ -0,0 +1,224 @@
+package com.ruoyi.project.asset.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 漏点巡检对象 t_leakage_points_patrol
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+public class TLeakagePointsPatrol extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 班组 */
+    @Excel(name = "班组")
+    private String teamM;
+
+    /** 日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date checkDateM;
+
+    /** 检查人 */
+    @Excel(name = "检查人")
+    private String signM;
+
+    /** 班组 */
+    @Excel(name = "班组")
+    private String teamN;
+
+    /** 日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date checkDateN;
+
+    /** 检查人 */
+    @Excel(name = "检查人")
+    private String signN;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    /** 删除标识 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private String createrCode;
+
+    /** 创建日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 更新人 */
+    @Excel(name = "更新人")
+    private String updaterCode;
+
+    /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "更新日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setTeamM(String teamM) 
+    {
+        this.teamM = teamM;
+    }
+
+    public String getTeamM() 
+    {
+        return teamM;
+    }
+    public void setCheckDateM(Date checkDateM) 
+    {
+        this.checkDateM = checkDateM;
+    }
+
+    public Date getCheckDateM() 
+    {
+        return checkDateM;
+    }
+    public void setSignM(String signM) 
+    {
+        this.signM = signM;
+    }
+
+    public String getSignM() 
+    {
+        return signM;
+    }
+    public void setTeamN(String teamN) 
+    {
+        this.teamN = teamN;
+    }
+
+    public String getTeamN() 
+    {
+        return teamN;
+    }
+    public void setCheckDateN(Date checkDateN) 
+    {
+        this.checkDateN = checkDateN;
+    }
+
+    public Date getCheckDateN() 
+    {
+        return checkDateN;
+    }
+    public void setSignN(String signN) 
+    {
+        this.signN = signN;
+    }
+
+    public String getSignN() 
+    {
+        return signN;
+    }
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setCreaterCode(String createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public String getCreaterCode() 
+    {
+        return createrCode;
+    }
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+    public void setUpdaterCode(String updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public String getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("teamM", getTeamM())
+            .append("checkDateM", getCheckDateM())
+            .append("signM", getSignM())
+            .append("teamN", getTeamN())
+            .append("checkDateN", getCheckDateN())
+            .append("signN", getSignN())
+            .append("remarks", getRemarks())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .toString();
+    }
+}

+ 250 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/domain/TLeakagePointsRecord.java

@@ -0,0 +1,250 @@
+package com.ruoyi.project.asset.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 漏点巡检记录 对象 t_leakage_points_record
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+public class TLeakagePointsRecord extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 巡检id */
+    @Excel(name = "巡检id")
+    private Long patrolId;
+
+    /** 漏点编号 */
+    @Excel(name = "漏点编号")
+    private String pointNo;
+
+    /** 泄漏位置 */
+    @Excel(name = "泄漏位置")
+    private String leakagePosition;
+
+    /** 介质 */
+    @Excel(name = "介质")
+    private String leakageMedium;
+
+    /** 挂牌 */
+    @Excel(name = "挂牌")
+    private String suspendPlateM;
+
+    /** 泄露状态 */
+    @Excel(name = "泄露状态")
+    private String leakageStatusM;
+
+    /** 挂牌 */
+    @Excel(name = "挂牌")
+    private String suspendPlateN;
+
+    /** 泄露状态 */
+    @Excel(name = "泄露状态")
+    private String leakageStatusN;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    /** 删除标识 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private String createrCode;
+
+    /** 创建日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 更新人 */
+    @Excel(name = "更新人")
+    private String updaterCode;
+
+    /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "更新日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setPatrolId(Long patrolId) 
+    {
+        this.patrolId = patrolId;
+    }
+
+    public Long getPatrolId() 
+    {
+        return patrolId;
+    }
+    public void setPointNo(String pointNo) 
+    {
+        this.pointNo = pointNo;
+    }
+
+    public String getPointNo() 
+    {
+        return pointNo;
+    }
+    public void setLeakagePosition(String leakagePosition) 
+    {
+        this.leakagePosition = leakagePosition;
+    }
+
+    public String getLeakagePosition() 
+    {
+        return leakagePosition;
+    }
+    public void setLeakageMedium(String leakageMedium) 
+    {
+        this.leakageMedium = leakageMedium;
+    }
+
+    public String getLeakageMedium() 
+    {
+        return leakageMedium;
+    }
+    public void setSuspendPlateM(String suspendPlateM) 
+    {
+        this.suspendPlateM = suspendPlateM;
+    }
+
+    public String getSuspendPlateM() 
+    {
+        return suspendPlateM;
+    }
+    public void setLeakageStatusM(String leakageStatusM) 
+    {
+        this.leakageStatusM = leakageStatusM;
+    }
+
+    public String getLeakageStatusM() 
+    {
+        return leakageStatusM;
+    }
+    public void setSuspendPlateN(String suspendPlateN) 
+    {
+        this.suspendPlateN = suspendPlateN;
+    }
+
+    public String getSuspendPlateN() 
+    {
+        return suspendPlateN;
+    }
+    public void setLeakageStatusN(String leakageStatusN) 
+    {
+        this.leakageStatusN = leakageStatusN;
+    }
+
+    public String getLeakageStatusN() 
+    {
+        return leakageStatusN;
+    }
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+    public void setCreaterCode(String createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public String getCreaterCode() 
+    {
+        return createrCode;
+    }
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+    public void setUpdaterCode(String updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public String getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("patrolId", getPatrolId())
+            .append("pointNo", getPointNo())
+            .append("leakagePosition", getLeakagePosition())
+            .append("leakageMedium", getLeakageMedium())
+            .append("suspendPlateM", getSuspendPlateM())
+            .append("leakageStatusM", getLeakageStatusM())
+            .append("suspendPlateN", getSuspendPlateN())
+            .append("leakageStatusN", getLeakageStatusN())
+            .append("remarks", getRemarks())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/mapper/TLeakagePointsPatrolMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.project.asset.mapper;
+
+import java.util.List;
+import com.ruoyi.project.asset.domain.TLeakagePointsPatrol;
+
+/**
+ * 漏点巡检Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+public interface TLeakagePointsPatrolMapper 
+{
+    /**
+     * 查询漏点巡检
+     * 
+     * @param id 漏点巡检主键
+     * @return 漏点巡检
+     */
+    public TLeakagePointsPatrol selectTLeakagePointsPatrolById(Long id);
+
+    /**
+     * 查询漏点巡检列表
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 漏点巡检集合
+     */
+    public List<TLeakagePointsPatrol> selectTLeakagePointsPatrolList(TLeakagePointsPatrol tLeakagePointsPatrol);
+
+    /**
+     * 新增漏点巡检
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 结果
+     */
+    public int insertTLeakagePointsPatrol(TLeakagePointsPatrol tLeakagePointsPatrol);
+
+    /**
+     * 修改漏点巡检
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 结果
+     */
+    public int updateTLeakagePointsPatrol(TLeakagePointsPatrol tLeakagePointsPatrol);
+
+    /**
+     * 删除漏点巡检
+     * 
+     * @param id 漏点巡检主键
+     * @return 结果
+     */
+    public int deleteTLeakagePointsPatrolById(Long id);
+
+    /**
+     * 批量删除漏点巡检
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTLeakagePointsPatrolByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/mapper/TLeakagePointsRecordMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.project.asset.mapper;
+
+import java.util.List;
+import com.ruoyi.project.asset.domain.TLeakagePointsRecord;
+
+/**
+ * 漏点巡检记录 Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+public interface TLeakagePointsRecordMapper 
+{
+    /**
+     * 查询漏点巡检记录 
+     * 
+     * @param id 漏点巡检记录 主键
+     * @return 漏点巡检记录 
+     */
+    public TLeakagePointsRecord selectTLeakagePointsRecordById(Long id);
+
+    /**
+     * 查询漏点巡检记录 列表
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 漏点巡检记录 集合
+     */
+    public List<TLeakagePointsRecord> selectTLeakagePointsRecordList(TLeakagePointsRecord tLeakagePointsRecord);
+
+    /**
+     * 新增漏点巡检记录 
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 结果
+     */
+    public int insertTLeakagePointsRecord(TLeakagePointsRecord tLeakagePointsRecord);
+
+    /**
+     * 修改漏点巡检记录 
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 结果
+     */
+    public int updateTLeakagePointsRecord(TLeakagePointsRecord tLeakagePointsRecord);
+
+    /**
+     * 删除漏点巡检记录 
+     * 
+     * @param id 漏点巡检记录 主键
+     * @return 结果
+     */
+    public int deleteTLeakagePointsRecordById(Long id);
+
+    /**
+     * 批量删除漏点巡检记录 
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTLeakagePointsRecordByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/ITLeakagePointsPatrolService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.project.asset.service;
+
+import java.util.List;
+import com.ruoyi.project.asset.domain.TLeakagePointsPatrol;
+
+/**
+ * 漏点巡检Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+public interface ITLeakagePointsPatrolService 
+{
+    /**
+     * 查询漏点巡检
+     * 
+     * @param id 漏点巡检主键
+     * @return 漏点巡检
+     */
+    public TLeakagePointsPatrol selectTLeakagePointsPatrolById(Long id);
+
+    /**
+     * 查询漏点巡检列表
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 漏点巡检集合
+     */
+    public List<TLeakagePointsPatrol> selectTLeakagePointsPatrolList(TLeakagePointsPatrol tLeakagePointsPatrol);
+
+    /**
+     * 新增漏点巡检
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 结果
+     */
+    public int insertTLeakagePointsPatrol(TLeakagePointsPatrol tLeakagePointsPatrol);
+
+    /**
+     * 修改漏点巡检
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 结果
+     */
+    public int updateTLeakagePointsPatrol(TLeakagePointsPatrol tLeakagePointsPatrol);
+
+    /**
+     * 批量删除漏点巡检
+     * 
+     * @param ids 需要删除的漏点巡检主键集合
+     * @return 结果
+     */
+    public int deleteTLeakagePointsPatrolByIds(Long[] ids);
+
+    /**
+     * 删除漏点巡检信息
+     * 
+     * @param id 漏点巡检主键
+     * @return 结果
+     */
+    public int deleteTLeakagePointsPatrolById(Long id);
+}

+ 61 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/ITLeakagePointsRecordService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.project.asset.service;
+
+import java.util.List;
+import com.ruoyi.project.asset.domain.TLeakagePointsRecord;
+
+/**
+ * 漏点巡检记录 Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+public interface ITLeakagePointsRecordService 
+{
+    /**
+     * 查询漏点巡检记录 
+     * 
+     * @param id 漏点巡检记录 主键
+     * @return 漏点巡检记录 
+     */
+    public TLeakagePointsRecord selectTLeakagePointsRecordById(Long id);
+
+    /**
+     * 查询漏点巡检记录 列表
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 漏点巡检记录 集合
+     */
+    public List<TLeakagePointsRecord> selectTLeakagePointsRecordList(TLeakagePointsRecord tLeakagePointsRecord);
+
+    /**
+     * 新增漏点巡检记录 
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 结果
+     */
+    public int insertTLeakagePointsRecord(TLeakagePointsRecord tLeakagePointsRecord);
+
+    /**
+     * 修改漏点巡检记录 
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 结果
+     */
+    public int updateTLeakagePointsRecord(TLeakagePointsRecord tLeakagePointsRecord);
+
+    /**
+     * 批量删除漏点巡检记录 
+     * 
+     * @param ids 需要删除的漏点巡检记录 主键集合
+     * @return 结果
+     */
+    public int deleteTLeakagePointsRecordByIds(Long[] ids);
+
+    /**
+     * 删除漏点巡检记录 信息
+     * 
+     * @param id 漏点巡检记录 主键
+     * @return 结果
+     */
+    public int deleteTLeakagePointsRecordById(Long id);
+}

+ 93 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/impl/TLeakagePointsPatrolServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.project.asset.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.project.asset.mapper.TLeakagePointsPatrolMapper;
+import com.ruoyi.project.asset.domain.TLeakagePointsPatrol;
+import com.ruoyi.project.asset.service.ITLeakagePointsPatrolService;
+
+/**
+ * 漏点巡检Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+@Service
+public class TLeakagePointsPatrolServiceImpl implements ITLeakagePointsPatrolService 
+{
+    @Autowired
+    private TLeakagePointsPatrolMapper tLeakagePointsPatrolMapper;
+
+    /**
+     * 查询漏点巡检
+     * 
+     * @param id 漏点巡检主键
+     * @return 漏点巡检
+     */
+    @Override
+    public TLeakagePointsPatrol selectTLeakagePointsPatrolById(Long id)
+    {
+        return tLeakagePointsPatrolMapper.selectTLeakagePointsPatrolById(id);
+    }
+
+    /**
+     * 查询漏点巡检列表
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 漏点巡检
+     */
+    @Override
+    public List<TLeakagePointsPatrol> selectTLeakagePointsPatrolList(TLeakagePointsPatrol tLeakagePointsPatrol)
+    {
+        return tLeakagePointsPatrolMapper.selectTLeakagePointsPatrolList(tLeakagePointsPatrol);
+    }
+
+    /**
+     * 新增漏点巡检
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 结果
+     */
+    @Override
+    public int insertTLeakagePointsPatrol(TLeakagePointsPatrol tLeakagePointsPatrol)
+    {
+        return tLeakagePointsPatrolMapper.insertTLeakagePointsPatrol(tLeakagePointsPatrol);
+    }
+
+    /**
+     * 修改漏点巡检
+     * 
+     * @param tLeakagePointsPatrol 漏点巡检
+     * @return 结果
+     */
+    @Override
+    public int updateTLeakagePointsPatrol(TLeakagePointsPatrol tLeakagePointsPatrol)
+    {
+        return tLeakagePointsPatrolMapper.updateTLeakagePointsPatrol(tLeakagePointsPatrol);
+    }
+
+    /**
+     * 批量删除漏点巡检
+     * 
+     * @param ids 需要删除的漏点巡检主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTLeakagePointsPatrolByIds(Long[] ids)
+    {
+        return tLeakagePointsPatrolMapper.deleteTLeakagePointsPatrolByIds(ids);
+    }
+
+    /**
+     * 删除漏点巡检信息
+     * 
+     * @param id 漏点巡检主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTLeakagePointsPatrolById(Long id)
+    {
+        return tLeakagePointsPatrolMapper.deleteTLeakagePointsPatrolById(id);
+    }
+}

+ 93 - 0
ruoyi-admin/src/main/java/com/ruoyi/project/asset/service/impl/TLeakagePointsRecordServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.project.asset.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.project.asset.mapper.TLeakagePointsRecordMapper;
+import com.ruoyi.project.asset.domain.TLeakagePointsRecord;
+import com.ruoyi.project.asset.service.ITLeakagePointsRecordService;
+
+/**
+ * 漏点巡检记录 Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-04-01
+ */
+@Service
+public class TLeakagePointsRecordServiceImpl implements ITLeakagePointsRecordService 
+{
+    @Autowired
+    private TLeakagePointsRecordMapper tLeakagePointsRecordMapper;
+
+    /**
+     * 查询漏点巡检记录 
+     * 
+     * @param id 漏点巡检记录 主键
+     * @return 漏点巡检记录 
+     */
+    @Override
+    public TLeakagePointsRecord selectTLeakagePointsRecordById(Long id)
+    {
+        return tLeakagePointsRecordMapper.selectTLeakagePointsRecordById(id);
+    }
+
+    /**
+     * 查询漏点巡检记录 列表
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 漏点巡检记录 
+     */
+    @Override
+    public List<TLeakagePointsRecord> selectTLeakagePointsRecordList(TLeakagePointsRecord tLeakagePointsRecord)
+    {
+        return tLeakagePointsRecordMapper.selectTLeakagePointsRecordList(tLeakagePointsRecord);
+    }
+
+    /**
+     * 新增漏点巡检记录 
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 结果
+     */
+    @Override
+    public int insertTLeakagePointsRecord(TLeakagePointsRecord tLeakagePointsRecord)
+    {
+        return tLeakagePointsRecordMapper.insertTLeakagePointsRecord(tLeakagePointsRecord);
+    }
+
+    /**
+     * 修改漏点巡检记录 
+     * 
+     * @param tLeakagePointsRecord 漏点巡检记录 
+     * @return 结果
+     */
+    @Override
+    public int updateTLeakagePointsRecord(TLeakagePointsRecord tLeakagePointsRecord)
+    {
+        return tLeakagePointsRecordMapper.updateTLeakagePointsRecord(tLeakagePointsRecord);
+    }
+
+    /**
+     * 批量删除漏点巡检记录 
+     * 
+     * @param ids 需要删除的漏点巡检记录 主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTLeakagePointsRecordByIds(Long[] ids)
+    {
+        return tLeakagePointsRecordMapper.deleteTLeakagePointsRecordByIds(ids);
+    }
+
+    /**
+     * 删除漏点巡检记录 信息
+     * 
+     * @param id 漏点巡检记录 主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTLeakagePointsRecordById(Long id)
+    {
+        return tLeakagePointsRecordMapper.deleteTLeakagePointsRecordById(id);
+    }
+}

+ 115 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java

@@ -1,17 +1,19 @@
 package com.ruoyi.web.controller.common;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
+import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.constant.Constants;
@@ -37,6 +39,70 @@ public class CommonController
 
     private static final String FILE_DELIMETER = ",";
 
+    /**
+     * 导入下载模板
+     */
+    @RequestMapping("/template")
+    @ResponseBody
+    public void template(String type,HttpServletRequest request, HttpServletResponse response) throws IOException
+    {
+        String downloadname = "";
+        String url = "";
+        switch (type) {
+            case "staffmgr":
+                downloadname = "人员信息导入模板.xlsx";
+                url = "static/template/plant/staffmgr.xlsx";
+                break;
+            case "specYlrq":
+                downloadname = "压力容器导入模板.xlsx";
+                url = "static/template/sems/specYlrq.xlsx";
+                break;
+            case "specYlgd":
+                downloadname = "压力管道导入模板.xlsx";
+                url = "static/template/sems/specYlgd.xlsx";
+                break;
+            case "specGl":
+                downloadname = "锅炉导入模板.xlsx";
+                url = "static/template/sems/specGl.xlsx";
+                break;
+            case "specDzsb":
+                downloadname = "起重机械导入模板.xlsx";
+                url = "static/template/sems/specDzsb.xlsx";
+                break;
+            case "specCc":
+                downloadname = "场内机动车辆导入模板.xlsx";
+                url = "static/template/sems/specCc.xlsx";
+                break;
+            case "specDt":
+                downloadname = "电梯导入模板.xlsx";
+                url = "static/template/sems/specDt.xlsx";
+                break;
+            case "specMain":
+                downloadname = "设备总表格导入模板.xlsx";
+                url = "static/template/sems/specMain.xlsx";
+                break;
+            case "specAsset":
+                downloadname = "资产与运营清单导入模板.xlsx";
+                url = "static/template/sems/specAsset.xlsx";
+                break;
+            case "fixedAsset":
+                downloadname = "固定资产清单导入模板.xlsx";
+                url = "static/template/sems/fixedAsset.xlsx";
+                break;
+            case "approval":
+                downloadname = "批文清单导入模板.xlsx";
+                url = "static/template/ehs/approval.xlsx";
+                break;
+            case "assetPoints":
+                downloadname = "漏点清单导入模板.xlsx";
+                url = "static/template/asset/assetPoints.xlsx";
+                break;
+        }
+        InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(url);
+
+        downloadFile(downloadname, is, request, response);
+    }
+
     /**
      * 通用下载请求
      * 
@@ -160,4 +226,49 @@ public class CommonController
             log.error("下载文件失败", e);
         }
     }
+
+    public static void downloadFile(String filename, InputStream is, HttpServletRequest request, HttpServletResponse response) throws IOException {
+        response.reset();
+        if (filename.endsWith(".doc") || filename.endsWith(".docx")) {
+            response.setContentType("application/msword;charset=utf-8");
+        } else if (filename.endsWith(".xls") || filename.endsWith(".xlsx")) {
+            response.setContentType("application/vnd.ms-excel;charset=utf-8");
+        } else {
+            response.setHeader("content-type", "application/octet-stream");
+        }
+        //下载文件的名称
+        response.setHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("UTF-8"), "iso-8859-1"));
+        request.setCharacterEncoding("UTF-8");
+
+        ServletOutputStream out = null;
+        BufferedInputStream bis = null;
+        BufferedOutputStream bos = null;
+        try {
+            out = response.getOutputStream();
+            bis = new BufferedInputStream(is);
+            bos = new BufferedOutputStream(out);
+            byte[] buff = new byte[2048];
+            int bytesRead;
+            while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
+                bos.write(buff, 0, bytesRead);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if (bis != null) {
+                    bis.close();
+                }
+                if (bos != null) {
+                    bos.close();
+                }
+                if (is != null) {
+                    is.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
 }

+ 1 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -72,7 +72,7 @@ spring:
     # 端口,默认为6379
     port: 6379
     # 数据库索引
-    database: 2
+    database: 8
     # 密码
     password: ssy666666
     # 连接超时时间

+ 1 - 3
ruoyi-admin/src/main/resources/mapper/asset/TLeakagePointsMapper.xml

@@ -62,10 +62,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
         
-    <insert id="insertTLeakagePoints" parameterType="TLeakagePoints">
+    <insert id="insertTLeakagePoints" parameterType="TLeakagePoints" useGeneratedKeys="true" keyProperty="id">
         insert into t_leakage_points
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
             <if test="pointNo != null">point_no,</if>
             <if test="leakagePosition != null">leakage_position,</if>
             <if test="leakageMedium != null">leakage_medium,</if>
@@ -88,7 +87,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">dept_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
             <if test="pointNo != null">#{pointNo},</if>
             <if test="leakagePosition != null">#{leakagePosition},</if>
             <if test="leakageMedium != null">#{leakageMedium},</if>

+ 115 - 0
ruoyi-admin/src/main/resources/mapper/asset/TLeakagePointsPatrolMapper.xml

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.asset.mapper.TLeakagePointsPatrolMapper">
+    
+    <resultMap type="TLeakagePointsPatrol" id="TLeakagePointsPatrolResult">
+        <result property="id"    column="id"    />
+        <result property="teamM"    column="team_m"    />
+        <result property="checkDateM"    column="check_date_m"    />
+        <result property="signM"    column="sign_m"    />
+        <result property="teamN"    column="team_n"    />
+        <result property="checkDateN"    column="check_date_n"    />
+        <result property="signN"    column="sign_n"    />
+        <result property="remarks"    column="remarks"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+    </resultMap>
+
+    <sql id="selectTLeakagePointsPatrolVo">
+        select id, team_m, check_date_m, sign_m, team_n, check_date_n, sign_n, remarks, del_flag, creater_code, createdate, updater_code, updatedate, dept_id from t_leakage_points_patrol
+    </sql>
+
+    <select id="selectTLeakagePointsPatrolList" parameterType="TLeakagePointsPatrol" resultMap="TLeakagePointsPatrolResult">
+        <include refid="selectTLeakagePointsPatrolVo"/>
+        <where>  
+            <if test="teamM != null  and teamM != ''"> and team_m = #{teamM}</if>
+            <if test="checkDateM != null "> and check_date_m = #{checkDateM}</if>
+            <if test="signM != null  and signM != ''"> and sign_m = #{signM}</if>
+            <if test="teamN != null  and teamN != ''"> and team_n = #{teamN}</if>
+            <if test="checkDateN != null "> and check_date_n = #{checkDateN}</if>
+            <if test="signN != null  and signN != ''"> and sign_n = #{signN}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+            <if test="createrCode != null  and createrCode != ''"> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null  and updaterCode != ''"> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+        </where>
+    </select>
+    
+    <select id="selectTLeakagePointsPatrolById" parameterType="Long" resultMap="TLeakagePointsPatrolResult">
+        <include refid="selectTLeakagePointsPatrolVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTLeakagePointsPatrol" parameterType="TLeakagePointsPatrol" useGeneratedKeys="true" keyProperty="id">
+        insert into t_leakage_points_patrol
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="teamM != null">team_m,</if>
+            <if test="checkDateM != null">check_date_m,</if>
+            <if test="signM != null">sign_m,</if>
+            <if test="teamN != null">team_n,</if>
+            <if test="checkDateN != null">check_date_n,</if>
+            <if test="signN != null">sign_n,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="teamM != null">#{teamM},</if>
+            <if test="checkDateM != null">#{checkDateM},</if>
+            <if test="signM != null">#{signM},</if>
+            <if test="teamN != null">#{teamN},</if>
+            <if test="checkDateN != null">#{checkDateN},</if>
+            <if test="signN != null">#{signN},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTLeakagePointsPatrol" parameterType="TLeakagePointsPatrol">
+        update t_leakage_points_patrol
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="teamM != null">team_m = #{teamM},</if>
+            <if test="checkDateM != null">check_date_m = #{checkDateM},</if>
+            <if test="signM != null">sign_m = #{signM},</if>
+            <if test="teamN != null">team_n = #{teamN},</if>
+            <if test="checkDateN != null">check_date_n = #{checkDateN},</if>
+            <if test="signN != null">sign_n = #{signN},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTLeakagePointsPatrolById" parameterType="Long">
+        delete from t_leakage_points_patrol where id = #{id}
+    </delete>
+
+    <delete id="deleteTLeakagePointsPatrolByIds" parameterType="String">
+        delete from t_leakage_points_patrol where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 125 - 0
ruoyi-admin/src/main/resources/mapper/asset/TLeakagePointsRecordMapper.xml

@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.asset.mapper.TLeakagePointsRecordMapper">
+    
+    <resultMap type="TLeakagePointsRecord" id="TLeakagePointsRecordResult">
+        <result property="id"    column="id"    />
+        <result property="patrolId"    column="patrol_id"    />
+        <result property="pointNo"    column="point_no"    />
+        <result property="leakagePosition"    column="leakage_position"    />
+        <result property="leakageMedium"    column="leakage_medium"    />
+        <result property="suspendPlateM"    column="suspend_plate_m"    />
+        <result property="leakageStatusM"    column="leakage_status_m"    />
+        <result property="suspendPlateN"    column="suspend_plate_n"    />
+        <result property="leakageStatusN"    column="leakage_status_n"    />
+        <result property="remarks"    column="remarks"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+    </resultMap>
+
+    <sql id="selectTLeakagePointsRecordVo">
+        select id, patrol_id, point_no, leakage_position, leakage_medium, suspend_plate_m, leakage_status_m, suspend_plate_n, leakage_status_n, remarks, del_flag, creater_code, createdate, updater_code, updatedate, dept_id from t_leakage_points_record
+    </sql>
+
+    <select id="selectTLeakagePointsRecordList" parameterType="TLeakagePointsRecord" resultMap="TLeakagePointsRecordResult">
+        <include refid="selectTLeakagePointsRecordVo"/>
+        <where>  
+            <if test="patrolId != null "> and patrol_id = #{patrolId}</if>
+            <if test="pointNo != null  and pointNo != ''"> and point_no = #{pointNo}</if>
+            <if test="leakagePosition != null  and leakagePosition != ''"> and leakage_position = #{leakagePosition}</if>
+            <if test="leakageMedium != null  and leakageMedium != ''"> and leakage_medium = #{leakageMedium}</if>
+            <if test="suspendPlateM != null  and suspendPlateM != ''"> and suspend_plate_m = #{suspendPlateM}</if>
+            <if test="leakageStatusM != null  and leakageStatusM != ''"> and leakage_status_m = #{leakageStatusM}</if>
+            <if test="suspendPlateN != null  and suspendPlateN != ''"> and suspend_plate_n = #{suspendPlateN}</if>
+            <if test="leakageStatusN != null  and leakageStatusN != ''"> and leakage_status_n = #{leakageStatusN}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+            <if test="createrCode != null  and createrCode != ''"> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null  and updaterCode != ''"> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+        </where>
+    </select>
+    
+    <select id="selectTLeakagePointsRecordById" parameterType="Long" resultMap="TLeakagePointsRecordResult">
+        <include refid="selectTLeakagePointsRecordVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTLeakagePointsRecord" parameterType="TLeakagePointsRecord" useGeneratedKeys="true" keyProperty="id">
+        insert into t_leakage_points_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="patrolId != null">patrol_id,</if>
+            <if test="pointNo != null">point_no,</if>
+            <if test="leakagePosition != null">leakage_position,</if>
+            <if test="leakageMedium != null">leakage_medium,</if>
+            <if test="suspendPlateM != null">suspend_plate_m,</if>
+            <if test="leakageStatusM != null">leakage_status_m,</if>
+            <if test="suspendPlateN != null">suspend_plate_n,</if>
+            <if test="leakageStatusN != null">leakage_status_n,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="patrolId != null">#{patrolId},</if>
+            <if test="pointNo != null">#{pointNo},</if>
+            <if test="leakagePosition != null">#{leakagePosition},</if>
+            <if test="leakageMedium != null">#{leakageMedium},</if>
+            <if test="suspendPlateM != null">#{suspendPlateM},</if>
+            <if test="leakageStatusM != null">#{leakageStatusM},</if>
+            <if test="suspendPlateN != null">#{suspendPlateN},</if>
+            <if test="leakageStatusN != null">#{leakageStatusN},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTLeakagePointsRecord" parameterType="TLeakagePointsRecord">
+        update t_leakage_points_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="patrolId != null">patrol_id = #{patrolId},</if>
+            <if test="pointNo != null">point_no = #{pointNo},</if>
+            <if test="leakagePosition != null">leakage_position = #{leakagePosition},</if>
+            <if test="leakageMedium != null">leakage_medium = #{leakageMedium},</if>
+            <if test="suspendPlateM != null">suspend_plate_m = #{suspendPlateM},</if>
+            <if test="leakageStatusM != null">leakage_status_m = #{leakageStatusM},</if>
+            <if test="suspendPlateN != null">suspend_plate_n = #{suspendPlateN},</if>
+            <if test="leakageStatusN != null">leakage_status_n = #{leakageStatusN},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTLeakagePointsRecordById" parameterType="Long">
+        delete from t_leakage_points_record where id = #{id}
+    </delete>
+
+    <delete id="deleteTLeakagePointsRecordByIds" parameterType="String">
+        delete from t_leakage_points_record where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

BIN
ruoyi-admin/src/main/resources/static/template/asset/assetPoints.xlsx


+ 2 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -115,6 +115,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
+                .antMatchers("/common/template").anonymous()
+                .antMatchers("/pdf/**").anonymous()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()
                 .and()

+ 1 - 1
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm

@@ -400,7 +400,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
 #foreach ($column in $columns)
 #if($column.query)
         $column.javaField: null#if($foreach.count != $columns.size()),#end

+ 1 - 1
ruoyi-generator/src/main/resources/vm/vue/v3/index.vue.vm

@@ -377,7 +377,7 @@ const data = reactive({
   form: {},
   queryParams: {
     pageNum: 1,
-    pageSize: 10,
+    pageSize: 20,
     #foreach ($column in $columns)
 #if($column.query)
     $column.javaField: null#if($foreach.count != $columns.size()),#end

+ 44 - 0
ruoyi-ui/src/api/asset/pointPatrol.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询漏点巡检列表
+export function listPointPatrol(query) {
+  return request({
+    url: '/asset/pointPatrol/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询漏点巡检详细
+export function getPointPatrol(id) {
+  return request({
+    url: '/asset/pointPatrol/' + id,
+    method: 'get'
+  })
+}
+
+// 新增漏点巡检
+export function addPointPatrol(data) {
+  return request({
+    url: '/asset/pointPatrol',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改漏点巡检
+export function updatePointPatrol(data) {
+  return request({
+    url: '/asset/pointPatrol',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除漏点巡检
+export function delPointPatrol(id) {
+  return request({
+    url: '/asset/pointPatrol/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
ruoyi-ui/src/api/asset/pointRecord.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询漏点巡检记录 列表
+export function listPointRecord(query) {
+  return request({
+    url: '/asset/pointRecord/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询漏点巡检记录 详细
+export function getPointRecord(id) {
+  return request({
+    url: '/asset/pointRecord/' + id,
+    method: 'get'
+  })
+}
+
+// 新增漏点巡检记录 
+export function addPointRecord(data) {
+  return request({
+    url: '/asset/pointRecord',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改漏点巡检记录 
+export function updatePointRecord(data) {
+  return request({
+    url: '/asset/pointRecord',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除漏点巡检记录 
+export function delPointRecord(id) {
+  return request({
+    url: '/asset/pointRecord/' + id,
+    method: 'delete'
+  })
+}

+ 1 - 1
ruoyi-ui/src/components/Pagination/index.vue

@@ -36,7 +36,7 @@ export default {
     pageSizes: {
       type: Array,
       default() {
-        return [10, 20, 30, 50]
+        return [20, 50, 70, 100]
       }
     },
     // 移动端页码按钮的数量端默认值5

+ 2 - 2
ruoyi-ui/src/views/approval/index.vue

@@ -401,7 +401,7 @@ export default {
         fileList: [],
         queryParams: {
           pageNum: 1,
-          pageSize: 10,
+          pageSize: 20,
           linkId: null,
           linkName: 'ehsApproval',
         },
@@ -469,7 +469,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         plantCode: null,
         division: null,
         effetivedate: null,

+ 243 - 0
ruoyi-ui/src/views/asset/pointPatrol/index.vue

@@ -0,0 +1,243 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+      <el-form-item label="日期" prop="checkDateM">
+        <el-date-picker
+          v-model="queryParams.checkDateM"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择日期"
+          @change="handleQuery">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" 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>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :search="false"></right-toolbar>
+    </el-form>
+
+    <table class="patrolTable" style="width: 100%;">
+      <tr>
+        <td rowspan="3"  colspan="2">漏点巡检记录表</td>
+        <td>日期</td>
+        <td colspan="2">{{ parseTime(pointPatrol.checkDateM,'{y}年{m}月{d}日')}}</td>
+        <td colspan="2">{{ parseTime(pointPatrol.checkDateN,'{y}年{m}月{d}日')}}</td>
+      </tr>
+      <tr>
+        <td>班组</td>
+        <td colspan="2">{{pointPatrol.teamM}}班</td>
+        <td colspan="2">{{pointPatrol.teamN}}班</td>
+      </tr>
+      <tr>
+        <td>时间</td>
+        <td colspan="2">早班一次</td>
+        <td colspan="2">夜班一次</td>
+      </tr>
+      <tr>
+        <td>漏点编号</td>
+        <td>漏点位置</td>
+        <td>介质</td>
+        <td>挂牌(是/否)</td>
+        <td>泄露状态<br/>(未检出/轻微/严重)</td>
+        <td>挂牌(是/否)</td>
+        <td>泄露状态<br/>(未检出/轻微/严重)</td>
+      </tr>
+    </table>
+  </div>
+</template>
+
+<script>
+import {
+  addPointPatrol,
+  delPointPatrol,
+  getPointPatrol,
+  listPointPatrol,
+  updatePointPatrol
+} from "@/api/asset/pointPatrol";
+import {parseTime} from "../../../utils/ruoyi";
+import PointRecord from "@/views/asset/pointRecord/index.vue";
+
+export default {
+  name: "PointPatrol",
+  components: {PointRecord},
+  data() {
+    return {
+      // 页面高度
+      clientHeight: 300,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 漏点巡检表格数据
+      pointPatrolList: [],
+      pointPatrol: {},
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        teamM: null,
+        checkDateM: new Date(),
+        signM: null,
+        teamN: null,
+        checkDateN: null,
+        signN: null,
+        remarks: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    };
+  },
+  created() {
+    this.getList();
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = (document.body.clientHeight - 80) * 0.8
+    });
+  },
+  methods: {
+    parseTime,
+    /** 查询漏点巡检列表 */
+    getList() {
+      this.loading = true;
+      if (this.queryParams.checkDateM) {
+        this.queryParams.checkDateM = new Date();
+      }
+      listPointPatrol(this.queryParams).then(response => {
+        this.pointPatrolList = response.rows;
+        if (this.pointPatrolList.length > 0) {
+          this.pointPatrol = this.pointPatrolList[0]
+        }
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        teamM: null,
+        checkDateM: null,
+        signM: null,
+        teamN: null,
+        checkDateN: null,
+        signN: null,
+        remarks: null,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: 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
+      getPointPatrol(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) {
+            updatePointPatrol(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPointPatrol(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除漏点巡检编号为"' + ids + '"的数据项?').then(function () {
+        return delPointPatrol(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('asset/pointPatrol/export', {
+        ...this.queryParams
+      }, `pointPatrol_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
+
+<style scoped lang="scss">
+/* 表格边框 */
+table {
+  border-collapse: collapse;
+}
+
+table td {
+  border: 1px #b4b4b4 solid;
+  padding: 10px;
+  text-align: center;
+}
+</style>

+ 194 - 0
ruoyi-ui/src/views/asset/pointRecord/index.vue

@@ -0,0 +1,194 @@
+<template>
+  <div class="app-container">
+
+    <el-table v-loading="loading" :data="pointRecordList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column label="漏点编号" align="center" prop="pointNo" />
+      <el-table-column label="泄漏位置" align="center" prop="leakagePosition" />
+      <el-table-column label="介质" align="center" prop="leakageMedium" />
+      <el-table-column label="挂牌(是/否)" align="center" prop="suspendPlateM" />
+      <el-table-column label="泄露状态(未检出/轻微/严重)" align="center" prop="leakageStatusM" />
+      <el-table-column label="挂牌(是/否)" align="center" prop="suspendPlateN" />
+      <el-table-column label="泄露状态(未检出/轻微/严重)" align="center" prop="leakageStatusN" />
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listPointRecord, getPointRecord, delPointRecord, addPointRecord, updatePointRecord } from "@/api/asset/pointRecord";
+
+export default {
+  name: "PointRecord",
+  data() {
+    return {
+      // 页面高度
+      clientHeight: 300,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // 漏点巡检记录 表格数据
+      pointRecordList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        patrolId: null,
+        pointNo: null,
+        leakagePosition: null,
+        leakageMedium: null,
+        suspendPlateM: null,
+        leakageStatusM: null,
+        suspendPlateN: null,
+        leakageStatusN: null,
+        remarks: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        deptId: [
+          { required: true, message: "部门编号不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = (document.body.clientHeight - 80) * 0.8
+    });
+  },
+  methods: {
+    /** 查询漏点巡检记录 列表 */
+    getList() {
+      this.loading = true;
+      listPointRecord(this.queryParams).then(response => {
+        this.pointRecordList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        patrolId: null,
+        pointNo: null,
+        leakagePosition: null,
+        leakageMedium: null,
+        suspendPlateM: null,
+        leakageStatusM: null,
+        suspendPlateN: null,
+        leakageStatusN: null,
+        remarks: null,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: 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
+      getPointRecord(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) {
+            updatePointRecord(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPointRecord(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除漏点巡检记录 编号为"' + ids + '"的数据项?').then(function() {
+        return delPointRecord(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('asset/pointRecord/export', {
+        ...this.queryParams
+      }, `pointRecord_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 204 - 52
ruoyi-ui/src/views/asset/points/index.vue

@@ -22,9 +22,19 @@
           v-model="queryParams.leakageMedium"
           placeholder="请输入泄漏介质"
           clearable
-          @keyup.enter.native="handleQuery"
+          @change="handleQuery"
         />
       </el-form-item>
+
+      <el-form-item label="消漏结果" prop="leakageEliminationResult">
+        <el-select clearable v-model="queryParams.leakageEliminationResult" placeholder="请选择消漏结果" @change="handleQuery">
+          <el-option v-for="dict in dict.type.leakage_result"
+                     :value="dict.value"
+                     :label="dict.label"
+                     :key="dict.value"/>
+        </el-select>
+      </el-form-item>
+
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -40,7 +50,8 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['asset:points:add']"
-        >新增</el-button>
+        >新增
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -51,7 +62,8 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['asset:points:edit']"
-        >修改</el-button>
+        >修改
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -62,7 +74,19 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['asset:points:remove']"
-        >删除</el-button>
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+          v-hasPermi="['asset:points:add']"
+        >导入
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -72,40 +96,56 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['asset:points:export']"
-        >导出</el-button>
+        >导出
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-date"
+          size="mini"
+          @click="openRecord"
+        >日常巡检记录
+        </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="pointsList" @selection-change="handleSelectionChange" :height="clientHeight" border>
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="漏点编号" align="center" prop="pointNo"  width="180" fixed="left"/>
-      <el-table-column label="泄漏位置" align="center" prop="leakagePosition"  width="180"/>
-      <el-table-column label="泄漏介质" align="center" prop="leakageMedium"  width="180"/>
+    <el-table v-loading="loading" :data="pointsList" @selection-change="handleSelectionChange" :height="clientHeight"
+              border>
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="漏点编号" align="center" prop="pointNo" width="130" fixed="left"/>
+      <el-table-column label="泄漏位置" align="center" prop="leakagePosition" width="230" fixed="left"/>
+      <el-table-column label="泄漏介质" align="center" prop="leakageMedium" width="120" fixed="left"/>
       <el-table-column label="发现时间" align="center" prop="discoveryTime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.discoveryTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="发现人员" align="center" prop="discoveryName"  width="180"/>
-      <el-table-column label="泄漏量" align="center" prop="leakageAmount"  width="180"/>
-      <el-table-column label="SAP通知单号" align="center" prop="sapNo"  width="180"/>
+      <el-table-column label="发现人员" align="center" prop="discoveryName" width="180"/>
+      <el-table-column label="泄漏量" align="center" prop="leakageAmount" width="180"/>
+      <el-table-column label="SAP通知单号" align="center" prop="sapNo" width="180"/>
       <el-table-column label="消漏时间" align="center" prop="leakageEliminationTime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.leakageEliminationTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="消漏方法" align="center" prop="leakageEliminationFunc"  width="180"/>
-      <el-table-column label="挂牌" align="center" prop="listing"  width="180"/>
-      <el-table-column label="带压堵漏" align="center" prop="pressurePlugging"  width="180"/>
-      <el-table-column label="消漏结果" align="center" prop="leakageEliminationResult"  width="180"/>
+      <el-table-column label="消漏方法" align="center" prop="leakageEliminationFunc" width="180"/>
+      <el-table-column label="挂牌" align="center" prop="listing" width="180"/>
+      <el-table-column label="带压堵漏" align="center" prop="pressurePlugging" width="180"/>
+      <el-table-column label="消漏结果" align="center" prop="leakageEliminationResult" width="100">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.leakage_result" :value="scope.row.leakageEliminationResult"/>
+        </template>
+      </el-table-column>
       <el-table-column label="下次检修日期" align="center" prop="nextCheckDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.nextCheckDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="备注" align="center" prop="remarks" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
+      <el-table-column label="备注" align="center" prop="remarks" width="230"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -113,14 +153,16 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['asset:points:edit']"
-          >修改</el-button>
+          >修改
+          </el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['asset:points:remove']"
-          >删除</el-button>
+          >删除
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -134,64 +176,69 @@
     />
 
     <!-- 添加或修改漏点清单对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body  :close-on-click-modal="false">
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="漏点编号" prop="pointNo">
-          <el-input v-model="form.pointNo" placeholder="请输入漏点编号" />
+          <el-input v-model="form.pointNo" placeholder="请输入漏点编号"/>
         </el-form-item>
         <el-form-item label="泄漏位置" prop="leakagePosition">
-          <el-input v-model="form.leakagePosition" placeholder="请输入泄漏位置" />
+          <el-input v-model="form.leakagePosition" placeholder="请输入泄漏位置"/>
         </el-form-item>
         <el-form-item label="泄漏介质" prop="leakageMedium">
-          <el-input v-model="form.leakageMedium" placeholder="请输入泄漏介质" />
+          <el-input v-model="form.leakageMedium" placeholder="请输入泄漏介质"/>
         </el-form-item>
         <el-form-item label="发现时间" prop="discoveryTime">
           <el-date-picker clearable
-            v-model="form.discoveryTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择发现时间">
+                          v-model="form.discoveryTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择发现时间">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="发现人员" prop="discoveryName">
-          <el-input v-model="form.discoveryName" placeholder="请输入发现人员" />
+          <el-input v-model="form.discoveryName" placeholder="请输入发现人员"/>
         </el-form-item>
         <el-form-item label="泄漏量" prop="leakageAmount">
-          <el-input v-model="form.leakageAmount" placeholder="请输入泄漏量" />
+          <el-input v-model="form.leakageAmount" placeholder="请输入泄漏量"/>
         </el-form-item>
         <el-form-item label="SAP通知单号" prop="sapNo">
-          <el-input v-model="form.sapNo" placeholder="请输入SAP通知单号" />
+          <el-input v-model="form.sapNo" placeholder="请输入SAP通知单号"/>
         </el-form-item>
         <el-form-item label="消漏时间" prop="leakageEliminationTime">
           <el-date-picker clearable
-            v-model="form.leakageEliminationTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择消漏时间">
+                          v-model="form.leakageEliminationTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择消漏时间">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="消漏方法" prop="leakageEliminationFunc">
-          <el-input v-model="form.leakageEliminationFunc" placeholder="请输入消漏方法" />
+          <el-input v-model="form.leakageEliminationFunc" placeholder="请输入消漏方法"/>
         </el-form-item>
         <el-form-item label="挂牌" prop="listing">
-          <el-input v-model="form.listing" placeholder="请输入挂牌" />
+          <el-input v-model="form.listing" placeholder="请输入挂牌"/>
         </el-form-item>
         <el-form-item label="带压堵漏" prop="pressurePlugging">
-          <el-input v-model="form.pressurePlugging" placeholder="请输入带压堵漏" />
+          <el-input v-model="form.pressurePlugging" placeholder="请输入带压堵漏"/>
         </el-form-item>
         <el-form-item label="消漏结果" prop="leakageEliminationResult">
-          <el-input v-model="form.leakageEliminationResult" placeholder="请输入消漏结果" />
+          <el-select clearable v-model="form.leakageEliminationResult" placeholder="请选择消漏结果">
+            <el-option v-for="dict in dict.type.leakage_result"
+                       :value="dict.value"
+                       :label="dict.label"
+                       :key="dict.value"/>
+          </el-select>
         </el-form-item>
         <el-form-item label="下次检修日期" prop="nextCheckDate">
           <el-date-picker clearable
-            v-model="form.nextCheckDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择下次检修日期">
+                          v-model="form.nextCheckDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择下次检修日期">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="备注" prop="remarks">
-          <el-input v-model="form.remarks" placeholder="请输入备注" />
+          <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -199,16 +246,84 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog title="日常巡检记录" :visible.sync="record.open" width="80%" append-to-body
+               :close-on-click-modal="false">
+      <point-patrol/>
+    </el-dialog>
+
+    <!-- 用户导入对话框 -->
+    <el-dialog :close-on-click-modal="false" :title="upload.title" :visible.sync="upload.open" append-to-body
+               width="400px">
+      <el-upload
+        ref="upload"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :auto-upload="false"
+        :disabled="upload.isUploading"
+        :headers="upload.headers"
+        :limit="1"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        accept=".xlsx, .xls"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div slot="tip" class="el-upload__tip">
+          <!--          <el-checkbox v-model="upload.updateSupport"/>-->
+          <!--          是否更新已经存在的用户数据-->
+          <el-link style="font-size:12px" type="info" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div slot="tip" class="el-upload__tip" style="color:red">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button v-loading.fullscreen.lock="fullscreenLoading" type="primary" @click="submitFileForm">确 定
+        </el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+    <form ref="downloadFileForm" :action="upload.downloadAction" target="FORMSUBMIT">
+      <input :value="upload.type" hidden name="type"/>
+    </form>
   </div>
 </template>
 
 <script>
-import { listPoints, getPoints, delPoints, addPoints, updatePoints } from "@/api/asset/points";
+import {addPoints, delPoints, getPoints, listPoints, updatePoints} from "@/api/asset/points";
+import PointRecord from "@/views/asset/pointRecord/index.vue";
+import PointPatrol from "@/views/asset/pointPatrol/index.vue";
+import {getToken} from "@/utils/auth";
 
 export default {
+  dicts: ['leakage_result'],
   name: "Points",
+  components: {PointPatrol, PointRecord},
   data() {
     return {
+      fullscreenLoading: false,
+      record: {
+        open: false
+      },
+      // 用户导入参数
+      upload: {
+        downloadAction: process.env.VUE_APP_BASE_API + '/common/template',
+        type: "assetPoints",
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/asset/points/importData"
+      },
       // 页面高度
       clientHeight: 300,
       // 遮罩层
@@ -232,7 +347,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         pointNo: null,
         leakagePosition: null,
         leakageMedium: null,
@@ -256,8 +371,7 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {
-      }
+      rules: {}
     };
   },
   created() {
@@ -268,6 +382,43 @@ export default {
     });
   },
   methods: {
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+      this.fullscreenLoading = true;
+    },
+    // 文件上传中处理
+    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.fullscreenLoading = false;
+      if (response.data.length > 0) {
+        let failrow = ''
+        for (let i = 0; i < response.data.length; i++) {
+          failrow += response.data[i] + ','
+        }
+        this.$alert('导入成功条数:' + response.msg + '<br>' + '失败行数:' + failrow, '导入结果', {dangerouslyUseHTMLString: true});
+      } else {
+        this.$alert('导入成功条数:' + response.msg, '导入结果', {dangerouslyUseHTMLString: true});
+      }
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      this.$refs['downloadFileForm'].submit()
+    },
+    openRecord() {
+      this.record.open = true;
+    },
     /** 查询漏点清单列表 */
     getList() {
       this.loading = true;
@@ -322,7 +473,7 @@ export default {
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
@@ -364,12 +515,13 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除漏点清单编号为"' + ids + '"的数据项?').then(function() {
+      this.$modal.confirm('是否确认删除漏点清单编号为"' + ids + '"的数据项?').then(function () {
         return delPoints(ids);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      }).catch(() => {
+      });
     },
     /** 导出按钮操作 */
     handleExport() {

+ 1 - 1
ruoyi-ui/src/views/file/file/index.vue

@@ -207,7 +207,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         fileUrl: null,
         fileName: null,
         uploadDate: null,

+ 1 - 1
ruoyi-ui/src/views/monitor/job/index.vue

@@ -327,7 +327,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         jobName: undefined,
         jobGroup: undefined,
         status: undefined

+ 1 - 1
ruoyi-ui/src/views/monitor/job/log.vue

@@ -209,7 +209,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         jobName: undefined,
         jobGroup: undefined,
         status: undefined

+ 1 - 1
ruoyi-ui/src/views/monitor/logininfor/index.vue

@@ -160,7 +160,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         ipaddr: undefined,
         userName: undefined,
         status: undefined

+ 1 - 1
ruoyi-ui/src/views/monitor/online/index.vue

@@ -76,7 +76,7 @@ export default {
       // 表格数据
       list: [],
       pageNum: 1,
-      pageSize: 10,
+      pageSize: 20,
       // 查询参数
       queryParams: {
         ipaddr: undefined,

+ 1 - 1
ruoyi-ui/src/views/monitor/operlog/index.vue

@@ -237,7 +237,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         operIp: undefined,
         title: undefined,
         operName: undefined,

+ 1 - 1
ruoyi-ui/src/views/shiftmgr/log/index.vue

@@ -519,7 +519,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         shiftTeam: null,
         takeOverTime: null,
         giveOverTime: null,

+ 1 - 1
ruoyi-ui/src/views/system/config/index.vue

@@ -211,7 +211,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         configName: undefined,
         configKey: undefined,
         configType: undefined

+ 2 - 2
ruoyi-ui/src/views/system/dict/data.vue

@@ -250,7 +250,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         dictType: undefined,
         dictLabel: undefined,
         status: undefined
@@ -399,4 +399,4 @@ export default {
     }
   }
 };
-</script>
+</script>

+ 2 - 2
ruoyi-ui/src/views/system/dict/index.vue

@@ -218,7 +218,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         dictName: undefined,
         dictType: undefined,
         status: undefined
@@ -344,4 +344,4 @@ export default {
     }
   }
 };
-</script>
+</script>

+ 1 - 1
ruoyi-ui/src/views/system/notice/index.vue

@@ -198,7 +198,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         noticeTitle: undefined,
         createBy: undefined,
         status: undefined

+ 1 - 1
ruoyi-ui/src/views/system/post/index.vue

@@ -185,7 +185,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         postCode: undefined,
         postName: undefined,
         status: undefined

+ 2 - 2
ruoyi-ui/src/views/system/role/authUser.vue

@@ -124,7 +124,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         roleId: undefined,
         userName: undefined,
         phonenumber: undefined
@@ -196,4 +196,4 @@ export default {
     }
   }
 };
-</script>
+</script>

+ 2 - 2
ruoyi-ui/src/views/system/role/index.vue

@@ -316,7 +316,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         roleName: undefined,
         roleKey: undefined,
         status: undefined
@@ -602,4 +602,4 @@ export default {
     }
   }
 };
-</script>
+</script>

+ 1 - 1
ruoyi-ui/src/views/system/role/selectUser.vue

@@ -79,7 +79,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         roleId: undefined,
         userName: undefined,
         phonenumber: undefined

+ 2 - 2
ruoyi-ui/src/views/system/user/authRole.vue

@@ -57,7 +57,7 @@ export default {
       // 分页信息
       total: 0,
       pageNum: 1,
-      pageSize: 10,
+      pageSize: 20,
       // 选中角色编号
       roleIds:[],
       // 角色信息
@@ -114,4 +114,4 @@ export default {
     },
   },
 };
-</script>
+</script>

+ 2 - 2
ruoyi-ui/src/views/system/user/index.vue

@@ -406,7 +406,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         userName: undefined,
         phonenumber: undefined,
         status: undefined,
@@ -667,4 +667,4 @@ export default {
     }
   }
 };
-</script>
+</script>

+ 1 - 1
ruoyi-ui/src/views/tool/gen/importTable.vue

@@ -62,7 +62,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         tableName: undefined,
         tableComment: undefined
       }

+ 1 - 1
ruoyi-ui/src/views/tool/gen/index.vue

@@ -215,7 +215,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         tableName: undefined,
         tableComment: undefined
       },