Forráskód Böngészése

- PSSR卫生检查
- PSSR设备清洁

wangggziwen 10 hónapja
szülő
commit
8c8d5b8ac2

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

@@ -91,6 +91,9 @@ public class TPssrApproveController extends BaseController {
     @Autowired
     private ITPssrHygieneService tPssrHygieneService;
 
+    @Autowired
+    private ITPssrCleaningService tPssrCleaningService;
+
     /**
      * 查询pssr审批管理列表
      */
@@ -176,6 +179,7 @@ public class TPssrApproveController extends BaseController {
             case "rsfh"://人身防护
                 break;
             case "sbqjd"://设备清洁度
+                doSbqjdApprove(tPssrSubcontent);
                 break;
             case "qm"://气密
                 break;
@@ -953,4 +957,91 @@ public class TPssrApproveController extends BaseController {
 
     }
 
+    // 设备清洁度流程发起申请
+    public void doSbqjdApprove(TPssrSubcontent sub) {
+        String userId = getUserId().toString();
+        //修改状态
+        TPssrCleaning tPssrCleaning = new TPssrCleaning();
+        tPssrCleaning.setApproveStatus(0L);
+        tPssrCleaning.setSubId(sub.getId());
+        Set<String> installer = new HashSet<>();
+        Set<String> remover = new HashSet<>();
+        for (TPssrCleaning item : tPssrCleaningService.selectTPssrCleaningList(tPssrCleaning)) {
+            item.setApproveStatus(1L);
+            item.setUpdatedate(new Date());
+            item.setUpdaterCode(userId);
+            tPssrCleaningService.updateTPssrCleaning(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("无运行时流程");
+            }
+
+            tPssrCleaning = new TPssrCleaning();
+            tPssrCleaning.setApproveStatus(1L);
+            tPssrCleaning.setSubId(sub.getId());
+            for (TPssrCleaning item : tPssrCleaningService.selectTPssrCleaningList(tPssrCleaning)) {
+                // 安装人员
+                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);
+        }
+
+    }
+
 }

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

+ 20 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrCleaning.java

@@ -104,6 +104,26 @@ public class TPssrCleaning extends BaseEntity
     @Excel(name = "审批状态")
     private Long approveStatus;
 
+    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 void setId(Long id)
     {
         this.id = id;

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

@@ -1,5 +1,23 @@
 import request from '@/utils/request'
 
+// 确认设备清洁
+export function handleConfirmCleaning(data) {
+  return request({
+    url: '/pssr/cleaning/confirmCleaning',
+    method: 'put',
+    data: data
+  })
+}
+
+// 驳回设备清洁
+export function handleTurnDownCleaning(data) {
+  return request({
+    url: '/pssr/cleaning/turnDownCleaning',
+    method: 'put',
+    data: data
+  })
+}
+
 // 查询设备清洁列表
 export function listCleaning(query) {
   return request({
@@ -50,4 +68,4 @@ export function exportCleaning(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 300 - 122
ui/src/views/pssr/cleaning/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"
@@ -46,6 +46,15 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="检查内容" prop="checkContent">
+        <el-input
+          v-model="queryParams.checkContent"
+          placeholder="请输入检查内容"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item label="检查结果" prop="checkResult">
         <el-input
           v-model="queryParams.checkResult"
@@ -81,49 +90,49 @@
           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"
@@ -147,6 +156,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['pssr:cleaning:add']"
+          v-if="isApprove==0"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -157,6 +167,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['pssr:cleaning:edit']"
+          v-if="isApprove==0"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -167,6 +178,7 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['pssr:cleaning:remove']"
+          v-if="isApprove==0"
         >删除</el-button>
       </el-col>
         <el-col :span="1.5">
@@ -176,6 +188,7 @@
                     size="mini"
                     @click="handleImport"
                     v-hasPermi="['pssr:cleaning:edit']"
+                    v-if="isApprove==0"
             >导入</el-button>
         </el-col>
       <el-col :span="1.5">
@@ -185,43 +198,99 @@
           size="mini"
           @click="handleExport"
           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 :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-check"
+          size="mini"
+          v-if="isApprove==4||isApprove==5"
+          @click="handleConfirmApprove"
+          v-hasPermi="['pssr:cleaning: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:cleaning: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="cleaningList" @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="unit" :show-overflow-tooltip="true"/>
-      <el-table-column label="设备位号" align="center" prop="devNo" :show-overflow-tooltip="true"/>
-      <el-table-column label="编号" align="center" prop="serialNumber" :show-overflow-tooltip="true"/>
-      <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="确认人1" align="center" prop="confirm1" :show-overflow-tooltip="true"/>
-      <el-table-column label="确认人2" align="center" prop="confirm2" :show-overflow-tooltip="true"/>
-      <el-table-column label="确认时间" align="center" prop="confirmationDate" width="100">
+      <!--<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">
-          <span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>
+          <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="createrCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="创建时间" align="center" prop="createdate" width="100">
+      <el-table-column label="单元号" align="center" prop="unit" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="设备位号" align="center" prop="devNo" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="编号" align="center" prop="serialNumber" :show-overflow-tooltip="true" width="60"/>
+      <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="确认人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"
@@ -252,12 +321,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>
@@ -268,16 +337,28 @@
           <el-input v-model="form.serialNumber" placeholder="请输入编号" />
         </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="确认人1" prop="confirm1">
-          <el-input v-model="form.confirm1" placeholder="请输入确认人1" />
+          <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-input v-model="form.confirm2" placeholder="请输入确认人2" />
+          <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"
@@ -287,40 +368,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>
@@ -361,12 +442,14 @@
 </template>
 
 <script>
-import { listCleaning, getCleaning, delCleaning, addCleaning, updateCleaning, exportCleaning, importTemplate} from "@/api/pssr/cleaning";
+import { listCleaning, getCleaning, delCleaning, addCleaning, updateCleaning, exportCleaning, importTemplate, handleConfirmCleaning, handleTurnDownCleaning } from "@/api/pssr/cleaning";
 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'],
@@ -385,6 +468,7 @@ export default {
   },
   data() {
     return {
+      userOptions: [],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -446,6 +530,8 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        confirm1: [{required: true, message: "人员不可为空", trigger: "blur"}],
+        confirm2: [{required: true, message: "人员不可为空", trigger: "blur"}],
       }
     };
   },
@@ -462,6 +548,9 @@ export default {
       })
     this.getList();
     this.getTreeselect();
+    listUserNoPage({}).then(res => {
+      this.userOptions = res.data
+    });
   },
   methods: {
     /** 查询设备清洁列表 */
@@ -613,7 +702,96 @@ 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("驳回成功");
+        })
+      }).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}) => {
+        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
+        }
+      }
+    },
   }
 };
 </script>

+ 13 - 3
ui/src/views/pssr/hygiene/index.vue

@@ -230,8 +230,18 @@
       </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="确认人1" align="center" prop="confirm1" :show-overflow-tooltip="true"/>
-      <el-table-column label="确认人2" align="center" prop="confirm2" :show-overflow-tooltip="true"/>
+      <el-table-column label="确认人1" align="center" prop="confirm1" :show-overflow-tooltip="true"
+                       width="150">
+        <template slot-scope="scope">
+          <span>{{ userFormat(scope.row.confirm1) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="确认人2" align="center" prop="confirm2" :show-overflow-tooltip="true"
+                       width="150">
+        <template slot-scope="scope">
+          <span>{{ userFormat(scope.row.confirm2) }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="确认时间" align="center" prop="confirmationDate" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.confirmationDate, '{y}-{m}-{d}') }}</span>
@@ -251,7 +261,7 @@
       <!--</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"