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,7 +4,6 @@ import com.alibaba.fastjson.JSON; | ||
4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
5 | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | 5 | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
6 | import com.order.erp.common.constant.Constant; | 6 | import com.order.erp.common.constant.Constant; |
7 | -import com.order.erp.common.constant.ServerResult; | ||
8 | import com.order.erp.common.utils.EmailSendUtils; | 7 | import com.order.erp.common.utils.EmailSendUtils; |
9 | import com.order.erp.common.utils.StringUtils; | 8 | import com.order.erp.common.utils.StringUtils; |
10 | import com.order.erp.common.utils.TransactionHelper; | 9 | import com.order.erp.common.utils.TransactionHelper; |
@@ -12,8 +11,12 @@ import com.order.erp.domain.EmailTemplateEnum; | @@ -12,8 +11,12 @@ import com.order.erp.domain.EmailTemplateEnum; | ||
12 | import com.order.erp.domain.OrderEventEnum; | 11 | import com.order.erp.domain.OrderEventEnum; |
13 | import com.order.erp.domain.OrderStatusEnum; | 12 | import com.order.erp.domain.OrderStatusEnum; |
14 | import com.order.erp.domain.dto.BaseDO; | 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 | import com.order.erp.domain.email.OrderProductEmailVO; | 18 | import com.order.erp.domain.email.OrderProductEmailVO; |
19 | +import com.order.erp.domain.vo.order.OrderEventJobVO; | ||
17 | import com.order.erp.domain.vo.order.ReceiveEmailConfigItemVO; | 20 | import com.order.erp.domain.vo.order.ReceiveEmailConfigItemVO; |
18 | import com.order.erp.service.order.*; | 21 | import com.order.erp.service.order.*; |
19 | import freemarker.template.TemplateException; | 22 | import freemarker.template.TemplateException; |
@@ -28,10 +31,7 @@ import java.io.IOException; | @@ -28,10 +31,7 @@ import java.io.IOException; | ||
28 | import java.time.LocalDate; | 31 | import java.time.LocalDate; |
29 | import java.time.format.DateTimeFormatter; | 32 | import java.time.format.DateTimeFormatter; |
30 | import java.time.temporal.ChronoUnit; | 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 | import java.util.function.Function; | 35 | import java.util.function.Function; |
36 | import java.util.stream.Collectors; | 36 | import java.util.stream.Collectors; |
37 | 37 | ||
@@ -91,11 +91,11 @@ public class OrderOverTimeEventJob { | @@ -91,11 +91,11 @@ public class OrderOverTimeEventJob { | ||
91 | System.out.println("1111111111111111111111111"); | 91 | System.out.println("1111111111111111111111111"); |
92 | //只有跟单信息不为空时,才会有时间和状态。 | 92 | //只有跟单信息不为空时,才会有时间和状态。 |
93 | if (CollectionUtils.isNotEmpty(orderTrackStageList)) { | 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 | orderTrackStageList.stream().forEach(x -> { | 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 | if (StringUtils.isBlank(baseInfoDOMap.get(x.getOrderId()).getOrderHodTime())) { | 99 | if (StringUtils.isBlank(baseInfoDOMap.get(x.getOrderId()).getOrderHodTime())) { |
100 | // return ServerResult.fail("HODTime不能为空"); | 100 | // return ServerResult.fail("HODTime不能为空"); |
101 | } | 101 | } |
@@ -349,4 +349,86 @@ public class OrderOverTimeEventJob { | @@ -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 | } |