diff --git a/src/main/java/com/glxp/api/dao/collect/IoCollectCodeBackMapper.java b/src/main/java/com/glxp/api/dao/collect/IoCollectCodeBackMapper.java index 1452d62a0..08d18bc0b 100644 --- a/src/main/java/com/glxp/api/dao/collect/IoCollectCodeBackMapper.java +++ b/src/main/java/com/glxp/api/dao/collect/IoCollectCodeBackMapper.java @@ -15,4 +15,8 @@ public interface IoCollectCodeBackMapper extends BaseMapper List filterNotRelCode(IoCollectCodeRequest ioCollectCodeRequest); + List filterNotRelCodeGroup(IoCollectCodeRequest ioCollectCodeRequest); + + List filterlargePackage(); + } diff --git a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java index a389344f8..14acd1891 100644 --- a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java @@ -20,6 +20,7 @@ import com.glxp.api.entity.system.SyncDataSetEntity; 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.local.AliBillsDisposeReqeust; import com.glxp.api.req.alihealth.local.AlihealthGetRelCodeReqeust; import com.glxp.api.req.alihealth.local.AlihealthThirdAliDrugInsertReqeust; import com.glxp.api.req.basic.BasicDataRequest; @@ -696,4 +697,15 @@ public class SpGetHttpClient { } return response; } + public BaseResponse aliBillsDispose(AliBillsDisposeReqeust aliBillsDisposeReqeust) { + String json = JSONUtil.toJsonStr(aliBillsDisposeReqeust); + String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/spms/alihealth/aliBillsDispose", json, buildHeader()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference() { + }); + if(response == null){ + return ResultVOUtils.error("访问供应商平台访问不到"); + } + return response; + } } diff --git a/src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java b/src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java new file mode 100644 index 000000000..8da1b8297 --- /dev/null +++ b/src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java @@ -0,0 +1,13 @@ +package com.glxp.api.req.alihealth.local; + +import com.glxp.api.entity.inout.IoOrderEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class AliBillsDisposeReqeust { + private List ioOrderEntityList; + private String erpName; + +} diff --git a/src/main/java/com/glxp/api/task/AliRelCodeDetailTask.java b/src/main/java/com/glxp/api/task/AliRelCodeDetailTask.java new file mode 100644 index 000000000..c25bf6a96 --- /dev/null +++ b/src/main/java/com/glxp/api/task/AliRelCodeDetailTask.java @@ -0,0 +1,89 @@ +package com.glxp.api.task; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.glxp.api.dao.collect.IoCollectCodeBackMapper; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.collect.IoCollectCodeBackup; +import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.http.sync.SpGetHttpClient; +import com.glxp.api.req.alihealth.local.AliBillsDisposeReqeust; +import com.glxp.api.req.collect.IoCollectCodeRequest; +import com.glxp.api.req.system.ScheduledRequest; + +import com.glxp.api.service.system.SystemParamConfigService; +import lombok.extern.slf4j.Slf4j; +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 redis.clients.jedis.resps.Tuple; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +@Component +@EnableScheduling +@Slf4j +public class AliRelCodeDetailTask implements SchedulingConfigurer { + + + @Resource + private ScheduledDao scheduledDao; + @Resource + private IoCollectCodeBackMapper ioCollectCodeBackMapper; + + @Resource + private SpGetHttpClient spGetHttpClient; + @Resource + private SystemParamConfigService systemParamConfigService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("aliRelCodeDetailTask"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + if (scheduledEntity == null) { + return null; + } + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + log.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + String paramValue = systemParamConfigService.selectValueByParamKey("aliRelCodeDetail"); + if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("1")) { + List list = ioCollectCodeBackMapper.filterNotRelCode(new IoCollectCodeRequest()); + List ioOrderEntityList = new ArrayList<>(); + log.error("开始补救上传和拉取关联关系列表==="+list); + if (CollectionUtil.isNotEmpty(list)) { + for (IoCollectCodeBackup ioCollectCodeBackup : list) { + IoOrderEntity ioOrderEntity = new IoOrderEntity(); + ioOrderEntity.setBillNo(ioCollectCodeBackup.getBillNo()); + ioOrderEntity.setFromCorp(ioCollectCodeBackup.getFromCorp()); + ioOrderEntity.setAuditTime(ioCollectCodeBackup.getOperTime()); + ioOrderEntityList.add(ioOrderEntity); + } + AliBillsDisposeReqeust aliBillsDisposeReqeust = new AliBillsDisposeReqeust(); + aliBillsDisposeReqeust.setIoOrderEntityList(ioOrderEntityList); + spGetHttpClient.aliBillsDispose(aliBillsDisposeReqeust); + } + + } + + } + + +} diff --git a/src/main/java/com/glxp/api/task/CollectOrderEelCodeCountTask.java b/src/main/java/com/glxp/api/task/CollectOrderEelCodeCountTask.java index aa6c9fbcd..bf9ed9346 100644 --- a/src/main/java/com/glxp/api/task/CollectOrderEelCodeCountTask.java +++ b/src/main/java/com/glxp/api/task/CollectOrderEelCodeCountTask.java @@ -4,6 +4,7 @@ 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.collect.IoCollectCodeBackMapper; import com.glxp.api.dao.collect.RelCodeDetailMapper; import com.glxp.api.dao.schedule.ScheduledDao; import com.glxp.api.entity.collect.IoCollectCode; @@ -42,9 +43,11 @@ public class CollectOrderEelCodeCountTask implements SchedulingConfigurer { @Resource private ScheduledDao scheduledDao; @Resource - private IoCollectCodeBackService ioCollectCodeBackService; + private IoCollectCodeBackMapper ioCollectCodeBackMapper; @Resource private RelCodeDetailMapper relCodeDetailMapper; + @Resource + private IoCollectCodeBackService ioCollectCodeBackService; @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { scheduledTaskRegistrar.addTriggerTask(() -> process(), @@ -64,11 +67,7 @@ public class CollectOrderEelCodeCountTask implements SchedulingConfigurer { } private void process() { - LambdaQueryWrapper lambdaQueryWrapper =new LambdaQueryWrapper(); - lambdaQueryWrapper.gt(IoCollectCodeBackup::getRelCodeCount,-2); - List list = ioCollectCodeBackService.list( - lambdaQueryWrapper - ); + List list = ioCollectCodeBackMapper.filterlargePackage(); if(list!=null ){ for (IoCollectCodeBackup ioCollectCodeBackup : list) { int count = relCodeDetailMapper.selectCount( @@ -78,14 +77,14 @@ public class CollectOrderEelCodeCountTask implements SchedulingConfigurer { IoCollectCodeBackup ioCollectCodeBackupNew = new IoCollectCodeBackup(); if(count > 0){ ioCollectCodeBackupNew.setRelCodeCount(count); - - }else { - ioCollectCodeBackupNew.setRelCodeCount(ioCollectCodeBackup.getRelCodeCount()-1); + ioCollectCodeBackService.update( + ioCollectCodeBackupNew,new LambdaQueryWrapper() + .eq(IoCollectCodeBackup::getId,ioCollectCodeBackup.getId()) + ); } - ioCollectCodeBackService.update( - ioCollectCodeBackupNew,new LambdaQueryWrapper() - .eq(IoCollectCodeBackup::getId,ioCollectCodeBackup.getId()) - ); +// else { +// ioCollectCodeBackupNew.setRelCodeCount(ioCollectCodeBackup.getRelCodeCount()-1); +// } } } } diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml index e450595e9..64c1d2c4c 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml @@ -55,4 +55,18 @@ + + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 6f9b9a106..b1a09e09c 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -5261,3 +5261,6 @@ CREATE TABLE IF NOT EXISTS `sys_workplace_region` ALTER TABLE rel_code_batch MODIFY COLUMN `batchNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '批次号'; + +INSERT ignore INTO `sys_scheduled`(`id`, `cronName`, `cron`, `customerId`, `remark`) VALUES (400, 'aliRelCodeDetailTask', '0 0 0/2 * * ?', NULL, '阿里关联关系轮询定时'); +INSERT ignore INTO `sys_param_config`(`id`, `parentId`, `paramName`, `paramKey`, `paramValue`, `paramStatus`, `paramType`, `paramExplain`, `updateTime`) VALUES (90001, 0, '是否调用阿里关联关系模式', 'aliRelCodeDetail', '1', 1, 1, '值为0 是关闭 1是开启',now());