From 989c57ae7467f7bb4c38483a0d3ac70389ecb980 Mon Sep 17 00:00:00 2001 From: jiyufei <67400194@qq.com> Date: Fri, 28 Jun 2024 18:02:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(job):=E6=89=B9=E9=87=8F=E5=AE=A1=E6=A0=B8x?= =?UTF-8?q?xlJob=E4=BB=BB=E5=8A=A1;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jnpf-scheduletask-biz/pom.xml | 6 +- .../scheduletask/task/OrderReviewTask.java | 75 +++++++++++++++++++ .../service/RecycleDeliveryOrderService.java | 7 ++ .../impl/RecycleDeliveryOrderServiceImpl.java | 15 ++-- .../DeliveryAuditBatch.java | 12 ++- 5 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/src/main/java/jnpf/scheduletask/task/OrderReviewTask.java diff --git a/jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/pom.xml b/jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/pom.xml index 5b16ed7..3175aeb 100644 --- a/jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/pom.xml +++ b/jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/pom.xml @@ -27,6 +27,10 @@ jnpf-system-biz ${project.version} + + com.jnpf + jnpf-scm-biz + ${project.version} + - \ No newline at end of file diff --git a/jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/src/main/java/jnpf/scheduletask/task/OrderReviewTask.java b/jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/src/main/java/jnpf/scheduletask/task/OrderReviewTask.java new file mode 100644 index 0000000..f6a41c2 --- /dev/null +++ b/jnpf-java-boot/jnpf-scheduletask/jnpf-scheduletask-biz/src/main/java/jnpf/scheduletask/task/OrderReviewTask.java @@ -0,0 +1,75 @@ +package jnpf.scheduletask.task; + +import com.google.common.collect.Lists; +import com.xxl.job.core.handler.annotation.XxlJob; +import jnpf.entity.RecycleDeliveryOrderEntity; +import jnpf.model.recycledeliveryorder.DeliveryAuditBatch; +import jnpf.service.RecycleDeliveryOrderService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +@Component +@Slf4j +public class OrderReviewTask { + + @Resource + private RecycleDeliveryOrderService recycleDeliveryOrderService; + + @XxlJob("handleDeliveryTask") + public void handleDeliveryTask() { + //查询待审核的数据 + List list = recycleDeliveryOrderService.getList(); + if (CollectionUtils.isEmpty(list)) { + log.info("没有需要审核的数据!"); + return; + } + //需要审核通过的单据id + //0 手动审核 1 24小时自动 2 48小时自动 + List ids = Lists.newArrayList(); + List fails = Lists.newArrayList(); + for (RecycleDeliveryOrderEntity entity : list) { + if (Objects.isNull(entity.getAdjustSet()) || entity.getAdjustSet() == 0 || Objects.isNull(entity.getCreatorTime())) { + fails.add(entity.getId()); + continue; + } else if (entity.getAdjustSet() == 1) { + //判断创建时间跟当前时间比对 是否超过24小时 + if (isTimeExceededInMinutes(entity.getCreatorTime(), 1)) { + ids.add(entity.getId()); + } + } else if (entity.getAdjustSet() == 2) { + //判断创建时间跟当前时间比对 是否超过48小时 + if (isTimeExceededInMinutes(entity.getCreatorTime(), 2)) { + ids.add(entity.getId()); + } + } + } + log.info("自动审核的单据id:{}", ids); + log.info("自动审核失败的单据id:{}", fails); + if (CollectionUtils.isNotEmpty(ids)) { + recycleDeliveryOrderService.batchAudit(new DeliveryAuditBatch(ids, "1", "自动审核")); + } + } + + public static boolean isTimeExceededInMinutes(Date creatTime, int type) { + + Date now = new Date(); // 获取当前时间 + + // 计算两个时间之间的毫秒差 + long diffInMillis = now.getTime() - creatTime.getTime(); + + // 转换毫秒差为分钟差 即只要超过一分钟就是超过了24小时或者48小时 + long minsDiff = diffInMillis / (1000 * 60); + + // 根据type判断时间是否超过指定的分钟数 + if (type == 1 && minsDiff > 1440) { + return true; + } else if (type == 2 && minsDiff > 2880) { + return true; + } + return false; + } +} diff --git a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/RecycleDeliveryOrderService.java b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/RecycleDeliveryOrderService.java index be14f45..752c7d4 100644 --- a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/RecycleDeliveryOrderService.java +++ b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/RecycleDeliveryOrderService.java @@ -41,4 +41,11 @@ public interface RecycleDeliveryOrderService extends IService getByIds(List ids); + + /** + * 查询全部待审核数据 + * + * @return list + */ + List getList(); } diff --git a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java index 4bfa5e7..ed01d74 100644 --- a/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java +++ b/jnpf-java-boot/jnpf-scm/jnpf-scm-biz/src/main/java/jnpf/service/impl/RecycleDeliveryOrderServiceImpl.java @@ -2,6 +2,7 @@ package jnpf.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -29,10 +30,7 @@ import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -48,12 +46,10 @@ import java.util.stream.Collectors; public class RecycleDeliveryOrderServiceImpl extends ServiceImpl implements RecycleDeliveryOrderService { @Autowired private GeneraterSwapUtil generaterSwapUtil; - @Autowired private UserProvider userProvider; @Resource private RecycleDeliveryOrderMapper deliveryOrderMapper; - @Resource private ClientService clientService; @Resource @@ -634,6 +630,13 @@ public class RecycleDeliveryOrderServiceImpl extends ServiceImpl getList() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(RecycleDeliveryOrderEntity.class) + .eq(RecycleDeliveryOrderEntity::getAdjustStatus, 0); + return this.list(wrapper); + } + /** * 获取业务唯一编号 * diff --git a/jnpf-java-boot/jnpf-scm/jnpf-scm-entity/src/main/java/jnpf/model/recycledeliveryorder/DeliveryAuditBatch.java b/jnpf-java-boot/jnpf-scm/jnpf-scm-entity/src/main/java/jnpf/model/recycledeliveryorder/DeliveryAuditBatch.java index 7487522..3d5fd21 100644 --- a/jnpf-java-boot/jnpf-scm/jnpf-scm-entity/src/main/java/jnpf/model/recycledeliveryorder/DeliveryAuditBatch.java +++ b/jnpf-java-boot/jnpf-scm/jnpf-scm-entity/src/main/java/jnpf/model/recycledeliveryorder/DeliveryAuditBatch.java @@ -1,17 +1,21 @@ package jnpf.model.recycledeliveryorder; import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.Lists; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; //审核表单 @Data public class DeliveryAuditBatch { - /** 主键 */ + /** + * 主键 + */ private List ids; @JsonProperty("adjustStatus")//审核状态 private String adjustStatus; @@ -21,4 +25,10 @@ public class DeliveryAuditBatch { private String lastModifyUserId; @JsonProperty("lastModifyTime") private LocalDateTime lastModifyTime; + + public DeliveryAuditBatch(List ids, String adjustStatus, String adjustComm) { + this.ids = ids; + this.adjustStatus = adjustStatus; + this.adjustComm = adjustComm; + } }