feat: 定时设置结合业务
							parent
							
								
									0b32274b65
								
							
						
					
					
						commit
						9fd7db20d7
					
				| @ -0,0 +1,95 @@ | |||||||
|  | package com.glxp.api.task; | ||||||
|  | 
 | ||||||
|  | import cn.hutool.core.collection.CollUtil; | ||||||
|  | import cn.hutool.core.thread.ThreadUtil; | ||||||
|  | import cn.hutool.core.util.StrUtil; | ||||||
|  | import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; | ||||||
|  | import com.glxp.api.dao.schedule.ScheduledDao; | ||||||
|  | import com.glxp.api.entity.collect.IoCollectSet; | ||||||
|  | import com.glxp.api.entity.system.ScheduledEntity; | ||||||
|  | import com.glxp.api.req.basic.WorkBindBusTypeRequest; | ||||||
|  | import com.glxp.api.req.collect.CollectOrderRequest; | ||||||
|  | import com.glxp.api.req.system.ScheduledRequest; | ||||||
|  | import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; | ||||||
|  | import com.glxp.api.res.collect.IoCollectCodeResponse; | ||||||
|  | import com.glxp.api.res.collect.IoCollectOrderResponse; | ||||||
|  | import com.glxp.api.service.collect.*; | ||||||
|  | import com.glxp.api.util.MsDateUtil; | ||||||
|  | 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; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @Component | ||||||
|  | @EnableScheduling | ||||||
|  | public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer { | ||||||
|  | 
 | ||||||
|  |     final Logger logger = LoggerFactory.getLogger(AsyncIoCollectOrderUploadTask.class); | ||||||
|  | 
 | ||||||
|  |     @Resource | ||||||
|  |     private ScheduledDao scheduledDao; | ||||||
|  |     @Resource | ||||||
|  |     IoCollectSetService collectSetService; | ||||||
|  |     @Resource | ||||||
|  |     IoCollectCodeService collectCodeService; | ||||||
|  |     @Resource | ||||||
|  |     IoCollectOrderBackupService ioCollectOrderBackupService; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { | ||||||
|  |         scheduledTaskRegistrar.addTriggerTask(() -> process(), | ||||||
|  |                 triggerContext -> { | ||||||
|  |                     ScheduledRequest scheduledRequest = new ScheduledRequest(); | ||||||
|  |                     scheduledRequest.setCronName("ioCollectOrderUploadTask"); | ||||||
|  |                     ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); | ||||||
|  |                     String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 */10 * * * ?"; | ||||||
|  |                     if (cron.isEmpty()) { | ||||||
|  |                         logger.error("cron is null"); | ||||||
|  |                     } | ||||||
|  |                     return new CronTrigger(cron).nextExecutionTime(triggerContext); | ||||||
|  |                 }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void process() { | ||||||
|  |         ThreadUtil.execAsync(() -> { | ||||||
|  |             //获取下载的起始时间
 | ||||||
|  |             IoCollectSet ioCollectSet = collectSetService.getSet(); | ||||||
|  |             Date startUploadTime = ioCollectSet.getStartUploadTime(); | ||||||
|  |             String startUploadTimes = MsDateUtil.formatDateTime(startUploadTime); | ||||||
|  |             Boolean autoUploadOrder = ioCollectSet.getAutoUploadOrder(); | ||||||
|  | 
 | ||||||
|  |             if (StrUtil.isNotBlank(startUploadTimes) && autoUploadOrder){ | ||||||
|  |                 //获取当前时间
 | ||||||
|  |                 String paramValue = startUploadTimes; | ||||||
|  |                 String nowTime = MsDateUtil.getDateTime(); | ||||||
|  |                 CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); | ||||||
|  | 
 | ||||||
|  |                 collectOrderRequest.setStartTime(paramValue); | ||||||
|  |                 collectOrderRequest.setEndTime(nowTime); | ||||||
|  |                 collectOrderRequest.setUploadStatus(1); //未上传
 | ||||||
|  | 
 | ||||||
|  |                 //调用上传单据
 | ||||||
|  |                 List<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest); | ||||||
|  |                 if (CollUtil.isNotEmpty(orderResponses)){ | ||||||
|  |                     orderResponses.forEach( item -> { | ||||||
|  |                         ioCollectOrderBackupService.orderUpload(item.getBillNo()); | ||||||
|  |                     }); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 ioCollectSet.setStartUploadTime(MsDateUtil.parseDate(nowTime)); | ||||||
|  |                 collectSetService.updateById(ioCollectSet); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in New Issue