Commit a8d064490e42192a0ad3b0aeac3bb1836aa2714e
1 parent
c1005400
feat:1.把时间由yyyy-mm-dd hh:mm:ss改为yyyy-mm-dd
2.把邮件标头背景色改为白色,手机端黑色不显示
Showing
2 changed files
with
55 additions
and
28 deletions
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 { | ... | ... |