Просмотр исходного кода

feat(ps): 完善设备巡检导出功能及界面优化

- 优化灭火器检查记录导出逻辑,支持多sheet页导出
- 更新雨淋阀检查状态显示逻辑,统一使用✓符号表示正常状态
- 重构应急物资柜导出模板,支持按类型分类导出
- 修复多个设备管理界面默认巡检类型设置问题
- 优化巡检记录查询条件,将年月选择器设为必选项
- 改进应急物资柜列表状态字段显示方式,使用字典标签展示
- 调整多个设备巡检页面的查询参数初始化逻辑
- 优化导出文件命名规则,确保文件名包含完整的时间信息
- 统一巡检相关界面的表单重置逻辑,提高代码复用性
- 修复物资柜导出时检查人签名图片插入问题
jiangbiao 2 дней назад
Родитель
Сommit
f34175f920
41 измененных файлов с 233 добавлено и 258 удалено
  1. 96 11
      master/src/main/java/com/ruoyi/project/ps/inspection/controller/TPsInspectionExtinguisherController.java
  2. 1 1
      master/src/main/java/com/ruoyi/project/ps/inspection/controller/TPsInspectionRainvalveController.java
  3. 52 128
      master/src/main/java/com/ruoyi/project/ps/inspection/controller/TPsInspectionWardrobeController.java
  4. 1 0
      master/src/main/resources/mybatis/eoeg/TEoegLockChangeMapper.xml
  5. 2 2
      ui/src/views/ps/dev/cabinet/index.vue
  6. 2 2
      ui/src/views/ps/dev/callsystem/index.vue
  7. 2 2
      ui/src/views/ps/dev/coffer/index.vue
  8. 2 2
      ui/src/views/ps/dev/curtain/index.vue
  9. 2 2
      ui/src/views/ps/dev/extinguisher/index.vue
  10. 2 2
      ui/src/views/ps/dev/eyewash/index.vue
  11. 2 2
      ui/src/views/ps/dev/fgs/index.vue
  12. 2 2
      ui/src/views/ps/dev/firedoor/index.vue
  13. 2 2
      ui/src/views/ps/dev/hydrant/index.vue
  14. 2 2
      ui/src/views/ps/dev/lift/index.vue
  15. 2 2
      ui/src/views/ps/dev/monitor/index.vue
  16. 2 2
      ui/src/views/ps/dev/pit/index.vue
  17. 2 2
      ui/src/views/ps/dev/rainvalve/index.vue
  18. 2 2
      ui/src/views/ps/dev/steam/index.vue
  19. 2 2
      ui/src/views/ps/dev/sump/index.vue
  20. 2 2
      ui/src/views/ps/dev/utilitystation/index.vue
  21. 2 2
      ui/src/views/ps/dev/ventvalve/index.vue
  22. 11 4
      ui/src/views/ps/dev/wardrobe/index.vue
  23. 2 2
      ui/src/views/ps/inspection/alarm/index.vue
  24. 2 2
      ui/src/views/ps/inspection/cabinet/index.vue
  25. 2 2
      ui/src/views/ps/inspection/callsystem/index.vue
  26. 2 2
      ui/src/views/ps/inspection/coffer/index.vue
  27. 2 2
      ui/src/views/ps/inspection/curtain/index.vue
  28. 2 2
      ui/src/views/ps/inspection/extinguisher/index.vue
  29. 2 2
      ui/src/views/ps/inspection/eyewash/index.vue
  30. 2 2
      ui/src/views/ps/inspection/fgs/index.vue
  31. 2 2
      ui/src/views/ps/inspection/firedoor/index.vue
  32. 2 2
      ui/src/views/ps/inspection/hydrant/index.vue
  33. 2 2
      ui/src/views/ps/inspection/lift/index.vue
  34. 2 2
      ui/src/views/ps/inspection/monitor/index.vue
  35. 2 2
      ui/src/views/ps/inspection/pit/index.vue
  36. 2 2
      ui/src/views/ps/inspection/rainvalve/index.vue
  37. 2 2
      ui/src/views/ps/inspection/steam/index.vue
  38. 2 2
      ui/src/views/ps/inspection/sump/index.vue
  39. 2 2
      ui/src/views/ps/inspection/utilitystation/index.vue
  40. 2 2
      ui/src/views/ps/inspection/ventvalve/index.vue
  41. 2 44
      ui/src/views/ps/inspection/wardrobe/index.vue

+ 96 - 11
master/src/main/java/com/ruoyi/project/ps/inspection/controller/TPsInspectionExtinguisherController.java

@@ -333,19 +333,10 @@ public class TPsInspectionExtinguisherController extends BaseController {
             }
             sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 7));
 
-            rowIndex++;
-            Row explanationRow2 = sheet.createRow(rowIndex);
-            explanationRow2.setHeight((short) 300);
-            explanationRow2.createCell(0).setCellValue("1.检查频率为每个月一次。");
-            for (int i = 1; i < 8; i++) {
-                explanationRow2.createCell(i);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 7));
-
             rowIndex++;
             Row explanationRow3 = sheet.createRow(rowIndex);
             explanationRow3.setHeight((short) 300);
-            explanationRow3.createCell(0).setCellValue("2.检查正常打「√」有不正常情况打「X」,并在备注中说明,包括整改结果。");
+            explanationRow3.createCell(0).setCellValue("检查正常打「√」有不正常情况打「X」,并在备注中说明,包括整改结果。");
             for (int i = 1; i < 8; i++) {
                 explanationRow3.createCell(i);
             }
@@ -356,13 +347,107 @@ public class TPsInspectionExtinguisherController extends BaseController {
             CellStyle wrapStyle = wb.createCellStyle();
             wrapStyle.setWrapText(true);
             Cell explanationCell4 = explanationRow4.createCell(0);
-            explanationCell4.setCellValue("3.检查内容:灭火器外观是否清洁,标识完好,压力是否正常,是否有破损。");
+            explanationCell4.setCellValue("检查内容:灭火器箱外观、标识等是否完好,是否在有效期5年内;灭火器箱和灭火器箱内灭火器数量是否与要求相符,放置是否符合规范;灭火器外观、压力、铅封、胶管等是否完好,箱内检查卡是否保存完好;灭火器箱前是否摆放其它物品阻塞通道。");
             explanationCell4.setCellStyle(wrapStyle);
             for (int i = 1; i < 8; i++) {
                 explanationRow4.createCell(i).setCellStyle(wrapStyle);
             }
             sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 7));
 
+            // ==================== Sheet2: devType为2的记录 ====================
+            XSSFSheet sheet2 = wb.getSheetAt(1);
+            int rowIndex2 = 6;
+            int num2 = 1;
+            Row row6Sheet2 = sheet2.getRow(rowIndex2);
+            Cell originalcell2 = row6Sheet2.getCell(0);
+            CellStyle originalStyle2 = originalcell2.getCellStyle();
+            if (!list.isEmpty()) {
+                TPsInspectionExtinguisher extinguisher2 = list.get(0);
+                TPsPatrolPlan plan2 = tPsPatrolPlanService.selectTPsPatrolPlanById(extinguisher2.getPlanId());
+
+                Row row3Sheet2 = sheet2.getRow(2);
+                row3Sheet2.getCell(0).setCellValue("年度:" + plan2.getPlanYear() + " 年");
+
+                String r5c11Str2 = "检查时间:  月   日";
+                String confirmerSignUrl2 = "";
+                if (plan2.getConfirmDate() != null && StringUtils.isNotEmpty(plan2.getConfirmed())) {
+                    Calendar calendar2 = Calendar.getInstance();
+                    calendar2.setTime(plan2.getConfirmDate());
+                    r5c11Str2 = "检查时间:" + (calendar2.get(Calendar.MONTH) + 1) + "月 " + calendar2.get(Calendar.DAY_OF_MONTH) + "日";
+                    SysUser sysUser2 = sysUserService.selectUserById(Long.valueOf(plan2.getConfirmed()));
+                    confirmerSignUrl2 = sysUser2.getSignUrl();
+                }
+                Row row5Sheet2 = sheet2.getRow(3);
+                row5Sheet2.getCell(4).setCellValue(r5c11Str2);
+
+                for (TPsInspectionExtinguisher item : list) {
+                    if (!"2".equals(item.getDevType()))
+                        continue;
+                    Row row = sheet2.createRow(rowIndex2);
+                    row.setHeight((short) 300);
+                    row.createCell(0).setCellValue(num2);
+                    row.createCell(1).setCellValue(item.getFireExtinguisherNo());
+                    row.createCell(2).setCellValue(item.getPosition());
+                    row.createCell(3).setCellValue(item.getFireExtinguisherModel());
+                    row.createCell(4).setCellValue(item.getWeight1());
+                    row.createCell(5).setCellValue(item.getWeight2());
+                    row.createCell(6).setCellValue(item.getWeight3());
+                    row.createCell(7).setCellValue(item.getWeight4());
+                    row.createCell(8).setCellValue("1".equals(item.getCheck1()) ? "✓" : item.getCheck1());
+                    row.createCell(9).setCellValue("1".equals(item.getCheck2()) ? "✓" : item.getCheck2());
+                    row.createCell(10).setCellValue("1".equals(item.getCheck3()) ? "✓" : item.getCheck3());
+                    row.createCell(11).setCellValue("1".equals(item.getCheck4()) ? "✓" : item.getCheck4());
+                    for (int i = 0; i < 12; i++) {
+                        row.getCell(i).setCellStyle(originalStyle2);
+                    }
+                    num2++;
+                    rowIndex2++;
+                }
+
+                // 检查人行
+                Row confirmerRow2 = sheet2.createRow(rowIndex2);
+                confirmerRow2.setHeight((short) 800);
+                confirmerRow2.createCell(0).setCellValue("检查人");
+                for (int i = 1; i < 12; i++) {
+                    confirmerRow2.createCell(i);
+                }
+                if (StringUtils.isNotEmpty(confirmerSignUrl2))
+                    ExcelUtils.insertPicture(wb, sheet2, confirmerSignUrl2, rowIndex2, 8, 1, 1);
+                for (int i = 0; i < 12; i++) {
+                    confirmerRow2.getCell(i).setCellStyle(originalStyle2);
+                }
+                sheet2.addMergedRegion(new CellRangeAddress(rowIndex2, rowIndex2, 0, 3));
+                sheet2.addMergedRegion(new CellRangeAddress(rowIndex2, rowIndex2, 4, 11));
+
+                // 说明
+                rowIndex2++;
+                Row explanationRow1Sheet2 = sheet2.createRow(rowIndex2);
+                explanationRow1Sheet2.setHeight((short) 300);
+                explanationRow1Sheet2.createCell(0).setCellValue("说明");
+                for (int i = 1; i < 12; i++) {
+                    explanationRow1Sheet2.createCell(i);
+                }
+                sheet2.addMergedRegion(new CellRangeAddress(rowIndex2, rowIndex2, 0, 11));
+
+                rowIndex2++;
+                Row explanationRow2Sheet2 = sheet2.createRow(rowIndex2);
+                explanationRow2Sheet2.setHeight((short) 300);
+                explanationRow2Sheet2.createCell(0).setCellValue("检查正常打「√」有不正常情况打「X」,并在备注中说明,包括整改结果。");
+                for (int i = 1; i < 12; i++) {
+                    explanationRow2Sheet2.createCell(i);
+                }
+                sheet2.addMergedRegion(new CellRangeAddress(rowIndex2, rowIndex2, 0, 11));
+
+                rowIndex2++;
+                Row explanationRow3Sheet2 = sheet2.createRow(rowIndex2);
+                explanationRow3Sheet2.setHeight((short) 300);
+                explanationRow3Sheet2.createCell(0).setCellValue("检查内容:灭火器箱外观、标识等是否完好,是否在有效期5年内;灭火器箱和灭火器箱内灭火器数量是否与要求相符,放置是否符合规范;灭火器外观、压力、铅封、胶管等是否完好,箱内检查卡是否保存完好;灭火器箱前是否摆放其它物品阻塞通道。");
+                for (int i = 1; i < 12; i++) {
+                    explanationRow3Sheet2.createCell(i);
+                }
+                sheet2.addMergedRegion(new CellRangeAddress(rowIndex2, rowIndex2, 0, 11));
+            }
+
             filename = "_灭火器" + dateStr + "检查记录.xlsx";
             out = Files.newOutputStream(Paths.get(ExcelUtil.getAbsoluteFile(filename)));
             wb.write(out);

+ 1 - 1
master/src/main/java/com/ruoyi/project/ps/inspection/controller/TPsInspectionRainvalveController.java

@@ -285,7 +285,7 @@ public class TPsInspectionRainvalveController extends BaseController {
                     row.createCell(1).setCellValue(item.getValveName());
                     row.createCell(2).setCellValue("1".equals(item.getAppearance()) ? "✓" : item.getAppearance());
                     row.createCell(3).setCellValue("1".equals(item.getNoLeak()) ? "✓" : item.getNoLeak());
-                    row.createCell(4).setCellValue(item.getCheckingStatus());
+                    row.createCell(4).setCellValue("1".equals(item.getCheckingStatus()) ? "✓" : item.getCheckingStatus());
                     for (int i = 0; i < 5; i++) {
                         row.getCell(i).setCellStyle(originalStyle);
                     }

+ 52 - 128
master/src/main/java/com/ruoyi/project/ps/inspection/controller/TPsInspectionWardrobeController.java

@@ -20,10 +20,7 @@ import com.ruoyi.project.ps.patrol.service.ITPsPatrolPlanService;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.ISysUserService;
 import org.apache.commons.collections4.CollectionUtils;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -80,12 +77,8 @@ public class TPsInspectionWardrobeController extends BaseController {
     @GetMapping("/export")
     public AjaxResult export(TPsInspectionWardrobe tPsInspectionWardrobe) {
         tPsInspectionWardrobe.setIssuesFlag(0L);
-        List<TPsInspectionWardrobe> list = tPsInspectionWardrobeService.selectTPsInspectionWardrobeList(tPsInspectionWardrobe);
-        if (!list.isEmpty()) {
-            return AjaxResult.success(exportTmpl(list));
-        } else {
-            return AjaxResult.error("暂无可导出数据");
-        }
+        return AjaxResult.success(exportTmpl(tPsInspectionWardrobe));
+
     }
 
     /**
@@ -246,132 +239,22 @@ public class TPsInspectionWardrobeController extends BaseController {
         return toAjax(tPsInspectionWardrobeService.deleteTPsInspectionWardrobeByIds(ids));
     }
 
-    public String exportTmpl(List<TPsInspectionWardrobe> list) {
+    public String exportTmpl(TPsInspectionWardrobe tPsInspectionWardrobe) {
         OutputStream out;
         String filename = null;
         try {
             String tempUrl = RuoYiConfig.getFilePath("/tempDoc/ps/wardrobe.xlsx");
             InputStream is = Files.newInputStream(Paths.get(tempUrl));
             XSSFWorkbook wb = new XSSFWorkbook(is);
-            XSSFSheet sheet = wb.getSheetAt(0);
-            int rowIndex = 6;
-            int num = 1;
-            String dateStr = "";
-            String confirmerSignUrl = "";
-            Row row6 = sheet.getRow(rowIndex);
-            Cell originalcell = row6.getCell(0);
-            CellStyle originalStyle = originalcell.getCellStyle();
-            if (!list.isEmpty()) {
-                TPsInspectionWardrobe wardrobe = list.get(0);
-                TPsPatrolPlan plan = tPsPatrolPlanService.selectTPsPatrolPlanById(wardrobe.getPlanId());
-                dateStr = "_" + plan.getPlanYear() + "年_" + plan.getPlanMonth() + "月_";
-
-                Row row3 = sheet.getRow(3);
-                row3.getCell(0).setCellValue("年度:" + plan.getPlanYear() + " 年");
-
-                String r5c7Str = "检查时间:  月   日";
-                if (plan.getConfirmDate() != null && StringUtils.isNotEmpty(plan.getConfirmed())) {
-                    Calendar calendar = Calendar.getInstance();
-                    calendar.setTime(plan.getConfirmDate());
-                    r5c7Str = "检查时间:" + (calendar.get(Calendar.MONTH) + 1) + "月 " + calendar.get(Calendar.DAY_OF_MONTH) + "日";
-                    SysUser sysUser = sysUserService.selectUserById(Long.valueOf(plan.getConfirmed()));
-                    confirmerSignUrl = sysUser.getSignUrl();
-                }
-                Row row5 = sheet.getRow(4);
-                row5.getCell(6).setCellValue(r5c7Str);
-
-                for (TPsInspectionWardrobe item : list) {
-                    Row row = sheet.createRow(rowIndex);
-                    row.setHeight((short) 300);
-                    row.createCell(0).setCellValue(num);
-                    row.createCell(1).setCellValue(item.getPpeType());
-                    row.createCell(2).setCellValue("1".equals(item.getComplete()) ? "✓" : item.getComplete());
-                    row.createCell(3).setCellValue("1".equals(item.getIntact()) ? "✓" : item.getIntact());
-                    row.createCell(4).setCellValue("1".equals(item.getPlacement()) ? "✓" : item.getPlacement());
-                    row.createCell(5).setCellValue("1".equals(item.getValidity()) ? "✓" : item.getValidity());
-                    row.createCell(6).setCellValue("1".equals(item.getInspectiontag()) ? "✓" : item.getInspectiontag());
-                    for (int i = 0; i < 7; i++) {
-                        row.getCell(i).setCellStyle(originalStyle);
-                    }
-                    num++;
-                    rowIndex++;
-                }
-            }
-            // 检查人行
-            Row confirmerRow = sheet.createRow(rowIndex);
-            confirmerRow.setHeight((short) 800);
-            confirmerRow.createCell(0).setCellValue("检查人");
-            for (int i = 1; i < 7; i++) {
-                confirmerRow.createCell(i);
-            }
-            if (StringUtils.isNotEmpty(confirmerSignUrl))
-                ExcelUtils.insertPicture(wb, sheet, confirmerSignUrl, rowIndex, 3, 1, 1);
-            for (int i = 0; i < 7; i++) {
-                confirmerRow.getCell(i).setCellStyle(originalStyle);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 2));
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 3, 6));
-
-            // 说明
-            rowIndex++;
-            Row explanationRow1 = sheet.createRow(rowIndex);
-            explanationRow1.setHeight((short) 300);
-            explanationRow1.createCell(0).setCellValue("说明");
-            for (int i = 1; i < 7; i++) {
-                explanationRow1.createCell(i);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 6));
-
-            rowIndex++;
-            Row explanationRow2 = sheet.createRow(rowIndex);
-            explanationRow2.setHeight((short) 300);
-            explanationRow2.createCell(0).setCellValue("1.「是否无缺失」参照物品存放清单的数量。如果无缺失选择「是」;如果缺失则选择「否」。");
-            for (int i = 1; i < 7; i++) {
-                explanationRow2.createCell(i);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 6));
-
-            rowIndex++;
-            Row explanationRow3 = sheet.createRow(rowIndex);
-            explanationRow3.setHeight((short) 300);
-            explanationRow3.createCell(0).setCellValue("2.「摆放符合要求」参见图例。");
-            for (int i = 1; i < 7; i++) {
-                explanationRow3.createCell(i);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 6));
-
-            rowIndex++;
-            Row explanationRow4 = sheet.createRow(rowIndex);
-            CellStyle wrapStyle = wb.createCellStyle();
-            wrapStyle.setWrapText(true);
-            Cell explanationCell4 = explanationRow4.createCell(0);
-            explanationCell4.setCellValue("3.未污染无破损的MC5000连体防化服、Ansell 38-628氟橡胶手套有效期为五年;防化靴有效期为五年;未使用的滤罐有效期都标在滤毒罐上。应急物资柜储存的滤罐规定为一次性使用,拆封使用后即作为危废处理。");
-            explanationCell4.setCellStyle(wrapStyle);
-            for (int i = 1; i < 7; i++) {
-                explanationRow4.createCell(i).setCellStyle(wrapStyle);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 6));
-
-            rowIndex++;
-            Row explanationRow5 = sheet.createRow(rowIndex);
-            Cell explanationCell5 = explanationRow5.createCell(0);
-            explanationCell5.setCellValue("4.安全带、MC5000连体防化服、3S standard全面罩必须贴有在效期内检验合格的标识。MC5000连体防化服为一次性使用,拆封使用后即作为危废处理。");
-            explanationCell5.setCellStyle(wrapStyle);
-            for (int i = 1; i < 7; i++) {
-                explanationRow5.createCell(i).setCellStyle(wrapStyle);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 6));
-
-            rowIndex++;
-            Row explanationRow6 = sheet.createRow(rowIndex);
-            explanationRow6.setHeight((short) 300);
-            explanationRow6.createCell(0).setCellValue("5.检查发现其他异常,填写在「备注」栏,检查结果出现「否」,检查人应对不符合项目立即整改。");
-            for (int i = 1; i < 7; i++) {
-                explanationRow6.createCell(i);
-            }
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 6));
 
-            filename = "_应急物资柜" + dateStr + "检查记录.xlsx";
+            StringBuilder dateStrBuilder = new StringBuilder();
+
+            exportSheet(wb, 0, "1", tPsInspectionWardrobe, dateStrBuilder, 21);
+            exportSheet(wb, 1, "2", tPsInspectionWardrobe, dateStrBuilder, 23);
+            exportSheet(wb, 2, "3", tPsInspectionWardrobe, dateStrBuilder, 22);
+            exportSheet(wb, 3, "4", tPsInspectionWardrobe, dateStrBuilder, 22);
+
+            filename = "_应急物资柜" + dateStrBuilder.toString() + "检查记录.xlsx";
             out = Files.newOutputStream(Paths.get(ExcelUtil.getAbsoluteFile(filename)));
             wb.write(out);
             wb.close();
@@ -380,4 +263,45 @@ public class TPsInspectionWardrobeController extends BaseController {
         }
         return filename;
     }
+
+    private void exportSheet(XSSFWorkbook wb, int sheetIndex, String wardrobeType, TPsInspectionWardrobe tPsInspectionWardrobe, StringBuilder dateStrBuilder, int confirmerRowIndex) throws Exception {
+        XSSFSheet sheet = wb.getSheetAt(sheetIndex);
+        int rowIndex = 4;
+        tPsInspectionWardrobe.setWardrobeType(wardrobeType);
+        List<TPsInspectionWardrobe> list = tPsInspectionWardrobeService.selectTPsInspectionWardrobeList(tPsInspectionWardrobe);
+        if (!list.isEmpty()) {
+            TPsInspectionWardrobe wardrobe = list.get(0);
+            TPsPatrolPlan plan = tPsPatrolPlanService.selectTPsPatrolPlanById(wardrobe.getPlanId());
+
+            String r5c7Str = "检查日期:  月   日";
+            String confirmerSignUrl = "";
+            if (plan.getConfirmDate() != null && StringUtils.isNotEmpty(plan.getConfirmed())) {
+                SysUser sysUser = sysUserService.selectUserById(Long.valueOf(plan.getConfirmed()));
+                confirmerSignUrl = sysUser.getSignUrl();
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(plan.getConfirmDate());
+                r5c7Str = "检查日期:" + (calendar.get(Calendar.MONTH) + 1) + "月 " + calendar.get(Calendar.DAY_OF_MONTH) + "日";
+
+                if (dateStrBuilder.length() == 0) {
+                    dateStrBuilder.append("_").append(plan.getPlanYear()).append("年_").append(plan.getPlanMonth()).append("月_");
+                }
+            }
+            for (TPsInspectionWardrobe item : list) {
+                Row row = sheet.getRow(rowIndex);
+                row.getCell(0).setCellValue(item.getPpeType());
+                row.getCell(1).setCellValue("1".equals(item.getComplete()) ? "✓" : item.getComplete());
+                row.getCell(2).setCellValue("1".equals(item.getIntact()) ? "✓" : item.getIntact());
+                row.getCell(3).setCellValue("1".equals(item.getPlacement()) ? "✓" : item.getPlacement());
+                row.getCell(4).setCellValue("1".equals(item.getValidity()) ? "✓" : item.getValidity());
+                row.getCell(5).setCellValue("1".equals(item.getInspectiontag()) ? "✓" : item.getInspectiontag());
+                rowIndex++;
+            }
+            // 检查人行
+            Row confirmerRow = sheet.getRow(confirmerRowIndex);
+            confirmerRow.getCell(4).setCellValue(r5c7Str);
+            if (StringUtils.isNotEmpty(confirmerSignUrl)) {
+                ExcelUtils.insertPicture(wb, sheet, confirmerSignUrl, rowIndex, 3, 1, 1);
+            }
+        }
+    }
 }

+ 1 - 0
master/src/main/resources/mybatis/eoeg/TEoegLockChangeMapper.xml

@@ -116,6 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by createdate desc
     </select>
     
     <select id="selectTEoegLockChangeById" parameterType="Long" resultMap="TEoegLockChangeResult">

+ 2 - 2
ui/src/views/ps/dev/cabinet/index.vue

@@ -296,7 +296,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null,
+        patrolType: '2',
         valveType: null,
         valveSpecification: null,
         valveLength: null,
@@ -372,7 +372,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null,
+        patrolType: "2",
         valveType: null,
         valveSpecification: null,
         valveLength: null,

+ 2 - 2
ui/src/views/ps/dev/callsystem/index.vue

@@ -262,7 +262,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '3'
       },
       // 表单参数
       form: {},
@@ -329,7 +329,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "3"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/coffer/index.vue

@@ -262,7 +262,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '4'
       },
       // 表单参数
       form: {},
@@ -329,7 +329,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "4"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/curtain/index.vue

@@ -262,7 +262,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '5'
       },
       // 表单参数
       form: {},
@@ -329,7 +329,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "5"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/extinguisher/index.vue

@@ -281,7 +281,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '6'
       },
       // 表单参数
       form: {},
@@ -356,7 +356,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "6"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/eyewash/index.vue

@@ -248,7 +248,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '7'
       },
       // 表单参数
       form: {},
@@ -311,7 +311,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "7"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/fgs/index.vue

@@ -255,7 +255,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '8'
       },
       // 表单参数
       form: {},
@@ -322,7 +322,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "8"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/firedoor/index.vue

@@ -276,7 +276,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '9'
       },
       // 表单参数
       form: {},
@@ -347,7 +347,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "9"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/hydrant/index.vue

@@ -297,7 +297,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '10'
       },
       // 表单参数
       form: {},
@@ -384,7 +384,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "10"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/lift/index.vue

@@ -255,7 +255,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '11'
       },
       // 表单参数
       form: {},
@@ -322,7 +322,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "11"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/monitor/index.vue

@@ -262,7 +262,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '12'
       },
       // 表单参数
       form: {},
@@ -329,7 +329,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "12"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/pit/index.vue

@@ -255,7 +255,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '13'
       },
       // 表单参数
       form: {},
@@ -322,7 +322,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "13"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/rainvalve/index.vue

@@ -262,7 +262,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '14'
       },
       // 表单参数
       form: {},
@@ -329,7 +329,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "14"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/steam/index.vue

@@ -255,7 +255,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '15'
       },
       // 表单参数
       form: {},
@@ -322,7 +322,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "15"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/sump/index.vue

@@ -255,7 +255,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '16'
       },
       // 表单参数
       form: {},
@@ -322,7 +322,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "16"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/utilitystation/index.vue

@@ -262,7 +262,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '17'
       },
       // 表单参数
       form: {},
@@ -329,7 +329,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "17"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/dev/ventvalve/index.vue

@@ -262,7 +262,7 @@ export default {
         remarks: null,
         deptId: null,
         status: null,
-        patrolType: null
+        patrolType: '18'
       },
       // 表单参数
       form: {},
@@ -329,7 +329,7 @@ export default {
         remarks: null,
         deptId: null,
         status: "1",
-        patrolType: null
+        patrolType: "18"
       };
       this.resetForm("form");
     },

+ 11 - 4
ui/src/views/ps/dev/wardrobe/index.vue

@@ -95,7 +95,11 @@
               border>
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="PPE种类" align="center" prop="ppeType" :show-overflow-tooltip="true"/>
-      <el-table-column label="状态" align="center" prop="status" :show-overflow-tooltip="true"/>
+      <el-table-column label="状态" align="center" prop="status" >
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.dev_status" :value="scope.row.status"/>
+        </template>
+      </el-table-column>
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
       <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
@@ -192,6 +196,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Wardrobe",
   components: {Treeselect},
+  dicts: ['dev_status'],
   data() {
     return {
       // 遮罩层
@@ -237,7 +242,8 @@ export default {
         pageSize: 20,
         ppeType: null,
         status: null,
-        wardrobeType: '1'
+        wardrobeType: '1',
+        patrolType: '19'
       },
       // 表单参数
       form: {},
@@ -291,8 +297,9 @@ export default {
         ppeType: null,
         delFlag: null,
         remarks: null,
-        status: "0",
-        wardrobeType: null
+        status: "1",
+        wardrobeType: null,
+        patrolType: "19"
       };
       this.resetForm("form");
     },

+ 2 - 2
ui/src/views/ps/inspection/alarm/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/cabinet/index.vue

@@ -28,12 +28,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/callsystem/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/coffer/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/curtain/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/extinguisher/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/eyewash/index.vue

@@ -10,12 +10,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/fgs/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/firedoor/index.vue

@@ -28,12 +28,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/hydrant/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/lift/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/monitor/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/pit/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/rainvalve/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/steam/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/sump/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/utilitystation/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 2
ui/src/views/ps/inspection/ventvalve/index.vue

@@ -19,12 +19,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"

+ 2 - 44
ui/src/views/ps/inspection/wardrobe/index.vue

@@ -10,12 +10,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="年月" prop="yearMonth">
+      <el-form-item label="巡检月份" prop="yearMonth">
         <el-date-picker
           v-model="queryParams.yearMonth"
+          :clearable="false"
           type="month"
           placeholder="选择年月"
-          clearable
           size="small"
           value-format="yyyy-MM"
           style="width: 150px"
@@ -47,48 +47,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['ps:patrol:add']"
-        >新增
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['ps:patrol:edit']"
-        >修改
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['ps:patrol:remove']"
-        >删除
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          icon="el-icon-upload2"
-          size="mini"
-          @click="handleImport"
-          v-hasPermi="['ps:patrol:edit']"
-        >导入
-        </el-button>
-      </el-col>
       <el-col :span="1.5">
         <el-button
           type="warning"