Commit a8d064490e42192a0ad3b0aeac3bb1836aa2714e

Authored by chenhang4442024
1 parent c1005400

feat:1.把时间由yyyy-mm-dd hh:mm:ss改为yyyy-mm-dd

2.把邮件标头背景色改为白色,手机端黑色不显示
src/main/java/com/order/erp/job/OrderOverTimeEventJob.java
... ... @@ -28,6 +28,9 @@ import java.util.concurrent.TimeUnit;
28 28 import java.util.function.Function;
29 29 import java.util.stream.Collectors;
30 30  
  31 +import static com.order.erp.common.utils.DateUtils.DATE;
  32 +import static com.order.erp.common.utils.DateUtils.DATE_TIME;
  33 +
31 34  
32 35 /**
33 36 * @author: xms
... ... @@ -62,7 +65,7 @@ public class OrderOverTimeEventJob {
62 65 /**
63 66 * 凌晨1点执行,一天一次
64 67 */
65   - @Scheduled(cron = "0 0 1 * * ?")
  68 + @Scheduled(cron = "0 * * * * *")
66 69 //存储的日期都必须为yyyy-MM-dd HH:mm:ss。
67 70 public void checkOverTimeExecuteV2() {
68 71 List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.getEventList();
... ... @@ -87,7 +90,6 @@ public class OrderOverTimeEventJob {
87 90 */
88 91 //发送邮件。
89 92 private void sendEmail4OrderEvent(OrderEventEnum eventEnum, List<OrderEventJobVO> eventJobVOS) {
90   -
91 93 HashSet<String> customerCodeList = new HashSet<>();
92 94 for (OrderEventJobVO orderEventJob : eventJobVOS) {
93 95 if (!redisUtils.hasKey(EmailTemplateEnum.byTemplate(
... ... @@ -117,21 +119,28 @@ public class OrderOverTimeEventJob {
117 119 }).filter(Objects::nonNull)
118 120 .collect(Collectors.toList());
119 121 //如果为尾期验货事件的话,需要从订单中的生产科角色中得到邮箱。而不是从邮件配置中得到邮箱。
120   - if (OrderEventEnum.END_CHECK_DATE_EVENT.equals(eventEnum)) {
  122 + if (OrderEventEnum.END_CHECK_DATE_EVENT.equals(eventEnum) ) {
121 123 for (OrderEventJobVO orderEventJob : eventJobVOS) {
122   - String productionDepartment = orderEventJob.getBaseInfo().getProductionDepartment();
123   - //根据订单的生产科得到生产科用户信息。
124   - AdminUserDO productionDepartmentUser = adminUserService.getOne(new LambdaQueryWrapper<AdminUserDO>()
125   - .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
126   - .eq(AdminUserDO::getUserName, productionDepartment));
127   - List<String> productionEmail = Arrays.asList(productionDepartmentUser.getEmail().split("[,,]+"))
128   - .stream().map(String::trim)
129   - .collect(Collectors.toList());
130   - emailSendUtils.sendEmail(EmailTemplateEnum.byTemplate(eventEnum.getTemplateId()),
131   - productionEmail, orderEventJob);
132   - redisUtils.set(EmailTemplateEnum.byTemplate(
133   - eventEnum.getTemplateId()) + Constant.CROSS_BAR_CHARACTER + orderEventJob.getBaseInfo().getId(),
134   - orderEventJob, 90, TimeUnit.DAYS);
  124 + if (!redisUtils.hasKey(EmailTemplateEnum.byTemplate(
  125 + eventEnum.getTemplateId()) + Constant.CROSS_BAR_CHARACTER + orderEventJob.getBaseInfo().getId())) {
  126 + //转化一下日期格式,为yyyy-MM-dd。
  127 + OrderBaseInfoVO orderBaseInfoFormat = getDateFormat(orderEventJob.getBaseInfo().getProductionDepartmentConsignTime(), orderEventJob.getBaseInfo().getOrderHodTime());
  128 + orderEventJob.getBaseInfo().setProductionDepartmentConsignTime(orderBaseInfoFormat.getProductionDepartmentConsignTime());
  129 + orderEventJob.getBaseInfo().setOrderHodTime(orderBaseInfoFormat.getOrderHodTime());
  130 + String productionDepartment = orderEventJob.getBaseInfo().getProductionDepartment();
  131 + //根据订单的生产科得到生产科用户信息。
  132 + AdminUserDO productionDepartmentUser = adminUserService.getOne(new LambdaQueryWrapper<AdminUserDO>()
  133 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  134 + .eq(AdminUserDO::getUserName, productionDepartment));
  135 + List<String> productionEmail = Arrays.asList(productionDepartmentUser.getEmail().split("[,,]+"))
  136 + .stream().map(String::trim)
  137 + .collect(Collectors.toList());
  138 + emailSendUtils.sendEmail(EmailTemplateEnum.byTemplate(eventEnum.getTemplateId()),
  139 + productionEmail, orderEventJob);
  140 + redisUtils.set(EmailTemplateEnum.byTemplate(
  141 + eventEnum.getTemplateId()) + Constant.CROSS_BAR_CHARACTER + orderEventJob.getBaseInfo().getId(),
  142 + orderEventJob, 90, TimeUnit.DAYS);
  143 + }
135 144 }
136 145 } else {
137 146 Set<Map<String, List<String>>> set = receiveEmailMappingDOS.stream().map(x -> {
... ... @@ -154,6 +163,10 @@ public class OrderOverTimeEventJob {
154 163 for (OrderEventJobVO orderEventJob : eventJobVOS) {
155 164 for (Map<String, List<String>> map : set) {
156 165 if (orderEventJob.getBaseInfo().getCustomerCode().equals(map.keySet().iterator().next())) {
  166 + //转化一下日期格式,为yyyy-MM-dd。
  167 + OrderBaseInfoVO orderBaseInfoFormat = getDateFormat(orderEventJob.getBaseInfo().getProductionDepartmentConsignTime(), orderEventJob.getBaseInfo().getOrderHodTime());
  168 + orderEventJob.getBaseInfo().setProductionDepartmentConsignTime(orderBaseInfoFormat.getProductionDepartmentConsignTime());
  169 + orderEventJob.getBaseInfo().setOrderHodTime(orderBaseInfoFormat.getOrderHodTime());
157 170 emailSendUtils.sendEmail(EmailTemplateEnum.byTemplate(eventEnum.getTemplateId()),
158 171 map.get(map.keySet().iterator().next()), orderEventJob);
159 172 redisUtils.set(EmailTemplateEnum.byTemplate(
... ... @@ -277,7 +290,7 @@ public class OrderOverTimeEventJob {
277 290 if (StringUtils.isNotBlank(orderHodTime) && StringUtils.isNotBlank(esoSampleSendTime)) {
278 291 LocalDate orderHodTimelocalDate = DateUtils.parseDate(orderHodTime);
279 292 LocalDate esoSampleSendTimelocalDate = DateUtils.parseDate(esoSampleSendTime);
280   - if (ChronoUnit.DAYS.between(esoSampleSendTimelocalDate, orderHodTimelocalDate) == Constant.SEVEN) {
  293 + if (ChronoUnit.DAYS.between(esoSampleSendTimelocalDate, orderHodTimelocalDate) == Constant.FOURTEEN) {
281 294 return true;
282 295 }
283 296  
... ... @@ -300,19 +313,21 @@ public class OrderOverTimeEventJob {
300 313  
301 314  
302 315 private Boolean filterAITEXSGSTestEvent(OrderEventJobVO eventJobVO) {
  316 + int aitextestDaysBetween=0;
  317 + int sgstestDaysBetween=0;
303 318 String orderHodTime = eventJobVO.getBaseInfo().getOrderHodTime();
304 319 String aitexTestFinishResult = eventJobVO.getTrackStageInfo().getAitexTestFinishResult();
305 320 String sgsTestFinishResult = eventJobVO.getTrackStageInfo().getSgsTestFinishResult();
306 321 String sgsTestFinishTime = eventJobVO.getTrackStageInfo().getSgsTestFinishTime();
307 322 String aitexTestFinishTime = eventJobVO.getTrackStageInfo().getAitexTestFinishTime();
308   - if (StringUtils.isNotBlank(orderHodTime) && StringUtils.isNotBlank(aitexTestFinishResult) && StringUtils.isNotBlank(aitexTestFinishTime) ||
309   - StringUtils.isNotBlank(orderHodTime) && StringUtils.isNotBlank(sgsTestFinishResult) && StringUtils.isNotBlank(sgsTestFinishTime)) {
310   - int aitextestDaysBetween = getDaysBetween(aitexTestFinishResult, aitexTestFinishTime, orderHodTime);
311   - int sgstestDaysBetween = getDaysBetween(sgsTestFinishResult, sgsTestFinishTime, orderHodTime);
312   - if (aitextestDaysBetween == Constant.THREE || sgstestDaysBetween == Constant.LOCK_ERROR_TIMES || aitextestDaysBetween == Constant.NEGATIVE_ONE || sgstestDaysBetween == Constant.NEGATIVE_ONE) {
  323 + if (StringUtils.isNotBlank(orderHodTime) && StringUtils.isNotBlank(aitexTestFinishResult) && StringUtils.isNotBlank(aitexTestFinishTime)){
  324 + aitextestDaysBetween = getDaysBetween(aitexTestFinishResult, aitexTestFinishTime, orderHodTime);
  325 + } else if(StringUtils.isNotBlank(orderHodTime) && StringUtils.isNotBlank(sgsTestFinishResult) && StringUtils.isNotBlank(sgsTestFinishTime)){
  326 + sgstestDaysBetween = getDaysBetween(sgsTestFinishResult, sgsTestFinishTime, orderHodTime);
  327 + }
  328 + if (aitextestDaysBetween == Constant.THREE || sgstestDaysBetween == Constant.THREE || aitextestDaysBetween == Constant.NEGATIVE_ONE || sgstestDaysBetween == Constant.NEGATIVE_ONE) {
313 329 return true;
314 330 }
315   - }
316 331 return false;
317 332  
318 333 }
... ... @@ -369,4 +384,15 @@ public class OrderOverTimeEventJob {
369 384 }
370 385 return Constant.ZERO;
371 386 }
  387 +
  388 + public OrderBaseInfoVO getDateFormat(String productionDepartmentConsignTime,String orderHodTime){
  389 + String substring = productionDepartmentConsignTime.substring(0, 10);
  390 + String substring1 = orderHodTime.substring(0, 10);
  391 + String productionDepartmentConsignTimeFormat = DateUtils.format(DateUtils.parseDate(substring, DATE), DateUtils.DATE);
  392 + String orderHodTimeFormat = DateUtils.format(DateUtils.parseDate(substring1,DATE), DateUtils.DATE);
  393 + OrderBaseInfoVO orderBaseInfoVO = new OrderBaseInfoVO();
  394 + orderBaseInfoVO.setProductionDepartmentConsignTime(productionDepartmentConsignTimeFormat);
  395 + orderBaseInfoVO.setOrderHodTime(orderHodTimeFormat);
  396 + return orderBaseInfoVO;
  397 + }
372 398 }
... ...
src/main/resources/templates/mail.ftl
... ... @@ -4,13 +4,14 @@
4 4 <meta charset="UTF-8">
5 5 <title>通用邮件模板</title>
6 6 <style>
7   - #title1 {
8   - background: black;
9   - }
  7 + /*#title1 {*/
  8 + /* background: black;*/
  9 + /*}*/
10 10  
11 11 #title1 > td {
12   - color: aliceblue;
13   - border-right: 1px solid white;
  12 + /*color: aliceblue;*/
  13 + /*border-right: 1px solid white;*/
  14 + border-right: 1px solid black;
14 15 }
15 16  
16 17 #title2 td {
... ...