From 7937b1fa73d05f9003d53119e030c88fb68285b1 Mon Sep 17 00:00:00 2001 From: qiuyt Date: Mon, 24 Feb 2025 09:34:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E8=A1=A5=E6=95=91?= =?UTF-8?q?=E6=9C=89=E4=BA=9B=E7=A0=81=E6=B2=A1=E6=8B=89=E5=88=B0=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alihealth/AlihealthBusController.java | 64 +++++++++++++++++++ .../inout/IoCodeTempController.java | 3 + .../dao/collect/IoCollectCodeBackMapper.java | 3 + .../glxp/api/http/sync/SpGetHttpClient.java | 12 ++++ .../local/AlihealthGetRelCodeReqeust.java | 12 ++++ .../collect/IoCollectCodeBackMapper.xml | 10 +++ 6 files changed, 104 insertions(+) create mode 100644 src/main/java/com/glxp/api/controller/alihealth/AlihealthBusController.java create mode 100644 src/main/java/com/glxp/api/req/alihealth/local/AlihealthGetRelCodeReqeust.java diff --git a/src/main/java/com/glxp/api/controller/alihealth/AlihealthBusController.java b/src/main/java/com/glxp/api/controller/alihealth/AlihealthBusController.java new file mode 100644 index 000000000..0c8feec52 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/alihealth/AlihealthBusController.java @@ -0,0 +1,64 @@ +package com.glxp.api.controller.alihealth; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.Log; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.BusinessType; +import com.glxp.api.controller.BaseController; + +import com.glxp.api.dao.collect.IoCollectCodeBackMapper; +import com.glxp.api.entity.collect.IoCollectCodeBackup; +import com.glxp.api.http.sync.SpGetHttpClient; +import com.glxp.api.req.alihealth.local.AlihealthGetRelCodeReqeust; +import com.glxp.api.req.collect.IoCollectCodeRequest; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +@RestController +public class AlihealthBusController extends BaseController { + @Resource + private IoCollectCodeBackMapper ioCollectCodeBackMapper; + @Resource + private SpGetHttpClient spGetHttpClient; + + /** + * 阿里手动拉取完成单大级码没有关联关系的接口 + * + * @return + */ + @PostMapping("/spms/alihealth/getAliCode") + @Log(title = "获取阿里药品的采购单码明细", businessType = BusinessType.OTHER) + public BaseResponse getAliCode() { + + List list = ioCollectCodeBackMapper.filterNotRelCode(new IoCollectCodeRequest()); + if(list!=null && list.size() >1){ + AlihealthGetRelCodeReqeust alihealthGetRelCodeReqeust = new AlihealthGetRelCodeReqeust(); + alihealthGetRelCodeReqeust.setIoCollectCodeBackupList(list); + BaseResponse baseResponse = spGetHttpClient.getAliCode(alihealthGetRelCodeReqeust); + return baseResponse; + + }else { + return ResultVOUtils.success("没有需要调用关联关系的码列表"); + + } + } + +} diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 5b62b948e..23fb6d0a7 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1651,6 +1651,9 @@ public class IoCodeTempController extends BaseController { codeEnttity.setBatchNo(codeMan.getBatchNo()); codeEnttity.setProduceDate(codeMan.getProductDate()); codeEnttity.setExpireDate(codeMan.getExpireDate()); + }else { + //三期补救 + } RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code); 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 190e18a04..1452d62a0 100644 --- a/src/main/java/com/glxp/api/dao/collect/IoCollectCodeBackMapper.java +++ b/src/main/java/com/glxp/api/dao/collect/IoCollectCodeBackMapper.java @@ -12,4 +12,7 @@ import java.util.List; public interface IoCollectCodeBackMapper extends BaseMapper { List filterList(IoCollectCodeRequest ioCollectCodeRequest); + + List filterNotRelCode(IoCollectCodeRequest ioCollectCodeRequest); + } 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 96f08f4c1..a389344f8 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.AlihealthGetRelCodeReqeust; import com.glxp.api.req.alihealth.local.AlihealthThirdAliDrugInsertReqeust; import com.glxp.api.req.basic.BasicDataRequest; import com.glxp.api.req.basic.DeleteBasicDataRequest; @@ -684,4 +685,15 @@ public class SpGetHttpClient { } return response; } + public BaseResponse getAliCode(AlihealthGetRelCodeReqeust alihealthGetRelCodeReqeust) { + String json = JSONUtil.toJsonStr(alihealthGetRelCodeReqeust); + String result = okHttpCli.doPostJson(getIpUrl() + "/directToSpms" + "/spms/alihealth/getAliCode", 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/AlihealthGetRelCodeReqeust.java b/src/main/java/com/glxp/api/req/alihealth/local/AlihealthGetRelCodeReqeust.java new file mode 100644 index 000000000..150d8bb37 --- /dev/null +++ b/src/main/java/com/glxp/api/req/alihealth/local/AlihealthGetRelCodeReqeust.java @@ -0,0 +1,12 @@ +package com.glxp.api.req.alihealth.local; + +import com.glxp.api.entity.collect.IoCollectCodeBackup; +import lombok.Data; + +import java.util.List; + +@Data +public class AlihealthGetRelCodeReqeust { + + private List ioCollectCodeBackupList; +} diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml index 5155ec2c7..e450595e9 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectCodeBackMapper.xml @@ -45,4 +45,14 @@ group by iccb.id order by bp.nameCode,iccb.code + + From a3d9fd6b4fc5ac60af9876989e82793ed4d0699e Mon Sep 17 00:00:00 2001 From: qiuyt Date: Mon, 24 Feb 2025 10:05:03 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E8=A1=A5=E6=95=91?= =?UTF-8?q?=E6=9C=89=E4=BA=9B=E7=A0=81=E6=B2=A1=E6=8B=89=E5=88=B0=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/controller/inout/IoCodeTempController.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 23fb6d0a7..5b62b948e 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1651,9 +1651,6 @@ public class IoCodeTempController extends BaseController { codeEnttity.setBatchNo(codeMan.getBatchNo()); codeEnttity.setProduceDate(codeMan.getProductDate()); codeEnttity.setExpireDate(codeMan.getExpireDate()); - }else { - //三期补救 - } RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code); From ad61d32e30fc6d9ec4b946400534a61033eed423 Mon Sep 17 00:00:00 2001 From: qiuyt Date: Mon, 24 Feb 2025 18:42:31 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E8=A1=A5=E6=95=91?= =?UTF-8?q?=E9=98=BF=E9=87=8C=E5=8D=95=E6=8D=AE=E4=B8=8A=E4=BC=A0=E5=92=8C?= =?UTF-8?q?=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/collect/IoCollectCodeBackMapper.java | 4 + .../glxp/api/http/sync/SpGetHttpClient.java | 12 +++ .../local/AliBillsDisposeReqeust.java | 13 +++ .../glxp/api/task/AliRelCodeDetailTask.java | 89 +++++++++++++++++++ .../task/CollectOrderEelCodeCountTask.java | 25 +++--- .../collect/IoCollectCodeBackMapper.xml | 14 +++ src/main/resources/schemas/schema_v2.4.sql | 3 + 7 files changed, 147 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/glxp/api/req/alihealth/local/AliBillsDisposeReqeust.java create mode 100644 src/main/java/com/glxp/api/task/AliRelCodeDetailTask.java 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());