Bladeren bron

慢阻肺综合查询相关修改

LAPTOP-KB9HII50\70708 1 jaar geleden
bovenliggende
commit
fc315e1745

+ 1 - 1
svr/svr-basic/src/main/java/com/yihu/jw/basic/agadmin/controller/resource/ReportController.java

@ -6,7 +6,6 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.jw.basic.agadmin.service.ReportService;
import com.yihu.jw.basic.agadmin.service.ResourceBrowseControllerService;
import com.yihu.jw.basic.fileresource.service.FileResource;
import com.yihu.jw.basic.fileresource.service.FileResourceManager;
import com.yihu.jw.basic.quota.service.TjDimensionMainService;
import com.yihu.jw.basic.quota.service.TjDimensionSlaveService;
@ -16,6 +15,7 @@ import com.yihu.jw.basic.resource.dao.RsReportDao;
import com.yihu.jw.basic.resource.model.RsCategoryTypeTreeModel;
import com.yihu.jw.basic.resource.service.*;
import com.yihu.jw.basic.util.FileUploadUtil;
import com.yihu.jw.entity.ehr.fileresource.FileResource;
import com.yihu.jw.entity.ehr.id.BizObject;
import com.yihu.jw.entity.ehr.quota.TjDimensionMain;
import com.yihu.jw.entity.ehr.quota.TjDimensionSlave;

+ 35 - 0
svr/svr-basic/src/main/java/com/yihu/jw/basic/config/jpa/HibernateProperties.java

@ -0,0 +1,35 @@
package com.yihu.jw.basic.config.jpa;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
import java.util.Properties;
/**
 * Created by chenweida on 2017/4/6.
 */
@Component
@RefreshScope
public class HibernateProperties {
    @Value("${hibernate.dialect}")
    private String dialect;
    @Value("${hibernate.show_sql}")
    private String show_sql;
    @Value("${hibernate.ejb.naming_strategy}")
    private String naming_strategy;
    @Value("${hibernate.physical_naming_strategy}")
    private String physical_naming_strategy;
    @Value("${hibernate.implicit_naming_strategy}")
    private String implicit_naming_strategy;
    public  Properties hibProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect",dialect);
        properties.put("hibernate.show_sql", show_sql);
//        properties.put("hibernate.ejb.naming_strategy", naming_strategy);
        properties.put("hibernate.physical_naming_strategy",physical_naming_strategy);
        properties.put("hibernate.implicit_naming_strategy",implicit_naming_strategy);
        return properties;
    }
}

+ 59 - 0
svr/svr-basic/src/main/java/com/yihu/jw/basic/config/jpa/WlyySpecialistJpa.java

@ -0,0 +1,59 @@
package com.yihu.jw.basic.config.jpa;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
/**
 * 开启sql打印
 */
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
        entityManagerFactoryRef = "wlyySpecialistEntityManagerFactory",
        transactionManagerRef = "wlyySpecialistTransactionManager",
        basePackages = {"com.yihu.jw.basic.*.dao","com.yihu.jw.restmodel.exception.dao","com.yihu.jw.util.dao"})   //设置Repository所在位置
public class WlyySpecialistJpa {
    @Autowired
    private HibernateProperties hibernateProperties;
    @Bean(name = "wlyySpecialistEntityManagerFactory")
    @Primary
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary(DataSource dataSource) {
        LocalContainerEntityManagerFactoryBean emfb = new LocalContainerEntityManagerFactoryBean();
        emfb.setDataSource(dataSource);
        emfb.setPackagesToScan("com.yihu.jw.entity");
        emfb.setPersistenceUnitName("specialist");
        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        emfb.setJpaVendorAdapter(vendorAdapter);
//        Properties properties = hibernateProperties.hibProperties();
//        properties.put("hibernate.ejb.naming_strategy","org.hibernate.cfg.ImprovedNamingStrategy");
        emfb.setJpaProperties(hibernateProperties.hibProperties());
        return emfb;
    }
    @Bean(name = "wlyySpecialistTransactionManager")
    @Primary
    JpaTransactionManager transactionManagerSecondary(
            @Qualifier("wlyySpecialistEntityManagerFactory") EntityManagerFactory builder) {
        return new JpaTransactionManager(builder);
    }
}

+ 1 - 1
svr/svr-basic/src/main/java/com/yihu/jw/basic/fileresource/controller/FileResourceEndPoint.java

@ -1,9 +1,9 @@
package com.yihu.jw.basic.fileresource.controller;
import com.yihu.jw.basic.fileresource.service.FileResource;
import com.yihu.jw.basic.fileresource.service.FileResourceManager;
import com.yihu.jw.constants.ApiVersion;
import com.yihu.jw.entity.ehr.fileresource.FileResource;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.jw.entity.ehr.id.BizObject;

+ 2 - 1
svr/svr-basic/src/main/java/com/yihu/jw/basic/fileresource/service/XFileResourceRepository.java

@ -1,5 +1,6 @@
package com.yihu.jw.basic.fileresource.service;
package com.yihu.jw.basic.fileresource.dao;
import com.yihu.jw.entity.ehr.fileresource.FileResource;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

+ 2 - 0
svr/svr-basic/src/main/java/com/yihu/jw/basic/fileresource/service/FileResourceManager.java

@ -2,6 +2,8 @@ package com.yihu.jw.basic.fileresource.service;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.jw.basic.fileresource.dao.XFileResourceRepository;
import com.yihu.jw.entity.ehr.fileresource.FileResource;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;

+ 65 - 12
svr/svr-basic/src/main/java/com/yihu/jw/basic/resource/dao/ResourceBrowseDao.java

@ -3,33 +3,27 @@ package com.yihu.jw.basic.resource.dao;
import com.alibaba.fastjson.JSONArray;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.basic.redis.schema.AdapterMetaDataKeySchema;
import com.yihu.jw.basic.standard.service.redis.StdRedisService;
import com.yihu.jw.basic.resource.service.RedisService;
import com.yihu.jw.basic.resource.service.RsResourceService;
import com.yihu.jw.ehr.redis.schema.StdDataSetKeySchema;
import com.yihu.jw.entity.ehr.resource.*;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.mysql.model.QueryCondition;
import com.yihu.jw.mysql.sqlparser.ParserFactory;
import com.yihu.jw.mysql.sqlparser.ParserSql;
import com.yihu.jw.profile.ProfileType;
import com.yihu.jw.profile.core.ResourceCore;
import com.yihu.jw.profile.family.ResourceCells;
import com.yihu.jw.basic.resource.service.RedisService;
import com.yihu.jw.basic.resource.service.RsResourceService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.entity.ehr.resource.*;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@ -644,7 +638,7 @@ public class ResourceBrowseDao {
     * @return
     * @throws Exception
     */
    public Page<Map<String, Object>> getMysqlDataAndCondition(String sql,String queryParam,String sortParam,Integer page, Integer size) throws Exception {
    public Page<Map<String, Object>> getMysqlDataAndCondition(String sql,String queryParam,String sortParam,Integer page, Integer size,List<String> resourcesCodes) throws Exception {
        String sortOrder = "";
        String sortOrderSql = "";
        if (StringUtils.isNoneBlank(sortParam)){
@ -688,12 +682,42 @@ public class ResourceBrowseDao {
        } else {
            list = jdbcTemplate.queryForList(sql);
        }
        if(list.size()>0){
            //字典翻译
            List<DtoResourceMetadata> resourceMetadataList = resourceBrowseMetadataDao.getResourceMetadataHasDict(resourcesCodes.get(0));
            if(resourceMetadataList.size()>0){
                Map<String,String> fieldDictMap = resourceMetadataList.stream().collect(Collectors.toMap(DtoResourceMetadata::getEhrId,DtoResourceMetadata::getDictCode));
                Map<String,Map<String,String>> dictMap = new HashMap<>();
                String dictSql = "select * from rs_dictionary_entry where DICT_CODE = ?";
                for (DtoResourceMetadata metadata:resourceMetadataList){
                    String dictCode = metadata.getDictCode();
                    if(!dictMap.containsKey(dictCode)){
                        List<RsDictionaryEntry> dictionaryEntries = jdbcTemplate.query(dictSql,new Object[]{dictCode},new BeanPropertyRowMapper<>(RsDictionaryEntry.class));
                        Map<String,String> tmpMap = dictionaryEntries.stream().collect(Collectors.toMap(RsDictionaryEntry::getCode,RsDictionaryEntry::getName));
                        dictMap.put(dictCode,tmpMap);
                    }
                }
                for (Map<String, Object> map:list){
                    for (Map.Entry<String, String> entry : fieldDictMap.entrySet()) {
                        String key = entry.getKey();
                        String value = entry.getValue();
                        if(map.get(key)!=null){
                            String dictValue =  dictMap.get(value).get(map.get(key));
                            map.put(key,dictValue);
                        }
                    }
                }
            }
        }
        return new PageImpl<>(list, PageRequest.of(page - 1, size), count);
    }
    /**
     * 获取Mysql配置库数据
     *
     * getMysqlData"
     * @param resourcesCode
     * @param page
     * @param size
@ -744,6 +768,35 @@ public class ResourceBrowseDao {
        } else {
            list = jdbcTemplate.queryForList(sql);
        }
        if(list.size()>0){
            //字典翻译
            List<DtoResourceMetadata> resourceMetadataList = resourceBrowseMetadataDao.getResourceMetadataHasDict(resourcesCode);
            if(resourceMetadataList.size()>0){
                Map<String,String> fieldDictMap = resourceMetadataList.stream().collect(Collectors.toMap(DtoResourceMetadata::getStdCode,DtoResourceMetadata::getDictCode));
                Map<String,Map<String,String>> dictMap = new HashMap<>();
                String dictSql = "select * from rs_dictionary_entry where DICT_CODE = ?";
                for (DtoResourceMetadata metadata:resourceMetadataList){
                    String dictCode = metadata.getDictCode();
                    if(!dictMap.containsKey(dictCode)){
                        List<RsDictionaryEntry> dictionaryEntries = jdbcTemplate.query(dictSql,new Object[]{dictCode},new BeanPropertyRowMapper<>(RsDictionaryEntry.class));
                        Map<String,String> tmpMap = dictionaryEntries.stream().collect(Collectors.toMap(RsDictionaryEntry::getCode,RsDictionaryEntry::getName));
                        dictMap.put(dictCode,tmpMap);
                    }
                }
                for (Map<String, Object> map:list){
                    for (Map.Entry<String, String> entry : fieldDictMap.entrySet()) {
                        String key = entry.getKey();
                        String value = entry.getValue();
                        if(map.get(key)!=null){
                            String dictValue =  dictMap.get(value).get(map.get(key));
                            map.put(key,dictValue);
                        }
                    }
                }
            }
        }
        return new PageImpl<>(list, PageRequest.of(page - 1, size), count);
    }

+ 13 - 0
svr/svr-basic/src/main/java/com/yihu/jw/basic/resource/dao/ResourceBrowseMetadataDao.java

@ -34,6 +34,19 @@ public class ResourceBrowseMetadataDao {
        return jdbcTemplate.query(sql, rowMapper);
    }
    /**
     * 获取某资源有字典的数据元
     */
    public List<DtoResourceMetadata> getResourceMetadataHasDict(String resourcesCode) throws Exception {
        String sql = "SELECT m.id,m.ehr_id, m.domain, m.name, m.std_code, m.display_code, m.column_type, m.null_able, m.dict_code, m.description, m.valid, a.group_type, a.group_data " +
                "FROM rs_resource_metadata a, rs_resource b, rs_metadata m " +
                "WHERE a.resources_id = b.id " +
                "AND a.metadata_id = m.ehr_id " +
                "AND b.code = '" + resourcesCode + "' and m.DICT_CODE is not null ";
        RowMapper rowMapper = BeanPropertyRowMapper.newInstance(DtoResourceMetadata.class);
        return jdbcTemplate.query(sql, rowMapper);
    }
    /**
     * 获取某资源数据元(根据资源数据元id过滤)
     */

+ 11 - 4
svr/svr-basic/src/main/java/com/yihu/jw/basic/resource/service/ResourceBrowseService.java

@ -41,11 +41,11 @@ public class ResourceBrowseService extends BaseJpaService {
    private ResourceBrowseMetadataDao resourceBrowseMetadataDao;
    @Autowired
    private ResourceBrowseDao resourceBrowseDao;
/*    @Autowired
    private StdTransformClient stdTransformClient;*/
    /*    @Autowired
        private StdTransformClient stdTransformClient;*/
    @Autowired
    private RedisService redisService;
//    @Autowired
    //    @Autowired
//    private ElasticsearchUtil elasticSearchUtil;
    @Autowired
    private RsResourceService rsResourceService;
@ -525,16 +525,23 @@ public class ResourceBrowseService extends BaseJpaService {
            stringBuffer = parseCondition1(queryCondition);
        }
        //数据元信息字段
        if(!StringUtils.isEmpty(metaData)){
            metaData = metaData.replaceAll(",","\",\"");
        }
        List<String> customizeList = (List<String>) objectMapper.readValue(metaData, List.class);
        //参数集合
        List<String> paramList = new ArrayList<>(customizeList.size() * 2);
        for (String id : customizeList) {
            if(id.contains("-")){
                String tmp = id.substring(id.lastIndexOf("-")+1);
                id = tmp + " as '" +id+"'";
            }
            paramList.add(id);
        }
        String queryString = org.apache.commons.lang3.StringUtils.join(paramList, ",");
        String sql = " select "+queryString+" from "+tableName;
        String sortParam = "";
        return resourceBrowseDao.getMysqlDataAndCondition(sql, stringBuffer.toString(),sortParam, page, size);
        return resourceBrowseDao.getMysqlDataAndCondition(sql, stringBuffer.toString(),sortParam, page, size,codeList);
    }
    /**

+ 9 - 0
svr/svr-basic/src/main/resources/application.yml

@ -144,6 +144,15 @@ spring:
    url: jdbc:mysql://172.26.0.114:3306/healtharchive?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: root
    password: 4D^tK%!4
#hibernate 配置
hibernate:
  dialect: org.hibernate.dialect.MySQL5Dialect
  show_sql: true
  ejb:
    naming_strategy: org.hibernate.cfg.ImprovedNamingStrategy
  physical_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
  implicit_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
  # -- unknown use --
  ldap:
    host: 172.19.103.87