瀏覽代碼

-申请单添加审批流

jiangbiao 2 年之前
父節點
當前提交
66aa226c6f

+ 115 - 1
master/src/main/java/com/ruoyi/project/apply/controller/TApplyOfflinevalveController.java

@@ -1,6 +1,7 @@
 package com.ruoyi.project.apply.controller;
 
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -9,6 +10,9 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.apply.domain.TApplyOfflinevalve;
 import com.ruoyi.project.apply.service.ITApplyOfflinevalveService;
+import com.ruoyi.project.approve.damain.DevTask;
+import com.ruoyi.project.plant.domain.TStaffmgr;
+import com.ruoyi.project.plant.service.ITStaffmgrService;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.ProcessEngines;
 import org.activiti.engine.RuntimeService;
@@ -40,6 +44,12 @@ public class TApplyOfflinevalveController extends BaseController {
     @Autowired
     private RuntimeService runtimeService;
 
+    @Autowired
+    private ITStaffmgrService tStaffmgrService;
+
+    @Autowired
+    private TaskService taskService;
+
     /**
      * 查询安全阀离线切出申请列表
      */
@@ -114,7 +124,111 @@ public class TApplyOfflinevalveController extends BaseController {
         Map<String, Object> param = new HashMap<>();
         param.put("condition", "1");
         taskService.complete(taskId, param);
-        return toAjax(1);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "安全阀离线切出申请审核处理", businessType = BusinessType.UPDATE)
+    @PutMapping("/handle")
+    public AjaxResult handle(@RequestBody DevTask devTask) {
+        TApplyOfflinevalve form = devTask.getOfflinevalve();
+        //流程审批意见
+        String symbol = "";
+        if (StringUtils.isNotEmpty(form.getRemarks())) {
+            symbol = ",";
+        } else
+            form.setRemarks("");
+        //使用任务服务完成任务(提交任务)
+        String taskId = devTask.getTaskId();
+        // 使用任务id,获取任务对象,获取流程实例id
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        //利用任务对象,获取流程实例id
+        String processInstancesId = task.getProcessInstanceId();
+        TApplyOfflinevalve tApplyOfflinevalve = tApplyOfflinevalveService.selectTApplyOfflinevalveById(form.getId());
+        if ("1".equals(devTask.getCondition())) {
+            devTask.setComment("通过" + symbol + form.getRemarks());
+            String taskName = task.getName();
+            if (taskName.contains("临时措施确认人")) {
+                taskName = "临时措施确认人";
+            } else if (taskName.contains("信息确认人")) {
+                taskName = "信息确认人";
+            }
+            form.setRemarks(tApplyOfflinevalve.getRemarks() + taskName + ":" + getNickName() + "通过" + symbol + form.getRemarks() + ";");
+        } else if ("0".equals(devTask.getCondition())) {
+            //TODO 拒绝流程
+            devTask.setComment("拒绝" + symbol + form.getRemarks());
+            form.setStatus(1L);
+            form.setApproveStatus("2");
+        } else if ("2".equals(devTask.getCondition())) {
+            //TODO 驳回流程
+            devTask.setComment("驳回" + symbol + form.getRemarks());
+        }
+        Map<String, Object> param = new HashMap<>();
+        switch (task.getName()) {
+            case "临时措施确认人1":
+            case "临时措施确认人2":
+                form.setConfirmer(getUserId().toString());
+                form.setConfirmerName(getNickName());
+                form.setTemporaryTime(new Date());
+                if ("临时措施确认人2".equals(task.getName())) {
+                    TStaffmgr tStaffmgr = new TStaffmgr();
+                    tStaffmgr.setActualposts("24,26");
+                    StringBuilder approvers = new StringBuilder();
+                    for (Map<String, Object> user : tStaffmgrService.selectUserInfoByStaffmgr(tStaffmgr)) {
+                        approvers.append(user.get("userId").toString()).append(",");
+                    }
+                    if (StringUtils.isNotEmpty(approvers.toString())) {
+                        approvers = new StringBuilder(approvers.substring(0, approvers.length() - 1));
+                    }
+                    param.put("approver", approvers.toString());
+                }
+                break;
+            case "临时措施执行人":
+                form.setExecutor(getUserId().toString());
+                form.setExecutorName(getNickName());
+                form.setExecutionTime(new Date());
+                break;
+            case "批准人":
+                form.setApprover(getUserId().toString());
+                form.setApproverName(getNickName());
+                form.setApproveTime(new Date());
+                form.setApproveStatus("2");
+                param.put("infoconfirmer", tApplyOfflinevalve.getConfirmer());
+                break;
+            case "信息确认人":
+            case "信息确认人2":
+                form.setInfoConfirmer(getUserId().toString());
+                form.setInfoConfirmerName(getNickName());
+                form.setConfirmTime(new Date());
+                if (StringUtils.isNotEmpty(tApplyOfflinevalve.getLockConfirmer1())) {
+                    form.setLockConfirmer2(getUserId().toString());
+                    form.setLockConfirmer2Name(getNickName());
+                }
+                if ("信息确认人2".equals(task.getName())) {
+                    form.setStatus(1L);
+                }
+                param.put("lockConfirmer", form.getLockConfirmer1());
+                form.setLockConfirmer1(null);
+                break;
+            case "确认人1":
+                form.setLockConfirmer1(getUserId().toString());
+                form.setLockConfirmer1Name(getNickName());
+                break;
+        }
+        if (StringUtils.isNotEmpty(tApplyOfflinevalve.getDisassembly()) && !"NA".equals(tApplyOfflinevalve.getDisassembly())) {
+            param.put("is_unlock", "1");
+        } else if (StringUtils.isNotEmpty(tApplyOfflinevalve.getDisassembly()) && "NA".equals(tApplyOfflinevalve.getDisassembly())) {
+            param.put("is_unlock", "0");
+        }
+        param.put("condition", devTask.getCondition());
+        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+        TaskService taskService = processEngine.getTaskService();
+        //认领任务
+        processEngine.getTaskService()
+                .claim(taskId, getUserId().toString());
+        taskService.addComment(taskId, processInstancesId, devTask.getComment());
+        taskService.complete(taskId, param);
+        tApplyOfflinevalveService.updateTApplyOfflinevalve(form);
+        return AjaxResult.success();
     }
 
     /**

+ 3 - 3
master/src/main/java/com/ruoyi/project/apply/domain/TApplyOfflinevalve.java

@@ -39,7 +39,7 @@ public class TApplyOfflinevalve extends BaseEntity
 
     /** 安全阀锁开是否拆解 */
     @Excel(name = "安全阀锁开是否拆解")
-    private Long disassembly;
+    private String disassembly;
 
     /** 临时措施执行人 */
     @Excel(name = "临时措施执行人")
@@ -296,12 +296,12 @@ public class TApplyOfflinevalve extends BaseEntity
     {
         return safa;
     }
-    public void setDisassembly(Long disassembly)
+    public void setDisassembly(String disassembly)
     {
         this.disassembly = disassembly;
     }
 
-    public Long getDisassembly()
+    public String getDisassembly()
     {
         return disassembly;
     }

+ 11 - 2
master/src/main/java/com/ruoyi/project/approve/damain/DevTask.java

@@ -1,13 +1,12 @@
 package com.ruoyi.project.approve.damain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.project.apply.domain.TApplyOfflinevalve;
 import com.ruoyi.project.ehs.domain.TApproveAccident;
 import com.ruoyi.project.ehs.domain.TApproveDanger;
 import com.ruoyi.project.sems.domain.TApprove;
 import com.ruoyi.project.sems.domain.TApproverFile;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
-import org.activiti.engine.task.Task;
 
 import java.util.Date;
 import java.util.List;
@@ -87,6 +86,16 @@ public class DevTask {
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date govDate;
 
+    private TApplyOfflinevalve offlinevalve;
+
+    public TApplyOfflinevalve getOfflinevalve() {
+        return offlinevalve;
+    }
+
+    public void setOfflinevalve(TApplyOfflinevalve offlinevalve) {
+        this.offlinevalve = offlinevalve;
+    }
+
     public TApproveSpecModify getApproveSpecModify() {
         return ApproveSpecModify;
     }

+ 23 - 14
master/src/main/java/com/ruoyi/project/plant/controller/TStaffmgrController.java

@@ -1,17 +1,21 @@
 package com.ruoyi.project.plant.controller;
 
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
 import com.alibaba.fastjson.JSON;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.config.RuoYiConfig;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.common.domain.DataEntity;
+import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.plant.mapper.TStaffmgrMapper;
+import com.ruoyi.project.plant.service.ITStaffmgrService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.domain.SysUser;
@@ -23,21 +27,19 @@ import com.ruoyi.project.training.service.*;
 import com.ruoyi.project.training.spec.service.ITStPlanService;
 import com.ruoyi.project.training.spec.service.ITStSuccessorService;
 import org.apache.commons.lang.StringUtils;
-import org.apache.poi.ss.usermodel.*;
-import org.springframework.security.access.prepost.PreAuthorize;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.project.plant.domain.TStaffmgr;
-import com.ruoyi.project.plant.service.ITStaffmgrService;
-import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.page.TableDataInfo;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * 人员管理Controller
@@ -91,6 +93,13 @@ public class TStaffmgrController extends BaseController
     @Autowired
     private ITStPlanService tStPlanService;
 
+    @GetMapping("/listPostStaff")
+    public AjaxResult listPostStaff(TStaffmgr tStaffmgr)
+    {
+        List<Map<String, Object>> list = tStaffmgrService.selectUserInfoByStaffmgr(tStaffmgr);
+        return AjaxResult.success(list);
+    }
+
     /**
      * 获取当前用户id
      * @return 当前用户id

+ 5 - 4
master/src/main/java/com/ruoyi/project/plant/mapper/TStaffmgrMapper.java

@@ -1,13 +1,12 @@
 package com.ruoyi.project.plant.mapper;
 
-import java.util.List;
-import java.util.Map;
-
 import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
 import com.ruoyi.project.common.domain.DataEntity;
 import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.training.spec.domain.TStSuccessor;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * 人员管理Mapper接口
@@ -129,4 +128,6 @@ public interface TStaffmgrMapper
     List<TStaffmgr> selectTStaffmgrByPost(SysUser sysUser);
 
     List<TStaffmgr> selectTMentorStaffmgrByPost(SysUser sysUser);
+
+    List<Map<String,Object>> selectUserInfoByStaffmgr(TStaffmgr tStaffmgr);
 }

+ 5 - 3
master/src/main/java/com/ruoyi/project/plant/service/ITStaffmgrService.java

@@ -1,11 +1,11 @@
 package com.ruoyi.project.plant.service;
 
-import java.util.List;
-
 import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
 import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.training.spec.domain.TStSuccessor;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * 人员管理Service接口
@@ -107,4 +107,6 @@ public interface ITStaffmgrService
     List<TStaffmgr> selectTStaffmgrByPost(SysUser sysUser);
 
     List<TStaffmgr> selectTMentorStaffmgrByPost(SysUser sysUser);
+
+    List<Map<String,Object>> selectUserInfoByStaffmgr(TStaffmgr tStaffmgr);
 }

+ 10 - 7
master/src/main/java/com/ruoyi/project/plant/service/impl/TStaffmgrServiceImpl.java

@@ -1,16 +1,14 @@
 package com.ruoyi.project.plant.service.impl;
 
-import java.util.List;
-
-import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.training.spec.domain.TStSuccessor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.project.plant.mapper.TStaffmgrMapper;
 import com.ruoyi.project.plant.domain.TStaffmgr;
+import com.ruoyi.project.plant.mapper.TStaffmgrMapper;
 import com.ruoyi.project.plant.service.ITStaffmgrService;
+import com.ruoyi.project.system.domain.SysUser;
+import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 人员管理Service业务层处理
@@ -168,4 +166,9 @@ public class TStaffmgrServiceImpl implements ITStaffmgrService
         return tStaffmgrMapper.selectTMentorStaffmgrByPost(sysUser);
     }
 
+    @Override
+    public List<Map<String,Object>> selectUserInfoByStaffmgr(TStaffmgr tStaffmgr) {
+        return tStaffmgrMapper.selectUserInfoByStaffmgr(tStaffmgr);
+    }
+
 }

+ 16 - 0
master/src/main/resources/mybatis/plant/TStaffmgrMapper.xml

@@ -59,6 +59,22 @@
         and d.DEL_FLAG!=9
     </select>
 
+    <select id="selectUserInfoByStaffmgr" parameterType="TStaffmgr" resultType="map">
+        select b.USER_ID userId,b.NICK_NAME nickName from T_STAFFMGR a
+        left join SYS_USER b on a.STAFFID=b.STAFFID
+        <where>
+            <if test="actualposts != null  and actualposts != ''">
+                and actualpost in
+                <foreach collection="actualposts.split(',')" item="item" index="index"
+                         open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            and a.DEL_FLAG=0
+        </where>
+        ${params.dataScope}
+    </select>
+
     <select id="selectTStaffmgrList" parameterType="TStaffmgr" resultMap="TStaffmgrResult">
         <include refid="selectTStaffmgrVo"/>
         Left join SYS_DICT_DATA s0 on d.UNIT = s0.DICT_VALUE and s0.DICT_TYPE ='STAFF_UNIT'

+ 19 - 18
master/src/main/resources/processes/apply/offlinevalve.bpmn

@@ -2,16 +2,16 @@
 <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
   <process id="offlinevalve" name="安全阀离线/切出申请流程" isExecutable="true">
     <startEvent id="startevent1" name="Start"></startEvent>
-    <userTask id="confirmertask1" name="临时措施确认人1" activiti:assignee="#{confirmer}"></userTask>
+    <userTask id="confirmertask1" name="临时措施确认人1" activiti:candidateUsers="#{confirmer}"></userTask>
     <userTask id="executortask" name="临时措施执行人" activiti:assignee="#{executor}"></userTask>
     <sequenceFlow id="flow1" name="通过" sourceRef="confirmertask1" targetRef="executortask">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
-    <userTask id="confirmertask2" name="临时措施确认人2" activiti:assignee="#{confirmer}"></userTask>
+    <userTask id="confirmertask2" name="临时措施确认人2" activiti:candidateUsers="#{confirmer}"></userTask>
     <sequenceFlow id="flow2" name="通过" sourceRef="executortask" targetRef="confirmertask2">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
-    <userTask id="approvertask" name="批准人" activiti:assignee="#{approver}"></userTask>
+    <userTask id="approvertask" name="批准人" activiti:candidateUsers="#{approver}"></userTask>
     <sequenceFlow id="flow3" name="通过" sourceRef="confirmertask2" targetRef="approvertask">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
@@ -20,7 +20,7 @@
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
     <endEvent id="endevent1" name="End"></endEvent>
-    <userTask id="infoconfirmertask2" name="信息确认人" activiti:assignee="#{infoconfirmer}"></userTask>
+    <userTask id="infoconfirmertask2" name="信息确认人2" activiti:assignee="#{infoconfirmer}"></userTask>
     <sequenceFlow id="flow7" name="NA" sourceRef="isunlock" targetRef="infoconfirmertask2">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${is_unlock == 0}]]></conditionExpression>
     </sequenceFlow>
@@ -56,6 +56,7 @@
     <sequenceFlow id="flow18" name="拒绝" sourceRef="confirmertask1" targetRef="endevent2">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
     </sequenceFlow>
+    <association id="association1" sourceRef="textannotation1" targetRef="infoconfirmertask2"></association>
   </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_offlinevalve">
     <bpmndi:BPMNPlane bpmnElement="offlinevalve" id="BPMNPlane_offlinevalve">
@@ -99,56 +100,56 @@
         <omgdi:waypoint x="417.0" y="225.0"></omgdi:waypoint>
         <omgdi:waypoint x="417.0" y="260.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="417.0" y="225.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="417.0" y="225.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
         <omgdi:waypoint x="417.0" y="315.0"></omgdi:waypoint>
         <omgdi:waypoint x="417.0" y="350.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="417.0" y="315.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="417.0" y="315.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
         <omgdi:waypoint x="417.0" y="405.0"></omgdi:waypoint>
         <omgdi:waypoint x="417.0" y="440.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="417.0" y="405.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="417.0" y="405.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
         <omgdi:waypoint x="417.0" y="495.0"></omgdi:waypoint>
         <omgdi:waypoint x="417.0" y="520.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="417.0" y="495.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="417.0" y="495.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
         <omgdi:waypoint x="417.0" y="560.0"></omgdi:waypoint>
         <omgdi:waypoint x="416.0" y="600.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="421.0" y="568.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="15.0" x="421.0" y="568.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
         <omgdi:waypoint x="416.0" y="655.0"></omgdi:waypoint>
         <omgdi:waypoint x="416.0" y="710.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="416.0" y="655.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="416.0" y="655.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
         <omgdi:waypoint x="397.0" y="540.0"></omgdi:waypoint>
         <omgdi:waypoint x="355.0" y="540.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="368.0" y="547.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="27.0" x="368.0" y="547.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
         <omgdi:waypoint x="250.0" y="540.0"></omgdi:waypoint>
         <omgdi:waypoint x="215.0" y="540.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="221.0" y="547.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="221.0" y="547.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
@@ -156,7 +157,7 @@
         <omgdi:waypoint x="161.0" y="627.0"></omgdi:waypoint>
         <omgdi:waypoint x="364.0" y="627.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="162.0" y="568.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="162.0" y="568.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
@@ -167,7 +168,7 @@
         <omgdi:waypoint x="417.0" y="135.0"></omgdi:waypoint>
         <omgdi:waypoint x="417.0" y="170.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="417.0" y="135.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="417.0" y="135.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
@@ -176,7 +177,7 @@
         <omgdi:waypoint x="538.0" y="107.0"></omgdi:waypoint>
         <omgdi:waypoint x="470.0" y="107.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="509.0" y="149.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="509.0" y="149.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow16" id="BPMNEdge_flow16">
@@ -185,7 +186,7 @@
         <omgdi:waypoint x="537.0" y="197.0"></omgdi:waypoint>
         <omgdi:waypoint x="470.0" y="197.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="509.0" y="316.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="509.0" y="316.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
@@ -193,7 +194,7 @@
         <omgdi:waypoint x="187.0" y="467.0"></omgdi:waypoint>
         <omgdi:waypoint x="187.0" y="365.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="281.0" y="470.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="281.0" y="470.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge bpmnElement="flow18" id="BPMNEdge_flow18">
@@ -201,7 +202,7 @@
         <omgdi:waypoint x="187.0" y="197.0"></omgdi:waypoint>
         <omgdi:waypoint x="187.0" y="330.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="14.0" width="100.0" x="266.0" y="200.0"></omgdc:Bounds>
+          <omgdc:Bounds height="14.0" width="24.0" x="266.0" y="200.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>

+ 11 - 1
ui/src/api/apply/offlinevalve.js

@@ -35,6 +35,16 @@ export function updateOfflinevalve(data) {
   })
 }
 
+export function handle(data) {
+  return request({
+    url: '/apply/offlinevalve/handle',
+    method: 'put',
+    data: data
+  })
+}
+
+
+
 // 删除安全阀离线切出申请
 export function delOfflinevalve(id) {
   return request({
@@ -50,4 +60,4 @@ export function exportOfflinevalve(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 8 - 0
ui/src/api/plant/staffmgr.js

@@ -177,3 +177,11 @@ export function exportStaffmgr(query) {
     params: query
   })
 }
+
+export function listPostStaff(query) {
+  return request({
+    url: '/plant/staffmgr/listPostStaff',
+    method: 'get',
+    params: query
+  })
+}

+ 29 - 4
ui/src/views/approve/approveDetail/offlinevalve-detail.vue

@@ -100,7 +100,20 @@
               </el-form-item>
             </el-col>
           </el-row>
+          <el-form-item label="上锁确认人" prop="lockConfirmer1">
+            <el-select v-model="form.lockConfirmer1" placeholder="请选择上锁确认人" clearable size="small" filterable style="width: 100%">
+            <el-option
+              v-for="item in confirmerList"
+              :key="item.userId"
+              :label="item.nickName"
+              :value="item.userId"
+            ></el-option>
+            </el-select>
+          </el-form-item>
         </div>
+        <el-form-item label="审批意见" prop="remarks">
+          <el-input type="textarea"  v-model="form.remarks" />
+        </el-form-item>
       </div>
     </el-form>
     <span slot="footer" class="dialog-footer">
@@ -130,13 +143,14 @@
 </template>
 
 <script>
-import {getOfflinevalve} from "@/api/apply/offlinevalve";
+import {getOfflinevalve, handle} from "@/api/apply/offlinevalve";
 import {getHistorylist} from "@/api/ehs/approvedanger";
 
 export default {
   name: "offlinevalve-detail",
   data() {
     return {
+      confirmerList:[],
       //流转列表
       historyList: [],
       historyLoading: true,
@@ -150,7 +164,9 @@ export default {
         taskId: '',
         files: '',
         govDate: '',
-        govFileList: []
+        govFileList: [],
+        businessKey:'',
+        offlinevalve:{}
       },
       devList: [],
       dataForm: {
@@ -216,6 +232,7 @@ export default {
       this.visible = true;
       this.taskName = taskName;
       this.taskForm.taskId = taskId;
+      this.taskForm.businessKey = id;
       console.log(this.taskForm.taskId)
       this.dataForm.id = id || 0;
       this.form.id = id || 0;
@@ -237,7 +254,15 @@ export default {
     },
     dataFormSubmit(val) {
       this.$refs["form"].validate(valid => {
-        this.submitDisabled = true;
+        if (valid) {
+          this.submitDisabled = true;
+          this.taskForm.offlinevalve = this.form;
+          this.taskForm.condition = val;
+          handle(this.taskForm).then(res => {
+            this.msgSuccess("审核成功");
+            this.visible=false;
+          })
+        }
       })
     },
     // 字典翻译
@@ -293,7 +318,7 @@ export default {
         updaterCode: null,
         updatedate: null,
         deptId: null,
-        approveStatus: "1",
+        approveStatus: null,
         lockConfirmer1Name: null,
         lockConfirmer2Name: null,
         infoConfirmerName: null,