jiangbiao 1 ano atrás
pai
commit
1edca1555c
56 arquivos alterados com 3137 adições e 870 exclusões
  1. 0 7
      cpms-admin/src/main/java/com/cpms/project/asset/controller/TLeakagePointsPatrolController.java
  2. 0 6
      cpms-admin/src/main/java/com/cpms/project/asset/controller/TLeakagePointsRecordController.java
  3. 3 3
      cpms-admin/src/main/java/com/cpms/project/process/controller/TLockValveController.java
  4. 110 33
      cpms-admin/src/main/java/com/cpms/project/process/controller/TSifOverviewController.java
  5. 210 0
      cpms-admin/src/main/java/com/cpms/project/process/controller/TSisRecordController.java
  6. 172 207
      cpms-admin/src/main/java/com/cpms/project/process/domain/TSifOverview.java
  7. 409 0
      cpms-admin/src/main/java/com/cpms/project/process/domain/TSifVo.java
  8. 278 0
      cpms-admin/src/main/java/com/cpms/project/process/domain/TSisRecord.java
  9. 3 2
      cpms-admin/src/main/java/com/cpms/project/process/mapper/TSifOverviewMapper.java
  10. 61 0
      cpms-admin/src/main/java/com/cpms/project/process/mapper/TSisRecordMapper.java
  11. 3 2
      cpms-admin/src/main/java/com/cpms/project/process/service/ITSifOverviewService.java
  12. 61 0
      cpms-admin/src/main/java/com/cpms/project/process/service/ITSisRecordService.java
  13. 4 2
      cpms-admin/src/main/java/com/cpms/project/process/service/impl/TSifOverviewServiceImpl.java
  14. 93 0
      cpms-admin/src/main/java/com/cpms/project/process/service/impl/TSisRecordServiceImpl.java
  15. 11 3
      cpms-admin/src/main/java/com/cpms/project/web/controller/common/CommonController.java
  16. 1 0
      cpms-admin/src/main/resources/application-druid.yml
  17. 11 5
      cpms-admin/src/main/resources/application.yml
  18. 80 60
      cpms-admin/src/main/resources/mapper/process/TSifOverviewMapper.xml
  19. 135 0
      cpms-admin/src/main/resources/mapper/process/TSisRecordMapper.xml
  20. 1 0
      cpms-admin/src/main/resources/mapper/sems/TSpecdevMainMapper.xml
  21. BIN
      cpms-admin/src/main/resources/static/template/asset/fixedAsset.xlsx
  22. BIN
      cpms-admin/src/main/resources/static/template/asset/specAsset.xlsx
  23. BIN
      cpms-admin/src/main/resources/static/template/asset/specMain.xlsx
  24. BIN
      cpms-admin/src/main/resources/static/template/plant/staffmgr.xlsx
  25. BIN
      cpms-admin/src/main/resources/static/template/process/sisList.xlsx
  26. BIN
      cpms-admin/src/main/resources/static/template/process/valve.xlsx
  27. BIN
      cpms-admin/src/main/resources/static/template/sems/specCc.xlsx
  28. BIN
      cpms-admin/src/main/resources/static/template/sems/specDt.xlsx
  29. BIN
      cpms-admin/src/main/resources/static/template/sems/specDzsb.xlsx
  30. BIN
      cpms-admin/src/main/resources/static/template/sems/specGl.xlsx
  31. BIN
      cpms-admin/src/main/resources/static/template/sems/specYlgd.xlsx
  32. BIN
      cpms-admin/src/main/resources/static/template/sems/specYlrq.xlsx
  33. BIN
      cpms-admin/src/main/resources/static/word/blankMeeting.docx
  34. BIN
      cpms-admin/src/main/resources/static/word/meeting.docx
  35. 10 10
      cpms-ui/src/api/process/sifList.js
  36. 44 0
      cpms-ui/src/api/process/sisRecord.js
  37. 9 0
      cpms-ui/src/api/system/user.js
  38. BIN
      cpms-ui/src/assets/images/cpms-test.jpg
  39. 3 0
      cpms-ui/src/utils/ruoyi.js
  40. 24 10
      cpms-ui/src/views/asset/basedoc/index.vue
  41. 28 9
      cpms-ui/src/views/asset/points/index.vue
  42. 1 1
      cpms-ui/src/views/asset/specMain/index.vue
  43. 1 1
      cpms-ui/src/views/file/file/uploadFile.vue
  44. 4 3
      cpms-ui/src/views/login.vue
  45. 18 12
      cpms-ui/src/views/process/classd/index.vue
  46. 22 16
      cpms-ui/src/views/process/csocsc/index.vue
  47. 16 10
      cpms-ui/src/views/process/nonc/index.vue
  48. 0 447
      cpms-ui/src/views/process/overview/index.vue
  49. 704 0
      cpms-ui/src/views/process/sifList/index.vue
  50. 580 0
      cpms-ui/src/views/process/sisRecord/index.vue
  51. 22 17
      cpms-ui/src/views/process/valve/index.vue
  52. 1 1
      cpms-ui/src/views/sems/specAqf/bf.vue
  53. 1 1
      cpms-ui/src/views/sems/specAqf/fc.vue
  54. 1 1
      cpms-ui/src/views/sems/specAqf/index.vue
  55. 1 1
      cpms-ui/src/views/sems/specAqf/ty.vue
  56. 1 0
      cpms-ui/vue.config.js

+ 0 - 7
cpms-admin/src/main/java/com/cpms/project/asset/controller/TLeakagePointsPatrolController.java

@@ -47,7 +47,6 @@ public class TLeakagePointsPatrolController extends BaseController {
     /**
      * 查询漏点巡检列表
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:list')")
     @GetMapping("/list")
     public TableDataInfo list(TLeakagePointsPatrol tLeakagePointsPatrol) {
         startPage();
@@ -66,7 +65,6 @@ public class TLeakagePointsPatrolController extends BaseController {
     /**
      * 导出漏点巡检列表
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:export')")
     @Log(title = "漏点巡检", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, TLeakagePointsPatrol tLeakagePointsPatrol) {
@@ -75,7 +73,6 @@ public class TLeakagePointsPatrolController extends BaseController {
         util.exportExcel(response, list, "漏点巡检数据");
     }
 
-    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:export')")
     @Log(title = "漏点巡检", businessType = BusinessType.EXPORT)
     @PostMapping("/exportRecord")
     public void exportRecord(HttpServletResponse response, TLeakagePointsPatrol tLeakagePointsPatrol) throws IOException {
@@ -202,7 +199,6 @@ public class TLeakagePointsPatrolController extends BaseController {
     /**
      * 获取漏点巡检详细信息
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(tLeakagePointsPatrolService.selectTLeakagePointsPatrolById(id));
@@ -211,7 +207,6 @@ public class TLeakagePointsPatrolController extends BaseController {
     /**
      * 新增漏点巡检
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:add')")
     @Log(title = "漏点巡检", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TLeakagePointsPatrol tLeakagePointsPatrol) {
@@ -241,7 +236,6 @@ public class TLeakagePointsPatrolController extends BaseController {
     /**
      * 修改漏点巡检
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:edit')")
     @Log(title = "漏点巡检", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TLeakagePointsPatrol tLeakagePointsPatrol) {
@@ -258,7 +252,6 @@ public class TLeakagePointsPatrolController extends BaseController {
     /**
      * 删除漏点巡检
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointPatrol:remove')")
     @Log(title = "漏点巡检", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {

+ 0 - 6
cpms-admin/src/main/java/com/cpms/project/asset/controller/TLeakagePointsRecordController.java

@@ -37,7 +37,6 @@ public class TLeakagePointsRecordController extends BaseController
     /**
      * 查询漏点巡检记录 列表
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointRecord:list')")
     @GetMapping("/list")
     public TableDataInfo list(TLeakagePointsRecord tLeakagePointsRecord)
     {
@@ -49,7 +48,6 @@ public class TLeakagePointsRecordController extends BaseController
     /**
      * 导出漏点巡检记录 列表
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointRecord:export')")
     @Log(title = "漏点巡检记录 ", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, TLeakagePointsRecord tLeakagePointsRecord)
@@ -62,7 +60,6 @@ public class TLeakagePointsRecordController extends BaseController
     /**
      * 获取漏点巡检记录 详细信息
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointRecord:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id)
     {
@@ -72,7 +69,6 @@ public class TLeakagePointsRecordController extends BaseController
     /**
      * 新增漏点巡检记录 
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointRecord:add')")
     @Log(title = "漏点巡检记录 ", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TLeakagePointsRecord tLeakagePointsRecord)
@@ -83,7 +79,6 @@ public class TLeakagePointsRecordController extends BaseController
     /**
      * 修改漏点巡检记录 
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointRecord:edit')")
     @Log(title = "漏点巡检记录 ", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TLeakagePointsRecord tLeakagePointsRecord)
@@ -94,7 +89,6 @@ public class TLeakagePointsRecordController extends BaseController
     /**
      * 删除漏点巡检记录 
      */
-    @PreAuthorize("@ss.hasPermi('asset:pointRecord:remove')")
     @Log(title = "漏点巡检记录 ", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids)

+ 3 - 3
cpms-admin/src/main/java/com/cpms/project/process/controller/TLockValveController.java

@@ -112,7 +112,7 @@ public class TLockValveController extends BaseController {
         List<TLockValve> list = new ArrayList<>();
         int rowNum = sheet.getPhysicalNumberOfRows();
         int failNumber = 0;
-        for (int i = 2; i < rowNum; i++) {
+        for (int i = 3; i < rowNum; i++) {
             try {
                 logger.info("读取行数:" + i);
                 Row row = sheet.getRow(i);
@@ -158,9 +158,9 @@ public class TLockValveController extends BaseController {
                     } else if (j == 15) {
                         entity.setSheReview(cellValue);
                     } else if (j == 16) {
-                        entity.setCheckDate(DateUtils.parseDate(cellValue));
-                    } else if (j == 17) {
                         entity.setRemarks(cellValue);
+                    } else if (j == 17) {
+                        entity.setCheckDate(DateUtils.parseDate(cellValue));
                     }
                 }
                 entity.setCreaterCode(String.valueOf(userId));

+ 110 - 33
cpms-admin/src/main/java/com/cpms/project/process/controller/TSifOverviewController.java

@@ -6,10 +6,14 @@ import com.cpms.common.core.controller.BaseController;
 import com.cpms.common.core.domain.AjaxResult;
 import com.cpms.common.core.page.TableDataInfo;
 import com.cpms.common.enums.BusinessType;
+import com.cpms.common.utils.StringUtils;
 import com.cpms.common.utils.file.ExcelUtils;
 import com.cpms.common.utils.poi.ExcelUtil;
 import com.cpms.project.process.domain.TSifOverview;
+import com.cpms.project.process.domain.TSifVo;
+import com.cpms.project.process.domain.TSisRecord;
 import com.cpms.project.process.service.ITSifOverviewService;
+import com.cpms.project.process.service.ITSisRecordService;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -22,84 +26,112 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
  * SIF Overview ListController
  *
  * @author admin
- * @date 2024-04-12
+ * @date 2024-05-22
  */
 @RestController
-@RequestMapping("/process/overview")
+@RequestMapping("/process/sifList")
 public class TSifOverviewController extends BaseController {
     @Autowired
     private ITSifOverviewService tSifOverviewService;
+    @Autowired
+    private ITSisRecordService tSisRecordService;
 
     /**
      * 查询SIF Overview List列表
      */
-    @PreAuthorize("@ss.hasPermi('process:overview:list')")
+    @PreAuthorize("@ss.hasPermi('process:sifList:list')")
     @GetMapping("/list")
     public TableDataInfo list(TSifOverview tSifOverview) {
         startPage();
-        List<TSifOverview> list = tSifOverviewService.selectTSifOverviewList(tSifOverview);
+        List<TSifVo> list = tSifOverviewService.selectTSifOverviewList(tSifOverview);
         return getDataTable(list);
     }
 
     /**
      * 导出SIF Overview List列表
      */
-    @PreAuthorize("@ss.hasPermi('process:overview:export')")
-    @Log(title = "SIF Overview List" , businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('process:sifList:export')")
+    @Log(title = "SIF Overview List", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, TSifOverview tSifOverview) {
-        List<TSifOverview> list = tSifOverviewService.selectTSifOverviewList(tSifOverview);
-        ExcelUtil<TSifOverview> util = new ExcelUtil<TSifOverview>(TSifOverview.class);
+        List<TSifVo> list = tSifOverviewService.selectTSifOverviewList(tSifOverview);
+        ExcelUtil<TSifVo> util = new ExcelUtil<TSifVo>(TSifVo.class);
         util.exportExcel(response, list, "SIF Overview List数据");
     }
 
     /**
      * 获取SIF Overview List详细信息
      */
-    @PreAuthorize("@ss.hasPermi('process:overview:query')")
+    @PreAuthorize("@ss.hasPermi('process:sifList:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
-        return success(tSifOverviewService.selectTSifOverviewById(id));
+        TSifOverview tSifOverview = tSifOverviewService.selectTSifOverviewById(id);
+        TSisRecord tSisRecord = new TSisRecord();
+        tSisRecord.setSisId(id);
+        tSifOverview.setRecordList(tSisRecordService.selectTSisRecordList(tSisRecord));
+        return success(tSifOverview);
     }
 
     /**
      * 新增SIF Overview List
      */
-    @PreAuthorize("@ss.hasPermi('process:overview:add')")
-    @Log(title = "SIF Overview List" , businessType = BusinessType.INSERT)
+    @PreAuthorize("@ss.hasPermi('process:sifList:add')")
+    @Log(title = "SIF Overview List", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody TSifOverview tSifOverview) {
-        return toAjax(tSifOverviewService.insertTSifOverview(tSifOverview));
+        tSifOverview.setCreaterCode(getUserId().toString());
+        tSifOverview.setCreatedate(new Date());
+        tSifOverviewService.insertTSifOverview(tSifOverview);
+        for (TSisRecord tSisRecord : tSifOverview.getRecordList()) {
+            tSisRecord.setSisId(tSifOverview.getId());
+            tSisRecord.setCreaterCode(getUserId().toString());
+            tSisRecord.setCreatedate(new Date());
+            tSisRecordService.insertTSisRecord(tSisRecord);
+        }
+        return success();
     }
 
     /**
      * 修改SIF Overview List
      */
-    @PreAuthorize("@ss.hasPermi('process:overview:edit')")
-    @Log(title = "SIF Overview List" , businessType = BusinessType.UPDATE)
+    @PreAuthorize("@ss.hasPermi('process:sifList:edit')")
+    @Log(title = "SIF Overview List", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TSifOverview tSifOverview) {
+        tSifOverview.setUpdaterCode(getUserId().toString());
+        tSifOverview.setUpdatedate(new Date());
+        for (TSisRecord tSisRecord : tSifOverview.getRecordList()) {
+            if (tSisRecord.getId() != null) {
+                tSisRecordService.updateTSisRecord(tSisRecord);
+            } else {
+                tSisRecord.setSisId(tSifOverview.getId());
+                tSisRecord.setCreaterCode(getUserId().toString());
+                tSisRecord.setCreatedate(new Date());
+                tSisRecordService.insertTSisRecord(tSisRecord);
+            }
+        }
         return toAjax(tSifOverviewService.updateTSifOverview(tSifOverview));
     }
 
     /**
      * 删除SIF Overview List
      */
-    @PreAuthorize("@ss.hasPermi('process:overview:remove')")
-    @Log(title = "SIF Overview List" , businessType = BusinessType.DELETE)
+    @PreAuthorize("@ss.hasPermi('process:sifList:remove')")
+    @Log(title = "SIF Overview List", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(tSifOverviewService.deleteTSifOverviewByIds(ids));
     }
 
 
-    @Log(title = "SIF Overview List批量导入" , businessType = BusinessType.INSERT)
+    @Log(title = "SIF Overview List批量导入", businessType = BusinessType.INSERT)
     @PostMapping("/importData")
     public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException {
         //获取操作人员ID
@@ -111,12 +143,15 @@ public class TSifOverviewController extends BaseController {
         List<TSifOverview> list = new ArrayList<>();
         int rowNum = sheet.getPhysicalNumberOfRows();
         int failNumber = 0;
-        for (int i = 2; i < rowNum; i++) {
+        List<TSisRecord> records = null;
+        for (int i = 1; i < rowNum; i++) {
             try {
                 logger.info("读取行数:" + i);
                 Row row = sheet.getRow(i);
                 int cellNum = row.getLastCellNum();
                 TSifOverview entity = new TSifOverview();
+                TSisRecord record = new TSisRecord();
+                boolean flag = false;
                 for (int j = 0; j < cellNum; j++) {
                     Cell cell = row.getCell(j);
                     if (cell == null) {
@@ -127,48 +162,90 @@ public class TSifOverviewController extends BaseController {
                     switch (j) {
                         case 0:
                             entity.setSifNo(cellValue);
+                            if (StringUtils.isNotEmpty(cellValue)) {
+                                records = new ArrayList<>();
+                                flag = true;
+                            }
+                            if (StringUtils.isEmpty(cellValue)){
+                                flag = false;
+                            }
                             break;
                         case 1:
-                            entity.setDeviation(cellValue);
+                            entity.setPlant(cellValue);
                             break;
                         case 2:
-                            entity.setSheNo(cellValue);
+                            entity.setSifTag(cellValue);
                             break;
                         case 3:
-                            entity.setCac(cellValue);
+                            entity.setDeviation(cellValue);
                             break;
                         case 4:
-                            entity.setRequriedSil(cellValue);
+                            entity.setRiskAnalysis(cellValue);
                             break;
                         case 5:
-                            entity.setSensors(cellValue);
+                            entity.setCauseConsequence(cellValue);
                             break;
                         case 6:
-                            entity.setsVoting(cellValue);
+                            entity.setRequiredSil(cellValue);
                             break;
                         case 7:
-                            entity.setFinalElements(cellValue);
+                            entity.setAcheievedSil(cellValue);
                             break;
                         case 8:
-                            entity.setfVoting(cellValue);
+                            entity.setPfdavg(cellValue);
                             break;
                         case 9:
-                            entity.setAction(cellValue);
+                            record.setSensorTag(cellValue);
                             break;
                         case 10:
-                            entity.setAchievedSil(cellValue);
+                            record.setType(cellValue);
                             break;
                         case 11:
-                            entity.setPfdCr(cellValue);
+                            record.setService(cellValue);
                             break;
                         case 12:
+                            record.setVotingQ(cellValue);
+                            break;
+                        case 13:
+                            record.setCondition(cellValue);
+                            break;
+                        case 14:
+                            record.setMainPti(cellValue);
+                            break;
+                        case 15:
+                            record.setFinalElementTag(cellValue);
+                            break;
+                        case 16:
+                            record.setVotingH(cellValue);
+                            break;
+                        case 17:
+                            record.setAciton(cellValue);
+                            break;
+                        case 18:
                             entity.setRemarks(cellValue);
                             break;
+                        case 19:
+                            entity.setVer(cellValue);
+                            break;
+                        case 20:
+                            record.setFilter(cellValue);
+                            break;
                     }
                 }
-                entity.setCreaterCode(String.valueOf(userId));
-                logger.info("entity:" + entity);
-                list.add(entity);
+                if (records != null) {
+                    records.add(record);
+                }
+                if (!flag){
+                    entity = list.get(list.size()-1);
+                    entity.setRecordList(records);
+                    list.remove(list.size()-1);
+                    list.add(entity);
+                }else {
+                    entity.setRecordList(records);
+                    entity.setCreaterCode(String.valueOf(userId));
+                    logger.info("entity:" + entity);
+                    list.add(entity);
+                }
             } catch (Exception e) {
                 failNumber++;
                 logger.info("e:" + JSON.toJSONString(e));

+ 210 - 0
cpms-admin/src/main/java/com/cpms/project/process/controller/TSisRecordController.java

@@ -0,0 +1,210 @@
+package com.cpms.project.process.controller;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Date;
+import java.util.ArrayList;
+import com.alibaba.fastjson2.JSON;
+import com.cpms.common.utils.file.ExcelUtils;
+import com.cpms.common.utils.DateUtils;
+import javax.servlet.http.HttpServletResponse;
+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.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+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.cpms.common.annotation.Log;
+import com.cpms.common.core.controller.BaseController;
+import com.cpms.common.core.domain.AjaxResult;
+import com.cpms.common.enums.BusinessType;
+import com.cpms.project.process.domain.TSisRecord;
+import com.cpms.project.process.service.ITSisRecordService;
+import com.cpms.common.utils.poi.ExcelUtil;
+import com.cpms.common.core.page.TableDataInfo;
+
+/**
+ * sis RecordController
+ * 
+ * @author admin
+ * @date 2024-05-22
+ */
+@RestController
+@RequestMapping("/process/sisRecord")
+public class TSisRecordController extends BaseController
+{
+    @Autowired
+    private ITSisRecordService tSisRecordService;
+
+    /**
+     * 查询sis Record列表
+     */
+    @PreAuthorize("@ss.hasPermi('process:sisRecord:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TSisRecord tSisRecord)
+    {
+        startPage();
+        List<TSisRecord> list = tSisRecordService.selectTSisRecordList(tSisRecord);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出sis Record列表
+     */
+    @PreAuthorize("@ss.hasPermi('process:sisRecord:export')")
+    @Log(title = "sis Record", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TSisRecord tSisRecord)
+    {
+        List<TSisRecord> list = tSisRecordService.selectTSisRecordList(tSisRecord);
+        ExcelUtil<TSisRecord> util = new ExcelUtil<TSisRecord>(TSisRecord.class);
+        util.exportExcel(response, list, "sis Record数据");
+    }
+
+    /**
+     * 获取sis Record详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('process:sisRecord:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(tSisRecordService.selectTSisRecordById(id));
+    }
+
+    /**
+     * 新增sis Record
+     */
+    @PreAuthorize("@ss.hasPermi('process:sisRecord:add')")
+    @Log(title = "sis Record", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TSisRecord tSisRecord)
+    {
+        tSisRecord.setCreaterCode(getUserId().toString());
+        tSisRecord.setCreatedate(new Date());
+        return toAjax(tSisRecordService.insertTSisRecord(tSisRecord));
+    }
+
+    /**
+     * 修改sis Record
+     */
+    @PreAuthorize("@ss.hasPermi('process:sisRecord:edit')")
+    @Log(title = "sis Record", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TSisRecord tSisRecord)
+    {
+        tSisRecord.setUpdaterCode(getUserId().toString());
+        tSisRecord.setUpdatedate(new Date());
+        return toAjax(tSisRecordService.updateTSisRecord(tSisRecord));
+    }
+
+    /**
+     * 删除sis Record
+     */
+    @PreAuthorize("@ss.hasPermi('process:sisRecord:remove')")
+    @Log(title = "sis Record", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tSisRecordService.deleteTSisRecordByIds(ids));
+    }
+
+
+    @Log(title = "sis Record批量导入", 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<TSisRecord> 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();
+                TSisRecord entity = new TSisRecord();
+                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);
+                    switch (j) {
+                        case 1:
+                            entity.setSensorTag ( cellValue);
+                            break;
+                        case 2:
+                            entity.setType ( cellValue);
+                            break;
+                        case 3:
+                            entity.setService ( cellValue);
+                            break;
+                        case 4:
+                            entity.setVotingQ ( cellValue);
+                            break;
+                        case 5:
+                            entity.setCondition ( cellValue);
+                            break;
+                        case 6:
+                            entity.setMainPti ( cellValue);
+                            break;
+                        case 7:
+                            entity.setFinalElementTag ( cellValue);
+                            break;
+                        case 8:
+                            entity.setVotingH ( cellValue);
+                            break;
+                        case 9:
+                            entity.setAciton ( cellValue);
+                            break;
+                        case 10:
+                            entity.setFilter ( cellValue);
+                            break;
+                    }
+                }
+                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 (TSisRecord 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);
+    }
+}

+ 172 - 207
cpms-admin/src/main/java/com/cpms/project/process/domain/TSifOverview.java

@@ -1,325 +1,290 @@
 package com.cpms.project.process.domain;
 
-import com.cpms.common.annotation.Excel;
-import com.cpms.common.core.domain.BaseEntity;
+import java.util.Date;
+import java.util.List;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
-
-import java.util.Date;
+import com.cpms.common.annotation.Excel;
+import com.cpms.common.core.domain.BaseEntity;
 
 /**
  * SIF Overview List对象 t_sif_overview
- *
+ * 
  * @author admin
- * @date 2024-04-12
+ * @date 2024-05-22
  */
-public class TSifOverview extends BaseEntity {
+public class TSifOverview extends BaseEntity
+{
     private static final long serialVersionUID = 1L;
 
-    /**
-     * id
-     */
+    /** id */
     private Long id;
 
-    /**
-     * SIF NO.
-     */
-    @Excel(name = "SIF NO.")
+    /** SN */
+    @Excel(name = "SN")
     private String sifNo;
 
-    /**
-     * DEVIATION
-     */
-    @Excel(name = "DEVIATION")
+    /** 装置/单元 */
+    @Excel(name = "装置/单元")
+    private String plant;
+
+    /** SIF位号 */
+    @Excel(name = "SIF位号")
+    private String sifTag;
+
+    /** Deviation */
+    @Excel(name = "Deviation")
     private String deviation;
 
-    /**
-     * SHE / HAZOP ENTRY
-     */
-    @Excel(name = "SHE / HAZOP ENTRY")
-    private String sheNo;
+    /** 工艺风险分析文件 */
+    @Excel(name = "工艺风险分析文件")
+    private String riskAnalysis;
 
-    /**
-     * CAUSE and CONSEQUENCE
-     */
+    /** CAUSE and CONSEQUENCE */
     @Excel(name = "CAUSE and CONSEQUENCE")
-    private String cac;
-
-    /**
-     * Requried SIL
-     */
-    @Excel(name = "Requried SIL")
-    private String requriedSil;
-
-    /**
-     * Sensors
-     */
-    @Excel(name = "Sensors")
-    private String sensors;
-
-    /**
-     * voting
-     */
-    @Excel(name = "voting")
-    private String sVoting;
-
-    /**
-     * Final elements
-     */
-    @Excel(name = "Final elements")
-    private String finalElements;
-
-    /**
-     * voting
-     */
-    @Excel(name = "voting")
-    private String fVoting;
-
-    /**
-     * Action
-     */
-    @Excel(name = "Action")
-    private String action;
-
-    /**
-     * Achieved SIL
-     */
-    @Excel(name = "Achieved SIL")
-    private String achievedSil;
-
-    /**
-     * PFD Calculation Required?
-     */
-    @Excel(name = "PFD Calculation Required?")
-    private String pfdCr;
-
-    /**
-     * 备注
-     */
+    private String causeConsequence;
+
+    /** 要求的SIL */
+    @Excel(name = "要求的SIL")
+    private String requiredSil;
+
+    /** 实现的SIL */
+    @Excel(name = "实现的SIL")
+    private String acheievedSil;
+
+    /** 版本 */
+    @Excel(name = "版本")
+    private String ver;
+
+    /** 要求时的平均失效概率 */
+    @Excel(name = "要求时的平均失效概率")
+    private String pfdavg;
+
+    /** 备注 */
     @Excel(name = "备注")
     private String remarks;
 
-    /**
-     * 删除标识
-     */
+    /** 删除标识 */
     private Integer delFlag;
 
-    /**
-     * 创建人
-     */
+    /** 创建人 */
     @Excel(name = "创建人")
     private String createrCode;
 
-    /**
-     * 创建日期
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    /** 创建日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date createdate;
 
-    /**
-     * 更新人
-     */
+    /** 更新人 */
     @Excel(name = "更新人")
     private String updaterCode;
 
-    /**
-     * 更新日期
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     @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;
-    }
+    private List<TSisRecord> recordList;
 
-    public void setSifNo(String sifNo) {
-        this.sifNo = sifNo;
+    public List<TSisRecord> getRecordList() {
+        return recordList;
     }
 
-    public String getSifNo() {
-        return sifNo;
+    public void setRecordList(List<TSisRecord> recordList) {
+        this.recordList = recordList;
     }
 
-    public void setDeviation(String deviation) {
-        this.deviation = deviation;
+    public void setId(Long id)
+    {
+        this.id = id;
     }
 
-    public String getDeviation() {
-        return deviation;
+    public Long getId() 
+    {
+        return id;
     }
-
-    public void setSheNo(String sheNo) {
-        this.sheNo = sheNo;
+    public void setSifNo(String sifNo) 
+    {
+        this.sifNo = sifNo;
     }
 
-    public String getSheNo() {
-        return sheNo;
+    public String getSifNo() 
+    {
+        return sifNo;
     }
-
-    public void setCac(String cac) {
-        this.cac = cac;
+    public void setPlant(String plant) 
+    {
+        this.plant = plant;
     }
 
-    public String getCac() {
-        return cac;
+    public String getPlant() 
+    {
+        return plant;
     }
-
-    public void setRequriedSil(String requriedSil) {
-        this.requriedSil = requriedSil;
+    public void setSifTag(String sifTag) 
+    {
+        this.sifTag = sifTag;
     }
 
-    public String getRequriedSil() {
-        return requriedSil;
+    public String getSifTag() 
+    {
+        return sifTag;
     }
-
-    public void setSensors(String sensors) {
-        this.sensors = sensors;
+    public void setDeviation(String deviation) 
+    {
+        this.deviation = deviation;
     }
 
-    public String getSensors() {
-        return sensors;
+    public String getDeviation() 
+    {
+        return deviation;
     }
-
-    public void setsVoting(String sVoting) {
-        this.sVoting = sVoting;
+    public void setRiskAnalysis(String riskAnalysis) 
+    {
+        this.riskAnalysis = riskAnalysis;
     }
 
-    public String getsVoting() {
-        return sVoting;
+    public String getRiskAnalysis() 
+    {
+        return riskAnalysis;
     }
-
-    public void setFinalElements(String finalElements) {
-        this.finalElements = finalElements;
+    public void setCauseConsequence(String causeConsequence) 
+    {
+        this.causeConsequence = causeConsequence;
     }
 
-    public String getFinalElements() {
-        return finalElements;
+    public String getCauseConsequence() 
+    {
+        return causeConsequence;
     }
-
-    public void setfVoting(String fVoting) {
-        this.fVoting = fVoting;
+    public void setRequiredSil(String requiredSil) 
+    {
+        this.requiredSil = requiredSil;
     }
 
-    public String getfVoting() {
-        return fVoting;
+    public String getRequiredSil() 
+    {
+        return requiredSil;
     }
-
-    public void setAction(String action) {
-        this.action = action;
+    public void setAcheievedSil(String acheievedSil) 
+    {
+        this.acheievedSil = acheievedSil;
     }
 
-    public String getAction() {
-        return action;
+    public String getAcheievedSil() 
+    {
+        return acheievedSil;
     }
-
-    public void setAchievedSil(String achievedSil) {
-        this.achievedSil = achievedSil;
+    public void setVer(String ver) 
+    {
+        this.ver = ver;
     }
 
-    public String getAchievedSil() {
-        return achievedSil;
+    public String getVer() 
+    {
+        return ver;
     }
-
-    public void setPfdCr(String pfdCr) {
-        this.pfdCr = pfdCr;
+    public void setPfdavg(String pfdavg) 
+    {
+        this.pfdavg = pfdavg;
     }
 
-    public String getPfdCr() {
-        return pfdCr;
+    public String getPfdavg() 
+    {
+        return pfdavg;
     }
-
-    public void setRemarks(String remarks) {
+    public void setRemarks(String remarks) 
+    {
         this.remarks = remarks;
     }
 
-    public String getRemarks() {
+    public String getRemarks() 
+    {
         return remarks;
     }
-
-    public void setDelFlag(Integer delFlag) {
+    public void setDelFlag(Integer delFlag) 
+    {
         this.delFlag = delFlag;
     }
 
-    public Integer getDelFlag() {
+    public Integer getDelFlag() 
+    {
         return delFlag;
     }
-
-    public void setCreaterCode(String createrCode) {
+    public void setCreaterCode(String createrCode) 
+    {
         this.createrCode = createrCode;
     }
 
-    public String getCreaterCode() {
+    public String getCreaterCode() 
+    {
         return createrCode;
     }
-
-    public void setCreatedate(Date createdate) {
+    public void setCreatedate(Date createdate) 
+    {
         this.createdate = createdate;
     }
 
-    public Date getCreatedate() {
+    public Date getCreatedate() 
+    {
         return createdate;
     }
-
-    public void setUpdaterCode(String updaterCode) {
+    public void setUpdaterCode(String updaterCode) 
+    {
         this.updaterCode = updaterCode;
     }
 
-    public String getUpdaterCode() {
+    public String getUpdaterCode() 
+    {
         return updaterCode;
     }
-
-    public void setUpdatedate(Date updatedate) {
+    public void setUpdatedate(Date updatedate) 
+    {
         this.updatedate = updatedate;
     }
 
-    public Date getUpdatedate() {
+    public Date getUpdatedate() 
+    {
         return updatedate;
     }
-
-    public void setDeptId(Long deptId) {
+    public void setDeptId(Long deptId) 
+    {
         this.deptId = deptId;
     }
 
-    public Long getDeptId() {
+    public Long getDeptId() 
+    {
         return deptId;
     }
 
     @Override
     public String toString() {
-        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
-                .append("id", getId())
-                .append("sifNo", getSifNo())
-                .append("deviation", getDeviation())
-                .append("sheNo", getSheNo())
-                .append("cac", getCac())
-                .append("requriedSil", getRequriedSil())
-                .append("sensors", getSensors())
-                .append("sVoting", getsVoting())
-                .append("finalElements", getFinalElements())
-                .append("fVoting", getfVoting())
-                .append("action", getAction())
-                .append("achievedSil", getAchievedSil())
-                .append("pfdCr", getPfdCr())
-                .append("remarks", getRemarks())
-                .append("delFlag", getDelFlag())
-                .append("createrCode", getCreaterCode())
-                .append("createdate", getCreatedate())
-                .append("updaterCode", getUpdaterCode())
-                .append("updatedate", getUpdatedate())
-                .append("deptId", getDeptId())
-                .toString();
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("sifNo", getSifNo())
+            .append("plant", getPlant())
+            .append("sifTag", getSifTag())
+            .append("deviation", getDeviation())
+            .append("riskAnalysis", getRiskAnalysis())
+            .append("causeConsequence", getCauseConsequence())
+            .append("requiredSil", getRequiredSil())
+            .append("acheievedSil", getAcheievedSil())
+            .append("ver", getVer())
+            .append("pfdavg", getPfdavg())
+            .append("remarks", getRemarks())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .toString();
     }
 }

+ 409 - 0
cpms-admin/src/main/java/com/cpms/project/process/domain/TSifVo.java

@@ -0,0 +1,409 @@
+package com.cpms.project.process.domain;
+
+import com.cpms.common.annotation.Excel;
+import com.cpms.common.core.domain.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+/**
+ * SIF Overview List对象 t_sif_overview
+ *
+ * @author admin
+ * @date 2024-05-22
+ */
+public class TSifVo extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * SN
+     */
+    @Excel(name = "SN")
+    private String sifNo;
+
+    /**
+     * 装置/单元
+     */
+    @Excel(name = "装置/单元")
+    private String plant;
+
+    /**
+     * SIF位号
+     */
+    @Excel(name = "SIF位号")
+    private String sifTag;
+
+    /**
+     * Deviation
+     */
+    @Excel(name = "Deviation")
+    private String deviation;
+
+    /**
+     * 工艺风险分析文件
+     */
+    @Excel(name = "工艺风险分析文件")
+    private String riskAnalysis;
+
+    /**
+     * CAUSE and CONSEQUENCE
+     */
+    @Excel(name = "CAUSE and CONSEQUENCE")
+    private String causeConsequence;
+
+    /**
+     * 要求的SIL
+     */
+    @Excel(name = "要求的SIL")
+    private String requiredSil;
+
+    /**
+     * 实现的SIL
+     */
+    @Excel(name = "实现的SIL")
+    private String acheievedSil;
+
+    /**
+     * 版本
+     */
+    @Excel(name = "版本")
+    private String ver;
+
+    /**
+     * 要求时的平均失效概率
+     */
+    @Excel(name = "要求时的平均失效概率")
+    private String pfdavg;
+
+    /**
+     * 传感器位号
+     */
+    @Excel(name = "传感器位号")
+    private String sensorTag;
+
+    /**
+     * 类型
+     */
+    @Excel(name = "类型")
+    private String type;
+
+    /**
+     * 用途
+     */
+    @Excel(name = "用途")
+    private String service;
+
+    /**
+     * 表决
+     */
+    @Excel(name = "表决")
+    private String votingQ;
+
+    /**
+     * 联锁条件
+     */
+    @Excel(name = "联锁条件")
+    private String condition;
+
+    /**
+     * 测试周期
+     */
+    @Excel(name = "测试周期")
+    private String mainPti;
+
+    /**
+     * 最终元件位号
+     */
+    @Excel(name = "最终元件位号")
+    private String finalElementTag;
+
+    /**
+     * 表决
+     */
+    @Excel(name = "表决")
+    private String votingH;
+
+    /**
+     * 联锁动作
+     */
+    @Excel(name = "联锁动作")
+    private String aciton;
+
+    /**
+     * Filter
+     */
+    @Excel(name = "Filter")
+    private String filter;
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    private String remarks;
+
+    /**
+     * 删除标识
+     */
+    private Integer delFlag;
+
+    /**
+     * 创建人
+     */
+    @Excel(name = "创建人")
+    private String createrCode;
+
+    /**
+     * 创建日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /**
+     * 更新人
+     */
+    @Excel(name = "更新人")
+    private String updaterCode;
+
+    /**
+     * 更新日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Excel(name = "更新日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /**
+     * 部门编号
+     */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getSifNo() {
+        return sifNo;
+    }
+
+    public void setSifNo(String sifNo) {
+        this.sifNo = sifNo;
+    }
+
+    public String getPlant() {
+        return plant;
+    }
+
+    public void setPlant(String plant) {
+        this.plant = plant;
+    }
+
+    public String getSifTag() {
+        return sifTag;
+    }
+
+    public void setSifTag(String sifTag) {
+        this.sifTag = sifTag;
+    }
+
+    public String getDeviation() {
+        return deviation;
+    }
+
+    public void setDeviation(String deviation) {
+        this.deviation = deviation;
+    }
+
+    public String getRiskAnalysis() {
+        return riskAnalysis;
+    }
+
+    public void setRiskAnalysis(String riskAnalysis) {
+        this.riskAnalysis = riskAnalysis;
+    }
+
+    public String getCauseConsequence() {
+        return causeConsequence;
+    }
+
+    public void setCauseConsequence(String causeConsequence) {
+        this.causeConsequence = causeConsequence;
+    }
+
+    public String getRequiredSil() {
+        return requiredSil;
+    }
+
+    public void setRequiredSil(String requiredSil) {
+        this.requiredSil = requiredSil;
+    }
+
+    public String getAcheievedSil() {
+        return acheievedSil;
+    }
+
+    public void setAcheievedSil(String acheievedSil) {
+        this.acheievedSil = acheievedSil;
+    }
+
+    public String getVer() {
+        return ver;
+    }
+
+    public void setVer(String ver) {
+        this.ver = ver;
+    }
+
+    public String getPfdavg() {
+        return pfdavg;
+    }
+
+    public void setPfdavg(String pfdavg) {
+        this.pfdavg = pfdavg;
+    }
+
+    public String getSensorTag() {
+        return sensorTag;
+    }
+
+    public void setSensorTag(String sensorTag) {
+        this.sensorTag = sensorTag;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getService() {
+        return service;
+    }
+
+    public void setService(String service) {
+        this.service = service;
+    }
+
+    public String getVotingQ() {
+        return votingQ;
+    }
+
+    public void setVotingQ(String votingQ) {
+        this.votingQ = votingQ;
+    }
+
+    public String getCondition() {
+        return condition;
+    }
+
+    public void setCondition(String condition) {
+        this.condition = condition;
+    }
+
+    public String getMainPti() {
+        return mainPti;
+    }
+
+    public void setMainPti(String mainPti) {
+        this.mainPti = mainPti;
+    }
+
+    public String getFinalElementTag() {
+        return finalElementTag;
+    }
+
+    public void setFinalElementTag(String finalElementTag) {
+        this.finalElementTag = finalElementTag;
+    }
+
+    public String getVotingH() {
+        return votingH;
+    }
+
+    public void setVotingH(String votingH) {
+        this.votingH = votingH;
+    }
+
+    public String getAciton() {
+        return aciton;
+    }
+
+    public void setAciton(String aciton) {
+        this.aciton = aciton;
+    }
+
+    public String getFilter() {
+        return filter;
+    }
+
+    public void setFilter(String filter) {
+        this.filter = filter;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public Integer getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(Integer delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getCreaterCode() {
+        return createrCode;
+    }
+
+    public void setCreaterCode(String createrCode) {
+        this.createrCode = createrCode;
+    }
+
+    public Date getCreatedate() {
+        return createdate;
+    }
+
+    public void setCreatedate(Date createdate) {
+        this.createdate = createdate;
+    }
+
+    public String getUpdaterCode() {
+        return updaterCode;
+    }
+
+    public void setUpdaterCode(String updaterCode) {
+        this.updaterCode = updaterCode;
+    }
+
+    public Date getUpdatedate() {
+        return updatedate;
+    }
+
+    public void setUpdatedate(Date updatedate) {
+        this.updatedate = updatedate;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+}

+ 278 - 0
cpms-admin/src/main/java/com/cpms/project/process/domain/TSisRecord.java

@@ -0,0 +1,278 @@
+package com.cpms.project.process.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.cpms.common.annotation.Excel;
+import com.cpms.common.core.domain.BaseEntity;
+
+/**
+ * sis Record对象 t_sis_record
+ * 
+ * @author admin
+ * @date 2024-05-22
+ */
+public class TSisRecord extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** sis关联Id */
+    @Excel(name = "sis关联Id")
+    private Long sisId;
+
+    /** 传感器位号 */
+    @Excel(name = "传感器位号")
+    private String sensorTag;
+
+    /** 类型 */
+    @Excel(name = "类型")
+    private String type;
+
+    /** 用途 */
+    @Excel(name = "用途")
+    private String service;
+
+    /** 表决 */
+    @Excel(name = "表决")
+    private String votingQ;
+
+    /** 联锁条件 */
+    @Excel(name = "联锁条件")
+    private String condition;
+
+    /** 测试周期 */
+    @Excel(name = "测试周期")
+    private String mainPti;
+
+    /** 最终元件位号 */
+    @Excel(name = "最终元件位号")
+    private String finalElementTag;
+
+    /** 表决 */
+    @Excel(name = "表决")
+    private String votingH;
+
+    /** 联锁动作 */
+    @Excel(name = "联锁动作")
+    private String aciton;
+
+    /** Filter */
+    @Excel(name = "Filter")
+    private String filter;
+
+    /** 删除标识 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private String createrCode;
+
+    /** 创建日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 更新人 */
+    @Excel(name = "更新人")
+    private String updaterCode;
+
+    /** 更新日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @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 setSisId(Long sisId) 
+    {
+        this.sisId = sisId;
+    }
+
+    public Long getSisId() 
+    {
+        return sisId;
+    }
+    public void setSensorTag(String sensorTag) 
+    {
+        this.sensorTag = sensorTag;
+    }
+
+    public String getSensorTag() 
+    {
+        return sensorTag;
+    }
+    public void setType(String type) 
+    {
+        this.type = type;
+    }
+
+    public String getType() 
+    {
+        return type;
+    }
+    public void setService(String service) 
+    {
+        this.service = service;
+    }
+
+    public String getService() 
+    {
+        return service;
+    }
+    public void setVotingQ(String votingQ) 
+    {
+        this.votingQ = votingQ;
+    }
+
+    public String getVotingQ() 
+    {
+        return votingQ;
+    }
+    public void setCondition(String condition) 
+    {
+        this.condition = condition;
+    }
+
+    public String getCondition() 
+    {
+        return condition;
+    }
+    public void setMainPti(String mainPti) 
+    {
+        this.mainPti = mainPti;
+    }
+
+    public String getMainPti() 
+    {
+        return mainPti;
+    }
+    public void setFinalElementTag(String finalElementTag) 
+    {
+        this.finalElementTag = finalElementTag;
+    }
+
+    public String getFinalElementTag() 
+    {
+        return finalElementTag;
+    }
+    public void setVotingH(String votingH) 
+    {
+        this.votingH = votingH;
+    }
+
+    public String getVotingH() 
+    {
+        return votingH;
+    }
+    public void setAciton(String aciton) 
+    {
+        this.aciton = aciton;
+    }
+
+    public String getAciton() 
+    {
+        return aciton;
+    }
+    public void setFilter(String filter) 
+    {
+        this.filter = filter;
+    }
+
+    public String getFilter() 
+    {
+        return filter;
+    }
+    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("sisId", getSisId())
+            .append("sensorTag", getSensorTag())
+            .append("type", getType())
+            .append("service", getService())
+            .append("votingQ", getVotingQ())
+            .append("condition", getCondition())
+            .append("mainPti", getMainPti())
+            .append("finalElementTag", getFinalElementTag())
+            .append("votingH", getVotingH())
+            .append("aciton", getAciton())
+            .append("filter", getFilter())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .toString();
+    }
+}

+ 3 - 2
cpms-admin/src/main/java/com/cpms/project/process/mapper/TSifOverviewMapper.java

@@ -2,12 +2,13 @@ package com.cpms.project.process.mapper;
 
 import java.util.List;
 import com.cpms.project.process.domain.TSifOverview;
+import com.cpms.project.process.domain.TSifVo;
 
 /**
  * SIF Overview ListMapper接口
  * 
  * @author admin
- * @date 2024-04-12
+ * @date 2024-05-22
  */
 public interface TSifOverviewMapper 
 {
@@ -25,7 +26,7 @@ public interface TSifOverviewMapper
      * @param tSifOverview SIF Overview List
      * @return SIF Overview List集合
      */
-    public List<TSifOverview> selectTSifOverviewList(TSifOverview tSifOverview);
+    public List<TSifVo> selectTSifOverviewList(TSifOverview tSifOverview);
 
     /**
      * 新增SIF Overview List

+ 61 - 0
cpms-admin/src/main/java/com/cpms/project/process/mapper/TSisRecordMapper.java

@@ -0,0 +1,61 @@
+package com.cpms.project.process.mapper;
+
+import java.util.List;
+import com.cpms.project.process.domain.TSisRecord;
+
+/**
+ * sis RecordMapper接口
+ * 
+ * @author admin
+ * @date 2024-05-22
+ */
+public interface TSisRecordMapper 
+{
+    /**
+     * 查询sis Record
+     * 
+     * @param id sis Record主键
+     * @return sis Record
+     */
+    public TSisRecord selectTSisRecordById(Long id);
+
+    /**
+     * 查询sis Record列表
+     * 
+     * @param tSisRecord sis Record
+     * @return sis Record集合
+     */
+    public List<TSisRecord> selectTSisRecordList(TSisRecord tSisRecord);
+
+    /**
+     * 新增sis Record
+     * 
+     * @param tSisRecord sis Record
+     * @return 结果
+     */
+    public int insertTSisRecord(TSisRecord tSisRecord);
+
+    /**
+     * 修改sis Record
+     * 
+     * @param tSisRecord sis Record
+     * @return 结果
+     */
+    public int updateTSisRecord(TSisRecord tSisRecord);
+
+    /**
+     * 删除sis Record
+     * 
+     * @param id sis Record主键
+     * @return 结果
+     */
+    public int deleteTSisRecordById(Long id);
+
+    /**
+     * 批量删除sis Record
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTSisRecordByIds(Long[] ids);
+}

+ 3 - 2
cpms-admin/src/main/java/com/cpms/project/process/service/ITSifOverviewService.java

@@ -2,12 +2,13 @@ package com.cpms.project.process.service;
 
 import java.util.List;
 import com.cpms.project.process.domain.TSifOverview;
+import com.cpms.project.process.domain.TSifVo;
 
 /**
  * SIF Overview ListService接口
  * 
  * @author admin
- * @date 2024-04-12
+ * @date 2024-05-22
  */
 public interface ITSifOverviewService 
 {
@@ -25,7 +26,7 @@ public interface ITSifOverviewService
      * @param tSifOverview SIF Overview List
      * @return SIF Overview List集合
      */
-    public List<TSifOverview> selectTSifOverviewList(TSifOverview tSifOverview);
+    public List<TSifVo> selectTSifOverviewList(TSifOverview tSifOverview);
 
     /**
      * 新增SIF Overview List

+ 61 - 0
cpms-admin/src/main/java/com/cpms/project/process/service/ITSisRecordService.java

@@ -0,0 +1,61 @@
+package com.cpms.project.process.service;
+
+import java.util.List;
+import com.cpms.project.process.domain.TSisRecord;
+
+/**
+ * sis RecordService接口
+ * 
+ * @author admin
+ * @date 2024-05-22
+ */
+public interface ITSisRecordService 
+{
+    /**
+     * 查询sis Record
+     * 
+     * @param id sis Record主键
+     * @return sis Record
+     */
+    public TSisRecord selectTSisRecordById(Long id);
+
+    /**
+     * 查询sis Record列表
+     * 
+     * @param tSisRecord sis Record
+     * @return sis Record集合
+     */
+    public List<TSisRecord> selectTSisRecordList(TSisRecord tSisRecord);
+
+    /**
+     * 新增sis Record
+     * 
+     * @param tSisRecord sis Record
+     * @return 结果
+     */
+    public int insertTSisRecord(TSisRecord tSisRecord);
+
+    /**
+     * 修改sis Record
+     * 
+     * @param tSisRecord sis Record
+     * @return 结果
+     */
+    public int updateTSisRecord(TSisRecord tSisRecord);
+
+    /**
+     * 批量删除sis Record
+     * 
+     * @param ids 需要删除的sis Record主键集合
+     * @return 结果
+     */
+    public int deleteTSisRecordByIds(Long[] ids);
+
+    /**
+     * 删除sis Record信息
+     * 
+     * @param id sis Record主键
+     * @return 结果
+     */
+    public int deleteTSisRecordById(Long id);
+}

+ 4 - 2
cpms-admin/src/main/java/com/cpms/project/process/service/impl/TSifOverviewServiceImpl.java

@@ -1,6 +1,8 @@
 package com.cpms.project.process.service.impl;
 
 import java.util.List;
+
+import com.cpms.project.process.domain.TSifVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.cpms.project.process.mapper.TSifOverviewMapper;
@@ -11,7 +13,7 @@ import com.cpms.project.process.service.ITSifOverviewService;
  * SIF Overview ListService业务层处理
  * 
  * @author admin
- * @date 2024-04-12
+ * @date 2024-05-22
  */
 @Service
 public class TSifOverviewServiceImpl implements ITSifOverviewService 
@@ -38,7 +40,7 @@ public class TSifOverviewServiceImpl implements ITSifOverviewService
      * @return SIF Overview List
      */
     @Override
-    public List<TSifOverview> selectTSifOverviewList(TSifOverview tSifOverview)
+    public List<TSifVo> selectTSifOverviewList(TSifOverview tSifOverview)
     {
         return tSifOverviewMapper.selectTSifOverviewList(tSifOverview);
     }

+ 93 - 0
cpms-admin/src/main/java/com/cpms/project/process/service/impl/TSisRecordServiceImpl.java

@@ -0,0 +1,93 @@
+package com.cpms.project.process.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.cpms.project.process.mapper.TSisRecordMapper;
+import com.cpms.project.process.domain.TSisRecord;
+import com.cpms.project.process.service.ITSisRecordService;
+
+/**
+ * sis RecordService业务层处理
+ * 
+ * @author admin
+ * @date 2024-05-22
+ */
+@Service
+public class TSisRecordServiceImpl implements ITSisRecordService 
+{
+    @Autowired
+    private TSisRecordMapper tSisRecordMapper;
+
+    /**
+     * 查询sis Record
+     * 
+     * @param id sis Record主键
+     * @return sis Record
+     */
+    @Override
+    public TSisRecord selectTSisRecordById(Long id)
+    {
+        return tSisRecordMapper.selectTSisRecordById(id);
+    }
+
+    /**
+     * 查询sis Record列表
+     * 
+     * @param tSisRecord sis Record
+     * @return sis Record
+     */
+    @Override
+    public List<TSisRecord> selectTSisRecordList(TSisRecord tSisRecord)
+    {
+        return tSisRecordMapper.selectTSisRecordList(tSisRecord);
+    }
+
+    /**
+     * 新增sis Record
+     * 
+     * @param tSisRecord sis Record
+     * @return 结果
+     */
+    @Override
+    public int insertTSisRecord(TSisRecord tSisRecord)
+    {
+        return tSisRecordMapper.insertTSisRecord(tSisRecord);
+    }
+
+    /**
+     * 修改sis Record
+     * 
+     * @param tSisRecord sis Record
+     * @return 结果
+     */
+    @Override
+    public int updateTSisRecord(TSisRecord tSisRecord)
+    {
+        return tSisRecordMapper.updateTSisRecord(tSisRecord);
+    }
+
+    /**
+     * 批量删除sis Record
+     * 
+     * @param ids 需要删除的sis Record主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTSisRecordByIds(Long[] ids)
+    {
+        return tSisRecordMapper.deleteTSisRecordByIds(ids);
+    }
+
+    /**
+     * 删除sis Record信息
+     * 
+     * @param id sis Record主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTSisRecordById(Long id)
+    {
+        return tSisRecordMapper.deleteTSisRecordById(id);
+    }
+}

+ 11 - 3
cpms-admin/src/main/java/com/cpms/project/web/controller/common/CommonController.java

@@ -79,15 +79,15 @@ public class CommonController
                 break;
             case "specMain":
                 downloadname = "设备总表格导入模板.xlsx";
-                url = "static/template/sems/specMain.xlsx";
+                url = "static/template/asset/specMain.xlsx";
                 break;
             case "specAsset":
                 downloadname = "资产与运营清单导入模板.xlsx";
-                url = "static/template/sems/specAsset.xlsx";
+                url = "static/template/asset/specAsset.xlsx";
                 break;
             case "fixedAsset":
                 downloadname = "固定资产清单导入模板.xlsx";
-                url = "static/template/sems/fixedAsset.xlsx";
+                url = "static/template/asset/fixedAsset.xlsx";
                 break;
             case "approval":
                 downloadname = "批文清单导入模板.xlsx";
@@ -109,6 +109,14 @@ public class CommonController
                 downloadname = "CSOCSC清单导入模板.xlsx";
                 url = "static/template/process/csocsc.xlsx";
                 break;
+            case "processSifList":
+                downloadname = "sif-overlist清单导入模板.xlsx";
+                url = "static/template/process/sisList.xlsx";
+                break;
+            case "processvalve":
+                downloadname = "LOLC清单导入模板.xlsx";
+                url = "static/template/process/valve.xlsx";
+                break;
         }
         InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(url);
 

+ 1 - 0
cpms-admin/src/main/resources/application-druid.yml

@@ -7,6 +7,7 @@ spring:
             # 主库数据源
             master:
                 url: jdbc:mysql://43.143.92.79:3306/newcpms_sh?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#                url: jdbc:mysql://localhost:3306/newcpms_sh?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
                 password: Ssy666666!
             # 从库数据源

+ 11 - 5
cpms-admin/src/main/resources/application.yml

@@ -7,7 +7,10 @@ ruoyi:
   # 版权年份
   copyrightYear: 2024
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: D:/cpmsFile/uploadPath
+#  部署
+  profile: C:/cpmsFile/uploadPath
+#  本地
+#  profile: D:/cpmsFile/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数字计算 char 字符验证
@@ -41,9 +44,9 @@ logging:
 user:
   password:
     # 密码最大错误次数
-    maxRetryCount: 5
+    maxRetryCount: 10
     # 密码锁定时间(默认10分钟)
-    lockTime: 10
+    lockTime: 1
 
 # Spring配置
 spring:
@@ -69,10 +72,12 @@ spring:
   redis:
     # 地址
     host: 47.114.101.16
+#    host: localhost
     # 端口,默认为6379
     port: 6379
     # 数据库索引
     database: 8
+#    database: 0
     # 密码
     password: ssy666666
     # 连接超时时间
@@ -132,7 +137,7 @@ jasypt:
     password: test
 # 当前部署外网IP,用于office预览
 deployment:
-  host: cpms.v7.idcfengye.com/dev-api
+  host: 43.143.92.79/cpms
 filesize-max: 5242880
 files:
   docservice:
@@ -151,7 +156,8 @@ files:
       converter: ConvertService.ashx
       example: ''
       preloader: web-apps/apps/api/documents/cache-scripts.html
-      site: http://39.98.183.28:6831/
+#      site: http://10.136.112.11:6831/
+      site: http://43.143.92.79.:6831/
     verify-peer-off: true
     viewed-docs: .pdf|.djvu|.xps|.oxps
   storage: ''

+ 80 - 60
cpms-admin/src/main/resources/mapper/process/TSifOverviewMapper.xml

@@ -7,17 +7,46 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="TSifOverview" id="TSifOverviewResult">
         <result property="id"    column="id"    />
         <result property="sifNo"    column="sif_no"    />
+        <result property="plant"    column="plant"    />
+        <result property="sifTag"    column="sif_tag"    />
         <result property="deviation"    column="deviation"    />
-        <result property="sheNo"    column="she_no"    />
-        <result property="cac"    column="cac"    />
-        <result property="requriedSil"    column="requried_sil"    />
-        <result property="sensors"    column="sensors"    />
-        <result property="sVoting"    column="s_voting"    />
-        <result property="finalElements"    column="final_elements"    />
-        <result property="fVoting"    column="f_voting"    />
-        <result property="action"    column="action"    />
-        <result property="achievedSil"    column="achieved_sil"    />
-        <result property="pfdCr"    column="pfd_cr"    />
+        <result property="riskAnalysis"    column="risk_analysis"    />
+        <result property="causeConsequence"    column="cause_consequence"    />
+        <result property="requiredSil"    column="required_sil"    />
+        <result property="acheievedSil"    column="acheieved_sil"    />
+        <result property="ver"    column="ver"    />
+        <result property="pfdavg"    column="pfdavg"    />
+        <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>
+
+    <resultMap type="TSifVo" id="TSifVoResult">
+        <result property="id"    column="id"    />
+        <result property="sifNo"    column="sif_no"    />
+        <result property="plant"    column="plant"    />
+        <result property="sifTag"    column="sif_tag"    />
+        <result property="deviation"    column="deviation"    />
+        <result property="riskAnalysis"    column="risk_analysis"    />
+        <result property="causeConsequence"    column="cause_consequence"    />
+        <result property="requiredSil"    column="required_sil"    />
+        <result property="acheievedSil"    column="acheieved_sil"    />
+        <result property="ver"    column="ver"    />
+        <result property="pfdavg"    column="pfdavg"    />
+        <result property="sensorTag"    column="sensor_tag"    />
+        <result property="type"    column="type"    />
+        <result property="service"    column="service"    />
+        <result property="votingQ"    column="voting_q"    />
+        <result property="condition"    column="condition"    />
+        <result property="mainPti"    column="main_pti"    />
+        <result property="finalElementTag"    column="final_element_tag"    />
+        <result property="votingH"    column="voting_h"    />
+        <result property="aciton"    column="aciton"    />
+        <result property="filter"    column="filter"    />
         <result property="remarks"    column="remarks"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="createrCode"    column="creater_code"    />
@@ -28,30 +57,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectTSifOverviewVo">
-        select id, sif_no, deviation, she_no, cac, requried_sil, sensors, s_voting, final_elements, f_voting, action, achieved_sil, pfd_cr, remarks, del_flag, creater_code, createdate, updater_code, updatedate, dept_id from t_sif_overview
+        select id, sif_no, plant, sif_tag, deviation, risk_analysis, cause_consequence, required_sil, acheieved_sil, ver, pfdavg, remarks, del_flag, creater_code, createdate, updater_code, updatedate, dept_id from t_sif_overview
     </sql>
 
-    <select id="selectTSifOverviewList" parameterType="TSifOverview" resultMap="TSifOverviewResult">
-        <include refid="selectTSifOverviewVo"/>
-        <where>  
+    <sql id="selectTSifVoVo">
+        SELECT a.id, a.sif_no, a.plant, a.sif_tag, a.deviation, a.risk_analysis, a.cause_consequence, a.required_sil, a.acheieved_sil, a.ver, a.pfdavg, a.remarks, a.del_flag, a.creater_code, a.createdate, a.updater_code, a.updatedate, a.dept_id, b.sensor_tag, b.type, b.service, b.voting_q, b.`condition`, b.main_pti, b.final_element_tag, b.voting_h, b.aciton, b.`filter` FROM t_sif_overview a LEFT JOIN t_sis_record b on a.id=b.sis_id
+    </sql>
+
+
+    <select id="selectTSifOverviewList" parameterType="TSifOverview" resultMap="TSifVoResult">
+        <include refid="selectTSifVoVo"/>
+        <where>
             <if test="sifNo != null  and sifNo != ''"> and sif_no = #{sifNo}</if>
+            <if test="plant != null  and plant != ''"> and plant = #{plant}</if>
+            <if test="sifTag != null  and sifTag != ''"> and sif_tag = #{sifTag}</if>
             <if test="deviation != null  and deviation != ''"> and deviation = #{deviation}</if>
-            <if test="sheNo != null  and sheNo != ''"> and she_no = #{sheNo}</if>
-            <if test="cac != null  and cac != ''"> and cac = #{cac}</if>
-            <if test="requriedSil != null  and requriedSil != ''"> and requried_sil = #{requriedSil}</if>
-            <if test="sensors != null  and sensors != ''"> and sensors = #{sensors}</if>
-            <if test="sVoting != null  and sVoting != ''"> and s_voting = #{sVoting}</if>
-            <if test="finalElements != null  and finalElements != ''"> and final_elements = #{finalElements}</if>
-            <if test="fVoting != null  and fVoting != ''"> and f_voting = #{fVoting}</if>
-            <if test="action != null  and action != ''"> and action = #{action}</if>
-            <if test="achievedSil != null  and achievedSil != ''"> and achieved_sil = #{achievedSil}</if>
-            <if test="pfdCr != null  and pfdCr != ''"> and pfd_cr = #{pfdCr}</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>
+            <if test="riskAnalysis != null  and riskAnalysis != ''"> and risk_analysis = #{riskAnalysis}</if>
+            <if test="causeConsequence != null  and causeConsequence != ''"> and cause_consequence = #{causeConsequence}</if>
+            <if test="requiredSil != null  and requiredSil != ''"> and required_sil = #{requiredSil}</if>
+            <if test="acheievedSil != null  and acheievedSil != ''"> and acheieved_sil = #{acheievedSil}</if>
+            <if test="ver != null  and ver != ''"> and ver = #{ver}</if>
+            <if test="pfdavg != null  and pfdavg != ''"> and pfdavg = #{pfdavg}</if>
         </where>
     </select>
     
@@ -64,17 +90,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         insert into t_sif_overview
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="sifNo != null">sif_no,</if>
+            <if test="plant != null">plant,</if>
+            <if test="sifTag != null">sif_tag,</if>
             <if test="deviation != null">deviation,</if>
-            <if test="sheNo != null">she_no,</if>
-            <if test="cac != null">cac,</if>
-            <if test="requriedSil != null">requried_sil,</if>
-            <if test="sensors != null">sensors,</if>
-            <if test="sVoting != null">s_voting,</if>
-            <if test="finalElements != null">final_elements,</if>
-            <if test="fVoting != null">f_voting,</if>
-            <if test="action != null">action,</if>
-            <if test="achievedSil != null">achieved_sil,</if>
-            <if test="pfdCr != null">pfd_cr,</if>
+            <if test="riskAnalysis != null">risk_analysis,</if>
+            <if test="causeConsequence != null">cause_consequence,</if>
+            <if test="requiredSil != null">required_sil,</if>
+            <if test="acheievedSil != null">acheieved_sil,</if>
+            <if test="ver != null">ver,</if>
+            <if test="pfdavg != null">pfdavg,</if>
             <if test="remarks != null">remarks,</if>
             <if test="delFlag != null">del_flag,</if>
             <if test="createrCode != null">creater_code,</if>
@@ -85,17 +109,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="sifNo != null">#{sifNo},</if>
+            <if test="plant != null">#{plant},</if>
+            <if test="sifTag != null">#{sifTag},</if>
             <if test="deviation != null">#{deviation},</if>
-            <if test="sheNo != null">#{sheNo},</if>
-            <if test="cac != null">#{cac},</if>
-            <if test="requriedSil != null">#{requriedSil},</if>
-            <if test="sensors != null">#{sensors},</if>
-            <if test="sVoting != null">#{sVoting},</if>
-            <if test="finalElements != null">#{finalElements},</if>
-            <if test="fVoting != null">#{fVoting},</if>
-            <if test="action != null">#{action},</if>
-            <if test="achievedSil != null">#{achievedSil},</if>
-            <if test="pfdCr != null">#{pfdCr},</if>
+            <if test="riskAnalysis != null">#{riskAnalysis},</if>
+            <if test="causeConsequence != null">#{causeConsequence},</if>
+            <if test="requiredSil != null">#{requiredSil},</if>
+            <if test="acheievedSil != null">#{acheievedSil},</if>
+            <if test="ver != null">#{ver},</if>
+            <if test="pfdavg != null">#{pfdavg},</if>
             <if test="remarks != null">#{remarks},</if>
             <if test="delFlag != null">#{delFlag},</if>
             <if test="createrCode != null">#{createrCode},</if>
@@ -110,17 +132,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update t_sif_overview
         <trim prefix="SET" suffixOverrides=",">
             <if test="sifNo != null">sif_no = #{sifNo},</if>
+            <if test="plant != null">plant = #{plant},</if>
+            <if test="sifTag != null">sif_tag = #{sifTag},</if>
             <if test="deviation != null">deviation = #{deviation},</if>
-            <if test="sheNo != null">she_no = #{sheNo},</if>
-            <if test="cac != null">cac = #{cac},</if>
-            <if test="requriedSil != null">requried_sil = #{requriedSil},</if>
-            <if test="sensors != null">sensors = #{sensors},</if>
-            <if test="sVoting != null">s_voting = #{sVoting},</if>
-            <if test="finalElements != null">final_elements = #{finalElements},</if>
-            <if test="fVoting != null">f_voting = #{fVoting},</if>
-            <if test="action != null">action = #{action},</if>
-            <if test="achievedSil != null">achieved_sil = #{achievedSil},</if>
-            <if test="pfdCr != null">pfd_cr = #{pfdCr},</if>
+            <if test="riskAnalysis != null">risk_analysis = #{riskAnalysis},</if>
+            <if test="causeConsequence != null">cause_consequence = #{causeConsequence},</if>
+            <if test="requiredSil != null">required_sil = #{requiredSil},</if>
+            <if test="acheievedSil != null">acheieved_sil = #{acheievedSil},</if>
+            <if test="ver != null">ver = #{ver},</if>
+            <if test="pfdavg != null">pfdavg = #{pfdavg},</if>
             <if test="remarks != null">remarks = #{remarks},</if>
             <if test="delFlag != null">del_flag = #{delFlag},</if>
             <if test="createrCode != null">creater_code = #{createrCode},</if>

+ 135 - 0
cpms-admin/src/main/resources/mapper/process/TSisRecordMapper.xml

@@ -0,0 +1,135 @@
+<?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.cpms.project.process.mapper.TSisRecordMapper">
+    
+    <resultMap type="TSisRecord" id="TSisRecordResult">
+        <result property="id"    column="id"    />
+        <result property="sisId"    column="sis_id"    />
+        <result property="sensorTag"    column="sensor_tag"    />
+        <result property="type"    column="type"    />
+        <result property="service"    column="service"    />
+        <result property="votingQ"    column="voting_q"    />
+        <result property="condition"    column="condition"    />
+        <result property="mainPti"    column="main_pti"    />
+        <result property="finalElementTag"    column="final_element_tag"    />
+        <result property="votingH"    column="voting_h"    />
+        <result property="aciton"    column="aciton"    />
+        <result property="filter"    column="filter"    />
+        <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="selectTSisRecordVo">
+        select id, sis_id, sensor_tag, type, service, voting_q, `condition`, main_pti, final_element_tag, voting_h, aciton, `filter`, del_flag, creater_code, createdate, updater_code, updatedate, dept_id from t_sis_record
+    </sql>
+
+    <select id="selectTSisRecordList" parameterType="TSisRecord" resultMap="TSisRecordResult">
+        <include refid="selectTSisRecordVo"/>
+        <where>  
+            <if test="sisId != null "> and sis_id = #{sisId}</if>
+            <if test="sensorTag != null  and sensorTag != ''"> and sensor_tag = #{sensorTag}</if>
+            <if test="type != null  and type != ''"> and type = #{type}</if>
+            <if test="service != null  and service != ''"> and service = #{service}</if>
+            <if test="votingQ != null  and votingQ != ''"> and voting_q = #{votingQ}</if>
+            <if test="condition != null  and condition != ''"> and `condition` = #{condition}</if>
+            <if test="mainPti != null  and mainPti != ''"> and main_pti = #{mainPti}</if>
+            <if test="finalElementTag != null  and finalElementTag != ''"> and final_element_tag = #{finalElementTag}</if>
+            <if test="votingH != null  and votingH != ''"> and voting_h = #{votingH}</if>
+            <if test="aciton != null  and aciton != ''"> and aciton = #{aciton}</if>
+            <if test="filter != null  and filter != ''"> and `filter` = #{filter}</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="selectTSisRecordById" parameterType="Long" resultMap="TSisRecordResult">
+        <include refid="selectTSisRecordVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTSisRecord" parameterType="TSisRecord" useGeneratedKeys="true" keyProperty="id">
+        insert into t_sis_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="sisId != null">sis_id,</if>
+            <if test="sensorTag != null">sensor_tag,</if>
+            <if test="type != null">type,</if>
+            <if test="service != null">service,</if>
+            <if test="votingQ != null">voting_q,</if>
+            <if test="condition != null">`condition`,</if>
+            <if test="mainPti != null">main_pti,</if>
+            <if test="finalElementTag != null">final_element_tag,</if>
+            <if test="votingH != null">voting_h,</if>
+            <if test="aciton != null">aciton,</if>
+            <if test="filter != null">`filter`,</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="sisId != null">#{sisId},</if>
+            <if test="sensorTag != null">#{sensorTag},</if>
+            <if test="type != null">#{type},</if>
+            <if test="service != null">#{service},</if>
+            <if test="votingQ != null">#{votingQ},</if>
+            <if test="condition != null">#{condition},</if>
+            <if test="mainPti != null">#{mainPti},</if>
+            <if test="finalElementTag != null">#{finalElementTag},</if>
+            <if test="votingH != null">#{votingH},</if>
+            <if test="aciton != null">#{aciton},</if>
+            <if test="filter != null">#{filter},</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="updateTSisRecord" parameterType="TSisRecord">
+        update t_sis_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="sisId != null">sis_id = #{sisId},</if>
+            <if test="sensorTag != null">sensor_tag = #{sensorTag},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="service != null">service = #{service},</if>
+            <if test="votingQ != null">voting_q = #{votingQ},</if>
+            <if test="condition != null">`condition` = #{condition},</if>
+            <if test="mainPti != null">main_pti = #{mainPti},</if>
+            <if test="finalElementTag != null">final_element_tag = #{finalElementTag},</if>
+            <if test="votingH != null">voting_h = #{votingH},</if>
+            <if test="aciton != null">aciton = #{aciton},</if>
+            <if test="filter != null">`filter` = #{filter},</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="deleteTSisRecordById" parameterType="Long">
+        delete from t_sis_record where id = #{id}
+    </delete>
+
+    <delete id="deleteTSisRecordByIds" parameterType="String">
+        delete from t_sis_record where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 1 - 0
cpms-admin/src/main/resources/mapper/sems/TSpecdevMainMapper.xml

@@ -106,6 +106,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 dev_from like concat('%',#{fuzzy},'%') or
                 remarks like concat('%',#{fuzzy},'%')
                 )</if>
+                and d.del_flag !=2
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}

BIN
cpms-admin/src/main/resources/static/template/asset/fixedAsset.xlsx


BIN
cpms-admin/src/main/resources/static/template/asset/specAsset.xlsx


BIN
cpms-admin/src/main/resources/static/template/asset/specMain.xlsx


BIN
cpms-admin/src/main/resources/static/template/plant/staffmgr.xlsx


BIN
cpms-admin/src/main/resources/static/template/process/sisList.xlsx


BIN
cpms-admin/src/main/resources/static/template/process/valve.xlsx


BIN
cpms-admin/src/main/resources/static/template/sems/specCc.xlsx


BIN
cpms-admin/src/main/resources/static/template/sems/specDt.xlsx


BIN
cpms-admin/src/main/resources/static/template/sems/specDzsb.xlsx


BIN
cpms-admin/src/main/resources/static/template/sems/specGl.xlsx


BIN
cpms-admin/src/main/resources/static/template/sems/specYlgd.xlsx


BIN
cpms-admin/src/main/resources/static/template/sems/specYlrq.xlsx


BIN
cpms-admin/src/main/resources/static/word/blankMeeting.docx


BIN
cpms-admin/src/main/resources/static/word/meeting.docx


+ 10 - 10
cpms-ui/src/api/process/overview.js → cpms-ui/src/api/process/sifList.js

@@ -1,44 +1,44 @@
 import request from '@/utils/request'
 
 // 查询SIF Overview List列表
-export function listOverview(query) {
+export function listSifList(query) {
   return request({
-    url: '/process/overview/list',
+    url: '/process/sifList/list',
     method: 'get',
     params: query
   })
 }
 
 // 查询SIF Overview List详细
-export function getOverview(id) {
+export function getSifList(id) {
   return request({
-    url: '/process/overview/' + id,
+    url: '/process/sifList/' + id,
     method: 'get'
   })
 }
 
 // 新增SIF Overview List
-export function addOverview(data) {
+export function addSifList(data) {
   return request({
-    url: '/process/overview',
+    url: '/process/sifList',
     method: 'post',
     data: data
   })
 }
 
 // 修改SIF Overview List
-export function updateOverview(data) {
+export function updateSifList(data) {
   return request({
-    url: '/process/overview',
+    url: '/process/sifList',
     method: 'put',
     data: data
   })
 }
 
 // 删除SIF Overview List
-export function delOverview(id) {
+export function delSifList(id) {
   return request({
-    url: '/process/overview/' + id,
+    url: '/process/sifList/' + id,
     method: 'delete'
   })
 }

+ 44 - 0
cpms-ui/src/api/process/sisRecord.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询sis Record列表
+export function listSisRecord(query) {
+  return request({
+    url: '/process/sisRecord/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询sis Record详细
+export function getSisRecord(id) {
+  return request({
+    url: '/process/sisRecord/' + id,
+    method: 'get'
+  })
+}
+
+// 新增sis Record
+export function addSisRecord(data) {
+  return request({
+    url: '/process/sisRecord',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改sis Record
+export function updateSisRecord(data) {
+  return request({
+    url: '/process/sisRecord',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除sis Record
+export function delSisRecord(id) {
+  return request({
+    url: '/process/sisRecord/' + id,
+    method: 'delete'
+  })
+}

+ 9 - 0
cpms-ui/src/api/system/user.js

@@ -133,3 +133,12 @@ export function deptTreeSelect() {
     method: 'get'
   })
 }
+
+// 查询用户列表
+export function listPostUser(query) {
+  return request({
+    url: '/system/user/postUserList',
+    method: 'get',
+    params: query
+  })
+}

BIN
cpms-ui/src/assets/images/cpms-test.jpg


+ 3 - 0
cpms-ui/src/utils/ruoyi.js

@@ -78,6 +78,9 @@ export function selectDictLabel(datas, value) {
     if (datas[key].value == ('' + value)) {
       actions.push(datas[key].label);
       return true;
+    }else if (datas[key].dictValue == ('' + value)) {
+      actions.push(datas[key].dictLabel);
+      return true;
     }
   })
   if (actions.length === 0) {

+ 24 - 10
cpms-ui/src/views/asset/basedoc/index.vue

@@ -2,7 +2,7 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="类型" prop="type">
-        <el-select v-model="queryParams.type" placeholder="请选择类型" clearable>
+        <el-select v-model="queryParams.type" placeholder="请选择类型" clearable @change="handleQuery">
           <el-option
             v-for="dict in dict.type.basedoc_type"
             :key="dict.value"
@@ -20,7 +20,7 @@
         />
       </el-form-item>
       <el-form-item label="状态" prop="docStatus">
-        <el-select v-model="queryParams.docStatus" placeholder="请选择状态" clearable>
+        <el-select v-model="queryParams.docStatus" placeholder="请选择状态" clearable  @change="handleQuery">
           <el-option
             v-for="dict in dict.type.basedoc_status"
             :key="dict.value"
@@ -29,6 +29,20 @@
           />
         </el-select>
       </el-form-item>
+      <el-form-item label="删除状态" prop="delFlag">
+        <el-select v-model="queryParams.delFlag" placeholder="请选择删除状态" clearable @change="handleQuery">
+          <el-option
+            key="0"
+            label="未删除"
+            value="0"
+          />
+          <el-option
+            key="1"
+            label="已删除"
+            value="1"
+          />
+        </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>
@@ -92,14 +106,14 @@
           v-hasPermi="['asset:basedoc:export']"
         >导出
         </el-button>
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="getDelList"
-        > 已删除
-        </el-button>
+        <!--        <el-checkbox-button-->
+        <!--          type="warning"-->
+        <!--          plain-->
+        <!--          icon="el-icon-download"-->
+        <!--          size="mini"-->
+        <!--          @click="getDelList"-->
+        <!--        > 已删除-->
+        <!--        </el-checkbox-button>-->
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>

+ 28 - 9
cpms-ui/src/views/asset/points/index.vue

@@ -178,8 +178,8 @@
     />
 
     <!-- 添加或修改漏点清单对话框 -->
-    <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-dialog :title="title" :visible.sync="open" width="700px" append-to-body :close-on-click-modal="false">
+      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
         <el-form-item label="漏点编号" prop="pointNo">
           <el-input v-model="form.pointNo" placeholder="请输入漏点编号"/>
         </el-form-item>
@@ -279,14 +279,26 @@
         <tr>
           <td>班组</td>
           <td colspan="2">
-            <span v-if="!record.isEdit">{{ record.pointPatrol.teamM }}班</span>
-            <span v-else><el-input v-model="record.pointPatrol.teamM" placeholder="请输入当前班组"
-                                   style="width: 150px"/> 班</span>
+            <span v-if="record.isEdit||isEmpty(record.pointPatrol.teamM)">
+              <el-select clearable v-model="record.pointPatrol.teamM" placeholder="请选择消漏结果">
+                <el-option v-for="dict in dict.type.team_divide"
+                           :value="dict.value"
+                           :label="dict.label"
+                           :key="dict.value"/>
+              </el-select>
+            </span>
+            <span v-else><dict-tag :options="dict.type.team_divide" :value="record.pointPatrol.teamM"/></span>
           </td>
           <td colspan="2">
-            <span v-if="!record.isEdit">{{ record.pointPatrol.teamN }}班</span>
-            <span v-else><el-input v-model="record.pointPatrol.teamN" placeholder="请输入当前班组"
-                                   style="width: 150px"/> 班</span>
+            <span v-if="record.isEdit||isEmpty(record.pointPatrol.teamN)">
+              <el-select clearable v-model="record.pointPatrol.teamN" placeholder="请选择消漏结果">
+                <el-option v-for="dict in dict.type.team_divide"
+                           :value="dict.value"
+                           :label="dict.label"
+                           :key="dict.value"/>
+              </el-select>
+            </span>
+            <span v-else><dict-tag :options="dict.type.team_divide" :value="record.pointPatrol.teamM"/></span>
           </td>
         </tr>
         <tr>
@@ -389,7 +401,7 @@ import {getToken} from "@/utils/auth";
 import {addPointPatrol, listPointPatrol, updatePointPatrol} from "@/api/asset/pointPatrol";
 
 export default {
-  dicts: ['leakage_result'],
+  dicts: ['leakage_result', 'team_divide'],
   name: "Points",
   components: {PointPatrol, PointRecord},
   data() {
@@ -494,6 +506,13 @@ export default {
     });
   },
   methods: {
+    isEmpty(value){
+      if (value !== null && value !== "" && typeof (value) !== "undefined") {
+        return true
+      }else {
+        return false
+      }
+    },
     isToday(date) {
       const today = new Date();
       const todayISOString = today.toISOString().split('T')[0];

+ 1 - 1
cpms-ui/src/views/asset/specMain/index.vue

@@ -565,7 +565,7 @@ export default {
     this.getList();
     this.getTreeselect();
     this.getDevType1List();
-    this.getDicts("YES_NO").then(response => {
+    this.getDicts("yes_no").then(response => {
       this.yesOrNoOptions = response.data;
     });
     this.getDicts("spec_dev_status").then(response => {

+ 1 - 1
cpms-ui/src/views/file/file/uploadFile.vue

@@ -400,7 +400,7 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      this.$confirm('是否确认删除附件编号为"' + row.id + '"的数据项?', "警告", {
+      this.$confirm('是否确认删除附件名为"' + row.fileName + '"的数据项?', "警告", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"

+ 4 - 3
cpms-ui/src/views/login.vue

@@ -58,8 +58,8 @@ export default {
     return {
       codeUrl: "",
       loginForm: {
-        username: "admin",
-        password: "123456",
+        username: "",
+        password: "",
         rememberMe: false,
         code: "",
         uuid: ""
@@ -134,7 +134,8 @@ export default {
   justify-content: center;
   align-items: center;
   height: 100%;
-  background-image: url("../assets/images/login-background.jpg");
+  //background-image: url("../assets/images/login-background.jpg");
+  background-image: url("../assets/images/cpms-test.jpg");
   background-size: cover;
 }
 .title {

+ 18 - 12
cpms-ui/src/views/process/classd/index.vue

@@ -79,19 +79,19 @@
     <el-table v-loading="loading" :data="classdList" @selection-change="handleSelectionChange" :height="clientHeight"
               border>
       <el-table-column type="selection" width="55" align="center" fixed="left"/>
-      <el-table-column label="Discussion item" align="center" prop="discussionItem" width="150"/>
-      <el-table-column label="Hazard" align="center" prop="hazard" width="200"/>
-      <el-table-column label="Cause" align="center" prop="cause" width="250"/>
-      <el-table-column label="Consequence" align="center" prop="consequence" width="200"/>
-      <el-table-column label="Raw RiskP&ID" align="center">
-        <el-table-column label="P" align="center" prop="p" width="80"/>
-        <el-table-column label="Justification P" align="center" prop="justificationP" width="180"/>
-        <el-table-column label="S" align="center" prop="s" width="80"/>
-        <el-table-column label="Justification S" align="center" prop="justificationS" width="180"/>
-        <el-table-column label="RC" align="center" prop="rc" width="80"/>
+      <el-table-column :label="'Discussion item\n'" align="center" prop="discussionItem" width="150"/>
+      <el-table-column :label="'Hazard\n'" align="center" prop="hazard" width="200"/>
+      <el-table-column :label="'Cause\n'" align="center" prop="cause" width="250"/>
+      <el-table-column :label="'Consequence\n'" align="center" prop="consequence" width="200"/>
+      <el-table-column :label="'Raw RiskP&ID\n'" align="center">
+        <el-table-column :label="'P\n'" align="center" prop="p" width="80"/>
+        <el-table-column :label="'Justification P\n'" align="center" prop="justificationP" width="180"/>
+        <el-table-column :label="'S\n'" align="center" prop="s" width="80"/>
+        <el-table-column :label="'Justification S\n'" align="center" prop="justificationS" width="180"/>
+        <el-table-column :label="'RC\n'" align="center" prop="rc" width="80"/>
       </el-table-column>
-      <el-table-column label="Countermeasure" align="center" prop="countermeasure" width="200"/>
-      <el-table-column label="Remark" align="center" prop="remarks" width="200"/>
+      <el-table-column :label="'Countermeasure\n'" align="center" prop="countermeasure" width="200"/>
+      <el-table-column :label="'Remark\n'" align="center" prop="remarks" width="200"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180">
         <template slot-scope="scope">
           <el-button
@@ -442,3 +442,9 @@ export default {
   }
 };
 </script>
+
+<style>
+.el-table .cell {
+  white-space: pre-line;
+}
+</style>

+ 22 - 16
cpms-ui/src/views/process/csocsc/index.vue

@@ -95,28 +95,28 @@
     <el-table v-loading="loading" :data="csocscList" @selection-change="handleSelectionChange" :height="clientHeight"
               border>
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="单元" align="center" prop="unit" width="180"/>
-      <el-table-column label="阀门标签号" align="center" prop="vtNo" width="180"/>
-      <el-table-column label="PID管线号" align="center" prop="pidNo" width="180"/>
-      <el-table-column label="位置描述" align="center" prop="locationDes" width="180"/>
-      <el-table-column label="介质" align="center" prop="medium" width="180"/>
-      <el-table-column label="阀门类型" align="center" prop="valveType" width="180"/>
-      <el-table-column label="阀门尺寸" align="center" prop="valveSize" width="180"/>
-      <el-table-column label="检查项" align="center">
-        <el-table-column label="标识信息" align="center" prop="identifier" width="180"/>
-        <el-table-column label="阀位状态" align="center" prop="valvePosition" width="180"/>
-        <el-table-column label="牢固固定" align="center" prop="firmlySecured" width="180"/>
+      <el-table-column :label="'单元\nUnit'" align="center" prop="unit" width="180"/>
+      <el-table-column :label="'阀门标签号\nValveTag Number'" align="center" prop="vtNo" width="180"/>
+      <el-table-column :label="'PID管线号\nP&ID/ Pipe line'" align="center" prop="pidNo" width="180"/>
+      <el-table-column :label="'位置描述\nLocation description'" align="center" prop="locationDes" width="180"/>
+      <el-table-column :label="'介质\nMedium'" align="center" prop="medium" width="180"/>
+      <el-table-column :label="'阀门类型\nValve Type'" align="center" prop="valveType" width="180"/>
+      <el-table-column :label="'阀门尺寸\nValve size'" align="center" prop="valveSize" width="180"/>
+      <el-table-column :label="'检查项\nCheck items'" align="center">
+        <el-table-column :label="'标识信息\nIdentifier'" align="center" prop="identifier" width="180"/>
+        <el-table-column :label="'阀位状态\nValve position'" align="center" prop="valvePosition" width="180"/>
+        <el-table-column :label="'牢固固定\nFirmly secured'" align="center" prop="firmlySecured" width="180"/>
       </el-table-column>
-      <el-table-column label="负责人" align="center" prop="responsibility" width="180"/>
-      <el-table-column label="现场检查人" align="center" prop="checkedBy" width="180"/>
-      <el-table-column label="PID图纸状态" align="center" prop="pidStatus" width="180"/>
-      <el-table-column label="风险等级" align="center" prop="riskLevel" width="180"/>
+      <el-table-column :label="'负责人\nResponsibility'" align="center" prop="responsibility" width="180"/>
+      <el-table-column :label="'现场检查人\nChecked by'" align="center" prop="checkedBy" width="180"/>
+      <el-table-column :label="'PID图纸状态\nStatus on PID'" align="center" prop="pidStatus" width="180"/>
+      <el-table-column :label="'风险等级\nValve Risk level'" align="center" prop="riskLevel" width="180"/>
       <el-table-column label="检查日期" align="center" prop="checkDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.checkDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="备注" align="center" prop="remarks"  width="180"/>
+      <el-table-column :label="'备注\nRemark'" align="center" prop="remarks"  width="180"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"  width="180">
         <template slot-scope="scope">
           <el-button
@@ -506,3 +506,9 @@ export default {
   }
 };
 </script>
+
+<style>
+.el-table .cell {
+  white-space: pre-line;
+}
+</style>

+ 16 - 10
cpms-ui/src/views/process/nonc/index.vue

@@ -114,16 +114,16 @@
 
     <el-table v-loading="loading" :data="noncList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center"  fixed="left"/>
-      <el-table-column label="阀门标签号" align="center" prop="vtNo" />
-      <el-table-column label="图纸管线号" align="center" prop="pidNo" />
-      <el-table-column label="位置" align="center" prop="locationAt" />
-      <el-table-column label="介质" align="center" prop="medium" />
-      <el-table-column label="阀门类型" align="center" prop="valveType" />
-      <el-table-column label="阀门尺寸" align="center" prop="valveSize" />
-      <el-table-column label="负责人" align="center" prop="responsibility" />
-      <el-table-column label="PID图纸状态" align="center" prop="pidStatus" />
-      <el-table-column label="风险等级" align="center" prop="riskLevel" />
-      <el-table-column label="备注" align="center" prop="remarks" />
+      <el-table-column :label="'阀门标签号\nValveTag Number'" align="center" prop="vtNo" />
+      <el-table-column :label="'图纸管线号\nPipe line'" align="center" prop="pidNo" />
+      <el-table-column :label="'位置\nLocation at'" align="center" prop="locationAt" />
+      <el-table-column :label="'介质\nMeDium'" align="center" prop="medium" />
+      <el-table-column :label="'阀门类型\nValve Type'" align="center" prop="valveType" />
+      <el-table-column :label="'阀门尺寸\nValve size'" align="center" prop="valveSize" />
+      <el-table-column :label="'负责人\nResponsibility'" align="center" prop="responsibility" />
+      <el-table-column :label="'PID图纸状态\nStatus on PID'" align="center" prop="pidStatus" />
+      <el-table-column :label="'风险等级\nValve Risk level'" align="center" prop="riskLevel" />
+      <el-table-column :label="'备注\nRemark'" align="center" prop="remarks" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
         <template slot-scope="scope">
           <el-button
@@ -468,3 +468,9 @@ export default {
   }
 };
 </script>
+
+<style>
+.el-table .cell {
+  white-space: pre-line;
+}
+</style>

+ 0 - 447
cpms-ui/src/views/process/overview/index.vue

@@ -1,447 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="SIF NO." prop="sifNo">
-        <el-input
-          v-model="queryParams.sifNo"
-          placeholder="请输入SIF NO."
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </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>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['process:overview:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['process:overview:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['process:overview:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-            type="warning"
-            plain
-            icon="el-icon-upload2"
-            size="mini"
-            @click="handleImport"
-            v-hasPermi="['process:overview:add']"
-        >导入
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['process:overview:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="overviewList" @selection-change="handleSelectionChange" :height="clientHeight" border>
-      <el-table-column type="selection" width="55" align="center"  fixed="left"/>
-      <el-table-column label="SIF NO." align="center" prop="sifNo" width="180"/>
-      <el-table-column label="DEVIATION" align="center" prop="deviation" width="180"/>
-      <el-table-column label="SHE / HAZOP ENTRY" align="center" prop="sheNo" width="180"/>
-      <el-table-column label="CAUSE and CONSEQUENCE" align="center" prop="cac" width="210"/>
-      <el-table-column label="Requried SIL" align="center" prop="requriedSil" width="180"/>
-      <el-table-column label="Sensors" align="center" prop="sensors" width="180"/>
-      <el-table-column label="voting" align="center" prop="sVoting" width="180"/>
-      <el-table-column label="Final elements" align="center" prop="finalElements" width="180"/>
-      <el-table-column label="voting" align="center" prop="fVoting" width="180"/>
-      <el-table-column label="Action" align="center" prop="action" width="180"/>
-      <el-table-column label="Remark" align="center" prop="remarks" width="250"/>
-      <el-table-column label="Achieved SIL" align="center" prop="achievedSil" width="180"/>
-      <el-table-column label="PFD Calculation Required?" align="center" prop="pfdCr" width="210"/>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['process:overview:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['process:overview:remove']"
-          >删除</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-folder"
-            @click="handleDoc(scope.row)"
-          >附件
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改SIF Overview List对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
-      <el-form ref="form" :model="form" :rules="rules" label-width="210px">
-        <el-form-item label="SIF NO." prop="sifNo">
-          <el-input v-model="form.sifNo" placeholder="请输入SIF NO." />
-        </el-form-item>
-        <el-form-item label="DEVIATION" prop="deviation">
-          <el-input v-model="form.deviation" placeholder="请输入DEVIATION" />
-        </el-form-item>
-        <el-form-item label="SHE / HAZOP ENTRY" prop="sheNo">
-          <el-input v-model="form.sheNo" placeholder="请输入SHE / HAZOP ENTRY" />
-        </el-form-item>
-        <el-form-item label="CAUSE and CONSEQUENCE" prop="cac">
-          <el-input v-model="form.cac" placeholder="请输入CAUSE and CONSEQUENCE" />
-        </el-form-item>
-        <el-form-item label="Requried SIL" prop="requriedSil">
-          <el-input v-model="form.requriedSil" placeholder="请输入Requried SIL" />
-        </el-form-item>
-        <el-form-item label="Sensors" prop="sensors">
-          <el-input v-model="form.sensors" placeholder="请输入Sensors" />
-        </el-form-item>
-        <el-form-item label="voting" prop="sVoting">
-          <el-input v-model="form.sVoting" placeholder="请输入voting" />
-        </el-form-item>
-        <el-form-item label="Final elements" prop="finalElements">
-          <el-input v-model="form.finalElements" placeholder="请输入Final elements" />
-        </el-form-item>
-        <el-form-item label="voting" prop="fVoting">
-          <el-input v-model="form.fVoting" placeholder="请输入voting" />
-        </el-form-item>
-        <el-form-item label="Action" prop="action">
-          <el-input v-model="form.action" placeholder="请输入Action" />
-        </el-form-item>
-        <el-form-item label="Remark" prop="remarks">
-          <el-input v-model="form.remarks" placeholder="请输入Remark" />
-        </el-form-item>
-        <el-form-item label="Achieved SIL" prop="achievedSil">
-          <el-input v-model="form.achievedSil" placeholder="请输入Achieved SIL" />
-        </el-form-item>
-        <el-form-item label="PFD Calculation Required?" prop="pfdCr">
-          <el-input v-model="form.pfdCr" placeholder="请输入PFD Calculation Required?" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-
-
-
-    <!-- 用户导入对话框 -->
-    <el-dialog :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 { listOverview, getOverview, delOverview, addOverview, updateOverview } from "@/api/process/overview";
-import {getToken} from "@/utils/auth";
-
-export default {
-  name: "Overview",
-  data() {
-    return {
-      // 批量导入全屏遮罩
-      fullscreenLoading: false,
-      // 用户导入参数
-      upload: {
-        downloadAction: process.env.VUE_APP_BASE_API + '/common/template',
-        type: "processoverview",
-        // 是否显示弹出层(用户导入)
-        open: false,
-        // 弹出层标题(用户导入)
-        title: "",
-        // 是否禁用上传
-        isUploading: false,
-        // 是否更新已经存在的用户数据
-        updateSupport: 0,
-        // 设置上传的请求头部
-        headers: {Authorization: "Bearer " + getToken()},
-        // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/process/overview/importData"
-      },
-      // 页面高度
-      clientHeight: 300,
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: false,
-      // 总条数
-      total: 0,
-      // SIF Overview List表格数据
-      overviewList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 20,
-        sifNo: null,
-        deviation: null,
-        sheNo: null,
-        cac: null,
-        requriedSil: null,
-        sensors: null,
-        sVoting: null,
-        finalElements: null,
-        fVoting: null,
-        action: null,
-        achievedSil: null,
-        pfdCr: 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: {
-    /** 查询SIF Overview List列表 */
-    getList() {
-      this.loading = true;
-      listOverview(this.queryParams).then(response => {
-        this.overviewList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        sifNo: null,
-        deviation: null,
-        sheNo: null,
-        cac: null,
-        requriedSil: null,
-        sensors: null,
-        sVoting: null,
-        finalElements: null,
-        fVoting: null,
-        action: null,
-        achievedSil: null,
-        pfdCr: 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 = "添加SIF Overview List";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getOverview(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改SIF Overview List";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateOverview(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addOverview(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    }, handleDoc(row) {
-      this.$router.push({path: '/system/file', query: {linkId: row.id, linkName: 'sisoverview'}})
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除SIF Overview List编号为"' + ids + '"的数据项?').then(function() {
-        return delOverview(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('process/overview/export', {
-        ...this.queryParams
-      }, `overview_${new Date().getTime()}.xlsx`)
-    },
-    /** 导入按钮操作 */
-    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});
-      }
-      this.getList();
-    },
-    /** 下载模板操作 */
-    importTemplate() {
-      this.$refs['downloadFileForm'].submit()
-    }
-  }
-};
-</script>

+ 704 - 0
cpms-ui/src/views/process/sifList/index.vue

@@ -0,0 +1,704 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="SN" prop="sifNo">
+        <el-input
+          v-model="queryParams.sifNo"
+          placeholder="请输入SN"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="装置/单元" prop="plant">
+        <el-input
+          v-model="queryParams.plant"
+          placeholder="请输入装置/单元"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="SIF位号" prop="sifTag">
+        <el-input
+          v-model="queryParams.sifTag"
+          placeholder="请输入SIF位号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="版本" prop="ver">
+        <el-input
+          v-model="queryParams.ver"
+          placeholder="请输入版本"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </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>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['process:sifList:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['process:sifList:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['process:sifList:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+          v-hasPermi="['process:sifList:add']"
+        >导入
+        </el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['process:sifList:export']"-->
+<!--        >导出-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="sifListList" :span-method="mergeMethod"
+              @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" fixed="left"/>
+      <el-table-column label="SN" align="center" prop="sifNo" width="180"/>
+      <el-table-column :label="'装置/单元\nPlant/Unit'" align="center" prop="plant" width="180"/>
+      <el-table-column :label="'SIF位号\nSIF Tag'" align="center" prop="sifTag" width="180"/>
+      <el-table-column :label="'Deviation'" align="center" prop="deviation" width="180"/>
+      <el-table-column :label="'工艺风险分析文件\nRisk Analysis (PHA) Documentation'" align="center" prop="riskAnalysis" width="180"/>
+      <el-table-column :label="'CAUSE and CONSEQUENCE\n'" align="center" prop="causeConsequence" width="230"/>
+      <el-table-column :label="'要求的SIL\nRequired SIL'" align="center" prop="requiredSil" width="180"/>
+      <el-table-column :label="'实现的SIL\nAchieved SIL'" align="center" prop="acheievedSil" width="180"/>
+      <el-table-column :label="'要求时的平均失效概率\nPFDavg'" align="center" prop="pfdavg" width="180"/>
+      <el-table-column :label="'传感器位号\nSensor(s) Tag'" align="center" prop="sensorTag" width="180"/>
+      <el-table-column :label="'类型\nType'" align="center" prop="type" width="180"/>
+      <el-table-column :label="'用途\nService'" align="center" prop="service" width="180"/>
+      <el-table-column :label="'表决\nVoting'" align="center" prop="votingQ" width="180"/>
+      <el-table-column :label="'联锁条件\nCondition'" align="center" prop="condition" width="180"/>
+      <el-table-column :label="'测试周期\nMain PTI'" align="center" prop="mainPti" width="180"/>
+      <el-table-column :label="'最终元件位号\nFinal Element(s) Tag'" align="center" prop="finalElementTag" width="180"/>
+      <el-table-column :label="'表决\nVoting'" align="center" prop="votingH" width="180"/>
+      <el-table-column :label="'联锁动作\nAction'" align="center" prop="aciton" width="180"/>
+      <el-table-column :label="'备注\nRemarks'" align="center" prop="remarks" width="180"/>
+      <el-table-column :label="'版本\nVer.'" align="center" prop="ver" width="180"/>
+      <el-table-column :label="'Filter'" align="center" prop="filter" width="180"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['process:sifList:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['process:sifList:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改SIF Overview List对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body :close-on-click-modal="false">
+      <el-form ref="form" :model="form" :rules="rules" label-width="170px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="SN" prop="sifNo">
+              <el-input v-model="form.sifNo" placeholder="请输入SN"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="装置/单元" prop="plant">
+              <el-input v-model="form.plant" placeholder="请输入装置/单元"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="SIF位号" prop="sifTag">
+              <el-input v-model="form.sifTag" placeholder="请输入SIF位号"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="Deviation" prop="deviation">
+              <el-input v-model="form.deviation" placeholder="请输入Deviation"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="工艺风险分析文件" prop="riskAnalysis">
+              <el-input v-model="form.riskAnalysis" placeholder="请输入工艺风险分析文件"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="'CAUSE and\n CONSEQUENCE'" prop="causeConsequence" style="white-space: pre-line">
+              <el-input v-model="form.causeConsequence" placeholder="请输入CAUSE and CONSEQUENCE"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="要求的SIL" prop="requiredSil">
+              <el-input v-model="form.requiredSil" placeholder="请输入要求的SIL"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="实现的SIL" prop="acheievedSil">
+              <el-input v-model="form.acheievedSil" placeholder="请输入实现的SIL"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="版本" prop="ver">
+              <el-input v-model="form.ver" placeholder="请输入版本"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="要求时的平均失效概率" prop="pfdavg">
+              <el-input v-model="form.pfdavg" placeholder="请输入要求时的平均失效概率"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remarks">
+              <el-input v-model="form.remarks" placeholder="请输入备注"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-card v-for="(recordForm, index) in recordForm" :key="index" shadow="always" class="mb8 mt8">
+        <el-form ref="recordForm" :model="recordForm" :rules="rules" label-width="100px">
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="传感器位号" prop="sensorTag">
+                <el-input v-model="recordForm.sensorTag" placeholder="请输入传感器位号"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="类型" prop="type">
+                <el-input v-model="recordForm.type" placeholder="请输入类型"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="用途" prop="service">
+                <el-input v-model="recordForm.service" placeholder="请输入用途"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="表决" prop="votingQ">
+                <el-input v-model="recordForm.votingQ" placeholder="请输入表决"/>
+              </el-form-item>
+            </el-col>
+            <!--            <el-col :span="3">
+                          <el-button
+                          type="success"
+                          plain
+                          @click.prevent="copyDomain(recordForm)"
+                          style="float: right;">➕
+                          </el-button>
+                        </el-col>-->
+            <el-col :span="1">
+              <el-tooltip class="item" effect="dark" content="移除本行" placement="top">
+                <el-button
+                  type="text"
+                  @click.prevent="removeDomain(recordForm)"
+                  style="float: right;"
+                >❌
+                </el-button>
+              </el-tooltip>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="联锁条件" prop="condition">
+                <el-input v-model="recordForm.condition" placeholder="请输入联锁条件"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="测试周期" prop="mainPti">
+                <el-input v-model="recordForm.mainPti" placeholder="请输入测试周期"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最终元件位号" prop="finalElementTag">
+                <el-input v-model="recordForm.finalElementTag" placeholder="请输入最终元件位号"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="表决" prop="votingH">
+                <el-input v-model="recordForm.votingH" placeholder="请输入表决"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="联锁动作" prop="aciton">
+                <el-input v-model="recordForm.aciton" placeholder="请输入联锁动作"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="Filter" prop="filter">
+                <el-input v-model="recordForm.filter" placeholder="请输入Filter"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-card>
+      <div class="mb8 mt8">
+        <el-tooltip class="item" effect="dark" content="该按钮会删除所有卡片内容!请谨慎操作!" placement="top">
+          <el-button type="danger" plain @click="resetForm1()" :disabled="finalFlag"><i
+            class="el-icon-refresh-left"></i></el-button>
+        </el-tooltip>
+        <el-button type="success" plain @click="add"><i class="el-icon-plus"></i></el-button>
+        <el-button type="warning" plain @click="reduce" :disabled="flag||finalFlag"><i class="el-icon-minus"></i>
+        </el-button>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+
+    <!-- 用户导入对话框 -->
+    <el-dialog :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 {addSifList, delSifList, getSifList, listSifList, updateSifList} from "@/api/process/sifList";
+import {getToken} from "@/utils/auth";
+import {delSisRecord} from "@/api/process/sisRecord";
+
+export default {
+  name: "SifList",
+  data() {
+    return {
+      // 批量导入全屏遮罩
+      fullscreenLoading: false,
+      // 用户导入参数
+      upload: {
+        downloadAction: process.env.VUE_APP_BASE_API + '/common/template',
+        type: "processSifList",
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/process/sifList/importData"
+      },
+      // 页面高度
+      clientHeight: 300,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // SIF Overview List表格数据
+      sifListList: [],
+      recordForm: [{}],
+      flag: true,
+      finalFlag: false,
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        sifNo: null,
+        plant: null,
+        sifTag: null,
+        deviation: null,
+        riskAnalysis: null,
+        causeConsequence: null,
+        requiredSil: null,
+        acheievedSil: null,
+        ver: null,
+        pfdavg: 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: {
+    resetForm1() {
+      this.recordForm = [{}]
+      this.flags();
+    },
+    // 表单添加一行
+    add() {
+      let arr = {};
+      this.recordForm.push(arr)
+      this.flags();
+    },
+    // 表单减少一行
+    reduce() {
+      this.recordForm.length = this.recordForm.length - 1
+      this.flags()
+    },
+    //拷贝
+    copyDomain(domain) {
+      let arr = {}
+      arr.workType = domain.workType;
+      arr.workDescription = domain.workDescription;
+      arr.riskLevel = domain.riskLevel;
+      arr.workPeopleNumber = domain.workPeopleNumber;
+      arr.estimateWorktime = domain.estimateWorktime;
+      this.recordForm.push(
+        arr
+      );
+      this.flags()
+    },
+    //删除自身
+    removeDomain(item) {
+      if (!item.id) {
+        //如果子类大于1  可点击删除按钮
+        if (this.recordForm.length > 1) {
+          var index = this.recordForm.indexOf(item)
+          if (index !== -1) {
+            this.recordForm.splice(index, 1)
+          }
+        }
+        this.flags()
+      } else {
+        var index = this.recordForm.indexOf(item)
+        this.$modal.confirm('是否确认删除该行?').then(function () {
+          return delSisRecord(item.id);
+        }).then(() => {
+          this.$modal.msgSuccess("删除成功");
+          this.recordForm.splice(index, 1)
+        }).catch(() => {
+        });
+        this.flags()
+      }
+    },
+    // 判断数组长度
+    flags() {
+      //如果小于1则自动添加一行
+      if (this.recordForm.length < 2) {
+        this.flag = true
+      } else if (this.recordForm.length < 1) {
+        this.recordForm.push({});
+      } else {
+        //先赋值为true再赋为false, 不然会没反应
+        this.flag = true
+        this.flag = false
+      }
+    },
+    /** 查询SIF Overview List列表 */
+    getList() {
+      this.loading = true;
+      listSifList(this.queryParams).then(response => {
+        this.sifListList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        sifNo: null,
+        plant: null,
+        sifTag: null,
+        deviation: null,
+        riskAnalysis: null,
+        causeConsequence: null,
+        requiredSil: null,
+        acheievedSil: null,
+        ver: null,
+        pfdavg: null,
+        remarks: null,
+        delFlag: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null
+      };
+      this.resetForm("form");
+      this.recordForm = [{}]
+    },
+    /** 搜索按钮操作 */
+    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 = "添加SIF Overview List";
+      this.finalFlag = false;
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSifList(id).then(response => {
+        this.form = response.data;
+        this.recordForm = response.data.recordList;
+        this.open = true;
+        this.title = "修改SIF Overview List";
+        this.finalFlag = true;
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.recordList = this.recordForm;
+          if (this.form.id != null) {
+            updateSifList(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSifList(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除SIF Overview List编号为"' + ids + '"的数据项?').then(function () {
+        return delSifList(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('process/sifList/export', {
+        ...this.queryParams
+      }, `sifList_${new Date().getTime()}.xlsx`)
+    },
+    /** 导入按钮操作 */
+    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});
+      }
+      this.getList();
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      this.$refs['downloadFileForm'].submit()
+    },
+
+    //合并单元格
+    mergeMethod({row, column, rowIndex, columnIndex}) {
+      if (columnIndex === 1 || columnIndex === 2 || columnIndex === 3 || columnIndex === 4
+        || columnIndex === 5 || columnIndex === 6 || columnIndex === 7 || columnIndex === 8
+        || columnIndex === 9 || columnIndex === 0 || columnIndex === 19 || columnIndex === 20
+        || columnIndex === 22) {
+        const _row = this.setTable(this.sifListList).merge[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
+    },
+    //单元格整理
+    setTable(tableData) {
+      let spanArr = [],
+        concat = 0;
+      tableData.forEach((item, index) => {
+        if (index === 0) {
+          spanArr.push(1);
+        } else {
+          if (item.id === tableData[index - 1].id) {
+            //第一列需合并相同内容的判断条件
+            spanArr[concat] += 1;
+            spanArr.push(0);
+          } else {
+            spanArr.push(1);
+            concat = index;
+          }
+        }
+      });
+      return {
+        merge: spanArr
+      };
+    }
+  }
+};
+</script>
+
+<style>
+.el-table .cell {
+  white-space: pre-line;
+}
+</style>

+ 580 - 0
cpms-ui/src/views/process/sisRecord/index.vue

@@ -0,0 +1,580 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="sis关联Id" prop="sisId">
+        <el-input
+          v-model="queryParams.sisId"
+          placeholder="请输入sis关联Id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="传感器位号" prop="sensorTag">
+        <el-input
+          v-model="queryParams.sensorTag"
+          placeholder="请输入传感器位号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="用途" prop="service">
+        <el-input
+          v-model="queryParams.service"
+          placeholder="请输入用途"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="表决" prop="votingQ">
+        <el-input
+          v-model="queryParams.votingQ"
+          placeholder="请输入表决"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联锁条件" prop="condition">
+        <el-input
+          v-model="queryParams.condition"
+          placeholder="请输入联锁条件"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="测试周期" prop="mainPti">
+        <el-input
+          v-model="queryParams.mainPti"
+          placeholder="请输入测试周期"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="最终元件位号" prop="finalElementTag">
+        <el-input
+          v-model="queryParams.finalElementTag"
+          placeholder="请输入最终元件位号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="表决" prop="votingH">
+        <el-input
+          v-model="queryParams.votingH"
+          placeholder="请输入表决"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联锁动作" prop="aciton">
+        <el-input
+          v-model="queryParams.aciton"
+          placeholder="请输入联锁动作"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="Filter" prop="filter">
+        <el-input
+          v-model="queryParams.filter"
+          placeholder="请输入Filter"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建人" prop="createrCode">
+        <el-input
+          v-model="queryParams.createrCode"
+          placeholder="请输入创建人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建日期" prop="createdate">
+        <el-date-picker clearable
+          v-model="queryParams.createdate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新人" prop="updaterCode">
+        <el-input
+          v-model="queryParams.updaterCode"
+          placeholder="请输入更新人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="更新日期" prop="updatedate">
+        <el-date-picker clearable
+          v-model="queryParams.updatedate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择更新日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="部门编号" prop="deptId">
+        <el-input
+          v-model="queryParams.deptId"
+          placeholder="请输入部门编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </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>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['process:sisRecord:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['process:sisRecord:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['process:sisRecord:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+            type="warning"
+            plain
+            icon="el-icon-upload2"
+            size="mini"
+            @click="handleImport"
+            v-hasPermi="['process:sisRecord:add']"
+        >导入
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['process:sisRecord:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="sisRecordList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center"  fixed="left"/>
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="sis关联Id" align="center" prop="sisId" />
+      <el-table-column label="传感器位号" align="center" prop="sensorTag" />
+      <el-table-column label="类型" align="center" prop="type" />
+      <el-table-column label="用途" align="center" prop="service" />
+      <el-table-column label="表决" align="center" prop="votingQ" />
+      <el-table-column label="联锁条件" align="center" prop="condition" />
+      <el-table-column label="测试周期" align="center" prop="mainPti" />
+      <el-table-column label="最终元件位号" align="center" prop="finalElementTag" />
+      <el-table-column label="表决" align="center" prop="votingH" />
+      <el-table-column label="联锁动作" align="center" prop="aciton" />
+      <el-table-column label="Filter" align="center" prop="filter" />
+      <el-table-column label="创建人" align="center" prop="createrCode" />
+      <el-table-column label="创建日期" align="center" prop="createdate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updaterCode" />
+      <el-table-column label="更新日期" align="center" prop="updatedate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="部门编号" align="center" prop="deptId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['process:sisRecord:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['process:sisRecord:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改sis Record对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body :close-on-click-modal="false">
+      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+        <el-form-item label="sis关联Id" prop="sisId">
+          <el-input v-model="form.sisId" placeholder="请输入sis关联Id" />
+        </el-form-item>
+        <el-form-item label="传感器位号" prop="sensorTag">
+          <el-input v-model="form.sensorTag" placeholder="请输入传感器位号" />
+        </el-form-item>
+        <el-form-item label="用途" prop="service">
+          <el-input v-model="form.service" placeholder="请输入用途" />
+        </el-form-item>
+        <el-form-item label="表决" prop="votingQ">
+          <el-input v-model="form.votingQ" placeholder="请输入表决" />
+        </el-form-item>
+        <el-form-item label="联锁条件" prop="condition">
+          <el-input v-model="form.condition" placeholder="请输入联锁条件" />
+        </el-form-item>
+        <el-form-item label="测试周期" prop="mainPti">
+          <el-input v-model="form.mainPti" placeholder="请输入测试周期" />
+        </el-form-item>
+        <el-form-item label="最终元件位号" prop="finalElementTag">
+          <el-input v-model="form.finalElementTag" placeholder="请输入最终元件位号" />
+        </el-form-item>
+        <el-form-item label="表决" prop="votingH">
+          <el-input v-model="form.votingH" placeholder="请输入表决" />
+        </el-form-item>
+        <el-form-item label="联锁动作" prop="aciton">
+          <el-input v-model="form.aciton" placeholder="请输入联锁动作" />
+        </el-form-item>
+        <el-form-item label="Filter" prop="filter">
+          <el-input v-model="form.filter" placeholder="请输入Filter" />
+        </el-form-item>
+        <el-form-item label="删除标识" prop="delFlag">
+          <el-input v-model="form.delFlag" placeholder="请输入删除标识" />
+        </el-form-item>
+        <el-form-item label="创建人" prop="createrCode">
+          <el-input v-model="form.createrCode" placeholder="请输入创建人" />
+        </el-form-item>
+        <el-form-item label="创建日期" prop="createdate">
+          <el-date-picker clearable
+            v-model="form.createdate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="更新人" prop="updaterCode">
+          <el-input v-model="form.updaterCode" placeholder="请输入更新人" />
+        </el-form-item>
+        <el-form-item label="更新日期" prop="updatedate">
+          <el-date-picker clearable
+            v-model="form.updatedate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择更新日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="部门编号" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+
+
+    <!-- 用户导入对话框 -->
+    <el-dialog :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 { listSisRecord, getSisRecord, delSisRecord, addSisRecord, updateSisRecord } from "@/api/process/sisRecord";
+import {getToken} from "@/utils/auth";
+
+export default {
+  name: "SisRecord",
+  data() {
+    return {
+      // 批量导入全屏遮罩
+      fullscreenLoading: false,
+      // 用户导入参数
+      upload: {
+        downloadAction: process.env.VUE_APP_BASE_API + '/common/template',
+        type: "processsisRecord",
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/process/sisRecord/importData"
+      },
+      // 页面高度
+      clientHeight: 300,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: false,
+      // 总条数
+      total: 0,
+      // sis Record表格数据
+      sisRecordList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 20,
+        sisId: null,
+        sensorTag: null,
+        type: null,
+        service: null,
+        votingQ: null,
+        condition: null,
+        mainPti: null,
+        finalElementTag: null,
+        votingH: null,
+        aciton: null,
+        filter: null,
+        createrCode: null,
+        createdate: null,
+        updaterCode: null,
+        updatedate: null,
+        deptId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        sisId: [
+          { required: true, message: "sis关联Id不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    //设置表格高度对应屏幕高度
+    this.$nextTick(() => {
+      this.clientHeight = (document.body.clientHeight - 80) * 0.8
+    });
+  },
+  methods: {
+    /** 查询sis Record列表 */
+    getList() {
+      this.loading = true;
+      listSisRecord(this.queryParams).then(response => {
+        this.sisRecordList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        sisId: null,
+        sensorTag: null,
+        type: null,
+        service: null,
+        votingQ: null,
+        condition: null,
+        mainPti: null,
+        finalElementTag: null,
+        votingH: null,
+        aciton: null,
+        filter: 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 = "添加sis Record";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSisRecord(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改sis Record";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSisRecord(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSisRecord(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除sis Record编号为"' + ids + '"的数据项?').then(function() {
+        return delSisRecord(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('process/sisRecord/export', {
+        ...this.queryParams
+      }, `sisRecord_${new Date().getTime()}.xlsx`)
+    },
+    /** 导入按钮操作 */
+    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});
+      }
+      this.getList();
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      this.$refs['downloadFileForm'].submit()
+    }
+  }
+};
+</script>

+ 22 - 17
cpms-ui/src/views/process/valve/index.vue

@@ -103,30 +103,30 @@
     <el-table v-loading="loading" :data="valveList" @selection-change="handleSelectionChange" :height="clientHeight"
               border>
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="单元" align="center" prop="unit" width="180"/>
-      <el-table-column label="阀门标签号" align="center" prop="vtNo" width="180"/>
-      <el-table-column label="PID管线号" align="center" prop="pidNo" width="180"/>
-      <el-table-column label="位置描述" align="center" prop="locationDes" width="180"/>
-      <el-table-column label="介质" align="center" prop="medium" width="180"/>
-      <el-table-column label="阀门类型" align="center" prop="valveType" width="180"/>
-      <el-table-column label="阀门尺寸" align="center" prop="valveSize" width="180"/>
-      <el-table-column label="检查项" align="center">
-        <el-table-column label="标识信息" align="center" prop="identifier" width="180"/>
-        <el-table-column label="阀位状态" align="center" prop="valvePosition" width="180"/>
-        <el-table-column label="牢固固定" align="center" prop="firmlySecured" width="180"/>
+      <el-table-column :label="'单元\nunit'" align="center" prop="unit" width="180"/>
+      <el-table-column :label="'阀门标签号\nValveTag Numbe'" align="center" prop="vtNo" width="180"/>
+      <el-table-column :label="'PID管线号\nP&ID/Pipe line'" align="center" prop="pidNo" width="180"/>
+      <el-table-column :label="'位置描述\nLocation description'" align="center" prop="locationDes" width="180"/>
+      <el-table-column :label="'介质\nMedium'" align="center" prop="medium" width="180"/>
+      <el-table-column :label="'阀门类型\nValve Type'" align="center" prop="valveType" width="180"/>
+      <el-table-column :label="'阀门尺寸\nValve size'" align="center" prop="valveSize" width="180"/>
+      <el-table-column :label="'检查项\nCheck items'" align="center">
+        <el-table-column :label="'标识信息\nIdentifier'" align="center" prop="identifier" width="180"/>
+        <el-table-column :label="'阀位状态\nValve position'" align="center" prop="valvePosition" width="180"/>
+        <el-table-column :label="'牢固固定\nFirmly secured'" align="center" prop="firmlySecured" width="180"/>
       </el-table-column>
-      <el-table-column label="负责人" align="center" prop="responsibility" width="180"/>
-      <el-table-column label="现场检查人" align="center" prop="checkedBy" width="180"/>
-      <el-table-column label="开车前检查" align="center" prop="checkBeforeSu" width="180"/>
-      <el-table-column label="PID图纸状态" align="center" prop="pidStatus" width="180"/>
-      <el-table-column label="风险等级" align="center" prop="riskLevel" width="180"/>
+      <el-table-column :label="'负责人\nResponsibility'" align="center" prop="responsibility" width="180"/>
+      <el-table-column :label="'现场检查人\nChecked by'" align="center" prop="checkedBy" width="180"/>
+      <el-table-column :label="'开车前检查\ncheck before SU'" align="center" prop="checkBeforeSu" width="180"/>
+      <el-table-column :label="'PID图纸状态\nStatus on PID'" align="center" prop="pidStatus" width="180"/>
+      <el-table-column :label="'风险等级\nRisk level'" align="center" prop="riskLevel" width="180"/>
       <el-table-column label="SHE Review" align="center" prop="sheReview" width="180"/>
       <el-table-column label="检查日期" align="center" prop="checkDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.checkDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="备注" align="center" prop="remarks" width="180"/>
+      <el-table-column :label="'备注\nRemark'" align="center" prop="remarks" width="180"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180">
         <template slot-scope="scope">
           <el-button
@@ -523,3 +523,8 @@ export default {
   }
 };
 </script>
+<style>
+.el-table .cell {
+  white-space: pre-line;
+}
+</style>

+ 1 - 1
cpms-ui/src/views/sems/specAqf/bf.vue

@@ -535,7 +535,7 @@ export default {
     })
     this.getList();
     this.getTreeselect();
-    this.getDicts("YES_NO").then(response => {
+    this.getDicts("yes_no").then(response => {
       this.yesOrNoOptions = response.data;
     });
     this.getDicts("spec_dev_status").then(response => {

+ 1 - 1
cpms-ui/src/views/sems/specAqf/fc.vue

@@ -543,7 +543,7 @@ export default {
     })
     this.getList();
     this.getTreeselect();
-    this.getDicts("YES_NO").then(response => {
+    this.getDicts("yes_no").then(response => {
       this.yesOrNoOptions = response.data;
     });
     this.getDicts("spec_dev_status").then(response => {

+ 1 - 1
cpms-ui/src/views/sems/specAqf/index.vue

@@ -511,7 +511,7 @@ export default {
     })
     this.getList();
     this.getTreeselect();
-    this.getDicts("YES_NO").then(response => {
+    this.getDicts("yes_no").then(response => {
       this.yesOrNoOptions = response.data;
     });
     this.getDicts("spec_dev_status").then(response => {

+ 1 - 1
cpms-ui/src/views/sems/specAqf/ty.vue

@@ -535,7 +535,7 @@ export default {
     })
     this.getList();
     this.getTreeselect();
-    this.getDicts("YES_NO").then(response => {
+    this.getDicts("yes_no").then(response => {
       this.yesOrNoOptions = response.data;
     });
     this.getDicts("spec_dev_status").then(response => {

+ 1 - 0
cpms-ui/vue.config.js

@@ -35,6 +35,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
+        // target: `http://10.136.112.11:8080`,
         target: `http://localhost:8080`,
         changeOrigin: true,
         pathRewrite: {