Quellcode durchsuchen

-添加装置培训计划定时任务

jiangbiao vor 2 Jahren
Ursprung
Commit
f58b3fcfa4

+ 85 - 0
master/src/main/java/com/ruoyi/framework/task/TrainingRegularTask.java

@@ -0,0 +1,85 @@
+package com.ruoyi.framework.task;
+
+import com.github.stuxuhai.jpinyin.PinyinFormat;
+import com.github.stuxuhai.jpinyin.PinyinHelper;
+import com.ruoyi.common.sendEmail.IMailService;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SpringContextUtils;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
+import com.ruoyi.project.training.domain.TTrainingRegular;
+import com.ruoyi.project.training.service.ITTrainingRegularService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class TrainingRegularTask extends BaseController {
+
+    @Autowired
+    private ITTrainingRegularService tTrainingRegularService;
+
+    @Autowired
+    private ISysUserService sysUserService;
+
+    public void execute() {
+        try {
+            TTrainingRegular tTrainingRegular = new TTrainingRegular();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+            tTrainingRegular.setPlanDate(sdf.format(new Date()));
+            List<TTrainingRegular> list = tTrainingRegularService.selectTTrainingRegularByPlanDate(tTrainingRegular);
+            IMailService mailService = (IMailService) SpringContextUtils.getBean("mailService");
+            logger.info("=====================本次装置培训计划清单:{}", list);
+            for (TTrainingRegular regular : list) {
+                for (String staffId : regular.getLecturer().split(",")) {
+                    try {
+                        SysUser user = sysUserService.selectUserByStaffId(staffId);
+                        String username = user.getNickName();
+                        String loginName = user.getUserName();
+                        String usernameEN = PinyinHelper.convertToPinyinString(username, " ", PinyinFormat.WITHOUT_TONE);
+                        String email = user.getEmail();
+                        logger.info("=====================本次装置培训计划邮件发送给授课人:{}", username);
+                        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); \">授课提醒 </font><font face=\"微软雅黑\" size=\"3\" style=\"color: rgb(255, 255, 255); \">Lecture reminder</font></th></tr>";
+                        //表html中间内容
+                        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(loginName)</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
+                                "Dear usernameEN(loginName)</font></font></h2>" +
+                                "<p>您本月有装置培训计划。" +"<br>" +
+                                "You have a device training plan for this month." +"<br>" +
+                                "培训名称:" +regular.getItem()+ "<br>" +
+                                "Training name:" +regular.getItem()+ "<br>" +
+                                "请登录<a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/training/regular\">装置培训计划</a>查看。<br>" +
+                                "Please log in the <a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/training/regular\">Device Training Plan</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.replace("loginName", loginName);
+                        String result = three.replaceFirst("date", DateUtils.getDate());
+                        String end = "</tbody></table></div></body></html>";
+                        //拼接html
+                        String html = start + result + end;
+                        logger.info("html:" + html);
+                        mailService.sendHtmlMail(email, "您本月有装置培训计划 You have a device training plan for this month", html);
+                    } catch (Exception e) {
+                        logger.error(e.getMessage(), e);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+}

+ 15 - 3
master/src/main/java/com/ruoyi/project/training/domain/TTrainingRegular.java

@@ -1,14 +1,15 @@
 package com.ruoyi.project.training.domain;
 
-import java.util.Date;
-import java.util.List;
-
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.framework.web.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * 装置培训计划对象 t_training_regular
  *
@@ -60,6 +61,9 @@ public class TTrainingRegular extends BaseEntity
     @Excel(name = "计划培训时间", width = 30, dateFormat = "yyyy-MM")
     private Date planTrainingdate;
 
+    @TableField(exist = false)
+    private String planDate;
+
     /** 实际完成培训日期 */
     @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
     @Excel(name = "实际完成培训日期", width = 30, dateFormat = "yyyy-MM-dd")
@@ -108,6 +112,14 @@ public class TTrainingRegular extends BaseEntity
     /** 不确定日期时培训计划日期显示字段 */
     private String notTrainingdate;
 
+    public String getPlanDate() {
+        return planDate;
+    }
+
+    public void setPlanDate(String planDate) {
+        this.planDate = planDate;
+    }
+
     public void setId(Long id)
     {
         this.id = id;

+ 11 - 9
master/src/main/java/com/ruoyi/project/training/mapper/TTrainingRegularMapper.java

@@ -1,20 +1,21 @@
 package com.ruoyi.project.training.mapper;
 
-import java.util.List;
 import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
 import com.ruoyi.project.training.domain.TTrainingRegular;
 
+import java.util.List;
+
 /**
  * 装置培训计划Mapper接口
- * 
+ *
  * @author ruoyi
  * @date 2021-06-22
  */
-public interface TTrainingRegularMapper 
+public interface TTrainingRegularMapper
 {
     /**
      * 查询装置培训计划
-     * 
+     *
      * @param id 装置培训计划ID
      * @return 装置培训计划
      */
@@ -22,16 +23,17 @@ public interface TTrainingRegularMapper
 
     /**
      * 查询装置培训计划列表
-     * 
+     *
      * @param tTrainingRegular 装置培训计划
      * @return 装置培训计划集合
      */
     @DataScope(deptAlias = "d")
     public List<TTrainingRegular> selectTTrainingRegularList(TTrainingRegular tTrainingRegular);
+    public List<TTrainingRegular> selectTTrainingRegularByPlanDate(TTrainingRegular tTrainingRegular);
 
     /**
      * 新增装置培训计划
-     * 
+     *
      * @param tTrainingRegular 装置培训计划
      * @return 结果
      */
@@ -39,7 +41,7 @@ public interface TTrainingRegularMapper
 
     /**
      * 修改装置培训计划
-     * 
+     *
      * @param tTrainingRegular 装置培训计划
      * @return 结果
      */
@@ -47,7 +49,7 @@ public interface TTrainingRegularMapper
 
     /**
      * 删除装置培训计划
-     * 
+     *
      * @param id 装置培训计划ID
      * @return 结果
      */
@@ -55,7 +57,7 @@ public interface TTrainingRegularMapper
 
     /**
      * 批量删除装置培训计划
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */

+ 12 - 9
master/src/main/java/com/ruoyi/project/training/service/ITTrainingRegularService.java

@@ -1,19 +1,20 @@
 package com.ruoyi.project.training.service;
 
-import java.util.List;
 import com.ruoyi.project.training.domain.TTrainingRegular;
 
+import java.util.List;
+
 /**
  * 装置培训计划Service接口
- * 
+ *
  * @author ruoyi
  * @date 2021-06-22
  */
-public interface ITTrainingRegularService 
+public interface ITTrainingRegularService
 {
     /**
      * 查询装置培训计划
-     * 
+     *
      * @param id 装置培训计划ID
      * @return 装置培训计划
      */
@@ -21,15 +22,17 @@ public interface ITTrainingRegularService
 
     /**
      * 查询装置培训计划列表
-     * 
+     *
      * @param tTrainingRegular 装置培训计划
      * @return 装置培训计划集合
      */
     public List<TTrainingRegular> selectTTrainingRegularList(TTrainingRegular tTrainingRegular);
 
+    public List<TTrainingRegular> selectTTrainingRegularByPlanDate(TTrainingRegular tTrainingRegular);
+
     /**
      * 新增装置培训计划
-     * 
+     *
      * @param tTrainingRegular 装置培训计划
      * @return 结果
      */
@@ -37,7 +40,7 @@ public interface ITTrainingRegularService
 
     /**
      * 修改装置培训计划
-     * 
+     *
      * @param tTrainingRegular 装置培训计划
      * @return 结果
      */
@@ -45,7 +48,7 @@ public interface ITTrainingRegularService
 
     /**
      * 批量删除装置培训计划
-     * 
+     *
      * @param ids 需要删除的装置培训计划ID
      * @return 结果
      */
@@ -53,7 +56,7 @@ public interface ITTrainingRegularService
 
     /**
      * 删除装置培训计划信息
-     * 
+     *
      * @param id 装置培训计划ID
      * @return 结果
      */

+ 9 - 4
master/src/main/java/com/ruoyi/project/training/service/impl/TTrainingRegularServiceImpl.java

@@ -1,13 +1,12 @@
 package com.ruoyi.project.training.service.impl;
 
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.project.training.mapper.TTrainingRegularMapper;
 import com.ruoyi.project.training.domain.TTrainingRegular;
+import com.ruoyi.project.training.mapper.TTrainingRegularMapper;
 import com.ruoyi.project.training.service.ITTrainingRegularService;
+import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 装置培训计划Service业务层处理
@@ -45,6 +44,12 @@ public class TTrainingRegularServiceImpl implements ITTrainingRegularService
         return tTrainingRegularMapper.selectTTrainingRegularList(tTrainingRegular);
     }
 
+    @Override
+    public List<TTrainingRegular> selectTTrainingRegularByPlanDate(TTrainingRegular tTrainingRegular)
+    {
+        return tTrainingRegularMapper.selectTTrainingRegularByPlanDate(tTrainingRegular);
+    }
+
     /**
      * 新增装置培训计划
      *

+ 5 - 0
master/src/main/resources/mybatis/training/TTrainingRegularMapper.xml

@@ -54,6 +54,11 @@
         where d.id = #{id}
     </select>
 
+    <select id="selectTTrainingRegularByPlanDate" parameterType="TTrainingRegular" resultMap="TTrainingRegularResult">
+        <include refid="selectTTrainingRegularVo"/>
+         where to_char(plan_trainingdate, 'YYYY-MM' ) = #{planDate} and d.del_flag=0
+    </select>
+
     <insert id="insertTTrainingRegular" parameterType="TTrainingRegular" useGeneratedKeys="true" keyProperty="id">
         <selectKey keyProperty="id" resultType="long" order="BEFORE">
             SELECT seq_t_training_regular.NEXTVAL as id FROM DUAL