瀏覽代碼

Merge branch 'master' of http://192.168.1.220:10080/esb/esb

demon 9 年之前
父節點
當前提交
839c29e9ff

+ 6 - 0
Hos-Framework/src/main/java/com/yihu/ehr/framework/util/httpclient/HttpHelper.java

@ -1,5 +1,6 @@
package com.yihu.ehr.framework.util.httpclient;
import com.yihu.ehr.framework.util.operator.StringUtil;
import org.apache.http.NameValuePair;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
@ -41,6 +42,11 @@ public class HttpHelper {
            httpGateway = props.getProperty("httpGateway");
            String sslKeystore = props.getProperty("sslKeystore");
            String sslPassword = props.getProperty("sslPassword");
            if (StringUtil.isEmpty(sslKeystore)) {
                String home = System.getProperty("catalina.home").replace('\\','/');
                String homeUrl = home.substring(0,home.lastIndexOf('/')+1);
                sslKeystore = homeUrl + "tomcat.keystore";
            }
            if(sslKeystore!=null && sslKeystore.length()>0 && sslPassword!=null &&sslPassword.length()>0)
            {
                SSLContext sslContext = SSLContexts.custom()

+ 18 - 5
Hos-Resource-WS/src/main/java/com.yihu.ehr/model/WSReturnModel.java

@ -73,12 +73,15 @@ public class WSReturnModel {
                if ("data_1".equals(e.getKey().toLowerCase())) {
                    //判断是否是data1
                    Element elemenData1Temp = DocumentHelper.createElement("Data_1");
                    for (Map.Entry<String, Object> dataE : ((Map<String, Object>) e.getValue()).entrySet()) {
                        Element elemenData1TempElement = DocumentHelper.createElement(toUpperCaseFirstOne(dataE.getKey()));
                        if (!StringUtils.isEmpty(e.getValue())) {
                            elemenData1TempElement.addText(dataE.getValue().toString());
                    List<Map<String,Object>> list= (List<Map<String, Object>>) e.getValue();
                    for(Map<String,Object> one:list){
                        for (Map.Entry<String, Object> dataE : one.entrySet()) {
                            Element elemenData1TempElement = DocumentHelper.createElement(toUpperCaseFirstOne(dataE.getKey()));
                            if (!StringUtils.isEmpty(e.getValue())) {
                                elemenData1TempElement.addText(dataE.getValue().toString());
                            }
                            elemenData1Temp.add(elemenData1TempElement);
                        }
                        elemenData1Temp.add(elemenData1TempElement);
                    }
                    dataElement.add(elemenData1Temp);
                } else {
@ -140,4 +143,14 @@ public class WSReturnModel {
    public void setRespCode(String respCode) {
        RespCode = respCode;
    }
    @Override
    public String toString() {
        return "WSReturnModel{" +
                "TransactionCode='" + TransactionCode + '\'' +
                ", Data=" + Data +
                ", RespCode='" + RespCode + '\'' +
                ", RespMessage='" + RespMessage + '\'' +
                '}';
    }
}

+ 17 - 15
Hos-Resource-WS/src/main/java/com.yihu.ehr/ws/ExcuteService.java

@ -168,40 +168,41 @@ public class ExcuteService {
        wsReturnModel.setTransactionCode(TransactionCode);
        try {
            initJDBC();
            if ("2".equals(reportType)) {
            if ("1".equals(reportType)) {
                //检验
                StringBuffer sb = new StringBuffer("select * from HDSD02_01 where 1=1 ");
                StringBuffer sb = new StringBuffer("select * from REPORT_JY where 1=1 ");
                if (!StringUtils.isEmpty(reportId)) {
                    sb.append(" and JDSD02_01_01 = '" + reportId + "'");
                    sb.append(" and REPORT_ID = '" + reportId + "'");
                }
                List<Map<String, Object>> returnData = jdbcTemplate.queryForList(sb.toString());
                for (Map<String, Object> oneM : returnData) {
                    //检验-图片报告单
                    sb = new StringBuffer("select * from HDSD02_02 where 1=1 ");
                    if (!StringUtils.isEmpty(oneM.get("JDSD02_02_01"))) {
                        sb.append(" and JDSD02_02_01 = '" + reportId + "'");
                    sb = new StringBuffer("select * from REPORT_JY_MX where 1=1 ");
                    if (!StringUtils.isEmpty(oneM.get("REPORT_ID"))) {
                        sb.append(" and REPORT_ID = '" + reportId + "'");
                    }
                    oneM.put("Data_1", jdbcTemplate.queryForList(sb.toString()));
                }
                wsReturnModel.setData(returnData);
            } else {
                //检查
                StringBuffer sb = new StringBuffer("select * from HDSD01_01 where 1=1 ");
                StringBuffer sb = new StringBuffer("select * from REPORT where 1=1 ");
                if (!StringUtils.isEmpty(reportId)) {
                    sb.append(" and HDSD00_05_026 < '" + reportId + "'");
                    sb.append(" and REPORT_ID = '" + reportId + "'");
                }
                List<Map<String, Object>> returnData = jdbcTemplate.queryForList(sb.toString());
                //检查细表
                for (Map<String, Object> oneM : returnData) {
                    sb = new StringBuffer("select * from HDSD01_02 where 1=1 ");
                    if (!StringUtils.isEmpty(oneM.get("JDSD01_01_01"))) {
                        sb.append(" and JDSK01_02_01 = '" + reportId + "'");
                    sb = new StringBuffer("select * from REPORT_JC where 1=1 ");
                    if (!StringUtils.isEmpty(oneM.get("REPORT_ID"))) {
                        sb.append(" and REPORT_ID = '" + reportId + "'");
                    }
                    oneM.put("Data_1", jdbcTemplate.queryForList(sb.toString()));
                }
                wsReturnModel.setData(returnData);
            }
            System.out.println(wsReturnModel);
            return WSReturnModel.toXml(wsReturnModel);
        } catch (Exception e) {
            wsReturnModel.setRespCode("-30000");
@ -229,12 +230,13 @@ public class ExcuteService {
            initJDBC();
            //人口学信息
            StringBuffer sb = new StringBuffer("select * from PATIENT_INFO a where 1=1 ");
            if (!StringUtil.isEmpty(PatientId)) {
                sb.append(" and a.Patient_Id = '" + PatientId + "'");
            if (!StringUtil.isEmpty(CardNo)) {
                sb.append(" and a.CARD_NO = '" + CardNo + "'");
            }
            if (!StringUtil.isEmpty(CardType)) {
                sb.append(" and a.CARD_TYPE = '" + CardType + "'");
            }
            List<Map<String, Object>> RKXMap = jdbcTemplate.queryForList(sb.toString());
            System.out.println("pkxMap="+RKXMap);
            wsReturnModel.setData(RKXMap);
            return WSReturnModel.toXml(wsReturnModel);
        } catch (Exception e) {

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerFlowManager.java

@ -131,7 +131,7 @@ public class CrawlerFlowManager {
                    if (!StringUtil.isEmpty(data.get("data")) && !StringUtil.isEmpty(data.get("data").get(0))) {
                        if (!StringUtil.isEmpty(data.get("data").get(0).get(SysConfig.getInstance().getRegisterIdCardNo()))) {
                            //register
                            dispatch.register(patient, data);
                            dispatch.register(patient, data.toString());
                        }
                    }
                }

+ 8 - 7
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerManager.java

@ -3,12 +3,9 @@ package com.yihu.ehr.crawler.service;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.crawler.model.adapter.AdapterDataSet;
import com.yihu.ehr.crawler.model.adapter.AdapterDictEntry;
import com.yihu.ehr.crawler.model.config.SysConfig;
import com.yihu.ehr.crawler.model.patient.Patient;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.model.DictItem;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.springutil.SpringBeanUtil;
@ -18,6 +15,7 @@ import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.service.adapter.AdapterDatasetService;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeVersionService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import net.sf.json.JSONObject;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -71,7 +69,6 @@ public class CrawlerManager {
            }
        }
        message = "本次采集病人共" + totalCount + "条,成功采集信息"+ count + "条";
        logger.info(message);
        return message;
    }
@ -116,7 +113,7 @@ public class CrawlerManager {
                    if (!StringUtil.isEmpty(jsonObject.get("data")) && !StringUtil.isEmpty(jsonObject.get("data").get(0))) {
                        if (!StringUtil.isEmpty(jsonObject.get("data").get(0).get(SysConfig.getInstance().getRegisterIdCardNo()))) {
                            logger.info("注册病人");
                            dispatch.register(patient, jsonObject);
                            dispatch.register(patient, jsonObject.toString());
                        }
                    }
                }
@ -143,13 +140,13 @@ public class CrawlerManager {
    }
    public Boolean getDataForPrepare() {
        logger.info("适配基本相关数据准备");
        if (adapterFlg) {
            return true;
        }
        logger.info("适配基本相关数据准备");
        try {
            adapterDataSetMap = new HashMap<>();
            AdapterVersion adapterVersion = null;
            AdapterVersion adapterVersion;
            AdapterDatasetService adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID);
            List<AdapterDatasetModel> adapterDataSetModelList = new ArrayList<>();
            if (!CollectionUtil.isEmpty(datasetList)) {
@ -180,6 +177,10 @@ public class CrawlerManager {
                    adapterFlg = true;
                    return true;
                }
                Map<String, String> condition = new HashMap<>();
                condition.put("column", "adapter_dataset_code");
                JSONObject jsonpObject = JSONObject.fromObject(condition);
                adapterDataSetModelList = adapterDatasetService.getAdapterDatasetNotNullList(adapterVersion, jsonpObject.toString());
            }
            /**

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/DataCollectDispatcher.java

@ -310,7 +310,7 @@ public class DataCollectDispatcher {
        return result;
    }
    public Boolean register(Patient patient, JsonNode data) {
    public Boolean register(Patient patient, String data) {
        return EsbHttp.register(patient, data, token);
    }

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/EsbHttp.java

@ -260,7 +260,7 @@ public class EsbHttp {
    /**
     * 注册病人
     */
    public static Boolean register(Patient patient, JsonNode data, String token) {
    public static Boolean register(Patient patient, String data, String token) {
        try {
            JSONObject json = new JSONObject(data);
            String colName = SysConfig.registerIdCardNo;

+ 5 - 7
Hos-resource/src/main/java/com/yihu/ehr/job/service/ArchiveUploadJob.java

@ -11,9 +11,7 @@ import com.yihu.ehr.framework.util.springutil.SpringBeanUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
/**
 * Created by hzp on 2016/5/11.
@ -24,8 +22,8 @@ public class ArchiveUploadJob implements IBaseJob {
    @Override
    public void execute(String jobId) throws Exception{
        logger.info("档案采集上传开始:"+DateConvert.toString(new Date()) + ":"+jobId);
        String random = UUID.randomUUID().toString();
        logger.info("档案采集上传开始,流水号:" + random + ",jobId:"+jobId);
        IDatacollectManager datacollect = SpringBeanUtil.getService(Services.Datacollect);
        RsJobConfig job = datacollect.getJobById(jobId);
        Map<String, Object> condition = new HashMap<>();
@ -46,13 +44,13 @@ public class ArchiveUploadJob implements IBaseJob {
        DataGridResult result = datacollect.getJobDatasetByJobId(jobId);
        CrawlerManager crawlerManager = new CrawlerManager(result.getDetailModelList(), job.getSchemeVersion());
        crawlerManager.dataCrawler(condition);
        String message = crawlerManager.dataCrawler(condition);
        if (!job.getJobType().equals("0")) {
            job.setRepeatStartTime(end);
            job.setRepeatEndTime(DateUtil.formatYMDToYMDHMS(DateUtil.getSysDateTime().toString()));
        }
        datacollect.updateJob(job);
        logger.info("档案采集上传结束:"+DateConvert.toString(new Date()) + ":"+jobId);
        logger.info("档案采集上传结束,流水号:" + random + ",jobId:" + jobId + ",message:" + message);
        return;
    }
}

+ 149 - 38
Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterDatasetService.java

@ -15,6 +15,7 @@ import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.sql.BeanTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.model.adapter.AdapterDictModel;
import com.yihu.ehr.standard.model.adapter.AdapterMetadataModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
@ -26,6 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Transactional
@Service("AdapterDatasetService")
public class AdapterDatasetService extends SQLGeneralDAO {
@ -78,7 +80,7 @@ public class AdapterDatasetService extends SQLGeneralDAO {
    public Result modify(String adapterVersion, String dataset) {
        try {
            AdapterVersion version = new AdapterVersion(adapterVersion);
            ObjectMapper objectMapper =  new ObjectMapper();
            ObjectMapper objectMapper = new ObjectMapper();
            AdapterDatasetModel adapterDatasetModel = objectMapper.readValue(dataset, AdapterDatasetModel.class);
            JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(adapterDatasetModel));
            SqlCreator sqlCreator = new SqlCreator(AdapterDatasetModel.class);
@ -123,7 +125,7 @@ public class AdapterDatasetService extends SQLGeneralDAO {
        AdapterVersion adapterVersion = new AdapterVersion(version);
        String tableName = adapterVersion.getDataSetTableName();
        SqlCreator sqlCreator = new SqlCreator(tClass);
        ObjectMapper objectMapper =  new ObjectMapper();
        ObjectMapper objectMapper = new ObjectMapper();
        if (!StringUtil.isEmpty(condition)) {
            JsonNode jsonNode = objectMapper.readTree(condition);
            String name = jsonNode.get("name").asText();
@ -149,11 +151,11 @@ public class AdapterDatasetService extends SQLGeneralDAO {
        return query.list();
    }
    public Integer getDatasetInt(Class tClass,  AdapterVersion adapterVersion, String condition) {
    public Integer getDatasetInt(Class tClass, AdapterVersion adapterVersion, String condition) {
        try {
            String tableName = adapterVersion.getDataSetTableName();
            SqlCreator sqlCreator = new SqlCreator(tClass);
            ObjectMapper objectMapper =  new ObjectMapper();
            ObjectMapper objectMapper = new ObjectMapper();
            if (!StringUtil.isEmpty(condition)) {
                JsonNode jsonNode = objectMapper.readTree(condition);
                String name = jsonNode.get("name").asText();
@ -218,11 +220,11 @@ public class AdapterDatasetService extends SQLGeneralDAO {
        boolean check;     //是否勾选
        boolean std = false;      //标准是否添加根节点
        long childCheckCount;
        long datasetCount=0;
        long datasetCount = 0;
        //获取所有标准数据集
        StandardVersion sVersion = new StandardVersion(stdVersion);
        List<StdDataSetModel> dataSetList = getList(StdDataSetModel.class, sVersion.getDataSetTableName(),  "", "", null, null);
        List<StdDataSetModel> dataSetList = getList(StdDataSetModel.class, sVersion.getDataSetTableName(), "", "", null, null);
        String idListStr = Constants.EMPTY;
        for (StdDataSetModel dataSet : dataSetList) {
            idListStr += dataSet.getId() + Constants.COMMA;
@ -288,9 +290,9 @@ public class AdapterDatasetService extends SQLGeneralDAO {
            stdRoot.setId("S0");
            stdRoot.setPid("-1");
            stdRoot.setText("数据集");
            if(datasetCount==dataSetList.size()){
            if (datasetCount == dataSetList.size()) {
                stdRoot.setIschecked(true);
            }else {
            } else {
                stdRoot.setIschecked(false);
            }
@ -315,7 +317,7 @@ public class AdapterDatasetService extends SQLGeneralDAO {
        }
    }
    public Result updateCustomize(Integer schemeId, String adapterVersion, String stdVersion, String datasetIdStr,String metaDataIdStr) {
    public Result updateCustomize(Integer schemeId, String adapterVersion, String stdVersion, String datasetIdStr, String metaDataIdStr) {
        AdapterVersion aVersion = new AdapterVersion(adapterVersion);
        StandardVersion sVersion = new StandardVersion(stdVersion);
        try {
@ -325,40 +327,39 @@ public class AdapterDatasetService extends SQLGeneralDAO {
            List<Integer> newMetadataIdList = new ArrayList<>();
            for (String datasetId : datasetIdList) {
                if(!StringUtil.isStrEmpty(datasetId)){
                if (!StringUtil.isStrEmpty(datasetId)) {
                    Integer newDatasetId = Integer.parseInt(datasetId);
                    newDatasetIdList.add(newDatasetId);
                }
            }
            for (String metadataId : metadataIdList) {
                if(!StringUtil.isStrEmpty(metadataId)){
                if (!StringUtil.isStrEmpty(metadataId)) {
                    Integer newMetadataId = Integer.parseInt(metadataId);
                    newMetadataIdList.add(newMetadataId);
                }
            }
            if (newDatasetIdList.size() == 0) {
                return Result.error("定制内容为空");
            }
            updateDatasetCustomizeData(schemeId, aVersion, sVersion, newDatasetIdList, newMetadataIdList);
            return Result.success("定制数据集成功");
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("定制数据集失败");
        }
    }
    public void updateDatasetCustomizeData(Integer schemeId, AdapterVersion aVersion, StandardVersion sVersion, List<Integer> newDatasetIdList, List<Integer> newMetadataIdList) {
        List<String> insertSqlList = new ArrayList<>();
        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getDataSetTableName());
        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getMetaDataTableName());
        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getDictTableName());
        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getDictEntryTableName());
    public void updateDatasetCustomizeData(Integer schemeId, AdapterVersion aVersion, StandardVersion sVersion, List<Integer> newDatasetIdList, List<Integer> newMetadataIdList) throws Exception {
        List<StdMetaDataModel> metadataList = new ArrayList<StdMetaDataModel>();
        if(newMetadataIdList.size()>0){
        if (newMetadataIdList.size() > 0) {
            SqlCreator sqlCreator = new SqlCreator(StdMetaDataModel.class);
            sqlCreator.inCondition("id", newMetadataIdList);
            String sql = sqlCreator.selectData(sVersion.getMetaDataTableName());
            Query query = getQuery(sqlCreator, sql);
             metadataList = query.list();
            metadataList = query.list();
        }
        List<Integer> newDictdList = new ArrayList<>();
@ -368,44 +369,148 @@ public class AdapterDatasetService extends SQLGeneralDAO {
            }
        }
        if(newDatasetIdList.size()>0){
        List<String> insertSqlList = new ArrayList<>();
        // 找出新增 删除  modify by cyj
        List<AdapterDatasetModel> datasetModels = selectData(aVersion.getDataSetTableName(), AdapterDatasetModel.class);
        List<AdapterMetadataModel> metadataModels = selectData(aVersion.getMetaDataTableName(), AdapterMetadataModel.class);
        List<AdapterDictModel> dictModels = selectData(aVersion.getDictTableName(), AdapterDictModel.class);
//        List<AdapterDictEntryModel> dictEntryModels = selectData(aVersion.getDictEntryTableName(), AdapterDictEntryModel.class);
        List<Integer> oldDatasetIdList = new ArrayList<>();
        for (AdapterDatasetModel datasetModel : datasetModels) {
            oldDatasetIdList.add(datasetModel.getId());
        }
        List<Integer> oldMetadataIdList = new ArrayList<>();
        for (AdapterMetadataModel metadataModel : metadataModels) {
            oldMetadataIdList.add(metadataModel.getId());
        }
        List<Integer> oldDictIdList = new ArrayList<>();
        for (AdapterDictModel dictModel : dictModels) {
            oldDictIdList.add(dictModel.getId());
        }
//        List<Integer> oldDictEntryIdList = new ArrayList<>();
//        for (AdapterDictEntryModel entryModel : dictEntryModels) {
//            oldDictEntryIdList.add(entryModel.getStdDictId());
//        }
        Map<String, List<Integer>> datasetMap = getDiffId(newDatasetIdList, oldDatasetIdList);
        Map<String, List<Integer>> metaMap = getDiffId(newMetadataIdList, oldMetadataIdList);
        Map<String, List<Integer>> dicMap = getDiffId(newDictdList, oldDictIdList);
//        Map<String,List<Integer>> dicEntryMap = getDiffId(newDictdList,oldDictEntryIdList);
//        add del
        List<Integer> delDatasetList = datasetMap.get("del");
        if (delDatasetList.size() > 0) {
            insertSqlList.add(delData(aVersion.getDataSetTableName(), "id", delDatasetList));
        }
        List<Integer> delMetaList = metaMap.get("del");
        if (delMetaList.size() > 0) {
            insertSqlList.add(delData(aVersion.getMetaDataTableName(), "id", delMetaList));
        }
        List<Integer> delDicList = dicMap.get("del");
        if (delDicList.size() > 0) {
            insertSqlList.add(delData(aVersion.getDictTableName(), "id", delDicList));
            insertSqlList.add(delData(aVersion.getDictEntryTableName(), "std_dict_id", delDicList));
        }
/*        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getDataSetTableName());
        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getMetaDataTableName());
        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getDictTableName());
        insertSqlList.add(Constants.DELETE + Constants.FROM + aVersion.getDictEntryTableName());*/
        List<Integer> addDataSetList = datasetMap.get("add");
        if (addDataSetList.size() > 0) {
            insertSqlList.add(insertData(aVersion.getDataSetTableName(), sVersion.getDataSetTableName(),
                    new String[]{"id,std_dataset_id,std_dataset_code,std_dataset_name"},
                    new String[]{"id,id,code,name"},
                    schemeId,
                    "id",
                    newDatasetIdList));
                    addDataSetList));
        }
        if(newMetadataIdList.size()>0){
        List<Integer> addMetaList = metaMap.get("add");
        if (addMetaList.size() > 0) {
            insertSqlList.add(insertData(aVersion.getMetaDataTableName(), sVersion.getMetaDataTableName(),
                    new String[]{"id,std_metadata_id,std_metadata_code,std_metadata_name,std_dataset_id,std_dict_id"},
                    new String[]{"id,id,code,name,dataset_id,dict_id"},
                    schemeId,
                    "id",
                    newMetadataIdList));
                    addMetaList));
        }
        if(newDictdList.size()>0){
        List<Integer> addDicList = dicMap.get("add");
        if (addDicList.size() > 0) {
            insertSqlList.add(insertData(aVersion.getDictTableName(), sVersion.getDictTableName(),
                    new String[] {"id,std_dict_id,std_dict_code,std_dict_name"},
                    new String[] {"id,id,code,name"},
                    new String[]{"id,std_dict_id,std_dict_code,std_dict_name"},
                    new String[]{"id,id,code,name"},
                    schemeId,
                    "id",
                    newDictdList));
                    addDicList));
            insertSqlList.add(insertData(aVersion.getDictEntryTableName(), sVersion.getDictEntryTableName(),
                    new String[] {"id,std_entry_id,std_entry_code,std_entry_value,std_dict_id"},
                    new String[] {"id,id,code,value,dict_id"},
                    new String[]{"id,std_entry_id,std_entry_code,std_entry_value,std_dict_id"},
                    new String[]{"id,id,code,value,dict_id"},
                    schemeId,
                    "dict_id",
                    newDictdList));
                    addDicList));
        }
        if(insertSqlList.size()>0){
        if (insertSqlList.size() > 0) {
            insertBatch(insertSqlList);
        }
    }
    private String delData(String adapterTableName, String item, List<Integer> idList) {
        StringBuffer sql = new StringBuffer();
        String idStr = Constants.EMPTY;
        for (Integer id : idList) {
            idStr += id + Constants.COMMA;
        }
        if (!StringUtil.isEmpty(idStr)) {
            idStr = Constants.LEFT_BRACKET + idStr.substring(0, idStr.length() - 1) + Constants.RIGHT_BRACKET;
        }
        sql.append(Constants.DELETE + Constants.FROM).append(adapterTableName).append(Constants.WHERE).append(item).append(Constants.IN).append(idStr);
        return sql.toString();
    }
    /**
     * 将第一个数组放入map(id,1) 然后循环第二个数组,如果map中找到对应键值就+1  不存在设置 1
     *
     * @param firtList   new
     * @param secondList old
     */
    private Map<String, List<Integer>> getDiffId(List<Integer> firtList, List<Integer> secondList) {
        Map<Integer, Integer> map = new HashMap<>();
        for (Integer id : firtList) {
            map.put(id, 1);
        }
        for (Integer id1 : secondList) {
            Integer flag = map.get(id1);
            if (flag != null) {
                map.put(id1, ++flag);
            } else {
                map.put(id1, 1);
            }
        }
        List<Integer> diffLs = new ArrayList<>();
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            if (entry.getValue() == 1) {
                diffLs.add(entry.getKey());
            }
        }
        List<Integer> delIDLs = new ArrayList<>();
        List<Integer> addIDLs = new ArrayList<>();
        for (Integer diffL : diffLs) {
            if (firtList.contains(diffL)) {
                addIDLs.add(diffL);
            } else if (secondList.contains(diffL)) {
                delIDLs.add(diffL);
            }
        }
        Map<String, List<Integer>> listMap = new HashMap<>();
        listMap.put("del", delIDLs);
        listMap.put("add", addIDLs);
        return listMap;
    }
    private String insertData(String adapterTableName, String stdTableName, String[] item1, String[] item2, Integer schemeId, String item, List<Integer> idList) {
        StringBuffer sql = new StringBuffer();
        String idStr = Constants.EMPTY;
@ -413,14 +518,14 @@ public class AdapterDatasetService extends SQLGeneralDAO {
            idStr += id + Constants.COMMA;
        }
        if (!StringUtil.isEmpty(idStr)) {
            idStr = Constants.LEFT_BRACKET + idStr.substring(0, idStr.length() - 1) +  Constants.RIGHT_BRACKET;
            idStr = Constants.LEFT_BRACKET + idStr.substring(0, idStr.length() - 1) + Constants.RIGHT_BRACKET;
        }
        sql.append(Constants.INSERT_INTO + adapterTableName + Constants.LEFT_BRACKET);
        for (String it : item1) {
            sql.append(it + Constants.COMMA);
        }
        sql.append("scheme_id" + Constants.RIGHT_BRACKET + Constants.LEFT_BRACKET + Constants.SELECT );
        sql.append("scheme_id" + Constants.RIGHT_BRACKET + Constants.LEFT_BRACKET + Constants.SELECT);
        for (String it : item2) {
            sql.append(it + Constants.COMMA);
        }
@ -428,6 +533,12 @@ public class AdapterDatasetService extends SQLGeneralDAO {
        return sql.toString();
    }
    public List selectData(String adapterTableName, Class clazz) throws Exception {
        StringBuffer sql = new StringBuffer();
        sql.append("SELECT * FROM ").append(adapterTableName);
        return queryListBySql(sql.toString(), clazz);
    }
    public List getAdapterDatasetNotNullList(AdapterVersion adapterVersion, String condition) {
        try {
            StringBuffer sql = new StringBuffer();
@ -463,16 +574,16 @@ public class AdapterDatasetService extends SQLGeneralDAO {
        }
    }
    public AdapterDatasetModel getAdapterDatasetByCode(String version,String datasetCode) {
    public AdapterDatasetModel getAdapterDatasetByCode(String version, String datasetCode) {
        try {
            if (StringUtil.isEmpty(datasetCode)) {
                return null;
            }
            SqlCreator sqlCreator = new SqlCreator(AdapterDatasetModel.class);
            sqlCreator.equalCondition("stdDatasetCode", datasetCode);
            String sql = sqlCreator.selectData("adapter_dataset_"+version);
            String sql = sqlCreator.selectData("adapter_dataset_" + version);
            Query query = getQuery(sqlCreator, sql);
            return (AdapterDatasetModel)query.uniqueResult();
            return (AdapterDatasetModel) query.uniqueResult();
        } catch (Exception e) {
            e.printStackTrace();
            return null;