wangggziwen 7 mesiacov pred
rodič
commit
18d171dbe6

+ 61 - 0
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrApproveController.java

@@ -151,6 +151,9 @@ public class TPssrApproveController extends BaseController {
     @Autowired
     private ITPssrProtectionService tPssrProtectionService;
 
+    @Autowired
+    private ITPssrTorchvocService tPssrTorchvocService;
+
     /**
      * 查询pssr审批管理列表
      */
@@ -271,6 +274,7 @@ public class TPssrApproveController extends BaseController {
                 doGygcApprove(tPssrSubcontent);
                 break;
             case "hbss"://环保设施
+                doHbssApprove(tPssrSubcontent);
                 break;
             case "yfl"://原辅料
                 doYflApprove(tPssrSubcontent);
@@ -1267,6 +1271,63 @@ public class TPssrApproveController extends BaseController {
         }
     }
 
+    // 环保设施流程发起申请
+    public void doHbssApprove(TPssrSubcontent sub) {
+        String userId = getUserId().toString();
+        //修改状态
+        TPssrTorchvoc tPssrTorchvoc = new TPssrTorchvoc();
+        tPssrTorchvoc.setApproveStatus(0L);
+        tPssrTorchvoc.setSubId(sub.getId());
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrTorchvoc item : tPssrTorchvocService.selectTPssrTorchvocList(tPssrTorchvoc)) {
+            item.setApproveStatus(1L);
+            item.setUpdatedate(new Date());
+            item.setUpdaterCode(userId);
+            tPssrTorchvocService.updateTPssrTorchvoc(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");
+
+            tPssrTorchvoc = new TPssrTorchvoc();
+            tPssrTorchvoc.setApproveStatus(1L);
+            tPssrTorchvoc.setSubId(sub.getId());
+            for (TPssrTorchvoc item : tPssrTorchvocService.selectTPssrTorchvocList(tPssrTorchvoc)) {
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm2());
+            }
+
+            pssr2confirm(approve, new ArrayList<>(installer), new ArrayList<>(remover), sub.getConfirm());
+        }
+    }
+
     // 支吊架流程发起申请
     public void doZdjApprove(TPssrSubcontent sub) {
         String userId = getUserId().toString();

+ 158 - 1
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrTorchvocController.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.TPssrTorchvoc;
+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 TPssrTorchvocController extends BaseController
     @Autowired
     private ITPssrTorchvocService tPssrTorchvocService;
 
+    @Autowired
+    private ITPssrApproveService tPssrApproveService;
+
+    @Autowired
+    private ITPssrSubcontentService tPssrSubcontentService;
+
     /**
      * 查询火炬,VOC系统列表
      */
@@ -76,6 +92,7 @@ public class TPssrTorchvocController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TPssrTorchvoc tPssrTorchvoc)
     {
+        tPssrTorchvoc.setApproveStatus(0L);
         return toAjax(tPssrTorchvocService.insertTPssrTorchvoc(tPssrTorchvoc));
     }
 
@@ -100,4 +117,144 @@ public class TPssrTorchvocController extends BaseController
     {
         return toAjax(tPssrTorchvocService.deleteTPssrTorchvocByIds(ids));
     }
+
+
+    /**
+     * 确认火炬,VOC系统
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:torchvoc:edit')")
+    @Log(title = "火炬,VOC系统", businessType = BusinessType.UPDATE)
+    @PutMapping("/confirmTorchvoc")
+    public AjaxResult Torchvoc(@RequestBody TPssrTorchvoc tPssrTorchvoc) {
+        long queryStatus = 0;
+        long approveStatus = 0;
+        Date date = null;
+        if (tPssrTorchvoc.getTaskType() == 4) {
+            //拆锁确认
+            queryStatus = 1;
+            approveStatus = 3;
+            date = new Date();
+        } else if (tPssrTorchvoc.getTaskType() == 5) {
+            //上锁确认
+            queryStatus = 3;
+            approveStatus = 2;
+            date = new Date();
+        }
+        // 修改状态
+        if (tPssrTorchvoc.getIds() != null && tPssrTorchvoc.getIds().length > 0) {
+            for (Long id : tPssrTorchvoc.getIds()) {
+                TPssrTorchvoc item = tPssrTorchvocService.selectTPssrTorchvocById(id);
+                item.setApproveStatus(approveStatus);
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                tPssrTorchvocService.updateTPssrTorchvoc(item);
+            }
+        } else {
+            TPssrTorchvoc lock = new TPssrTorchvoc();
+            lock.setSubId(tPssrTorchvoc.getSubId());
+            lock.setApproveStatus(queryStatus);
+            for (TPssrTorchvoc item : tPssrTorchvocService.selectTPssrTorchvocList(lock)) {
+                if (item.getConfirmationDate()==null && queryStatus==3) {
+                    item.setConfirmationDate(date);
+                }
+                item.setApproveStatus(approveStatus);
+                tPssrTorchvocService.updateTPssrTorchvoc(item);
+            }
+        }
+        //查询当前待审批的确认人
+        TPssrTorchvoc entity = new TPssrTorchvoc();
+        entity.setSubId(tPssrTorchvoc.getSubId());
+        entity.setApproveStatus(queryStatus);
+        for (TPssrTorchvoc item : tPssrTorchvocService.selectTPssrTorchvocList(entity)) {
+            if (tPssrTorchvoc.getTaskType() == 4) {
+                if (item.getConfirm1().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            } else if (tPssrTorchvoc.getTaskType() == 5) {
+                if (item.getConfirm2().equals(getUserId().toString())) {
+                    return AjaxResult.success();
+                }
+            }
+        }
+
+        //无待审批任务结束当前用户流程
+        TPssrApprove approve = new TPssrApprove();
+        approve.setSubId(tPssrTorchvoc.getSubId());
+        // 因为流程关系所以approve一定会有且只有一条数据
+        TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveList(approve).get(0);
+        TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());
+        return AjaxResult.success();
+
+    }
+
+    /**
+     * 驳回火炬,VOC系统
+     */
+    @PutMapping("/turnDownTorchvoc")
+    public AjaxResult turnDownTorchvoc(@RequestBody TPssrTorchvoc tPssrTorchvoc) {
+        if (tPssrTorchvoc.getIds() != null) {
+            String userId = getUserId().toString();
+            // 修改已选择数据的状态
+            for (Long id : tPssrTorchvoc.getIds()) {
+                TPssrTorchvoc blind = new TPssrTorchvoc();
+                blind.setId(id);
+                blind.setApproveStatus(1L);
+                blind.setUpdatedate(new Date());
+                blind.setUpdaterCode(getUserId().toString());
+                tPssrTorchvocService.updateTPssrTorchvoc(blind);
+            }
+            // 查询当前流程
+            TPssrApprove approve = tPssrApproveService.selectTPssrApproveBySubId(tPssrTorchvoc.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();
+
+            // 驳回 查询所有待审批的人员
+            TPssrTorchvoc blind = new TPssrTorchvoc();
+            blind.setSubId(tPssrTorchvoc.getSubId());
+            blind.setApproveStatus(1L);
+            Set<String> installer = new HashSet<>();
+            Set<String> remover = new HashSet<>();
+            for (TPssrTorchvoc item : tPssrTorchvocService.selectTPssrTorchvocList(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(), "驳回至拆除;" + tPssrTorchvoc.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/TPssrTorchvoc.java

@@ -92,6 +92,50 @@ public class TPssrTorchvoc 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/TPssrTorchvocMapper.xml

@@ -22,10 +22,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="selectTPssrTorchvocVo">
-        select d.id, d.sub_id, d.approve_id, d.torchvoc_type, d.content, d.procedure_status, 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_torchvoc d
+        select d.id, d.confirm1, d.confirm2, d.sub_id, d.approve_id, d.torchvoc_type, d.content, d.procedure_status, 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_torchvoc d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -46,6 +48,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>
         <!-- 数据范围过滤 -->
@@ -79,6 +83,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>
@@ -97,6 +103,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>
 
@@ -118,6 +126,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/torchvoc.js

@@ -1,5 +1,23 @@
 import request from '@/utils/request'
 
+// 确认火炬,VOC系统
+export function handleConfirmTorchvoc(data) {
+  return request({
+    url: '/pssr/torchvoc/confirmTorchvoc',
+    method: 'put',
+    data: data
+  })
+}
+
+// 驳回火炬,VOC系统
+export function handleTurnDownTorchvoc(data) {
+  return request({
+    url: '/pssr/torchvoc/turnDownTorchvoc',
+    method: 'put',
+    data: data
+  })
+}
+
 // 查询火炬,VOC系统列表
 export function listTorchvoc(query) {
   return request({
@@ -50,4 +68,4 @@ export function exportTorchvoc(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 8 - 1
ui/src/views/pssr/subitem/index.vue

@@ -83,7 +83,14 @@
       <patrol :sub-id="Number(si)" :is-approve="Number(isApprove)" @refreshHisList="refreshHisList"/>
     </div>
     <div v-if="sn=='hbss'">
-      <torchvoc :sub-id="Number(si)" :is-approve="Number(isApprove)" @refreshHisList="refreshHisList"/>
+      <el-tabs v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane label="火炬" name="first">
+          <torchvoc :sub-id="Number(si)" :is-approve="Number(isApprove)" :torchvocType="1" @refreshHisList="refreshHisList"/>
+        </el-tab-pane>
+        <el-tab-pane label="VOC" name="second">
+          <torchvoc :sub-id="Number(si)" :is-approve="Number(isApprove)" :torchvocType="2" @refreshHisList="refreshHisList"/>
+        </el-tab-pane>
+      </el-tabs>
     </div>
     <div v-if="sn=='bxsjcy'">
       <patrol :sub-id="Number(si)" :is-approve="Number(isApprove)" @refreshHisList="refreshHisList"/>

+ 281 - 125
ui/src/views/pssr/torchvoc/index.vue

@@ -1,94 +1,116 @@
 <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="torchvocType">-->
+        <!--<el-select v-model="queryParams.torchvocType" placeholder="请选择类型" clearable size="small">-->
+          <!--<el-option label="请选择字典生成" value="" />-->
+        <!--</el-select>-->
+      <!--</el-form-item>-->
+      <el-form-item label="投用步骤内容" prop="content">
         <el-input
-          v-model="queryParams.subId"
-          placeholder="请输入内容表id"
+          v-model="queryParams.content"
+          placeholder="请输入投用步骤内容"
           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="torchvocType">
-        <el-select v-model="queryParams.torchvocType" placeholder="请选择类型" clearable size="small">
-          <el-option label="请选择字典生成" value="" />
-        </el-select>
-      </el-form-item>
       <el-form-item label="步骤状态" prop="procedureStatus">
-        <el-select v-model="queryParams.procedureStatus" placeholder="请选择步骤状态" clearable size="small">
-          <el-option label="请选择字典生成" value="" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="确认人" prop="confirm">
         <el-input
-          v-model="queryParams.confirm"
-          placeholder="请输入确认人"
+          v-model="queryParams.procedureStatus"
+          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="确认人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"
+          v-model="queryParams.confirmationDate"
           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="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"
@@ -112,6 +134,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['pssr:torchvoc:add']"
+          v-if="isApprove==0"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -122,6 +145,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['pssr:torchvoc:edit']"
+          v-if="isApprove==0"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -132,6 +156,7 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['pssr:torchvoc:remove']"
+          v-if="isApprove==0"
         >删除</el-button>
       </el-col>
         <el-col :span="1.5">
@@ -141,6 +166,7 @@
                     size="mini"
                     @click="handleImport"
                     v-hasPermi="['pssr:torchvoc:edit']"
+                    v-if="isApprove==0"
             >导入</el-button>
         </el-col>
       <el-col :span="1.5">
@@ -150,40 +176,100 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['pssr:torchvoc: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:torchvoc: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:torchvoc: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:torchvoc: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 v-if="torchvocType == 1">蒸汽裂解装置火炬系统投用步骤确认清单</H2>
+      <H2 v-if="torchvocType == 2">蒸汽裂解装置VOC系统投用步骤确认清单</H2>
+    </div>
+
     <el-table v-loading="loading" :data="torchvocList" @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="类型" align="center" prop="torchvocType" :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="torchvocType" :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="content" :show-overflow-tooltip="true"/>
       <el-table-column label="步骤状态" align="center" prop="procedureStatus" :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">
+      <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"
@@ -214,27 +300,40 @@
     <!-- 添加或修改火炬,VOC系统对话框 -->
     <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="类型" prop="torchvocType">
-          <el-select v-model="form.torchvocType" placeholder="请选择类型">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
-        </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="torchvocType">-->
+          <!--<el-select v-model="form.torchvocType" placeholder="请选择类型">-->
+            <!--<el-option label="请选择字典生成" value="" />-->
+          <!--</el-select>-->
+        <!--</el-form-item>-->
         <el-form-item label="投用步骤内容">
-          <editor v-model="form.content" :min-height="192"/>
+          <el-input v-model="form.content" placeholder="请输入投用步骤内容" />
         </el-form-item>
         <el-form-item label="步骤状态">
-          <el-radio-group v-model="form.procedureStatus">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
+          <el-input v-model="form.procedureStatus" 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="confirm">
-          <el-input v-model="form.confirm" 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-date-picker clearable size="small" style="width: 200px"
@@ -244,40 +343,40 @@
             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>
@@ -318,12 +417,14 @@
 </template>
 
 <script>
-import { listTorchvoc, getTorchvoc, delTorchvoc, addTorchvoc, updateTorchvoc, exportTorchvoc, importTemplate} from "@/api/pssr/torchvoc";
+import { listTorchvoc, getTorchvoc, delTorchvoc, addTorchvoc, updateTorchvoc, exportTorchvoc, importTemplate, handleConfirmTorchvoc, handleTurnDownTorchvoc } from "@/api/pssr/torchvoc";
 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'],
@@ -339,9 +440,14 @@ export default {
       type: Number,
       default: 0
     },
+    torchvocType: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {
+      userOptions: [],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -384,7 +490,7 @@ export default {
         pageSize: 20,
         subId: this.subId,
         approveId: null,
-        torchvocType: null,
+        torchvocType: this.torchvocType,
         content: null,
         procedureStatus: null,
         confirm: null,
@@ -400,6 +506,8 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        confirm1: [{required: true, message: "人员不可为空", trigger: "blur"}],
+        confirm2: [{required: true, message: "人员不可为空", trigger: "blur"}],
       }
     };
   },
@@ -416,6 +524,9 @@ export default {
       })
     this.getList();
     this.getTreeselect();
+    listUserNoPage({}).then(res => {
+      this.userOptions = res.data
+    });
   },
   methods: {
     /** 查询火炬,VOC系统列表 */
@@ -444,9 +555,9 @@ export default {
         id: null,
         subId: this.subId,
         approveId: null,
-        torchvocType: null,
+        torchvocType: this.torchvocType,
         content: null,
-        procedureStatus: "0",
+        procedureStatus: null,
         confirm: null,
         confirmationDate: null,
         delFlag: null,
@@ -564,7 +675,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
+      }
+      handleConfirmTorchvoc(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
+        }
+        handleTurnDownTorchvoc(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>