UDI管理系统定时上传,定时下载单据相关
parent
8d5501c7c1
commit
39baff10bf
@ -0,0 +1,10 @@
|
||||
package com.glxp.api.req.sync;
|
||||
|
||||
import com.glxp.api.util.page.ListPageRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SpsSyncDataRequest extends ListPageRequest {
|
||||
|
||||
private String lastUpdateTime;
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.glxp.api.res.sync;
|
||||
|
||||
import com.glxp.api.entity.inout.*;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SpsSyncOrderResponse {
|
||||
|
||||
//同步任务ID
|
||||
private String taskId;
|
||||
List<IoOrderEntity> orderEntities;
|
||||
List<IoCodeEntity> codeEntities;
|
||||
List<IoOrderDetailBizEntity> orderDetailBizEntities;
|
||||
List<IoOrderDetailCodeEntity> orderDetailCodeEntities;
|
||||
List<IoOrderDetailResultEntity> orderDetailResultEntities;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,209 @@
|
||||
package com.glxp.api.service.sync;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import com.glxp.api.common.res.BaseResponse;
|
||||
import com.glxp.api.common.util.ResultVOUtils;
|
||||
import com.glxp.api.constant.BasicProcessStatus;
|
||||
import com.glxp.api.constant.ConstantStatus;
|
||||
import com.glxp.api.dao.inout.*;
|
||||
import com.glxp.api.entity.inout.*;
|
||||
import com.glxp.api.entity.sync.BasicDownloadStatusEntity;
|
||||
import com.glxp.api.entity.sync.BasicExportStatusEntity;
|
||||
import com.glxp.api.entity.sync.BasicExportStatusTimeEntity;
|
||||
import com.glxp.api.http.sync.SpGetHttpClient;
|
||||
import com.glxp.api.req.sync.SpsSyncDataRequest;
|
||||
import com.glxp.api.res.sync.SpsSyncOrderResponse;
|
||||
import com.glxp.api.service.inout.IoOrderService;
|
||||
import com.glxp.api.util.CustomUtil;
|
||||
import com.glxp.api.util.DateUtil;
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.apache.ibatis.session.TransactionIsolationLevel;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class HeartService {
|
||||
@Resource
|
||||
BasicExportService basicExportService;
|
||||
@Resource
|
||||
UpBasicService upBasicService;
|
||||
@Resource
|
||||
SpGetHttpClient spGetHttp;
|
||||
@Resource
|
||||
BasicExportTimeService basicExportTimeService;
|
||||
@Resource
|
||||
BasicDownloadService basicDownloadService;
|
||||
@Resource
|
||||
SqlSessionFactory sqlSessionFactory;
|
||||
@Resource
|
||||
IoOrderService orderService;
|
||||
|
||||
public BaseResponse uploadAllOrder(String syncTime) {
|
||||
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
|
||||
if (syncTime == null) {
|
||||
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_SCAN_ORDER);
|
||||
if (basicExportStatusTimeEntity == null) {
|
||||
basicExportStatusTimeEntity = new BasicExportStatusTimeEntity();
|
||||
basicExportStatusTimeEntity.setLastUpdateTime("1949-10-01 09:00:00");
|
||||
}
|
||||
spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime());
|
||||
} else {
|
||||
spsSyncDataRequest.setLastUpdateTime(syncTime);
|
||||
}
|
||||
SpsSyncOrderResponse spsSyncOrderResponse = upBasicService.upAllOrder(spsSyncDataRequest);
|
||||
if (CollUtil.isEmpty(spsSyncOrderResponse.getOrderEntities())
|
||||
&& CollUtil.isEmpty(spsSyncOrderResponse.getCodeEntities())) {
|
||||
//无数据不记录日志
|
||||
return ResultVOUtils.success("无数据");
|
||||
}
|
||||
|
||||
BasicExportStatusEntity basicExportStatusEntity1 = basicExportService.findByData(ConstantStatus.SYNC_SCAN_ORDER, 0);
|
||||
if (basicExportStatusEntity1 == null) {
|
||||
BasicExportStatusEntity orderStatusEntity = new BasicExportStatusEntity();
|
||||
orderStatusEntity.setId(CustomUtil.getId());
|
||||
orderStatusEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER);
|
||||
orderStatusEntity.setType(BasicProcessStatus.NEW_ALL_ORDER);
|
||||
orderStatusEntity.setUpdateTime(new Date());
|
||||
orderStatusEntity.setStartTime(new Date());
|
||||
orderStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_WAIT);
|
||||
orderStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
|
||||
basicExportService.insertExportStatus(orderStatusEntity);
|
||||
basicExportStatusEntity1 = orderStatusEntity;
|
||||
}
|
||||
BasicExportStatusTimeEntity basicExportStatusTimeEntity = new BasicExportStatusTimeEntity();
|
||||
basicExportStatusTimeEntity.setLastUpdateTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
|
||||
basicExportStatusTimeEntity.setKey(ConstantStatus.SYNC_SCAN_ORDER);
|
||||
spsSyncOrderResponse.setTaskId(basicExportStatusEntity1.getId());
|
||||
BaseResponse<String> baseResponse1 = spGetHttp.postAllOrder(spsSyncOrderResponse);
|
||||
if (baseResponse1.getCode() == 20000) {
|
||||
basicExportStatusEntity1.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS);
|
||||
} else {
|
||||
basicExportStatusEntity1.setStatus(ConstantStatus.SYNC_STATUS_FAIL);
|
||||
}
|
||||
basicExportStatusEntity1.setEndTime(new Date());
|
||||
basicExportTimeService.insertExportStatus(basicExportStatusTimeEntity);
|
||||
|
||||
//拼接日志
|
||||
String logs = "";
|
||||
if (CollUtil.isNotEmpty(spsSyncOrderResponse.getOrderEntities()))
|
||||
logs = logs + "单据:" + spsSyncOrderResponse.getOrderEntities().size() + "条\n";
|
||||
if (CollUtil.isNotEmpty(spsSyncOrderResponse.getOrderDetailBizEntities()))
|
||||
logs = logs + "单据详情:" + spsSyncOrderResponse.getOrderDetailBizEntities().size() + "条\n";
|
||||
if (CollUtil.isNotEmpty(spsSyncOrderResponse.getCodeEntities()))
|
||||
logs = logs + "单据条码信息:" + spsSyncOrderResponse.getCodeEntities().size() + "条\n";
|
||||
basicExportStatusEntity1.setRemark(logs);
|
||||
basicExportStatusEntity1.setUpdateTime(new Date());
|
||||
basicExportService.updateExportStatus(basicExportStatusEntity1);
|
||||
return ResultVOUtils.success();
|
||||
}
|
||||
|
||||
public void dlAllOrder() {
|
||||
BaseResponse<List<BasicExportStatusEntity>> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.NEW_ALL_ORDER + "");
|
||||
List<BasicExportStatusEntity> pageSimpleResponse = baseResponse.getData();
|
||||
if (pageSimpleResponse != null) {
|
||||
List<BasicExportStatusEntity> basicExportStatusEntities = pageSimpleResponse;
|
||||
if (basicExportStatusEntities != null && basicExportStatusEntities.size() > 0) {
|
||||
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
|
||||
String datas = spGetHttp.getBasicData(basicExportStatusEntity.getId(), BasicProcessStatus.NEW_ALL_ORDER);
|
||||
BaseResponse<SpsSyncOrderResponse> response = JSONObject.parseObject(datas, new TypeReference<BaseResponse<SpsSyncOrderResponse>>() {
|
||||
});
|
||||
if (response.getCode() == 20000 && response.getData() != null) {
|
||||
SpsSyncOrderResponse syncDataResponse = response.getData();
|
||||
BasicDownloadStatusEntity basicDownloadStatusEntity = new BasicDownloadStatusEntity();
|
||||
basicDownloadStatusEntity.setId(CustomUtil.getId());
|
||||
basicDownloadStatusEntity.setTaskId(syncDataResponse.getTaskId());
|
||||
basicDownloadStatusEntity.setStartTime(new Date());
|
||||
basicDownloadStatusEntity.setIdDatas(ConstantStatus.SYNC_DOWNLOAD_SCAN_ORDER);
|
||||
basicDownloadStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_WAIT); //下载中
|
||||
basicDownloadStatusEntity.setType(BasicProcessStatus.NEW_ALL_ORDER);
|
||||
basicDownloadStatusEntity.setScheduleType(1);
|
||||
basicDownloadService.insertDownloadStatus(basicDownloadStatusEntity);
|
||||
StringBuffer remark = new StringBuffer();
|
||||
|
||||
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
|
||||
if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) {
|
||||
try {
|
||||
List<IoOrderEntity> orderEntities = syncDataResponse.getOrderEntities();
|
||||
IoOrderDao mapper = batchSession.getMapper(IoOrderDao.class);
|
||||
for (IoOrderEntity orderEntity : orderEntities) {
|
||||
orderEntity.setUpdateTime(null);
|
||||
orderEntity.setFromType(ConstantStatus.FROM_UDISP);
|
||||
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
|
||||
IoOrderEntity temp = orderService.findById(orderEntity.getBillNo());
|
||||
if (temp == null) {
|
||||
orderEntity.setId(null);
|
||||
mapper.insert(orderEntity);
|
||||
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) {
|
||||
IoCodeTempDao codeMappert = batchSession.getMapper(IoCodeTempDao.class);
|
||||
List<IoCodeEntity> warehouseEntityList = syncDataResponse.getCodeEntities();
|
||||
for (IoCodeEntity warehouseEntity : warehouseEntityList) {
|
||||
if (warehouseEntity.getOrderId().equals(orderEntity.getBillNo())) {
|
||||
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
|
||||
BeanUtils.copyProperties(warehouseEntity, codeTempEntity);
|
||||
codeTempEntity.setId(null);
|
||||
codeMappert.insert(codeTempEntity);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) {
|
||||
IoOrderDetailBizDao orderDetailBizDao = batchSession.getMapper(IoOrderDetailBizDao.class);
|
||||
List<IoOrderDetailBizEntity> orderDetailBizEntities = syncDataResponse.getOrderDetailBizEntities();
|
||||
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
|
||||
if (bizEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
|
||||
orderDetailBizDao.insert(bizEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) {
|
||||
IoOrderDetailCodeDao orderDetailCodeDao = batchSession.getMapper(IoOrderDetailCodeDao.class);
|
||||
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = syncDataResponse.getOrderDetailCodeEntities();
|
||||
for (IoOrderDetailCodeEntity detailCodeEntity : orderDetailCodeEntities) {
|
||||
if (detailCodeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) {
|
||||
orderDetailCodeDao.insert(detailCodeEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
batchSession.commit();
|
||||
}
|
||||
}
|
||||
batchSession.commit();
|
||||
|
||||
String logs = "";
|
||||
if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities()))
|
||||
logs = logs + "单据:" + syncDataResponse.getOrderEntities().size() + "条\n";
|
||||
if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities()))
|
||||
logs = logs + "单据详情:" + syncDataResponse.getOrderDetailBizEntities().size() + "条\n";
|
||||
if (CollUtil.isNotEmpty(syncDataResponse.getCodeEntities()))
|
||||
logs = logs + "单据条码信息:" + syncDataResponse.getCodeEntities().size() + "条\n";
|
||||
remark.append(logs);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
batchSession.close();
|
||||
spGetHttp.postBasicStatus(basicExportStatusEntity.getId());
|
||||
|
||||
basicDownloadStatusEntity.setUpdateTime(new Date());
|
||||
basicDownloadStatusEntity.setEndTime(new Date());
|
||||
basicDownloadStatusEntity.setRemark(remark.toString());
|
||||
basicDownloadStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS);
|
||||
basicDownloadService.updateDownloadStatus(basicDownloadStatusEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,224 @@
|
||||
package com.glxp.api.service.sync;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.glxp.api.constant.ConstantStatus;
|
||||
import com.glxp.api.entity.auth.*;
|
||||
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
|
||||
import com.glxp.api.entity.basic.EntrustReceEntity;
|
||||
import com.glxp.api.entity.basic.UdiRelevanceEntity;
|
||||
import com.glxp.api.entity.inout.*;
|
||||
import com.glxp.api.entity.purchase.SupCertEntity;
|
||||
import com.glxp.api.entity.purchase.SupCompanyEntity;
|
||||
import com.glxp.api.entity.purchase.SupManufacturerEntity;
|
||||
import com.glxp.api.entity.purchase.SupProductEntity;
|
||||
import com.glxp.api.entity.system.SyncDataBustypeEntity;
|
||||
import com.glxp.api.entity.thrsys.*;
|
||||
import com.glxp.api.req.auth.*;
|
||||
import com.glxp.api.req.basic.BasicEntrustRecRequest;
|
||||
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
|
||||
import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest;
|
||||
import com.glxp.api.req.basic.FilterUdiInfoRequest;
|
||||
import com.glxp.api.req.inout.FilterOrderRequest;
|
||||
import com.glxp.api.req.purchase.FilterPoductRequest;
|
||||
import com.glxp.api.req.purchase.FilterSupCompanyRequest;
|
||||
import com.glxp.api.req.purchase.FilterSupManufacturerRequest;
|
||||
import com.glxp.api.req.sync.SpsSyncDataRequest;
|
||||
import com.glxp.api.req.thrsys.*;
|
||||
import com.glxp.api.res.sync.SpsSyncOrderResponse;
|
||||
import com.glxp.api.res.system.SyncDataSetResponse;
|
||||
import com.glxp.api.service.auth.*;
|
||||
import com.glxp.api.service.basic.EntrustReceService;
|
||||
import com.glxp.api.service.basic.UdiRelevanceService;
|
||||
import com.glxp.api.service.inout.*;
|
||||
import com.glxp.api.service.purchase.SupCertService;
|
||||
import com.glxp.api.service.purchase.SupCompanyService;
|
||||
import com.glxp.api.service.purchase.SupManufacturerService;
|
||||
import com.glxp.api.service.purchase.SupProductService;
|
||||
import com.glxp.api.service.system.SyncDataSetService;
|
||||
import com.glxp.api.service.thrsys.*;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class UpBasicService {
|
||||
|
||||
|
||||
//基础信息
|
||||
@Resource
|
||||
InvWarehouseService invWarehouseService;
|
||||
@Resource
|
||||
UdiRelevanceService udiRelevanceService;
|
||||
@Resource
|
||||
ThrInvWarehouseService thrInvWarehouseService;
|
||||
@Resource
|
||||
ThrCorpService thrCorpService;
|
||||
@Resource
|
||||
ThrProductsService thrProductsService;
|
||||
@Resource
|
||||
ThrOrderService thrOrderService;
|
||||
@Resource
|
||||
ThrOrderDetailService thrOrderDetailService;
|
||||
@Resource
|
||||
SyncDataSetService syncDataSetService;
|
||||
@Resource
|
||||
AuthAdminService authAdminService;
|
||||
@Resource
|
||||
DeptService deptService;
|
||||
@Resource
|
||||
WarehouseBussinessTypeService warehouseBussinessTypeService;
|
||||
@Resource
|
||||
WarehouseUserService warehouseUserService;
|
||||
@Resource
|
||||
InvBusUserService invBusUserService;
|
||||
|
||||
|
||||
@Resource
|
||||
SupCompanyService supCompanyService;
|
||||
@Resource
|
||||
SupManufacturerService supManufacturerService;
|
||||
@Resource
|
||||
SupProductService supProductService;
|
||||
@Resource
|
||||
SupCertService supCertService;
|
||||
|
||||
|
||||
//已完成扫码单据
|
||||
@Resource
|
||||
IoOrderService orderService;
|
||||
@Resource
|
||||
IoCodeService codesService;
|
||||
@Resource
|
||||
IoOrderDetailBizService orderDetailBizService;
|
||||
@Resource
|
||||
IoOrderDetailCodeService orderDetailCodeService;
|
||||
@Resource
|
||||
IoOrderDetailResultService orderDetailResultService;
|
||||
|
||||
public SpsSyncOrderResponse upAllOrder(SpsSyncDataRequest spsSyncDataRequest) {
|
||||
SpsSyncOrderResponse syncOrderResponse = new SpsSyncOrderResponse();
|
||||
//查询数据同步设置
|
||||
SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet();
|
||||
List<IoOrderEntity> orderEntities = new ArrayList<>();
|
||||
|
||||
|
||||
//待校验
|
||||
if (syncDataSetEntity.isOrderUnCheck()) {
|
||||
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
|
||||
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
|
||||
|
||||
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
|
||||
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
|
||||
List<String> filterList = new ArrayList<>();
|
||||
filterList.add(syncDataBustypeEntity.getAction());
|
||||
orderFilterRequest.setActions(filterList);
|
||||
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK);
|
||||
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
|
||||
if (CollUtil.isNotEmpty(temps)) {
|
||||
orderEntities.addAll(temps);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//待核对
|
||||
if (syncDataSetEntity.isOrderUnCheck()) {
|
||||
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
|
||||
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
|
||||
|
||||
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
|
||||
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
|
||||
List<String> filterList = new ArrayList<>();
|
||||
filterList.add(syncDataBustypeEntity.getAction());
|
||||
orderFilterRequest.setActions(filterList);
|
||||
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS);
|
||||
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
|
||||
if (CollUtil.isNotEmpty(temps)) {
|
||||
orderEntities.addAll(temps);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//待审核
|
||||
if (syncDataSetEntity.isOrderUnReceive()) {
|
||||
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
|
||||
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
|
||||
|
||||
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
|
||||
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
|
||||
List<String> filterList = new ArrayList<>();
|
||||
filterList.add(syncDataBustypeEntity.getAction());
|
||||
orderFilterRequest.setActions(filterList);
|
||||
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
|
||||
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
|
||||
if (CollUtil.isNotEmpty(temps)) {
|
||||
orderEntities.addAll(temps);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//已完成
|
||||
if (syncDataSetEntity.isOrderScanFinish()) {
|
||||
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
|
||||
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
|
||||
|
||||
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
|
||||
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
|
||||
List<String> filterList = new ArrayList<>();
|
||||
filterList.add(syncDataBustypeEntity.getAction());
|
||||
orderFilterRequest.setActions(filterList);
|
||||
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_AUDITED);
|
||||
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
|
||||
if (CollUtil.isNotEmpty(temps)) {
|
||||
orderEntities.addAll(temps);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
syncOrderResponse.setOrderEntities(orderEntities);
|
||||
List<IoCodeEntity> codeEntities = new ArrayList<>();
|
||||
List<IoOrderDetailBizEntity> orderDetailBizEntities = new ArrayList<>();
|
||||
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = new ArrayList<>();
|
||||
List<IoOrderDetailResultEntity> orderDetailResultEntities = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(orderEntities)) {
|
||||
for (IoOrderEntity orderEntity : orderEntities) {
|
||||
|
||||
List<IoCodeEntity> codes = codesService.findByOrderId(orderEntity.getBillNo());
|
||||
if (CollUtil.isNotEmpty(codes)) {
|
||||
codeEntities.addAll(codes);
|
||||
}
|
||||
|
||||
List<IoOrderDetailBizEntity> bizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo());
|
||||
if (CollUtil.isNotEmpty(bizEntities)) {
|
||||
orderDetailBizEntities.addAll(bizEntities);
|
||||
}
|
||||
|
||||
|
||||
List<IoOrderDetailCodeEntity> detailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
|
||||
if (CollUtil.isNotEmpty(detailCodeEntities)) {
|
||||
orderDetailCodeEntities.addAll(detailCodeEntities);
|
||||
}
|
||||
|
||||
|
||||
List<IoOrderDetailResultEntity> detailResultEntities = orderDetailResultService.findByOrderId(orderEntity.getBillNo());
|
||||
if (CollUtil.isNotEmpty(detailResultEntities)) {
|
||||
orderDetailResultEntities.addAll(detailResultEntities);
|
||||
}
|
||||
}
|
||||
}
|
||||
syncOrderResponse.setOrderDetailBizEntities(orderDetailBizEntities);
|
||||
syncOrderResponse.setOrderDetailCodeEntities(orderDetailCodeEntities);
|
||||
syncOrderResponse.setOrderDetailResultEntities(orderDetailResultEntities);
|
||||
return syncOrderResponse;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
package com.glxp.api.task;
|
||||
|
||||
import com.glxp.api.dao.schedule.ScheduledDao;
|
||||
import com.glxp.api.dao.system.SyncDataSetDao;
|
||||
import com.glxp.api.entity.system.ScheduledEntity;
|
||||
import com.glxp.api.entity.system.SyncDataSetEntity;
|
||||
import com.glxp.api.req.system.ScheduledRequest;
|
||||
import com.glxp.api.service.sync.HeartService;
|
||||
import com.glxp.api.service.system.SystemParamConfigService;
|
||||
import com.glxp.api.util.RedisUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.annotation.SchedulingConfigurer;
|
||||
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
|
||||
import org.springframework.scheduling.support.CronTrigger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
||||
@Component
|
||||
@EnableScheduling
|
||||
public class SyncHeartTask implements SchedulingConfigurer {
|
||||
|
||||
final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class);
|
||||
@Resource
|
||||
protected ScheduledDao scheduledDao;
|
||||
@Resource
|
||||
RedisUtil redisUtil;
|
||||
@Resource
|
||||
HeartService heartService;
|
||||
@Resource
|
||||
private SyncDataSetDao syncDataSetDao;
|
||||
|
||||
@Override
|
||||
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
|
||||
|
||||
scheduledTaskRegistrar.addTriggerTask(() -> process(),
|
||||
triggerContext -> {
|
||||
ScheduledRequest scheduledRequest = new ScheduledRequest();
|
||||
scheduledRequest.setCronName("heartTask");
|
||||
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
|
||||
String cron = scheduledEntity.getCron();
|
||||
if (cron.isEmpty()) {
|
||||
logger.error("cron is null");
|
||||
}
|
||||
return new CronTrigger(cron).nextExecutionTime(triggerContext);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void process() {
|
||||
|
||||
logger.info("数据同步心跳");
|
||||
//查询数据同步设置
|
||||
SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet();
|
||||
if (syncDataSetEntity.isDownstreamEnable()) {
|
||||
|
||||
//定时上传最近更新单据数据至上游轮询时间
|
||||
long timeInterval2 = syncDataSetEntity.getOrderSyncTime() * 60 * 1000L;
|
||||
long curTime2 = System.currentTimeMillis();
|
||||
Long lastTime2 = (Long) redisUtil.get("SPS_SYNC_UPLOAD_ORDER");
|
||||
if (lastTime2 == null) {
|
||||
lastTime2 = System.currentTimeMillis();
|
||||
redisUtil.set("SPS_SYNC_UPLOAD_ORDER", lastTime2);
|
||||
}
|
||||
if (curTime2 - lastTime2 > timeInterval2) {
|
||||
heartService.uploadAllOrder(null);
|
||||
redisUtil.set("SPS_SYNC_UPLOAD_ORDER", curTime2);
|
||||
}
|
||||
|
||||
|
||||
//定时下载上游最近更新数据轮询时间
|
||||
long timeInterval = syncDataSetEntity.getSyncDownloadTime() * 60 * 1000;
|
||||
long curTime = System.currentTimeMillis();
|
||||
Long lastTime = (Long) redisUtil.get("SPS_SYNC_DOWNLOAD_DATA");
|
||||
if (lastTime == null) {
|
||||
lastTime = System.currentTimeMillis();
|
||||
redisUtil.set("SPS_SYNC_DOWNLOAD_DATA", lastTime);
|
||||
}
|
||||
if (curTime - lastTime > timeInterval) {
|
||||
heartService.dlAllOrder();
|
||||
redisUtil.set("SPS_SYNC_DOWNLOAD_DATA", curTime);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue