فهرست منبع

导师带徒 添加审批流

jiangbiao 11 ماه پیش
والد
کامیت
bf0ce60ada
28فایلهای تغییر یافته به همراه1195 افزوده شده و 47 حذف شده
  1. 4 0
      master/src/main/java/com/ruoyi/config/ActivitiConfig.java
  2. 11 0
      master/src/main/java/com/ruoyi/project/approve/damain/DevTask.java
  3. 103 0
      master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsApproveController.java
  4. 63 8
      master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsFirstplanController.java
  5. 20 0
      master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsFlplanController.java
  6. 21 0
      master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsFtplanController.java
  7. 21 0
      master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsLjplanController.java
  8. 24 0
      master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsYsplanController.java
  9. 276 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsApprove.java
  10. 10 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFirstplan.java
  11. 9 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFirstplanTmpl.java
  12. 11 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsNew.java
  13. 63 0
      master/src/main/java/com/ruoyi/project/training/bccnew/mapper/TTsApproveMapper.java
  14. 65 0
      master/src/main/java/com/ruoyi/project/training/bccnew/service/ITTsApproveService.java
  15. 216 0
      master/src/main/java/com/ruoyi/project/training/bccnew/service/impl/TTsApproveServiceImpl.java
  16. 1 0
      master/src/main/java/com/ruoyi/project/training/bccnew/service/impl/TTsNewServiceImpl.java
  17. 146 0
      master/src/main/resources/mybatis/training/bccnew/TTsApproveMapper.xml
  18. 5 1
      master/src/main/resources/mybatis/training/bccnew/TTsFirstplanMapper.xml
  19. 5 1
      master/src/main/resources/mybatis/training/bccnew/TTsFirstplanTmplMapper.xml
  20. 50 0
      master/src/main/resources/processes/bccnew/dsdtTraining.bpmn
  21. 36 27
      ui/src/views/training/bccnew/firstPlanTmpl/index.vue
  22. 19 1
      ui/src/views/training/bccnew/firstplan/index.vue
  23. 1 1
      ui/src/views/training/bccnew/firstplan/index_student.vue
  24. 3 2
      ui/src/views/training/bccnew/flPlan/index.vue
  25. 3 2
      ui/src/views/training/bccnew/ftPlan/index.vue
  26. 3 2
      ui/src/views/training/bccnew/ljPlan/index.vue
  27. 3 0
      ui/src/views/training/bccnew/tsnew/score.vue
  28. 3 2
      ui/src/views/training/bccnew/ysPlan/index.vue

+ 4 - 0
master/src/main/java/com/ruoyi/config/ActivitiConfig.java

@@ -153,6 +153,10 @@ public class ActivitiConfig {
         Resource spec15 = resourceLoader.getResource("classpath:/processes/sems/semsWeekcheck.bpmn"); //加载流程图资源文件
         deploymentBuilder15.enableDuplicateFiltering().addInputStream(spec15.getFilename(), spec15.getInputStream()).name("每周安全排查报告").deploy();//按流程id部署
 
+        DeploymentBuilder deploymentBuilder16 = repositoryService().createDeployment();
+        Resource spec16 = resourceLoader.getResource("classpath:/processes/bccnew/dsdtTraining.bpmn"); //加载流程图资源文件
+        deploymentBuilder16.enableDuplicateFiltering().addInputStream(spec16.getFilename(), spec15.getInputStream()).name("导师带徒经理签字").deploy();//按流程id部署
+
     }
 }
 

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

@@ -9,6 +9,7 @@ import com.ruoyi.project.production.domain.TSaiApply;
 import com.ruoyi.project.sems.domain.TApprove;
 import com.ruoyi.project.sems.domain.TApproverFile;
 import com.ruoyi.project.sems.his.domain.TApproveSpecModify;
+import com.ruoyi.project.training.bccnew.domain.TTsApprove;
 
 import java.util.Date;
 import java.util.List;
@@ -95,6 +96,16 @@ public class DevTask {
     /** SAI开项申请对象 */
     private TSaiApply SaiApply;
 
+    private TTsApprove tTsApprove;
+
+    public TTsApprove gettTsApprove() {
+        return tTsApprove;
+    }
+
+    public void settTsApprove(TTsApprove tTsApprove) {
+        this.tTsApprove = tTsApprove;
+    }
+
     public TSaiApply getSaiApply() {
         return SaiApply;
     }

+ 103 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsApproveController.java

@@ -0,0 +1,103 @@
+package com.ruoyi.project.training.bccnew.controller;
+
+import java.util.List;
+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.TTsApprove;
+import com.ruoyi.project.training.bccnew.service.ITTsApproveService;
+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;
+
+/**
+ * 导师带徒审批Controller
+ *
+ * @author ssy
+ * @date 2024-06-25
+ */
+@RestController
+@RequestMapping("/bccnew/approve")
+public class TTsApproveController extends BaseController
+{
+    @Autowired
+    private ITTsApproveService tTsApproveService;
+
+    /**
+     * 查询导师带徒审批列表
+     */
+    @PreAuthorize("@ss.hasPermi('bccnew:approve:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TTsApprove tTsApprove)
+    {
+        startPage();
+        List<TTsApprove> list = tTsApproveService.selectTTsApproveList(tTsApprove);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出导师带徒审批列表
+     */
+    @PreAuthorize("@ss.hasPermi('bccnew:approve:export')")
+    @Log(title = "导师带徒审批", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TTsApprove tTsApprove)
+    {
+        List<TTsApprove> list = tTsApproveService.selectTTsApproveList(tTsApprove);
+        ExcelUtil<TTsApprove> util = new ExcelUtil<TTsApprove>(TTsApprove.class);
+        return util.exportExcel(list, "approve");
+    }
+
+    /**
+     * 获取导师带徒审批详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('bccnew:approve:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(tTsApproveService.selectTTsApproveById(id));
+    }
+
+    /**
+     * 新增导师带徒审批
+     */
+    @PreAuthorize("@ss.hasPermi('bccnew:approve:add')")
+    @Log(title = "导师带徒审批", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TTsApprove tTsApprove)
+    {
+        return toAjax(tTsApproveService.insertTTsApprove(tTsApprove));
+    }
+
+    /**
+     * 修改导师带徒审批
+     */
+    @PreAuthorize("@ss.hasPermi('bccnew:approve:edit')")
+    @Log(title = "导师带徒审批", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TTsApprove tTsApprove)
+    {
+        return toAjax(tTsApproveService.updateTTsApprove(tTsApprove));
+    }
+
+    /**
+     * 删除导师带徒审批
+     */
+    @PreAuthorize("@ss.hasPermi('bccnew:approve:remove')")
+    @Log(title = "导师带徒审批", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tTsApproveService.deleteTTsApproveByIds(ids));
+    }
+}

+ 63 - 8
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsFirstplanController.java

@@ -8,13 +8,14 @@ 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.TTsLjplan;
-import com.ruoyi.project.training.bccnew.domain.TTsNew;
-import com.ruoyi.project.training.bccnew.service.ITTsFirstplanService;
-import com.ruoyi.project.training.bccnew.service.ITTsNewService;
+import com.ruoyi.project.training.bccnew.domain.*;
+import com.ruoyi.project.training.bccnew.mapper.TTsFlplanMapper;
+import com.ruoyi.project.training.bccnew.mapper.TTsFtplanMapper;
+import com.ruoyi.project.training.bccnew.mapper.TTsLjplanMapper;
+import com.ruoyi.project.training.bccnew.mapper.TTsYsplanMapper;
+import com.ruoyi.project.training.bccnew.service.*;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -35,6 +36,21 @@ public class TTsFirstplanController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ITTsLjplanService tTsLjplanService;
+
+    @Autowired
+    private ITTsYsplanService tTsYsplanService;
+
+    @Autowired
+    private ITTsFlplanService tTsFlplanService;
+
+    @Autowired
+    private ITTsFtplanService tTsFtplanService;
+
+    @Autowired
+    private ITTsApproveService tTsApproveService;
+
     /**
      * 查询进组培训列表
      */
@@ -91,10 +107,49 @@ public class TTsFirstplanController extends BaseController {
             TTsFirstplan plan = new TTsFirstplan();
             plan.setId(tTsFirstplan.getId());
             long timer = tTsFirstplan.getTimer() == null ? 0 : tTsFirstplan.getTimer();
-            plan.setTimer(timer+1);
+            plan.setTimer(timer + 1);
             TTsFirstplan need = tTsFirstplanService.selectTTsFirstplanById(tTsFirstplan.getId());
-            if (need.getTimerNeed()!=null&&need.getTimerNeed().equals(timer+1)){
+            if (need.getTimerNeed() != null && need.getTimerNeed().equals(timer + 1)) {
                 plan.setPlanStatus(2L);
+                tTsFirstplan.setPlanStatus(0L);
+                List<TTsFirstplan> tTsFirstplans = tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan);
+                boolean flag=false;
+                if (1 == tTsNew.getPlanType()) {
+                    TTsLjplan tTsLjplan = new TTsLjplan();
+                    tTsLjplan.setNewId(tTsFirstplan.getNewId());
+                    tTsLjplan.setPlanStatus(0L);
+                    List<TTsLjplan> tTsLjplans = tTsLjplanService.selectTTsLjplanListByNewId(tTsLjplan);
+                    if (CollectionUtils.isEmpty(tTsLjplans)){
+                        flag=true;
+                    }
+                }else if (2==tTsNew.getPlanType()){
+                    TTsYsplan tTsYsplan = new TTsYsplan();
+                    tTsYsplan.setNewId(tTsFirstplan.getNewId());
+                    tTsYsplan.setPlanStatus(0L);
+                    List<TTsYsplan> tTsYsplans = tTsYsplanService.selectTTsYsplanListByNewId(tTsYsplan);
+                    if (CollectionUtils.isEmpty(tTsYsplans)){
+                        flag=true;
+                    }
+                } else if (3==tTsNew.getPlanType()) {
+                    TTsFlplan tTsFlplan = new TTsFlplan();
+                    tTsFlplan.setNewId(tTsFirstplan.getNewId());
+                    tTsFlplan.setPlanStatus(0L);
+                    List<TTsFlplan> tTsFlplans = tTsFlplanService.selectTTsFlplanListByNewId(tTsFlplan);
+                    if (CollectionUtils.isEmpty(tTsFlplans)){
+                        flag=true;
+                    }
+                } else if (4==tTsNew.getPlanType()) {
+                    TTsFtplan tTsFtplan = new TTsFtplan();
+                    tTsFtplan.setNewId(tTsFirstplan.getNewId());
+                    tTsFtplan.setPlanStatus(0L);
+                    List<TTsFtplan> tTsFtplans = tTsFtplanService.selectTTsFtplanListByNewId(tTsFtplan);
+                    if (CollectionUtils.isEmpty(tTsFtplans)){
+                        flag=true;
+                    }
+                }
+                if (CollectionUtils.isEmpty(tTsFirstplans)&&flag) {
+                    tTsApproveService.doApprove(tTsNew.getNewId(),tTsNew.getPlanType().toString(),getUserId(),getNickName());
+                }
             }
             return toAjax(tTsFirstplanService.updateTTsFirstplan(plan));
         }

+ 20 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsFlplanController.java

@@ -8,10 +8,14 @@ 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.TTsNew;
+import com.ruoyi.project.training.bccnew.service.ITTsApproveService;
+import com.ruoyi.project.training.bccnew.service.ITTsFirstplanService;
 import com.ruoyi.project.training.bccnew.service.ITTsFlplanService;
 import com.ruoyi.project.training.bccnew.service.ITTsNewService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -33,6 +37,12 @@ public class TTsFlplanController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ITTsFirstplanService tTsFirstplanService;
+
+    @Autowired
+    private ITTsApproveService tTsApproveService;
+
     /**
      * 查询分离培训列表
      */
@@ -86,6 +96,16 @@ public class TTsFlplanController extends BaseController {
             TTsFlplan need = tTsFlplanService.selectTTsFlplanById(tTsFlplan.getId());
             if (need.getTimerNeed() != null && need.getTimerNeed().equals(timer + 1)) {
                 plan.setPlanStatus(2L);
+                TTsFirstplan tTsFirstplan = new TTsFirstplan();
+                tTsFirstplan.setNewId(tTsNew.getNewId());
+                tTsFirstplan.setPlanStatus(0L);
+                TTsFlplan entity = new TTsFlplan();
+                entity.setNewId(tTsNew.getNewId());
+                entity.setPlanStatus(0L);
+                if (CollectionUtils.isEmpty(tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan))&&
+                        CollectionUtils.isEmpty(tTsFlplanService.selectTTsFlplanListByNewId(entity))){
+                    tTsApproveService.doApprove(tTsNew.getNewId(), tTsNew.getPlanType().toString(),getUserId(),getNickName());
+                }
             }
             return toAjax(tTsFlplanService.updateTTsFlplan(plan));
         }

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

@@ -8,10 +8,15 @@ 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.TTsFtplan;
 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.ITTsFtplanService;
 import com.ruoyi.project.training.bccnew.service.ITTsNewService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -33,6 +38,12 @@ public class TTsFtplanController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ITTsFirstplanService tTsFirstplanService;
+
+    @Autowired
+    private ITTsApproveService tTsApproveService;
+
     /**
      * 查询芳烃培训列表
      */
@@ -85,6 +96,16 @@ public class TTsFtplanController extends BaseController {
             TTsFtplan need = tTsFtplanService.selectTTsFtplanById(tTsFtplan.getId());
             if (need.getTimerNeed() != null && need.getTimerNeed().equals(timer + 1)) {
                 plan.setPlanStatus(2L);
+                TTsFirstplan tTsFirstplan = new TTsFirstplan();
+                tTsFirstplan.setNewId(tTsNew.getNewId());
+                tTsFirstplan.setPlanStatus(0L);
+                TTsFtplan entity = new TTsFtplan();
+                entity.setNewId(tTsNew.getNewId());
+                entity.setPlanStatus(0L);
+                if (CollectionUtils.isEmpty(tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan))&&
+                        CollectionUtils.isEmpty(tTsFtplanService.selectTTsFtplanListByNewId(entity))){
+                    tTsApproveService.doApprove(tTsNew.getNewId(), tTsNew.getPlanType().toString(),getUserId(),getNickName());
+                }
             }
             return toAjax(tTsFtplanService.updateTTsFtplan(plan));
         }

+ 21 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsLjplanController.java

@@ -4,8 +4,13 @@ import java.util.List;
 
 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.TTsNew;
+import com.ruoyi.project.training.bccnew.service.ITTsApproveService;
+import com.ruoyi.project.training.bccnew.service.ITTsFirstplanService;
 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;
@@ -42,6 +47,12 @@ public class TTsLjplanController extends BaseController
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ITTsFirstplanService tTsFirstplanService;
+
+    @Autowired
+    private ITTsApproveService tTsApproveService;
+
     /**
      * 查询裂解培训列表
      */
@@ -101,6 +112,16 @@ public class TTsLjplanController extends BaseController
             TTsLjplan need = tTsLjplanService.selectTTsLjplanById(tTsLjplan.getId());
             if (need.getTimerNeed()!=null&&need.getTimerNeed().equals(timer+1)){
                 plan.setPlanStatus(2L);
+                TTsFirstplan tTsFirstplan = new TTsFirstplan();
+                tTsFirstplan.setNewId(tTsNew.getNewId());
+                tTsFirstplan.setPlanStatus(0L);
+                TTsLjplan entity = new TTsLjplan();
+                entity.setNewId(tTsNew.getNewId());
+                entity.setPlanStatus(0L);
+                if (CollectionUtils.isEmpty(tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan))&&
+                        CollectionUtils.isEmpty(tTsLjplanService.selectTTsLjplanListByNewId(entity))){
+                    tTsApproveService.doApprove(tTsNew.getNewId(), tTsNew.getPlanType().toString(),getUserId(),getNickName());
+                }
             }
             return toAjax(tTsLjplanService.updateTTsLjplan(plan));
         }

+ 24 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsYsplanController.java

@@ -8,10 +8,15 @@ 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.TTsNew;
 import com.ruoyi.project.training.bccnew.domain.TTsYsplan;
+import com.ruoyi.project.training.bccnew.service.ITTsApproveService;
+import com.ruoyi.project.training.bccnew.service.ITTsFirstplanService;
 import com.ruoyi.project.training.bccnew.service.ITTsNewService;
 import com.ruoyi.project.training.bccnew.service.ITTsYsplanService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -33,6 +38,12 @@ public class TTsYsplanController extends BaseController {
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ITTsFirstplanService tTsFirstplanService;
+
+    @Autowired
+    private ITTsApproveService tTsApproveService;
+
     /**
      * 查询转岗培训列表
      */
@@ -86,6 +97,16 @@ public class TTsYsplanController extends BaseController {
             TTsYsplan need = tTsYsplanService.selectTTsYsplanById(tTsYsplan.getId());
             if (need.getTimerNeed() != null && need.getTimerNeed().equals(timer + 1)) {
                 plan.setPlanStatus(2L);
+                TTsFirstplan tTsFirstplan = new TTsFirstplan();
+                tTsFirstplan.setNewId(tTsNew.getNewId());
+                tTsFirstplan.setPlanStatus(0L);
+                TTsYsplan entity = new TTsYsplan();
+                entity.setNewId(tTsNew.getNewId());
+                entity.setPlanStatus(0L);
+                if (CollectionUtils.isEmpty(tTsFirstplanService.selectTTsFirstplanListByNewId(tTsFirstplan))&&
+                        CollectionUtils.isEmpty(tTsYsplanService.selectTTsYsplanListByNewId(entity))){
+                    tTsApproveService.doApprove(tTsNew.getNewId(), tTsNew.getPlanType().toString(),getUserId(),getNickName());
+                }
             }
             return toAjax(tTsYsplanService.updateTTsYsplan(plan));
         }
@@ -98,6 +119,9 @@ public class TTsYsplanController extends BaseController {
     @Log(title = "转岗培训", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TTsYsplan tTsYsplan) {
+        if(tTsYsplan.getScore2().equals("满意")){
+
+        }
         return toAjax(tTsYsplanService.updateTTsYsplan(tTsYsplan));
     }
 

+ 276 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsApprove.java

@@ -0,0 +1,276 @@
+package com.ruoyi.project.training.bccnew.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 导师带徒审批对象 t_ts_approve
+ *
+ * @author ssy
+ * @date 2024-06-25
+ */
+public class TTsApprove extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    private Long trainingId;
+
+    /** 申请编号 */
+    @Excel(name = "申请编号")
+    private String apNo;
+
+    /** 流程编id */
+    @Excel(name = "流程编id")
+    private String processId;
+
+    /** 申请人id */
+    @Excel(name = "申请人id")
+    private String applicant;
+
+    /** 申请时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date applicationTime;
+
+    /** 申请人姓名 */
+    @Excel(name = "申请人姓名")
+    private String applicantName;
+
+    /** 审批人id */
+    @Excel(name = "审批人id")
+    private String approver;
+
+    /** 审批时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date approveTime;
+
+    /** 审批人姓名 */
+    @Excel(name = "审批人姓名")
+    private String approverName;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 删除标识 */
+    private Long delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private String createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private String updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门id */
+    @Excel(name = "部门id")
+    private Long deptId;
+
+    /** 类型 */
+    @Excel(name = "类型")
+    private String planType;
+
+    public Long getTrainingId() {
+        return trainingId;
+    }
+
+    public void setTrainingId(Long trainingId) {
+        this.trainingId = trainingId;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setApNo(String apNo)
+    {
+        this.apNo = apNo;
+    }
+
+    public String getApNo()
+    {
+        return apNo;
+    }
+    public void setProcessId(String processId)
+    {
+        this.processId = processId;
+    }
+
+    public String getProcessId()
+    {
+        return processId;
+    }
+    public void setApplicant(String applicant)
+    {
+        this.applicant = applicant;
+    }
+
+    public String getApplicant()
+    {
+        return applicant;
+    }
+    public void setApplicationTime(Date applicationTime)
+    {
+        this.applicationTime = applicationTime;
+    }
+
+    public Date getApplicationTime()
+    {
+        return applicationTime;
+    }
+    public void setApplicantName(String applicantName)
+    {
+        this.applicantName = applicantName;
+    }
+
+    public String getApplicantName()
+    {
+        return applicantName;
+    }
+    public void setApprover(String approver)
+    {
+        this.approver = approver;
+    }
+
+    public String getApprover()
+    {
+        return approver;
+    }
+    public void setApproveTime(Date approveTime)
+    {
+        this.approveTime = approveTime;
+    }
+
+    public Date getApproveTime()
+    {
+        return approveTime;
+    }
+    public void setApproverName(String approverName)
+    {
+        this.approverName = approverName;
+    }
+
+    public String getApproverName()
+    {
+        return approverName;
+    }
+    public void setStatus(Long status)
+    {
+        this.status = status;
+    }
+
+    public Long getStatus()
+    {
+        return status;
+    }
+    public void setDelFlag(Long delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Long getDelFlag()
+    {
+        return delFlag;
+    }
+    public void setCreaterCode(String createrCode)
+    {
+        this.createrCode = createrCode;
+    }
+
+    public String getCreaterCode()
+    {
+        return createrCode;
+    }
+    public void setCreatedate(Date createdate)
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate()
+    {
+        return createdate;
+    }
+    public void setUpdaterCode(String updaterCode)
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public String getUpdaterCode()
+    {
+        return updaterCode;
+    }
+    public void setUpdatedate(Date updatedate)
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate()
+    {
+        return updatedate;
+    }
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+    public void setPlanType(String planType)
+    {
+        this.planType = planType;
+    }
+
+    public String getPlanType()
+    {
+        return planType;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("apNo", getApNo())
+            .append("processId", getProcessId())
+            .append("applicant", getApplicant())
+            .append("applicationTime", getApplicationTime())
+            .append("applicantName", getApplicantName())
+            .append("approver", getApprover())
+            .append("approveTime", getApproveTime())
+            .append("approverName", getApproverName())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("planType", getPlanType())
+            .toString();
+    }
+}

+ 10 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFirstplan.java

@@ -134,6 +134,16 @@ public class TTsFirstplan extends BaseEntity
     /** 讲师签名*/
     private String trainerConfirm;
 
+    private Long examId;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
     /** 学员签名*/
     private String studentConfirm;
 

+ 9 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFirstplanTmpl.java

@@ -110,6 +110,15 @@ public class TTsFirstplanTmpl extends BaseEntity
     /** 考试评估方式 */
     private String examType;
 
+    private Long examId;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
 
     public String getMaterialVer() {
         return materialVer;

+ 11 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsNew.java

@@ -106,6 +106,17 @@ public class TTsNew extends BaseEntity
     /** 导师带徒考评表word地址 */
     private String appraisalFormWordPath;
 
+    /** 导师评语 */
+    private String mentorComments;
+
+    public String getMentorComments() {
+        return mentorComments;
+    }
+
+    public void setMentorComments(String mentorComments) {
+        this.mentorComments = mentorComments;
+    }
+
     public String getIsStudent() {
         return isStudent;
     }

+ 63 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/mapper/TTsApproveMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.project.training.bccnew.mapper;
+
+import java.util.List;
+import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
+import com.ruoyi.project.training.bccnew.domain.TTsApprove;
+
+/**
+ * 导师带徒审批Mapper接口
+ * 
+ * @author ssy
+ * @date 2024-06-25
+ */
+public interface TTsApproveMapper 
+{
+    /**
+     * 查询导师带徒审批
+     * 
+     * @param id 导师带徒审批ID
+     * @return 导师带徒审批
+     */
+    public TTsApprove selectTTsApproveById(Long id);
+
+    /**
+     * 查询导师带徒审批列表
+     * 
+     * @param tTsApprove 导师带徒审批
+     * @return 导师带徒审批集合
+     */
+    @DataScope(deptAlias = "d")
+    public List<TTsApprove> selectTTsApproveList(TTsApprove tTsApprove);
+
+    /**
+     * 新增导师带徒审批
+     * 
+     * @param tTsApprove 导师带徒审批
+     * @return 结果
+     */
+    public int insertTTsApprove(TTsApprove tTsApprove);
+
+    /**
+     * 修改导师带徒审批
+     * 
+     * @param tTsApprove 导师带徒审批
+     * @return 结果
+     */
+    public int updateTTsApprove(TTsApprove tTsApprove);
+
+    /**
+     * 删除导师带徒审批
+     * 
+     * @param id 导师带徒审批ID
+     * @return 结果
+     */
+    public int deleteTTsApproveById(Long id);
+
+    /**
+     * 批量删除导师带徒审批
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTTsApproveByIds(Long[] ids);
+}

+ 65 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/service/ITTsApproveService.java

@@ -0,0 +1,65 @@
+package com.ruoyi.project.training.bccnew.service;
+
+import java.util.List;
+
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.training.bccnew.domain.TTsApprove;
+
+/**
+ * 导师带徒审批Service接口
+ * 
+ * @author ssy
+ * @date 2024-06-25
+ */
+public interface ITTsApproveService 
+{
+    /**
+     * 查询导师带徒审批
+     * 
+     * @param id 导师带徒审批ID
+     * @return 导师带徒审批
+     */
+    public TTsApprove selectTTsApproveById(Long id);
+
+    public AjaxResult doApprove(Long id, String planType, Long userId, String userName);
+
+    /**
+     * 查询导师带徒审批列表
+     * 
+     * @param tTsApprove 导师带徒审批
+     * @return 导师带徒审批集合
+     */
+    public List<TTsApprove> selectTTsApproveList(TTsApprove tTsApprove);
+
+    /**
+     * 新增导师带徒审批
+     * 
+     * @param tTsApprove 导师带徒审批
+     * @return 结果
+     */
+    public int insertTTsApprove(TTsApprove tTsApprove);
+
+    /**
+     * 修改导师带徒审批
+     * 
+     * @param tTsApprove 导师带徒审批
+     * @return 结果
+     */
+    public int updateTTsApprove(TTsApprove tTsApprove);
+
+    /**
+     * 批量删除导师带徒审批
+     * 
+     * @param ids 需要删除的导师带徒审批ID
+     * @return 结果
+     */
+    public int deleteTTsApproveByIds(Long[] ids);
+
+    /**
+     * 删除导师带徒审批信息
+     * 
+     * @param id 导师带徒审批ID
+     * @return 结果
+     */
+    public int deleteTTsApproveById(Long id);
+}

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

@@ -0,0 +1,216 @@
+package com.ruoyi.project.training.bccnew.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.interceptor.annotation.RepeatSubmit;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.approve.damain.DevTask;
+import com.ruoyi.project.listener.apply.valve.EndFailListener;
+import com.ruoyi.project.listener.apply.valve.EndSuccessListener;
+import com.ruoyi.project.listener.apply.valve.FlowListener;
+import com.ruoyi.project.listener.apply.valve.NextTaskListener;
+import com.ruoyi.project.plant.domain.TStaffmgr;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.project.training.bccnew.domain.TTsNew;
+import com.ruoyi.project.training.bccnew.mapper.*;
+import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.ProcessEngines;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.TaskService;
+import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.project.training.bccnew.domain.TTsApprove;
+import com.ruoyi.project.training.bccnew.service.ITTsApproveService;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 导师带徒审批Service业务层处理
+ *
+ * @author ssy
+ * @date 2024-06-25
+ */
+@Service
+public class TTsApproveServiceImpl implements ITTsApproveService
+{
+    @Autowired
+    private TTsApproveMapper tTsApproveMapper;
+
+    @Autowired
+    private TTsFirstplanMapper tTsFirstplanMapper ;
+
+    @Autowired
+    private TTsLjplanMapper tTsLjplanMapper;
+
+    @Autowired
+    private TTsYsplanMapper tTsYsplanMapper;
+
+    @Autowired
+    private TTsFlplanMapper tTsFlplanMapper;
+
+    @Autowired
+    private TTsFtplanMapper tTsFtplanMapper;
+
+    @Autowired
+    private TTsNewMapper tTsNewMapper;
+
+    @Autowired
+    private SysUserMapper userMapper;
+
+    @Autowired
+    private RuntimeService runtimeService;
+
+    @Autowired
+    private TaskService taskService;
+
+
+
+    /**
+     * 查询导师带徒审批
+     *
+     * @param id 导师带徒审批ID
+     * @return 导师带徒审批
+     */
+    @Override
+    public TTsApprove selectTTsApproveById(Long id)
+    {
+        return tTsApproveMapper.selectTTsApproveById(id);
+    }
+
+    @Override
+    public AjaxResult doApprove(Long id, String planType,Long userId,String userName) {
+        TTsApprove tTsApprove = new TTsApprove();
+        tTsApprove.setPlanType(planType);
+        tTsApprove.setTrainingId(id);
+        // 开始申请流程
+        tTsApprove.setApNo(DateUtils.dateTimeNow() + userId);
+        long businessKey = id;
+        String applyUser = userId.toString();
+        //开始工作流、监听
+        Authentication.setAuthenticatedUserId(applyUser);//设置当前申请人
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("applyuser", applyUser);
+        TStaffmgr tStaffmgr = new TStaffmgr();
+        tStaffmgr.setActualposts("24");
+        StringBuilder executor = new StringBuilder();
+        for (SysUser user : userMapper.selectUserPost(tStaffmgr)) {
+            executor.append(user.getUserId().toString()).append(",");
+        }
+        if (StringUtils.isNotEmpty(executor.toString())) {
+            executor = new StringBuilder(executor.substring(0, executor.length() - 1));
+        }
+        variables.put("jluser", executor.toString());
+        //采用key来启动流程定义并设置流程变量,返回流程实例
+        ProcessInstance pi = runtimeService.startProcessInstanceByKey("dsdtTaining", String.valueOf(businessKey), variables);
+        tTsApprove.setProcessId(pi.getProcessInstanceId());
+        tTsApprove.setApplicantName(userName);
+        tTsApprove.setApplicant(userId.toString());
+        tTsApprove.setApplicationTime(new Date());
+        tTsApprove.setCreaterCode(userId.toString());
+        tTsApprove.setCreatedate(new Date());
+        tTsApproveMapper.insertTTsApprove(tTsApprove);
+        return AjaxResult.success();
+    }
+
+    public AjaxResult handle(DevTask devTask,String username,String userId) {
+        TTsApprove tTsApprove = devTask.gettTsApprove();
+        //使用任务服务完成任务(提交任务)
+        String taskId = devTask.getTaskId();
+        // 使用任务id,获取任务对象,获取流程实例id
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        //利用任务对象,获取流程实例id
+        String processInstancesId = task.getProcessInstanceId();
+        TTsNew tTsNew = tTsNewMapper.selectTTsNewById(tTsApprove.getTrainingId());
+        // 判断流程
+        if ("1".equals(devTask.getCondition())) {
+            devTask.setComment("通过");
+        } else if ("0".equals(devTask.getCondition())) {
+            devTask.setComment("拒绝" );
+        }
+        tTsApprove.setApproverName(username);
+        tTsApprove.setApprover(userId);
+        tTsApprove.setApproveTime(new Date());
+        // 处理流程节点
+        Map<String, Object> param = new HashMap<>();
+        param.put("condition", devTask.getCondition());
+        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+        TaskService taskService = processEngine.getTaskService();
+        //认领任务
+        processEngine.getTaskService()
+                .claim(taskId, userId);
+        taskService.addComment(taskId, processInstancesId, devTask.getComment());
+        taskService.complete(taskId, param);
+        tTsNewMapper.updateTTsNew(tTsNew);
+        return AjaxResult.success();
+    }
+
+
+    /**
+     * 查询导师带徒审批列表
+     *
+     * @param tTsApprove 导师带徒审批
+     * @return 导师带徒审批
+     */
+    @Override
+    public List<TTsApprove> selectTTsApproveList(TTsApprove tTsApprove)
+    {
+        return tTsApproveMapper.selectTTsApproveList(tTsApprove);
+    }
+
+    /**
+     * 新增导师带徒审批
+     *
+     * @param tTsApprove 导师带徒审批
+     * @return 结果
+     */
+    @Override
+    public int insertTTsApprove(TTsApprove tTsApprove)
+    {
+        return tTsApproveMapper.insertTTsApprove(tTsApprove);
+    }
+
+    /**
+     * 修改导师带徒审批
+     *
+     * @param tTsApprove 导师带徒审批
+     * @return 结果
+     */
+    @Override
+    public int updateTTsApprove(TTsApprove tTsApprove)
+    {
+        return tTsApproveMapper.updateTTsApprove(tTsApprove);
+    }
+
+    /**
+     * 批量删除导师带徒审批
+     *
+     * @param ids 需要删除的导师带徒审批ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTTsApproveByIds(Long[] ids)
+    {
+        return tTsApproveMapper.deleteTTsApproveByIds(ids);
+    }
+
+    /**
+     * 删除导师带徒审批信息
+     *
+     * @param id 导师带徒审批ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTTsApproveById(Long id)
+    {
+        return tTsApproveMapper.deleteTTsApproveById(id);
+    }
+}

+ 1 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/service/impl/TTsNewServiceImpl.java

@@ -103,6 +103,7 @@ public class TTsNewServiceImpl implements ITTsNewService {
             tTsFirstplan.setSortTmpl(tTsFirstplanTmpl.getSortTmpl());
             tTsFirstplan.setMaterialVer(tTsFirstplanTmpl.getMaterialVer());
             tTsFirstplan.setExamType(tTsFirstplanTmpl.getExamType());
+            tTsFirstplan.setExamId(tTsFirstplanTmpl.getExamId());
             tTsFirstplanMapper.insertTTsFirstplan(tTsFirstplan);
         }
         if (tTsNew.getPlanType() == 1) {

+ 146 - 0
master/src/main/resources/mybatis/training/bccnew/TTsApproveMapper.xml

@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.training.bccnew.mapper.TTsApproveMapper">
+    
+    <resultMap type="TTsApprove" id="TTsApproveResult">
+        <result property="id"    column="id"    />
+        <result property="trainingId"    column="training_id"    />
+        <result property="apNo"    column="ap_no"    />
+        <result property="processId"    column="process_id"    />
+        <result property="applicant"    column="applicant"    />
+        <result property="applicationTime"    column="application_time"    />
+        <result property="applicantName"    column="applicant_name"    />
+        <result property="approver"    column="approver"    />
+        <result property="approveTime"    column="approve_time"    />
+        <result property="approverName"    column="approver_name"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="planType"    column="plan_type"    />
+        <result property="deptName" column="dept_name" />
+    </resultMap>
+
+    <sql id="selectTTsApproveVo">
+        select d.training_id,d.id, d.ap_no, d.process_id, d.applicant, d.application_time, d.applicant_name, d.approver, d.approve_time, d.approver_name, d.status, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.plan_type ,s.dept_name from t_ts_approve d
+      left join sys_dept s on s.dept_id = d.dept_id
+    </sql>
+
+    <select id="selectTTsApproveList" parameterType="TTsApprove" resultMap="TTsApproveResult">
+        <include refid="selectTTsApproveVo"/>
+        <where>  
+            <if test="apNo != null  and apNo != ''"> and ap_no = #{apNo}</if>
+            <if test="trainingId != null  and trainingId != ''"> and training_id = #{trainingId}</if>
+            <if test="processId != null  and processId != ''"> and process_id = #{processId}</if>
+            <if test="applicant != null  and applicant != ''"> and applicant = #{applicant}</if>
+            <if test="applicationTime != null "> and application_time = #{applicationTime}</if>
+            <if test="applicantName != null  and applicantName != ''"> and applicant_name like concat(concat('%', #{applicantName}), '%')</if>
+            <if test="approver != null  and approver != ''"> and approver = #{approver}</if>
+            <if test="approveTime != null "> and approve_time = #{approveTime}</if>
+            <if test="approverName != null  and approverName != ''"> and approver_name like concat(concat('%', #{approverName}), '%')</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null  and createrCode != ''"> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null  and updaterCode != ''"> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="planType != null  and planType != ''"> and plan_type = #{planType}</if>
+            and d.del_flag = 0
+        </where>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+    </select>
+    
+    <select id="selectTTsApproveById" parameterType="Long" resultMap="TTsApproveResult">
+        <include refid="selectTTsApproveVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTTsApprove" parameterType="TTsApprove">
+        <selectKey keyProperty="id" resultType="long" order="BEFORE">
+            SELECT seq_t_ts_approve.NEXTVAL as id FROM DUAL
+        </selectKey>
+        insert into t_ts_approve
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="trainingId != null">training_id,</if>
+            <if test="apNo != null">ap_no,</if>
+            <if test="processId != null">process_id,</if>
+            <if test="applicant != null">applicant,</if>
+            <if test="applicationTime != null">application_time,</if>
+            <if test="applicantName != null">applicant_name,</if>
+            <if test="approver != null">approver,</if>
+            <if test="approveTime != null">approve_time,</if>
+            <if test="approverName != null">approver_name,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="planType != null">plan_type,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="trainingId != null">#{trainingId},</if>
+            <if test="apNo != null">#{apNo},</if>
+            <if test="processId != null">#{processId},</if>
+            <if test="applicant != null">#{applicant},</if>
+            <if test="applicationTime != null">#{applicationTime},</if>
+            <if test="applicantName != null">#{applicantName},</if>
+            <if test="approver != null">#{approver},</if>
+            <if test="approveTime != null">#{approveTime},</if>
+            <if test="approverName != null">#{approverName},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="planType != null">#{planType},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTTsApprove" parameterType="TTsApprove">
+        update t_ts_approve
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="trainingId != null">training_id = #{trainingId},</if>
+            <if test="apNo != null">ap_no = #{apNo},</if>
+            <if test="processId != null">process_id = #{processId},</if>
+            <if test="applicant != null">applicant = #{applicant},</if>
+            <if test="applicationTime != null">application_time = #{applicationTime},</if>
+            <if test="applicantName != null">applicant_name = #{applicantName},</if>
+            <if test="approver != null">approver = #{approver},</if>
+            <if test="approveTime != null">approve_time = #{approveTime},</if>
+            <if test="approverName != null">approver_name = #{approverName},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="planType != null">plan_type = #{planType},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deleteTTsApproveById" parameterType="Long">
+        update t_ts_approve set del_flag = 2 where id = #{id}
+    </update>
+
+    <update id="deleteTTsApproveByIds" parameterType="String">
+        update t_ts_approve set del_flag = 2 where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+    
+</mapper>

+ 5 - 1
master/src/main/resources/mybatis/training/bccnew/TTsFirstplanMapper.xml

@@ -35,13 +35,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="sortTmpl"    column="sort_tmpl"    />
         <result property="materialVer"    column="material_ver"    />
         <result property="examType"    column="exam_type"    />
+        <result property="examId"    column="exam_id"    />
         <result property="trainingPlanDate"    column="training_plan_date"    />
         <result property="trainerConfirm"    column="trainer_confirm"    />
         <result property="studentConfirm"    column="student_confirm"    />
     </resultMap>
 
     <sql id="selectTTsFirstplanVo">
-        select d.material_ver,d.exam_type,d.training_plan_date,d.trainer_confirm,d.student_confirm,d.sort_tmpl,d.file_url,d.file_name,d.timer,d.timer_need,d.score_1, d.score_2, d.score_3 ,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.course_type, d.trainer, d.course_date, d.assess, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.plan_status ,s.dept_name from t_ts_firstplan d
+        select d.exam_id,d.material_ver,d.exam_type,d.training_plan_date,d.trainer_confirm,d.student_confirm,d.sort_tmpl,d.file_url,d.file_name,d.timer,d.timer_need,d.score_1, d.score_2, d.score_3 ,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.course_type, d.trainer, d.course_date, d.assess, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.plan_status ,s.dept_name from t_ts_firstplan d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -132,6 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="trainingPlanDate != null">training_plan_date,</if>
             <if test="trainerConfirm != null">trainer_confirm,</if>
             <if test="studentConfirm != null">student_confirm,</if>
+            <if test="examId != null">exam_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -166,6 +168,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="trainingPlanDate != null">#{trainingPlanDate},</if>
             <if test="trainerConfirm != null">#{trainerConfirm},</if>
             <if test="studentConfirm != null">#{studentConfirm},</if>
+            <if test="examId != null">#{examId},</if>
          </trim>
     </insert>
 
@@ -203,6 +206,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="trainingPlanDate != null">training_plan_date=#{trainingPlanDate},</if>
             <if test="trainerConfirm != null">trainer_confirm=#{trainerConfirm},</if>
             <if test="studentConfirm != null">student_confirm=#{studentConfirm},</if>
+            <if test="examId != null">exam_id=#{examId},</if>
         </trim>
         where id = #{id}
     </update>

+ 5 - 1
master/src/main/resources/mybatis/training/bccnew/TTsFirstplanTmplMapper.xml

@@ -30,10 +30,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="sortTmpl"    column="sort_tmpl"    />
         <result property="materialVer"    column="material_ver"    />
         <result property="examType"    column="exam_type"    />
+        <result property="examId"    column="exam_id"    />
     </resultMap>
 
     <sql id="selectTTsFirstplanTmplVo">
-        select d.material_ver,d.exam_type,d.sort_tmpl,d.file_url,d.file_name,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.course_type, d.trainer, d.course_date, d.assess, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks ,s.dept_name from t_ts_firstplan_tmpl d
+        select d.exam_id,d.material_ver,d.exam_type,d.sort_tmpl,d.file_url,d.file_name,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.course_type, d.trainer, d.course_date, d.assess, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks ,s.dept_name from t_ts_firstplan_tmpl d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -98,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="sortTmpl != null">sort_tmpl,</if>
             <if test="materialVer != null">material_ver,</if>
             <if test="examType != null">exam_type,</if>
+            <if test="examId != null">exam_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -124,6 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="sortTmpl != null">#{sortTmpl},</if>
             <if test="materialVer != null">#{materialVer},</if>
             <if test="examType != null">#{examType},</if>
+            <if test="examId != null">#{examId},</if>
          </trim>
     </insert>
 
@@ -153,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="sortTmpl != null">sort_tmpl = #{sortTmpl},</if>
             <if test="materialVer != null">material_ver=#{materialVer},</if>
             <if test="examType != null">exam_type=#{examType},</if>
+            <if test="examId != null">exam_id=#{examId},</if>
         </trim>
         where id = #{id}
     </update>

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

@@ -0,0 +1,50 @@
+<?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">
+  <process id="dsdtTainingProcess" name="导师带徒经理审批" isExecutable="true">
+    <startEvent id="startDsdt" name="开始" activiti:initiator="${applyUser}"></startEvent>
+    <userTask id="jlTask" name="装置经理" activiti:assignee="#{jluser}"></userTask>
+    <endEvent id="endDsdt" name="End"></endEvent>
+    <sequenceFlow id="flow1" sourceRef="startDsdt" targetRef="jlTask"></sequenceFlow>
+    <sequenceFlow id="flow2" name="通过" sourceRef="jlTask" targetRef="endDsdt">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <endEvent id="endDsdt2" name="End"></endEvent>
+    <sequenceFlow id="flow3" name="不通过" sourceRef="jlTask" targetRef="endDsdt2">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_dsdtTainingProcess">
+    <bpmndi:BPMNPlane bpmnElement="dsdtTainingProcess" id="BPMNPlane_dsdtTainingProcess">
+      <bpmndi:BPMNShape bpmnElement="startDsdt" id="BPMNShape_startDsdt">
+        <omgdc:Bounds height="35.0" width="35.0" x="70.0" y="60.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="jlTask" id="BPMNShape_jlTask">
+        <omgdc:Bounds height="55.0" width="105.0" x="170.0" y="50.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endDsdt" id="BPMNShape_endDsdt">
+        <omgdc:Bounds height="35.0" width="35.0" x="340.0" y="60.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endDsdt2" id="BPMNShape_endDsdt2">
+        <omgdc:Bounds height="35.0" width="35.0" x="205.0" y="140.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="105.0" y="77.0"></omgdi:waypoint>
+        <omgdi:waypoint x="170.0" y="77.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+        <omgdi:waypoint x="275.0" y="77.0"></omgdi:waypoint>
+        <omgdi:waypoint x="340.0" y="77.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="32.0" x="289.0" y="79.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="222.0" y="105.0"></omgdi:waypoint>
+        <omgdi:waypoint x="222.0" y="140.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="48.0" x="227.0" y="109.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

+ 36 - 27
ui/src/views/training/bccnew/firstPlanTmpl/index.vue

@@ -93,15 +93,14 @@
     <el-table v-loading="loading" :data="firstPlanTmplList" @selection-change="handleSelectionChange"
               :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="课程编号" align="center" prop="courseCode" :show-overflow-tooltip="true"/>
-      <el-table-column label="培训主题" align="center" prop="topic" :show-overflow-tooltip="true"/>
-      <el-table-column label="培训内容" align="center" prop="content" :show-overflow-tooltip="true"/>
-      <el-table-column label="培训天" align="center" prop="courseDay" :show-overflow-tooltip="true"/>
-      <el-table-column label="培训小时" align="center" prop="courseHour" :show-overflow-tooltip="true"/>
-      <el-table-column label="培训类型" align="center" prop="courseType" :show-overflow-tooltip="true"/>
-      <el-table-column label="讲师" align="center" prop="trainer" :show-overflow-tooltip="true"/>
+      <el-table-column label="课程编号" align="center" prop="courseCode" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="培训主题" align="center" prop="topic" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="材料版本" align="center" prop="materialVer" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="培训时长h" align="center" prop="courseHour" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="讲师" align="center" prop="trainer" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="考试评估方式" align="center" prop="examType" :show-overflow-tooltip="true" width="180"/>
       <el-table-column label="应学习时长" align="center" prop="timerNeed" :show-overflow-tooltip="true"/>
-      <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
+      <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true" width="180"/>
       <el-table-column label="操作" align="center" fixed="right" width="230" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -149,27 +148,33 @@
         <el-form-item label="培训主题" prop="topic">
           <el-input v-model="form.topic" placeholder="请输入培训主题"/>
         </el-form-item>
-        <el-form-item label="培训内容">
-          <el-input v-model="form.content" placeholder="请输入培训内容"/>
+        <el-form-item label="材料版本">
+          <el-input v-model="form.materialVer" placeholder="请输入材料版本"/>
         </el-form-item>
-        <el-form-item label="培训天" prop="courseDay">
-          <el-input v-model="form.courseDay" placeholder="请输入培训天"/>
-        </el-form-item>
-        <el-form-item label="培训小时" prop="courseHour">
-          <el-input v-model="form.courseHour" placeholder="请输入培训小时"/>
-        </el-form-item>
-        <el-form-item label="培训类型" prop="courseType">
-          <el-input v-model="form.courseType" placeholder="请输入培训类型"/>
+        <el-form-item label="培训时长h" prop="courseHour">
+          <el-input-number v-model="form.courseHour" placeholder="请输入培训时长h"/>
         </el-form-item>
         <el-form-item label="讲师" prop="trainer">
           <el-input v-model="form.trainer" placeholder="请输入讲师"/>
         </el-form-item>
-        <el-form-item label="应学习时长(分)" prop="timerNeed">
-          <el-input-number v-model="form.timerNeed" placeholder="请输入应学习时长" style="width: 100%"/>
+        <el-form-item label="考试评估方式" prop="examType">
+          <el-input v-model="form.examType" placeholder="请输入考试评估方式"/>
         </el-form-item>
-        <el-form-item label="培训排序" prop="sortTmpl">
-          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" style="width: 100%"/>
+        <el-form-item label="应学习时长" prop="timerNeed">
+          <el-input-number v-model="form.timerNeed" placeholder="请输入应学习时长" />
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" />
+        </el-form-item><el-form-item label="培训考试" prop="examId">
+        <el-select v-model="form.examId" filterable  :placeholder="$t('请选择') + $t('培训考试')">
+          <el-option
+            v-for="dict in examOptions"
+            :key="dict.examId"
+            :label="dict.title"
+            :value="dict.examId">
+          </el-option>
+        </el-select>
+      </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>
@@ -222,7 +227,6 @@
         :disabled="doc.isUploading"
         :on-progress="handleFileDocProgress"
         :on-success="handleFileDocSuccess"
-        :file-list="doc.file"
         :auto-upload="true"
         drag
       >
@@ -253,7 +257,7 @@
               @click="handleSee(scope.row)"
             >{{ $t('预览') }}
             </el-button>
-            <el-button v-hasPermi="['training:trainingrecords:file']" type="text" size="small" v-if="scope.row.isEdit"
+            <el-button  type="text" size="small" v-if="scope.row.isEdit"
                        @click="save(scope.row)">保存
             </el-button>
             <el-button type="text" size="small" v-if="scope.row.isEdit" @click="cancelFile(scope.row, scope.$index)">
@@ -271,7 +275,6 @@
               type="text"
               icon="el-icon-delete"
               @click="handleDeleteDoc(scope.row)"
-              v-hasPermi="['training:trainingrecords:file']"
             >{{ $t('删除') }}
             </el-button>
           </template>
@@ -310,6 +313,7 @@ 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 {listExam} from "@/api/training/elearn/exam";
 
 export default {
   name: "FirstPlanTmpl",
@@ -317,6 +321,7 @@ export default {
   // components: { Editor },
   data() {
     return {
+      examOptions: [],
       // 报告附件参数
       doc: {
         file: null,
@@ -429,6 +434,9 @@ export default {
     })
     this.getList();
     this.getTreeselect();
+    listExam({ pageNum: 1, pageSize: 1000,  examType: 2 }).then(response => {
+      this.examOptions = response.rows;
+    });
   },
   methods: {
     uploadFile(row) {
@@ -440,6 +448,9 @@ export default {
         if (res.data.fileUrl != null)
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
       })
+      this.$nextTick(()=>{
+        this.$refs.doc.clearFiles();
+      })
     },
     // 文件下载处理
     handleDownload(row) {
@@ -489,8 +500,6 @@ export default {
       getFirstPlanTmpl(response.data).then(res => {
         if (res.data.fileUrl != null) {
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
-          fileList = null
-          file = null
         }
       })
     },

+ 19 - 1
ui/src/views/training/bccnew/firstplan/index.vue

@@ -181,6 +181,19 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" />
+        </el-form-item>
+        <el-form-item label="培训考试" prop="examId">
+          <el-select v-model="form.examId" filterable  :placeholder="$t('请选择') + $t('培训考试')">
+            <el-option
+              v-for="dict in examOptions"
+              :key="dict.examId"
+              :label="dict.title"
+              :value="dict.examId">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>
@@ -223,7 +236,7 @@
     </el-dialog>
 
     <el-dialog :visible.sync="file.open" width="30%" append-to-body>
-      <el-descriptions class="margin-top" title="学习资料" :column="1" size="" border>
+      <el-descriptions class="margin-top" title="学习资料" :column="1" size="medium" border>
         <el-descriptions-item label-style="width:180px">
           <template slot="label">
             <i class="el-icon-user"></i>
@@ -291,6 +304,7 @@ 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 {listExam} from "@/api/training/elearn/exam";
 
 var timer = null;
 export default {
@@ -310,6 +324,7 @@ export default {
         data: {}
       },
       ppt: false,
+      examOptions: [],
       pdf: {
         title: '',
         pdfUrl: '',
@@ -393,6 +408,9 @@ export default {
     }
   },
   created() {
+    listExam({ pageNum: 1, pageSize: 1000,  examType: 2 }).then(response => {
+      this.examOptions = response.rows;
+    });
     //设置表格高度对应屏幕高度
     this.$nextTick(() => {
       this.clientHeight = document.body.clientHeight - 250

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

@@ -161,7 +161,7 @@
     </el-dialog>
 
     <el-dialog :visible.sync="file.open" width="30%" append-to-body>
-      <el-descriptions class="margin-top" title="学习资料" :column="1" size="" border>
+      <el-descriptions class="margin-top" title="学习资料" :column="1"  size="medium"  border>
         <el-descriptions-item label-style="width:180px">
           <template slot="label">
             <i class="el-icon-user"></i>

+ 3 - 2
ui/src/views/training/bccnew/flPlan/index.vue

@@ -440,6 +440,9 @@ export default {
         if (res.data.fileUrl != null)
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
       })
+      this.$nextTick(()=>{
+        this.$refs.doc.clearFiles();
+      })
     },
     // 文件下载处理
     handleDownload(row) {
@@ -489,8 +492,6 @@ export default {
       getFirstPlanTmpl(response.data).then(res => {
         if (res.data.fileUrl != null) {
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
-          fileList = null
-          file = null
         }
       })
     },

+ 3 - 2
ui/src/views/training/bccnew/ftPlan/index.vue

@@ -439,6 +439,9 @@ export default {
         if (res.data.fileUrl != null)
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
       })
+      this.$nextTick(()=>{
+        this.$refs.doc.clearFiles();
+      })
     },
     // 文件下载处理
     handleDownload(row) {
@@ -488,8 +491,6 @@ export default {
       getFirstPlanTmpl(response.data).then(res => {
         if (res.data.fileUrl != null) {
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
-          fileList = null
-          file = null
         }
       })
     },

+ 3 - 2
ui/src/views/training/bccnew/ljPlan/index.vue

@@ -439,6 +439,9 @@ export default {
         if (res.data.fileUrl != null)
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
       })
+      this.$nextTick(()=>{
+        this.$refs.doc.clearFiles();
+      })
     },
     // 文件下载处理
     handleDownload(row) {
@@ -488,8 +491,6 @@ export default {
       getFirstPlanTmpl(response.data).then(res => {
         if (res.data.fileUrl != null) {
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
-          fileList = null
-          file = null
         }
       })
     },

+ 3 - 0
ui/src/views/training/bccnew/tsnew/score.vue

@@ -178,6 +178,9 @@
                           placeholder="选择计划培训结束时间">
           </el-date-picker>
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" />
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>

+ 3 - 2
ui/src/views/training/bccnew/ysPlan/index.vue

@@ -442,6 +442,9 @@ export default {
         if (res.data.fileUrl != null)
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
       })
+      this.$nextTick(()=>{
+        this.$refs.doc.clearFiles();
+      })
     },
     // 文件下载处理
     handleDownload(row) {
@@ -491,8 +494,6 @@ export default {
       getFirstPlanTmpl(response.data).then(res => {
         if (res.data.fileUrl != null) {
           this.doc.commonfileList.push({fileUrl: res.data.fileUrl, fileName: res.data.fileName, id: res.data.id})
-          fileList = null
-          file = null
         }
       })
     },