Browse Source

LY 专项培训

ly 3 years ago
parent
commit
3ccb3d850e

+ 3 - 4
master/src/main/java/com/ruoyi/common/thread/Trainning/PlanApproveMailThead.java → master/src/main/java/com/ruoyi/common/thread/Trainning/PlanApproveMailThread.java

@@ -5,18 +5,17 @@ import com.ruoyi.project.training.spec.domain.TStApprove;
 
 import java.util.Date;
 
-public class PlanApproveMailThead implements Runnable {
+public class PlanApproveMailThread implements Runnable {
     private IMailService mailService;
 
     private String email;
     private String apNo;
-
     private String username;
     private String usernameEN;
     private TStApprove tApprove;
     private String sendType;
 
-    public PlanApproveMailThead(String email, String apNo, String username, String usernameEN, IMailService mailService, TStApprove tApprove, String sendType) {
+    public PlanApproveMailThread(String email, String apNo, String username, String usernameEN, IMailService mailService, TStApprove tApprove, String sendType) {
         this.email = email;
         this.apNo = apNo;
         this.username = username;
@@ -34,7 +33,7 @@ public class PlanApproveMailThead implements Runnable {
     }
 
     /*
-     * 发送年度邮件
+     * 发送邮件
      */
     public void addApprove() {
         String devType = "";

+ 71 - 0
master/src/main/java/com/ruoyi/common/thread/Trainning/PlanStudyMailThread.java

@@ -0,0 +1,71 @@
+package com.ruoyi.common.thread.Trainning;
+
+import com.ruoyi.common.sendEmail.IMailService;
+import com.ruoyi.project.training.spec.domain.TStApprove;
+import com.ruoyi.project.training.spec.domain.TStPlan;
+
+import java.util.Date;
+
+public class PlanStudyMailThread implements Runnable{
+    private IMailService mailService;
+    private String email;
+    private String username;
+    private String usernameEN;
+    private TStPlan tStPlan;
+    private String sendType;
+
+    public PlanStudyMailThread(IMailService mailService, String email, String username, String usernameEN, TStPlan tStPlan, String sendType) {
+        this.mailService = mailService;
+        this.email = email;
+        this.username = username;
+        this.usernameEN = usernameEN;
+        this.tStPlan = tStPlan;
+        this.sendType = sendType;
+    }
+
+    @Override
+    public void run() {
+        sendMail();
+    }
+
+    /*
+     * 发送邮件
+     */
+    public void sendMail() {
+        //写html开始内容
+        String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
+                "<table cellpadding=\"0\" align=\"center\"" +
+                "style=\"width: 600px; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;\">" +
+                "<tbody><tr><th valign=\"middle\" style=\"height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #42a3d3; background-color: #49bcff; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;\">" +
+                "<font face=\"微软雅黑\" size=\"5\" style=\"color: rgb(255, 255, 255); \">CPMS管理系统 </font><font face=\"微软雅黑\" size=\"3\" style=\"color: rgb(255, 255, 255); \">CPMS System</font></th></tr>";
+        //表html中间内容
+        String prime = "";
+        String center = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
+                "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
+                "亲爱的导师 username</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
+                "Dear usernameEN</font></font></h2>" +
+                "<p>您的培训计划已完成:<br>" +
+                "You have a new to-do task:<br>" +
+                "培训内容:<b>plantName</b><br>" +
+                "学习状态:<b>已完成</b><br>" +
+                "学员:<b>staffName</b><br>" +
+                "请登录<a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/training/spec/plan\">CPMS管理系统</a>查看。<br>" +
+                "Please log in the <a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/training/spec/plan\">CPMS</a> to handle it.</p>" +
+                "<p align=\"right\">date</p>" +
+                "<div style=\"width:700px;margin:0 auto;\">" +
+                "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
+                "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by CPMS, please do not reply</p>" +
+                "</div></div></div></td></tr>";
+        String one = center.replaceFirst("username", username);
+        String two = one.replaceFirst("usernameEN", usernameEN);
+        String three = two.replaceFirst("plantName", tStPlan.getPlantName());
+        String seven = three.replaceFirst("staffName", tStPlan.getStaffName());
+        String result = seven.replaceFirst("date", String.valueOf(new Date()));
+        prime = prime + result;
+        //写html结尾内容
+        String end = "</tbody></table></div></body></html>";
+        //拼接html
+        String html = start + prime + end;
+        mailService.sendHtmlMail(email, "CPMS:您的培训计划已完成 CPMS:Your training program is complete (" + tStPlan.getPlantName() + ")", html);
+    }
+}

+ 2 - 10
master/src/main/java/com/ruoyi/project/training/spec/controller/TStApproveController.java

@@ -7,12 +7,8 @@ import com.alibaba.fastjson.JSON;
 import com.github.stuxuhai.jpinyin.PinyinFormat;
 import com.github.stuxuhai.jpinyin.PinyinHelper;
 import com.ruoyi.common.sendEmail.IMailService;
-import com.ruoyi.common.thread.SendEmailThead;
-import com.ruoyi.common.thread.Trainning.PlanApproveMailThead;
+import com.ruoyi.common.thread.Trainning.PlanApproveMailThread;
 import com.ruoyi.project.approve.damain.DevTask;
-import com.ruoyi.project.listener.monthSemsApprove.*;
-import com.ruoyi.project.sems.domain.*;
-import com.ruoyi.project.sems.his.domain.*;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.project.training.spec.domain.TStPlan;
 import com.ruoyi.project.training.spec.domain.TStYearplan;
@@ -22,11 +18,8 @@ import org.activiti.engine.*;
 import org.activiti.engine.impl.identity.Authentication;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
-import org.apache.poi.ss.formula.functions.T;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -39,7 +32,6 @@ import com.ruoyi.project.training.spec.domain.TStApprove;
 import com.ruoyi.project.training.spec.service.ITStApproveService;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
 import javax.annotation.Resource;
@@ -156,7 +148,7 @@ public class TStApproveController extends BaseController
             String usernameEN = PinyinHelper.convertToPinyinString(username, " ", PinyinFormat.WITHOUT_TONE);
             logger.info("email:" + email);
             logger.info("username:" + username);
-            PlanApproveMailThead sendEmailThead = new PlanApproveMailThead(email,apNo, username,usernameEN, mailService, tStApprove, "");
+            PlanApproveMailThread sendEmailThead = new PlanApproveMailThread(email,apNo, username,usernameEN, mailService, tStApprove, "");
             Thread t = new Thread(sendEmailThead);
             t.start();
         }catch (Exception e) {

+ 35 - 1
master/src/main/java/com/ruoyi/project/training/spec/controller/TStPlanController.java

@@ -4,11 +4,18 @@ import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import com.alibaba.fastjson.JSON;
+import com.github.stuxuhai.jpinyin.PinyinFormat;
+import com.github.stuxuhai.jpinyin.PinyinHelper;
+import com.ruoyi.common.sendEmail.IMailService;
+import com.ruoyi.common.thread.Trainning.PlanApproveMailThread;
+import com.ruoyi.common.thread.Trainning.PlanStudyMailThread;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.ISysUserService;
 import com.ruoyi.project.training.spec.domain.TStFeedback;
 import com.ruoyi.project.training.spec.domain.TStSuccessor;
 import com.ruoyi.project.training.spec.domain.TStYearplan;
+import com.ruoyi.project.training.spec.mapper.TStSuccessorMapper;
 import com.ruoyi.project.training.spec.service.ITStSuccessorService;
 import com.ruoyi.project.training.spec.service.ITStYearplanService;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -30,6 +37,8 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 培训计划Controller
  *
@@ -46,12 +55,16 @@ public class TStPlanController extends BaseController
     @Autowired
     private ITStSuccessorService tStSuccessorService;
 
+    @Resource
+    private TStSuccessorMapper stSuccessorMapper;
+
     @Autowired
     private ISysUserService sysUserService;
 
     @Autowired
     private ITStYearplanService tStYearplanService;
-
+    @Autowired
+    private IMailService mailService;
     /**
      * 查询月度反馈培养计划列表
      */
@@ -251,6 +264,27 @@ public class TStPlanController extends BaseController
     @PutMapping("/edit2")
     public AjaxResult edit2(@RequestBody TStPlan tStPlan)
     {
+        //发送邮件
+        try {
+            //已完成
+            if (tStPlan.getStudyState().equals("1")){
+                List<TStSuccessor> successorList = stSuccessorMapper.selectMentorListByStaffId(tStPlan.getStaffId());
+                if (successorList.size() > 0) {
+                    TStSuccessor mentor = successorList.get(0);
+                    SysUser mt = sysUserService.selectUserByStaffId(mentor.getStaffId());
+                    String email = mt.getEmail();
+                    String username = mt.getNickName();
+                    String usernameEN = PinyinHelper.convertToPinyinString(username, " ", PinyinFormat.WITHOUT_TONE);
+                    logger.info("email:" + email);
+                    logger.info("username:" + username);
+                    PlanStudyMailThread sendEmailThead = new PlanStudyMailThread(mailService,email, username,usernameEN, tStPlan, "");
+                    Thread t = new Thread(sendEmailThead);
+                    t.start();
+                }
+            }
+        }catch (Exception e) {
+            logger.error("邮件发送失败" + JSON.toJSONString(e));
+        }
         return toAjax(tStPlanService.updateTStPlan(tStPlan));
     }
 

+ 1 - 0
master/src/main/java/com/ruoyi/project/training/spec/mapper/TStSuccessorMapper.java

@@ -22,6 +22,7 @@ public interface TStSuccessorMapper
      */
     public List<TStSuccessor> selectSuccessorListByMentorId(TStSuccessor tStSuccessor);
 
+    public List<TStSuccessor> selectMentorListByStaffId(String staffId);
     /**
      * 查询继任者清单
      *

+ 11 - 0
master/src/main/resources/mybatis/training/spec/TStSuccessorMapper.xml

@@ -39,6 +39,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <!-- 数据范围过滤 -->
     </select>
 
+    <!--根据学员ID查询导师列表-->
+    <select id="selectMentorListByStaffId" parameterType="String" resultMap="TStSuccessorResult">
+        <include refid="selectTStSuccessorVo"/>
+        <where>
+            <if test="mentorStaffId != null  and mentorStaffId != ''"> and staff_id = #{staffId}</if>
+            and d.del_flag = 0
+        </where>
+        <!-- 数据范围过滤 -->
+    </select>
+
+
     <select id="selectTStSuccessorList" parameterType="TStSuccessor" resultMap="TStSuccessorResult">
         <include refid="selectTStSuccessorVo"/>
         <where>