Jelajahi Sumber

导师带徒 关联考试 关联审批流

jiangbiao 11 bulan lalu
induk
melakukan
87d9cbb042

+ 22 - 3
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsFlplanController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.project.training.bccnew.controller;
 
+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;
@@ -120,12 +121,12 @@ public class TTsFlplanController extends BaseController {
         if ("满意".equals(tTsFlplan.getScore1()) && "差".equals(tTsFlplan.getScore2()) && "好".equals(tTsFlplan.getScore2())) {
             tTsFlplan.setPlanStatus(3L);
         }
-        if ("差".equals(tTsFlplan.getScore1()) && "满意".equals(tTsFlplan.getScore2())) {
-            tTsFlplan.setPlanStatus(1L);
-        }
         if ("差".equals(tTsFlplan.getScore1()) && "好".equals(tTsFlplan.getScore2())) {
             tTsFlplan.setPlanStatus(3L);
         }
+        if ("差".equals(tTsFlplan.getScore1()) && "满意".equals(tTsFlplan.getScore2())) {
+            tTsFlplan.setPlanStatus(1L);
+        }
         if ("差".equals(tTsFlplan.getScore1()) && "差".equals(tTsFlplan.getScore2())) {
             tTsFlplan.setPlanStatus(1L);
         }
@@ -146,6 +147,24 @@ public class TTsFlplanController extends BaseController {
                     tTsFlplans.size() == tTsFlplansDone.size()) {
                 tTsApproveService.doApprove(tTsFlplan.getNewId(), "3", getUserId(), getNickName());
             }
+        }else
+        if (tTsFlplan.getPlanStatus() == 1){
+            TTsFlplan entity = new TTsFlplan();
+            entity.setNewId(tTsFlplan.getNewId());
+            for (TTsFlplan item : tTsFlplanService.selectTTsFlplanListByNewId(entity)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsFlplanService.updateTTsFlplan(item);
+                }
+            }
+            TTsFirstplan tTsFirstplan = new TTsFirstplan();
+            tTsFirstplan.setNewId(tTsFlplan.getNewId());
+            for (TTsFirstplan item : tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsFirstplanService.updateTTsFirstplan(item);
+                }
+            }
         }
         return toAjax(tTsFlplanService.updateTTsFlplan(tTsFlplan));
     }

+ 59 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsFtplanController.java

@@ -118,6 +118,65 @@ public class TTsFtplanController extends BaseController {
     @Log(title = "芳烃培训", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TTsFtplan tTsFtplan) {
+        if ("好".equals(tTsFtplan.getScore1())) {
+            tTsFtplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsFtplan.getScore1()) && "好".equals(tTsFtplan.getScore2())) {
+            tTsFtplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsFtplan.getScore1()) && "满意".equals(tTsFtplan.getScore2()) && "好".equals(tTsFtplan.getScore3())) {
+            tTsFtplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsFtplan.getScore1()) && "差".equals(tTsFtplan.getScore2()) && "好".equals(tTsFtplan.getScore2())) {
+            tTsFtplan.setPlanStatus(3L);
+        }
+        if ("差".equals(tTsFtplan.getScore1()) && "好".equals(tTsFtplan.getScore2())) {
+            tTsFtplan.setPlanStatus(3L);
+        }
+        if ("差".equals(tTsFtplan.getScore1()) && "满意".equals(tTsFtplan.getScore2())) {
+            tTsFtplan.setPlanStatus(1L);
+        }
+        if ("差".equals(tTsFtplan.getScore1()) && "差".equals(tTsFtplan.getScore2())) {
+            tTsFtplan.setPlanStatus(1L);
+        }
+        if (tTsFtplan.getPlanStatus() == 3) {
+            TTsFirstplan tTsFirstplan = new TTsFirstplan();
+            tTsFirstplan.setNewId(tTsFtplan.getNewId());
+            List<TTsFirstplan> tTsFirstplans = tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan);
+            tTsFirstplan.setPlanStatus(3L);
+            List<TTsFirstplan> tTsFirstplansDone = tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan);
+            TTsFtplan entity = new TTsFtplan();
+            entity.setNewId(tTsFtplan.getNewId());
+            List<TTsFtplan> tTsFtplans = tTsFtplanService.selectTTsFtplanListByNewId(entity);
+            entity.setPlanStatus(3L);
+            List<TTsFtplan> tTsFtplansDone = tTsFtplanService.selectTTsFtplanListByNewId(entity);
+            if (!CollectionUtils.isEmpty(tTsFirstplans) && !CollectionUtils.isEmpty(tTsFirstplansDone) &&
+                    tTsFirstplans.size() == tTsFirstplansDone.size() &&
+                    !CollectionUtils.isEmpty(tTsFtplans) && !CollectionUtils.isEmpty(tTsFtplansDone) &&
+                    tTsFtplans.size() == tTsFtplansDone.size()) {
+                tTsApproveService.doApprove(tTsFtplan.getNewId(), "4", getUserId(), getNickName());
+            }
+        }else
+        if (tTsFtplan.getPlanStatus() == 1){
+            TTsFtplan entity = new TTsFtplan();
+            entity.setNewId(tTsFtplan.getNewId());
+            for (TTsFtplan item : tTsFtplanService.selectTTsFtplanListByNewId(entity)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsFtplanService.updateTTsFtplan(item);
+                }
+            }
+            TTsFirstplan tTsFirstplan = new TTsFirstplan();
+            tTsFirstplan.setNewId(tTsFtplan.getNewId());
+            for (TTsFirstplan item : tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsFirstplanService.updateTTsFirstplan(item);
+                }
+            }
+            tTsApproveService.doApprove(tTsFtplan.getNewId(), "4", getUserId(), getNickName());
+
+        }
         return toAjax(tTsFtplanService.updateTTsFtplan(tTsFtplan));
     }
 

+ 68 - 20
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsLjplanController.java

@@ -1,34 +1,25 @@
 package com.ruoyi.project.training.bccnew.controller;
 
-import java.util.List;
-
+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.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.ISysUserService;
 import com.ruoyi.project.training.bccnew.domain.TTsFirstplan;
-import com.ruoyi.project.training.bccnew.domain.TTsFlplan;
+import com.ruoyi.project.training.bccnew.domain.TTsLjplan;
 import com.ruoyi.project.training.bccnew.domain.TTsNew;
 import com.ruoyi.project.training.bccnew.service.ITTsApproveService;
 import com.ruoyi.project.training.bccnew.service.ITTsFirstplanService;
+import com.ruoyi.project.training.bccnew.service.ITTsLjplanService;
 import com.ruoyi.project.training.bccnew.service.ITTsNewService;
 import org.apache.commons.collections4.CollectionUtils;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.project.training.bccnew.domain.TTsLjplan;
-import com.ruoyi.project.training.bccnew.service.ITTsLjplanService;
-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.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 裂解培训Controller
@@ -136,6 +127,63 @@ public class TTsLjplanController extends BaseController
     @PutMapping
     public AjaxResult edit(@RequestBody TTsLjplan tTsLjplan)
     {
+        if ("好".equals(tTsLjplan.getScore1())) {
+            tTsLjplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsLjplan.getScore1()) && "好".equals(tTsLjplan.getScore2())) {
+            tTsLjplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsLjplan.getScore1()) && "满意".equals(tTsLjplan.getScore2()) && "好".equals(tTsLjplan.getScore3())) {
+            tTsLjplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsLjplan.getScore1()) && "差".equals(tTsLjplan.getScore2()) && "好".equals(tTsLjplan.getScore2())) {
+            tTsLjplan.setPlanStatus(3L);
+        }
+        if ("差".equals(tTsLjplan.getScore1()) && "好".equals(tTsLjplan.getScore2())) {
+            tTsLjplan.setPlanStatus(3L);
+        }
+        if ("差".equals(tTsLjplan.getScore1()) && "满意".equals(tTsLjplan.getScore2())) {
+            tTsLjplan.setPlanStatus(1L);
+        }
+        if ("差".equals(tTsLjplan.getScore1()) && "差".equals(tTsLjplan.getScore2())) {
+            tTsLjplan.setPlanStatus(1L);
+        }
+        if (tTsLjplan.getPlanStatus() == 3) {
+            TTsFirstplan tTsFirstplan = new TTsFirstplan();
+            tTsFirstplan.setNewId(tTsLjplan.getNewId());
+            List<TTsFirstplan> tTsFirstplans = tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan);
+            tTsFirstplan.setPlanStatus(3L);
+            List<TTsFirstplan> tTsFirstplansDone = tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan);
+            TTsLjplan entity = new TTsLjplan();
+            entity.setNewId(tTsLjplan.getNewId());
+            List<TTsLjplan> tTsLjplans = tTsLjplanService.selectTTsLjplanListByNewId(entity);
+            entity.setPlanStatus(3L);
+            List<TTsLjplan> tTsLjplansDone = tTsLjplanService.selectTTsLjplanListByNewId(entity);
+            if (!CollectionUtils.isEmpty(tTsFirstplans) && !CollectionUtils.isEmpty(tTsFirstplansDone) &&
+                    tTsFirstplans.size() == tTsFirstplansDone.size() &&
+                    !CollectionUtils.isEmpty(tTsLjplans) && !CollectionUtils.isEmpty(tTsLjplansDone) &&
+                    tTsLjplans.size() == tTsLjplansDone.size()) {
+                tTsApproveService.doApprove(tTsLjplan.getNewId(), "1", getUserId(), getNickName());
+            }
+        }else
+        if (tTsLjplan.getPlanStatus() == 1){
+            TTsLjplan entity = new TTsLjplan();
+            entity.setNewId(tTsLjplan.getNewId());
+            for (TTsLjplan item : tTsLjplanService.selectTTsLjplanListByNewId(entity)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsLjplanService.updateTTsLjplan(item);
+                }
+            }
+            TTsFirstplan tTsFirstplan = new TTsFirstplan();
+            tTsFirstplan.setNewId(tTsLjplan.getNewId());
+            for (TTsFirstplan item : tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsFirstplanService.updateTTsFirstplan(item);
+                }
+            }
+        }
         return toAjax(tTsLjplanService.updateTTsLjplan(tTsLjplan));
     }
 

+ 57 - 3
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsYsplanController.java

@@ -9,7 +9,7 @@ import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.ISysUserService;
 import com.ruoyi.project.training.bccnew.domain.TTsFirstplan;
-import com.ruoyi.project.training.bccnew.domain.TTsFlplan;
+import com.ruoyi.project.training.bccnew.domain.TTsYsplan;
 import com.ruoyi.project.training.bccnew.domain.TTsNew;
 import com.ruoyi.project.training.bccnew.domain.TTsYsplan;
 import com.ruoyi.project.training.bccnew.service.ITTsApproveService;
@@ -119,8 +119,62 @@ public class TTsYsplanController extends BaseController {
     @Log(title = "转岗培训", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TTsYsplan tTsYsplan) {
-        if(tTsYsplan.getScore2().equals("满意")){
-
+        if ("好".equals(tTsYsplan.getScore1())) {
+            tTsYsplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsYsplan.getScore1()) && "好".equals(tTsYsplan.getScore2())) {
+            tTsYsplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsYsplan.getScore1()) && "满意".equals(tTsYsplan.getScore2()) && "好".equals(tTsYsplan.getScore3())) {
+            tTsYsplan.setPlanStatus(3L);
+        }
+        if ("满意".equals(tTsYsplan.getScore1()) && "差".equals(tTsYsplan.getScore2()) && "好".equals(tTsYsplan.getScore2())) {
+            tTsYsplan.setPlanStatus(3L);
+        }
+        if ("差".equals(tTsYsplan.getScore1()) && "好".equals(tTsYsplan.getScore2())) {
+            tTsYsplan.setPlanStatus(3L);
+        }
+        if ("差".equals(tTsYsplan.getScore1()) && "满意".equals(tTsYsplan.getScore2())) {
+            tTsYsplan.setPlanStatus(1L);
+        }
+        if ("差".equals(tTsYsplan.getScore1()) && "差".equals(tTsYsplan.getScore2())) {
+            tTsYsplan.setPlanStatus(1L);
+        }
+        if (tTsYsplan.getPlanStatus() == 3) {
+            TTsFirstplan tTsFirstplan = new TTsFirstplan();
+            tTsFirstplan.setNewId(tTsYsplan.getNewId());
+            List<TTsFirstplan> tTsFirstplans = tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan);
+            tTsFirstplan.setPlanStatus(3L);
+            List<TTsFirstplan> tTsFirstplansDone = tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan);
+            TTsYsplan entity = new TTsYsplan();
+            entity.setNewId(tTsYsplan.getNewId());
+            List<TTsYsplan> tTsYsplans = tTsYsplanService.selectTTsYsplanListByNewId(entity);
+            entity.setPlanStatus(3L);
+            List<TTsYsplan> tTsYsplansDone = tTsYsplanService.selectTTsYsplanListByNewId(entity);
+            if (!CollectionUtils.isEmpty(tTsFirstplans) && !CollectionUtils.isEmpty(tTsFirstplansDone) &&
+                    tTsFirstplans.size() == tTsFirstplansDone.size() &&
+                    !CollectionUtils.isEmpty(tTsYsplans) && !CollectionUtils.isEmpty(tTsYsplansDone) &&
+                    tTsYsplans.size() == tTsYsplansDone.size()) {
+                tTsApproveService.doApprove(tTsYsplan.getNewId(), "2", getUserId(), getNickName());
+            }
+        }else
+        if (tTsYsplan.getPlanStatus() == 1){
+            TTsYsplan entity = new TTsYsplan();
+            entity.setNewId(tTsYsplan.getNewId());
+            for (TTsYsplan item : tTsYsplanService.selectTTsYsplanListByNewId(entity)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsYsplanService.updateTTsYsplan(item);
+                }
+            }
+            TTsFirstplan tTsFirstplan = new TTsFirstplan();
+            tTsFirstplan.setNewId(tTsYsplan.getNewId());
+            for (TTsFirstplan item : tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan)) {
+                if (item.getPlanStatus() == null){
+                    item.setPlanStatus(1L);
+                    tTsFirstplanService.updateTTsFirstplan(item);
+                }
+            }
         }
         return toAjax(tTsYsplanService.updateTTsYsplan(tTsYsplan));
     }

+ 8 - 3
master/src/main/java/com/ruoyi/project/training/bccnew/service/impl/TTsApproveServiceImpl.java

@@ -92,6 +92,8 @@ public class TTsApproveServiceImpl implements ITTsApproveService
         tTsApprove.setPlanType(planType);
         tTsApprove.setTrainingId(id);
         tTsApproveMapper.insertTTsApprove(tTsApprove);
+        TTsNew tTsNew = tTsNewMapper.selectTTsNewById(id);
+        SysUser sysUser = userMapper.selectUserByStaffId(tTsNew.getStaffId());
         // 开始申请流程
         tTsApprove.setApNo(DateUtils.dateTimeNow() + userId);
         long businessKey = tTsApprove.getId();
@@ -100,6 +102,7 @@ public class TTsApproveServiceImpl implements ITTsApproveService
         Authentication.setAuthenticatedUserId(applyUser);//设置当前申请人
         Map<String, Object> variables = new HashMap<>();
         variables.put("applyuser", applyUser);
+        variables.put("xyuser", sysUser.getUserId());
         TStaffmgr tStaffmgr = new TStaffmgr();
         tStaffmgr.setActualposts("24");
         StringBuilder executor = new StringBuilder();
@@ -139,19 +142,21 @@ public class TTsApproveServiceImpl implements ITTsApproveService
         } else if ("0".equals(devTask.getCondition())) {
             devTask.setComment("拒绝" );
         }
+        // 处理流程节点
+        Map<String, Object> param = new HashMap<>();
         if (taskName.equals("学员确认")) {
             tTsApprove.setStudentName(username);
             tTsApprove.setStudentId(userId);
             tTsApprove.setStudentConfirmTime(new Date());
+            param.put("condition1", "1");
         }
         if (taskName.equals("装置经理")) {
             tTsApprove.setApproverName(username);
             tTsApprove.setApprover(userId);
             tTsApprove.setApproveTime(new Date());
+            tTsNew.setPlanStatus(3L);
+            param.put("condition", devTask.getCondition());
         }
-        // 处理流程节点
-        Map<String, Object> param = new HashMap<>();
-        param.put("condition", devTask.getCondition());
         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
         TaskService taskService = processEngine.getTaskService();
         //认领任务

+ 50 - 37
master/src/main/resources/processes/bccnew/dsdtTraining.bpmn

@@ -1,61 +1,74 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<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">
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" targetNamespace="http://www.activiti.org/test" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="17.7.1">
   <process id="dsdtTraining" name="导师带徒经理审批" isExecutable="true">
-    <startEvent id="startDsdt" name="开始" activiti:initiator="${applyUser}"></startEvent>
-    <userTask id="jlTask" name="装置经理" activiti:assignee="#{jluser}"></userTask>
-    <userTask id="xyTask" name="学员确认" activiti:assignee="#{xyuser}"></userTask>
-    <endEvent id="endDsdt" name="End"></endEvent>
-    <sequenceFlow id="flow1" sourceRef="startDsdt" targetRef="xyTask"></sequenceFlow>
-    <sequenceFlow id="flow4" sourceRef="xyTask" targetRef="jlTask">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    <startEvent id="startDsdt" name="开始" activiti:initiator="${applyUser}" />
+    <userTask id="jlTask" name="装置经理" activiti:candidateUsers="#{jluser}" />
+    <userTask id="xyTask" name="学员确认" activiti:assignee="#{xyuser}" />
+    <endEvent id="endDsdt" name="End" />
+    <sequenceFlow id="flow1" sourceRef="startDsdt" targetRef="xyTask" />
+    <sequenceFlow id="flow4" name="通过" sourceRef="xyTask" targetRef="jlTask">
+      <conditionExpression xsi:type="tFormalExpression">${condition1 == 1}</conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="flow2" name="通过" sourceRef="jlTask" targetRef="endDsdt">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression">${condition == 1}</conditionExpression>
     </sequenceFlow>
-    <endEvent id="endDsdt2" name="End"></endEvent>
+    <endEvent id="endDsdt2" name="End" />
     <sequenceFlow id="flow3" name="不通过" sourceRef="jlTask" targetRef="endDsdt2">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression">${condition == 0}</conditionExpression>
     </sequenceFlow>
   </process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_dsdtTraining">
-    <bpmndi:BPMNPlane bpmnElement="dsdtTraining" id="BPMNPlane_dsdtTraining">
-      <bpmndi:BPMNShape bpmnElement="startDsdt" id="BPMNShape_startDsdt">
-        <omgdc:Bounds height="35.0" width="35.0" x="70.0" y="60.0"></omgdc:Bounds>
+    <bpmndi:BPMNPlane id="BPMNPlane_dsdtTraining" bpmnElement="dsdtTraining">
+      <bpmndi:BPMNShape id="BPMNShape_jlTask" bpmnElement="jlTask">
+        <omgdc:Bounds x="405" y="50" width="105" height="55" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="jlTask" id="BPMNShape_jlTask">
-        <omgdc:Bounds height="55.0" width="105.0" x="305.0" y="50.0"></omgdc:Bounds>
+      <bpmndi:BPMNShape id="BPMNShape_endDsdt" bpmnElement="endDsdt">
+        <omgdc:Bounds x="570" y="60" width="35" height="35" />
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds x="578" y="95" width="20" height="14" />
+        </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="xyTask" id="BPMNShape_xyTask">
-        <omgdc:Bounds height="55.0" width="105.0" x="160.0" y="50.0"></omgdc:Bounds>
+      <bpmndi:BPMNShape id="BPMNShape_startDsdt" bpmnElement="startDsdt">
+        <omgdc:Bounds x="152" y="60" width="35" height="35" />
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds x="159" y="95" width="22" height="14" />
+        </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endDsdt" id="BPMNShape_endDsdt">
-        <omgdc:Bounds height="35.0" width="35.0" x="470.0" y="60.0"></omgdc:Bounds>
+      <bpmndi:BPMNShape id="BPMNShape_xyTask" bpmnElement="xyTask">
+        <omgdc:Bounds x="237" y="50" width="105" height="55" />
+        <bpmndi:BPMNLabel />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endDsdt2" id="BPMNShape_endDsdt2">
-        <omgdc:Bounds height="35.0" width="35.0" x="340.0" y="140.0"></omgdc:Bounds>
+      <bpmndi:BPMNShape id="BPMNShape_endDsdt2" bpmnElement="endDsdt2">
+        <omgdc:Bounds x="440" y="142" width="35" height="35" />
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds x="448" y="177" width="20" height="14" />
+        </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
-        <omgdi:waypoint x="105.0" y="77.0"></omgdi:waypoint>
-        <omgdi:waypoint x="160.0" y="77.0"></omgdi:waypoint>
+      <bpmndi:BPMNEdge id="BPMNEdge_flow1" bpmnElement="flow1">
+        <omgdi:waypoint x="187" y="77" />
+        <omgdi:waypoint x="237" y="77" />
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
-        <omgdi:waypoint x="265.0" y="77.0"></omgdi:waypoint>
-        <omgdi:waypoint x="305.0" y="77.0"></omgdi:waypoint>
+      <bpmndi:BPMNEdge id="BPMNEdge_flow4" bpmnElement="flow4">
+        <omgdi:waypoint x="342" y="77" />
+        <omgdi:waypoint x="405" y="77" />
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds x="363" y="59" width="22" height="14" />
+        </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
-        <omgdi:waypoint x="410.0" y="77.0"></omgdi:waypoint>
-        <omgdi:waypoint x="470.0" y="77.0"></omgdi:waypoint>
+      <bpmndi:BPMNEdge id="BPMNEdge_flow2" bpmnElement="flow2">
+        <omgdi:waypoint x="510" y="77" />
+        <omgdi:waypoint x="570" y="77" />
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="32.0" x="424.0" y="79.0"></omgdc:Bounds>
+          <omgdc:Bounds x="529" y="79" width="22" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
-        <omgdi:waypoint x="357.0" y="105.0"></omgdi:waypoint>
-        <omgdi:waypoint x="357.0" y="140.0"></omgdi:waypoint>
+      <bpmndi:BPMNEdge id="BPMNEdge_flow3" bpmnElement="flow3">
+        <omgdi:waypoint x="457" y="105" />
+        <omgdi:waypoint x="457" y="142" />
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="48.0" x="305.0" y="119.0"></omgdc:Bounds>
+          <omgdc:Bounds x="413" y="120" width="33" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</definitions>
+</definitions>

+ 14 - 14
ui/src/views/approve/approveDetail/dsdtTraining-detail.vue

@@ -5,41 +5,41 @@
              :append-to-body="true"
              width="60%">
     <el-descriptions :column="2" border size="small">
-      <el-descriptions-item label="员工姓名" :label-style="labelStyle">{{ this.dataForm.staffName }}
+      <el-descriptions-item label="员工姓名" :label-style="labelStyle">{{ this.dataForm.tTsNew.staffName }}
       </el-descriptions-item>
       <el-descriptions-item label="培训状态" :label-style="labelStyle">
-        <el-tag v-if="dataForm.planStatus == 1" size="small" type="success">已完成</el-tag>
-        <el-tag v-else-if="dataForm.planStatus == 0" size="small" type="info">未完成</el-tag>
+        <el-tag v-if="dataForm.tTsNew.planStatus == 1" size="small" type="success">已完成</el-tag>
+        <el-tag v-else-if="dataForm.tTsNew.planStatus == 0" size="small" type="info">未完成</el-tag>
       </el-descriptions-item>
-      <el-descriptions-item label="开始时间" :span="2">
+      <el-descriptions-item label="开始时间">
         <template>
-          <span>{{ parseTime(dataForm.startdate, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(dataForm.tTsNew.startdate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-descriptions-item>
       <el-descriptions-item label="结束时间" :label-style="labelStyle">
         <template>
-          <span>{{ parseTime(dataForm.enddate, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(dataForm.tTsNew.enddate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-descriptions-item>
       <el-descriptions-item label="导师姓名">
-        {{ this.dataForm.mentorStaffName }}
+        {{ this.dataForm.tTsNew.mentorStaffName }}
       </el-descriptions-item>
       <el-descriptions-item label="岗位" :span="2" :label-style="labelStyle">
         <template>
-          <span v-if="dataForm.planType == 1" size="small">裂解</span>
-          <span v-else-if="dataForm.planType == 2" size="small">压缩</span>
-          <span v-else-if="dataForm.planType == 3" size="small">分离</span>
-          <span v-else-if="dataForm.planType == 4" size="small">芳烃</span>
+          <span v-if="dataForm.tTsNew.planType == 1" size="small">裂解</span>
+          <span v-else-if="dataForm.tTsNew.planType == 2" size="small">压缩</span>
+          <span v-else-if="dataForm.tTsNew.planType == 3" size="small">分离</span>
+          <span v-else-if="dataForm.tTsNew.planType == 4" size="small">芳烃</span>
         </template>
       </el-descriptions-item>
       <el-descriptions-item label="备注" :span="2" :label-style="labelStyle">
-        {{ this.dataForm.remarks }}
+        {{ this.dataForm.tTsNew.remarks }}
       </el-descriptions-item>
     </el-descriptions>
     <el-form ref="form" :model="form" label-position="left" :rules="rules" label-width="340px"
              style="margin-top: 30px">
       <div>
-          <el-form-item label="评语" prop="mentorComments">
+          <el-form-item label="评语" prop="mentorComments" v-if="taskName=='装置经理'">
             <el-input :disabled="this.taskForm.taskId == null||this.taskForm.taskId == undefined||this.taskForm.taskId == ''" type="textarea" v-model="form.mentorComments" placeholder="请输入评语"/>
           </el-form-item>
       </div>
@@ -47,7 +47,7 @@
     <span slot="footer" class="dialog-footer">
       <el-button v-if="!this.taskForm.taskId == ''" type="primary"
                  @click="dataFormSubmit(1)" :disabled="submitDisabled">{{   $t('通过') }}</el-button>
-      <el-button v-if="!this.taskForm.taskId == ''" type="danger"
+      <el-button v-if="!this.taskForm.taskId == ''&&taskName==='装置经理'" type="danger"
                  @click="dataFormSubmit(0)" :disabled="submitDisabled">{{ $t('拒绝') }}</el-button>
       <el-button @click="visible = false">{{ $t('返回') }}</el-button>
     </span>

+ 15 - 3
ui/src/views/training/bccnew/firstplan/index_student.vue

@@ -199,6 +199,14 @@
         @click="handleStudy(file.data)"
       >开始学习
       </el-button>
+      <el-button
+        class="mt10"
+        type="primary"
+        icon="el-icon-video-play"
+        v-if="file.data.planStatus == 2 "
+        @click="hanldeExam(file.data)"
+      >开始考试
+      </el-button>
     </el-dialog>
 
     <el-dialog :close-on-click-modal="false" element-loading-background="rgba(0,0,0,0.2)"
@@ -342,6 +350,9 @@ export default {
     });
   },
   methods: {
+    hanldeExam(row){
+      this.$router.push({ name: 'paper', params: { examId: row.examId }})
+    },
     handleClose() {
       window.clearInterval(timer);
       this.getList();
@@ -370,17 +381,18 @@ export default {
       return parseInt((this.file.data.timer / this.file.data.timerNeed * 100).toFixed(2))
     },
     openFileDialog(row) {
-      if (row.sortTmpl!=null&&parseInt(row.sortTmpl)>1){
         for (let i=0;i<=this.firstplanList;i++) {
+          if (i===0){
+            continue;
+          }
           let item = this.dsdtList[i];
           if (item.id===row.id){
-            if ( this.firstplanList[i-1].timer<this.firstplanList[i-1].timerNeed){
+            if (this.firstplanList[i-1].planStatus!==3){
               this.$alert('您必须完成上一项考试才可学习当前资料!', "注意", { dangerouslyUseHTMLString: true });
               return;
             }
           }
         }
-      }
       this.file.open = true;
       this.file.data = row
       console.log(row)

+ 10 - 10
ui/src/views/training/bccnew/tsnew/score_student.vue

@@ -441,27 +441,27 @@ export default {
       return parseInt((this.file.data.timer / this.file.data.timerNeed * 100).toFixed(2))
     },
     openFileDialog(row) {
-      if (row.sortTmpl!=null&&parseInt(row.sortTmpl)>1){
-        for (let i=0;i<=this.dsdtList;i++) {
-          let item = this.dsdtList[i];
-          if (item.id===row.id){
-            if ( this.dsdtList[i-1].timer<this.dsdtList[i-1].timerNeed){
-              this.$alert('您必须完成上一项考试才可学习当前资料!', "注意", { dangerouslyUseHTMLString: true });
-              return;
-            }
+      for (let i=0;i<this.dsdtList.length;i++) {
+        if (i===0){
+          continue;
+        }
+        let item = this.dsdtList[i];
+        console.log(item.id)
+        if (item.id===row.id){
+          if (this.dsdtList[i-1].planStatus!==3){
+            this.$alert('您必须完成上一项考试才可学习当前资料!', "注意", { dangerouslyUseHTMLString: true });
+            return;
           }
         }
       }
       this.file.open = true;
       this.file.data = row
-      console.log(row)
       if (row.timer === '' || row.timer == null) {
         this.file.data.timer = 0
       }
       if (row.timerNeed === '' || row.timerNeed == null) {
         this.file.data.timerNeed = 0
       }
-      console.log(this.file.data)
     },
     getList() {
       if (this.planType == 1) {