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.
udi-wms-java/src/main/java/com/glxp/api/http/NmpaUdiClient.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;
}
}