选入药品逻辑优化

dev_drug
qiuyt 3 months ago
parent 0c8bf588d4
commit fc3c3a5e5a

@ -6,6 +6,7 @@ import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.annotation.CusRedissonAnnotation;
import com.glxp.api.annotation.Log; import com.glxp.api.annotation.Log;
@ -37,6 +38,7 @@ import com.glxp.api.util.IntUtil;
import com.glxp.api.util.JsonUtils; import com.glxp.api.util.JsonUtils;
import com.glxp.api.util.alihealth.AlihealthUtils; import com.glxp.api.util.alihealth.AlihealthUtils;
import com.glxp.api.util.alihealth.CopyUtils; import com.glxp.api.util.alihealth.CopyUtils;
import com.glxp.api.util.alihealth.PaginationUtil;
import com.google.api.client.json.Json; import com.google.api.client.json.Json;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -104,10 +106,12 @@ public class AlihealthBusController extends BaseController {
@Resource @Resource
private UdiContrastService udiContrastService; private UdiContrastService udiContrastService;
@PostMapping("/spms/alihealth/thirdAliDrugList") @PostMapping("/spms/alihealth/thirdAliDrugList")
@Log(title = "获取阿里药品码段信息列表包括查询国家库", businessType = BusinessType.OTHER) @Log(title = "获取阿里药品码段信息列表包括查询国家库", businessType = BusinessType.OTHER)
public BaseResponse<List<ThirdAliDrug>> thirdAliDrugList(@RequestBody AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust) { public BaseResponse<PageSimpleResponse<ThirdAliDrug>> thirdAliDrugList(@RequestBody AlihealthThirdAliDrugInsertReqeust alihealthThirdAliDrugInsertReqeust) {
List<ThirdAliDrug> thirdAliDrugsListGjk = null; List<ThirdAliDrug> thirdAliDrugsListGjk = null;
PageSimpleResponse<ThirdAliDrug> pageSimpleResponse =new PageSimpleResponse();
// 本地查询和新增都先注释了 到时候加到这边来 // 本地查询和新增都先注释了 到时候加到这边来
YbDrug ybDrug = alihealthThirdAliDrugInsertReqeust.getYbDrug(); YbDrug ybDrug = alihealthThirdAliDrugInsertReqeust.getYbDrug();
if(ybDrug!= null && StringUtils.isNotEmpty(ybDrug.getGoodsCode())){ if(ybDrug!= null && StringUtils.isNotEmpty(ybDrug.getGoodsCode())){
@ -123,8 +127,12 @@ public class AlihealthBusController extends BaseController {
if(responseListAndAliDrug.getCode() == 20000){ if(responseListAndAliDrug.getCode() == 20000){
thirdAliDrugsListGjk = responseListAndAliDrug.getData(); thirdAliDrugsListGjk = responseListAndAliDrug.getData();
if(thirdAliDrugsListGjk != null && thirdAliDrugsListGjk.size() >0){ if(thirdAliDrugsListGjk != null && thirdAliDrugsListGjk.size() >0){
return ResultVOUtils.success(thirdAliDrugsListGjk); pageSimpleResponse.setList(thirdAliDrugsListGjk);
return ResultVOUtils.success(pageSimpleResponse);
} }
}else {
pageSimpleResponse.setList(thirdAliDrugsListGjk);
return ResultVOUtils.success(pageSimpleResponse);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("国家库===用医保编码查询国家库药品信息===出现错误===" + e.getMessage()); log.error("国家库===用医保编码查询国家库药品信息===出现错误===" + e.getMessage());
@ -133,7 +141,8 @@ public class AlihealthBusController extends BaseController {
} }
// 校验标识判断 为false不会后续增加多玛融合库的逻辑 直接返回 // 校验标识判断 为false不会后续增加多玛融合库的逻辑 直接返回
if(alihealthThirdAliDrugInsertReqeust.isDrugCheckMark() == false){ if(alihealthThirdAliDrugInsertReqeust.isDrugCheckMark() == false){
return ResultVOUtils.success(thirdAliDrugsListGjk); pageSimpleResponse.setList(thirdAliDrugsListGjk);
return ResultVOUtils.success(pageSimpleResponse);
} }
// 查询国家库药品信息 并且要插入到多玛融合表 // 查询国家库药品信息 并且要插入到多玛融合表
@ -162,6 +171,7 @@ public class AlihealthBusController extends BaseController {
} }
map.put("page", alihealthThirdAliDrugInsertReqeust.getPage()); map.put("page", alihealthThirdAliDrugInsertReqeust.getPage());
map.put("limit", alihealthThirdAliDrugInsertReqeust.getLimit()); map.put("limit", alihealthThirdAliDrugInsertReqeust.getLimit());
map.put("nameCodeIn", alihealthThirdAliDrugInsertReqeust.getNameCodeIn());
if(alihealthThirdAliDrugInsertReqeust.getGjkSwitch()){ if(alihealthThirdAliDrugInsertReqeust.getGjkSwitch()){
@ -175,6 +185,12 @@ public class AlihealthBusController extends BaseController {
) { ) {
// 查询国家库是否有值 有值直接返回没值查询阿里接口 // 查询国家库是否有值 有值直接返回没值查询阿里接口
thirdAliDrugsListGjk = udiDlDeviceResponse.getData().getList(); thirdAliDrugsListGjk = udiDlDeviceResponse.getData().getList();
if(thirdAliDrugsListGjk.size() == udiDlDeviceResponse.getData().getTotal()){
thirdAliDrugsListGjk = PaginationUtil.getPage(thirdAliDrugsListGjk, alihealthThirdAliDrugInsertReqeust.getPage()
, alihealthThirdAliDrugInsertReqeust.getLimit());
}
pageSimpleResponse.setList(thirdAliDrugsListGjk);
pageSimpleResponse.setTotal(Long.valueOf(udiDlDeviceResponse.getData().getTotal()));
} }
} catch (Exception e) { } catch (Exception e) {
log.error("国家库===查询药品信息===出现错误===" + e.getMessage()); log.error("国家库===查询药品信息===出现错误===" + e.getMessage());
@ -182,38 +198,38 @@ public class AlihealthBusController extends BaseController {
} }
} }
if (thirdAliDrugsListGjk != null && thirdAliDrugsListGjk.size() > 0) { // if (thirdAliDrugsListGjk != null && thirdAliDrugsListGjk.size() > 0) {
//
} else {
// BaseResponse<List<ThirdAliDrug>> baseResponse = alihealthUtils.thirdAliDrugInsertAll(alihealthThirdAliDrugInsertReqeust);
// if (baseResponse.getCode() == 20000) {
// thirdAliDrugsListGjk = baseResponse.getData();
// } else { // } else {
// log.error("阿里接口未查到产品信息===" + baseResponse.getMessage()); //// BaseResponse<List<ThirdAliDrug>> baseResponse = alihealthUtils.thirdAliDrugInsertAll(alihealthThirdAliDrugInsertReqeust);
// return ResultVOUtils.error("阿里接口未查到产品信息===" + baseResponse.getMessage()); //// if (baseResponse.getCode() == 20000) {
//// thirdAliDrugsListGjk = baseResponse.getData();
//// } else {
//// log.error("阿里接口未查到产品信息===" + baseResponse.getMessage());
//// return ResultVOUtils.error("阿里接口未查到产品信息===" + baseResponse.getMessage());
////
//// }
//// // 上传到国家库
//// try {
//// Map mapNew = new HashMap();
//// mapNew.put("list", thirdAliDrugsListGjk);
//// String response = HttpUtil.post(udiUrl + "/udiwms/aliDrug/addThirdAliDrug", JSONUtil.toJsonStr(mapNew));
//// BaseResponse baseResponseAdd = JSONUtil.toBean(response, BaseResponse.class);
//// log.info("成功上传国家库阿里产品数据");
//// } catch (Exception e) {
////
//// log.error("国家库上传阿里产品访问出现错误===" + e.getMessage());
//// }
// //
// } // }
// // 上传到国家库 // // 上传多玛关系于处理规则在插入到融合表
// try { // if(ybDrug!= null && StringUtils.isNotEmpty(ybDrug.getGoodsCode())
// Map mapNew = new HashMap(); // ){
// mapNew.put("list", thirdAliDrugsListGjk); // // 规则匹配
// String response = HttpUtil.post(udiUrl + "/udiwms/aliDrug/addThirdAliDrug", JSONUtil.toJsonStr(mapNew)); // thirdAliDrugsListGjk = udiContrastService.disposeYbDrugList(thirdAliDrugsListGjk,ybDrug,alihealthThirdAliDrugInsertReqeust.getNameCodeIn());
// BaseResponse baseResponseAdd = JSONUtil.toBean(response, BaseResponse.class);
// log.info("成功上传国家库阿里产品数据");
// } catch (Exception e) {
// //
// log.error("国家库上传阿里产品访问出现错误===" + e.getMessage());
// } // }
return ResultVOUtils.success(pageSimpleResponse);
}
// 上传多玛关系于处理规则在插入到融合表
if(ybDrug!= null && StringUtils.isNotEmpty(ybDrug.getGoodsCode())
){
// 规则匹配
thirdAliDrugsListGjk = udiContrastService.disposeYbDrugList(thirdAliDrugsListGjk,ybDrug,alihealthThirdAliDrugInsertReqeust.getNameCodeIn());
}
return ResultVOUtils.success(thirdAliDrugsListGjk);
// udiProductService.insertUdiInfo(udiProductEntity); // udiProductService.insertUdiInfo(udiProductEntity);
} }

@ -1,5 +1,6 @@
package com.glxp.api.controller.thrsys; package com.glxp.api.controller.thrsys;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -123,16 +124,13 @@ public class ThirdAliDrugController extends BaseController {
alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey()); alihealthKytDrugrescodeReqeust.setApp_key(authAliUser.getAppkey());
alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid());
alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust);
Integer total = 0;
try { try {
BaseResponse baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); BaseResponse<PageSimpleResponse<ThirdAliDrug>> baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust);
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
if (!CollUtil.isEmpty(baseResponse.getData().getList())){
if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { list = baseResponse.getData().getList();
list = thirdAliDrugService.filterList(thirdAliDrug); total = baseResponse.getData().getTotal();
} else {
log.error("获取阿里和国家库码段信息===未查到产品信息");
} }
@ -151,7 +149,7 @@ public class ThirdAliDrugController extends BaseController {
// } // }
PageInfo<ThirdAliDrug> pageInfo = new PageInfo<>(list); PageInfo<ThirdAliDrug> pageInfo = new PageInfo<>(list);
PageSimpleResponse<ThirdAliDrug> pageSimpleResponse = new PageSimpleResponse<>(); PageSimpleResponse<ThirdAliDrug> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setTotal(Long.valueOf(total));
pageSimpleResponse.setList(list); pageSimpleResponse.setList(list);
return ResultVOUtils.success(pageSimpleResponse); return ResultVOUtils.success(pageSimpleResponse);
} }

@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.controller.alihealth.AlihealthBusController; import com.glxp.api.controller.alihealth.AlihealthBusController;
import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.dao.basic.UdiRelevanceDao;
@ -25,6 +26,7 @@ import com.glxp.api.req.basic.UdiCombineRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.YbDrugDetailFilterRequest; import com.glxp.api.req.basic.YbDrugDetailFilterRequest;
import com.glxp.api.req.thrsys.FilterThrProductsRequest; import com.glxp.api.req.thrsys.FilterThrProductsRequest;
import com.glxp.api.req.thrsys.ThirdAliDrugRequest;
import com.glxp.api.req.thrsys.ThrInsDrugFeeRequest; import com.glxp.api.req.thrsys.ThrInsDrugFeeRequest;
import com.glxp.api.req.thrsys.ThrInsMaterialFeeRequest; import com.glxp.api.req.thrsys.ThrInsMaterialFeeRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
@ -360,9 +362,9 @@ public class UdiContrastService {
alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid()); alihealthKytDrugrescodeReqeust.setRef_ent_id(authAliUser.getRefentid());
alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust); alihealthThirdAliDrugInsertReqeust.setAlihealthKytDrugrescodeReqeust(alihealthKytDrugrescodeReqeust);
try { try {
BaseResponse baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust); BaseResponse<PageSimpleResponse<ThirdAliDrug>> baseResponse = alihealthBusController.thirdAliDrugList(alihealthThirdAliDrugInsertReqeust);
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
thirdAliDrugList = (List) baseResponse.getData(); thirdAliDrugList = baseResponse.getData().getList();
// if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) { // if (thirdAliDrugService.addOrUpdate((List) baseResponse.getData())) {
// thirdAliDrugList = thirdAliDrugService.list( // thirdAliDrugList = thirdAliDrugService.list(
@ -616,7 +618,7 @@ public class UdiContrastService {
String response = HttpUtil.post(udiUrl + "/udchs/codeRel/updateBatch", JSONUtil.toJsonStr(list)); String response = HttpUtil.post(udiUrl + "/udchs/codeRel/updateBatch", JSONUtil.toJsonStr(list));
BaseResponse<String> baseResponse = JSONUtil.toBean(response, BaseResponse.class); BaseResponse<String> baseResponse = JSONUtil.toBean(response, BaseResponse.class);
if (baseResponse.getCode() == 2000) { if (baseResponse.getCode() == 20000) {
log.error("国家库===上传多码关系===" + list.get(0).getYbbm() + "成功==="); log.error("国家库===上传多码关系===" + list.get(0).getYbbm() + "成功===");
} else { } else {
@ -641,7 +643,7 @@ public class UdiContrastService {
String response = HttpUtil.post(udiUrl + "/udchs/codeRel/delete", JSONUtil.toJsonStr(codeRel)); String response = HttpUtil.post(udiUrl + "/udchs/codeRel/delete", JSONUtil.toJsonStr(codeRel));
BaseResponse<String> baseResponse = JSONUtil.toBean(response, BaseResponse.class); BaseResponse<String> baseResponse = JSONUtil.toBean(response, BaseResponse.class);
if (baseResponse.getCode() == 2000) { if (baseResponse.getCode() == 20000) {
} else { } else {
log.error("国家库===删除多玛关系===出现错误===" + baseResponse.getMessage()); log.error("国家库===删除多玛关系===出现错误===" + baseResponse.getMessage());
@ -654,7 +656,29 @@ public class UdiContrastService {
} }
} }
public List<ThirdAliDrug> optThirdAliDrug(ThirdAliDrugRequest thirdAliDrugRequest) {
List<ThirdAliDrug> thirdAliDrugList = new ArrayList<>();
try {
String response = HttpUtil.post(udiUrl + "/udiwms/aliDrug/optThirdAliDrug", JSONUtil.toJsonStr(thirdAliDrugRequest));
BaseResponse<List<ThirdAliDrug>> baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<List<ThirdAliDrug>>>() {
});
if (baseResponse.getCode() == 20000) {
thirdAliDrugList =baseResponse.getData();
} else {
log.error("国家库===查询选入数据失败===" + baseResponse.getMessage());
}
} catch (Exception e) {
log.error("国家库===查询选入数据失败===出现错误===" + e.getMessage());
}
return thirdAliDrugList;
}
public List<ThirdAliDrug> disposeYbDrugList(List<ThirdAliDrug> thirdAliDrugList, YbDrug ybDrug, List<String> codeIn) { public List<ThirdAliDrug> disposeYbDrugList(List<ThirdAliDrug> thirdAliDrugList, YbDrug ybDrug, List<String> codeIn) {
List<ThirdAliDrug> list1 = new ArrayList<>(); List<ThirdAliDrug> list1 = new ArrayList<>();
String result = null; String result = null;

@ -673,21 +673,13 @@ public class UdiProductServiceImpl implements UdiProductService {
@Override @Override
public BaseResponse saveOrUpadateLevelDrugAli(ThirdAliDrugRequest thirdAliDrugRequest) { public BaseResponse saveOrUpadateLevelDrugAli(ThirdAliDrugRequest thirdAliDrugRequest) {
Integer detailSort = 0; Integer detailSort = 0;
ThirdAliDrug thirdAliDrugServiceOne = thirdAliDrugService.getOne( // ThirdAliDrug thirdAliDrugServiceOne = thirdAliDrugService.getOne(
new QueryWrapper<ThirdAliDrug>().eq("nameCode", thirdAliDrugRequest.getNameCodeRow()).last("limit 1") // new QueryWrapper<ThirdAliDrug>().eq("nameCode", thirdAliDrugRequest.getNameCodeRow()).last("limit 1")
); // );
String str = ""; String str = "";
if (thirdAliDrugServiceOne != null) { List<ThirdAliDrug> thirdAliDrugList = new ArrayList<>();
List<ThirdAliDrug> thirdAliDrugList = thirdAliDrugService.list( thirdAliDrugRequest.setNameCode(thirdAliDrugRequest.getNameCodeRow());
new QueryWrapper<ThirdAliDrug>().eq(StringUtils.isNotBlank(thirdAliDrugServiceOne.getBzgg()), "bzgg", thirdAliDrugServiceOne.getBzgg()) thirdAliDrugList = udiContrastService.optThirdAliDrug(thirdAliDrugRequest);
.eq(StringUtils.isNotBlank(thirdAliDrugServiceOne.getPackRatio()), "packRatio", thirdAliDrugServiceOne.getPackRatio())
.like(StringUtils.isNotBlank(thirdAliDrugRequest.getCpmctymc()), "cpmctymc", thirdAliDrugRequest.getCpmctymc())
.like(StringUtils.isNotBlank(thirdAliDrugRequest.getManufacturer()), "manufacturer", thirdAliDrugRequest.getManufacturer())
.like(StringUtils.isNotBlank(thirdAliDrugRequest.getApprovalNum()), "approvalNum", thirdAliDrugRequest.getApprovalNum())
.like(StringUtils.isNotBlank(thirdAliDrugRequest.getFormSpec()), "formSpec", thirdAliDrugRequest.getFormSpec())
.like(StringUtils.isNotBlank(thirdAliDrugRequest.getBzgg()), "bzgg", thirdAliDrugRequest.getBzgg())
);
if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) { if (thirdAliDrugList != null && thirdAliDrugList.size() > 0) {
// 多码融合表拼接参数 // 多码融合表拼接参数
List<CodeRel> codeRelArrayList = new ArrayList<>(); List<CodeRel> codeRelArrayList = new ArrayList<>();
@ -857,7 +849,7 @@ public class UdiProductServiceImpl implements UdiProductService {
return ResultVOUtils.success(detailSort); return ResultVOUtils.success(detailSort);
} }
}
// } // }
return ResultVOUtils.error("获取错误"); return ResultVOUtils.error("获取错误");

@ -137,7 +137,7 @@ public class AlihealthUtils {
// 设置结果 // 设置结果
if (!resultList.isEmpty()) { if (!resultList.isEmpty()) {
ResultVOUtils.success(resultList); return ResultVOUtils.success(resultList);
} }
return listBaseResponse; return listBaseResponse;
} }

@ -0,0 +1,15 @@
package com.glxp.api.util.alihealth;
import java.util.ArrayList;
import java.util.List;
public class PaginationUtil {
public static <T> List<T> getPage(List<T> list, int pageNumber, int pageSize) {
int startIndex = (pageNumber - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, list.size());
if (startIndex >= list.size()) {
return new ArrayList<>();
}
return list.subList(startIndex, endIndex);
}
}

@ -77,7 +77,7 @@
from third_ali_drug from third_ali_drug
<where> <where>
<if test="cpmctymc != '' and cpmctymc != null"> <if test="cpmctymc != '' and cpmctymc != null">
AND cpmctymc LIKE concat('%', #{cpmctymc}, '%') AND cpmctymc LIKE concat( #{cpmctymc}, '%')
</if> </if>
<if test="nameCode != '' and nameCode != null"> <if test="nameCode != '' and nameCode != null">
AND nameCode LIKE concat('%', #{nameCode}, '%') AND nameCode LIKE concat('%', #{nameCode}, '%')

Loading…
Cancel
Save