Commit 589b0cdced56b43ddf256617c0b361c1aa26b3a6
1 parent
23e0e78b
feat: ERP升级
1、订单超期事件
Showing
2 changed files
with
144 additions
and
10 deletions
src/main/java/com/order/erp/domain/vo/order/OrderEventJobVO.java
0 → 100644
1 | +package com.order.erp.domain.vo.order; | |
2 | + | |
3 | +import lombok.*; | |
4 | +import lombok.experimental.SuperBuilder; | |
5 | + | |
6 | +import java.io.Serializable; | |
7 | + | |
8 | +/** | |
9 | + * 订单基础信息表(OrderBaseInfo)实体类 | |
10 | + * | |
11 | + * @author makejava | |
12 | + * @since 2023-09-08 15:26:43 | |
13 | + */ | |
14 | +@Data | |
15 | +@AllArgsConstructor | |
16 | +@ToString | |
17 | +@NoArgsConstructor | |
18 | +@EqualsAndHashCode(callSuper = false) | |
19 | +@SuperBuilder | |
20 | +public class OrderEventJobVO implements Serializable { | |
21 | + | |
22 | + /** | |
23 | + * 订单id | |
24 | + */ | |
25 | + private Long orderId; | |
26 | + | |
27 | + /** | |
28 | + * 订单基础信息 | |
29 | + */ | |
30 | + private OrderBaseInfoVO baseInfo; | |
31 | + | |
32 | + /** | |
33 | + * 利润分析信息 | |
34 | + */ | |
35 | + private OrderProfitAnalysisVO profitAnalysisInfo; | |
36 | + | |
37 | + /** | |
38 | + * 项目完成报告信息 | |
39 | + */ | |
40 | + private OrderCompletionReportVO reportInfo; | |
41 | + | |
42 | + /** | |
43 | + * 跟单信息 | |
44 | + */ | |
45 | + private OrderTrackStageVO trackStageInfo; | |
46 | + | |
47 | + /** | |
48 | + * 质检信息 | |
49 | + */ | |
50 | + private OrderInspectionStageVO inspectionStageInfo; | |
51 | + | |
52 | +} | ... | ... |
src/main/java/com/order/erp/job/OrderOverTimeEventJob.java
... | ... | @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON; |
4 | 4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
5 | 5 | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
6 | 6 | import com.order.erp.common.constant.Constant; |
7 | -import com.order.erp.common.constant.ServerResult; | |
8 | 7 | import com.order.erp.common.utils.EmailSendUtils; |
9 | 8 | import com.order.erp.common.utils.StringUtils; |
10 | 9 | import com.order.erp.common.utils.TransactionHelper; |
... | ... | @@ -12,8 +11,12 @@ import com.order.erp.domain.EmailTemplateEnum; |
12 | 11 | import com.order.erp.domain.OrderEventEnum; |
13 | 12 | import com.order.erp.domain.OrderStatusEnum; |
14 | 13 | import com.order.erp.domain.dto.BaseDO; |
15 | -import com.order.erp.domain.dto.order.*; | |
14 | +import com.order.erp.domain.dto.order.OrderBaseInfoDO; | |
15 | +import com.order.erp.domain.dto.order.OrderInspectionStageDO; | |
16 | +import com.order.erp.domain.dto.order.OrderTrackStageDO; | |
17 | +import com.order.erp.domain.dto.order.ReceiveEmailMappingDO; | |
16 | 18 | import com.order.erp.domain.email.OrderProductEmailVO; |
19 | +import com.order.erp.domain.vo.order.OrderEventJobVO; | |
17 | 20 | import com.order.erp.domain.vo.order.ReceiveEmailConfigItemVO; |
18 | 21 | import com.order.erp.service.order.*; |
19 | 22 | import freemarker.template.TemplateException; |
... | ... | @@ -28,10 +31,7 @@ import java.io.IOException; |
28 | 31 | import java.time.LocalDate; |
29 | 32 | import java.time.format.DateTimeFormatter; |
30 | 33 | import java.time.temporal.ChronoUnit; |
31 | -import java.util.ArrayList; | |
32 | -import java.util.List; | |
33 | -import java.util.Map; | |
34 | -import java.util.Set; | |
34 | +import java.util.*; | |
35 | 35 | import java.util.function.Function; |
36 | 36 | import java.util.stream.Collectors; |
37 | 37 | |
... | ... | @@ -91,11 +91,11 @@ public class OrderOverTimeEventJob { |
91 | 91 | System.out.println("1111111111111111111111111"); |
92 | 92 | //只有跟单信息不为空时,才会有时间和状态。 |
93 | 93 | if (CollectionUtils.isNotEmpty(orderTrackStageList)) { |
94 | - System.out.println("orderId"+baseInfoDOMap); | |
95 | - System.out.println("order Base Info"+inspectionStageDOMap); | |
94 | + System.out.println("orderId" + baseInfoDOMap); | |
95 | + System.out.println("order Base Info" + inspectionStageDOMap); | |
96 | 96 | orderTrackStageList.stream().forEach(x -> { |
97 | - System.out.println("orderId"+x.getOrderId()); | |
98 | - System.out.println("order Base Info"+baseInfoDOMap.get(x.getOrderId())); | |
97 | + System.out.println("orderId" + x.getOrderId()); | |
98 | + System.out.println("order Base Info" + baseInfoDOMap.get(x.getOrderId())); | |
99 | 99 | if (StringUtils.isBlank(baseInfoDOMap.get(x.getOrderId()).getOrderHodTime())) { |
100 | 100 | // return ServerResult.fail("HODTime不能为空"); |
101 | 101 | } |
... | ... | @@ -349,4 +349,86 @@ public class OrderOverTimeEventJob { |
349 | 349 | } |
350 | 350 | }*/ |
351 | 351 | |
352 | + @Scheduled(cron = "0 0 2 * * ?") | |
353 | + public void checkOverTimeExecuteV2() { | |
354 | + List<OrderEventJobVO> jobVOList = transfer2OrderEventList(null, null, null); | |
355 | + | |
356 | + Map<String, List<OrderEventJobVO>> map = handlerOrderEvent(jobVOList); | |
357 | + | |
358 | + for (Map.Entry<String, List<OrderEventJobVO>> entry : map.entrySet()) { | |
359 | + | |
360 | + sendEmail4OrderEvent(OrderEventEnum.getEvent(entry.getKey()), entry.getValue()); | |
361 | + } | |
362 | + } | |
363 | + | |
364 | + /** | |
365 | + * @param eventEnum | |
366 | + * @param eventJobVOS | |
367 | + */ | |
368 | + private void sendEmail4OrderEvent(OrderEventEnum eventEnum, List<OrderEventJobVO> eventJobVOS) { | |
369 | + // todo | |
370 | + } | |
371 | + | |
372 | + /** | |
373 | + * @param orderBaseInfoList | |
374 | + * @param orderInspectionStageList | |
375 | + * @param orderTrackStageList | |
376 | + * @return | |
377 | + */ | |
378 | + private List<OrderEventJobVO> transfer2OrderEventList(List<OrderBaseInfoDO> orderBaseInfoList, List<OrderInspectionStageDO> orderInspectionStageList, List<OrderTrackStageDO> orderTrackStageList) { | |
379 | + | |
380 | + // todo | |
381 | + return null; | |
382 | + } | |
383 | + | |
384 | + /** | |
385 | + * @param orderEventJobVOList | |
386 | + * @return | |
387 | + */ | |
388 | + private Map<String, List<OrderEventJobVO>> handlerOrderEvent(List<OrderEventJobVO> orderEventJobVOList) { | |
389 | + Map<String, List<OrderEventJobVO>> map = new HashMap<>(); | |
390 | + for (OrderEventJobVO eventJobVO : orderEventJobVOList) { | |
391 | + Map<String, OrderEventJobVO> eventJobVOMap = groupByOrderEvent(eventJobVO); | |
392 | + if (CollectionUtils.isNotEmpty(eventJobVOMap)) { | |
393 | + for (Map.Entry<String, OrderEventJobVO> entry : eventJobVOMap.entrySet()) { | |
394 | + String key = entry.getKey(); | |
395 | + if (map.containsKey(key)) { | |
396 | + List<OrderEventJobVO> list = map.get(key); | |
397 | + list.add(entry.getValue()); | |
398 | + map.put(key, list); | |
399 | + } else { | |
400 | + List<OrderEventJobVO> list = new ArrayList<>(); | |
401 | + list.add(entry.getValue()); | |
402 | + map.put(key, list); | |
403 | + } | |
404 | + } | |
405 | + } | |
406 | + } | |
407 | + return map; | |
408 | + } | |
409 | + | |
410 | + /** | |
411 | + * @param eventJobVO | |
412 | + * @return | |
413 | + */ | |
414 | + private Map<String, OrderEventJobVO> groupByOrderEvent(OrderEventJobVO eventJobVO) { | |
415 | + Map<String, OrderEventJobVO> map = new HashMap<>(); | |
416 | + if (filterConfirmSampleOrderEvent(eventJobVO)) { | |
417 | + map.put(OrderEventEnum.CONFIRM_SAMPLE_EVENT.getEvent(), eventJobVO); | |
418 | + } | |
419 | + // todo 其他订单超期事件判断 | |
420 | + return map; | |
421 | + } | |
422 | + | |
423 | + /** | |
424 | + * @param eventJobVO | |
425 | + * @return | |
426 | + */ | |
427 | + private Boolean filterConfirmSampleOrderEvent(OrderEventJobVO eventJobVO) { | |
428 | + | |
429 | + // todo 判断是否未能在规定的期限内完成以下货号的确认样确认 | |
430 | + | |
431 | + return true; | |
432 | + } | |
433 | + | |
352 | 434 | } | ... | ... |