Parcourir la source

- PSSR气密
- PSSR设备清洁

wangggziwen il y a 10 mois
Parent
commit
1443db3c0a

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

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

@@ -94,6 +94,9 @@ public class TPssrApproveController extends BaseController {
     @Autowired
     private ITPssrCleaningService tPssrCleaningService;
 
+    @Autowired
+    private ITPssrAirtightService tPssrAirtightService;
+
     /**
      * 查询pssr审批管理列表
      */
@@ -182,6 +185,7 @@ public class TPssrApproveController extends BaseController {
                 doSbqjdApprove(tPssrSubcontent);
                 break;
             case "qm"://气密
+                doQmApprove(tPssrSubcontent);
                 break;
             case "sksgfmzt"://锁开锁关阀门状态
                 doSksgApprove(tPssrSubcontent);
@@ -1048,4 +1052,90 @@ public class TPssrApproveController extends BaseController {
 
     }
 
+    // 气密流程发起申请
+    public void doQmApprove(TPssrSubcontent sub) {
+        String userId = getUserId().toString();
+        //修改状态
+        TPssrAirtight tPssrAirtight = new TPssrAirtight();
+        tPssrAirtight.setApproveStatus(0L);
+        tPssrAirtight.setSubId(sub.getId());
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrAirtight item : tPssrAirtightService.selectTPssrAirtightList(tPssrAirtight)) {
+            item.setApproveStatus(1L);
+            item.setUpdatedate(new Date());
+            item.setUpdaterCode(userId);
+            tPssrAirtightService.updateTPssrAirtight(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);
+
+            // 开始申请流程
+            long businessKey = approve.getApproveId();
+            //开始工作流、监听
+            Authentication.setAuthenticatedUserId(userId);//设置当前申请人
+            Map<String, Object> variables = new HashMap<>();
+            variables.put("applyUser", userId);
+            variables.put("confirmUsers1", new ArrayList<>(installer));
+            variables.put("confirmUsers2", new ArrayList<>(remover));
+            variables.put("chargePerson", sub.getConfirm());
+            //采用key来启动流程定义并设置流程变量,返回流程实例
+            ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr2confirm", String.valueOf(businessKey), variables);
+            approve.setProcessId(pi.getProcessInstanceId());
+            tPssrApproveService.updateTPssrApprove(approve);
+        } else {
+            // 已存在流程时,删除旧流程,重新发起
+            TPssrApprove approve = tPssrApproves.get(0);
+            try {
+                runtimeService.deleteProcessInstance(approve.getProcessId(), "pssr2confirm");
+                historyService.deleteHistoricProcessInstance(approve.getProcessId());
+            } catch (Exception e) {
+                logger.info("无运行时流程");
+            }
+
+            tPssrAirtight = new TPssrAirtight();
+            tPssrAirtight.setApproveStatus(1L);
+            tPssrAirtight.setSubId(sub.getId());
+            for (TPssrAirtight item : tPssrAirtightService.selectTPssrAirtightList(tPssrAirtight)) {
+                // 安装人员
+                installer.add(item.getConfirm1());
+
+                //拆除人员
+                remover.add(item.getConfirm1());
+            }
+
+            // 开始申请流程
+            long businessKey = approve.getApproveId();
+            //开始工作流、监听
+            Authentication.setAuthenticatedUserId(userId);//设置当前申请人
+            Map<String, Object> variables = new HashMap<>();
+            variables.put("applyUser", userId);
+            variables.put("confirmUsers1", new ArrayList<>(installer));
+            variables.put("confirmUsers2", new ArrayList<>(remover));
+            variables.put("chargePerson", sub.getConfirm());
+            //采用key来启动流程定义并设置流程变量,返回流程实例
+            ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr2confirm", String.valueOf(businessKey), variables);
+            approve.setProcessId(pi.getProcessInstanceId());
+            tPssrApproveService.updateTPssrApprove(approve);
+        }
+
+    }
 }

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

@@ -112,6 +112,50 @@ public class TPssrAirtight 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 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 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 void setId(Long id)
     {
         this.id = id;

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

@@ -27,10 +27,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="selectTPssrAirtightVo">
-        select d.id, d.sub_id, d.approve_id, d.unit, d.system_name, d.airtight_medium, d.airtight_pressure, d.initial_pressure, d.final_pressure, d.leakage_rate, d.standard, d.identifying_person, 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_airtight d
+        select d.id, d.confirm1, d.confirm2, d.sub_id, d.approve_id, d.unit, d.system_name, d.airtight_medium, d.airtight_pressure, d.initial_pressure, d.final_pressure, d.leakage_rate, d.standard, d.identifying_person, 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_airtight d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -56,6 +58,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>
         <!-- 数据范围过滤 -->
@@ -94,6 +98,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>
@@ -117,6 +123,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>
 
@@ -143,6 +151,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/airtight.js

@@ -1,5 +1,23 @@
 import request from '@/utils/request'
 
+// 确认气密
+export function handleConfirmAirtight(data) {
+  return request({
+    url: '/pssr/airtight/confirmAirtight',
+    method: 'put',
+    data: data
+  })
+}
+
+// 驳回气密
+export function handleTurnDownAirtight(data) {
+  return request({
+    url: '/pssr/airtight/turnDownAirtight',
+    method: 'put',
+    data: data
+  })
+}
+
 // 查询气密列表
 export function listAirtight(query) {
   return request({
@@ -50,4 +68,4 @@ export function exportAirtight(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 263 - 115
ui/src/views/pssr/airtight/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"
@@ -91,66 +91,84 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="确认人" prop="identifyingPerson">
-        <el-input
-          v-model="queryParams.identifyingPerson"
-          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="identifyingPerson">-->
+        <!--<el-input-->
+          <!--v-model="queryParams.identifyingPerson"-->
+          <!--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"
+          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"
@@ -174,6 +192,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['pssr:airtight:add']"
+          v-if="isApprove==0"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -184,6 +203,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['pssr:airtight:edit']"
+          v-if="isApprove==0"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -194,6 +214,7 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['pssr:airtight:remove']"
+          v-if="isApprove==0"
         >删除</el-button>
       </el-col>
         <el-col :span="1.5">
@@ -203,6 +224,7 @@
                     size="mini"
                     @click="handleImport"
                     v-hasPermi="['pssr:airtight:edit']"
+                    v-if="isApprove==0"
             >导入</el-button>
         </el-col>
       <el-col :span="1.5">
@@ -212,16 +234,59 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['pssr:airtight: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:airtight: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:airtight: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:airtight:edit']"
+        >驳回
+        </el-button>
       </el-col>
 	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="airtightList" @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="systemName" :show-overflow-tooltip="true"/>
       <el-table-column label="气密介质" align="center" prop="airtightMedium" :show-overflow-tooltip="true"/>
@@ -230,27 +295,39 @@
       <el-table-column label="保压终压力" align="center" prop="finalPressure" :show-overflow-tooltip="true"/>
       <el-table-column label="泄露率" align="center" prop="leakageRate" :show-overflow-tooltip="true"/>
       <el-table-column label="合格" align="center" prop="standard" :show-overflow-tooltip="true"/>
-      <el-table-column label="确认人" align="center" prop="identifyingPerson" :show-overflow-tooltip="true"/>
-      <el-table-column label="确认日期" align="center" prop="confirmationDate" width="100">
+      <!--<el-table-column label="确认人" align="center" prop="identifyingPerson" :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"
@@ -281,12 +358,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>
@@ -311,8 +388,26 @@
         <el-form-item label="合格" prop="standard">
           <el-input v-model="form.standard" placeholder="请输入合格" />
         </el-form-item>
-        <el-form-item label="确认人" prop="identifyingPerson">
-          <el-input v-model="form.identifyingPerson" placeholder="请输入确认人" />
+        <!--<el-form-item label="确认人" prop="identifyingPerson">-->
+          <!--<el-input v-model="form.identifyingPerson" 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="确认人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"
@@ -322,40 +417,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>
@@ -396,11 +491,13 @@
 </template>
 
 <script>
-import { listAirtight, getAirtight, delAirtight, addAirtight, updateAirtight, exportAirtight, importTemplate} from "@/api/pssr/airtight";
+import { listAirtight, getAirtight, delAirtight, addAirtight, updateAirtight, exportAirtight, importTemplate, handleConfirmAirtight, handleTurnDownAirtight } from "@/api/pssr/airtight";
 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'],
@@ -418,6 +515,7 @@ export default {
   },
   data() {
     return {
+      userOptions: [],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -481,6 +579,8 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        confirm1: [{required: true, message: "人员不可为空", trigger: "blur"}],
+        confirm2: [{required: true, message: "人员不可为空", trigger: "blur"}],
       }
     };
   },
@@ -497,6 +597,9 @@ export default {
       })
     this.getList();
     this.getTreeselect();
+    listUserNoPage({}).then(res => {
+      this.userOptions = res.data
+    });
   },
   methods: {
     /** 查询气密列表 */
@@ -650,7 +753,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
+      }
+      handleConfirmAirtight(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
+        }
+        handleTurnDownAirtight(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>

+ 50 - 93
ui/src/views/pssr/cleaning/index.vue

@@ -200,17 +200,18 @@
           v-hasPermi="['pssr:cleaning: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:cleaning:edit']"
-      >发起审批
-      </el-button>
-    </el-col>
+      </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:cleaning:edit']"
+        >发起审批
+        </el-button>
+      </el-col>
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -702,96 +703,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
-      }
-      handleConfirmHygiene(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
-        }
-        handleTurnDownHygiene(data).then(res => {
-          this.msgSuccess("驳回成功");
+      },
+      /** 确认按钮操作*/
+      handleApprove() {
+        doApprove(this.subId).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
-        }
-      }
-    },
-    /** 确认按钮操作*/
-    handleApprove() {
-      doApprove(this.subId).then(res => {
-        this.msgSuccess("已发起确认流程");
-      })
-    },
-    handleConfirmApprove() {
-      let data = {
-        ids: this.ids,
-        subId: this.subId,
-        taskType: this.isApprove
-      }
-      handleConfirmCleaning(data).then(res => {
-        this.msgSuccess("确认成功");
-        this.getList()
-        this.$emit('refreshHisList');
-      })
-    },
-    handleTurnDown(val) {
-      this.$prompt('请输入驳回原因', '提示', {
-        confirmButtonText: '确认驳回',
-        cancelButtonText: '取消',
-      }).then(({value}) => {
+      },
+      handleConfirmApprove() {
         let data = {
           ids: this.ids,
           subId: this.subId,
-          remarks: value
+          taskType: this.isApprove
         }
-        handleTurnDownCleaning(data).then(res => {
-          this.msgSuccess("驳回成功");
+        handleConfirmCleaning(data).then(res => {
+          this.msgSuccess("确认成功");
+          this.getList()
+          this.$emit('refreshHisList');
         })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '取消驳回'
+      },
+      handleTurnDown(val) {
+        this.$prompt('请输入驳回原因', '提示', {
+          confirmButtonText: '确认驳回',
+          cancelButtonText: '取消',
+        }).then(({value}) => {
+          let data = {
+            ids: this.ids,
+            subId: this.subId,
+            remarks: value
+          }
+          handleTurnDownCleaning(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
+      },
+      userFormat(userId) {
+        for (let item of this.userOptions) {
+          if (item.userId == userId) {
+            return item.nickName
+          }
         }
-      }
-    },
+      },
   }
 };
 </script>