Browse Source

1,字典自动适配错乱bug修复
2,适配缓存添加

huangzhiyong 7 years ago
parent
commit
78b924df16

+ 1 - 1
hos-dfs/src/main/java/com/yihu/hos/dfs/controller/DFSController.java

@ -10,7 +10,7 @@ import javax.servlet.http.HttpServletResponse;
/**
 * 基于Mongo的文件系统
 * <p>
 * <p>跨域注解
 * Created by l4qiang on 2017-04-10.
 */
@CrossOrigin

+ 4 - 1
pom.xml

@ -27,7 +27,10 @@
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>

+ 2 - 0
src/main/java/com/yihu/hos/ESBApplication.java

@ -4,12 +4,14 @@ import com.yihu.hos.interceptor.WebMvcInterceptor;
import com.yihu.hos.web.framework.util.springutil.SpringBeanUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@SpringBootApplication
@EnableCaching
public class ESBApplication extends WebMvcConfigurerAdapter {
    public static void main(String[] args) throws Exception {
        SpringApplication application = new SpringApplication(ESBApplication.class);

+ 4 - 0
src/main/java/com/yihu/hos/standard/dao/StdDataSetModelDao.java

@ -4,14 +4,18 @@ import com.yihu.hos.standard.model.standard.StdDataSetModel;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.util.sql.BeanTransformer;
import org.hibernate.Query;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Repository;
/**
 * Created by Administrator on 2016/5/4.
 */
@Repository("stdeDatasetDao")
@CacheConfig(cacheNames = "StdDataSetModelCache")
public class StdDataSetModelDao extends SQLGeneralDAO implements IStdDataSetModelDao {
    @Override
    @Cacheable
    public StdDataSetModel getDatasetName(String version ,Integer id){
        StringBuffer sql = new StringBuffer();
        sql.append("SELECT d.*").append(" FROM std_dataset_").append(version).append(" d where d.id ="+id);

+ 7 - 2
src/main/java/com/yihu/hos/standard/dao/StdDictionaryEntryModelDao.java

@ -4,6 +4,8 @@ import com.yihu.hos.standard.model.standard.StdDictionaryEntryModel;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.util.sql.BeanTransformer;
import org.hibernate.Query;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Repository;
import java.util.List;
@ -12,16 +14,19 @@ import java.util.List;
 * Created by Administrator on 2017/4/19 0019.
 */
@Repository("stdDictionaryEntryDao")
@CacheConfig(cacheNames = "StdDictionaryEntryModelCache")
public class StdDictionaryEntryModelDao extends SQLGeneralDAO implements IStdDictionaryEntryModelDao {
    @Override
    public List<StdDictionaryEntryModel> getDictionaryEntry(String adapter_std_version, String orgDicEntryValue, String orgName) {
    @Cacheable
    public List<StdDictionaryEntryModel> getDictionaryEntry(String adapter_std_version, String orgDicEntryValue, String dictName) {
        StringBuffer sql = new StringBuffer();
        sql.append("SELECT m.*").append(" FROM std_dictionary_entry_" + adapter_std_version).append(" m inner join std_dictionary_" + adapter_std_version)
                .append(" d on d.id= m.dict_id where m.value like ? and d.name like ?");
        try {
            Query query = getCurrentSession().createSQLQuery(sql.toString());
            query.setCacheable(true);
            query.setParameter(0, "%" + orgDicEntryValue + "%");
            query.setParameter(1, "%" + orgName + "%");
            query.setParameter(1, "%" + dictName + "%");
            query.setResultTransformer(new BeanTransformer(StdDictionaryEntryModel.class));
            List<StdDictionaryEntryModel> list = query.list();
            return list;

+ 7 - 0
src/main/java/com/yihu/hos/standard/dao/StdDictionaryModelDao.java

@ -4,14 +4,21 @@ import com.yihu.hos.standard.model.standard.StdDictionaryModel;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.util.sql.BeanTransformer;
import org.hibernate.Query;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Repository;
/**
 * Created by Administrator on 2017/4/19 0019.
 */
@Repository("stdDictionaryDao")
@CacheConfig(cacheNames = "StdDictionaryModelCache")
public class StdDictionaryModelDao extends SQLGeneralDAO implements IStdDictionaryModelDao {
    public final static String BEAN_ID = "stdDictionaryDao";
    @Override
    @Cacheable
    public StdDictionaryModel getDictionaryName(String version, Integer id) {
        StringBuffer sql = new StringBuffer();
        sql.append("SELECT d.*").append(" FROM std_dictionary_").append(version).append(" d where d.id =" + id);

+ 6 - 2
src/main/java/com/yihu/hos/standard/match/dictionary/DictItemStrategyExecute.java

@ -1,5 +1,7 @@
package com.yihu.hos.standard.match.dictionary;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.standard.dao.IStdDictionaryModelDao;
import com.yihu.hos.standard.dao.StdDictionaryEntryModelDao;
import com.yihu.hos.standard.match.matchModel.DictItemMatchVO;
@ -16,6 +18,7 @@ import java.util.Map;
 * 字典项匹配器
 */
public class DictItemStrategyExecute implements Runnable {
    private static final Logger logger = LoggerFactory.getLogger(DictItemStrategyExecute.class);
    public static Map<String, List<Integer>> size = new HashMap<String, List<Integer>>();
    private DictItemMatchVO matchVO;
    private DictitemStandardExistStrategy standardExistStrategy;
@ -50,6 +53,7 @@ public class DictItemStrategyExecute implements Runnable {
        standardExistStrategy.setAdapterDictEntryService(adapterDictEntryService);
        dictitemStandardNameStrategy = new DictitemStandardNameStrategy();
        dictitemStandardNameStrategy.setAdapterDictEntryService(adapterDictEntryService);
        dictitemStandardNameStrategy.setStdDictionaryDao(stdDictionaryDao);
    }
    public static void setVersionYes(String version) {
@ -60,7 +64,7 @@ public class DictItemStrategyExecute implements Runnable {
    @Override
    public void run() {
        try {
            if (dictitemStandardNameStrategy.match(adapterDictEntryModel, version)) {
            if (dictitemStandardNameStrategy.match(adapterDictEntryModel, version,std_version)) {
                updateAdapt(version);
                return;
            }
@ -84,7 +88,7 @@ public class DictItemStrategyExecute implements Runnable {
    public synchronized static void updateAdapt(String version) {
        List<Integer> sizeList = size.get(version);
        sizeList.add(1, sizeList.get(1) + 1);
        System.out.println("更新匹配数目:" + sizeList.get(0) + "/" + (sizeList.get(1)));
        logger.debug("更新匹配数目:" + sizeList.get(0) + "/" + (sizeList.get(1)));
    }
    public synchronized static void setFirst(String version, Integer allCount) {

+ 2 - 4
src/main/java/com/yihu/hos/standard/match/dictionary/DictitemStandardExistStrategy.java

@ -4,13 +4,11 @@ import com.yihu.hos.standard.dao.IStdDictionaryModelDao;
import com.yihu.hos.standard.dao.StdDictionaryEntryModelDao;
import com.yihu.hos.standard.match.matchModel.DictItemMatchVO;
import com.yihu.hos.standard.model.adapter.AdapterDictEntryModel;
import com.yihu.hos.standard.model.adapter.AdapterDictModel;
import com.yihu.hos.standard.model.standard.StdDictionaryEntryModel;
import com.yihu.hos.standard.model.standard.StdDictionaryModel;
import com.yihu.hos.standard.service.adapter.AdapterDictEntryService;
import com.yihu.hos.standard.service.adapter.AdapterDictService;
import com.yihu.hos.standard.util.GetChineseFirst;
import com.yihu.hos.web.framework.util.springutil.SpringBeanUtil;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -76,12 +74,12 @@ public class DictitemStandardExistStrategy {
            StdDictionaryModel stdDictionaryModel = stdDictionaryDao.getDictionaryName(std_version,unAdaptDicId);
            StdDictionaryModel adapterDictionaryModel = stdDictionaryDao.getDictionaryName(adapter_std_version,unAdaptDicId);
            if(stdDictionaryModel!=null){
                String orgName = stdDictionaryModel.getName();
                String dictName = stdDictionaryModel.getName();
                for (AdapterDictEntryModel adapterDictEntry : matchList) {
                    if(adapterDictEntry.getStdEntryValue().contains(adapterDictEntryModel.getStdEntryValue())){
                        String orgDicEntryValue= adapterDictEntry.getAdapterEntryValue();
                        //根据值查找出 该项目下面的字典项
                        List<StdDictionaryEntryModel> dictionaryEntryTemps = stdDictionaryEntryDao.getDictionaryEntry(adapter_std_version,orgDicEntryValue,orgName);
                        List<StdDictionaryEntryModel> dictionaryEntryTemps = stdDictionaryEntryDao.getDictionaryEntry(adapter_std_version,orgDicEntryValue,dictName);
                        if(dictionaryEntryTemps!=null&&dictionaryEntryTemps.size()>0){
                            String adapterInfo = "1";//查找到就默认疑似适配
                            if(dictionaryEntryTemps.size()==1){//查找到的条数为1,则为完全适配

+ 19 - 2
src/main/java/com/yihu/hos/standard/match/dictionary/DictitemStandardNameStrategy.java

@ -1,8 +1,10 @@
package com.yihu.hos.standard.match.dictionary;
import com.yihu.hos.standard.dao.IStdDictionaryModelDao;
import com.yihu.hos.standard.model.adapter.AdapterDictEntryModel;
import com.yihu.hos.standard.model.standard.StdDictionaryEntryModel;
import com.yihu.hos.standard.model.standard.StdDictionaryModel;
import com.yihu.hos.standard.service.adapter.AdapterDictEntryService;
import com.yihu.hos.standard.util.LikeHashMap;
import org.springframework.context.annotation.Scope;
@ -20,6 +22,16 @@ public class DictitemStandardNameStrategy {
    private AdapterDictEntryService adapterDictEntryService;
    private IStdDictionaryModelDao stdDictionaryDao;
    public IStdDictionaryModelDao getStdDictionaryDao() {
        return stdDictionaryDao;
    }
    public void setStdDictionaryDao(IStdDictionaryModelDao stdDictionaryDao) {
        this.stdDictionaryDao = stdDictionaryDao;
    }
    public AdapterDictEntryService getAdapterDictEntryService() {
        return adapterDictEntryService;
    }
@ -42,8 +54,13 @@ public class DictitemStandardNameStrategy {
    @Transactional
    public boolean match(AdapterDictEntryModel adapterDictEntryModel, String version) throws Exception {
        StdDictionaryEntryModel orgDictItem = nameMap.get(adapterDictEntryModel.getStdEntryValue(), true);
    public boolean match(AdapterDictEntryModel adapterDictEntryModel, String version,String std_version) throws Exception {
        if (adapterDictEntryModel==null){
            System.out.println(adapterDictEntryModel);
        }
        StdDictionaryModel dictionary = stdDictionaryDao.getDictionaryName(std_version, adapterDictEntryModel.getStdDictId());
        StdDictionaryEntryModel orgDictItem = nameMap.get(adapterDictEntryModel.getStdEntryValue()+ "_" + dictionary.getCode(), true);
        if (orgDictItem != null ) {
            adapterDictEntryService.saveAdapt(adapterDictEntryModel, orgDictItem, version,"2");
            return true;

+ 4 - 1
src/main/java/com/yihu/hos/standard/service/adapter/AdapterDictService.java

@ -226,7 +226,10 @@ public class AdapterDictService extends SQLGeneralDAO {
        List<StdDictionaryEntryModel> dictItems = stdDictService.getDicEntryList(standardVersion, null, null, null, null);
        for (StdDictionaryEntryModel stdDictItem:dictItems){
            DictitemStandardNameStrategy.getNameMap().put(stdDictItem.getValue(),stdDictItem);
            StdDictionaryModel dictionary = stdDictionaryDao.getDictionaryName(adapter_std_version, stdDictItem.getDictId());
            if(dictionary != null){
                DictitemStandardNameStrategy.getNameMap().put(stdDictItem.getValue() + "_" + dictionary.getCode(),stdDictItem);
            }
        }
        //执行匹配

+ 4 - 3
src/main/java/com/yihu/hos/standard/service/adapter/AdapterSchemeService.java

@ -165,11 +165,11 @@ public class AdapterSchemeService extends SQLGeneralDAO {
            for (AdapterSchemeModel adapterSchemeModel : adapterSchemeModelList) {
                schemeIdList.add(adapterSchemeModel.getId());
                stdIdList.add(adapterSchemeModel.getStdId());
//                stdIdList.add(adapterSchemeModel.getAdapterStdId());
                stdIdList.add(adapterSchemeModel.getAdapterStdId());
                versionList.add(adapterSchemeModel.getStdVersion());
//                versionList.add(adapterSchemeModel.getAdapterStdVersion());
                versionList.add(adapterSchemeModel.getAdapterStdVersion());
            }
            versionList = delDuplicateArr(versionList);
//            versionList = delDuplicateArr(versionList);
            if (CollectionUtil.isEmpty(schemeIdList)) {
                schemeIdList.add(null);
            }
@ -245,6 +245,7 @@ public class AdapterSchemeService extends SQLGeneralDAO {
                resultDetailModel.setVersion(versionModel.getVersion());
                resultDetailModel.setType(1);
                if (resultDetailModelCheckMap.containsKey(pid)) {
                    resultDetailModel.setAdapterStdVersion(resultDetailModelCheckMap.get(resultDetailModel.getPid()).getAdapterStdVersion());
                    resultDetailModelList.add(resultDetailModel);
                } else if (StringUtil.isEmpty(name) || versionModel.getName().contains(name)) {
                    resultDetailModelList.add(resultDetailModel);

+ 10 - 9
src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp

@ -96,15 +96,16 @@
                {id: 55, pid: 5, text: '远程管理', url: '${contextRoot}/shell/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                //资源管理
                {id: 3, text: '资源服务', icon: '${staticRoot}/images/index/menu05.png'},
                {id: 31, pid: 3, text: '资源注册', url: '${contextRoot}/resource/resource/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 32, pid: 3, text: '资源浏览', url: '${contextRoot}/resource/resourcePage', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 34, pid: 3, text: '资源分类', url: '${contextRoot}/resource/rsCategory/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 35, pid: 3, text: '业务资源', url: '${contextRoot}/resourceRest/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                //维度管理
                <%--{id: 4, text: '维度管理', icon: '${staticRoot}/images/index/menu5_icon.png'},--%>
                {id: 36, pid: 3, text: '维度配置', url: '${contextRoot}/dimension/dimension', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 37, pid: 3, text: '维度类别配置', url: '${contextRoot}/dimension/dimensioncatetory', icon: '${staticRoot}/images/index/Ins_icon.png'},
                <%--{id: 3, text: '资源服务', icon: '${staticRoot}/images/index/menu05.png'},--%>
                <%--{id: 31, pid: 3, text: '资源注册', url: '${contextRoot}/resource/resource/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                <%--{id: 32, pid: 3, text: '资源浏览', url: '${contextRoot}/resource/resourcePage', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                <%--{id: 34, pid: 3, text: '资源分类', url: '${contextRoot}/resource/rsCategory/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                <%--{id: 35, pid: 3, text: '业务资源', url: '${contextRoot}/resourceRest/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                <%--//维度管理--%>
                <%--&lt;%&ndash;{id: 4, text: '维度管理', icon: '${staticRoot}/images/index/menu5_icon.png'},&ndash;%&gt;--%>
                <%--{id: 36, pid: 3, text: '维度配置', url: '${contextRoot}/dimension/dimension', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                <%--{id: 37, pid: 3, text: '维度类别配置', url: '${contextRoot}/dimension/dimensioncatetory', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                //用户安全中心
                {id: 7, text: '用户安全', icon: '${staticRoot}/images/index/menu06.png'},
                {id: 71, pid: 7, text: '机构管理', url: '${contextRoot}/org/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},

+ 4 - 4
src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp

@ -119,19 +119,19 @@
        </div>
        <div class="m-form-group" id="divRepeatStart" style="display: none">
            <label>采集开始时间:</label>
            <label>上传事件起始时间:</label>
            <div class="m-form-control">
                <input id="repeatStartTime" type="text" />
            </div>
        </div>
        <div class="m-form-group" id="divRepeatEnd" style="display: none">
            <label>采集结束时间:</label>
            <label>上传事件结束时间:</label>
            <div class="m-form-control">
                <input id="repeatEndTime" type="text" />
            </div>
        </div>
        <div id="divDelayTime" class="m-form-group" style="display: none">
            <label>延迟时间:</label>
            <label>延迟上传时间:</label>
            <div class="m-form-control">
                <input type="text" id="txtDelayTime" />
            </div>
@ -202,7 +202,7 @@
        </div>
    </div>
    <div class="m-form-group">
        <label>轮询最大值:</label>
        <label>轮询起始值:</label>
        <div class="m-form-control">
            <input type="text" id="jobDatasetKeyvalue" class="l-textbox">
        </div>