diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/ArchiveOrderJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/ArchiveOrderJob.java index a1d1aadd0..982b54fe3 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/ArchiveOrderJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/ArchiveOrderJob.java @@ -39,6 +39,7 @@ public class ArchiveOrderJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { LocalDateTime endDateTime = LocalDateTime.now(ZoneId.of(ZoneId.SHORT_IDS.get("CTT"))); LocalDateTime startDateTime = endDateTime.minusDays(DEFAULT_NUMBER_OF_DAYS); + String excludedTrackingNumbersRegex = null; List shops = DEFAULT_EXCLUDED_SHOPS; JobDataMap jobDataMap = context.getMergedJobDataMap(); String parameter = ((String) jobDataMap.get("parameter")); @@ -53,6 +54,9 @@ public class ArchiveOrderJob implements Job { String endDateStr = jsonObject.getString("endDateTime"); endDateTime = LocalDateTime.parse(endDateStr); } + if (!jsonObject.isNull("excludedTrackingNumbersRegex")) { + excludedTrackingNumbersRegex = jsonObject.getString("excludedTrackingNumbersRegex"); + } if (!jsonObject.isNull("excludedShops")) { JSONArray shopsArray = jsonObject.getJSONArray("excludedShops"); List shopList = new ArrayList<>(); @@ -70,7 +74,7 @@ public class ArchiveOrderJob implements Job { throw new RuntimeException("EndDateTime must be strictly greater than StartDateTime !"); } - List platformOrderIds = platformOrderService.fetchInvoicedShippedOrdersNotInShops(startDateTime, endDateTime, shops); + List platformOrderIds = platformOrderService.fetchInvoicedShippedOrdersNotInShops(startDateTime, endDateTime, shops, excludedTrackingNumbersRegex); ExecutorService executor = Executors.newFixedThreadPool(DEFAULT_NUMBER_OF_THREADS); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java index 380ee7fcf..f49d88d3b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java @@ -163,7 +163,8 @@ public interface PlatformOrderMapper extends BaseMapper { List fetchInvoicedShippedOrdersNotInShops(@Param("startDateTime") LocalDateTime startDatetime, @Param("endDateTime") LocalDateTime endDatetime, - @Param("shops") List shopCodes); + @Param("shops") List shopCodes, + @Param("excludedTrackingNumbersRegex") String excludedTrackingNumbersRegex); List fetchOrderInShopsReadyForShopifySync(@Param("shops") List shopCodes); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml index 9f3568827..1fbadea86 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml @@ -435,8 +435,10 @@ AND shipping_time <= #{endDateTime} AND shipping_invoice_number IS NOT NULL AND erp_status = 3 - # Skip CNE packages whose tracking number are not yet up-to-date - AND tracking_number NOT REGEXP '3A5V[0-9]{9}|DY01[0-9]{11}'; + + AND tracking_number NOT REGEXP #{excludedTrackingNumbersRegex} + + ;