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;
+ }
}