1.提交定时任务
parent
d9bcca035d
commit
fd244a1a7c
@ -0,0 +1,173 @@
|
|||||||
|
package com.glxp.api.admin.thread;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.glxp.api.admin.constant.BasicProcessStatus;
|
||||||
|
import com.glxp.api.admin.dao.basic.BasicThirdSysDao;
|
||||||
|
import com.glxp.api.admin.dao.schedule.ScheduledDao;
|
||||||
|
import com.glxp.api.admin.dao.schedule.SystemParamConfigDao;
|
||||||
|
import com.glxp.api.admin.entity.basic.BasicThirdSysBusApiEntity;
|
||||||
|
import com.glxp.api.admin.entity.basic.BussinessOriginTypeEntity;
|
||||||
|
import com.glxp.api.admin.entity.info.ScheduledEntity;
|
||||||
|
import com.glxp.api.admin.entity.info.SystemParamConfigEntity;
|
||||||
|
import com.glxp.api.admin.entity.thrsys.ThrCorpImportLogEntity;
|
||||||
|
import com.glxp.api.admin.entity.thrsys.ThrProductsImportLogEntity;
|
||||||
|
import com.glxp.api.admin.httpclient.ErpBasicClient;
|
||||||
|
import com.glxp.api.admin.req.basic.FilterBasicThirdSysDetailRequest;
|
||||||
|
import com.glxp.api.admin.req.info.ScheduledRequest;
|
||||||
|
import com.glxp.api.admin.req.thrsys.FilterThrProductsRequest;
|
||||||
|
import com.glxp.api.admin.res.PageSimpleResponse;
|
||||||
|
import com.glxp.api.admin.service.basic.BussinessOriginTypeService;
|
||||||
|
import com.glxp.api.admin.service.thrsys.ThrCorpImportLogService;
|
||||||
|
import com.glxp.api.admin.service.thrsys.ThrInvWarehouseService;
|
||||||
|
import com.glxp.api.admin.service.thrsys.ThrProductsImportLogService;
|
||||||
|
import com.glxp.api.admin.util.CustomUtil;
|
||||||
|
import com.glxp.api.common.res.BaseResponse;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
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;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动下载第三方系统基础数据
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@EnableScheduling
|
||||||
|
public class DownloadThirdSysDataTask implements SchedulingConfigurer {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ScheduledDao scheduledDao;
|
||||||
|
@Resource
|
||||||
|
private SystemParamConfigDao systemParamConfigDao;
|
||||||
|
@Resource
|
||||||
|
private ThrInvWarehouseService thrInvWarehouseService;
|
||||||
|
@Resource
|
||||||
|
private BasicThirdSysDao basicThirdSysDao;
|
||||||
|
@Resource
|
||||||
|
private ThrCorpImportLogService thrCorpImportLogService;
|
||||||
|
@Resource
|
||||||
|
private ThrCorpsDlService thrCorpsDlService;
|
||||||
|
@Resource
|
||||||
|
private ThrProductsImportLogService thrProductsImportLogService;
|
||||||
|
@Resource
|
||||||
|
private ThrProductsDlService thrProductsDlService;
|
||||||
|
@Resource
|
||||||
|
private ErpBasicClient erpBasicClient;
|
||||||
|
@Resource
|
||||||
|
private BussinessOriginTypeService bussinessOriginTypeService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
|
||||||
|
taskRegistrar.addTriggerTask(this::process,
|
||||||
|
triggerContext -> {
|
||||||
|
ScheduledRequest scheduledRequest = new ScheduledRequest();
|
||||||
|
scheduledRequest.setCronName("downThirdSysDataTask");
|
||||||
|
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
|
||||||
|
String cron = scheduledEntity.getCron();
|
||||||
|
if (cron.isEmpty()) {
|
||||||
|
log.error("cron is null");
|
||||||
|
}
|
||||||
|
return new CronTrigger(cron).nextExecutionTime(triggerContext);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void process() {
|
||||||
|
SystemParamConfigEntity auto_download_thirdSys_data = systemParamConfigDao.selectByParamKey("auto_download_thirdSys_data");
|
||||||
|
if (auto_download_thirdSys_data.getParamValue().equals("0")) {
|
||||||
|
log.info("未开启自动下载第三方系统基础数据");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//下载第三方仓库数据
|
||||||
|
//查询所有启用的第三方系统的标识
|
||||||
|
List<String> thirdIds = basicThirdSysDao.selectEnabledThirdId();
|
||||||
|
if (CollUtil.isNotEmpty(thirdIds)) {
|
||||||
|
for (String thirdId : thirdIds) {
|
||||||
|
log.info("自动下载第三方系统为:{} 的基础数据", thirdId);
|
||||||
|
log.info("开始下载第三方系统的仓库数据");
|
||||||
|
BaseResponse baseResponse = thrInvWarehouseService.downloadThirdWarehouse(thirdId);
|
||||||
|
if (baseResponse.getCode() == 20000) {
|
||||||
|
log.info("第三方系统标识为:{} 的仓库数据下载完成", thirdId);
|
||||||
|
} else {
|
||||||
|
log.info(thirdId + " 仓库数据下载失败");
|
||||||
|
log.error(JSONUtil.toJsonStr(baseResponse));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
log.info("开始下载第三方系统的往来单位数据");
|
||||||
|
ThrCorpImportLogEntity thrCorpImportLogEntity = new ThrCorpImportLogEntity();
|
||||||
|
String genKey = CustomUtil.getId();
|
||||||
|
thrCorpImportLogEntity.setGenKey(genKey);
|
||||||
|
thrCorpImportLogEntity.setFromType("第三方系统获取");
|
||||||
|
thrCorpImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS);
|
||||||
|
thrCorpImportLogEntity.setUpdateTime(new Date());
|
||||||
|
thrCorpImportLogEntity.setThirdSysFk(thirdId);
|
||||||
|
thrCorpImportLogService.insertImportLog(thrCorpImportLogEntity);
|
||||||
|
thrCorpsDlService.importCorps(genKey, null, thirdId);
|
||||||
|
log.info("第三方系统往来单位数据下载完成");
|
||||||
|
|
||||||
|
log.info("开始下载第三方系统的产品信息数据");
|
||||||
|
ThrProductsImportLogEntity thrProductsImportLogEntity = new ThrProductsImportLogEntity();
|
||||||
|
String genKey1 = CustomUtil.getId();
|
||||||
|
thrProductsImportLogEntity.setGenKey(genKey1);
|
||||||
|
thrProductsImportLogEntity.setFromType("第三方系统下载");
|
||||||
|
thrProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS);
|
||||||
|
thrProductsImportLogEntity.setUpdateTime(new Date());
|
||||||
|
thrProductsImportLogEntity.setThirdSysFk(thirdId);
|
||||||
|
thrProductsImportLogService.insertImportLog(thrProductsImportLogEntity);
|
||||||
|
FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest();
|
||||||
|
filterThrProductsRequest.setThirdSysFk(thirdId);
|
||||||
|
filterThrProductsRequest.setThirdSys(thirdId);
|
||||||
|
filterThrProductsRequest.setPage(1);
|
||||||
|
filterThrProductsRequest.setLimit(100);
|
||||||
|
thrProductsDlService.importProducrs(genKey1, filterThrProductsRequest);
|
||||||
|
log.info("第三方系统往来产品信息数据下载完成");
|
||||||
|
|
||||||
|
|
||||||
|
log.info("开始下载第三方系统的产品信息数据");
|
||||||
|
FilterBasicThirdSysDetailRequest filterBasicThirdSysDetailRequest = new FilterBasicThirdSysDetailRequest();
|
||||||
|
filterBasicThirdSysDetailRequest.setThirdSysFk(thirdId);
|
||||||
|
int page = 1;
|
||||||
|
int limit = 100;
|
||||||
|
while (true) {
|
||||||
|
filterBasicThirdSysDetailRequest.setPage(page);
|
||||||
|
filterBasicThirdSysDetailRequest.setLimit(limit);
|
||||||
|
BaseResponse<PageSimpleResponse<BasicThirdSysBusApiEntity>> busResponse = erpBasicClient.getBusTypes(filterBasicThirdSysDetailRequest);
|
||||||
|
if (busResponse != null && busResponse.getCode() == 20000) {
|
||||||
|
List<BasicThirdSysBusApiEntity> basicThirdSysBusApiEntities = busResponse.getData().getList();
|
||||||
|
if (CollUtil.isNotEmpty(basicThirdSysBusApiEntities)) {
|
||||||
|
for (BasicThirdSysBusApiEntity basicThirdSysBusApiEntity : basicThirdSysBusApiEntities) {
|
||||||
|
BussinessOriginTypeEntity bussinessOriginTypeEntity = new BussinessOriginTypeEntity();
|
||||||
|
bussinessOriginTypeEntity.setName(basicThirdSysBusApiEntity.getName());
|
||||||
|
bussinessOriginTypeEntity.setAction(basicThirdSysBusApiEntity.getCode());
|
||||||
|
bussinessOriginTypeEntity.setThirdSys(thirdId);
|
||||||
|
bussinessOriginTypeEntity.setInoutType(basicThirdSysBusApiEntity.getInoutType());
|
||||||
|
bussinessOriginTypeEntity.setRemark(basicThirdSysBusApiEntity.getRemark());
|
||||||
|
bussinessOriginTypeEntity.setEnable(true);
|
||||||
|
bussinessOriginTypeEntity.setUpdateTime(new Date());
|
||||||
|
bussinessOriginTypeService.insertBusOriginType(bussinessOriginTypeEntity);
|
||||||
|
}
|
||||||
|
if (basicThirdSysBusApiEntities.size() >= 100) {
|
||||||
|
page++;
|
||||||
|
} else
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.error("第三方系统单据类型数据下载失败");
|
||||||
|
}
|
||||||
|
log.info("第三方系统往来产品信息数据下载完成");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue