Merge remote-tracking branch 'origin/dev_2.5_optimize_250306' into dev_2.5_scan

# Conflicts:
#	src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java
dev_2.5_inv
qiuyt 4 months ago
commit e85563cc27

@ -11,6 +11,7 @@ import com.glxp.api.constant.BasicExportTypeEnum;
import com.glxp.api.constant.SyncDelType;
import com.glxp.api.entity.basic.ProductInfoEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.inout.IoCodeLostEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.sync.BasicExportStatusEntity;
import com.glxp.api.entity.sync.IOOrderStatusEntity;
@ -21,6 +22,7 @@ import com.glxp.api.entity.thrsys.CodeRel;
import com.glxp.api.entity.thrsys.ThirdAliDrug;
import com.glxp.api.idc.service.FileService;
import com.glxp.api.req.alihealth.AlihealthRelCodeInsertReqeust;
import com.glxp.api.req.alihealth.AlihealthYljgCodedetailReqeust;
import com.glxp.api.req.alihealth.local.AliBillsDisposeReqeust;
import com.glxp.api.req.alihealth.local.AlihealthGetRelCodeReqeust;
import com.glxp.api.req.alihealth.local.AlihealthThirdAliDrugInsertReqeust;
@ -746,4 +748,18 @@ public class SpGetHttpClient {
}
return response;
}
public BaseResponse<List<IoCodeLostEntity>> codedetail(AlihealthYljgCodedetailReqeust alihealthYljgCodedetailReqeust) {
String json = JSONUtil.toJsonStr(alihealthYljgCodedetailReqeust);
String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/spms/alihealth/codedetail", json, buildHeader());
BaseResponse<List<IoCodeLostEntity>> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<List<IoCodeLostEntity>>>() {
});
if(response == null){
return ResultVOUtils.error("访问供应商平台访问不到");
}
return response;
}
}

@ -127,9 +127,6 @@ public class FilterUdiRelRequest extends ListPageRequest {
private String keyWords;
private List<String> filterNameCodes;
/**
*
*/
private List<String> nameCodes;
private String noCodeSelect;
}

@ -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);
}
}
}
}
}
}
}

@ -5491,3 +5491,5 @@ CREATE TABLE IF NOT EXISTS `io_collect_set_bustype` (
INSERT IGNORE INTO sys_scheduled(`id`, `cronName`, `cron`, `customerId`, `remark`)
VALUES (3000, 'notCodeTask', '0 */20 * * * ?', NULL, '定时更新无码库');
INSERT IGNORE INTO sys_scheduled(`id`, `cronName`, `cron`, `customerId`, `remark`)
VALUES (3001, 'ioSplitFifoCodeTask', '0 */30 * * * ?', NULL, '工位库存定时补齐码的三期');

Loading…
Cancel
Save