You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
4.1 KiB
Java
94 lines
4.1 KiB
Java
package com.glxp.api.http;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import com.glxp.api.constant.ConstantStatus;
|
|
import com.glxp.api.entity.basic.ProductInfoEntity;
|
|
import com.glxp.api.entity.basic.UdiProductEntity;
|
|
import com.glxp.api.req.basic.ProductInfoFilterRequest;
|
|
import com.glxp.api.service.basic.ProductInfoService;
|
|
import com.glxp.api.service.basic.UdiProductService;
|
|
import com.glxp.api.util.UuidUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* 获取国家UDI同步库信息(nmpa:国家药品监督管理局)
|
|
*/
|
|
@Service
|
|
public class NmpaUdiClient {
|
|
@Resource
|
|
ProductInfoService productInfoService;
|
|
@Resource
|
|
UdiProductService udiProductService;
|
|
|
|
public List<UdiProductEntity> getUdiByUuid(String uuid) {
|
|
ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest();
|
|
productInfoFilterRequest.setPage(1);
|
|
productInfoFilterRequest.setLimit(100);
|
|
productInfoFilterRequest.setUuid(uuid);
|
|
|
|
List<ProductInfoEntity> productInfoEntityList = productInfoService.findAll(productInfoFilterRequest);
|
|
List<UdiProductEntity> udiInfoEntities = new ArrayList<>();
|
|
String myUuid = UuidUtils.getUUId();
|
|
for (ProductInfoEntity productInfoEntity : productInfoEntityList) {
|
|
UdiProductEntity udiProductEntity = new UdiProductEntity();
|
|
BeanUtils.copyProperties(productInfoEntity, udiProductEntity);
|
|
udiProductEntity.setUuid(myUuid);
|
|
udiProductEntity.setOriginUuid(productInfoEntity.getUuid());
|
|
udiProductEntity.setQxlb(productInfoEntity.getCplx());
|
|
udiProductEntity.setCplb(productInfoEntity.getHchzsb());
|
|
udiInfoEntities.add(udiProductEntity);
|
|
}
|
|
return udiInfoEntities;
|
|
}
|
|
|
|
public List<UdiProductEntity> getOrUpdateByUuid(String uuid) {
|
|
|
|
List<UdiProductEntity> udiInfoEntities = getUdiByUuid(uuid);
|
|
// if (CollUtil.isNotEmpty(udiInfoEntities)) {
|
|
// UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udiInfoEntities.get(0).getNameCode());
|
|
// if (udiProductEntity != null) {
|
|
// List<UdiProductEntity> exitUdis = udiProductService.findByUuids(udiProductEntity.getUuid());
|
|
// return exitUdis;
|
|
// }
|
|
// }
|
|
return udiInfoEntities;
|
|
}
|
|
|
|
public List<UdiProductEntity> getUdiByDi(String key) {
|
|
ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest();
|
|
productInfoFilterRequest.setPage(1);
|
|
productInfoFilterRequest.setLimit(100);
|
|
productInfoFilterRequest.setNameCode(key);
|
|
|
|
List<ProductInfoEntity> productInfoEntityList = productInfoService.findAll(productInfoFilterRequest);
|
|
Map<String, List<ProductInfoEntity>> listMap = productInfoEntityList.stream().collect(Collectors.groupingBy(ProductInfoEntity::getUuid));
|
|
List<ProductInfoEntity> result = null;
|
|
for (List<ProductInfoEntity> value : listMap.values()) {
|
|
if (result == null || value.get(0).getVersionNumber() > result.get(0).getVersionNumber()) {
|
|
result = value;
|
|
}
|
|
}
|
|
productInfoFilterRequest.setNameCode(null);
|
|
productInfoFilterRequest.setUuid(result.get(0).getUuid());
|
|
List<ProductInfoEntity> datas = productInfoService.findAll(productInfoFilterRequest);
|
|
List<UdiProductEntity> udiInfoEntities = new ArrayList<>();
|
|
for (ProductInfoEntity productInfoEntity : datas) {
|
|
UdiProductEntity udiProductEntity = new UdiProductEntity();
|
|
BeanUtils.copyProperties(productInfoEntity, udiProductEntity);
|
|
udiProductEntity.setQxlb(productInfoEntity.getCplx());
|
|
udiProductEntity.setCplb(productInfoEntity.getHchzsb());
|
|
udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI);
|
|
udiInfoEntities.add(udiProductEntity);
|
|
}
|
|
return udiInfoEntities;
|
|
|
|
}
|
|
}
|