zelong.shao

task|邮件取值调整

......@@ -22,11 +22,21 @@ public class ConsignmentQuery extends PageBase {
if (Utils.isNotEmpty(query.getConsignmentCode())) {
query.setConsignmentCodeList(Utils.split(query.getConsignmentCode(), "[;\\n]"));
}
if(!CollectionUtils.isEmpty(query.getConsignmentCodeList())) {
query.setCreateTimeFrom(null);
query.setCreateTimeTo(null);
}
if (Utils.isEmpty(query.getCreateTimeFrom()) && Utils.isEmpty(query.getCreateTimeTo())) {
if(!CollectionUtils.isEmpty(query.getConsignmentCodeList()) && Utils.isEmpty(query.getCreateTimeFrom()) && Utils.isEmpty(query.getCreateTimeTo())) {
// 获取当前日期,减去180天
LocalDate localDate = LocalDate.now().minusDays(180);
// 设置 createTimeFrom 为 180 天前的日期(不带时分秒)
String createTimeFrom = localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
query.setCreateTimeFrom(createTimeFrom);
// 获取当前日期(不带时分秒)
LocalDate currentDate = LocalDate.now();
// 设置 createTimeTo 为今天的日期(不带时分秒)
String createTimeTo = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
query.setCreateTimeTo(createTimeTo);
}else if (Utils.isEmpty(query.getCreateTimeFrom()) && Utils.isEmpty(query.getCreateTimeTo())) {
// 获取当前日期,减去3天
LocalDate localDate = LocalDate.now().minusDays(3);
......
......@@ -32,10 +32,10 @@ public enum EmailTypeEnum {
}
// 获取 enMsg 根据 code
public static String getEnMsgByCode(String code) {
public static String getMsgByCode(String code) {
for (EmailTypeEnum emailType : EmailTypeEnum.values()) {
if (emailType.code.equals(code)) {
return emailType.enMsg;
return emailType.msg;
}
}
return null; // 如果找不到对应的 code,返回 null
......
......@@ -15,4 +15,7 @@ public class PushZipEmailDto {
private String shipperAccount;
private String originCountry;
private String fileName;
private String userInputShipperAccount;
private String userInputOriginCountry;
private Long ceFlag;
}
......
......@@ -10,18 +10,23 @@ import java.util.List;
public interface AttachmentExtMapper {
@Select("SELECT a.FILE_PATH, " +
"c.DEST_IATA_CODE, " +
"c.CONSIGNMENT_CODE, " +
"c.SHIPPER_CONTACT_NAME, " +
"c.SHIPPER_EMAIL, " +
"c.SHIPPER_PHONE, " +
"c.SHIPPER_ACCOUNT, " +
"c.ORIGIN_COUNTRY, " +
"a.FILE_NAME " +
" c.DEST_IATA_CODE, " +
" c.CONSIGNMENT_CODE, " +
" c.SHIPPER_CONTACT_NAME, " +
" c.SHIPPER_EMAIL, " +
" c.SHIPPER_PHONE, " +
" c.SHIPPER_ACCOUNT, " +
" c.ORIGIN_COUNTRY, " +
" a.FILE_NAME, " +
" c.USER_INPUT_SHIPPER_ACCOUNT, " +
" c.USER_INPUT_ORIGIN_COUNTRY, " +
" ucm.CE_FLAG " +
"FROM T_BIZ_ATTACHMENT a " +
"JOIN T_BIZ_UPLOAD_RECORD ur ON a.UPLOAD_RECORD_ID = ur.ID " +
"JOIN T_BIZ_CONSIGNMENT c ON ur.CONSIGNMENT_ID = c.ID " +
"WHERE a.UPLOAD_RECORD_ID = #{bizId,jdbcType=NUMERIC}")
"JOIN T_BIZ_USER_CONSIGNMENT_MAPPING ucm ON ucm.CONSIGNMENT_ID = c.ID " +
"WHERE a.UPLOAD_RECORD_ID = #{bizId,jdbcType=NUMERIC} " +
" AND ucm.USER_ID = ur.CREATE_USER_ID")
List<PushZipEmailDto> findAttachmentDetailsByBizId(@Param("bizId") Long bizId);
@Select("SELECT * FROM T_BIZ_ATTACHMENT WHERE UPLOAD_RECORD_ID = #{uploadRecordId,jdbcType=NUMERIC} AND BIZ_ID = #{consignmentId,jdbcType=NUMERIC} AND STATUS = 1")
......
......@@ -3,6 +3,7 @@ package com.fedex.connect.task.utils.sys;
import com.fedex.connect.common.dependencies.cache.CacheSystem;
import com.fedex.connect.common.dependencies.contants.BaseConstants;
import com.fedex.connect.common.dependencies.contants.BaseSeparatorConstants;
import com.fedex.connect.common.dependencies.contants.DigitConstants;
import com.fedex.connect.common.dependencies.enums.biz.EmailStatusEnum;
import com.fedex.connect.common.dependencies.i18n.LocaleMessageUtil;
import com.fedex.connect.common.dependencies.template.clearanceEmail.ClearanceEmailTemplate;
......@@ -85,11 +86,17 @@ public class ConFileEmailUtil {
if (file.exists()) {
filesList.add(file);
}
if (pushZipEmailDto.getCeFlag().equals(DigitConstants.DIGIT_ONE_LONG)){
portFileDto.setShipperContactName(pushZipEmailDto.getShipperContactName());
portFileDto.setShipperEmail(pushZipEmailDto.getShipperEmail());
portFileDto.setShipperPhone(pushZipEmailDto.getShipperPhone());
portFileDto.setShipperAccount(pushZipEmailDto.getShipperAccount());
portFileDto.setOriginCountry(pushZipEmailDto.getOriginCountry());
}else {
portFileDto.setShipperAccount(pushZipEmailDto.getUserInputShipperAccount());
portFileDto.setOriginCountry(pushZipEmailDto.getUserInputOriginCountry());
portFileDto.setShipperEmail(pushZipEmailDto.getShipperEmail());
}
}
String date = DateUtil.yyyyMMddHHmmss(new Date());
String fileName = date + BaseSeparatorConstants.SEPARATOR_UNDERLINE + consignmentCode + BaseConstants.FILE_SUFFIX_KEYS.ZIP;
......@@ -180,6 +187,7 @@ public class ConFileEmailUtil {
//设置邮件标题
mailConfigDto.setSubject("推送预清关文件");
//设置邮件内容
portFileDto.setShipperEmail(emailAddress);
String body = this.generateContent("zelong.shao@erry.com", propertiesConfig.getEmailAccount(), portFileDto, conPushEmail.getBizCode());
mailConfigDto.setContent(body);
//放入文件列表
......@@ -283,10 +291,12 @@ public class ConFileEmailUtil {
}else {
conPushEmail.setStatusCode(failed.getCode());
conPushEmail.setStatusName(failed.getDescription());
if (StringUtils.isNotEmpty(mailMessageReqDto.getTo())){
conPushEmail.setSendNum(conPushEmail.getSendNum()+1);
}
}
}
}
/**
* @Author Szl
......@@ -348,7 +358,7 @@ public class ConFileEmailUtil {
emailHistoryRepository.saveOrUpdate(emailHistory);
}else {
//失败则根据是否第三次,如果是第三次失败则删除,保存到历史表
if (conPushEmail.getSendNum() == 3){
if (conPushEmail.getSendNum() == 3 || StringUtils.isEmpty(conPushEmail.getToAddress())){
emailRepository.deleteById(conPushEmail.getId());
emailHistory.setId(null);
emailHistoryRepository.saveOrUpdate(emailHistory);
......@@ -356,7 +366,6 @@ public class ConFileEmailUtil {
emailRepository.saveOrUpdate(conPushEmail);
}
}
}
}
......
......@@ -82,11 +82,12 @@ public class SendFailedEmailUtil {
.filter(pushOb -> PushObStatusEnum.PUSH_FAILED.getCode().equals(pushOb.getStatusCode()))
.count();
// 获取前 10 条 CONSIGNMENT_CODE
// 2. 获取 STATUS_CODE 为 PUSH_FAILED 且 MODIFY_TIME 最晚的指定数量的 CONSIGNMENT_CODE
List<String> latestConsignmentCodes = obs.stream()
.filter(pushOb -> PushObStatusEnum.PUSH_FAILED.getCode().equals(pushOb.getStatusCode())) // 筛选 STATUS_CODE 为 PUSH_FAILED
.sorted(Comparator.comparing(PushOb::getModifyTime).reversed()) // 按 MODIFY_TIME 降序排序
.limit(Long.parseLong(size)) // 取前 10 条
.map(PushOb::getConsignmentCode) // 获取 CONSIGNMENT_CODE
.limit(Long.parseLong(size)) // 获取指定数量
.map(PushOb::getConsignmentCode) // 提取 CONSIGNMENT_CODE
.collect(Collectors.toList());
return new SendFailedEmailDto("ob",statusCodeCount,latestConsignmentCodes,totalCount);
}
......@@ -116,17 +117,19 @@ public class SendFailedEmailUtil {
.filter(email -> EmailStatusEnum.FAILED.getCode().equals(email.getStatusCode()))
.count();
// 2. 获取 MODIFY_TIME 最晚的 10 个 BIZ_CODE
List<String> latestBizCodes = emailList.stream()
.sorted(Comparator.comparing(EmailHistory::getModifyTime).reversed())
.limit(Long.parseLong(size))
.map(EmailHistory::getBizCode)
// 2. 获取 STATUS_CODE 为 FAILED 且 MODIFY_TIME 最晚的 10 个 BIZ_CODE
List<String> latestFailedBizCodes = emailList.stream()
.filter(email -> EmailStatusEnum.FAILED.getCode().equals(email.getStatusCode())) // 筛选 STATUS_CODE 为 FAILED
.sorted(Comparator.comparing(EmailHistory::getModifyTime).reversed()) // 按 MODIFY_TIME 降序排序
.limit(Long.parseLong(size)) // 获取最晚的指定数量
.map(EmailHistory::getBizCode) // 提取 BIZ_CODE
.collect(Collectors.toList());
// 3. 统计 TYPE_CODE 的总数量
long totalCount = emailList.size();
return new SendFailedEmailDto(typeCode, statusCodeCount, latestBizCodes, totalCount);
return new SendFailedEmailDto(typeCode, statusCodeCount, latestFailedBizCodes, totalCount);
})
.collect(Collectors.toList());
return results;
......@@ -173,7 +176,7 @@ public class SendFailedEmailUtil {
.map(String::trim) // 去除每个元素的前后空格
.collect(Collectors.joining(","));
tableRows.append("<tr>" +
"<td style=\"border: 1px solid #dddddd;text-align: left;padding: 8px;\">"+EmailTypeEnum.getEnMsgByCode(failedEmailDto.getTypeCode())+"</td>" +
"<td style=\"border: 1px solid #dddddd;text-align: left;padding: 8px;\">"+EmailTypeEnum.getMsgByCode(failedEmailDto.getTypeCode())+"</td>" +
"<td style=\"border: 1px solid #dddddd;text-align: left;padding: 8px;\">"+ bizCodesStr +"</td>" +
"<td style=\"border: 1px solid #dddddd;text-align: left;padding: 8px;\">"+ failedEmailDto.getTotalCount() +"</td>" +
"<td style=\"border: 1px solid #dddddd;text-align: left;padding: 8px;\">"+ failedEmailDto.getStatusCodeCount() +"</td>" +
......@@ -230,7 +233,7 @@ public class SendFailedEmailUtil {
//ce接收人
mailConfigDto.setTo("zelong.shao@erry.com,jialiang.song@erry.com");
mailConfigDto.setCcAccount("");
mailConfigDto.setReceiveAccount("zelong.shao@erry.com");
mailConfigDto.setReceiveAccount("zelong.shao@erry.com,jialiang.song@erry.com");
//发件人
mailConfigDto.setFrom(propertiesConfig.getEmailAccount());
//发件人密码
......