diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java index e05c8dae1..f73681a46 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/DailyTaskController.java @@ -145,6 +145,12 @@ public class DailyTaskController extends BaseController { return R.ok(); } + @PostMapping("/reset-voucher-sequence") + public R resetVoucherSequence(SysJob sysJob) { + task.resetVoucherSequence(); + return R.ok(); + } + } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java index 45533d8ec..e305603cf 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java @@ -124,6 +124,7 @@ public class XktTask { final ZtoExpressManagerImpl ztoExpressManager; final SysDictDataMapper dictDataMapper; final StoreProductColorSizeMapper prodColorSizeMapper; + final VoucherSequenceMapper voucherSequenceMapper; /** * 每天执行定时任务 @@ -442,7 +443,7 @@ public class XktTask { .eq(DailyProdTag::getDelFlag, Constants.UNDELETED)); // 已存在于ES中的标签 Map> existProdTagMap = CollectionUtils.isEmpty(existList) ? new HashMap<>() - :existList.stream().collect(Collectors.toMap(DailyProdTag::getStoreProdId, x -> new ArrayList<>(), (s1, s2) -> s2)); + : existList.stream().collect(Collectors.toMap(DailyProdTag::getStoreProdId, x -> new ArrayList<>(), (s1, s2) -> s2)); if (CollectionUtils.isNotEmpty(existList)) { this.dailyProdTagMapper.deleteByIds(existList.stream().map(DailyProdTag::getId).collect(Collectors.toList())); } @@ -847,6 +848,18 @@ public class XktTask { this.storeMapper.updateById(storeList); } + /** + * 每月第一天凌晨5:00更新voucher_sequence + */ + @Transactional + public void resetVoucherSequence() { + List voucherSequenceList = this.voucherSequenceMapper.selectList(new LambdaQueryWrapper() + .eq(VoucherSequence::getDelFlag, Constants.UNDELETED)); + // 全部更新为1 + voucherSequenceList.forEach(x -> x.setNextSequence(1)); + this.voucherSequenceMapper.updateById(voucherSequenceList); + } + /** * 每晚22:00:10 更新广告位竞价状态 将biddingTempStatus赋值给biddingStatus diff --git a/sql/ry_20240629.sql b/sql/ry_20240629.sql index 666744361..ac2050f28 100644 --- a/sql/ry_20240629.sql +++ b/sql/ry_20240629.sql @@ -2278,6 +2278,7 @@ INSERT INTO `sys_job` VALUES (128, '继续处理档口提现(异常中断补 INSERT INTO `sys_job` VALUES (129, '继续处理支付宝支付回调信息(异常中断补偿,非正常流程)', 'DEFAULT', 'xktTask.continueProcessAliCallback', '0 0/10 * * * ? ', '3', '1', '0', 0, '0', 'admin', '2025-09-02 16:14:30', '', '2025-09-02 16:14:30', ''); INSERT INTO `sys_job` VALUES (130, '商品当日浏览量、下载量、图搜次数统计', 'DEFAULT', 'xktTask.dailyProductStatistics', '0 0 23 * * ? ', '3', '1', '0', 0, '0', 'admin', '2025-09-02 16:15:54', 'admin', '2025-09-02 16:15:54', ''); INSERT INTO `sys_job` VALUES (131, '从中通同步行政区划', 'DEFAULT', 'xktTask.syncRegionFromZto', '0 0 0 1 * ? ', '3', '1', '0', 0, '0', 'admin', '2025-09-02 16:17:37', 'admin', '2025-09-02 16:17:37', ''); +INSERT INTO `sys_job` VALUES (132, '每月第一天凌晨5:00重置单据编号初始值', 'DEFAULT', 'xktTask.resetVoucherSequence', '0 0 5 1 * ?', '1', '1', '0', 0, '0', 'admin', '2025-11-06 22:26:37', '', '2025-11-06 22:26:37', ''); -- ----------------------------