feat(job):批量审核xxlJob任务;

master
jiyufei 4 months ago
parent 12cbe23831
commit 989c57ae74

@ -27,6 +27,10 @@
<artifactId>jnpf-system-biz</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.jnpf</groupId>
<artifactId>jnpf-scm-biz</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

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

@ -41,4 +41,11 @@ public interface RecycleDeliveryOrderService extends IService<RecycleDeliveryOrd
int batchAudit(DeliveryAuditBatch batch);
List<RecycleDeliveryOrderEntity> getByIds(List<String> ids);
/**
*
*
* @return list
*/
List<RecycleDeliveryOrderEntity> getList();
}

@ -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<RecycleDeliveryOrderMapper, RecycleDeliveryOrderEntity> 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<RecycleDelivery
return list(query);
}
@Override
public List<RecycleDeliveryOrderEntity> getList() {
LambdaQueryWrapper<RecycleDeliveryOrderEntity> wrapper = new LambdaQueryWrapper<>(RecycleDeliveryOrderEntity.class)
.eq(RecycleDeliveryOrderEntity::getAdjustStatus, 0);
return this.list(wrapper);
}
/**
*
*

@ -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<String> ids;
@JsonProperty("adjustStatus")//审核状态
private String adjustStatus;
@ -21,4 +25,10 @@ public class DeliveryAuditBatch {
private String lastModifyUserId;
@JsonProperty("lastModifyTime")
private LocalDateTime lastModifyTime;
public DeliveryAuditBatch(List<String> ids, String adjustStatus, String adjustComm) {
this.ids = ids;
this.adjustStatus = adjustStatus;
this.adjustComm = adjustComm;
}
}

Loading…
Cancel
Save