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 getUdiByUuid(String uuid) { ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); productInfoFilterRequest.setPage(1); productInfoFilterRequest.setLimit(100); productInfoFilterRequest.setUuid(uuid); List productInfoEntityList = productInfoService.findAll(productInfoFilterRequest); List 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 getOrUpdateByUuid(String uuid) { List udiInfoEntities = getUdiByUuid(uuid); // if (CollUtil.isNotEmpty(udiInfoEntities)) { // UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udiInfoEntities.get(0).getNameCode()); // if (udiProductEntity != null) { // List exitUdis = udiProductService.findByUuids(udiProductEntity.getUuid()); // return exitUdis; // } // } return udiInfoEntities; } public List getUdiByDi(String key) { ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); productInfoFilterRequest.setPage(1); productInfoFilterRequest.setLimit(100); productInfoFilterRequest.setNameCode(key); List productInfoEntityList = productInfoService.findAll(productInfoFilterRequest); Map> listMap = productInfoEntityList.stream().collect(Collectors.groupingBy(ProductInfoEntity::getUuid)); List result = null; for (List 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 datas = productInfoService.findAll(productInfoFilterRequest); List 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; } }