|
|
|
@ -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<RecycleDeliveryOrderEntity> list = recycleDeliveryOrderService.getList();
|
|
|
|
|
if (CollectionUtils.isEmpty(list)) {
|
|
|
|
|
log.info("没有需要审核的数据!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//需要审核通过的单据id
|
|
|
|
|
//0 手动审核 1 24小时自动 2 48小时自动
|
|
|
|
|
List<String> ids = Lists.newArrayList();
|
|
|
|
|
List<String> 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;
|
|
|
|
|
}
|
|
|
|
|
}
|