Commit fabedecc authored by shiyu's avatar shiyu

小程序退货单超时签收检查

parent 7342c618
......@@ -31,6 +31,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
......@@ -80,6 +82,8 @@ public class ReturnOrderServiceImpl implements ReturnOrderService {
@Override
public Result findList(ReturnOrderRequestDto dto) {
//检查退货单商品寄出是否超过7天未确认,超时则系统默认已确认签收
checkTimeOutForReturnSigned(dto.getUserId());
try {
if (StringUtils.hasLength(dto.getSearchParam())) {
//判断查询条件是否为中文,是的话就根据商品名称模糊查询
......@@ -195,7 +199,6 @@ public class ReturnOrderServiceImpl implements ReturnOrderService {
//货品待退回
appletStateNodeVoList.get(1).setPassed(true);
for (ReturnOrderRecord returnOrderRecord : returnOrderRecordList) {
//货品已出库
if (returnOrderRecord.getType() == ReturnOrderEnum.OperateTypeEnum.SEND_RETURN.getCode()) {
......@@ -232,4 +235,53 @@ public class ReturnOrderServiceImpl implements ReturnOrderService {
}
return Result.failed();
}
/**
* 退货发出超过7天,系统默认已签收
*/
private void checkTimeOutForReturnSigned(long userId) {
//查询商品已寄出的退货单
ReturnOrderRequestDto returnOrderRequestDto = new ReturnOrderRequestDto();
returnOrderRequestDto.setUserId(userId);
returnOrderRequestDto.setState(ReturnOrderEnum.StateEnum.SENDED.getCode());
returnOrderRequestDto.setPage(1);
returnOrderRequestDto.setLimit(100);
List<ReturnOrder> waitConfirmList = returnOrderDao.findByPage(returnOrderRequestDto);
for (ReturnOrder returnOrder : waitConfirmList) {
//查询退货寄回的时间
ReturnOrderRecord returnOrderRecord = returnOrderRecordDao.findByType(returnOrder.getReturnOrderId(), ReturnOrderEnum.OperateTypeEnum.SEND_RETURN.getCode());
Date startTime = returnOrderRecord.getCreateTime();
Date endTime = new Date();
long diffInMillies = Math.abs(endTime.getTime() - startTime.getTime());
long diffInHours = diffInMillies / (60 * 60 * 1000);
if (diffInHours >= (24 * 7)) {
//超时未签收
timeOutSystemSigned(returnOrder.getReturnOrderId());
logger.info(">>>>>> 退货单号: {} 退货发出超过7天,系统默认已签收,更改退货单状态为已完成,并记录操作节点 <<<<<<<", returnOrder.getReturnOrderId());
}
}
}
/**
* 确认超时系统默认签收
* @param returnOrderId
* @return
*/
@Transactional
public Result timeOutSystemSigned(String returnOrderId) {
try {
ReturnOrder returnOrder = new ReturnOrder();
returnOrder.setReturnOrderId(returnOrderId);
returnOrder.setState(ReturnOrderEnum.StateEnum.FINISH.getCode());
returnOrderDao.update(returnOrder);
//寄出超过7天,系统默认签收
returnOrderRecordDao.insert(returnOrderId, "用户未确认,超过7天系统自动确认收货", ReturnOrderEnum.OperateTypeEnum.SYSTEM_SIGNED.getCode(), "");
return Result.success();
} catch (Exception e) {
logger.error("用户未确认,超过7天系统自动确认收货 error : {}", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return Result.failed();
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment