定时获取工位库存码三期
							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