Ver código fonte

Merge branch 'master' of E:\newcpms with conflicts.

wangggziwen 7 meses atrás
pai
commit
a9c2c3f9bd

+ 158 - 1
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrAnalyzerController.java

@@ -1,6 +1,16 @@
 package com.ruoyi.project.pssr.controller;
 
-import java.util.List;
+import java.util.*;
+
+import com.ruoyi.project.pssr.domain.TPssrApprove;
+import com.ruoyi.project.pssr.domain.TPssrAnalyzer;
+import com.ruoyi.project.pssr.domain.TPssrSubcontent;
+import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
+import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.ProcessEngines;
+import org.activiti.engine.TaskService;
+import org.activiti.engine.task.Task;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +43,12 @@ public class TPssrAnalyzerController extends BaseController
     @Autowired
     private ITPssrAnalyzerService tPssrAnalyzerService;
 
+    @Autowired
+    private ITPssrApproveService tPssrApproveService;
+
+    @Autowired
+    private ITPssrSubcontentService tPssrSubcontentService;
+
     /**
      * 查询在线分析仪列表
      */
@@ -76,6 +92,7 @@ public class TPssrAnalyzerController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TPssrAnalyzer tPssrAnalyzer)
     {
+        tPssrAnalyzer.setApproveStatus(0L);
         return toAjax(tPssrAnalyzerService.insertTPssrAnalyzer(tPssrAnalyzer));
     }
 
@@ -100,4 +117,144 @@ public class TPssrAnalyzerController extends BaseController
     {
         return toAjax(tPssrAnalyzerService.deleteTPssrAnalyzerByIds(ids));
     }
+
+
+    /**
+     * 确认在线分析仪
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:analyzer:edit')")
+    @Log(title = "在线分析仪", businessType = BusinessType.UPDATE)
+    @PutMapping("/confirmAnalyzer")
+    public AjaxResult Analyzer(@RequestBody TPssrAnalyzer tPssrAnalyzer) {
+        long queryStatus = 0;
+        long approveStatus = 0;
+        Date date = null;
+        if (tPssrAnalyzer.getTaskType() == 4) {
+            //拆锁确认
+            queryStatus = 1;
+            approveStatus = 3;
+            date = new Date();
+        } else if (tPssrAnalyzer.getTaskType() == 5) {
+            //上锁确认
+            queryStatus = 3;
+            approveStatus = 2;
+            date = new Date();
+        }
+        // 修改状态
+        if (tPssrAnalyzer.getIds() != null && tPssrAnalyzer.getIds().length > 0) {
+            for (Long id : tPssrAnalyzer.getIds()) {
+                TPssrAnalyzer item = tPssrAnalyzerService.selectTPssrAnalyzerById(id);
+                item.setApproveStatus(approveStatus);
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                tPssrAnalyzerService.updateTPssrAnalyzer(item);
+            }
+        } else {
+            TPssrAnalyzer lock = new TPssrAnalyzer();
+            lock.setSubId(tPssrAnalyzer.getSubId());
+            lock.setApproveStatus(queryStatus);
+            for (TPssrAnalyzer item : tPssrAnalyzerService.selectTPssrAnalyzerList(lock)) {
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                item.setApproveStatus(approveStatus);
+                tPssrAnalyzerService.updateTPssrAnalyzer(item);
+            }
+        }
+        //查询当前待审批的确认人
+        TPssrAnalyzer entity = new TPssrAnalyzer();
+        entity.setSubId(tPssrAnalyzer.getSubId());
+        entity.setApproveStatus(queryStatus);
+        for (TPssrAnalyzer item : tPssrAnalyzerService.selectTPssrAnalyzerList(entity)) {
+            if (tPssrAnalyzer.getTaskType() == 4) {
+                if (item.getConfirm1().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            } else if (tPssrAnalyzer.getTaskType() == 5) {
+                if (item.getConfirm2().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            }
+        }
+
+        //无待审批任务结束当前用户流程
+        TPssrApprove approve = new TPssrApprove();
+        approve.setSubId(tPssrAnalyzer.getSubId());
+        // 因为流程关系所以approve一定会有且只有一条数据
+        TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveList(approve).get(0);
+        TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());
+        return AjaxResult.success();
+
+    }
+
+    /**
+     * 驳回在线分析仪
+     */
+    @PutMapping("/turnDownAnalyzer")
+    public AjaxResult turnDownAnalyzer(@RequestBody TPssrAnalyzer tPssrAnalyzer) {
+        if (tPssrAnalyzer.getIds() != null) {
+            String userId = getUserId().toString();
+            // 修改已选择数据的状态
+            for (Long id : tPssrAnalyzer.getIds()) {
+                TPssrAnalyzer blind = new TPssrAnalyzer();
+                blind.setId(id);
+                blind.setApproveStatus(1L);
+                blind.setUpdatedate(new Date());
+                blind.setUpdaterCode(getUserId().toString());
+                tPssrAnalyzerService.updateTPssrAnalyzer(blind);
+            }
+            // 查询当前流程
+            TPssrApprove approve = tPssrApproveService.selectTPssrApproveBySubId(tPssrAnalyzer.getSubId());
+
+            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+            TaskService taskService = processEngine.getTaskService();
+            Task task = processEngine.getTaskService()//获取任务service
+                    .createTaskQuery()//创建查询对象
+                    .taskAssignee(userId)
+                    .processInstanceId(approve.getProcessId()).singleResult();
+            String taskId = task.getId();
+
+            // 驳回 查询所有待审批的人员
+            TPssrAnalyzer blind = new TPssrAnalyzer();
+            blind.setSubId(tPssrAnalyzer.getSubId());
+            blind.setApproveStatus(1L);
+            Set<String> installer = new HashSet<>();
+            Set<String> remover = new HashSet<>();
+            for (TPssrAnalyzer item : tPssrAnalyzerService.selectTPssrAnalyzerList(blind)) {
+
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm2());
+            }
+
+
+            //处理流程节点
+            Map<String, Object> param = new HashMap<>();
+            param.put("condition", 1);
+            param.put("confirmUsers1", new ArrayList<>(installer));
+            param.put("confirmUsers2", new ArrayList<>(remover));
+            //认领任务
+            processEngine.getTaskService().claim(taskId, userId);
+            taskService.addComment(taskId, approve.getProcessId(), "驳回至拆除;" + tPssrAnalyzer.getRemarks());
+            taskService.complete(taskId, param);
+
+            // 修改审批表和sub表
+            approve.setApproveStatus(1L);
+            approve.setUpdatedate(new Date());
+            approve.setUpdaterCode(getUserId().toString());
+            tPssrApproveService.updateTPssrApprove(approve);
+
+            TPssrSubcontent subcontent = new TPssrSubcontent();
+            subcontent.setId(approve.getSubId());
+            subcontent.setApproveStatus(1L);
+            subcontent.setUpdatedate(new Date());
+            subcontent.setUpdaterCode(getUserId().toString());
+            tPssrSubcontentService.updateTPssrSubcontent(subcontent);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
 }

+ 184 - 1
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrApproveController.java

@@ -136,6 +136,15 @@ public class TPssrApproveController extends BaseController {
     @Autowired
     private ITPssrNitrogenService tPssrNitrogenService;
 
+    @Autowired
+    private ITPssrFranklinismService tPssrFranklinismService;
+
+    @Autowired
+    private ITPssrGasdetectorService tPssrGasdetectorService;
+
+    @Autowired
+    private ITPssrAnalyzerService tPssrAnalyzerService;
+
     /**
      * 查询pssr审批管理列表
      */
@@ -282,10 +291,13 @@ public class TPssrApproveController extends BaseController {
             case "zmdbr"://照明、电伴热
                 break;
             case "jdjdkj"://静电接地、跨接
+                doJdjdkjApprove(tPssrSubcontent);
                 break;
             case "qtjcy"://气体检测仪
+                doQtjcyApprove(tPssrSubcontent);
                 break;
             case "zxfxy"://在线分析仪
+                doZxfxyApprove(tPssrSubcontent);
                 break;
             default:
                 return AjaxResult.error("申请发起失败!");
@@ -541,7 +553,7 @@ public class TPssrApproveController extends BaseController {
             pssr2confirm(approve, new ArrayList<>(confirm1), new ArrayList<>(confirm2), sub.getConfirm());
         }
     }
-    
+
     // 检修项目审批流程发起申请
     public void doJxxmApprove(TPssrSubcontent sub) {
         String userId = getUserId().toString();
@@ -1474,6 +1486,177 @@ public class TPssrApproveController extends BaseController {
         }
     }
 
+    //静电接地、跨接流程发起申请
+    public void doJdjdkjApprove(TPssrSubcontent sub) {
+        String userId = getUserId().toString();
+        //修改状态
+        TPssrFranklinism tPssrFranklinism = new TPssrFranklinism();
+        tPssrFranklinism.setApproveStatus(0L);
+        tPssrFranklinism.setSubId(sub.getId());
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrFranklinism item : tPssrFranklinismService.selectTPssrFranklinismList(tPssrFranklinism)) {
+            item.setApproveStatus(1L);
+            item.setUpdatedate(new Date());
+            item.setUpdaterCode(userId);
+            tPssrFranklinismService.updateTPssrFranklinism(item);
+
+            // 安装人员
+            installer.add(item.getConfirm1());
+
+            //拆除人员
+            remover.add(item.getConfirm2());
+        }
+
+        TPssrApprove exist = new TPssrApprove();
+        exist.setSubId(sub.getId());
+        List<TPssrApprove> tPssrApproves = tPssrApproveService.selectTPssrApproveList(exist);
+        if (CollectionUtil.isEmpty(tPssrApproves)) {
+            //新增审批数据
+            TPssrApprove approve = new TPssrApprove();
+            approve.setSubId(sub.getId());
+            approve.setApNo(DateUtils.dateTimeNow() + userId);
+            approve.setApproveStatus(1L);
+            approve.setSubCharge(sub.getConfirm());
+            approve.setCreaterCode(userId);
+            approve.setCreatedate(new Date());
+            tPssrApproveService.insertTPssrApprove(approve);
+
+            pssr2confirm(approve, new ArrayList<>(installer), new ArrayList<>(remover), sub.getConfirm());
+        } else {
+            // 已存在流程时,删除旧流程,重新发起
+            TPssrApprove approve = tPssrApproves.get(0);
+            delProcess(approve.getProcessId(), "pssr2confirm");
+
+            tPssrFranklinism = new TPssrFranklinism();
+            tPssrFranklinism.setApproveStatus(1L);
+            tPssrFranklinism.setSubId(sub.getId());
+            for (TPssrFranklinism item : tPssrFranklinismService.selectTPssrFranklinismList(tPssrFranklinism)) {
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm2());
+            }
+
+            pssr2confirm(approve, new ArrayList<>(installer), new ArrayList<>(remover), sub.getConfirm());
+        }
+    }
+
+    //气体检测仪流程发起申请
+    public void doQtjcyApprove(TPssrSubcontent sub) {
+        String userId = getUserId().toString();
+        //修改状态
+        TPssrGasdetector tPssrGasdetector = new TPssrGasdetector();
+        tPssrGasdetector.setApproveStatus(0L);
+        tPssrGasdetector.setSubId(sub.getId());
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrGasdetector item : tPssrGasdetectorService.selectTPssrGasdetectorList(tPssrGasdetector)) {
+            item.setApproveStatus(1L);
+            item.setUpdatedate(new Date());
+            item.setUpdaterCode(userId);
+            tPssrGasdetectorService.updateTPssrGasdetector(item);
+
+            // 安装人员
+            installer.add(item.getConfirm1());
+
+            //拆除人员
+            remover.add(item.getConfirm2());
+        }
+
+        TPssrApprove exist = new TPssrApprove();
+        exist.setSubId(sub.getId());
+        List<TPssrApprove> tPssrApproves = tPssrApproveService.selectTPssrApproveList(exist);
+        if (CollectionUtil.isEmpty(tPssrApproves)) {
+            //新增审批数据
+            TPssrApprove approve = new TPssrApprove();
+            approve.setSubId(sub.getId());
+            approve.setApNo(DateUtils.dateTimeNow() + userId);
+            approve.setApproveStatus(1L);
+            approve.setSubCharge(sub.getConfirm());
+            approve.setCreaterCode(userId);
+            approve.setCreatedate(new Date());
+            tPssrApproveService.insertTPssrApprove(approve);
+
+            pssr2confirm(approve, new ArrayList<>(installer), new ArrayList<>(remover), sub.getConfirm());
+        } else {
+            // 已存在流程时,删除旧流程,重新发起
+            TPssrApprove approve = tPssrApproves.get(0);
+            delProcess(approve.getProcessId(), "pssr2confirm");
+
+            tPssrGasdetector = new TPssrGasdetector();
+            tPssrGasdetector.setApproveStatus(1L);
+            tPssrGasdetector.setSubId(sub.getId());
+            for (TPssrGasdetector item : tPssrGasdetectorService.selectTPssrGasdetectorList(tPssrGasdetector)) {
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm2());
+            }
+
+            pssr2confirm(approve, new ArrayList<>(installer), new ArrayList<>(remover), sub.getConfirm());
+        }
+    }
+
+    //在线分析仪流程发起申请
+    public void doZxfxyApprove(TPssrSubcontent sub) {
+        String userId = getUserId().toString();
+        //修改状态
+        TPssrAnalyzer tPssrAnalyzer = new TPssrAnalyzer();
+        tPssrAnalyzer.setApproveStatus(0L);
+        tPssrAnalyzer.setSubId(sub.getId());
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrAnalyzer item : tPssrAnalyzerService.selectTPssrAnalyzerList(tPssrAnalyzer)) {
+            item.setApproveStatus(1L);
+            item.setUpdatedate(new Date());
+            item.setUpdaterCode(userId);
+            tPssrAnalyzerService.updateTPssrAnalyzer(item);
+
+            // 安装人员
+            installer.add(item.getConfirm1());
+
+            //拆除人员
+            remover.add(item.getConfirm2());
+        }
+
+        TPssrApprove exist = new TPssrApprove();
+        exist.setSubId(sub.getId());
+        List<TPssrApprove> tPssrApproves = tPssrApproveService.selectTPssrApproveList(exist);
+        if (CollectionUtil.isEmpty(tPssrApproves)) {
+            //新增审批数据
+            TPssrApprove approve = new TPssrApprove();
+            approve.setSubId(sub.getId());
+            approve.setApNo(DateUtils.dateTimeNow() + userId);
+            approve.setApproveStatus(1L);
+            approve.setSubCharge(sub.getConfirm());
+            approve.setCreaterCode(userId);
+            approve.setCreatedate(new Date());
+            tPssrApproveService.insertTPssrApprove(approve);
+
+            pssr2confirm(approve, new ArrayList<>(installer), new ArrayList<>(remover), sub.getConfirm());
+        } else {
+            // 已存在流程时,删除旧流程,重新发起
+            TPssrApprove approve = tPssrApproves.get(0);
+            delProcess(approve.getProcessId(), "pssr2confirm");
+
+            tPssrAnalyzer = new TPssrAnalyzer();
+            tPssrAnalyzer.setApproveStatus(1L);
+            tPssrAnalyzer.setSubId(sub.getId());
+            for (TPssrAnalyzer item : tPssrAnalyzerService.selectTPssrAnalyzerList(tPssrAnalyzer)) {
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm2());
+            }
+
+            pssr2confirm(approve, new ArrayList<>(installer), new ArrayList<>(remover), sub.getConfirm());
+        }
+    }
+
     /**
      * 设计变更发起流程
      */

+ 158 - 1
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrFranklinismController.java

@@ -1,6 +1,16 @@
 package com.ruoyi.project.pssr.controller;
 
-import java.util.List;
+import java.util.*;
+
+import com.ruoyi.project.pssr.domain.TPssrApprove;
+import com.ruoyi.project.pssr.domain.TPssrFranklinism;
+import com.ruoyi.project.pssr.domain.TPssrSubcontent;
+import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
+import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.ProcessEngines;
+import org.activiti.engine.TaskService;
+import org.activiti.engine.task.Task;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +43,12 @@ public class TPssrFranklinismController extends BaseController
     @Autowired
     private ITPssrFranklinismService tPssrFranklinismService;
 
+    @Autowired
+    private ITPssrApproveService tPssrApproveService;
+
+    @Autowired
+    private ITPssrSubcontentService tPssrSubcontentService;
+
     /**
      * 查询静电接地,跨接列表
      */
@@ -76,6 +92,7 @@ public class TPssrFranklinismController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TPssrFranklinism tPssrFranklinism)
     {
+        tPssrFranklinism.setApproveStatus(0L);
         return toAjax(tPssrFranklinismService.insertTPssrFranklinism(tPssrFranklinism));
     }
 
@@ -100,4 +117,144 @@ public class TPssrFranklinismController extends BaseController
     {
         return toAjax(tPssrFranklinismService.deleteTPssrFranklinismByIds(ids));
     }
+
+
+    /**
+     * 确认静电接地,跨接
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:franklinism:edit')")
+    @Log(title = "静电接地,跨接", businessType = BusinessType.UPDATE)
+    @PutMapping("/confirmFranklinism")
+    public AjaxResult Franklinism(@RequestBody TPssrFranklinism tPssrFranklinism) {
+        long queryStatus = 0;
+        long approveStatus = 0;
+        Date date = null;
+        if (tPssrFranklinism.getTaskType() == 4) {
+            //拆锁确认
+            queryStatus = 1;
+            approveStatus = 3;
+            date = new Date();
+        } else if (tPssrFranklinism.getTaskType() == 5) {
+            //上锁确认
+            queryStatus = 3;
+            approveStatus = 2;
+            date = new Date();
+        }
+        // 修改状态
+        if (tPssrFranklinism.getIds() != null && tPssrFranklinism.getIds().length > 0) {
+            for (Long id : tPssrFranklinism.getIds()) {
+                TPssrFranklinism item = tPssrFranklinismService.selectTPssrFranklinismById(id);
+                item.setApproveStatus(approveStatus);
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                tPssrFranklinismService.updateTPssrFranklinism(item);
+            }
+        } else {
+            TPssrFranklinism lock = new TPssrFranklinism();
+            lock.setSubId(tPssrFranklinism.getSubId());
+            lock.setApproveStatus(queryStatus);
+            for (TPssrFranklinism item : tPssrFranklinismService.selectTPssrFranklinismList(lock)) {
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                item.setApproveStatus(approveStatus);
+                tPssrFranklinismService.updateTPssrFranklinism(item);
+            }
+        }
+        //查询当前待审批的确认人
+        TPssrFranklinism entity = new TPssrFranklinism();
+        entity.setSubId(tPssrFranklinism.getSubId());
+        entity.setApproveStatus(queryStatus);
+        for (TPssrFranklinism item : tPssrFranklinismService.selectTPssrFranklinismList(entity)) {
+            if (tPssrFranklinism.getTaskType() == 4) {
+                if (item.getConfirm1().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            } else if (tPssrFranklinism.getTaskType() == 5) {
+                if (item.getConfirm2().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            }
+        }
+
+        //无待审批任务结束当前用户流程
+        TPssrApprove approve = new TPssrApprove();
+        approve.setSubId(tPssrFranklinism.getSubId());
+        // 因为流程关系所以approve一定会有且只有一条数据
+        TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveList(approve).get(0);
+        TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());
+        return AjaxResult.success();
+
+    }
+
+    /**
+     * 驳回静电接地,跨接
+     */
+    @PutMapping("/turnDownFranklinism")
+    public AjaxResult turnDownFranklinism(@RequestBody TPssrFranklinism tPssrFranklinism) {
+        if (tPssrFranklinism.getIds() != null) {
+            String userId = getUserId().toString();
+            // 修改已选择数据的状态
+            for (Long id : tPssrFranklinism.getIds()) {
+                TPssrFranklinism blind = new TPssrFranklinism();
+                blind.setId(id);
+                blind.setApproveStatus(1L);
+                blind.setUpdatedate(new Date());
+                blind.setUpdaterCode(getUserId().toString());
+                tPssrFranklinismService.updateTPssrFranklinism(blind);
+            }
+            // 查询当前流程
+            TPssrApprove approve = tPssrApproveService.selectTPssrApproveBySubId(tPssrFranklinism.getSubId());
+
+            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+            TaskService taskService = processEngine.getTaskService();
+            Task task = processEngine.getTaskService()//获取任务service
+                    .createTaskQuery()//创建查询对象
+                    .taskAssignee(userId)
+                    .processInstanceId(approve.getProcessId()).singleResult();
+            String taskId = task.getId();
+
+            // 驳回 查询所有待审批的人员
+            TPssrFranklinism blind = new TPssrFranklinism();
+            blind.setSubId(tPssrFranklinism.getSubId());
+            blind.setApproveStatus(1L);
+            Set<String> installer = new HashSet<>();
+            Set<String> remover = new HashSet<>();
+            for (TPssrFranklinism item : tPssrFranklinismService.selectTPssrFranklinismList(blind)) {
+
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm2());
+            }
+
+
+            //处理流程节点
+            Map<String, Object> param = new HashMap<>();
+            param.put("condition", 1);
+            param.put("confirmUsers1", new ArrayList<>(installer));
+            param.put("confirmUsers2", new ArrayList<>(remover));
+            //认领任务
+            processEngine.getTaskService().claim(taskId, userId);
+            taskService.addComment(taskId, approve.getProcessId(), "驳回至拆除;" + tPssrFranklinism.getRemarks());
+            taskService.complete(taskId, param);
+
+            // 修改审批表和sub表
+            approve.setApproveStatus(1L);
+            approve.setUpdatedate(new Date());
+            approve.setUpdaterCode(getUserId().toString());
+            tPssrApproveService.updateTPssrApprove(approve);
+
+            TPssrSubcontent subcontent = new TPssrSubcontent();
+            subcontent.setId(approve.getSubId());
+            subcontent.setApproveStatus(1L);
+            subcontent.setUpdatedate(new Date());
+            subcontent.setUpdaterCode(getUserId().toString());
+            tPssrSubcontentService.updateTPssrSubcontent(subcontent);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
 }

+ 158 - 1
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrGasdetectorController.java

@@ -1,6 +1,16 @@
 package com.ruoyi.project.pssr.controller;
 
-import java.util.List;
+import java.util.*;
+
+import com.ruoyi.project.pssr.domain.TPssrApprove;
+import com.ruoyi.project.pssr.domain.TPssrGasdetector;
+import com.ruoyi.project.pssr.domain.TPssrSubcontent;
+import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
+import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.ProcessEngines;
+import org.activiti.engine.TaskService;
+import org.activiti.engine.task.Task;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +43,12 @@ public class TPssrGasdetectorController extends BaseController
     @Autowired
     private ITPssrGasdetectorService tPssrGasdetectorService;
 
+    @Autowired
+    private ITPssrApproveService tPssrApproveService;
+
+    @Autowired
+    private ITPssrSubcontentService tPssrSubcontentService;
+
     /**
      * 查询气体检测器列表
      */
@@ -76,6 +92,7 @@ public class TPssrGasdetectorController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TPssrGasdetector tPssrGasdetector)
     {
+        tPssrGasdetector.setApproveStatus(0L);
         return toAjax(tPssrGasdetectorService.insertTPssrGasdetector(tPssrGasdetector));
     }
 
@@ -100,4 +117,144 @@ public class TPssrGasdetectorController extends BaseController
     {
         return toAjax(tPssrGasdetectorService.deleteTPssrGasdetectorByIds(ids));
     }
+
+
+    /**
+     * 确认气体检测器
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:gasdetector:edit')")
+    @Log(title = "气体检测器", businessType = BusinessType.UPDATE)
+    @PutMapping("/confirmGasdetector")
+    public AjaxResult Gasdetector(@RequestBody TPssrGasdetector tPssrGasdetector) {
+        long queryStatus = 0;
+        long approveStatus = 0;
+        Date date = null;
+        if (tPssrGasdetector.getTaskType() == 4) {
+            //拆锁确认
+            queryStatus = 1;
+            approveStatus = 3;
+            date = new Date();
+        } else if (tPssrGasdetector.getTaskType() == 5) {
+            //上锁确认
+            queryStatus = 3;
+            approveStatus = 2;
+            date = new Date();
+        }
+        // 修改状态
+        if (tPssrGasdetector.getIds() != null && tPssrGasdetector.getIds().length > 0) {
+            for (Long id : tPssrGasdetector.getIds()) {
+                TPssrGasdetector item = tPssrGasdetectorService.selectTPssrGasdetectorById(id);
+                item.setApproveStatus(approveStatus);
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                tPssrGasdetectorService.updateTPssrGasdetector(item);
+            }
+        } else {
+            TPssrGasdetector lock = new TPssrGasdetector();
+            lock.setSubId(tPssrGasdetector.getSubId());
+            lock.setApproveStatus(queryStatus);
+            for (TPssrGasdetector item : tPssrGasdetectorService.selectTPssrGasdetectorList(lock)) {
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                item.setApproveStatus(approveStatus);
+                tPssrGasdetectorService.updateTPssrGasdetector(item);
+            }
+        }
+        //查询当前待审批的确认人
+        TPssrGasdetector entity = new TPssrGasdetector();
+        entity.setSubId(tPssrGasdetector.getSubId());
+        entity.setApproveStatus(queryStatus);
+        for (TPssrGasdetector item : tPssrGasdetectorService.selectTPssrGasdetectorList(entity)) {
+            if (tPssrGasdetector.getTaskType() == 4) {
+                if (item.getConfirm1().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            } else if (tPssrGasdetector.getTaskType() == 5) {
+                if (item.getConfirm2().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            }
+        }
+
+        //无待审批任务结束当前用户流程
+        TPssrApprove approve = new TPssrApprove();
+        approve.setSubId(tPssrGasdetector.getSubId());
+        // 因为流程关系所以approve一定会有且只有一条数据
+        TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveList(approve).get(0);
+        TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());
+        return AjaxResult.success();
+
+    }
+
+    /**
+     * 驳回气体检测器
+     */
+    @PutMapping("/turnDownGasdetector")
+    public AjaxResult turnDownGasdetector(@RequestBody TPssrGasdetector tPssrGasdetector) {
+        if (tPssrGasdetector.getIds() != null) {
+            String userId = getUserId().toString();
+            // 修改已选择数据的状态
+            for (Long id : tPssrGasdetector.getIds()) {
+                TPssrGasdetector blind = new TPssrGasdetector();
+                blind.setId(id);
+                blind.setApproveStatus(1L);
+                blind.setUpdatedate(new Date());
+                blind.setUpdaterCode(getUserId().toString());
+                tPssrGasdetectorService.updateTPssrGasdetector(blind);
+            }
+            // 查询当前流程
+            TPssrApprove approve = tPssrApproveService.selectTPssrApproveBySubId(tPssrGasdetector.getSubId());
+
+            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+            TaskService taskService = processEngine.getTaskService();
+            Task task = processEngine.getTaskService()//获取任务service
+                    .createTaskQuery()//创建查询对象
+                    .taskAssignee(userId)
+                    .processInstanceId(approve.getProcessId()).singleResult();
+            String taskId = task.getId();
+
+            // 驳回 查询所有待审批的人员
+            TPssrGasdetector blind = new TPssrGasdetector();
+            blind.setSubId(tPssrGasdetector.getSubId());
+            blind.setApproveStatus(1L);
+            Set<String> installer = new HashSet<>();
+            Set<String> remover = new HashSet<>();
+            for (TPssrGasdetector item : tPssrGasdetectorService.selectTPssrGasdetectorList(blind)) {
+
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm2());
+            }
+
+
+            //处理流程节点
+            Map<String, Object> param = new HashMap<>();
+            param.put("condition", 1);
+            param.put("confirmUsers1", new ArrayList<>(installer));
+            param.put("confirmUsers2", new ArrayList<>(remover));
+            //认领任务
+            processEngine.getTaskService().claim(taskId, userId);
+            taskService.addComment(taskId, approve.getProcessId(), "驳回至拆除;" + tPssrGasdetector.getRemarks());
+            taskService.complete(taskId, param);
+
+            // 修改审批表和sub表
+            approve.setApproveStatus(1L);
+            approve.setUpdatedate(new Date());
+            approve.setUpdaterCode(getUserId().toString());
+            tPssrApproveService.updateTPssrApprove(approve);
+
+            TPssrSubcontent subcontent = new TPssrSubcontent();
+            subcontent.setId(approve.getSubId());
+            subcontent.setApproveStatus(1L);
+            subcontent.setUpdatedate(new Date());
+            subcontent.setUpdaterCode(getUserId().toString());
+            tPssrSubcontentService.updateTPssrSubcontent(subcontent);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
 }

+ 44 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrAnalyzer.java

@@ -100,6 +100,50 @@ public class TPssrAnalyzer extends BaseEntity
     @Excel(name = "审批状态")
     private Long approveStatus;
 
+    /** 确认人1 */
+    @Excel(name = "确认人1")
+    private String confirm1;
+
+    /** 确认人2 */
+    @Excel(name = "确认人2")
+    private String confirm2;
+
+    private Long[] ids;
+
+    private Long taskType;
+
+    public String getConfirm1() {
+        return confirm1;
+    }
+
+    public void setConfirm1(String confirm1) {
+        this.confirm1 = confirm1;
+    }
+
+    public String getConfirm2() {
+        return confirm2;
+    }
+
+    public void setConfirm2(String confirm2) {
+        this.confirm2 = confirm2;
+    }
+
+    public Long[] getIds() {
+        return ids;
+    }
+
+    public void setIds(Long[] ids) {
+        this.ids = ids;
+    }
+
+    public Long getTaskType() {
+        return taskType;
+    }
+
+    public void setTaskType(Long taskType) {
+        this.taskType = taskType;
+    }
+
     public void setId(Long id)
     {
         this.id = id;

+ 44 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrFranklinism.java

@@ -96,6 +96,50 @@ public class TPssrFranklinism extends BaseEntity
     @Excel(name = "审批状态")
     private Long approveStatus;
 
+    /** 确认人1 */
+    @Excel(name = "确认人1")
+    private String confirm1;
+
+    /** 确认人2 */
+    @Excel(name = "确认人2")
+    private String confirm2;
+
+    private Long[] ids;
+
+    private Long taskType;
+
+    public String getConfirm1() {
+        return confirm1;
+    }
+
+    public void setConfirm1(String confirm1) {
+        this.confirm1 = confirm1;
+    }
+
+    public String getConfirm2() {
+        return confirm2;
+    }
+
+    public void setConfirm2(String confirm2) {
+        this.confirm2 = confirm2;
+    }
+
+    public Long[] getIds() {
+        return ids;
+    }
+
+    public void setIds(Long[] ids) {
+        this.ids = ids;
+    }
+
+    public Long getTaskType() {
+        return taskType;
+    }
+
+    public void setTaskType(Long taskType) {
+        this.taskType = taskType;
+    }
+
     public void setId(Long id)
     {
         this.id = id;

+ 44 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrGasdetector.java

@@ -100,6 +100,50 @@ public class TPssrGasdetector extends BaseEntity
     @Excel(name = "审批状态")
     private Long approveStatus;
 
+    /** 确认人1 */
+    @Excel(name = "确认人1")
+    private String confirm1;
+
+    /** 确认人2 */
+    @Excel(name = "确认人2")
+    private String confirm2;
+
+    private Long[] ids;
+
+    private Long taskType;
+
+    public String getConfirm1() {
+        return confirm1;
+    }
+
+    public void setConfirm1(String confirm1) {
+        this.confirm1 = confirm1;
+    }
+
+    public String getConfirm2() {
+        return confirm2;
+    }
+
+    public void setConfirm2(String confirm2) {
+        this.confirm2 = confirm2;
+    }
+
+    public Long[] getIds() {
+        return ids;
+    }
+
+    public void setIds(Long[] ids) {
+        this.ids = ids;
+    }
+
+    public Long getTaskType() {
+        return taskType;
+    }
+
+    public void setTaskType(Long taskType) {
+        this.taskType = taskType;
+    }
+
     public void setId(Long id)
     {
         this.id = id;

+ 11 - 1
master/src/main/resources/mybatis/pssr/TPssrAnalyzerMapper.xml

@@ -24,10 +24,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="remarks"    column="remarks"    />
         <result property="approveStatus"    column="approve_status"    />
         <result property="deptName" column="dept_name" />
+        <result property="confirm1"    column="confirm1"    />
+        <result property="confirm2"    column="confirm2"    />
     </resultMap>
 
     <sql id="selectTPssrAnalyzerVo">
-        select d.id, d.sub_id, d.approve_id, d.unit, d.dev_no, d.visual_inspection, d.functional_check, d.sp_checker, d.process_validator, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_analyzer d
+        select d.id, d.confirm1, d.confirm2, d.sub_id, d.approve_id, d.unit, d.dev_no, d.visual_inspection, d.functional_check, d.sp_checker, d.process_validator, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_analyzer d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -50,6 +52,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null "> and dept_id = #{deptId}</if>
             <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
             <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
+            <if test="confirm1 != null  and confirm1 != ''"> and confirm1 = #{confirm1}</if>
+            <if test="confirm2 != null  and confirm2 != ''"> and confirm2 = #{confirm2}</if>
             and d.del_flag = 0
         </where>
         <!-- 数据范围过滤 -->
@@ -85,6 +89,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">dept_id,</if>
             <if test="remarks != null">remarks,</if>
             <if test="approveStatus != null">approve_status,</if>
+            <if test="confirm1 != null">confirm1,</if>
+            <if test="confirm2 != null">confirm2,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -105,6 +111,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">#{deptId},</if>
             <if test="remarks != null">#{remarks},</if>
             <if test="approveStatus != null">#{approveStatus},</if>
+            <if test="confirm1 != null">#{confirm1},</if>
+            <if test="confirm2 != null">#{confirm2},</if>
          </trim>
     </insert>
 
@@ -128,6 +136,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="remarks != null">remarks = #{remarks},</if>
             <if test="approveStatus != null">approve_status = #{approveStatus},</if>
+            <if test="confirm1 != null">confirm1 = #{confirm1},</if>
+            <if test="confirm2 != null">confirm2 = #{confirm2},</if>
         </trim>
         where id = #{id}
     </update>

+ 11 - 1
master/src/main/resources/mybatis/pssr/TPssrFranklinismMapper.xml

@@ -23,10 +23,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="remarks"    column="remarks"    />
         <result property="approveStatus"    column="approve_status"    />
         <result property="deptName" column="dept_name" />
+        <result property="confirm1"    column="confirm1"    />
+        <result property="confirm2"    column="confirm2"    />
     </resultMap>
 
     <sql id="selectTPssrFranklinismVo">
-        select d.id, d.sub_id, d.approve_id, d.check_content, d.check_result, d.check_des, d.change_result, d.confirm, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_franklinism d
+        select d.id, d.confirm1, d.confirm2, d.sub_id, d.approve_id, d.check_content, d.check_result, d.check_des, d.change_result, d.confirm, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_franklinism d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -48,6 +50,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null "> and dept_id = #{deptId}</if>
             <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
             <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
+            <if test="confirm1 != null  and confirm1 != ''"> and confirm1 = #{confirm1}</if>
+            <if test="confirm2 != null  and confirm2 != ''"> and confirm2 = #{confirm2}</if>
             and d.del_flag = 0
         </where>
         <!-- 数据范围过滤 -->
@@ -82,6 +86,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">dept_id,</if>
             <if test="remarks != null">remarks,</if>
             <if test="approveStatus != null">approve_status,</if>
+            <if test="confirm1 != null">confirm1,</if>
+            <if test="confirm2 != null">confirm2,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -101,6 +107,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">#{deptId},</if>
             <if test="remarks != null">#{remarks},</if>
             <if test="approveStatus != null">#{approveStatus},</if>
+            <if test="confirm1 != null">#{confirm1},</if>
+            <if test="confirm2 != null">#{confirm2},</if>
          </trim>
     </insert>
 
@@ -123,6 +131,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="remarks != null">remarks = #{remarks},</if>
             <if test="approveStatus != null">approve_status = #{approveStatus},</if>
+            <if test="confirm1 != null">confirm1 = #{confirm1},</if>
+            <if test="confirm2 != null">confirm2 = #{confirm2},</if>
         </trim>
         where id = #{id}
     </update>

+ 11 - 1
master/src/main/resources/mybatis/pssr/TPssrGasdetectorMapper.xml

@@ -24,10 +24,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="remarks"    column="remarks"    />
         <result property="approveStatus"    column="approve_status"    />
         <result property="deptName" column="dept_name" />
+        <result property="confirm1"    column="confirm1"    />
+        <result property="confirm2"    column="confirm2"    />
     </resultMap>
 
     <sql id="selectTPssrGasdetectorVo">
-        select d.id, d.sub_id, d.approve_id, d.dev_no, d.visual_inspection, d.raincover_check, d.display_check, d.meter_checker, d.process_validator, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_gasdetector d
+        select d.id, d.confirm1, d.confirm2, d.sub_id, d.approve_id, d.dev_no, d.visual_inspection, d.raincover_check, d.display_check, d.meter_checker, d.process_validator, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_gasdetector d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -50,6 +52,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null "> and dept_id = #{deptId}</if>
             <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
             <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>
+            <if test="confirm1 != null  and confirm1 != ''"> and confirm1 = #{confirm1}</if>
+            <if test="confirm2 != null  and confirm2 != ''"> and confirm2 = #{confirm2}</if>
             and d.del_flag = 0
         </where>
         <!-- 数据范围过滤 -->
@@ -85,6 +89,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">dept_id,</if>
             <if test="remarks != null">remarks,</if>
             <if test="approveStatus != null">approve_status,</if>
+            <if test="confirm1 != null">confirm1,</if>
+            <if test="confirm2 != null">confirm2,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -105,6 +111,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">#{deptId},</if>
             <if test="remarks != null">#{remarks},</if>
             <if test="approveStatus != null">#{approveStatus},</if>
+            <if test="confirm1 != null">#{confirm1},</if>
+            <if test="confirm2 != null">#{confirm2},</if>
          </trim>
     </insert>
 
@@ -128,6 +136,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="remarks != null">remarks = #{remarks},</if>
             <if test="approveStatus != null">approve_status = #{approveStatus},</if>
+            <if test="confirm1 != null">confirm1 = #{confirm1},</if>
+            <if test="confirm2 != null">confirm2 = #{confirm2},</if>
         </trim>
         where id = #{id}
     </update>

+ 19 - 1
ui/src/api/pssr/analyzer.js

@@ -1,5 +1,23 @@
 import request from '@/utils/request'
 
+// 确认在线分析仪
+export function handleConfirmAnalyzer(data) {
+  return request({
+    url: '/pssr/analyzer/confirmAnalyzer',
+    method: 'put',
+    data: data
+  })
+}
+
+// 驳回在线分析仪
+export function handleTurnDownAnalyzer(data) {
+  return request({
+    url: '/pssr/analyzer/turnDownAnalyzer',
+    method: 'put',
+    data: data
+  })
+}
+
 // 查询在线分析仪列表
 export function listAnalyzer(query) {
   return request({
@@ -50,4 +68,4 @@ export function exportAnalyzer(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 19 - 1
ui/src/api/pssr/franklinism.js

@@ -1,5 +1,23 @@
 import request from '@/utils/request'
 
+// 确认静电接地,跨接
+export function handleConfirmFranklinism(data) {
+  return request({
+    url: '/pssr/franklinism/confirmFranklinism',
+    method: 'put',
+    data: data
+  })
+}
+
+// 驳回静电接地,跨接
+export function handleTurnDownFranklinism(data) {
+  return request({
+    url: '/pssr/franklinism/turnDownFranklinism',
+    method: 'put',
+    data: data
+  })
+}
+
 // 查询静电接地,跨接列表
 export function listFranklinism(query) {
   return request({
@@ -50,4 +68,4 @@ export function exportFranklinism(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 19 - 1
ui/src/api/pssr/gasdetector.js

@@ -1,5 +1,23 @@
 import request from '@/utils/request'
 
+// 确认气体检测器
+export function handleConfirmGasdetector(data) {
+  return request({
+    url: '/pssr/gasdetector/confirmGasdetector',
+    method: 'put',
+    data: data
+  })
+}
+
+// 驳回气体检测器
+export function handleTurnDownGasdetector(data) {
+  return request({
+    url: '/pssr/gasdetector/turnDownGasdetector',
+    method: 'put',
+    data: data
+  })
+}
+
 // 查询气体检测器列表
 export function listGasdetector(query) {
   return request({
@@ -50,4 +68,4 @@ export function exportGasdetector(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 291 - 131
ui/src/views/pssr/analyzer/index.vue

@@ -1,24 +1,24 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="内容表id" prop="subId">
-        <el-input
-          v-model="queryParams.subId"
-          placeholder="请输入内容表id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="审批id" prop="approveId">
-        <el-input
-          v-model="queryParams.approveId"
-          placeholder="请输入审批id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+      <!--<el-form-item label="内容表id" prop="subId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.subId"-->
+          <!--placeholder="请输入内容表id"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="审批id" prop="approveId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.approveId"-->
+          <!--placeholder="请输入审批id"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
       <el-form-item label="单元号" prop="unit">
         <el-input
           v-model="queryParams.unit"
@@ -55,75 +55,101 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="CTA/SP检查人" prop="spChecker">
+      <!--<el-form-item label="CTA/SP检查人" prop="spChecker">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.spChecker"-->
+          <!--placeholder="请输入CTA/SP检查人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="工艺检查人" prop="processValidator">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.processValidator"-->
+          <!--placeholder="请输入工艺检查人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="确认时间" prop="confirmationDate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.confirmationDate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择确认时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="创建人" prop="createrCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.createrCode"-->
+          <!--placeholder="请输入创建人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="创建时间" prop="createdate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.createdate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择创建时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改人" prop="updaterCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.updaterCode"-->
+          <!--placeholder="请输入修改人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改时间" prop="updatedate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.updatedate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择修改时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="部门编号" prop="deptId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.deptId"-->
+          <!--placeholder="请输入部门编号"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <el-form-item label="确认人1" prop="confirm1">
         <el-input
-          v-model="queryParams.spChecker"
-          placeholder="请输入CTA/SP检查人"
+          v-model="queryParams.confirm1"
+          placeholder="请输入确认人1"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="工艺检查人" prop="processValidator">
+      <el-form-item label="确认人2" prop="confirm2">
         <el-input
-          v-model="queryParams.processValidator"
-          placeholder="请输入工艺检查人"
+          v-model="queryParams.confirm2"
+          placeholder="请输入确认人2"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="检查时间" prop="confirmationDate">
+      <el-form-item label="确认时间" prop="confirmationDate">
         <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.confirmationDate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择检查时间">
+                        v-model="queryParams.confirmationDate"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择确认时间">
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="创建人" prop="createrCode">
-        <el-input
-          v-model="queryParams.createrCode"
-          placeholder="请输入创建人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="创建时间" prop="createdate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.createdate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择创建时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="修改人" prop="updaterCode">
-        <el-input
-          v-model="queryParams.updaterCode"
-          placeholder="请输入修改人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="修改时间" prop="updatedate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.updatedate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择修改时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="部门编号" prop="deptId">
-        <el-input
-          v-model="queryParams.deptId"
-          placeholder="请输入部门编号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
       <el-form-item label="备注" prop="remarks">
         <el-input
           v-model="queryParams.remarks"
@@ -147,6 +173,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['pssr:analyzer:add']"
+          v-if="isApprove==0"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -157,6 +184,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['pssr:analyzer:edit']"
+          v-if="isApprove==0"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -167,6 +195,7 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['pssr:analyzer:remove']"
+          v-if="isApprove==0"
         >删除</el-button>
       </el-col>
         <el-col :span="1.5">
@@ -176,6 +205,7 @@
                     size="mini"
                     @click="handleImport"
                     v-hasPermi="['pssr:analyzer:edit']"
+                    v-if="isApprove==0"
             >导入</el-button>
         </el-col>
       <el-col :span="1.5">
@@ -185,42 +215,101 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['pssr:analyzer:export']"
+          v-if="isApprove==0"
         >导出</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-s-promotion"
+          size="mini"
+          @click="handleApprove"
+          v-if="isApprove==0"
+          v-hasPermi="['pssr:analyzer:edit']"
+        >发起审批
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-check"
+          size="mini"
+          v-if="isApprove==4||isApprove==5"
+          @click="handleConfirmApprove"
+          v-hasPermi="['pssr:analyzer:edit']"
+        >确认
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-refresh-left"
+          size="mini"
+          v-if="isApprove==2"
+          :disabled="multiple"
+          @click="handleTurnDown"
+          v-hasPermi="['pssr:analyzer:edit']"
+        >驳回
+        </el-button>
       </el-col>
 	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
+    <div style="width: 100%;text-align: center;margin-bottom: 15px">
+      <H2>蒸汽裂解装置现场在线分析仪检查确认清单</H2>
+    </div>
+
     <el-table v-loading="loading" :data="analyzerList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>
-      <el-table-column label="内容表id" align="center" prop="subId" :show-overflow-tooltip="true"/>
-      <el-table-column label="审批id" align="center" prop="approveId" :show-overflow-tooltip="true"/>
+      <!--<el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="内容表id" align="center" prop="subId" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="审批id" align="center" prop="approveId" :show-overflow-tooltip="true"/>-->
+      <el-table-column label="审批状态" align="center" prop="approveStatus" :show-overflow-tooltip="true" width="100">
+        <template slot-scope="scope">
+          <el-tag v-if="scope.row.approveStatus==0">未审批</el-tag>
+          <el-tag v-if="scope.row.approveStatus==1" type="warning">待确认</el-tag>
+          <el-tag v-if="scope.row.approveStatus==3" type="success">已确认1</el-tag>
+          <el-tag v-if="scope.row.approveStatus==2" type="success">已确认2</el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="单元号" align="center" prop="unit" :show-overflow-tooltip="true"/>
       <el-table-column label="在线分析仪位号" align="center" prop="devNo" :show-overflow-tooltip="true"/>
       <el-table-column label="外观检查" align="center" prop="visualInspection" :show-overflow-tooltip="true"/>
       <el-table-column label="功能检查" align="center" prop="functionalCheck" :show-overflow-tooltip="true"/>
-      <el-table-column label="CTA/SP检查人" align="center" prop="spChecker" :show-overflow-tooltip="true"/>
-      <el-table-column label="工艺检查人" align="center" prop="processValidator" :show-overflow-tooltip="true"/>
-      <el-table-column label="检查时间" align="center" prop="confirmationDate" width="100">
+      <!--<el-table-column label="CTA/SP检查人" align="center" prop="spChecker" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="工艺检查人" align="center" prop="processValidator" :show-overflow-tooltip="true"/>-->
+      <el-table-column label="确认人1" align="center" prop="confirm1" :show-overflow-tooltip="true"
+                       width="150">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>
+          <span>{{ userFormat(scope.row.confirm1) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="创建时间" align="center" prop="createdate" width="100">
+      <el-table-column label="确认人2" align="center" prop="confirm2" :show-overflow-tooltip="true"
+                       width="150">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+          <span>{{ userFormat(scope.row.confirm2) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="修改时间" align="center" prop="updatedate" width="100">
+      <el-table-column label="确认时间" align="center" prop="confirmationDate" width="100">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>
+      <!--<el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="创建时间" align="center" prop="createdate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="修改时间" align="center" prop="updatedate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>-->
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
-      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width" v-if="isApprove==0">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -251,12 +340,12 @@
     <!-- 添加或修改在线分析仪对话框 -->
     <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="内容表id" prop="subId">
-          <el-input v-model="form.subId" placeholder="请输入内容表id" />
-        </el-form-item>
-        <el-form-item label="审批id" prop="approveId">
-          <el-input v-model="form.approveId" placeholder="请输入审批id" />
-        </el-form-item>
+        <!--<el-form-item label="内容表id" prop="subId">-->
+          <!--<el-input v-model="form.subId" placeholder="请输入内容表id" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="审批id" prop="approveId">-->
+          <!--<el-input v-model="form.approveId" placeholder="请输入审批id" />-->
+        <!--</el-form-item>-->
         <el-form-item label="单元号" prop="unit">
           <el-input v-model="form.unit" placeholder="请输入单元号" />
         </el-form-item>
@@ -269,54 +358,72 @@
         <el-form-item label="功能检查" prop="functionalCheck">
           <el-input v-model="form.functionalCheck" placeholder="请输入功能检查" />
         </el-form-item>
-        <el-form-item label="CTA/SP检查人" prop="spChecker">
-          <el-input v-model="form.spChecker" placeholder="请输入CTA/SP检查人" />
+        <!--<el-form-item label="CTA/SP检查人" prop="spChecker">-->
+          <!--<el-input v-model="form.spChecker" placeholder="请输入CTA/SP检查人" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="工艺检查人" prop="processValidator">-->
+          <!--<el-input v-model="form.processValidator" placeholder="请输入工艺检查人" />-->
+        <!--</el-form-item>-->
+        <el-form-item label="确认人1" prop="confirm1">
+          <el-select v-model="form.confirm1" clearable filterable style="width: 100%;"
+                     placeholder="请选择确认人1">
+            <el-option v-for="user in userOptions"
+                       :label="user.nickName"
+                       :value="user.userId+''"
+                       :key="user.userId"/>
+          </el-select>
         </el-form-item>
-        <el-form-item label="工艺检查人" prop="processValidator">
-          <el-input v-model="form.processValidator" placeholder="请输入工艺检查人" />
+        <el-form-item label="确认人2" prop="confirm2">
+          <el-select v-model="form.confirm2" clearable filterable style="width: 100%;"
+                     placeholder="请选择确认人2">
+            <el-option v-for="user in userOptions"
+                       :label="user.nickName"
+                       :value="user.userId+''"
+                       :key="user.userId"/>
+          </el-select>
         </el-form-item>
-        <el-form-item label="检查时间" prop="confirmationDate">
+        <el-form-item label="确认时间" prop="confirmationDate">
           <el-date-picker clearable size="small" style="width: 200px"
             v-model="form.confirmationDate"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择检查时间">
+            placeholder="选择确认时间">
           </el-date-picker>
         </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 size="small" style="width: 200px"
-            v-model="form.createdate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择创建时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="修改人" prop="updaterCode">
-          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
-        </el-form-item>
-        <el-form-item label="修改时间" prop="updatedate">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.updatedate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择修改时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="部门编号" prop="deptId">
-          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
-        </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 size="small" style="width: 200px"-->
+            <!--v-model="form.createdate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择创建时间">-->
+          <!--</el-date-picker>-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="修改人" prop="updaterCode">-->
+          <!--<el-input v-model="form.updaterCode" placeholder="请输入修改人" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="修改时间" prop="updatedate">-->
+          <!--<el-date-picker clearable size="small" style="width: 200px"-->
+            <!--v-model="form.updatedate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择修改时间">-->
+          <!--</el-date-picker>-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="部门编号" prop="deptId">-->
+          <!--<el-input v-model="form.deptId" placeholder="请输入部门编号" />-->
+        <!--</el-form-item>-->
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>
-          <el-form-item label="归属部门" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
-          </el-form-item>
+          <!--<el-form-item label="归属部门" prop="deptId">-->
+              <!--<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />-->
+          <!--</el-form-item>-->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -357,11 +464,13 @@
 </template>
 
 <script>
-import { listAnalyzer, getAnalyzer, delAnalyzer, addAnalyzer, updateAnalyzer, exportAnalyzer, importTemplate} from "@/api/pssr/analyzer";
+import { listAnalyzer, getAnalyzer, delAnalyzer, addAnalyzer, updateAnalyzer, exportAnalyzer, importTemplate, handleConfirmAnalyzer, handleTurnDownAnalyzer } from "@/api/pssr/analyzer";
 import { treeselect } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {listUserNoPage} from "@/api/system/user";
+import {doApprove} from "@/api/pssr/approve";
 
 export default {
   dicts:['pssr_approve_status'],
@@ -379,6 +488,7 @@ export default {
   },
   data() {
     return {
+      userOptions: [],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -439,6 +549,8 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        confirm1: [{required: true, message: "人员不可为空", trigger: "blur"}],
+        confirm2: [{required: true, message: "人员不可为空", trigger: "blur"}],
       }
     };
   },
@@ -455,6 +567,9 @@ export default {
       })
     this.getList();
     this.getTreeselect();
+    listUserNoPage({}).then(res => {
+      this.userOptions = res.data
+    });
   },
   methods: {
     /** 查询在线分析仪列表 */
@@ -605,7 +720,52 @@ export default {
       // 提交上传文件
       submitFileForm() {
           this.$refs.upload.submit();
+      },
+    /** 确认按钮操作*/
+    handleApprove() {
+      doApprove(this.subId).then(res => {
+        this.msgSuccess("已发起确认流程");
+      })
+    },
+    handleConfirmApprove() {
+      let data = {
+        ids: this.ids,
+        subId: this.subId,
+        taskType: this.isApprove
       }
+      handleConfirmAnalyzer(data).then(res => {
+        this.msgSuccess("确认成功");
+        this.getList()
+        this.$emit('refreshHisList');
+      })
+    },
+    handleTurnDown(val) {
+      this.$prompt('请输入驳回原因', '提示', {
+        confirmButtonText: '确认驳回',
+        cancelButtonText: '取消',
+      }).then(({value}) => {
+        let data = {
+          ids: this.ids,
+          subId: this.subId,
+          remarks: value
+        }
+        handleTurnDownAnalyzer(data).then(res => {
+          this.msgSuccess("驳回成功");
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '取消驳回'
+        });
+      });
+    },
+    userFormat(userId) {
+      for (let item of this.userOptions) {
+        if (item.userId == userId) {
+          return item.nickName
+        }
+      }
+    },
   }
 };
 </script>

+ 300 - 139
ui/src/views/pssr/franklinism/index.vue

@@ -1,19 +1,28 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="从表id" prop="subId">
+      <!--<el-form-item label="从表id" prop="subId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.subId"-->
+          <!--placeholder="请输入从表id"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="审批id" prop="approveId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.approveId"-->
+          <!--placeholder="请输入审批id"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <el-form-item label="检查内容" prop="checkContent">
         <el-input
-          v-model="queryParams.subId"
-          placeholder="请输入从表id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="审批id" prop="approveId">
-        <el-input
-          v-model="queryParams.approveId"
-          placeholder="请输入审批id"
+          v-model="queryParams.checkContent"
+          placeholder="请输入检查内容"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -28,84 +37,102 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="检查结果异常说明" prop="checkDes">
-        <el-input
-          v-model="queryParams.checkDes"
-          placeholder="请输入检查结果异常说明"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="整改结果" prop="changeResult">
+      <!--<el-form-item label="检查结果异常说明" prop="checkDes">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.checkDes"-->
+          <!--placeholder="请输入检查结果异常说明"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="整改结果" prop="changeResult">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.changeResult"-->
+          <!--placeholder="请输入整改结果"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="检查人员" prop="confirm">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.confirm"-->
+          <!--placeholder="请输入检查人员"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <el-form-item label="确认人1" prop="confirm1">
         <el-input
-          v-model="queryParams.changeResult"
-          placeholder="请输入整改结果"
+          v-model="queryParams.confirm1"
+          placeholder="请输入确认人1"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="检查人员" prop="confirm">
+      <el-form-item label="确认人2" prop="confirm2">
         <el-input
-          v-model="queryParams.confirm"
-          placeholder="请输入检查人员"
+          v-model="queryParams.confirm2"
+          placeholder="请输入确认人2"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="检查时间" prop="confirmationDate">
+      <el-form-item label="确认时间" prop="confirmationDate">
         <el-date-picker clearable size="small" style="width: 200px"
           v-model="queryParams.confirmationDate"
           type="date"
           value-format="yyyy-MM-dd"
-          placeholder="选择检查时间">
+          placeholder="选择确认时间">
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="创建人" prop="createrCode">
-        <el-input
-          v-model="queryParams.createrCode"
-          placeholder="请输入创建人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="创建时间" prop="createdate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.createdate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择创建时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="修改人" prop="updaterCode">
-        <el-input
-          v-model="queryParams.updaterCode"
-          placeholder="请输入修改人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="修改时间" prop="updatedate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.updatedate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择修改时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="部门编号" prop="deptId">
-        <el-input
-          v-model="queryParams.deptId"
-          placeholder="请输入部门编号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+      <!--<el-form-item label="创建人" prop="createrCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.createrCode"-->
+          <!--placeholder="请输入创建人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="创建时间" prop="createdate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.createdate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择创建时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改人" prop="updaterCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.updaterCode"-->
+          <!--placeholder="请输入修改人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改时间" prop="updatedate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.updatedate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择修改时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="部门编号" prop="deptId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.deptId"-->
+          <!--placeholder="请输入部门编号"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
       <el-form-item label="备注" prop="remarks">
         <el-input
           v-model="queryParams.remarks"
@@ -129,6 +156,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['pssr:franklinism:add']"
+          v-if="isApprove==0"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -139,6 +167,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['pssr:franklinism:edit']"
+          v-if="isApprove==0"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -149,6 +178,7 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['pssr:franklinism:remove']"
+          v-if="isApprove==0"
         >删除</el-button>
       </el-col>
         <el-col :span="1.5">
@@ -158,6 +188,7 @@
                     size="mini"
                     @click="handleImport"
                     v-hasPermi="['pssr:franklinism:edit']"
+                    v-if="isApprove==0"
             >导入</el-button>
         </el-col>
       <el-col :span="1.5">
@@ -167,41 +198,100 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['pssr:franklinism:export']"
+          v-if="isApprove==0"
         >导出</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-s-promotion"
+          size="mini"
+          @click="handleApprove"
+          v-if="isApprove==0"
+          v-hasPermi="['pssr:franklinism:edit']"
+        >发起审批
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-check"
+          size="mini"
+          v-if="isApprove==4||isApprove==5"
+          @click="handleConfirmApprove"
+          v-hasPermi="['pssr:franklinism:edit']"
+        >确认
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-refresh-left"
+          size="mini"
+          v-if="isApprove==2"
+          :disabled="multiple"
+          @click="handleTurnDown"
+          v-hasPermi="['pssr:franklinism:edit']"
+        >驳回
+        </el-button>
       </el-col>
 	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
+    <div style="width: 100%;text-align: center;margin-bottom: 15px">
+      <H2>蒸汽裂解装置现场静电接地/跨接检查确认表</H2>
+    </div>
+
     <el-table v-loading="loading" :data="franklinismList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>
-      <el-table-column label="从表id" align="center" prop="subId" :show-overflow-tooltip="true"/>
-      <el-table-column label="审批id" align="center" prop="approveId" :show-overflow-tooltip="true"/>
+      <!--<el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="从表id" align="center" prop="subId" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="审批id" align="center" prop="approveId" :show-overflow-tooltip="true"/>-->
+      <el-table-column label="审批状态" align="center" prop="approveStatus" :show-overflow-tooltip="true" width="100">
+      <template slot-scope="scope">
+        <el-tag v-if="scope.row.approveStatus==0">未审批</el-tag>
+        <el-tag v-if="scope.row.approveStatus==1" type="warning">待确认</el-tag>
+        <el-tag v-if="scope.row.approveStatus==3" type="success">已确认1</el-tag>
+        <el-tag v-if="scope.row.approveStatus==2" type="success">已确认2</el-tag>
+      </template>
+    </el-table-column>
       <el-table-column label="检查内容" align="center" prop="checkContent" :show-overflow-tooltip="true"/>
       <el-table-column label="检查结果" align="center" prop="checkResult" :show-overflow-tooltip="true"/>
-      <el-table-column label="检查结果异常说明" align="center" prop="checkDes" :show-overflow-tooltip="true"/>
-      <el-table-column label="整改结果" align="center" prop="changeResult" :show-overflow-tooltip="true"/>
-      <el-table-column label="检查人员" align="center" prop="confirm" :show-overflow-tooltip="true"/>
-      <el-table-column label="检查时间" align="center" prop="confirmationDate" width="100">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="创建时间" align="center" prop="createdate" width="100">
+      <!--<el-table-column label="检查结果异常说明" align="center" prop="checkDes" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="整改结果" align="center" prop="changeResult" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="检查人员" align="center" prop="confirm" :show-overflow-tooltip="true"/>-->
+      <el-table-column label="确认人1" align="center" prop="confirm1" :show-overflow-tooltip="true"
+                       width="150">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+          <span>{{ userFormat(scope.row.confirm1) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="修改时间" align="center" prop="updatedate" width="100">
+      <el-table-column label="确认人2" align="center" prop="confirm2" :show-overflow-tooltip="true"
+                       width="150">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+          <span>{{ userFormat(scope.row.confirm2) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>
+      <!--<el-table-column label="确认时间" align="center" prop="confirmationDate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="创建时间" align="center" prop="createdate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="修改时间" align="center" prop="updatedate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>-->
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
-      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width" v-if="isApprove==0">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -232,69 +322,87 @@
     <!-- 添加或修改静电接地,跨接对话框 -->
     <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="从表id" prop="subId">
-          <el-input v-model="form.subId" placeholder="请输入从表id" />
-        </el-form-item>
-        <el-form-item label="审批id" prop="approveId">
-          <el-input v-model="form.approveId" placeholder="请输入审批id" />
-        </el-form-item>
+        <!--<el-form-item label="从表id" prop="subId">-->
+          <!--<el-input v-model="form.subId" placeholder="请输入从表id" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="审批id" prop="approveId">-->
+          <!--<el-input v-model="form.approveId" placeholder="请输入审批id" />-->
+        <!--</el-form-item>-->
         <el-form-item label="检查内容">
-          <editor v-model="form.checkContent" :min-height="192"/>
+          <el-input type="textarea" v-model="form.checkContent" :min-height="192"/>
         </el-form-item>
         <el-form-item label="检查结果" prop="checkResult">
           <el-input v-model="form.checkResult" placeholder="请输入检查结果" />
         </el-form-item>
-        <el-form-item label="检查结果异常说明" prop="checkDes">
-          <el-input v-model="form.checkDes" placeholder="请输入检查结果异常说明" />
+        <!--<el-form-item label="检查结果异常说明" prop="checkDes">-->
+          <!--<el-input v-model="form.checkDes" placeholder="请输入检查结果异常说明" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="整改结果" prop="changeResult">-->
+          <!--<el-input v-model="form.changeResult" placeholder="请输入整改结果" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="检查人员" prop="confirm">-->
+          <!--<el-input v-model="form.confirm" placeholder="请输入检查人员" />-->
+        <!--</el-form-item>-->
+        <el-form-item label="确认人1" prop="confirm1">
+          <el-select v-model="form.confirm1" clearable filterable style="width: 100%;"
+                     placeholder="请选择确认人1">
+            <el-option v-for="user in userOptions"
+                       :label="user.nickName"
+                       :value="user.userId+''"
+                       :key="user.userId"/>
+          </el-select>
         </el-form-item>
-        <el-form-item label="整改结果" prop="changeResult">
-          <el-input v-model="form.changeResult" placeholder="请输入整改结果" />
+        <el-form-item label="确认人2" prop="confirm2">
+          <el-select v-model="form.confirm2" clearable filterable style="width: 100%;"
+                     placeholder="请选择确认人2">
+            <el-option v-for="user in userOptions"
+                       :label="user.nickName"
+                       :value="user.userId+''"
+                       :key="user.userId"/>
+          </el-select>
         </el-form-item>
-        <el-form-item label="检查人员" prop="confirm">
-          <el-input v-model="form.confirm" placeholder="请输入检查人员" />
-        </el-form-item>
-        <el-form-item label="检查时间" prop="confirmationDate">
+        <el-form-item label="确认时间" prop="confirmationDate">
           <el-date-picker clearable size="small" style="width: 200px"
             v-model="form.confirmationDate"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择检查时间">
-          </el-date-picker>
-        </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 size="small" style="width: 200px"
-            v-model="form.createdate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择创建时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="修改人" prop="updaterCode">
-          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
-        </el-form-item>
-        <el-form-item label="修改时间" prop="updatedate">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.updatedate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择修改时间">
+            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-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 size="small" style="width: 200px"-->
+            <!--v-model="form.createdate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择创建时间">-->
+          <!--</el-date-picker>-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="修改人" prop="updaterCode">-->
+          <!--<el-input v-model="form.updaterCode" placeholder="请输入修改人" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="修改时间" prop="updatedate">-->
+          <!--<el-date-picker clearable size="small" style="width: 200px"-->
+            <!--v-model="form.updatedate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择修改时间">-->
+          <!--</el-date-picker>-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="部门编号" prop="deptId">-->
+          <!--<el-input v-model="form.deptId" placeholder="请输入部门编号" />-->
+        <!--</el-form-item>-->
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>
-          <el-form-item label="归属部门" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
-          </el-form-item>
+          <!--<el-form-item label="归属部门" prop="deptId">-->
+              <!--<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />-->
+          <!--</el-form-item>-->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -335,12 +443,14 @@
 </template>
 
 <script>
-import { listFranklinism, getFranklinism, delFranklinism, addFranklinism, updateFranklinism, exportFranklinism, importTemplate} from "@/api/pssr/franklinism";
+import { listFranklinism, getFranklinism, delFranklinism, addFranklinism, updateFranklinism, exportFranklinism, importTemplate, handleConfirmFranklinism, handleTurnDownFranklinism } from "@/api/pssr/franklinism";
 import { treeselect } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import Editor from '@/components/Editor';
+import {listUserNoPage} from "@/api/system/user";
+import {doApprove} from "@/api/pssr/approve";
 
 export default {
   dicts:['pssr_approve_status'],
@@ -359,6 +469,7 @@ export default {
   },
   data() {
     return {
+      userOptions: [],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -418,6 +529,8 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        confirm1: [{required: true, message: "人员不可为空", trigger: "blur"}],
+        confirm2: [{required: true, message: "人员不可为空", trigger: "blur"}],
       }
     };
   },
@@ -434,6 +547,9 @@ export default {
       })
     this.getList();
     this.getTreeselect();
+    listUserNoPage({}).then(res => {
+      this.userOptions = res.data
+    });
   },
   methods: {
     /** 查询静电接地,跨接列表 */
@@ -583,7 +699,52 @@ export default {
       // 提交上传文件
       submitFileForm() {
           this.$refs.upload.submit();
+      },
+    /** 确认按钮操作*/
+    handleApprove() {
+      doApprove(this.subId).then(res => {
+        this.msgSuccess("已发起确认流程");
+      })
+    },
+    handleConfirmApprove() {
+      let data = {
+        ids: this.ids,
+        subId: this.subId,
+        taskType: this.isApprove
       }
+      handleConfirmFranklinism(data).then(res => {
+        this.msgSuccess("确认成功");
+        this.getList()
+        this.$emit('refreshHisList');
+      })
+    },
+    handleTurnDown(val) {
+      this.$prompt('请输入驳回原因', '提示', {
+        confirmButtonText: '确认驳回',
+        cancelButtonText: '取消',
+      }).then(({value}) => {
+        let data = {
+          ids: this.ids,
+          subId: this.subId,
+          remarks: value
+        }
+        handleTurnDownFranklinism(data).then(res => {
+          this.msgSuccess("驳回成功");
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '取消驳回'
+        });
+      });
+    },
+    userFormat(userId) {
+      for (let item of this.userOptions) {
+        if (item.userId == userId) {
+          return item.nickName
+        }
+      }
+    },
   }
 };
 </script>

+ 283 - 131
ui/src/views/pssr/gasdetector/index.vue

@@ -1,24 +1,24 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="内容表id" prop="subId">
-        <el-input
-          v-model="queryParams.subId"
-          placeholder="请输入内容表id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="审批id" prop="approveId">
-        <el-input
-          v-model="queryParams.approveId"
-          placeholder="请输入审批id"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+      <!--<el-form-item label="内容表id" prop="subId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.subId"-->
+          <!--placeholder="请输入内容表id"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="审批id" prop="approveId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.approveId"-->
+          <!--placeholder="请输入审批id"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
       <el-form-item label="检测器位号" prop="devNo">
         <el-input
           v-model="queryParams.devNo"
@@ -55,75 +55,93 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="仪表检查人" prop="meterChecker">
-        <el-input
-          v-model="queryParams.meterChecker"
-          placeholder="请输入仪表检查人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="工艺确认人" prop="processValidator">
-        <el-input
-          v-model="queryParams.processValidator"
-          placeholder="请输入工艺确认人"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="检查时间" prop="confirmationDate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.confirmationDate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择检查时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="创建人" prop="createrCode">
+      <!--<el-form-item label="仪表检查人" prop="meterChecker">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.meterChecker"-->
+          <!--placeholder="请输入仪表检查人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="工艺确认人" prop="processValidator">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.processValidator"-->
+          <!--placeholder="请输入工艺确认人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <el-form-item label="确认人1" prop="confirm1">
         <el-input
-          v-model="queryParams.createrCode"
-          placeholder="请输入创建人"
+          v-model="queryParams.confirm1"
+          placeholder="请输入确认人1"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="创建时间" prop="createdate">
-        <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.createdate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择创建时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="修改人" prop="updaterCode">
+      <el-form-item label="确认人2" prop="confirm2">
         <el-input
-          v-model="queryParams.updaterCode"
-          placeholder="请输入修改人"
+          v-model="queryParams.confirm2"
+          placeholder="请输入确认人2"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="修改时间" prop="updatedate">
+      <el-form-item label="确认时间" prop="confirmationDate">
         <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.updatedate"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="选择修改时间">
+                        v-model="queryParams.confirmationDate"
+                        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
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+      <!--<el-form-item label="创建人" prop="createrCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.createrCode"-->
+          <!--placeholder="请输入创建人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="创建时间" prop="createdate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.createdate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择创建时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改人" prop="updaterCode">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.updaterCode"-->
+          <!--placeholder="请输入修改人"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="修改时间" prop="updatedate">-->
+        <!--<el-date-picker clearable size="small" style="width: 200px"-->
+          <!--v-model="queryParams.updatedate"-->
+          <!--type="date"-->
+          <!--value-format="yyyy-MM-dd"-->
+          <!--placeholder="选择修改时间">-->
+        <!--</el-date-picker>-->
+      <!--</el-form-item>-->
+      <!--<el-form-item label="部门编号" prop="deptId">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.deptId"-->
+          <!--placeholder="请输入部门编号"-->
+          <!--clearable-->
+          <!--size="small"-->
+          <!--@keyup.enter.native="handleQuery"-->
+        <!--/>-->
+      <!--</el-form-item>-->
       <el-form-item label="备注" prop="remarks">
         <el-input
           v-model="queryParams.remarks"
@@ -147,6 +165,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['pssr:gasdetector:add']"
+          v-if="isApprove==0"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -157,6 +176,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['pssr:gasdetector:edit']"
+          v-if="isApprove==0"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -167,6 +187,7 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['pssr:gasdetector:remove']"
+          v-if="isApprove==0"
         >删除</el-button>
       </el-col>
         <el-col :span="1.5">
@@ -176,6 +197,7 @@
                     size="mini"
                     @click="handleImport"
                     v-hasPermi="['pssr:gasdetector:edit']"
+                    v-if="isApprove==0"
             >导入</el-button>
         </el-col>
       <el-col :span="1.5">
@@ -185,42 +207,101 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['pssr:gasdetector:export']"
+          v-if="isApprove==0"
         >导出</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-s-promotion"
+          size="mini"
+          @click="handleApprove"
+          v-if="isApprove==0"
+          v-hasPermi="['pssr:gasdetector:edit']"
+        >发起审批
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-check"
+          size="mini"
+          v-if="isApprove==4||isApprove==5"
+          @click="handleConfirmApprove"
+          v-hasPermi="['pssr:gasdetector:edit']"
+        >确认
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-refresh-left"
+          size="mini"
+          v-if="isApprove==2"
+          :disabled="multiple"
+          @click="handleTurnDown"
+          v-hasPermi="['pssr:gasdetector:edit']"
+        >驳回
+        </el-button>
       </el-col>
 	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
+    <div style="width: 100%;text-align: center;margin-bottom: 15px">
+      <H2>蒸汽裂解装置现场气体检测器检查确认清单</H2>
+    </div>
+
     <el-table v-loading="loading" :data="gasdetectorList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>
-      <el-table-column label="内容表id" align="center" prop="subId" :show-overflow-tooltip="true"/>
-      <el-table-column label="审批id" align="center" prop="approveId" :show-overflow-tooltip="true"/>
+      <!--<el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="内容表id" align="center" prop="subId" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="审批id" align="center" prop="approveId" :show-overflow-tooltip="true"/>-->
+      <el-table-column label="审批状态" align="center" prop="approveStatus" :show-overflow-tooltip="true" width="100">
+      <template slot-scope="scope">
+        <el-tag v-if="scope.row.approveStatus==0">未审批</el-tag>
+        <el-tag v-if="scope.row.approveStatus==1" type="warning">待确认</el-tag>
+        <el-tag v-if="scope.row.approveStatus==3" type="success">已确认1</el-tag>
+        <el-tag v-if="scope.row.approveStatus==2" type="success">已确认2</el-tag>
+      </template>
+    </el-table-column>
       <el-table-column label="检测器位号" align="center" prop="devNo" :show-overflow-tooltip="true"/>
       <el-table-column label="外观检查" align="center" prop="visualInspection" :show-overflow-tooltip="true"/>
       <el-table-column label="防雨罩检查" align="center" prop="raincoverCheck" :show-overflow-tooltip="true"/>
       <el-table-column label="显示检查" align="center" prop="displayCheck" :show-overflow-tooltip="true"/>
-      <el-table-column label="仪表检查人" align="center" prop="meterChecker" :show-overflow-tooltip="true"/>
-      <el-table-column label="工艺确认人" align="center" prop="processValidator" :show-overflow-tooltip="true"/>
-      <el-table-column label="检查时间" align="center" prop="confirmationDate" width="100">
+      <!--<el-table-column label="仪表检查人" align="center" prop="meterChecker" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="工艺确认人" align="center" prop="processValidator" :show-overflow-tooltip="true"/>-->
+      <el-table-column label="确认人1" align="center" prop="confirm1" :show-overflow-tooltip="true"
+                       width="150">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>
+          <span>{{ userFormat(scope.row.confirm1) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="创建时间" align="center" prop="createdate" width="100">
+      <el-table-column label="确认人2" align="center" prop="confirm2" :show-overflow-tooltip="true"
+                       width="150">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+          <span>{{ userFormat(scope.row.confirm2) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="修改时间" align="center" prop="updatedate" width="100">
+      <el-table-column label="确认时间" align="center" prop="confirmationDate" width="100">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>
+      <!--<el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="创建时间" align="center" prop="createdate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>-->
+      <!--<el-table-column label="修改时间" align="center" prop="updatedate" width="100">-->
+        <!--<template slot-scope="scope">-->
+          <!--<span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>-->
+        <!--</template>-->
+      <!--</el-table-column>-->
+      <!--<el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>-->
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
-      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width" v-if="isApprove==0">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -251,12 +332,12 @@
     <!-- 添加或修改气体检测器对话框 -->
     <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="内容表id" prop="subId">
-          <el-input v-model="form.subId" placeholder="请输入内容表id" />
-        </el-form-item>
-        <el-form-item label="审批id" prop="approveId">
-          <el-input v-model="form.approveId" placeholder="请输入审批id" />
-        </el-form-item>
+        <!--<el-form-item label="内容表id" prop="subId">-->
+          <!--<el-input v-model="form.subId" placeholder="请输入内容表id" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="审批id" prop="approveId">-->
+          <!--<el-input v-model="form.approveId" placeholder="请输入审批id" />-->
+        <!--</el-form-item>-->
         <el-form-item label="检测器位号" prop="devNo">
           <el-input v-model="form.devNo" placeholder="请输入检测器位号" />
         </el-form-item>
@@ -269,54 +350,72 @@
         <el-form-item label="显示检查" prop="displayCheck">
           <el-input v-model="form.displayCheck" placeholder="请输入显示检查" />
         </el-form-item>
-        <el-form-item label="仪表检查人" prop="meterChecker">
-          <el-input v-model="form.meterChecker" placeholder="请输入仪表检查人" />
+        <!--<el-form-item label="仪表检查人" prop="meterChecker">-->
+          <!--<el-input v-model="form.meterChecker" placeholder="请输入仪表检查人" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="工艺确认人" prop="processValidator">-->
+          <!--<el-input v-model="form.processValidator" placeholder="请输入工艺确认人" />-->
+        <!--</el-form-item>-->
+        <el-form-item label="确认人1" prop="confirm1">
+          <el-select v-model="form.confirm1" clearable filterable style="width: 100%;"
+                     placeholder="请选择确认人1">
+            <el-option v-for="user in userOptions"
+                       :label="user.nickName"
+                       :value="user.userId+''"
+                       :key="user.userId"/>
+          </el-select>
         </el-form-item>
-        <el-form-item label="工艺确认人" prop="processValidator">
-          <el-input v-model="form.processValidator" placeholder="请输入工艺确认人" />
+        <el-form-item label="确认人2" prop="confirm2">
+          <el-select v-model="form.confirm2" clearable filterable style="width: 100%;"
+                     placeholder="请选择确认人2">
+            <el-option v-for="user in userOptions"
+                       :label="user.nickName"
+                       :value="user.userId+''"
+                       :key="user.userId"/>
+          </el-select>
         </el-form-item>
-        <el-form-item label="检查时间" prop="confirmationDate">
+        <el-form-item label="确认时间" prop="confirmationDate">
           <el-date-picker clearable size="small" style="width: 200px"
             v-model="form.confirmationDate"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择检查时间">
+            placeholder="选择确认时间">
           </el-date-picker>
         </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 size="small" style="width: 200px"
-            v-model="form.createdate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择创建时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="修改人" prop="updaterCode">
-          <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
-        </el-form-item>
-        <el-form-item label="修改时间" prop="updatedate">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.updatedate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择修改时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="部门编号" prop="deptId">
-          <el-input v-model="form.deptId" placeholder="请输入部门编号" />
-        </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 size="small" style="width: 200px"-->
+            <!--v-model="form.createdate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择创建时间">-->
+          <!--</el-date-picker>-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="修改人" prop="updaterCode">-->
+          <!--<el-input v-model="form.updaterCode" placeholder="请输入修改人" />-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="修改时间" prop="updatedate">-->
+          <!--<el-date-picker clearable size="small" style="width: 200px"-->
+            <!--v-model="form.updatedate"-->
+            <!--type="date"-->
+            <!--value-format="yyyy-MM-dd"-->
+            <!--placeholder="选择修改时间">-->
+          <!--</el-date-picker>-->
+        <!--</el-form-item>-->
+        <!--<el-form-item label="部门编号" prop="deptId">-->
+          <!--<el-input v-model="form.deptId" placeholder="请输入部门编号" />-->
+        <!--</el-form-item>-->
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>
-          <el-form-item label="归属部门" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
-          </el-form-item>
+          <!--<el-form-item label="归属部门" prop="deptId">-->
+              <!--<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />-->
+          <!--</el-form-item>-->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -357,11 +456,13 @@
 </template>
 
 <script>
-import { listGasdetector, getGasdetector, delGasdetector, addGasdetector, updateGasdetector, exportGasdetector, importTemplate} from "@/api/pssr/gasdetector";
+import { listGasdetector, getGasdetector, delGasdetector, addGasdetector, updateGasdetector, exportGasdetector, importTemplate, handleConfirmGasdetector, handleTurnDownGasdetector } from "@/api/pssr/gasdetector";
 import { treeselect } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {listUserNoPage} from "@/api/system/user";
+import {doApprove} from "@/api/pssr/approve";
 
 export default {
   dicts:['pssr_approve_status'],
@@ -379,6 +480,7 @@ export default {
   },
   data() {
     return {
+      userOptions: [],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -439,6 +541,8 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        confirm1: [{required: true, message: "人员不可为空", trigger: "blur"}],
+        confirm2: [{required: true, message: "人员不可为空", trigger: "blur"}],
       }
     };
   },
@@ -455,6 +559,9 @@ export default {
       })
     this.getList();
     this.getTreeselect();
+    listUserNoPage({}).then(res => {
+      this.userOptions = res.data
+    });
   },
   methods: {
     /** 查询气体检测器列表 */
@@ -605,7 +712,52 @@ export default {
       // 提交上传文件
       submitFileForm() {
           this.$refs.upload.submit();
+      },
+    /** 确认按钮操作*/
+    handleApprove() {
+      doApprove(this.subId).then(res => {
+        this.msgSuccess("已发起确认流程");
+      })
+    },
+    handleConfirmApprove() {
+      let data = {
+        ids: this.ids,
+        subId: this.subId,
+        taskType: this.isApprove
+      }
+      handleConfirmGasdetector(data).then(res => {
+        this.msgSuccess("确认成功");
+        this.getList()
+        this.$emit('refreshHisList');
+      })
+    },
+    handleTurnDown(val) {
+      this.$prompt('请输入驳回原因', '提示', {
+        confirmButtonText: '确认驳回',
+        cancelButtonText: '取消',
+      }).then(({value}) => {
+        let data = {
+          ids: this.ids,
+          subId: this.subId,
+          remarks: value
+        }
+        handleTurnDownGasdetector(data).then(res => {
+          this.msgSuccess("驳回成功");
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '取消驳回'
+        });
+      });
+    },
+    userFormat(userId) {
+      for (let item of this.userOptions) {
+        if (item.userId == userId) {
+          return item.nickName
+        }
       }
+    },
   }
 };
 </script>