定时获取工位库存码三期
							parent
							
								
									257389d5fa
								
							
						
					
					
						commit
						69ea8ce63f
					
				| @ -0,0 +1,126 @@ | |||||||
|  | package com.glxp.api.task; | ||||||
|  | 
 | ||||||
|  | import cn.hutool.core.collection.CollUtil; | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||||
|  | import com.glxp.api.common.res.BaseResponse; | ||||||
|  | import com.glxp.api.dao.basic.UdiRelevanceDao; | ||||||
|  | import com.glxp.api.dao.basic.YbNotCodeMapper; | ||||||
|  | import com.glxp.api.dao.inout.IoCodeLostMapper; | ||||||
|  | import com.glxp.api.dao.inout.IoSplitFifoCodeMapper; | ||||||
|  | import com.glxp.api.dao.schedule.ScheduledDao; | ||||||
|  | import com.glxp.api.dao.system.ThrYbSetupMapper; | ||||||
|  | import com.glxp.api.entity.basic.UdiRelevanceEntity; | ||||||
|  | import com.glxp.api.entity.basic.YbNotCode; | ||||||
|  | import com.glxp.api.entity.collect.IoCollectCodeBackup; | ||||||
|  | import com.glxp.api.entity.collect.IoCollectOrderBiz; | ||||||
|  | import com.glxp.api.entity.inout.IoCodeEntity; | ||||||
|  | import com.glxp.api.entity.inout.IoCodeLostEntity; | ||||||
|  | import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; | ||||||
|  | import com.glxp.api.entity.system.ScheduledEntity; | ||||||
|  | import com.glxp.api.entity.system.ThrYbSetup; | ||||||
|  | import com.glxp.api.http.sync.SpGetHttpClient; | ||||||
|  | import com.glxp.api.req.alihealth.AlihealthYljgCodedetailReqeust; | ||||||
|  | import com.glxp.api.req.system.ScheduledRequest; | ||||||
|  | import com.glxp.api.service.collect.IoCollectCodeBackService; | ||||||
|  | import com.glxp.api.service.inout.impl.IoCodeLostServiceImpl; | ||||||
|  | import com.google.common.collect.Lists; | ||||||
|  | import lombok.extern.slf4j.Slf4j; | ||||||
|  | import org.apache.commons.lang3.StringUtils; | ||||||
|  | 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.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | @Component | ||||||
|  | @EnableScheduling | ||||||
|  | @Slf4j | ||||||
|  | public class IoSplitFifoCodeTask implements SchedulingConfigurer { | ||||||
|  | 
 | ||||||
|  |     @Resource | ||||||
|  |     private ScheduledDao scheduledDao; | ||||||
|  |     @Resource | ||||||
|  |     private IoSplitFifoCodeMapper ioSplitFifoCodeMapper; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { | ||||||
|  |         scheduledTaskRegistrar.addTriggerTask(() -> process(), | ||||||
|  |                 triggerContext -> { | ||||||
|  |                     ScheduledRequest scheduledRequest = new ScheduledRequest(); | ||||||
|  |                     scheduledRequest.setCronName("IoSplitFifoCodeTask"); | ||||||
|  |                     ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); | ||||||
|  |                     String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 0 5 * * ?"; | ||||||
|  | 
 | ||||||
|  |                     if (cron.isEmpty()) { | ||||||
|  |                         log.error("cron is null"); | ||||||
|  |                     } | ||||||
|  |                     return new CronTrigger(cron).nextExecutionTime(triggerContext); | ||||||
|  |                 }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Resource | ||||||
|  |     private SpGetHttpClient spGetHttp; | ||||||
|  |     @Resource | ||||||
|  |     private IoCodeLostMapper ioCodeLostMapper; | ||||||
|  | 
 | ||||||
|  |     private void process() { | ||||||
|  |         List<IoSplitFifoCodeEntity> list = ioSplitFifoCodeMapper.selectList( | ||||||
|  |                 new QueryWrapper<IoSplitFifoCodeEntity>() | ||||||
|  |                         .isNull("batchNo") | ||||||
|  |                         .select("code") | ||||||
|  |                         .last("limit 1000") | ||||||
|  |         ); | ||||||
|  |         if (CollUtil.isNotEmpty(list)) { | ||||||
|  |             int chunkSize = 30; | ||||||
|  |             List<List<IoSplitFifoCodeEntity>> ioSplitFifoCodeChunks = Lists.partition(list, chunkSize); | ||||||
|  | 
 | ||||||
|  |             for (List<IoSplitFifoCodeEntity> ioSplitFifoCodeChunk : ioSplitFifoCodeChunks) { | ||||||
|  |                 List<String> codeList = new ArrayList<>(); | ||||||
|  |                 for (IoSplitFifoCodeEntity ioSplitFifoCodeEntity : ioSplitFifoCodeChunk) { | ||||||
|  |                     codeList.add(ioSplitFifoCodeEntity.getCode()); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  |                 AlihealthYljgCodedetailReqeust alihealthYljgCodedetailReqeust = new AlihealthYljgCodedetailReqeust(); | ||||||
|  |                 alihealthYljgCodedetailReqeust.setCodes(String.join(",", codeList)); | ||||||
|  | 
 | ||||||
|  |                 BaseResponse<List<IoCodeLostEntity>> baseResponse = spGetHttp.codedetail(alihealthYljgCodedetailReqeust); | ||||||
|  |                 List<IoCodeLostEntity> ioCodeLostEntityList = baseResponse.getData(); | ||||||
|  |                 if (CollUtil.isNotEmpty(ioCodeLostEntityList)) { | ||||||
|  |                     for (IoCodeLostEntity ioCodeLostEntity : ioCodeLostEntityList) { | ||||||
|  |                         IoSplitFifoCodeEntity ioSplitFifoCodeEntity = new IoSplitFifoCodeEntity(); | ||||||
|  |                         ioSplitFifoCodeEntity.setBatchNo(ioCodeLostEntity.getBatchNo()); | ||||||
|  |                         ioSplitFifoCodeEntity.setProduceDate(ioCodeLostEntity.getProduceDate()); | ||||||
|  |                         ioSplitFifoCodeEntity.setExpireDate(ioCodeLostEntity.getExpireDate()); | ||||||
|  |                         ioSplitFifoCodeMapper.update(ioSplitFifoCodeEntity, | ||||||
|  |                                 new QueryWrapper<IoSplitFifoCodeEntity>().eq("code",ioCodeLostEntity.getCode()) | ||||||
|  |                         ); | ||||||
|  |                         IoCodeLostEntity ioCodeLostEntityNew = ioCodeLostMapper.selectOne( | ||||||
|  |                                 new QueryWrapper<IoCodeLostEntity>() | ||||||
|  |                                         .eq("code", ioCodeLostEntity.getCode()) | ||||||
|  |                         ); | ||||||
|  |                         if (ioCodeLostEntityNew != null) { | ||||||
|  | 
 | ||||||
|  |                             ioCodeLostMapper.update(ioCodeLostEntity, | ||||||
|  |                                     new QueryWrapper<IoCodeLostEntity>() | ||||||
|  |                                             .eq("code", ioCodeLostEntity.getCode()) | ||||||
|  |                             ); | ||||||
|  |                         } else { | ||||||
|  |                             ioCodeLostMapper.insert(ioCodeLostEntity); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in New Issue