Browse Source

2024.11.25 文档收集优化

java8
yuejiayang 1 year ago
parent
commit
89fd0130c2
  1. 10
      src/main/java/com/xujie/sys/modules/pms/controller/EamProjectController.java
  2. 3
      src/main/java/com/xujie/sys/modules/pms/data/ProofDocumentData.java
  3. 50
      src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java
  4. 2
      src/main/resources/application-dev.yml

10
src/main/java/com/xujie/sys/modules/pms/controller/EamProjectController.java

@ -425,9 +425,9 @@ public class EamProjectController {
return R.ok();
}
// @PostMapping("/sendEmail")
// public R sendEmail() throws MessagingException, UnsupportedEncodingException {
// eamProjectService.sendEmail();
// return R.ok();
// }
@PostMapping("/sendEmail")
public R sendEmail() throws MessagingException, UnsupportedEncodingException {
eamProjectService.sendEmail();
return R.ok();
}
}

3
src/main/java/com/xujie/sys/modules/pms/data/ProofDocumentData.java

@ -87,6 +87,9 @@ public class ProofDocumentData extends ProofingInformationData {
@TableField(exist = false)
private Date massProductionStartDate;
@TableField(exist = false)
private Integer emailInfoType;
public Integer getUserId() {
return userId;
}

50
src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java

@ -47,6 +47,8 @@ import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.util.*;
/**
@ -845,17 +847,14 @@ public class EamProjectServiceImpl implements EamProjectService {
public void sendEmail() throws MessagingException, UnsupportedEncodingException {
// 创建数组用于存储定时任务所有待发送邮件的数据
List<ProofDocumentData> allUserSendEmailList;
// 调用存储过程拿到所有需要自动发送邮件通知的数据
allUserSendEmailList = EamProjectMapper.getAutoSendMailAddress("2");
// 创建数组用于存储单个用户的所有待发送邮件的数据
List<ProofDocumentData> oneUserSendEmailList = null;
// List<ProofDocumentData> proofingDocumentUserSendEmailList = null;
// List<ProofDocumentData> massProductionDocumentUserSendEmailList = null;
// List<ProofingInformationData> proofingUserSendEmailList = null;
// List<EamProjectPartInfoData> confirmUserSendEmailList = null;
// 创建变量用于存储上一个用户名
String previousUsername = null;
// 调用存储过程拿到所有需要自动发送邮件通知的数据
allUserSendEmailList = EamProjectMapper.getAutoSendMailAddress("2");
//如果是周五
if (LocalDate.now().getDayOfWeek().equals(DayOfWeek.FRIDAY)) {
// 遍历allUserSendEmailList将相同用户名的数据放到oneUserSendEmailList数组中
for (ProofDocumentData data : allUserSendEmailList) {
if (data.getUsername() != null && !data.getUsername().equals("")) {
@ -886,7 +885,44 @@ public class EamProjectServiceImpl implements EamProjectService {
// 调用发送邮件方法
this.sendAutoMailToOnlyUserHandle(oneUserSendEmailList);
}
}
// 如果是周一到周四
if (LocalDate.now().getDayOfWeek().equals(DayOfWeek.MONDAY) || LocalDate.now().getDayOfWeek().equals(DayOfWeek.TUESDAY) || LocalDate.now().getDayOfWeek().equals(DayOfWeek.WEDNESDAY) || LocalDate.now().getDayOfWeek().equals(DayOfWeek.THURSDAY)) {
for (ProofDocumentData data : allUserSendEmailList) {
// 拿到allUserSendEmailList中emailInfoType=1并且dueData还有2天以及超过dueData的数据
if (data.getEmailInfoType() == 1 || data.getEmailInfoType() == 2) {
if (data.getDueDate().getTime() - new Date().getTime() <= 2 * 24 * 60 * 60 * 1000 || data.getDueDate().getTime() - new Date().getTime() >= 0) {
if (data.getUsername() != null && !data.getUsername().equals("")) {
if (!data.getUsername().equals(previousUsername)) {
// 如果oneUserSendEmailList不为空说明上一个用户的数据已经遍历完毕需要发送邮件
if (oneUserSendEmailList != null && !oneUserSendEmailList.isEmpty() && oneUserSendEmailList.get(0).getEmail() != null && !oneUserSendEmailList.get(0).getEmail().equals("")) {
// 调用发送邮件方法
this.sendAutoMailToOnlyUserHandle(oneUserSendEmailList);
} else {
// 如果oneUserSendEmailList为空说明是第一次遍历需要初始化
oneUserSendEmailList = new ArrayList<>();
}
// 如果当前用户名与上一个用户名不同需要重新给previousUsername赋值同时清空oneUserSendEmailList数组重新添加新的username的数据
previousUsername = data.getUsername();
oneUserSendEmailList.clear();
oneUserSendEmailList.add(data);
} else {
// 如果当前用户名与上一个用户名相同直接添加到oneUserSendEmailList数组中
oneUserSendEmailList.add(data);
}
}
}
}
}
// 遍历完毕后需要判断oneUserSendEmailList是否为空如果不为空说明最后一个用户的数据还未发送邮件
if (oneUserSendEmailList != null && oneUserSendEmailList.get(0).getEmail() != null && !oneUserSendEmailList.get(0).getEmail().equals("")) {
// 调用发送邮件方法
this.sendAutoMailToOnlyUserHandle(oneUserSendEmailList);
}
}
// if (data.getProofingId() == -1){
// massProductionDocumentUserSendEmailList.add(data);
// } else if (data.getProofingId() == 0) {

2
src/main/resources/application-dev.yml

@ -53,7 +53,7 @@ task:
# sendEmail: 0 0/5 * * * ? #每5分钟执行一次
# sendEmail: 0 30 12 1/15 * ? #每15天的中午12:30执行一次
#发送邮件,每周一到周五中午12点执行一次
sendEmail: 0 0 12 * * FRI
sendEmail: 0 0 12 ? * MON-FRI
#--------------------------------------------接口地址和开关控制-------------------------------------------------
toacc:

Loading…
Cancel
Save