From 3a44280abe68247092a8e182b930ec03adf5399e Mon Sep 17 00:00:00 2001 From: yuyongle <1150359267@qq.com> Date: Wed, 20 Aug 2025 10:46:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=83=AD=E9=97=A8=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/enums/ActivitiesStatusEnum.java | 41 +++++++++++++++ .../impl/PopularActivitiesServiceImpl.java | 23 +++++++-- .../tasks/PopularActivitiesTasks.java | 50 +++++++++++++++++++ .../property/tasks/ServiceWorkOrderTasks.java | 12 ++--- 4 files changed, 115 insertions(+), 11 deletions(-) create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/enums/ActivitiesStatusEnum.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/PopularActivitiesTasks.java diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/enums/ActivitiesStatusEnum.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/enums/ActivitiesStatusEnum.java new file mode 100644 index 00000000..fab5d57f --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/enums/ActivitiesStatusEnum.java @@ -0,0 +1,41 @@ +package org.dromara.property.domain.enums; + +import lombok.Getter; + +/** + * @Author:yuyongle + * @Date:2025/7/4 10:35 + * @Description:活动状态枚举 + **/ +@Getter +public enum ActivitiesStatusEnum { + /** + * 未开始 + */ + NOTSTARTED("未开始", "1"), + /** + * 待提货 + */ + INPROGRESS("待提货", "2"), + /** + * 已结束 + */ + HASENDED("已结束", "3"); + + + private final String name; + private final String value; + + ActivitiesStatusEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return this.name; + } + + public String getValue() { + return this.value; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PopularActivitiesServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PopularActivitiesServiceImpl.java index 35db1382..e3a54ed9 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PopularActivitiesServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PopularActivitiesServiceImpl.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.enums.ActivitiesStatusEnum; import org.dromara.property.domain.vo.CustomerNoticesVo; import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.domain.vo.RemoteUserVo; @@ -21,11 +22,9 @@ import org.dromara.property.domain.vo.PopularActivitiesVo; import org.dromara.property.domain.PopularActivities; import org.dromara.property.mapper.PopularActivitiesMapper; import org.dromara.property.service.IPopularActivitiesService; +import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; import java.util.logging.Handler; import java.util.stream.Collectors; @@ -130,6 +129,7 @@ public class PopularActivitiesServiceImpl implements IPopularActivitiesService { * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(PopularActivitiesBo bo) { PopularActivities add = MapstructUtils.convert(bo, PopularActivities.class); validEntityBeforeSave(add); @@ -147,9 +147,10 @@ public class PopularActivitiesServiceImpl implements IPopularActivitiesService { * @return 是否修改成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(PopularActivitiesBo bo) { PopularActivities update = MapstructUtils.convert(bo, PopularActivities.class); - validEntityBeforeSave(update); + validEntityBeforeUpdate(update); return baseMapper.updateById(update) > 0; } @@ -157,6 +158,18 @@ public class PopularActivitiesServiceImpl implements IPopularActivitiesService { * 保存前的数据校验 */ private void validEntityBeforeSave(PopularActivities entity) { + //TODO拿当前时间和开始时间和结束时间做对比修改状态 + Date now = new Date(); + entity.setStatus( + now.before(entity.getStartTime()) ? ActivitiesStatusEnum.NOTSTARTED.getValue() : + now.after(entity.getEndTime()) ? ActivitiesStatusEnum.HASENDED.getValue() : ActivitiesStatusEnum.INPROGRESS.getValue() + ); + } + + /** + * 修改前的数据校验 + */ + private void validEntityBeforeUpdate(PopularActivities entity) { //TODO 做一些数据校验,如唯一约束 } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/PopularActivitiesTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/PopularActivitiesTasks.java new file mode 100644 index 00000000..8df999d1 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/PopularActivitiesTasks.java @@ -0,0 +1,50 @@ +package org.dromara.property.tasks; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.PopularActivities; +import org.dromara.property.domain.enums.ActivitiesStatusEnum; +import org.dromara.property.mapper.PopularActivitiesMapper; +import org.dromara.property.service.IPopularActivitiesService; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * @author yuyongle + * @version 1.0 + * @description: TODO + * @date 2025/8/20 10:22 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class PopularActivitiesTasks { + private final PopularActivitiesMapper popularActivitiesMapper; + /** + * 修改活动到期的活动状态 + */ + @Transactional(rollbackFor = Exception.class) + @Scheduled(cron = "0 0 */1 * * ?") + //@GetMapping("/serviceWorkOrderTaskId") + private void handlePopularActivities() { + List popularActivities = popularActivitiesMapper.selectList( + new LambdaQueryWrapper() + .ne(PopularActivities::getStatus, ActivitiesStatusEnum.HASENDED.getValue()) + ); + Date now = new Date(); + popularActivities.stream().forEach(entity ->{ + //TODO拿当前时间和开始时间和结束时间做对比修改状态 + entity.setStatus( + now.before(entity.getStartTime()) ? ActivitiesStatusEnum.NOTSTARTED.getValue() : + now.after(entity.getEndTime()) ? ActivitiesStatusEnum.HASENDED.getValue() : ActivitiesStatusEnum.INPROGRESS.getValue() + ); + }); + popularActivitiesMapper.updateBatchById(popularActivities); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java index 20b673ef..e4709fc1 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/ServiceWorkOrderTasks.java @@ -48,9 +48,9 @@ public class ServiceWorkOrderTasks { /** * 查询状态为创建工单的工单,查询当天排班人员,为工单自动派单 */ -// @Transactional(rollbackFor = Exception.class) -// @Scheduled(cron = "0 0 */1 * * ?") - @GetMapping("/serviceWorkOrderTaskId") + @Transactional(rollbackFor = Exception.class) + @Scheduled(cron = "0 0 */1 * * ?") + //@GetMapping("/serviceWorkOrderTaskId") private void handleServiceWorkOrder() { List serviceWorkOrderList = workOrdersMapper.selectList( new LambdaQueryWrapper() @@ -88,9 +88,9 @@ public class ServiceWorkOrderTasks { /** * 处理超过30分钟的工单 */ -// @Transactional(rollbackFor = Exception.class) -// @Scheduled(cron = "0 0 */1 * * ?") - @GetMapping("/thirtyWorkOrderTaskId") + @Transactional(rollbackFor = Exception.class) + @Scheduled(cron = "0 0 */1 * * ?") +// @GetMapping("/thirtyWorkOrderTaskId") private void thirtyHandleServiceWorkOrder() { // 1. 查询当前状态为“已派单”的工单 List serviceWorkOrderList = workOrdersMapper.selectList(