增加修改客户重新同步功能
This commit is contained in:
@@ -2,6 +2,8 @@ package com.bms.price.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.bms.price.domain.PrcBillingTask;
|
||||
import com.bms.price.domain.PrcBillingTaskRetryTask;
|
||||
import com.bms.price.domain.vo.BillingTaskRetryByFilterRequest;
|
||||
import com.bms.price.domain.vo.BillingTaskSubmitRequest;
|
||||
|
||||
public interface IPrcBillingTaskService
|
||||
@@ -22,4 +24,12 @@ public interface IPrcBillingTaskService
|
||||
* @return task after retry
|
||||
*/
|
||||
PrcBillingTask retryTask(Long taskId);
|
||||
|
||||
/**
|
||||
* Start async filter retry (customer + bill_time). Returns async task id for progress poll.
|
||||
*/
|
||||
String startRetryByFilter(BillingTaskRetryByFilterRequest request);
|
||||
|
||||
/** Poll async filter-retry progress. */
|
||||
PrcBillingTaskRetryTask getRetryByFilterTask(String asyncTaskId);
|
||||
}
|
||||
|
||||
+51
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -13,7 +14,9 @@ import com.bms.common.exception.ServiceException;
|
||||
import com.bms.common.utils.StringUtils;
|
||||
import com.bms.price.config.BillingProperties;
|
||||
import com.bms.price.domain.PrcBillingTask;
|
||||
import com.bms.price.domain.PrcBillingTaskRetryTask;
|
||||
import com.bms.price.domain.PrcOrderBill;
|
||||
import com.bms.price.domain.vo.BillingTaskRetryByFilterRequest;
|
||||
import com.bms.price.domain.vo.BillingTaskSubmitRequest;
|
||||
import com.bms.price.domain.vo.TmsPriceBillRequest;
|
||||
import com.bms.price.domain.vo.TmsPriceQuoteResult;
|
||||
@@ -28,6 +31,7 @@ import com.bms.price.oracle.OracleOrderBillMapper;
|
||||
import com.bms.price.oracle.OracleUpstreamOrderService;
|
||||
import com.bms.price.service.IPrcBillingTaskService;
|
||||
import com.bms.price.service.IPrcOrderBillService;
|
||||
import com.bms.price.task.PrcBillingTaskRetryAsyncRunner;
|
||||
|
||||
@Service
|
||||
public class PrcBillingTaskServiceImpl implements IPrcBillingTaskService
|
||||
@@ -55,6 +59,9 @@ public class PrcBillingTaskServiceImpl implements IPrcBillingTaskService
|
||||
@Autowired
|
||||
private BillingProperties billingProperties;
|
||||
|
||||
@Autowired
|
||||
private PrcBillingTaskRetryAsyncRunner retryAsyncRunner;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public PrcBillingTask submitInbound(BillingTaskSubmitRequest request)
|
||||
@@ -359,6 +366,50 @@ public class PrcBillingTaskServiceImpl implements IPrcBillingTaskService
|
||||
return billingTaskMapper.selectPrcBillingTaskById(taskId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String startRetryByFilter(BillingTaskRetryByFilterRequest request)
|
||||
{
|
||||
if (request == null)
|
||||
{
|
||||
throw new ServiceException("request required");
|
||||
}
|
||||
String customerCode = trim(request.getCustomerCode());
|
||||
String beginTime = trim(request.getBeginTime());
|
||||
String endTime = trim(request.getEndTime());
|
||||
if (StringUtils.isEmpty(customerCode))
|
||||
{
|
||||
throw new ServiceException("customerCode required");
|
||||
}
|
||||
if (StringUtils.isEmpty(beginTime) || StringUtils.isEmpty(endTime))
|
||||
{
|
||||
throw new ServiceException("beginTime and endTime required");
|
||||
}
|
||||
PrcBillingTask query = new PrcBillingTask();
|
||||
query.setCustomerCode(customerCode);
|
||||
query.setParams(PrcBillingTaskRetryAsyncRunner.timeParams(beginTime, endTime));
|
||||
String status = trim(request.getSuccessStatus());
|
||||
if (StringUtils.isNotEmpty(status) && !"ALL".equalsIgnoreCase(status))
|
||||
{
|
||||
query.setSuccessStatus(status);
|
||||
}
|
||||
String asyncTaskId = UUID.randomUUID().toString().replace("-", "");
|
||||
retryAsyncRunner.put(asyncTaskId, PrcBillingTaskRetryTask.STATUS_PENDING, 0, "queued",
|
||||
0, 0, 0, 0, null);
|
||||
retryAsyncRunner.run(asyncTaskId, query,
|
||||
PrcBillingTaskRetryAsyncRunner.clampBatch(request.getBatchSize()));
|
||||
return asyncTaskId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PrcBillingTaskRetryTask getRetryByFilterTask(String asyncTaskId)
|
||||
{
|
||||
if (StringUtils.isEmpty(asyncTaskId))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return retryAsyncRunner.get(asyncTaskId.trim());
|
||||
}
|
||||
|
||||
private BillTaskType resolveAutoType(String transferNo, String trackingNo, String orderNo)
|
||||
{
|
||||
PrcOrderBill existed = null;
|
||||
|
||||
Reference in New Issue
Block a user