Kaynağa Gözat

导师带徒 修改word生成

jiangbiao 11 ay önce
ebeveyn
işleme
0da550bdd8

+ 81 - 37
master/src/main/java/com/ruoyi/project/training/bccnew/controller/TTsNewController.java

@@ -2,6 +2,7 @@ package com.ruoyi.project.training.bccnew.controller;
 
 import com.deepoove.poi.XWPFTemplate;
 import com.deepoove.poi.data.*;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -15,8 +16,8 @@ import com.ruoyi.project.system.service.ISysUserService;
 import com.ruoyi.project.training.bccnew.domain.*;
 import com.ruoyi.project.training.bccnew.service.*;
 import io.jsonwebtoken.lang.Assert;
+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.io.File;
@@ -25,10 +26,7 @@ import java.io.InputStream;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -101,7 +99,7 @@ public class TTsNewController extends BaseController {
     public TableDataInfo list(TTsNew tTsNew) {
         startPage();
         if ("1".equals(tTsNew.getIsStudent())) {
-                tTsNew.setStaffId(getBaseStaffId());
+            tTsNew.setStaffId(getBaseStaffId());
         }
         List<TTsNew> list = tTsNewService.selectTTsNewList(tTsNew);
         //线程池
@@ -204,10 +202,10 @@ public class TTsNewController extends BaseController {
     @Log(title = "导师带徒", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TTsNew tTsNew) {
-        if (tTsNew.getPlanStatus()==0){
+        if (tTsNew.getPlanStatus() == 0) {
             return toAjax(tTsNewService.updateTTsNew(tTsNew));
         }
-        return toAjax(tTsNewService.updateTTsNew(tTsNew,getUserId(),getNickName()));
+        return toAjax(tTsNewService.updateTTsNew(tTsNew, getUserId(), getNickName()));
     }
 
     /**
@@ -245,13 +243,21 @@ public class TTsNewController extends BaseController {
         String mentorAgreementWordPath = this.genMentorAgreementWord(tTsNew);
         // 生成word - Target Plan
         String targetPlanWordPath = this.genTargetPlanWord(tTsNew);
-        // 生成word - Appraisal Form
-        String appraisalFormWordPath = this.genAppraisalFormWord(tTsNew);
         // 更新文件地址
         tTsNew.setMentorAgreementWordPath(mentorAgreementWordPath);
         tTsNew.setTargetPlanWordPath(targetPlanWordPath);
+//        tTsNew.setAppraisalFormWordPath(appraisalFormWordPath);
+        tTsNewService.updateTTsNew(tTsNew, getUserId(), getNickName());
+    }
+
+    @GetMapping("/genAppraisalFormWord/{newId}")
+    public AjaxResult genAppraisalFormWord(@PathVariable Long newId) throws IOException {
+        // 生成word - Appraisal Form
+        TTsNew tTsNew = tTsNewService.selectTTsNewById(newId);
+        String appraisalFormWordPath = this.genAppraisalFormWord(tTsNew);
         tTsNew.setAppraisalFormWordPath(appraisalFormWordPath);
-        tTsNewService.updateTTsNew(tTsNew,getUserId(),getNickName());
+        tTsNewService.updateTTsNew(tTsNew, getUserId(), getNickName());
+        return AjaxResult.success(appraisalFormWordPath);
     }
 
     /**
@@ -343,6 +349,11 @@ public class TTsNewController extends BaseController {
         String staffId = tTsNew.getStaffId();
         SysUser mentor = sysUserService.selectUserByStaffId(mentorStaffId);
         SysUser apprentice = sysUserService.selectUserByStaffId(staffId);
+        List<TTsApprove> tTsApproves = tsApproveService.selectTTsApproveByNewId(tTsNew.getNewId());
+        if (CollectionUtils.isNotEmpty(tTsApproves)) {
+            SysUser manager = sysUserService.selectUserById(Long.valueOf(tTsApproves.get(0).getApprover()));
+            params.put("mgrSign", Pictures.ofLocal(fileName(manager.getSignUrl())).size(100, 40).create());
+        }
         params.put("tutorSignature", Pictures.ofLocal(fileName(mentor.getSignUrl())).size(100, 40).create());
         params.put("traineeSignature", Pictures.ofLocal(fileName(apprentice.getSignUrl())).size(100, 40).create());
         params.put("tutor", Texts.of(mentor.getNickName()).create());
@@ -427,7 +438,7 @@ public class TTsNewController extends BaseController {
         params.put("traineeSignature", Pictures.ofLocal(fileName(apprentice.getSignUrl())).size(100, 40).create());
         params.put("tutor", Texts.of(mentor.getNickName()).create());
         params.put("trainee", Texts.of(apprentice.getNickName()).create());
-        RowRenderData[] planList = null;
+        List<RowRenderData> planList = new ArrayList<>();
         String post = "";
         Long planType = tTsNew.getPlanType();
         Long newId = tTsNew.getNewId();
@@ -436,52 +447,85 @@ public class TTsNewController extends BaseController {
             TTsLjplan ljplan = new TTsLjplan();
             ljplan.setNewId(newId);
             List<TTsLjplan> tTsLjplans = tTsLjplanService.selectTTsLjplanListByNewId(ljplan);
-            planList = new RowRenderData[tTsLjplans.size() + 2];
-            planList[0] = Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见");
-            planList[1] = Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题");
-            int i = 1;
+            planList.add(Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见"));
+            planList.add(Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题"));
             for (TTsLjplan plan : tTsLjplans) {
-                i++;
-                planList[i] = Rows.create(plan.getDetailPlan(), plan.getTopic(), "", "", "", "", "");
+                String dateStr = plan.getCourseDate()==null?"": formatter.format(plan.getCourseDate());
+                if (StringUtils.isNotEmpty(plan.getScore1())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore1(), apprentice.getNickName(), mentor.getNickName(), plan.getScore1().equals("好") ? "是" : "否"));
+                }else {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr,"", apprentice.getNickName(), mentor.getNickName(), ""));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore2())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore2(), apprentice.getNickName(), mentor.getNickName(), plan.getScore2().equals("好") ? "是" : "否"));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore3())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), formatter.format(plan.getCourseDate()), plan.getScore3(), apprentice.getNickName(), mentor.getNickName(), plan.getScore3().equals("好") ? "是" : "否"));
+                }
             }
         } else if (planType == 2L) {
             post = "压缩";
             TTsYsplan ysplan = new TTsYsplan();
             ysplan.setNewId(newId);
             List<TTsYsplan> tTsYsplans = tTsYsplanService.selectTTsYsplanListByNewId(ysplan);
-            planList = new RowRenderData[tTsYsplans.size() + 2];
-            planList[0] = Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见");
-            planList[1] = Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题");
-            int i = 1;
+            planList.add(Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见"));
+            planList.add(Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题"));
+
             for (TTsYsplan plan : tTsYsplans) {
-                i++;
-                planList[i] = Rows.create(plan.getDetailPlan(), plan.getTopic(), "", "", "", "", "");
+                String dateStr = plan.getCourseDate()==null?"": formatter.format(plan.getCourseDate());
+                if (StringUtils.isNotEmpty(plan.getScore1())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore1(), apprentice.getNickName(), mentor.getNickName(), plan.getScore1().equals("好") ? "是" : "否"));
+                }else {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr,"", apprentice.getNickName(), mentor.getNickName(), ""));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore2())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore2(), apprentice.getNickName(), mentor.getNickName(), plan.getScore2().equals("好") ? "是" : "否"));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore3())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), formatter.format(plan.getCourseDate()), plan.getScore3(), apprentice.getNickName(), mentor.getNickName(), plan.getScore3().equals("好") ? "是" : "否"));
+                }
             }
         } else if (planType == 3L) {
             post = "分离";
             TTsFlplan flplan = new TTsFlplan();
             flplan.setNewId(newId);
             List<TTsFlplan> tTsFlplans = tTsFlplanService.selectTTsFlplanListByNewId(flplan);
-            planList = new RowRenderData[tTsFlplans.size() + 2];
-            planList[0] = Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见");
-            planList[1] = Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题");
-            int i = 1;
+            planList.add(Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见"));
+            planList.add(Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题"));
             for (TTsFlplan plan : tTsFlplans) {
-                i++;
-                planList[i] = Rows.create(plan.getDetailPlan(), plan.getTopic(), "", "", "", "", "");
+                String dateStr = plan.getCourseDate()==null?"": formatter.format(plan.getCourseDate());
+                if (StringUtils.isNotEmpty(plan.getScore1())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore1(), apprentice.getNickName(), mentor.getNickName(), plan.getScore1().equals("好") ? "是" : "否"));
+                }else {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr,"", apprentice.getNickName(), mentor.getNickName(), ""));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore2())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore2(), apprentice.getNickName(), mentor.getNickName(), plan.getScore2().equals("好") ? "是" : "否"));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore3())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), formatter.format(plan.getCourseDate()), plan.getScore3(), apprentice.getNickName(), mentor.getNickName(), plan.getScore3().equals("好") ? "是" : "否"));
+                }
             }
         } else if (planType == 4L) {
             post = "芳烃";
             TTsFtplan ftplan = new TTsFtplan();
             ftplan.setNewId(newId);
             List<TTsFtplan> tTsFtplans = tTsFtplanService.selectTTsFtplanListByNewId(ftplan);
-            planList = new RowRenderData[tTsFtplans.size() + 2];
-            planList[0] = Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见");
-            planList[1] = Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题");
-            int i = 1;
+            planList.add(Rows.create("Training Topics 培训主题", "", "Training Date 培训日期", "Training Effectiveness Evaluation* 培训效果评价*", "Training Effectiveness Acknowledgement 培训效果确认", "", "Mentor comment 导师意见"));
+            planList.add(Rows.create("", "", "", "", "Trainee 学徒", "Tutor 导师", "Proceed to next topic or not 是否转至下一主题"));
             for (TTsFtplan plan : tTsFtplans) {
-                i++;
-                planList[i] = Rows.create(plan.getDetailPlan(), plan.getTopic(), "", "", "", "", "");
+                String dateStr = plan.getCourseDate()==null?"": formatter.format(plan.getCourseDate());
+                if (StringUtils.isNotEmpty(plan.getScore1())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore1(), apprentice.getNickName(), mentor.getNickName(), plan.getScore1().equals("好") ? "是" : "否"));
+                }else {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr,"", apprentice.getNickName(), mentor.getNickName(), ""));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore2())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), dateStr, plan.getScore2(), apprentice.getNickName(), mentor.getNickName(), plan.getScore2().equals("好") ? "是" : "否"));
+                }
+                if (StringUtils.isNotEmpty(plan.getScore3())) {
+                    planList.add(Rows.create(plan.getDetailPlan(), plan.getTopic(), formatter.format(plan.getCourseDate()), plan.getScore3(), apprentice.getNickName(), mentor.getNickName(), plan.getScore3().equals("好") ? "是" : "否"));
+                }
             }
         }
         params.put("tutorPost", Texts.of(post).create());
@@ -491,7 +535,7 @@ public class TTsNewController extends BaseController {
                 .map(MergeCellRule.Grid.of(0, 2), MergeCellRule.Grid.of(1, 2))
                 .map(MergeCellRule.Grid.of(0, 4), MergeCellRule.Grid.of(0, 5))
                 .map(MergeCellRule.Grid.of(0, 3), MergeCellRule.Grid.of(1, 3)).build();
-        params.put("planList", Tables.of(planList).mergeRule(rule).create());
+        params.put("planList", Tables.of(planList.toArray(new RowRenderData[0])).mergeRule(rule).create());
         // 渲染文本
         return params;
     }

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

@@ -20,6 +20,8 @@ public interface TTsApproveMapper
      */
     public TTsApprove selectTTsApproveById(Long id);
 
+    public List<TTsApprove> selectTTsApproveByNewId(Long id);
+
     /**
      * 查询导师带徒审批列表
      * 

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

@@ -21,6 +21,7 @@ public interface ITTsApproveService
      * @return 导师带徒审批
      */
     public TTsApprove selectTTsApproveById(Long id);
+    public List<TTsApprove> selectTTsApproveByNewId(Long newId);
 
     public AjaxResult doApprove(Long id, String planType, Long userId, String userName);
 

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

@@ -75,6 +75,9 @@ public class TTsApproveServiceImpl implements ITTsApproveService {
     @Override
     public TTsApprove selectTTsApproveById(Long id) {
         return tTsApproveMapper.selectTTsApproveById(id);
+    }@Override
+    public List<TTsApprove> selectTTsApproveByNewId(Long id) {
+        return tTsApproveMapper.selectTTsApproveByNewId(id);
     }
 
     @Override

+ 6 - 1
master/src/main/resources/mybatis/training/bccnew/TTsApproveMapper.xml

@@ -60,7 +60,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectTTsApproveVo"/>
         where id = #{id}
     </select>
-        
+
+    <select id="selectTTsApproveByNewId" parameterType="Long" resultMap="TTsApproveResult">
+        <include refid="selectTTsApproveVo"/>
+        where newId = #{newId}
+    </select>
+
     <insert id="insertTTsApprove" parameterType="TTsApprove">
         <selectKey keyProperty="id" resultType="long" order="BEFORE">
             SELECT seq_t_ts_approve.NEXTVAL as id FROM DUAL

BIN
master/src/main/resources/static/word/training/appraisalForm.docx


+ 8 - 0
ui/src/api/training/bccnew/tsnew.js

@@ -17,6 +17,14 @@ export function getTsnew(newId) {
   })
 }
 
+// 查询导师带徒详细
+export function genAppraisalFormWord(newId) {
+  return request({
+    url: '/bccnew/tsnew/genAppraisalFormWord/' + newId,
+    method: 'get'
+  })
+}
+
 // 新增导师带徒
 export function addTsnew(data) {
   return request({

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

@@ -99,8 +99,8 @@
       </el-table-column>
       <el-table-column label="第一次成绩" align="center" prop="score1" :show-overflow-tooltip="true" width="200">
         <template slot-scope="scope">
-          <div v-if="scope.row.score1 == null">
-            <el-select v-model="scope.row.score1&&scope.row.planStatus==2" style="width: 130px"
+          <div v-if="scope.row.score1 == null&&scope.row.planStatus==2">
+            <el-select v-model="scope.row.score1Tmp" style="width: 130px"
                        placeholder="请选择成绩">
               <el-option value="合格" label="合格" key="合格"/>
               <el-option value="不合格" label="不合格" key="不合格"/>

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

@@ -429,7 +429,16 @@
 </template>
 
 <script>
-import { listTsnew, getTsnew, delTsnew, addTsnew, updateTsnew, exportTsnew, importTemplate} from "@/api/training/bccnew/tsnew";
+import {
+  listTsnew,
+  getTsnew,
+  delTsnew,
+  addTsnew,
+  updateTsnew,
+  exportTsnew,
+  importTemplate,
+  genAppraisalFormWord
+} from "@/api/training/bccnew/tsnew";
 import { treeselect } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
@@ -570,24 +579,37 @@ export default {
   methods: {
     // 文件下载处理
     handleDownloadWord(row, type) {
+      let name;
+      let url;
       console.log(row)
       if (type == 'mentorAgreement') {
-        var name = row.mentorAgreementWordPath;
-        var url = row.mentorAgreementWordPath;
+        name = row.mentorAgreementWordPath;
+        url = row.mentorAgreementWordPath;
+        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()
       } else if (type == 'targetPlan') {
-        var name = row.targetPlanWordPath;
-        var url = row.targetPlanWordPath;
+        name = row.targetPlanWordPath;
+        url = row.targetPlanWordPath;
+        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()
       } else if (type == 'appraisalForm') {
-        var name = row.appraisalFormWordPath;
-        var url = row.appraisalFormWordPath;
+        genAppraisalFormWord(row.newId).then(res=>{
+          name = res.msg;
+          url = res.msg;
+          console.log(url)
+          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()
+        })
       }
-      var suffix = url.substring(url.lastIndexOf("."), url.length);
-      console.log(url)
-      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()
     },
     /** 查询新员工培训列表 */
     getList() {