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