Jelajahi Sumber

导师带徒台账添加 计划培训开始日期 计划培训结束日期
模板添加排序字段
修改装置培训台账,对应【新员工装置级培训计划-2022.08】文档修改
导师带徒添加试卷附件上传功能,上传日期。

jiangbiao 11 bulan lalu
induk
melakukan
7933817e0f
31 mengubah file dengan 922 tambahan dan 92 penghapusan
  1. 67 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFirstplan.java
  2. 35 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFirstplanTmpl.java
  3. 31 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFlplan.java
  4. 10 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFlplanTmpl.java
  5. 31 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFtplan.java
  6. 10 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFtplanTmpl.java
  7. 31 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsLjplan.java
  8. 10 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsLjplanTmpl.java
  9. 32 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsYsplan.java
  10. 10 0
      master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsYsplanTmpl.java
  11. 7 0
      master/src/main/java/com/ruoyi/project/training/bccnew/service/impl/TTsNewServiceImpl.java
  12. 26 1
      master/src/main/resources/mybatis/training/bccnew/TTsFirstplanMapper.xml
  13. 14 1
      master/src/main/resources/mybatis/training/bccnew/TTsFirstplanTmplMapper.xml
  14. 14 1
      master/src/main/resources/mybatis/training/bccnew/TTsFlplanMapper.xml
  15. 8 3
      master/src/main/resources/mybatis/training/bccnew/TTsFlplanTmplMapper.xml
  16. 14 2
      master/src/main/resources/mybatis/training/bccnew/TTsFtplanMapper.xml
  17. 8 3
      master/src/main/resources/mybatis/training/bccnew/TTsFtplanTmplMapper.xml
  18. 14 1
      master/src/main/resources/mybatis/training/bccnew/TTsLjplanMapper.xml
  19. 8 3
      master/src/main/resources/mybatis/training/bccnew/TTsLjplanTmplMapper.xml
  20. 14 1
      master/src/main/resources/mybatis/training/bccnew/TTsYsplanMapper.xml
  21. 8 3
      master/src/main/resources/mybatis/training/bccnew/TTsYsplanTmplMapper.xml
  22. 3 0
      ui/src/views/training/bccnew/firstPlanTmpl/index.vue
  23. 39 23
      ui/src/views/training/bccnew/firstplan/index.vue
  24. 17 14
      ui/src/views/training/bccnew/firstplan/index_student.vue
  25. 3 0
      ui/src/views/training/bccnew/flPlan/index.vue
  26. 3 0
      ui/src/views/training/bccnew/ftPlan/index.vue
  27. 3 0
      ui/src/views/training/bccnew/ljPlan/index.vue
  28. 32 32
      ui/src/views/training/bccnew/tsnew/index.vue
  29. 244 4
      ui/src/views/training/bccnew/tsnew/score.vue
  30. 173 0
      ui/src/views/training/bccnew/tsnew/score_student.vue
  31. 3 0
      ui/src/views/training/bccnew/ysPlan/index.vue

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

@@ -118,6 +118,73 @@ public class TTsFirstplan extends BaseEntity
 
     private Long timerNeed;
 
+    /** 模板排序*/
+    private String sortTmpl;
+
+    /** 材料版本*/
+    private String materialVer;
+
+    /** 考试评估方式*/
+    private String examType;
+
+    /** 计划培训日期*/
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date trainingPlanDate;
+
+    /** 讲师签名*/
+    private String trainerConfirm;
+
+    /** 学员签名*/
+    private String studentConfirm;
+
+    public String getMaterialVer() {
+        return materialVer;
+    }
+
+    public void setMaterialVer(String materialVer) {
+        this.materialVer = materialVer;
+    }
+
+    public String getExamType() {
+        return examType;
+    }
+
+    public void setExamType(String examType) {
+        this.examType = examType;
+    }
+
+    public Date getTrainingPlanDate() {
+        return trainingPlanDate;
+    }
+
+    public void setTrainingPlanDate(Date trainingPlanDate) {
+        this.trainingPlanDate = trainingPlanDate;
+    }
+
+    public String getTrainerConfirm() {
+        return trainerConfirm;
+    }
+
+    public void setTrainerConfirm(String trainerConfirm) {
+        this.trainerConfirm = trainerConfirm;
+    }
+
+    public String getStudentConfirm() {
+        return studentConfirm;
+    }
+
+    public void setStudentConfirm(String studentConfirm) {
+        this.studentConfirm = studentConfirm;
+    }
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
     public String getScore1() {
         return score1;
     }

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

@@ -98,8 +98,43 @@ public class TTsFirstplanTmpl extends BaseEntity
 
     private String fileName;
 
+    /** 应学习时长 */
     private Long timerNeed;
 
+    /** 模板排序 */
+    private String sortTmpl;
+
+    /** 材料版本 */
+    private String materialVer;
+
+    /** 考试评估方式 */
+    private String examType;
+
+
+    public String getMaterialVer() {
+        return materialVer;
+    }
+
+    public void setMaterialVer(String materialVer) {
+        this.materialVer = materialVer;
+    }
+
+    public String getExamType() {
+        return examType;
+    }
+
+    public void setExamType(String examType) {
+        this.examType = examType;
+    }
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
     public String getFileUrl() {
         return fileUrl;
     }

+ 31 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFlplan.java

@@ -117,6 +117,37 @@ public class TTsFlplan extends BaseEntity
     private Long timer;
 
     private Long timerNeed;
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planStartData;
+
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planEndData;
+
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
+    public Date getPlanStartData() {
+        return planStartData;
+    }
+
+    public void setPlanStartData(Date planStartData) {
+        this.planStartData = planStartData;
+    }
+
+    public Date getPlanEndData() {
+        return planEndData;
+    }
+
+    public void setPlanEndData(Date planEndData) {
+        this.planEndData = planEndData;
+    }
 
     public String getFileUrl() {
         return fileUrl;

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

@@ -100,6 +100,16 @@ public class TTsFlplanTmpl extends BaseEntity
 
     private Long timerNeed;
 
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
     public String getFileUrl() {
         return fileUrl;
     }

+ 31 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsFtplan.java

@@ -117,6 +117,37 @@ public class TTsFtplan extends BaseEntity
     private Long timer;
 
     private Long timerNeed;
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planStartData;
+
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planEndData;
+
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
+    public Date getPlanStartData() {
+        return planStartData;
+    }
+
+    public void setPlanStartData(Date planStartData) {
+        this.planStartData = planStartData;
+    }
+
+    public Date getPlanEndData() {
+        return planEndData;
+    }
+
+    public void setPlanEndData(Date planEndData) {
+        this.planEndData = planEndData;
+    }
 
     public String getFileUrl() {
         return fileUrl;

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

@@ -100,6 +100,16 @@ public class TTsFtplanTmpl extends BaseEntity
 
     private Long timerNeed;
 
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
     public String getFileUrl() {
         return fileUrl;
     }

+ 31 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsLjplan.java

@@ -117,6 +117,37 @@ public class TTsLjplan extends BaseEntity
     private Long timer;
 
     private Long timerNeed;
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planStartData;
+
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planEndData;
+
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
+    public Date getPlanStartData() {
+        return planStartData;
+    }
+
+    public void setPlanStartData(Date planStartData) {
+        this.planStartData = planStartData;
+    }
+
+    public Date getPlanEndData() {
+        return planEndData;
+    }
+
+    public void setPlanEndData(Date planEndData) {
+        this.planEndData = planEndData;
+    }
 
     public String getFileUrl() {
         return fileUrl;

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

@@ -100,6 +100,16 @@ public class TTsLjplanTmpl extends BaseEntity
 
     private Long timerNeed;
 
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
     public String getFileUrl() {
         return fileUrl;
     }

+ 32 - 0
master/src/main/java/com/ruoyi/project/training/bccnew/domain/TTsYsplan.java

@@ -118,6 +118,38 @@ public class TTsYsplan extends BaseEntity
 
     private Long timerNeed;
 
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planStartData;
+
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    private Date planEndData;
+
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
+    public Date getPlanStartData() {
+        return planStartData;
+    }
+
+    public void setPlanStartData(Date planStartData) {
+        this.planStartData = planStartData;
+    }
+
+    public Date getPlanEndData() {
+        return planEndData;
+    }
+
+    public void setPlanEndData(Date planEndData) {
+        this.planEndData = planEndData;
+    }
+
     public String getFileUrl() {
         return fileUrl;
     }

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

@@ -100,6 +100,16 @@ public class TTsYsplanTmpl extends BaseEntity
 
     private Long timerNeed;
 
+    private String sortTmpl;
+
+    public String getSortTmpl() {
+        return sortTmpl;
+    }
+
+    public void setSortTmpl(String sortTmpl) {
+        this.sortTmpl = sortTmpl;
+    }
+
     public String getFileUrl() {
         return fileUrl;
     }

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

@@ -100,6 +100,9 @@ public class TTsNewServiceImpl implements ITTsNewService {
             tTsFirstplan.setFileUrl(tTsFirstplanTmpl.getFileUrl());
             tTsFirstplan.setTimerNeed(tTsFirstplanTmpl.getTimerNeed());
             tTsFirstplan.setTimer(0L);
+            tTsFirstplan.setSortTmpl(tTsFirstplanTmpl.getSortTmpl());
+            tTsFirstplan.setMaterialVer(tTsFirstplanTmpl.getMaterialVer());
+            tTsFirstplan.setExamType(tTsFirstplanTmpl.getExamType());
             tTsFirstplanMapper.insertTTsFirstplan(tTsFirstplan);
         }
         if (tTsNew.getPlanType() == 1) {
@@ -119,6 +122,7 @@ public class TTsNewServiceImpl implements ITTsNewService {
                 entity.setFileUrl(item.getFileUrl());
                 entity.setTimerNeed(item.getTimerNeed());
                 entity.setTimer(0L);
+                entity.setSortTmpl(item.getSortTmpl());
                 tTsLjplanMapper.insertTTsLjplan(entity);
             }
         } else if (tTsNew.getPlanType() == 2) {
@@ -138,6 +142,7 @@ public class TTsNewServiceImpl implements ITTsNewService {
                 entity.setFileUrl(item.getFileUrl());
                 entity.setTimerNeed(item.getTimerNeed());
                 entity.setTimer(0L);
+                entity.setSortTmpl(item.getSortTmpl());
                 tTsYsplanMapper.insertTTsYsplan(entity);
             }
         } else if (tTsNew.getPlanType() == 3) {
@@ -157,6 +162,7 @@ public class TTsNewServiceImpl implements ITTsNewService {
                 entity.setFileUrl(item.getFileUrl());
                 entity.setTimerNeed(item.getTimerNeed());
                 entity.setTimer(0L);
+                entity.setSortTmpl(item.getSortTmpl());
                 tTsFlplanMapper.insertTTsFlplan(entity);
             }
         } else if (tTsNew.getPlanType() == 4) {
@@ -176,6 +182,7 @@ public class TTsNewServiceImpl implements ITTsNewService {
                 entity.setFileUrl(item.getFileUrl());
                 entity.setTimerNeed(item.getTimerNeed());
                 entity.setTimer(0L);
+                entity.setSortTmpl(item.getSortTmpl());
                 tTsFtplanMapper.insertTTsFtplan(entity);
             }
         }

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

@@ -32,10 +32,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="score1"    column="score_1"    />
         <result property="score2"    column="score_2"    />
         <result property="score3"    column="score_3"    />
+        <result property="sortTmpl"    column="sort_tmpl"    />
+        <result property="materialVer"    column="material_ver"    />
+        <result property="examType"    column="exam_type"    />
+        <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.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.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>
 
@@ -63,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsFirstplanById" parameterType="Long" resultMap="TTsFirstplanResult">
@@ -119,6 +126,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="score1 != null">score_1,</if>
             <if test="score2 != null">score_2,</if>
             <if test="score3 != null">score_3,</if>
+            <if test="sortTmpl != null">sort_tmpl,</if>
+            <if test="materialVer != null">material_ver,</if>
+            <if test="examType != null">exam_type,</if>
+            <if test="trainingPlanDate != null">training_plan_date,</if>
+            <if test="trainerConfirm != null">trainer_confirm,</if>
+            <if test="studentConfirm != null">student_confirm,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -147,6 +160,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="score1 != null">#{score1},</if>
             <if test="score2 != null">#{score2},</if>
             <if test="score3 != null">#{score3},</if>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
+            <if test="materialVer != null">#{materialVer},</if>
+            <if test="examType != null">#{examType},</if>
+            <if test="trainingPlanDate != null">#{trainingPlanDate},</if>
+            <if test="trainerConfirm != null">#{trainerConfirm},</if>
+            <if test="studentConfirm != null">#{studentConfirm},</if>
          </trim>
     </insert>
 
@@ -178,6 +197,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="score1 != null">score_1 = #{score1},</if>
             <if test="score2 != null">score_2 = #{score2},</if>
             <if test="score3 != null">score_3 = #{score3},</if>
+            <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="trainingPlanDate != null">training_plan_date=#{trainingPlanDate},</if>
+            <if test="trainerConfirm != null">trainer_confirm=#{trainerConfirm},</if>
+            <if test="studentConfirm != null">student_confirm=#{studentConfirm},</if>
         </trim>
         where id = #{id}
     </update>

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

@@ -27,10 +27,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileUrl" column="file_url" />
         <result property="fileName" column="file_name" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
+        <result property="materialVer"    column="material_ver"    />
+        <result property="examType"    column="exam_type"    />
     </resultMap>
 
     <sql id="selectTTsFirstplanTmplVo">
-        select 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.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>
 
@@ -57,6 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
 
     <select id="selectTTsFirstplanTmplById" parameterType="Long" resultMap="TTsFirstplanTmplResult">
@@ -91,6 +95,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url,</if>
             <if test="fileName != null">file_name,</if>
             <if test="timerNeed != null">timer_need,</if>
+            <if test="sortTmpl != null">sort_tmpl,</if>
+            <if test="materialVer != null">material_ver,</if>
+            <if test="examType != null">exam_type,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -114,6 +121,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">#{fileUrl},</if>
             <if test="fileName != null">#{fileName},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
+            <if test="materialVer != null">#{materialVer},</if>
+            <if test="examType != null">#{examType},</if>
          </trim>
     </insert>
 
@@ -140,6 +150,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url = #{fileUrl},</if>
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="sortTmpl != null">sort_tmpl = #{sortTmpl},</if>
+            <if test="materialVer != null">material_ver=#{materialVer},</if>
+            <if test="examType != null">exam_type=#{examType},</if>
         </trim>
         where id = #{id}
     </update>

+ 14 - 1
master/src/main/resources/mybatis/training/bccnew/TTsFlplanMapper.xml

@@ -32,10 +32,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileName" column="file_name" />
         <result property="timer" column="timer" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
+        <result property="planStartData"    column="plan_start_data"    />
+        <result property="planEndData"    column="plan_end_data"    />
     </resultMap>
 
     <sql id="selectTTsFlplanVo">
-        select d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,d.file_url,d.file_name,d.timer,d.timer_need,s.dept_name from t_ts_flplan d
+        select d.plan_start_data,d.plan_end_data,d.sort_tmpl,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,d.file_url,d.file_name,d.timer,d.timer_need,s.dept_name from t_ts_flplan d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -66,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsFlplanById" parameterType="Long" resultMap="TTsFlplanResult">
@@ -122,6 +126,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name,</if>
             <if test="timer != null">timer,</if>
             <if test="timerNeed != null">timer_need,</if>
+            <if test="planStartData != null">plan_start_data,</if>
+            <if test="planEndData != null">plan_end_data,</if>
+            <if test="sortTmpl != null">sort_tmpl,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -150,6 +157,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">#{fileName},</if>
             <if test="timer != null">#{timer},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
+            <if test="planStartData != null">#{planStartData},</if>
+            <if test="planEndData != null">#{planEndData},</if>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
          </trim>
     </insert>
 
@@ -181,6 +191,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timer != null">timer = #{timer},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="planStartData != null">plan_start_data=#{planStartData},</if>
+            <if test="planEndData != null">plan_end_data=#{planEndData},</if>
+            <if test="sortTmpl != null">sort_tmpl=#{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 8 - 3
master/src/main/resources/mybatis/training/bccnew/TTsFlplanTmplMapper.xml

@@ -27,10 +27,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileUrl" column="file_url" />
         <result property="fileName" column="file_name" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
     </resultMap>
 
     <sql id="selectTTsFlplanTmplVo">
-        select 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.detail_plan, 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_flplan_tmpl d
+        select 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.detail_plan, 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_flplan_tmpl d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -57,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsFlplanTmplById" parameterType="Long" resultMap="TTsFlplanTmplResult">
@@ -91,7 +93,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url,</if>
             <if test="fileName != null">file_name,</if>
             <if test="timerNeed != null">timer_need,</if>
-         </trim>
+            <if test="sortTmpl != null">sort_tmpl,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="newId != null">#{newId},</if>
@@ -114,7 +117,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">#{fileUrl},</if>
             <if test="fileName != null">#{fileName},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
-         </trim>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
+        </trim>
     </insert>
 
     <update id="updateTTsFlplanTmpl" parameterType="TTsFlplanTmpl">
@@ -140,6 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url = #{fileUrl},</if>
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="sortTmpl != null">sort_tmpl = #{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 14 - 2
master/src/main/resources/mybatis/training/bccnew/TTsFtplanMapper.xml

@@ -32,10 +32,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileName" column="file_name" />
         <result property="timer" column="timer" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
+        <result property="planStartData"    column="plan_start_data"    />
+        <result property="planEndData"    column="plan_end_data"    />
     </resultMap>
 
     <sql id="selectTTsFtplanVo">
-        select d.file_url,d.file_name,d.timer,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,s.dept_name from t_ts_ftplan d
+        select d.plan_start_data,d.plan_end_data,d.sort_tmpl,d.file_url,d.file_name,d.timer,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,s.dept_name from t_ts_ftplan d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -66,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsFtplanById" parameterType="Long" resultMap="TTsFtplanResult">
@@ -121,6 +125,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name,</if>
             <if test="timer != null">timer,</if>
             <if test="timerNeed != null">timer_need,</if>
+            <if test="planStartData != null">plan_start_data,</if>
+            <if test="planEndData != null">plan_end_data,</if>
+            <if test="sortTmpl != null">sort_tmpl,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -149,7 +156,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">#{fileName},</if>
             <if test="timer != null">#{timer},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
-         </trim>
+            <if test="planStartData != null">#{planStartData},</if>
+            <if test="planEndData != null">#{planEndData},</if>
+            <if test="sortTmpl != null">#{sortTmpl},</if>         </trim>
     </insert>
 
     <update id="updateTTsFtplan" parameterType="TTsFtplan">
@@ -180,6 +189,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timer != null">timer = #{timer},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="planStartData != null">plan_start_data=#{planStartData},</if>
+            <if test="planEndData != null">plan_end_data=#{planEndData},</if>
+            <if test="sortTmpl != null">sort_tmpl=#{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 8 - 3
master/src/main/resources/mybatis/training/bccnew/TTsFtplanTmplMapper.xml

@@ -27,10 +27,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileUrl" column="file_url" />
         <result property="fileName" column="file_name" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
     </resultMap>
 
     <sql id="selectTTsFtplanTmplVo">
-        select 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.detail_plan, 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_ftplan_tmpl d
+        select 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.detail_plan, 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_ftplan_tmpl d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -57,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsFtplanTmplById" parameterType="Long" resultMap="TTsFtplanTmplResult">
@@ -91,7 +93,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url,</if>
             <if test="fileName != null">file_name,</if>
             <if test="timerNeed != null">timer_need,</if>
-         </trim>
+            <if test="sortTmpl != null">sort_tmpl,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="newId != null">#{newId},</if>
@@ -114,7 +117,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">#{fileUrl},</if>
             <if test="fileName != null">#{fileName},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
-         </trim>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
+        </trim>
     </insert>
 
     <update id="updateTTsFtplanTmpl" parameterType="TTsFtplanTmpl">
@@ -140,6 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url = #{fileUrl},</if>
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="sortTmpl != null">sort_tmpl = #{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 14 - 1
master/src/main/resources/mybatis/training/bccnew/TTsLjplanMapper.xml

@@ -32,10 +32,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileName" column="file_name" />
         <result property="timer" column="timer" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
+        <result property="planStartData"    column="plan_start_data"    />
+        <result property="planEndData"    column="plan_end_data"    />
     </resultMap>
 
     <sql id="selectTTsLjplanVo">
-        select d.file_url,d.file_name,d.timer,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,s.dept_name from t_ts_ljplan d
+        select d.plan_start_data,d.plan_end_data,d.sort_tmpl,d.file_url,d.file_name,d.timer,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,s.dept_name from t_ts_ljplan d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -66,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsLjplanById" parameterType="Long" resultMap="TTsLjplanResult">
@@ -121,6 +125,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name,</if>
             <if test="timer != null">timer,</if>
             <if test="timerNeed != null">timer_need,</if>
+            <if test="planStartData != null">plan_start_data,</if>
+            <if test="planEndData != null">plan_end_data,</if>
+            <if test="sortTmpl != null">sort_tmpl,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -149,6 +156,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">#{fileName},</if>
             <if test="timer != null">#{timer},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
+            <if test="planStartData != null">#{planStartData},</if>
+            <if test="planEndData != null">#{planEndData},</if>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
          </trim>
     </insert>
 
@@ -180,6 +190,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timer != null">timer = #{timer},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="planStartData != null">plan_start_data=#{planStartData},</if>
+            <if test="planEndData != null">plan_end_data=#{planEndData},</if>
+            <if test="sortTmpl != null">sort_tmpl=#{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 8 - 3
master/src/main/resources/mybatis/training/bccnew/TTsLjplanTmplMapper.xml

@@ -27,10 +27,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileUrl" column="file_url" />
         <result property="fileName" column="file_name" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
     </resultMap>
 
     <sql id="selectTTsLjplanTmplVo">
-        select 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.detail_plan, 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_ljplan_tmpl d
+        select 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.detail_plan, 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_ljplan_tmpl d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -57,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsLjplanTmplById" parameterType="Long" resultMap="TTsLjplanTmplResult">
@@ -91,7 +93,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url,</if>
             <if test="fileName != null">file_name,</if>
             <if test="timerNeed != null">timer_need,</if>
-         </trim>
+            <if test="sortTmpl != null">sort_tmpl,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="newId != null">#{newId},</if>
@@ -114,7 +117,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">#{fileUrl},</if>
             <if test="fileName != null">#{fileName},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
-         </trim>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
+        </trim>
     </insert>
 
     <update id="updateTTsLjplanTmpl" parameterType="TTsLjplanTmpl">
@@ -140,6 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url = #{fileUrl},</if>
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="sortTmpl != null">sort_tmpl = #{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 14 - 1
master/src/main/resources/mybatis/training/bccnew/TTsYsplanMapper.xml

@@ -32,10 +32,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileName" column="file_name" />
         <result property="timer" column="timer" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
+        <result property="planStartData"    column="plan_start_data"    />
+        <result property="planEndData"    column="plan_end_data"    />
     </resultMap>
 
     <sql id="selectTTsYsplanVo">
-        select d.file_url,d.file_name,d.timer,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,s.dept_name from t_ts_ysplan d
+        select d.plan_start_data,d.plan_end_data,d.sort_tmpl,d.file_url,d.file_name,d.timer,d.timer_need,d.id, d.new_id, d.course_code, d.topic, d.content, d.course_day, d.course_hour, d.detail_plan, 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, d.score_1, d.score_2, d.score_3 ,s.dept_name from t_ts_ysplan d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -66,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsYsplanById" parameterType="Long" resultMap="TTsYsplanResult">
@@ -121,6 +125,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name,</if>
             <if test="timer != null">timer,</if>
             <if test="timerNeed != null">timer_need,</if>
+            <if test="planStartData != null">plan_start_data,</if>
+            <if test="planEndData != null">plan_end_data,</if>
+            <if test="sortTmpl != null">sort_tmpl,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -149,6 +156,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">#{fileName},</if>
             <if test="timer != null">#{timer},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
+            <if test="planStartData != null">#{planStartData},</if>
+            <if test="planEndData != null">#{planEndData},</if>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
          </trim>
     </insert>
 
@@ -180,6 +190,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timer != null">timer = #{timer},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="planStartData != null">plan_start_data=#{planStartData},</if>
+            <if test="planEndData != null">plan_end_data=#{planEndData},</if>
+            <if test="sortTmpl != null">sort_tmpl=#{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 8 - 3
master/src/main/resources/mybatis/training/bccnew/TTsYsplanTmplMapper.xml

@@ -27,10 +27,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="fileUrl" column="file_url" />
         <result property="fileName" column="file_name" />
         <result property="timerNeed" column="timer_need" />
+        <result property="sortTmpl"    column="sort_tmpl"    />
     </resultMap>
 
     <sql id="selectTTsYsplanTmplVo">
-        select 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.detail_plan, 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_ysplan_tmpl d
+        select 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.detail_plan, 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_ysplan_tmpl d
       left join sys_dept s on s.dept_id = d.dept_id
     </sql>
 
@@ -57,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
+        order by sort_tmpl
     </select>
     
     <select id="selectTTsYsplanTmplById" parameterType="Long" resultMap="TTsYsplanTmplResult">
@@ -91,7 +93,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url,</if>
             <if test="fileName != null">file_name,</if>
             <if test="timerNeed != null">timer_need,</if>
-         </trim>
+            <if test="sortTmpl != null">sort_tmpl,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="newId != null">#{newId},</if>
@@ -114,7 +117,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">#{fileUrl},</if>
             <if test="fileName != null">#{fileName},</if>
             <if test="timerNeed != null">#{timerNeed},</if>
-         </trim>
+            <if test="sortTmpl != null">#{sortTmpl},</if>
+        </trim>
     </insert>
 
     <update id="updateTTsYsplanTmpl" parameterType="TTsYsplanTmpl">
@@ -140,6 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fileUrl != null">file_url = #{fileUrl},</if>
             <if test="fileName != null">file_name = #{fileName},</if>
             <if test="timerNeed != null">timer_need = #{timerNeed},</if>
+            <if test="sortTmpl != null">sort_tmpl = #{sortTmpl},</if>
         </trim>
         where id = #{id}
     </update>

+ 3 - 0
ui/src/views/training/bccnew/firstPlanTmpl/index.vue

@@ -167,6 +167,9 @@
         <el-form-item label="应学习时长(分)" prop="timerNeed">
           <el-input-number v-model="form.timerNeed" placeholder="请输入应学习时长" style="width: 100%"/>
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" style="width: 100%"/>
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>

+ 39 - 23
ui/src/views/training/bccnew/firstplan/index.vue

@@ -64,22 +64,31 @@
     <el-table v-loading="loading" :data="firstplanList" @selection-change="handleSelectionChange" :height="clientHeight"
               border>
       <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="计划培训日期" align="center" prop="trainingPlanDate" :show-overflow-tooltip="true" width="180"/>
       <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="content" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训天" align="center" prop="courseDay" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训小时" align="center" prop="courseHour" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训类型" align="center" prop="courseType" :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="courseDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.courseDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="考核情况" align="center" prop="assess" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="讲师签名" align="center" prop="trainerConfirm" :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="assess" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="讲师签名" align="center" prop="studentConfirm" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="培训状态" align="center" prop="planStatus" :show-overflow-tooltip="true" width="180">
+        <template slot-scope="scope">
+          <el-tag v-if="scope.row.planStatus == 2" size="small" type="success">待考试</el-tag>
+          <el-tag v-if="scope.row.planStatus == 3" size="small" type="success">已完成</el-tag>
+          <el-tag v-if="scope.row.planStatus == 1" size="small" type="success">已中止</el-tag>
+          <el-tag v-else-if="scope.row.planStatus == 0" size="small" type="info">未完成</el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训状态" align="center" prop="planStatus" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="230">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -122,22 +131,29 @@
         <el-form-item label="课程编号" prop="courseCode">
           <el-input v-model="form.courseCode" placeholder="请输入课程编号"/>
         </el-form-item>
+        <el-form-item label="计划培训日期" prop="trainingPlanDate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.trainingPlanDate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择计划培训日期">
+          </el-date-picker>
+        </el-form-item>
         <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>
-        <el-form-item label="培训天" prop="courseDay">
-          <el-input v-model="form.courseDay" placeholder="请输入培训天"/>
+        <el-form-item label="材料版本">
+          <el-input v-model="form.materialVer" 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-option label="请选择字典生成" value=""/>
+<!--        <el-form-item label="培训天" prop="courseDay">-->
+<!--          <el-input v-model="form.courseDay" placeholder="请输入培训天"/>-->
+<!--        </el-form-item>-->
+        <el-form-item label="培训时长h" prop="courseHour">
+          <el-input-number v-model="form.courseHour" placeholder="请输入培训时长h"/>
         </el-form-item>
+<!--        <el-form-item label="培训类型" prop="courseType">-->
+<!--          <el-input v-model="form.courseType" placeholder="请输入培训类型"/>-->
+<!--        </el-form-item>-->
         <el-form-item label="讲师" prop="trainer">
           <el-input v-model="form.trainer" placeholder="请输入讲师"/>
         </el-form-item>
@@ -149,8 +165,11 @@
                           placeholder="选择培训日期">
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="考核情况" prop="assess">
-          <el-input v-model="form.assess" placeholder="请输入考核情况"/>
+        <el-form-item label="考试评估方式" prop="examType">
+          <el-input v-model="form.examType" placeholder="请输入考试评估方式"/>
+        </el-form-item>
+        <el-form-item label="评估结果" prop="assess">
+          <el-input v-model="form.assess" placeholder="请输入评估结果"/>
         </el-form-item>
         <el-form-item label="培训状态">
           <el-select v-model="form.planStatus" placeholder="请选择培训状态">
@@ -165,9 +184,6 @@
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>
-        <el-form-item label="归属部门" prop="deptId">
-          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
-        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>

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

@@ -28,25 +28,31 @@
     <el-table v-loading="loading" :data="firstplanList" @selection-change="handleSelectionChange" :height="clientHeight"
               border>
       <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="计划培训日期" align="center" prop="trainingPlanDate" :show-overflow-tooltip="true" width="180"/>
       <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="content" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训天" align="center" prop="courseDay" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训小时" align="center" prop="courseHour" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训类型" align="center" prop="courseType" :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="courseDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.courseDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="考核情况" align="center" prop="assess" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="第一次成绩" align="center" prop="score1" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="第二次成绩" align="center" prop="score2" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="第三次成绩" align="center" prop="score3" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="讲师签名" align="center" prop="trainerConfirm" :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="assess" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="讲师签名" align="center" prop="studentConfirm" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="培训状态" align="center" prop="planStatus" :show-overflow-tooltip="true" width="180">
+        <template slot-scope="scope">
+          <el-tag v-if="scope.row.planStatus == 2" size="small" type="success">待考试</el-tag>
+          <el-tag v-if="scope.row.planStatus == 3" size="small" type="success">已完成</el-tag>
+          <el-tag v-if="scope.row.planStatus == 1" size="small" type="success">已中止</el-tag>
+          <el-tag v-else-if="scope.row.planStatus == 0" size="small" type="info">未完成</el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="培训状态" align="center" prop="planStatus" :show-overflow-tooltip="true" width="180"/>
-      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width"  width="230">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -116,9 +122,6 @@
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>
-        <el-form-item label="归属部门" prop="deptId">
-          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
-        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -198,7 +201,7 @@
       </el-button>
     </el-dialog>
 
-    <el-dialog :close-on-click-modal="false" v-loading="pdf.loadingFlash" element-loading-background="rgba(0,0,0,0.2)"
+    <el-dialog :close-on-click-modal="false" element-loading-background="rgba(0,0,0,0.2)"
                v-dialogDrag :title="pdf.title"
                :visible.sync="pdf.open" width="1300px" height="800px" :center="true" append-to-body
                @close="handleClose">

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

@@ -175,6 +175,9 @@
         <el-form-item label="应学习时长(分)" prop="timerNeed">
           <el-input-number v-model="form.timerNeed" placeholder="请输入应学习时长" style="width: 100%"/>
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" style="width: 100%"/>
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>

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

@@ -175,6 +175,9 @@
         <el-form-item label="应学习时长(分)" prop="timerNeed">
           <el-input-number v-model="form.timerNeed" placeholder="请输入应学习时长" style="width: 100%"/>
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" style="width: 100%"/>
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>

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

@@ -175,6 +175,9 @@
         <el-form-item label="应学习时长(分)" prop="timerNeed">
           <el-input-number v-model="form.timerNeed" placeholder="请输入应学习时长" style="width: 100%"/>
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" style="width: 100%"/>
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>

+ 32 - 32
ui/src/views/training/bccnew/tsnew/index.vue

@@ -185,38 +185,38 @@
             @click="handleUpdate(scope.row)"
             v-hasPermi="['newstaff:tnNew:edit']"
           >修改 </el-button>
-          <el-dropdown  size="mini">
-            <span class="el-dropdown-link">
-              <el-button
-                type="text"
-                size="mini"
-                icon="el-icon-download"
-              >下载<i class="el-icon-arrow-down"></i></el-button>
-            </span>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item>
-                <el-button
-                  size="mini"
-                  type="text"
-                  @click="handleDownloadWord(scope.row, 'mentorAgreement')"
-                >师徒协议</el-button>
-              </el-dropdown-item>
-              <el-dropdown-item>
-                <el-button
-                  size="mini"
-                  type="text"
-                  @click="handleDownloadWord(scope.row, 'targetPlan')"
-                >导师带徒目标及计划</el-button>
-              </el-dropdown-item>
-              <el-dropdown-item>
-                <el-button
-                  size="mini"
-                  type="text"
-                  @click="handleDownloadWord(scope.row, 'appraisalForm')"
-                >导师带徒考评表</el-button>
-              </el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
+<!--          <el-dropdown  size="mini">-->
+<!--            <span class="el-dropdown-link">-->
+<!--              <el-button-->
+<!--                type="text"-->
+<!--                size="mini"-->
+<!--                icon="el-icon-download"-->
+<!--              >下载<i class="el-icon-arrow-down"></i></el-button>-->
+<!--            </span>-->
+<!--            <el-dropdown-menu slot="dropdown">-->
+<!--              <el-dropdown-item>-->
+<!--                <el-button-->
+<!--                  size="mini"-->
+<!--                  type="text"-->
+<!--                  @click="handleDownloadWord(scope.row, 'mentorAgreement')"-->
+<!--                >师徒协议</el-button>-->
+<!--              </el-dropdown-item>-->
+<!--              <el-dropdown-item>-->
+<!--                <el-button-->
+<!--                  size="mini"-->
+<!--                  type="text"-->
+<!--                  @click="handleDownloadWord(scope.row, 'targetPlan')"-->
+<!--                >导师带徒目标及计划</el-button>-->
+<!--              </el-dropdown-item>-->
+<!--              <el-dropdown-item>-->
+<!--                <el-button-->
+<!--                  size="mini"-->
+<!--                  type="text"-->
+<!--                  @click="handleDownloadWord(scope.row, 'appraisalForm')"-->
+<!--                >导师带徒考评表</el-button>-->
+<!--              </el-dropdown-item>-->
+<!--            </el-dropdown-menu>-->
+<!--          </el-dropdown>-->
         </template>
       </el-table-column>
     </el-table>

+ 244 - 4
ui/src/views/training/bccnew/tsnew/score.vue

@@ -52,8 +52,23 @@
       <el-table-column label="考核情况" align="center" prop="assess" :show-overflow-tooltip="true" width="180"/>
       <el-table-column label="培训状态" align="center" prop="planStatus" :show-overflow-tooltip="true" width="180"/>
       <el-table-column label="第一次成绩" align="center" prop="score1" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="附件" align="center" :show-overflow-tooltip="true" width="80">
+        <template slot-scope="scope">
+          <el-button  icon="el-icon-folder" style="color:#6e96fa;" @click="handleDoc(scope.row , 'tsNew-score1')" circle></el-button>
+        </template>
+      </el-table-column>
       <el-table-column label="第二次成绩" align="center" prop="score2" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="附件" align="center"  :show-overflow-tooltip="true" width="80">
+        <template slot-scope="scope">
+          <el-button  icon="el-icon-folder" style="color:#6e96fa;" @click="handleDoc(scope.row , 'tsNew-score2')" circle></el-button>
+        </template>
+      </el-table-column>
       <el-table-column label="第三次成绩" align="center" prop="score3" :show-overflow-tooltip="true" width="180"/>
+      <el-table-column label="附件" align="center"  :show-overflow-tooltip="true" width="80">
+        <template slot-scope="scope">
+          <el-button  icon="el-icon-folder" style="color:#6e96fa;" @click="handleDoc(scope.row , 'tsNew-score3')" circle></el-button>
+        </template>
+      </el-table-column>
       <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">
@@ -147,12 +162,25 @@
         <el-form-item label="第三次成绩" prop="score3">
           <el-input v-model="form.score3" placeholder="请输入第三次成绩"/>
         </el-form-item>
+        <el-form-item label="计划培训开始时间" prop="planStartData">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.planStartData"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择计划培训开始时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="计划培训结束时间" prop="planEndData">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.planEndData"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择计划培训结束时间">
+          </el-date-picker>
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注"/>
         </el-form-item>
-        <el-form-item label="归属部门" prop="deptId">
-          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
-        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -210,6 +238,95 @@
                 v-if="ppt"></iframe>
       </div>
     </el-dialog>
+
+
+    <!-- 报告附件对话框 -->
+    <el-dialog  :close-on-click-modal="false" v-dialogDrag :title="doc.title" :visible.sync="doc.open" width="1000px" append-to-body >
+      <el-upload
+                 ref="doc"
+                 :limit="50"
+                 :headers="doc.headers"
+                 :action="doc.url + '?pType=' + doc.pType + '&pId=' + doc.pId"
+                 :disabled="doc.isUploading"
+                 :on-progress="handleFileDocProgress"
+                 :on-success="handleFileDocSuccess"
+                 :auto-upload="true"
+                 drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          {{ $t('将文件拖到此处,或') }}
+          <em>{{ $t('点击上传') }}</em>
+        </div>
+      </el-upload>
+      <el-table :data="doc.commonfileList" border>
+        <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
+          <template slot-scope="scope">
+            <a  class="link-type"  @click="handleDownload(scope.row)">
+              <span>{{ scope.row.fileName }}</span>
+            </a>
+          </template>
+        </el-table-column>
+        <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
+        <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
+        <el-table-column :label="$t('上传日期')" align="center" prop="createdate" :show-overflow-tooltip="true" width="120">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <!--        <el-table-column :label="$t('培训日期')" align="center" prop="pDate"  width="150">-->
+        <!--          <template slot-scope="scope">-->
+        <!--            <el-date-picker-->
+        <!--              v-if="scope.row.isEdit"-->
+        <!--              v-model="scope.row.pDate"-->
+        <!--              type="date"-->
+        <!--              value-format="yyyy-MM-dd"-->
+        <!--              placeholder="日期">-->
+        <!--            </el-date-picker>-->
+        <!--            <span v-else>{{ parseTime(scope.row.pDate, '{y}-{m}-{d}') }}</span>-->
+        <!--          </template>-->
+        <!--        </el-table-column>-->
+        <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
+          <template slot-scope="scope">
+            <el-button
+              v-if="scope.row.fileName.endsWith('pdf')"
+              size="mini"
+              type="text"
+              icon="el-icon-view"
+              @click="handleSee(scope.row)"
+            >{{ $t('预览') }}</el-button>
+            <el-button v-hasPermi="['training:trainingrecords:file']"  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)">取消</el-button>
+            <!--            <el-button v-hasPermi="['training:trainingrecords:file']" v-if="!scope.row.isEdit" @click="edit(scope.row)" icon="el-icon-edit" type="text" size="mini">编辑</el-button>-->
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-download"
+              @click="handleDownload(scope.row)"
+            >{{ $t('下载') }}</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDeleteDoc(scope.row)"
+              v-hasPermi="['training:trainingrecords:file']"
+            >{{ $t('删除') }}</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-dialog  :close-on-click-modal="false" v-dialogDrag :title="pdf.title" :visible.sync="pdf.open" width="1300px" append-to-body>
+        <div style="margin-top: -60px;float: right;margin-right: 40px;">
+          <el-button size="mini" type="text" @click="openPdf">{{$t('新页面打开PDF')}}</el-button></div>
+        <div style="margin-top: -30px">
+          <iframe :src="pdf.pdfUrl" frameborder="0" width="100%" height="700px"></iframe>
+        </div>
+      </el-dialog>
+
+      <div slot="footer" class="dialog-footer">
+        <!--        <el-button type="primary" @click="submitFileForm">{{ $t('确 定') }}</el-button>-->
+        <el-button @click="doc.open = false">{{ $t('返 回') }}</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -245,6 +362,8 @@ import {
 } from "@/api/training/bccnew/ftplandsdt";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
+import {getToken} from "@/utils/auth";
+import {allFileList, delCommonfile} from "@/api/common/commonfile";
 
 var timer = null;
 export default {
@@ -261,7 +380,33 @@ export default {
         data: {}
       },
       ppt: false,
-      pdf: {
+      // 报告附件参数
+      doc: {
+        file: "",
+        // 是否显示弹出层(报告附件)
+        open: false,
+        // 弹出层标题(报告附件)
+        title: "附件",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 报告附件上传位置编号
+        ids: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/common/commonfile/uploadFile",
+        commonfileList: null,
+        queryParams: {
+          pId: null,
+          pType: 'traning'
+        },
+        pType: 'traning',
+        pId: null,
+        form: {}
+      },
+      pdf : {
         title: '',
         pdfUrl: '',
         numPages: null,
@@ -321,6 +466,101 @@ export default {
     });
   },
   methods: {
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    },
+    /** 报告附件按钮操作 */
+    handleDoc(row , fileType) {
+      if (this.planType === 1) {
+        fileType+='lj';
+      } else if (this.planType === 2) {
+        fileType+='ys';
+      } else if (this.planType === 3) {
+        fileType+='fl';
+      } else if (this.planType === 4) {
+        fileType+='ft';
+      }
+      this.doc.pType = fileType
+      this.doc.queryParams.pType = fileType
+      this.doc.id = row.id;
+      this.doc.title = this.$t('附件') ;
+      this.doc.open = true;
+      this.doc.queryParams.pId = row.id
+      this.doc.pId = row.id
+      this.getFileList()
+      this.$nextTick(() => {
+        this.$refs.doc.clearFiles()
+      })
+    },
+    getFileList (){
+      allFileList(this.doc.queryParams).then(response => {
+        response.forEach(element => {
+          element["isEdit"] = false
+        });
+        response.forEach(element => {
+          element["isAdd"] = false
+        });
+        this.doc.commonfileList = response;
+      });
+    },
+    //附件上传中处理
+    handleFileDocProgress(event, file, fileList) {
+      this.doc.file = file;
+      this.doc.isUploading = true;
+    },
+    //附件上传成功处理
+    handleFileDocSuccess(response, file, fileList) {
+      this.doc.isUploading = false;
+      this.$alert(response.msg, this.$t('导入结果'), { dangerouslyUseHTMLString: true });
+      this.getFileList()
+    },
+    // 文件下载处理
+    handleDownload(row) {
+      var name = row.fileName;
+      var url = row.fileUrl;
+      var suffix = url.substring(url.lastIndexOf("."), url.length);
+      const a = document.createElement('a')
+      a.setAttribute('download', name)
+      a.setAttribute('target', '_blank')
+      a.setAttribute('href', process.env.VUE_APP_BASE_API + url)
+      a.click()
+    },
+    openPdf(){
+      window.open(this.pdf.pdfUrl);//path是文件的全路径地址
+    },
+    handleSee (row){
+      // window.open(process.env.VUE_APP_BASE_API +'/pdf/web/viewer.html?file=' + process.env.VUE_APP_BASE_API + row.fileUrl);//path是文件的全路径地址
+      this.pdf.open =true
+      this.pdf.title = row.fileName
+      this.pdf.pdfUrl = process.env.VUE_APP_BASE_API +'/pdf/web/viewer.html?file=' + process.env.VUE_APP_BASE_API + row.fileUrl
+    },
+    /** 删除按钮操作 */
+    handleDeleteDoc(row) {
+      const ids = row.id || this.ids;
+      this.$confirm(this.$t('是否确认删除?'), this.$t('警告'), {
+        confirmButtonText: this.$t('确定'),
+        cancelButtonText: this.$t('取消'),
+        type: "warning"
+      }).then(function() {
+        return delCommonfile(ids);
+      }).then(() => {
+        this.getFileList()
+        this.msgSuccess(this.$t('删除成功'));
+      })
+    },
     handleClose() {
       window.clearInterval(timer);
       this.getList();

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

@@ -25,6 +25,22 @@
       <el-table-column label="第一次成绩" align="center" prop="score1" :show-overflow-tooltip="true" width="180"/>
       <el-table-column label="第二次成绩" align="center" prop="score2" :show-overflow-tooltip="true" width="180"/>
       <el-table-column label="第三次成绩" align="center" prop="score3" :show-overflow-tooltip="true" width="180"/>
+      <el-form-item label="计划培训开始时间" prop="planStartData">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="form.planStartData"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择计划培训开始时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="计划培训结束时间" prop="planEndData">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="form.planStartData"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择计划培训结束时间">
+        </el-date-picker>
+      </el-form-item>
       <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">
@@ -97,6 +113,40 @@
                 v-if="ppt"></iframe>
       </div>
     </el-dialog>
+
+
+
+    <!-- 报告附件对话框 -->
+    <el-dialog  :close-on-click-modal="false" v-dialogDrag :title="doc.title" :visible.sync="doc.open" width="1000px" append-to-body >
+      <el-table :data="doc.commonfileList" border>
+        <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
+          <template slot-scope="scope">
+            <a  class="link-type"  @click="handleDownload(scope.row)">
+              <span>{{ scope.row.fileName }}</span>
+            </a>
+          </template>
+        </el-table-column>
+        <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
+        <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
+        <el-table-column :label="$t('上传日期')" align="center" prop="createdate" :show-overflow-tooltip="true" width="120">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-dialog  :close-on-click-modal="false" v-dialogDrag :title="pdf.title" :visible.sync="pdf.open" width="1300px" append-to-body>
+        <div style="margin-top: -60px;float: right;margin-right: 40px;">
+          <el-button size="mini" type="text" @click="openPdf">{{$t('新页面打开PDF')}}</el-button></div>
+        <div style="margin-top: -30px">
+          <iframe :src="pdf.pdfUrl" frameborder="0" width="100%" height="700px"></iframe>
+        </div>
+      </el-dialog>
+
+      <div slot="footer" class="dialog-footer">
+        <!--        <el-button type="primary" @click="submitFileForm">{{ $t('确 定') }}</el-button>-->
+        <el-button @click="doc.open = false">{{ $t('返 回') }}</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -132,6 +182,8 @@ import {
 } from "@/api/training/bccnew/ftplandsdt";
 import {treeselect} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
+import {getToken} from "@/utils/auth";
+import {allFileList, delCommonfile} from "@/api/common/commonfile";
 
 var timer = null;
 export default {
@@ -143,6 +195,32 @@ export default {
   components: {Treeselect},
   data() {
     return {
+      // 报告附件参数
+      doc: {
+        file: "",
+        // 是否显示弹出层(报告附件)
+        open: false,
+        // 弹出层标题(报告附件)
+        title: "附件",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 报告附件上传位置编号
+        ids: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/common/commonfile/uploadFile",
+        commonfileList: null,
+        queryParams: {
+          pId: null,
+          pType: 'traning'
+        },
+        pType: 'traning',
+        pId: null,
+        form: {}
+      },
       file: {
         open: false,
         data: {}
@@ -208,6 +286,101 @@ export default {
     });
   },
   methods: {
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    },
+    /** 报告附件按钮操作 */
+    handleDoc(row , fileType) {
+      if (this.planType === 1) {
+        fileType+='lj';
+      } else if (this.planType === 2) {
+        fileType+='ys';
+      } else if (this.planType === 3) {
+        fileType+='fl';
+      } else if (this.planType === 4) {
+        fileType+='ft';
+      }
+      this.doc.pType = fileType
+      this.doc.queryParams.pType = fileType
+      this.doc.id = row.id;
+      this.doc.title = this.$t('附件') ;
+      this.doc.open = true;
+      this.doc.queryParams.pId = row.id
+      this.doc.pId = row.id
+      this.getFileList()
+      this.$nextTick(() => {
+        this.$refs.doc.clearFiles()
+      })
+    },
+    getFileList (){
+      allFileList(this.doc.queryParams).then(response => {
+        response.forEach(element => {
+          element["isEdit"] = false
+        });
+        response.forEach(element => {
+          element["isAdd"] = false
+        });
+        this.doc.commonfileList = response;
+      });
+    },
+    //附件上传中处理
+    handleFileDocProgress(event, file, fileList) {
+      this.doc.file = file;
+      this.doc.isUploading = true;
+    },
+    //附件上传成功处理
+    handleFileDocSuccess(response, file, fileList) {
+      this.doc.isUploading = false;
+      this.$alert(response.msg, this.$t('导入结果'), { dangerouslyUseHTMLString: true });
+      this.getFileList()
+    },
+    // 文件下载处理
+    handleDownload(row) {
+      var name = row.fileName;
+      var url = row.fileUrl;
+      var suffix = url.substring(url.lastIndexOf("."), url.length);
+      const a = document.createElement('a')
+      a.setAttribute('download', name)
+      a.setAttribute('target', '_blank')
+      a.setAttribute('href', process.env.VUE_APP_BASE_API + url)
+      a.click()
+    },
+    openPdf(){
+      window.open(this.pdf.pdfUrl);//path是文件的全路径地址
+    },
+    handleSee (row){
+      // window.open(process.env.VUE_APP_BASE_API +'/pdf/web/viewer.html?file=' + process.env.VUE_APP_BASE_API + row.fileUrl);//path是文件的全路径地址
+      this.pdf.open =true
+      this.pdf.title = row.fileName
+      this.pdf.pdfUrl = process.env.VUE_APP_BASE_API +'/pdf/web/viewer.html?file=' + process.env.VUE_APP_BASE_API + row.fileUrl
+    },
+    /** 删除按钮操作 */
+    handleDeleteDoc(row) {
+      const ids = row.id || this.ids;
+      this.$confirm(this.$t('是否确认删除?'), this.$t('警告'), {
+        confirmButtonText: this.$t('确定'),
+        cancelButtonText: this.$t('取消'),
+        type: "warning"
+      }).then(function() {
+        return delCommonfile(ids);
+      }).then(() => {
+        this.getFileList()
+        this.msgSuccess(this.$t('删除成功'));
+      })
+    },
     handleClose() {
       window.clearInterval(timer);
       this.getList();

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

@@ -178,6 +178,9 @@
         <el-form-item label="应学习时长(分)" prop="timerNeed">
           <el-input-number v-model="form.timerNeed" placeholder="请输入应学习时长" style="width: 100%"/>
         </el-form-item>
+        <el-form-item label="培训排序" prop="sortTmpl">
+          <el-input-number v-model="form.sortTmpl" placeholder="请输入培训排序" style="width: 100%"/>
+        </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="form.remarks" placeholder="请输入备注" />
         </el-form-item>