Browse Source

冲突解决

demon 9 years ago
parent
commit
5bdf4e6313
60 changed files with 1292 additions and 511 deletions
  1. 31 9
      Hos-resource/src/main/java/com/yihu/ehr/crawler/controller/CrawlerController.java
  2. 11 0
      Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerDatasetDao.java
  3. 10 0
      Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerFlowDao.java
  4. 108 53
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerService.java
  5. 9 2
      Hos-resource/src/main/java/com/yihu/ehr/datacollect/dao/DatacollectDao.java
  6. 29 18
      Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectService.java
  7. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterDatasetService.java
  8. 8 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterMetadataService.java
  9. 7 5
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeService.java
  10. 47 0
      Hos-resource/src/main/java/com/yihu/ehr/system/controller/UserController.java
  11. 2 0
      Hos-resource/src/main/java/com/yihu/ehr/system/dao/BaseDictDao.java
  12. 9 1
      Hos-resource/src/main/java/com/yihu/ehr/system/dao/DictDao.java
  13. 16 0
      Hos-resource/src/main/java/com/yihu/ehr/system/dao/UserDao.java
  14. 2 0
      Hos-resource/src/main/java/com/yihu/ehr/system/dao/intf/IDictDao.java
  15. 6 0
      Hos-resource/src/main/java/com/yihu/ehr/system/dao/intf/IUserDao.java
  16. 3 1
      Hos-resource/src/main/java/com/yihu/ehr/system/model/SystemDictList.java
  17. 36 0
      Hos-resource/src/main/java/com/yihu/ehr/system/model/SystemUserRole.java
  18. 2 0
      Hos-resource/src/main/java/com/yihu/ehr/system/service/DictManager.java
  19. 1 0
      Hos-resource/src/main/java/com/yihu/ehr/system/service/MenuManager.java
  20. 31 0
      Hos-resource/src/main/java/com/yihu/ehr/system/service/UserManger.java
  21. 6 0
      Hos-resource/src/main/java/com/yihu/ehr/system/service/intf/IUserManager.java
  22. 5 0
      Hos-resource/src/main/resources/hbm/resource/SystemDictList.hbm.xml
  23. 24 0
      Hos-resource/src/main/resources/hbm/resource/SystemUserRole.hbm.xml
  24. 3 1
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/index.jsp
  25. 1 1
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp
  26. 0 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/dataMapping.jsp
  27. 64 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/dataMappingJs.jsp
  28. 3 10
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/datasetDetail.jsp
  29. 128 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/datasetDetailJs.jsp
  30. 1 1
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/jobLayout.jsp
  31. 398 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/jobLayoutJs.jsp
  32. 0 24
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/dataMappingJs.jsp
  33. 0 72
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/datasetDetailJs.jsp
  34. 0 1
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp
  35. 10 5
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJobJs.jsp
  36. 0 235
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/jobLayoutJs.jsp
  37. 5 5
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/configurationJs.jsp
  38. 2 2
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/indexJs.jsp
  39. 2 2
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/appIndexJs.jsp
  40. 4 5
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/configurationJs.jsp
  41. 5 3
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/indexJs.jsp
  42. 1 1
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/standardDetail.jsp
  43. 2 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/standardDetailJs.jsp
  44. 2 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/versionDetailJs.jsp
  45. 2 2
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/datasource/editorSourceJs.jsp
  46. 3 3
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictItemDialog.jsp
  47. 6 2
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictItemDialogJs.jsp
  48. 5 4
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictJs.jsp
  49. 2 2
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menu/menuJs.jsp
  50. 2 2
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/editorUser.jsp
  51. 0 21
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/editorUserCss.jsp
  52. 3 1
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/editorUserJs.jsp
  53. 39 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/roleDistribute.jsp
  54. 125 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/roleDistributeJs.jsp
  55. 16 1
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/userJs.jsp
  56. 9 7
      Hos-resource/src/main/webapp/develop/lib/jobMapping/tableViewer.js
  57. 13 1
      Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerEx.js
  58. 28 4
      Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerOverwrite.js
  59. 1 1
      Hos-resource/src/main/webapp/develop/lib/ligerui/ligerui.all.js
  60. 3 1
      Hos-resource/src/main/webapp/develop/lib/ligerui/skins/custom/css/all.css

+ 31 - 9
Hos-resource/src/main/java/com/yihu/ehr/crawler/controller/CrawlerController.java

@ -12,9 +12,14 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.io.IOException;
/**
@ -46,9 +51,10 @@ public class CrawlerController {
   任务编排数据映射
    */
    @RequestMapping("jobDataMapping")
    public String jobDataMapping(Model model, String jobId) {
    public String jobDataMapping(Model model, Integer versionId,String datasetIdStr) {
        try {
            model.addAttribute("versionId",versionId);
            model.addAttribute("datasetIdStr",datasetIdStr);
            model.addAttribute("contentPage", "/crawler/dataMapping");
            return "pageView";
        } catch (Exception ex) {
@ -58,12 +64,12 @@ public class CrawlerController {
    }
    @RequestMapping("datasetDetail")
    public String datasetDetail(Model model,Integer schemeId,String schemeNm,String version,String checkedRowsIndex) {
    public String datasetDetail(Model model,Integer schemeId,String schemeNm,String cacheDatasetId,String versionId) {
        model.addAttribute("contentPage", "/crawler/datasetDetail");
        model.addAttribute("schemeId",schemeId);
        model.addAttribute("version",version);
        model.addAttribute("versionId",versionId);
        model.addAttribute("schemeNm",schemeNm);
        model.addAttribute("checkedRowsIndex",checkedRowsIndex);
        model.addAttribute("cacheDatasetId",cacheDatasetId);
        return "pageView";
    }
@ -151,16 +157,32 @@ public class CrawlerController {
    @ResponseBody
    public String  getRelations(
            @RequestParam(value = "versionId", required = true) Integer versionId,
            @RequestParam(value = "datasetIdStr", required = false) String datasetIdStr
    ) {
            @RequestParam(value = "datasetIdStr", required = false) String datasetIdStr,
            @RequestParam(value = "lines", required = false) String lines) {
        try {
            return crawlerService.getRelations(versionId,datasetIdStr);
            return crawlerService.getRelations(versionId, datasetIdStr,lines);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    @RequestMapping("setRelationsCache")
    @ResponseBody
    public Result  setRelationsCache(
            @RequestParam(value = "versionId", required = true) Integer versionId,
            @RequestParam(value = "lines", required = false) String lines
    ) {
        try {
            crawlerService.setLinesCache(versionId,lines);
            return Result.success("缓存映射关系成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return Result.error("缓存映射关系失败");
    }
    /**
     * 删除任务编排数据

+ 11 - 0
Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerDatasetDao.java

@ -5,6 +5,7 @@ import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;
import java.math.BigInteger;
import java.util.List;
/**
@ -26,4 +27,14 @@ public class CrawlerDatasetDao extends SQLGeneralDAO {
        query.setInteger("scheme_version_id", versionId);
        query.executeUpdate();
    }
    public Integer getTotalRows() throws Exception {
        String countSql = "SELECT COUNT(*) FROM (SELECT a.scheme_id, a.scheme_version_id, GROUP_CONCAT(a.dataset_id SEPARATOR ',') AS datasetId, GROUP_CONCAT(a.dataset_name SEPARATOR ',') AS datasetName" +
                "  FROM crawler_dataset a " +
                "  GROUP BY a.scheme_id, a.scheme_version_id ) b WHERE 1= 1";
        Query query = getCurrentSession().createSQLQuery(countSql);
        List<BigInteger> list = query.list();
        int count = list.get(0).intValue();
        return count;
    }
}

+ 10 - 0
Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerFlowDao.java

@ -27,4 +27,14 @@ public class CrawlerFlowDao extends SQLGeneralDAO {
        super.execute(sql);
    }
    public List<CrawlerFlowModel> getCrawlerFlowList(Integer versionId,List<String> datasetCodes) {
        String adapterVersionHql = "FROM CrawlerFlowModel where schemeVersionId= :schemeVersionId and datasetCode in (:datasetCode) and inputDatasetCode in (:inputDatasetCode)";
        Query query = getCurrentSession().createQuery(adapterVersionHql);
        query.setParameter("schemeVersionId", versionId);
        query.setParameterList("datasetCode", datasetCodes);
        query.setParameterList("inputDatasetCode", datasetCodes);
        List<CrawlerFlowModel> modelList = query.list();
        return modelList;
    }
}

+ 108 - 53
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerService.java

@ -1,5 +1,7 @@
package com.yihu.ehr.crawler.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.ehr.crawler.dao.CrawlerDatasetDao;
import com.yihu.ehr.crawler.dao.CrawlerFlowDao;
import com.yihu.ehr.crawler.dao.CrawlerFlowHeadDao;
@ -20,10 +22,12 @@ import com.yihu.ehr.standard.service.adapter.AdapterSchemeVersionService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
@Transactional
@ -44,7 +48,11 @@ public class CrawlerService {
    private CrawlerFlowHeadDao crawlerFlowHeadDao;
    @Resource(name = AdapterMetadataService.BEAN_ID)
    private AdapterMetadataService adapterMetadataService;
    private static Map<Integer,List<FlowLines>> lineCache= new HashMap<>();
    public static Map<Integer, List<FlowLines>> getLineCache() {
        return lineCache;
    }
    /**
     * 保存编排映射关系
     *
@ -57,10 +65,10 @@ public class CrawlerService {
        JSONObject root = JSONObject.fromObject(json);
        JSONArray jsonList = root.getJSONArray("lines");
        JSONArray entrances = root.getJSONArray("entrances");
        AdapterSchemeVersionModel versionModel = adapterSchemeVersionService.getByVersion(version);
        AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Integer.valueOf(version));
        if (jsonList != null && jsonList.size() > 0) {
            // 删除旧关联关系
            crawlerDatasetDao.deleteCrawlerDatasetList(versionModel.getId());
            crawlerFlowDao.deleteCrawlerFlowList(versionModel.getId());
            for (Object item : jsonList) {
                JSONObject obj = JSONObject.fromObject(item);
                String from = obj.getString("from");
@ -106,29 +114,38 @@ public class CrawlerService {
        AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
        //获取适配数据集总和
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("name", datasetName);
        List<AdapterDatasetModel> adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), net.sf.json.JSONObject.fromObject(map).toString(), null, null, null);
        String condition=null;
        if (datasetName!=null && !"".equals(datasetName)){
            map.put("name", datasetName);
            condition=net.sf.json.JSONObject.fromObject(map).toString();
        }
        List<AdapterDatasetModel> adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), condition, null, null, null);
        //获取编排数据集
        List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
        DetailModelResult re = new DetailModelResult();
        List<CrawlerDatasetResultDetailModel> list = new ArrayList<>();
        for (AdapterDatasetModel datasetModel : adapterDatasetModelList) {
            CrawlerDatasetResultDetailModel obj = new CrawlerDatasetResultDetailModel();
            obj.setSchemeVersionId(schemeVersionId);
            obj.setDatasetId(datasetModel.getStdDatasetId());
            obj.setDatasetCode(datasetModel.getStdDatasetCode());
            obj.setDatasetName(datasetModel.getStdDatasetName());
            obj.setSchemeId(datasetModel.getSchemeId());
            if (crawlerDataset != null && crawlerDataset.size() > 0) {
                for (CrawlerDataSetModel cDataSet : crawlerDataset) {
                    if (cDataSet.getDatasetId().equals(datasetModel.getAdapterDatasetId())) {
                        obj.setSchemeVersionId(cDataSet.getSchemeVersionId());
                        obj.setChecked("1");
                        break;
            if (!StringUtil.isStrEmpty(datasetModel.getAdapterDatasetCode())){
                List<AdapterMetadataModel> metadatas = adapterMetadataService.getAdapterMetadataByDataset(versionModel.getVersion(), datasetModel.getId());
            if (metadatas != null && metadatas.size() > 0) {
                CrawlerDatasetResultDetailModel obj = new CrawlerDatasetResultDetailModel();
                obj.setSchemeVersionId(schemeVersionId);
                obj.setDatasetId(datasetModel.getId());
                obj.setDatasetCode(datasetModel.getStdDatasetCode());
                obj.setDatasetName(datasetModel.getStdDatasetName());
                obj.setSchemeId(datasetModel.getSchemeId());
                if (crawlerDataset != null && crawlerDataset.size() > 0) {
                    for (CrawlerDataSetModel cDataSet : crawlerDataset) {
                        if (cDataSet.getDatasetId().equals(datasetModel.getId())) {
                            obj.setSchemeVersionId(cDataSet.getSchemeVersionId());
                            obj.setChecked("1");
                            break;
                        }
                    }
                }
                list.add(obj);
            }
            list.add(obj);
        }
        }
        re.setDetailModelList(list);
@ -149,32 +166,46 @@ public class CrawlerService {
        for (Object item : jsonList) {
            JSONObject obj = JSONObject.fromObject(item);
            String schemeId = obj.getString("schemeId");
            String version = obj.getString("version");
            AdapterSchemeVersionModel versionModel = adapterSchemeVersionService.getByVersion(version);
            String versionId = obj.getString("versionId");
            AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Integer.valueOf(versionId));
            AdapterVersion adapterVersion = new AdapterVersion(versionModel.getVersion());
            //删除已存在的数据集
            crawlerDatasetDao.deleteCrawlerDatasetList(versionModel.getId());
            JSONArray dataSets = obj.getJSONArray("dataSets");
            //重新存入数据集
            for (Object o : dataSets) {
                JSONObject dataSet = JSONObject.fromObject(o);
                String datasetId = dataSet.getString("datasetId");
                String datasetCode = dataSet.getString("datasetCode");
                String datasetName = dataSet.getString("datasetName");
                CrawlerDataSetModel dataSetModel = new CrawlerDataSetModel();
                dataSetModel.setSchemeVersionId(versionModel.getId());
                dataSetModel.setSchemeId(Integer.valueOf(schemeId));
                dataSetModel.setDatasetId(Integer.valueOf(datasetId));
                dataSetModel.setDatasetCode(datasetCode);
                dataSetModel.setDatasetName(datasetName);
                crawlerDatasetDao.saveEntity(dataSetModel);
            List<AdapterDatasetModel> adapterDatasetModelList = new ArrayList<>();
            //根据id字符串获取编排数据集
            if (obj.containsKey("dataSets")) {
                List<Integer> newDatasetIdList = new ArrayList<>();
                String dataSetStr = obj.getString("dataSets");
                if (StringUtils.isNotBlank(dataSetStr)) {
                    String[] IdList =  dataSetStr.split(",");
                    for (String aIdList : IdList) {
                        if (!Objects.equals(aIdList, "")) {
                            Integer DaSetId = Integer.valueOf(aIdList);
                            newDatasetIdList.add(DaSetId);
                        }
                    }
                }
                adapterDatasetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, newDatasetIdList);
                for (AdapterDatasetModel model : adapterDatasetModelList) {
                    CrawlerDataSetModel dataSetModel = new CrawlerDataSetModel();
                    dataSetModel.setSchemeId(Integer.valueOf(schemeId));
                    dataSetModel.setSchemeVersionId(versionModel.getId());
                    dataSetModel.setDatasetId(model.getId());
                    dataSetModel.setDatasetCode(model.getStdDatasetCode());
                    dataSetModel.setDatasetName(model.getStdDatasetName());
                    crawlerDatasetDao.saveEntity(dataSetModel);
                }
            }
            //如果存在编排映射关系,进行保存操作
            //如果保存传入编排映射关系,进行保存操作
            if (obj.containsKey("relation") && !Objects.equals(obj.getString("relation"), "")) {
                 saveDataSetRelation(version,json);
                saveDataSetRelation(versionId,obj.getString("relation"));
            }
        }
    }
    public List<FlowEntrance> getFlowEntrances(Integer schemeVersionId) {
        List<FlowEntrance> entrances = new ArrayList<>();
        List<CrawlerFlowHeadModel> modelList = crawlerFlowHeadDao.getCrawlerFlowHeadList(schemeVersionId);
@ -202,13 +233,14 @@ public class CrawlerService {
    }
    /**
     * 删除编排数据
     * @param version
     */
    @Transactional
    public String  deleteJobData(String version) {
        AdapterSchemeVersionModel versionModel =  adapterSchemeVersionService.getByVersion(version);
        AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(Integer.valueOf(version));
        if (versionModel == null || versionModel.getId() == null) {
            return "删除失败";
        }
@ -234,9 +266,9 @@ public class CrawlerService {
    public DetailModelResult getDataSetResult(Integer limit, Integer offset){
        try {
            StringBuffer stringBuffer = new StringBuffer();
            String sql = "SELECT a.scheme_id, a.scheme_version_id, GROUP_CONCAT(a.dataset_id SEPARATOR ';') AS datasetId, GROUP_CONCAT(a.dataset_name SEPARATOR ';') AS datasetName" +
                    " FROM ( SELECT scheme_id, scheme_version_id, CONCAT(dataset_id) AS dataset_id, CONCAT( dataset_code, ',', dataset_name ) AS dataset_name FROM crawler_dataset ) a" +
                    " GROUP BY a.scheme_id, a.scheme_version_id";
            String sql = "SELECT 1 as status, a.scheme_id, a.scheme_version_id, GROUP_CONCAT(a.dataset_id SEPARATOR ',') AS datasetId, GROUP_CONCAT(a.dataset_name SEPARATOR ',') AS datasetName" +
                    " FROM crawler_dataset a " +
                    " GROUP BY a.scheme_id, a.scheme_version_id ";
            stringBuffer.append(sql);
            if (limit != null && offset != null) {
                if (limit > 0 && offset > 0) {
@ -245,9 +277,12 @@ public class CrawlerService {
            }
            stringBuffer.append(" ;");
            Integer total = crawlerDatasetDao.getTotalRows();
            List list = crawlerDatasetDao.queryListBySql(stringBuffer.toString());
            DetailModelResult detailModelResult = DetailModelResult.success("获取数据集成功");
            detailModelResult.setDetailModelList(list);
            detailModelResult.setTotalCount(total);
            return detailModelResult;
        } catch (Exception e) {
            e.printStackTrace();
@ -255,6 +290,8 @@ public class CrawlerService {
        }
    }
    /**
     * 获取编排已选择的适配数据集
     *
@ -285,20 +322,20 @@ public class CrawlerService {
        List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
        List<MappingDataset> list = new ArrayList<>();
        for (AdapterDatasetModel datasetModel : adapterDatasetModelList) {
            MappingDataset obj = new MappingDataset();
            if (crawlerDataset != null && crawlerDataset.size() > 0) {
                for (CrawlerDataSetModel cDataSet : crawlerDataset) {
                    if (cDataSet.getDatasetId().equals(datasetModel.getAdapterDatasetId())) {
//            if (crawlerDataset != null && crawlerDataset.size() > 0) {
                MappingDataset obj = new MappingDataset();
//                for (CrawlerDataSetModel cDataSet : crawlerDataset) {
                    if ( !StringUtil.isStrEmpty(datasetModel.getAdapterDatasetCode())) {
                        List<MappingMetadata> metadatas = getMappingMetaDatasByDataset(versionModel.getVersion(), datasetModel.getAdapterDatasetId());
                        obj.setId(datasetModel.getStdDatasetId());
                        obj.setCode(datasetModel.getStdDatasetCode());
                        obj.setName(datasetModel.getStdDatasetName());
                        obj.setData(metadatas);
                        break;
//                        break;
                    }
                }
            }
            list.add(obj);
//                }
                list.add(obj);
//            }
        }
        return list;
    }
@ -312,14 +349,17 @@ public class CrawlerService {
     */
    public List<MappingMetadata> getMappingMetaDatasByDataset(String adapterVersion, Integer dataSetId) {
        List<AdapterMetadataModel> adapterMetadataModels = adapterMetadataService.getAdapterMetadataByDataset(adapterVersion, dataSetId);
        AdapterDatasetModel  adapterDatasetModel= adapterMetadataService.getAdapterMetadata(adapterVersion, dataSetId);
        List<MappingMetadata> resultList = new ArrayList<>();
        if (adapterMetadataModels != null && adapterMetadataModels.size() > 0) {
            for (AdapterMetadataModel metadataModel : adapterMetadataModels) {
                MappingMetadata metadata = new MappingMetadata();
                metadata.setId(metadataModel.getAdapterMetadataId());
                metadata.setCode(metadataModel.getAdapterMetadataCode());
                metadata.setName(metadataModel.getAdapterMetadataName());
                resultList.add(metadata);
                if(!StringUtil.isStrEmpty( metadataModel.getAdapterMetadataCode())){
                    MappingMetadata metadata = new MappingMetadata();
                    metadata.setId(metadataModel.getAdapterMetadataId());
                    metadata.setCode(adapterDatasetModel.getAdapterDatasetCode()+"-"+metadataModel.getAdapterMetadataCode());
                    metadata.setName(metadataModel.getAdapterMetadataName());
                    resultList.add(metadata);
                }
            }
        }
        return resultList;
@ -332,11 +372,16 @@ public class CrawlerService {
     * @param datasetIdStr
     * @return
     */
    public String getRelations(Integer schemeVersionId, String datasetIdStr) {
    public String getRelations(Integer schemeVersionId, String datasetIdStr,String lineStr) {
        JSONObject jsonObject = new JSONObject();
        try {
            List<MappingDataset> datasets = getSchemeDatasetByChecked(schemeVersionId, datasetIdStr);
            List<FlowLines> lines = getFlowLines(schemeVersionId);
            if (StringUtil.isEmpty(lineStr)){
                lines = getFlowLines(schemeVersionId);
            }else {
                lines=lineCache.get(schemeVersionId);
            }
            jsonObject.put("tables", datasets);
            jsonObject.put("rels", lines);
        } catch (Exception e) {
@ -345,4 +390,14 @@ public class CrawlerService {
        return jsonObject.toString();
    }
    public void setLinesCache(Integer schemeVersionId,String lines) throws IOException {
        ObjectMapper objectMapper=new ObjectMapper();
        ObjectNode rootNode=objectMapper.readValue(lines,ObjectNode.class);
        String lineJson=rootNode.get("lines").toString();
        List<FlowLines> line=objectMapper.readValue(lineJson,List.class);
        lineCache.put(schemeVersionId,line);
    }
}

+ 9 - 2
Hos-resource/src/main/java/com/yihu/ehr/datacollect/dao/DatacollectDao.java

@ -144,12 +144,19 @@ public class DatacollectDao extends SQLGeneralDAO implements IDatacollectDao {
     */
    public List<DtoJobDataset> getDatacollectDataset(String jobId) throws Exception
    {
        //通过jobId获取机构版本号
        String sqlVersion ="select a.adapter_std_version\n" +
                "from rs_job_config c,(SELECT s.adapter_std_version,v.version from adapter_scheme s,adapter_scheme_version v where s.id=v.scheme_id) a\n" +
                "where a.version = c.scheme_version\n" +
                "and c.id='"+jobId+"'";
        String version = super.scalarBySql(sqlVersion,String.class);
        String sql = "select d.*,\n" +
                "t.datasource_id,t.datasource_name,t.config,t.type,t.org_code\n" +
                "from rs_job_dataset d\n" +
                "LEFT JOIN (select s.dataset_id,s.datasource_id,ss.name as datasource_name,ss.config,ss.type,ss.org_code \n" +
                "\tfrom rs_datasource_dataset s,(select ds.id,ds.name,ds.config,ds.type,o.code as org_code from system_datasource ds,system_organization o where ds.org_id=o.id) ss where s.datasource_id=ss.id) t \n" +
                "on d.job_dataset_id = t.dataset_id\n" +
                "\tfrom rs_datasource_dataset s,(select ds.id,ds.name,ds.config,ds.type,o.code as org_code from system_datasource ds,system_organization o where ds.org_id=o.id) ss where s.datasource_id=ss.id and s.Std_version='"+version+"') t \n" +
                "on d.job_dataset_id = t.dataset_id \n" +
                "where d.job_id='"+jobId+"'\n" +
                "order by d.sort";
        return super.queryListBySql(sql,DtoJobDataset.class);

+ 29 - 18
Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectService.java

@ -274,13 +274,19 @@ public class DatacollectService implements IDatacollectService {
                for(int i=0; i< colList.length();i++)
                {
                    JSONObject col = colList.getJSONObject(i);
                    strSql+= ","+col.optString("adapterMetadataCode") +" as " + col.optString("stdMetadataCode") ;
                    String adapterMetadataCode = col.optString("adapterMetadataCode");
                    if(adapterMetadataCode.length()>0)
                    {
                        strSql+= ","+adapterMetadataCode +" as " + col.optString("stdMetadataCode") ;
                    }
                }
                strSql += " from " +adapterTableName +" where 1=1 ";
                strSql += " from " +adapterTableName;
                String strWhere = " where 1=1";
                //采集范围
                if(condition!=null && condition.length()>0)
                {
                    strSql += getCondition(dbType,condition);
                    strWhere += getCondition(dbType,condition);
                }
                //增量采集
                String maxKey = "0";
@ -296,25 +302,38 @@ public class DatacollectService implements IDatacollectService {
                            keyDate = DateConvert.toDate(keyvalue);
                        }
                        //根据数据库类型获取时间sql
                        strSql += " and "+ key + ">'"+getDateSqlByDBType(dbType,keyDate)+"'";
                        strSql += " order by "+ key;
                        strWhere += " and "+ key + ">'"+getDateSqlByDBType(dbType,keyDate)+"'";
                        strWhere += " order by "+ key;
                    }
                    else if(keytype.toUpperCase().equals("VARCHAR")) //字符串类型
                    {
                        maxKey = getToNumberSqlByDBType(dbType,key);
                        if(keyvalue!=null && keyvalue.length()>0) {
                            strSql += " and "+ maxKey + ">'" + keyvalue + "'";
                            strWhere += " and "+ maxKey + ">'" + keyvalue + "'";
                        }
                        strSql += " order by "+ maxKey;
                        strWhere += " order by "+ maxKey;
                    }
                    else{
                        if(keyvalue!=null && keyvalue.length()>0) {
                            strSql += " and "+ key + ">'" + keyvalue + "'";
                            strWhere += " and "+ key + ">'" + keyvalue + "'";
                        }
                        strSql += " order by "+ key;
                        strWhere += " order by "+ key;
                    }
                }
                JSONObject obj = db.load("select count(1) as count,max(" + maxKey + ") as max_num from (" + strSql + ")");
                strSql += strWhere;
                String sqlCount = "select count(1) as count,max(" + maxKey + ") as max_num from " + adapterTableName + strWhere;
                JSONObject obj = db.load(sqlCount);
                if(obj==null)
                {
                    if(db.errorMessage.length()>0)
                    {
                        return db.errorMessage;
                    }
                    else{
                        return "查询异常:"+sqlCount;
                    }
                }
                int count = obj.getInt("COUNT");
                if(count==0) //0条记录,无需采集
                {
@ -349,14 +368,6 @@ public class DatacollectService implements IDatacollectService {
                    detail.setJobDatasetRows(rows);
                    detail.setSchemeVersion(schemeVersion);
                    //最大值
                    if(i==countPage-1)
                    {
                        Object max = db.scalar("select max("+getToNumberSqlByDBType(dbType,key)+") from (" + sql + ")");
                        if(max!=null)
                            maxKeyvalue = String.valueOf(max);
                    }
                    List<JSONObject> list = db.query(sql);
                    String message = intoMongodb(list,schemeVersion,stdTableName,colList); //错误信息

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

@ -453,7 +453,7 @@ public class AdapterDatasetService extends SQLGeneralDAO {
                return null;
            }
            SqlCreator sqlCreator = new SqlCreator(AdapterDatasetModel.class);
            sqlCreator.inCondition("adapterDatasetId", datasetIdList);
            sqlCreator.inCondition("id", datasetIdList);
            String sql = sqlCreator.selectData(adapterVersion.getDataSetTableName());
            Query query = getQuery(sqlCreator, sql);
            return query.list();

+ 8 - 1
Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterMetadataService.java

@ -385,11 +385,18 @@ public class AdapterMetadataService extends SQLGeneralDAO {
    public List getAdapterMetadataByDataset(String adapterVersion,Integer datasetId){
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("adapterDatasetId", datasetId);
        String tableName="adapter_dataset_"+adapterVersion;
        String tableName="adapter_metadata_"+adapterVersion;
        List<AdapterMetadataModel> metadataModelList = getList(AdapterMetadataModel.class,tableName,  net.sf.json.JSONObject.fromObject(map).toString(), null, null, null);
        return metadataModelList;
    }
    public AdapterDatasetModel getAdapterMetadata(String adapterVersion,Integer datasetId){
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("id", datasetId);
        String tableName="adapter_dataset_"+adapterVersion;
        AdapterDatasetModel datasetModel= (AdapterDatasetModel)get(AdapterDatasetModel.class,tableName,  datasetId);
        return datasetModel;
    }
    public AdapterMetadataModel getAdapterMetadata(String version, Integer adapterMetadataId) {
        try {
            SqlCreator sqlCreator = new SqlCreator(AdapterMetadataModel.class);

+ 7 - 5
Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeService.java

@ -290,11 +290,13 @@ public class AdapterSchemeService extends SQLGeneralDAO {
            query = getCurrentSession().createQuery(adapterVersionHql);
            query.setParameter("schemeId", schemeModel.getId());
            List<AdapterSchemeVersionModel> versionModelList = query.list();
            AdapterSchemeResultModel resultDetailModel = new AdapterSchemeResultModel();
            resultDetailModel.setSchemeId(schemeModel.getId());
            resultDetailModel.setName(schemeModel.getName());
            resultDetailModel.setVersionList(versionModelList);
            schemeList.add(resultDetailModel);
            if(versionModelList.size()>0){
                AdapterSchemeResultModel resultDetailModel = new AdapterSchemeResultModel();
                resultDetailModel.setSchemeId(schemeModel.getId());
                resultDetailModel.setName(schemeModel.getName());
                resultDetailModel.setVersionList(versionModelList);
                schemeList.add(resultDetailModel);
            }
        }
        result.setDetailModelList(schemeList);
        return result;

+ 47 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/controller/UserController.java

@ -4,6 +4,7 @@ import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.framework.util.PKUtil;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.system.model.SystemUser;
import com.yihu.ehr.system.model.SystemUserRole;
import com.yihu.ehr.system.service.intf.IUserManager;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.codec.digest.DigestUtils;
@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@ -87,6 +89,39 @@ public class UserController extends BaseController {
        }
    }
    /**
     * 用户编辑界面
     */
    @RequestMapping("roleDistribute")
    public String roleDistribute(Model model, String userId) {
        try {
            //是否编辑
            if (userId != null && userId.length() > 0) {
                //获取菜单信息
                SystemUser user = userManager.getUserById(userId);
                List<SystemUserRole> userRoles = userManager.getUserRoleByUserId(userId);
                String roleId = "";
                if(userRoles != null)
                {
                    for(SystemUserRole userRole:userRoles)
                    {
                        roleId += (StringUtils.isEmpty(roleId)?"":",") + userRole.getRoleId();
                    }
                }
                model.addAttribute("roleId", roleId);
                model.addAttribute("model", user);
                model.addAttribute("userId", userId);
            }
            model.addAttribute("contentPage", "system/user/roleDistribute");
            return "pageView";
        } catch (Exception ex) {
            return "error";
        }
    }
    /**
     * 新增用户
     */
@ -207,4 +242,16 @@ public class UserController extends BaseController {
            return Result.error(ex.getMessage());
        }
    }
    @RequestMapping("/userRoleDistribute")
    @ResponseBody
    public Result userRoleDistribute(HttpServletRequest request,String userId,String roleId)
    {
        try {
            return userManager.userRoleDistribute(userId,roleId);
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
}

+ 2 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/dao/BaseDictDao.java

@ -102,6 +102,8 @@ public class BaseDictDao extends SQLGeneralDAO implements IBaseDictDao {
            sql +=" where " + Where;
        }
        sql += " order by " + valueCole;
        List<DictItem> list = super.queryListBySql(sql,DictItem.class);
        DictionaryResult re = new DictionaryResult(tableName);

+ 9 - 1
Hos-resource/src/main/java/com/yihu/ehr/system/dao/DictDao.java

@ -19,7 +19,7 @@ public class DictDao extends SQLGeneralDAO implements IDictDao {
    public Result getDictList(Map<String, Object> params) throws Exception {
        StringBuilder sb = new StringBuilder(" from SystemDict s where 1=1 ");
        if (!StringUtils.isEmpty(params.get("dictId"))) {
            sb.append(" and  (s.dictName like '%" + params.get("dictId") +"%')");
            sb.append(" and  (s.dictName = '" + params.get("dictId") +"')");
        }
       else if (!StringUtils.isEmpty(params.get("name"))) {
            sb.append(" and  (s.code like '%" + params.get("name") + "%' or s.value like '%" + params.get("name")+"%')");
@ -45,4 +45,12 @@ public class DictDao extends SQLGeneralDAO implements IDictDao {
        }
        return null;
    }
    @Override
    public void delDictItemByDictName(String dictName) throws Exception
    {
        String sqlStr = "delete from system_dict where dict_name='" + dictName + "'";
        super.execute(sqlStr);
    }
}

+ 16 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/dao/UserDao.java

@ -4,6 +4,7 @@ import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.system.dao.intf.IUserDao;
import com.yihu.ehr.system.model.SystemUser;
import com.yihu.ehr.system.model.SystemUserRole;
import org.springframework.stereotype.Repository;
import org.springframework.util.StringUtils;
@ -39,4 +40,19 @@ public class UserDao extends SQLGeneralDAO implements IUserDao {
        return null;
    }
    public void deleteUserRoleByUserId(String userId) throws Exception
    {
        String sql = "delete from system_user_role where user_id ='"+ userId + "'";
        super.execute(sql);
    }
    public List<SystemUserRole> getUserRoleByUserId(String userId) throws Exception
    {
        List<SystemUserRole> userRolse = (List<SystemUserRole>) hibernateTemplate.find("from SystemUserRole s where s.userId =? ", userId);
        if (userRolse != null && userRolse.size() > 0) {
            return userRolse;
        }
        return null;
    }
}

+ 2 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/dao/intf/IDictDao.java

@ -15,4 +15,6 @@ public interface IDictDao extends XSQLGeneralDAO {
    SystemDict getDictItemByCodeWithOutId(String code, String id) throws Exception;
    SystemDict getDictItemByCode(String code) throws Exception;
    void delDictItemByDictName(String dictName) throws Exception;
}

+ 6 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/dao/intf/IUserDao.java

@ -3,7 +3,9 @@ package com.yihu.ehr.system.dao.intf;
import com.yihu.ehr.framework.common.dao.XSQLGeneralDAO;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.system.model.SystemUser;
import com.yihu.ehr.system.model.SystemUserRole;
import java.util.List;
import java.util.Map;
/**
@ -17,4 +19,8 @@ public interface IUserDao extends XSQLGeneralDAO {
    SystemUser getUserByLoginCode(String loginCode) throws Exception;
    void deleteUserRoleByUserId(String userId) throws Exception;
    List<SystemUserRole> getUserRoleByUserId(String userId) throws Exception;
}

+ 3 - 1
Hos-resource/src/main/java/com/yihu/ehr/system/model/SystemDictList.java

@ -33,7 +33,8 @@ public class SystemDictList implements java.io.Serializable {
	}
	/** full constructor */
	public SystemDictList(String dictName, String chineseName, String pyCode, String pid, String desc, String relationTable, String relationColCode, String relationColValue) {
	public SystemDictList(String dictName, String chineseName, String pyCode, String pid, String desc
			, String relationTable, String relationColCode, String relationColValue,String relationColExtend) {
		this.dictName = dictName;
		this.chineseName = chineseName;
		this.pyCode = pyCode;
@ -41,6 +42,7 @@ public class SystemDictList implements java.io.Serializable {
		this.relationTable = relationTable;
		this.relationColCode = relationColCode;
		this.relationColValue = relationColValue;
		this.relationColExtend = relationColExtend;
	}
	// Property accessors

+ 36 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/model/SystemUserRole.java

@ -0,0 +1,36 @@
package com.yihu.ehr.system.model;
/**
 * Created by lyr on 2016/5/6.
 */
public class SystemUserRole implements java.io.Serializable {
    private String id;
    private String userId;
    private String roleId;
    public String getId(){
        return this.id;
    }
    public void setId(String id)
    {
        this.id = id;
    }
    public String getUserId(){
        return this.userId;
    }
    public void setUserId(String userId)
    {
        this.userId = userId;
    }
    public String getRoleId()
    {
        return this.roleId;
    }
    public void setRoleId(String roleId)
    {
        this.roleId = roleId;
    }
}

+ 2 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/service/DictManager.java

@ -45,6 +45,7 @@ public class DictManager implements IDictManager {
    @Transactional
    public Result deleteDict(String id) throws Exception {
        SystemDictList sd = dictDao.getEntity(SystemDictList.class, id);
        dictItemDao.delDictItemByDictName(sd.getDictName());
        dictDao.deleteEntity(sd);
        return Result.success("删除成功");
    }
@ -92,6 +93,7 @@ public class DictManager implements IDictManager {
       //     return Result.error("字典项代码已经存在");
      //  }
        dictItemDao.saveEntity(rr);
        return Result.success("保存成功");
    }

+ 1 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/service/MenuManager.java

@ -115,6 +115,7 @@ public class MenuManager implements IMenuManager {
        systemMenu.setUrl(obj.getUrl());
        systemMenu.setRemark(obj.getFlag());
        systemMenu.setMenuId(obj.getMenuId());
        systemMenu.setRemark(obj.getRemark());
        return Result.success("更新成功");
    }

+ 31 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/service/UserManger.java

@ -2,14 +2,19 @@ package com.yihu.ehr.system.service;
import com.yihu.ehr.framework.model.ActionResult;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.system.dao.UserDao;
import com.yihu.ehr.system.dao.intf.IUserDao;
import com.yihu.ehr.system.model.SystemUser;
import com.yihu.ehr.system.model.SystemUserRole;
import com.yihu.ehr.system.service.intf.IUserManager;
import org.apache.axis.utils.StringUtils;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
@ -91,4 +96,30 @@ public class UserManger implements IUserManager {
        systemUser.setPassword(DigestUtils.md5Hex(newps+saltString));
        return Result.success("密码修改成功");
    }
    @Transactional
    public Result userRoleDistribute(String userId,String roleId) throws Exception
    {
        userdao.deleteUserRoleByUserId(userId);
        if(!StringUtils.isEmpty(roleId))
        {
            String[] roles = roleId.split(",");
            for(String role:roles)
            {
                SystemUserRole userRole = new SystemUserRole();
                userRole.setUserId(userId);
                userRole.setRoleId(role);
                userdao.saveEntity(userRole);
            }
        }
        return Result.success("角色分配成功");
    }
    public List<SystemUserRole> getUserRoleByUserId(String userId) throws Exception
    {
         return userdao.getUserRoleByUserId(userId);
    }
}

+ 6 - 0
Hos-resource/src/main/java/com/yihu/ehr/system/service/intf/IUserManager.java

@ -2,7 +2,9 @@ package com.yihu.ehr.system.service.intf;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.system.model.SystemUser;
import com.yihu.ehr.system.model.SystemUserRole;
import java.util.List;
import java.util.Map;
/**
@ -26,4 +28,8 @@ public interface IUserManager {
    Result resetPassword(String userid) throws Exception;
    Result changePassword(String userid, String newps)throws Exception;
    Result userRoleDistribute(String userId,String roleId) throws Exception;
    List<SystemUserRole> getUserRoleByUserId(String userId) throws Exception;
}

+ 5 - 0
Hos-resource/src/main/resources/hbm/resource/SystemDictList.hbm.xml

@ -50,5 +50,10 @@
                <comment>关联表的值字段</comment>
            </column>
        </property>
        <property name="relationColExtend" type="java.lang.String">
            <column name="relation_col_extend" length="50">
                <comment>关联表的扩展字段</comment>
            </column>
        </property>
    </class>
</hibernate-mapping>

+ 24 - 0
Hos-resource/src/main/resources/hbm/resource/SystemUserRole.hbm.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.yihu.ehr.system.model.SystemUserRole" table="system_user_role">
        <id name="id" type="java.lang.String">
            <column name="id" length="50" />
            <generator class="uuid" />
        </id>
        <property name="userId" type="java.lang.String">
            <column name="user_id" length="50" not-null="true">
                <comment>用户ID</comment>
            </column>
        </property>
        <property name="roleId" type="java.lang.String">
            <column name="role_id" length="50" not-null="true">
                <comment>角色ID</comment>
            </column>
        </property>
    </class>
</hibernate-mapping>

+ 3 - 1
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/index.jsp

@ -2,6 +2,8 @@
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style>
    html{height:100%}
    body{height:100%}
    .m-index-top{height:80px;background:url('${staticRoot}/images/index/logo.png') left top no-repeat #2a2a34;}
    .m-index-top-name{padding-left:40px;line-height:40px;color:#919baf;background:url('${staticRoot}/images/index/head_icon.png') 10px no-repeat;}
    .m-index-nav{height:40px;background:url('${staticRoot}/images/index/local_icon.png') 8px 8px no-repeat #fff;padding-left:40px;line-height: 40px;}
@ -27,7 +29,7 @@
    #btnIndexPassword{float: right;width:40px;height:40px;background:url('${staticRoot}/images/index/password_btn.png') no-repeat;}
    #btnIndexPassword:hover{background:url('${staticRoot}/images/index/password_over_btn.png') no-repeat;cursor:pointer}
</style>
<div id="divIndexMain">
<div id="divIndexMain" style="height:100%">
    <div position="top">
        <div class="m-index-top">
            <div style="float: right;padding-right: 8px">

+ 1 - 1
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp

@ -68,7 +68,7 @@
                {id: 11, pid: 1, text: '任务跟踪', url: '${contextRoot}/datacollect/trackJob',targetType:'1'},
                {id: 12, pid: 1, text: '任务补采', url: '${contextRoot}/datacollect/repeatDatacollect'},
                {id: 13, pid: 1, text: '任务配置', url: '${contextRoot}/datacollect/configJob'},
                {id: 14, pid: 1, text: '任务编排', url: '${contextRoot}/datacollect/jobLayout'},
                {id: 14, pid: 1, text: '任务编排', url: '${contextRoot}/crawler/jobLayout'},
                //标准管理
                //标准规范中心
                {id: 2, text: '标准管理',icon:'${staticRoot}/images/index/menu3_icon.png'},

Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/dataMapping.jsp → Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/dataMapping.jsp


+ 64 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/dataMappingJs.jsp

@ -0,0 +1,64 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script src="${contextRoot}/develop/lib/jobMapping/jquery-1.9.1.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/draggabilly.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/fabric.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/sly.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/underscore.js"></script>
<%--<script src="${contextRoot}/develop/lib/jobMapping/data.js"></script>--%>
<script src="${contextRoot}/develop/lib/jobMapping/tableViewer.js"></script>
<script>
    (function(win,$) {
        var checkRowObjs = $(parent.jobLayout.grid.getCheckedRowObjs()).find(".mapping");
        var pcurIndex = checkRowObjs.data("rowindex");
        var mappingData = parent.jobLayout.cacheMappingInitData[pcurIndex];
        $.ajax({
            url: "${contextRoot}/crawler/getRelations",
            type: "post",
            dataType: "json",
            data:{versionId: "${versionId}",datasetIdStr:"${datasetIdStr}",lines:mappingData},
            success: function (data) {
                
                if(data){
                    $('#main').tableViewer(JSON.parse(data))
                }
            }
        });
        $("#btn_close").click(function () {
            parent.jobLayout.dialog.close();
        });
        $("#btn_save").click(function () {
            $.TableView.curTV.data.rels = $.TableView.curTV.getResult().lines;
            var parentCheckRowData =parent.jobLayout.grid.getCheckedRows()[0];
            var initData = JSON.stringify($.TableView.curTV.data);
            var mappingData = JSON.stringify($.TableView.curTV.getResult());
            //修改缓存数据映射的值
            parent.jobLayout.cacheMappingInitData[pcurIndex]= initData;
            parent.jobLayout.cacheMappingData[pcurIndex]= mappingData;
            $.ajax({
                url: "${contextRoot}/crawler/setRelationsCache",
                type: "post",
                dataType: "json",
                data:{versionId: "${versionId}",lines:mappingData},
                success: function (data) {
                    
                    if(data.successFlg){
                        parent.jobLayout.dialog.close();//关闭窗口
                    }
                }
            });
        });
    })(window, jQuery);
</script>

+ 3 - 10
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/datasetDetail.jsp

@ -1,7 +1,7 @@
<%--
  Created by IntelliJ IDEA.
  User: llh
  Date: 2016/1/7
  Date: 2016/4/26
  Time: 14:06
  To change this template use File | Settings | File Templates.
--%>
@ -19,7 +19,7 @@
  <div class="m-form-group" style="margin-left: 10px;">
    <label style="text-align: left;width: 68px;">数据集:</label>
    <div class="l-text-wrapper m-form-control">
      <input type="text" class="f-w240 f-pl5" id="inp_datasetNm">
      <input type="text" class="f-w240 f-pl5" id="inp_datasetNm" placeholder="请输入数据集名称">
    </div>
  </div>
  <div style="margin: 0 15px;">
@ -35,15 +35,8 @@
      <span>取消</span>
    </div>
    <div id="btn_save" class="l-button">
      <span>确定</span>
      <span>确认</span>
    </div>
  </div>
  <input type="hidden" id="standardId" value=""/>
  <input type="hidden" id="type" value=""/>
  <input type="hidden" id="stdType" value=""/>
  <input type="hidden" id="typeFlg" value=""/>
  <input type="hidden" id="hd_url" value="${contextRoot}"/>
  <input type="hidden" id="hd_user" value="${User.id}"/>
</div>

+ 128 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/datasetDetailJs.jsp

@ -0,0 +1,128 @@
<%--
  Created by IntelliJ IDEA.
  User: llh
  Date: 2016/1/7
  Time: 14:06
  To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script >
  (function ($, win) {
      var jobDataset = {};
      var Util = $.Util;
      var schemeId = '${schemeId}';
      
      var cacheDatasetId = Util.isStrEmpty(${cacheDatasetId})?{}:${cacheDatasetId};
      //数据集处理
      jobDataset.attr = {
        grid:null,
        $searchNm: $('#inp_datasetNm'),
        init: function () {
            if(this.grid)
                return;
               var me = this;
            this.$searchNm.ligerSearch({onClick: function (value) {
                var l_grid1 = $("#div_dataset_grid .l-grid1 .l-grid-body-table");
                var l_grid2 = $("#div_dataset_grid .l-grid2 .l-grid-body-table");
                var tr1 = l_grid1.find("tr");
                var tr2 = l_grid2.find("tr");
                if(Util.isStrEmpty(value)) {
                    $('tr',l_grid1).show();
                    $('tr',l_grid2).show();
                    return false;
                }
                $('tr',l_grid1).hide();
                $('tr',l_grid2).hide();
                tr2.each(function(index,element){
                    var td = $(this).find("td").find("div").eq(2);
                    if(td.html().indexOf(value)>=0){
                        td.closest('tr').show();
                        tr1.eq(index).show();
                    }
                });
            }});
            this.grid = $("#div_dataset_grid").ligerGrid({
                url: '${contextRoot}/crawler/getSchemeDataSets',
                parms:{versionId:"${versionId}"},
                method: 'get',
                checkbox: true,
                width:560,
                height:400,
                usePager: false,
                columns: [
                    { display: 'datasetId', name: 'datasetId', hide:true },
                    {display:'数据集编码',name:'datasetCode', width: '50%'},
                    {display:'数据集名称',name:'datasetName',width: '50%'}
                ],
                onAfterShowData: function (gridData) {//显示完数据事件
                    var checkRowsList = jobDataset.attr.grid.getCheckedRows();
                        if(gridData.detailModelList.length==checkRowsList.length){
                            $(".l-grid1 .l-grid-header-table tr").eq(0).addClass("l-checked");
                        }
                },
                //默认选中
                isChecked:function(row){
                    
                    var datasetIdList = Util.isObjEmpty(cacheDatasetId) ?[]:cacheDatasetId.split(",");
                    for(var i=0;i<datasetIdList.length;i++){
                        if(datasetIdList[i]== row.datasetId){
                            return true;
                        }
                    }
                    return false;
                },
                //选中修改值
                onCheckRow:function(checked,data,rowid,rowdata)
                {
                    var checkRowsList = jobDataset.attr.grid.getCheckedRows();
                    if(jobDataset.attr.grid.data.detailModelList.length==checkRowsList.length){
                        $(".l-grid1 .l-grid-header-table tr").eq(0).addClass("l-checked");
                    }else{
                        $(".l-grid1 .l-grid-header-table tr").eq(0).removeClass("l-checked");
                    }
                    //修改行checked值
                    if(checked)
                        data.checked ="1";
                    else
                        data.checked ="0";
                },
            });
          this.event();
        },
        event: function () {
          $("#btn_save").click(function () {
              
                var checkRowsList = jobDataset.attr.grid.getCheckedRows();
                var pcheckRowObjs = $(parent.jobLayout.grid.getCheckedRowObjs()).find(".sel-dataset-name");//父窗口选中行的数据集列
                var pcurIndex = pcheckRowObjs.attr("data-rowindex");
                var datasetName = "",dataSetIds = "",datasetCodes = "";
                for(var  i=0;i<checkRowsList.length;i++){
                      datasetName += checkRowsList[i].datasetName+",";//数据集名称
                      dataSetIds+=checkRowsList[i].datasetId+",";//数据集ID
                      datasetCodes+=checkRowsList[i].datasetCode+",";//数据集编码
                }
              pcheckRowObjs.val(datasetName.toString().substring(0,datasetName.length-1));//给父级窗口的数据集名称赋值
              //修改缓存数据集ID和数据集编码的值
              parent.jobLayout.cacheDatasetIdList[pcurIndex]= dataSetIds;
              parent.jobLayout.cacheDatasetCodeList[pcurIndex]= datasetCodes;
              parent.jobLayout.dialog.close(); //关闭窗口
          });
          $("#btn_close").click(function () {
              parent.jobLayout.dialog.close(); //关闭窗口
          });
        }
      };
      $(function(){
          jobDataset.attr.init();
      })
  })(jQuery, window);
</script>

+ 1 - 1
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/jobLayout.jsp

@ -19,7 +19,7 @@
    </div>
    <!--######数据源信息表######-->
    <div id="div_grid" ></div>
    <div id="div_job_grid" ></div>
</div>

+ 398 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/crawler/jobLayoutJs.jsp

@ -0,0 +1,398 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script src="${contextRoot}/develop/lib/plugin/validate/jValidate.js"></script>
<script>
    /* ************************** 全局变量定义 **************************** */
    var Util = $.Util;
    var schemeVersionList = [];
    var validAdd = null;
    /* *************************** 自定义模块 ***************************** */
    var jobLayout = {
        dialog:null,
        grid:null,
        cacheDatasetIdList:[],
        cacheDatasetCodeList:[],
        cacheMappingInitData:[],
        cacheMappingData:[],
        init:function(){
            var me = this;
            $('.m-retrieve-area').show();
            $.ajax({
                url: '${contextRoot}/crawler/getSchemeList',
                dataType: "json",
                success: function (data) {
                    if(data.successFlg){
                        schemeVersionList = data.detailModelList || [];
                        me.loadGrid();
                    }else{
                        $.ligerDialog.error(data.message);
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    $.ligerDialog.error("获取适配方案版本列表失败!")
                }
            });
            me.bindEvents();
        },
        loadGrid:function(){
            var me= this;
            this.grid = $("#div_job_grid").ligerGrid({
                url: '${contextRoot}/crawler/list',
                method: 'post',
                selectRowButtonOnly: true,
                allowHideColumn:false,
                validate : true,
                unSetValidateAttr:false,
                columns: [
                    { display: 'status', name: 'status', hide:true },
                    { display: 'scheme_id', name: 'scheme_id', hide:true },
                    { display: 'datasetId', name: 'datasetId', hide:true },
                    {display:'适配方案',name:'', width: '20%',render: function (row, rowindex, value, column) {
                        var select= '<select class="sel-scheme-name form-control required"  id="schemeNm'+rowindex+'" style="margin-top:3px;font-size:12px;">';
                        for(var i=0;i<schemeVersionList.length;i++){
                            select+='<option value="'+schemeVersionList[i].schemeId+'">'+schemeVersionList[i].name+'</option>';
                        }
                        select = $(select+"</select>");
                        $('option[value="'+row.scheme_id+'"]',select).attr('selected',true);
                        return  select.prop("outerHTML");
                    }},
                    {display:'版本',name:'',width: '20%',render: function (row, rowindex, value, column) {
                        var select= '<select class="sel-version-name form-control required"  data-rowindex="'+rowindex+'" id="versionNm'+rowindex+'" style="margin-top:3px;font-size:12px;">';
                        var versionList = [];
                        for(var i=0;i<schemeVersionList.length;i++){
                            if(schemeVersionList[i].schemeId == row.scheme_id){
                                versionList = schemeVersionList[i].versionList;
                                for(var j=0;j<versionList.length;j++){
                                    select+='<option value="'+versionList[j].id+'">'+versionList[j].name+'</option>';
                                }
                            }
                        }
                        select = $(select+"</select>");
                        $('option[value="'+row.scheme_version_id+'"]',select).attr('selected',true);
                        return  select.prop("outerHTML");
                    }},
                    {display:'数据集名称',name:'datasetName', width: '40%',render: function (row, rowindex, value, column) {
                        var dataSets = value;
                        if(value==undefined){
                            dataSets="";
                        }else if(value.toString().substring(value.length-1,value.length)==","){
                            dataSets=value.toString().substring(0,value.length-1);
                        }
                        var html = '<input style="margin-top:3px;font-size:12px;" data-rowindex="'+rowindex+'" id="dataSets'+rowindex+'" class="required sel-dataset-name form-control" value="'+(dataSets || "")+'" >' ;
                        return html;
                    }},
                    {display:'操作', name: 'operator', width: '20%', render: function (row, rowindex, value, column) {
                        var html = '<div class="m-inline-buttons" style="width:120px;">';
                        html += '<a href="javascript:void(0)" style="width: 80px;" class="mapping"  data-rowindex="'+rowindex+'" onclick="javascript:jobLayout.mapping(\''+rowindex+'\')">数据映射</a>';
                        html += '<a class="m-btn-delete" onclick="javascript:jobLayout.delete(\''+rowindex+'\')"></a>';
                        return html;
                    }}
                ],
                onSuccess:function(data, grid){//成功获取服务器数据的事件
                    //缓存初始化勾选的数据集id
                    var detailModelList = data.detailModelList;
                    for(var i=0;i<detailModelList.length;i++){
                        me.cacheDatasetIdList[i] = detailModelList[i].datasetId;
                        me.cacheDatasetCodeList[i]="";
                        me.cacheMappingInitData[i]="";
                        me.cacheMappingData[i]="";
                    }
                },
                onAfterShowData: function (gridData) {//显示完数据事件
                    validAdd = new jQuery.jValidation.Validation($("#div_job_grid"),{immediate:true,onSubmit:false});
                    //【适配方案】change事件
                    $(".sel-scheme-name").on("change", function() {
                        var rowIndex = $(this).attr("id").replace("schemeNm","");
                        var option = "";
                        var versionList = [];
                        for(var i=0;i<schemeVersionList.length;i++){
                            if(schemeVersionList[i].schemeId == $(this).val()){
                                versionList = schemeVersionList[i].versionList;
                                for(var j=0;j<versionList.length;j++){
                                    option+='<option value="'+versionList[j].id+'">'+versionList[j].name+'</option>';
                                }
                            }
                        }
                        $("#versionNm"+rowIndex).html("");
                        $("#versionNm"+rowIndex).append(option);
                        //清空值
                        me.cacheDatasetIdList[rowIndex]="";
                        me.cacheDatasetCodeList[rowIndex]="";
                        me.cacheMappingInitData[rowIndex]="";
                        me.cacheMappingData[rowIndex]="";
                        $("#dataSets"+rowIndex).val("");
                    });
                    //【版本】change事件
                    $(".sel-version-name").on("change", function() {
                        var rowIndex = $(this).data("rowindex");
                        //清空值
                        me.cacheDatasetIdList[rowIndex]="";
                        me.cacheDatasetCodeList[rowIndex]="";
                        me.cacheMappingInitData[rowIndex]="";
                        me.cacheMappingData[rowIndex]="";
                        $("#dataSets"+rowIndex).val("");
                    });
                    //【数据集名称】focus事件
                    $(".sel-dataset-name").on("focus", function() {
                        
                        var rowindex = $(this).attr("data-rowindex");
                        jobLayout.grid.select(rowindex);//选中行
                        var selectedVersionId = $("#versionNm"+rowindex).val();
                        if(selectedVersionId==null){
                            $.ligerDialog.error("当前版本为空,不能选择数据集!");
                            return false;
                        }
                        /* 判断适配方案与版本是否重复*/
                        var resultArr =  me.getGridData();
                        var uniqueArr = me.uniqueArray(resultArr);
                        if(resultArr.length!==uniqueArr.length){
                            $.ligerDialog.error("相同适配方案下,不能有相同的版本!");
                            return false;
                        }
                        var row = jobLayout.grid.getSelectedRow();
                        var cacheDatasetId =JSON.stringify(me.cacheDatasetIdList[rowindex]);//获取缓存勾选的数据集
                        var  params = {
                            schemeId:$("#schemeNm"+rowindex).val(),
                            versionId: $("#versionNm"+rowindex).val(),
                            schemeNm:$("#schemeNm"+rowindex).find("option:selected").text(),
                            cacheDatasetId:cacheDatasetId};
                        me.dialog = $.ligerDialog.open({
                            height: 600,
                            width: 600,
                            title: "数据集选择器",
                            url: '${contextRoot}/crawler/datasetDetail',
                            //load: true,
                            urlParms: params
                        });
                    });
                }
            });
        },
        //绑定按钮事件
        bindEvents: function () {
            var me = this;
            $('#btnAdd').click(function () {
                me.gridScrollTop();//1、将滚动条滚动到底部
                var dataRow = {
                    status:'',
                    scheme_id:'',
                    scheme_version_id:'',
                    datasetName:'',
                    datasetId:''
                };
                var rowData = me.grid.getData();
                for (var i = 0; i < rowData.length; i++) {
                    me.grid.rows[i].scheme_id = $("#schemeNm"+i).val();
                    me.grid.rows[i].scheme_version_id= $("#versionNm"+i).val();
                    me.grid.rows[i].datasetName= $("#dataSets"+i).val();
                }
                //将新添加的行插入到最后一列
                me.grid.addRow(dataRow);
                $(".sel-scheme-name#schemeNm"+rowData.length).trigger("change");
                me.cacheDatasetIdList.push("");
                me.cacheDatasetCodeList.push("");
            });
            $('#btnSave').click(function(){
                
                if(!validAdd.validate()){
                    return false;
                }
                var resultArr =  me.getGridData();//获取表格数据
                $.ajax({
                    url: "${contextRoot}/crawler/saveDateSet",
                    type: "post",
                    dataType: "json",
                    data:{job: JSON.stringify(resultArr)},
                    success: function (data) {
                        
                        if(data.successFlg){
                            $.ligerDialog.success(data.message);
                            jobLayout.grid.loadData(true);
                        }else{
                            $.ligerDialog.error(data.message);
                        }
                    },error:function(){
                    }
                });
            });
        },
        getGridData:function(){
            
            var me = this;
            var rowData = this.grid.getData();
            var resultArr = [];
            for (var i = 0; i < rowData.length; i++) {
                var row = {
                    schemeId:$("#schemeNm"+i).val(),
                    versionId: $("#versionNm"+i).val(),
                    dataSets:me.cacheDatasetIdList[i],
                    relation:me.cacheMappingData[i]}
                resultArr.push(row);
            }
            return resultArr;
        },
        contains:function(a, e){
            for(j=0;j<a.length;j++)if(a[j]==e)return true;
            return false;
        },
        uniqueArray:function(a){ /* 判断适配方案与版本是否重复*/
            var temp = new Array();
            for(var i = 0; i < a.length; i ++){
                if(!this.contains(temp, a[i].schemeId + a[i].versionId)){
                    temp.length+=1;
                    temp[temp.length-1] = a[i].schemeId + a[i].versionId;
                }
            }
            return temp;
        },
        gridScrollTop:function(){
            var div = $('#div_job_grid')[0],
                    scrollHeight = div.scrollHeight;
    
            if( div.scrollTop + div.clientHeight >= div.scrollHeight ){//滚动条已滑动到底部
                return false;
            }
            var scrollTop = div.scrollTop;
            var timer= setInterval(function () {
                scrollTop += 150;
                div.scrollTop = scrollTop;
                if (scrollTop >= scrollHeight) clearInterval(timer);}, 100);//滚动到底部,释放计时器
        },
        //数据映射
        mapping:function(rowindex){
            
            var versionId = $("#versionNm"+rowindex).val();
            var datasetIdStr =  this.cacheDatasetIdList[rowindex]==undefined?"":this.cacheDatasetIdList[rowindex];
            if(versionId==null){
                $.ligerDialog.error("当前版本为空,不能进行数据映射!");
                return false;
            }
            if( $("#dataSets"+rowindex).val()==""){
                $.ligerDialog.error("当前勾选的数据集数据为空,不能进行数据映射!");
                return false;
            }
            var me = this;
            var  params = {versionId:versionId,datasetIdStr:datasetIdStr};
            me.dialog = $.ligerDialog.open({
                height: 800,
                width: 1200,
                title: "数据映射",
                url: '${contextRoot}/crawler/jobDataMapping',
                //load: true,
                urlParms: params
            });
        },
        //删除数据映射
        delete:function(rowindex) {
            this.grid.select(rowindex);//选中行
            var me = this;
            var row = me.grid.getSelectedRow();
            var rowData = me.grid.getData();
            //判断是否是新增的数据。若是新增的数据,则直接删除数据,不发送后台请求
            if(row.__status=="add"){
                $.ligerDialog.confirm("确定要删除该适配方案数据映射吗?", function (confirm) {
                    if (confirm)
                    {
                        
                        //保存当前编辑的数据
                        for (var i = 0; i < rowData.length; i++) {
                            me.grid.rows[i].scheme_id = $("#schemeNm"+i).val();
                            me.grid.rows[i].scheme_version_id= $("#versionNm"+i).val();
                            me.grid.rows[i].datasetName= $("#dataSets"+i).val();
                        }
                        //删除行缓存的数据
                        var cacheDatasetIdList = me.cacheDatasetIdList;
                        var cacheDatasetCodeList = me.cacheDatasetCodeList;
                        var cacheMappingInitData = me.cacheMappingInitData;
                        var cacheMappingData = me.cacheMappingData;
                        cacheDatasetIdList.splice(rowindex,1);
                        cacheDatasetCodeList.splice(rowindex,1);
                        cacheMappingInitData.splice(rowindex,1);
                        cacheMappingData.splice(rowindex,1);
                        //删除行
                        me.grid.deleteRow(rowindex);
                    }
                });
            }else{
                var delVersionId = $("#versionNm"+rowindex).val();
                if(delVersionId==null){
                    $.ligerDialog.error("当前没有选择适配版本,不能删除!");
                    return false;
                }
                var addFlag = false;
                for (var i = 0; i < rowData.length; i++) {
                    if(rowData[i].status==""){//新增
                        addFlag = true;
                        break;
                    }
                }
                if(addFlag){//有新增数据并且未保存
                    $.ligerDialog.error("当前有未保存的数据,请先保存,再删除");
                    return false;
                }
                $.ligerDialog.confirm("确定要删除该适配方案数据映射吗?", function (confirm) {
                    if (confirm)
                    {
                        $.ajax({ //ajax处理
                            type: "POST",
                            url : "${contextRoot}/crawler/deleteDateSet",
                            dataType : "json",
                            data:{version:delVersionId},
                            cache:false,
                            success :function(data){
                                if(data.successFlg) {
                                    $.ligerDialog.success(data.message);
                                    jobLayout.grid.loadData(true);//重新加载表格数据
                                }
                                else{
                                    $.ligerDialog.error(data.message);
                                }
                            },
                            error :function(data){
                                $.ligerDialog.error("删除失败!");
                            }
                        });
                    }
                });
            }
        },
        //弹窗返回消息
        callbackDialog:function(message){
            $.ligerDialog.success(message);
            this.grid.reload();
            this.dialog.close();
        }
    }
    $(function () {
        jobLayout.init();
    });
</script>

+ 0 - 24
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/dataMappingJs.jsp

@ -1,24 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script src="${contextRoot}/develop/lib/jobMapping/jquery-1.9.1.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/draggabilly.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/fabric.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/sly.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/underscore.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/data.js"></script>
<script src="${contextRoot}/develop/lib/jobMapping/tableViewer.js"></script>
<script>
    (function(win,$) {
        $('#main').tableViewer(remoteData);
        $("#btn_close").click(function () {
           // JSON.stringify($.TableView.curTV.getResult())
            parent.jobLayout.dialog.close();
        });
        $("#btn_save").click(function () {
        });
    })(window, jQuery);
</script>

+ 0 - 72
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/datasetDetailJs.jsp

@ -1,72 +0,0 @@
<%--
  Created by IntelliJ IDEA.
  User: llh
  Date: 2016/1/7
  Time: 14:06
  To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script >
  (function ($, win) {
      var jobDataset = {};
      var Util = $.Util;
      var schemeId = "${schemeId}";
      //集成标准处理
      jobDataset.attr = {
        grid:null,
        $searchNm: $('#inp_datasetNm'),
        init: function () {
            if(this.grid)
                return;
            this.$searchNm.ligerSearch({onClick: function (value) {
            }});
            this.grid = $("#div_dataset_grid").ligerGrid({
                url: '${contextRoot}/datacollect/getSchemeDataSets',
                parms:{versionId:"${version}"},
                checkbox: true,
                width:560,
                height:400,
                usePager: false,
                columns: [
                    { display: 'datasetId', name: 'datasetId', hide:true },
                    {display:'数据集编码',name:'datasetCode', width: '50%'},
                    {display:'数据集名称',name:'datasetName',width: '50%'}
                ],
                //默认选中
                isChecked:function(row){
                    if(row.checked=="1")
                    {
                        return true;
                    }
                    else{
                        return false;
                    }
                },
            });
          this.event();
        },
        event: function () {
          $("#btn_save").click(function () {
          });
          $("#btn_close").click(function () {
              parent.jobLayout.dialog.close();
          });
        }
      };
      $(function(){
          jobDataset.attr.init();
      })
  })(jQuery, window);
</script>

+ 0 - 1
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp

@ -40,7 +40,6 @@
    .inlineDialog .l-dialog-tl,.inlineDialog .l-dialog-tc,.inlineDialog .l-dialog-tr,.inlineDialog .l-dialog-tc-inner{height:0px;overflow: hidden}
    .inlineDialog .l-dialog-table tr,.inlineDialog .l-dialog-table td{border:0px;}
    .wizard > .content{height:410px;}
</style>
<%--按步执行面板--%>

+ 10 - 5
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJobJs.jsp

@ -47,17 +47,14 @@
                    }
                },
                onFinishing:function(c,a){
                    debugger
                    editorJob.setCheckVal();
                    return me.verify(4);
                },
                onFinished:function(c,a){
                    editorJob.setCheckVal();
                    me.save();
                },
                onCanceled:function(){
                    if(parent.config==null)
                    if(parent.trackJob != undefined)
                        parent.trackJob.dialog.close();
                    else
                        parent.configJob.dialog.close();
@ -101,6 +98,7 @@
                checkbox:true,
                height:340,
                width:360,
                hideHeader:true,
                isChecked:function(row){
                    if($("#txtSchemeVersion").val()==row.version)
                    {
@ -645,7 +643,10 @@
        //保存操作
        save:function(){
            var me = this;
            me.setCheckVal();
            var data = me.getData();
            //按钮失效
            $("a[href='#finish']").unbind("click");
            $.ajax({ //ajax处理
                type: "POST",
@ -655,17 +656,21 @@
                cache:false,
                success :function(data){
                    if(data.successFlg) {
                        if(parent.config==null)
                        if(parent.trackJob != undefined)
                            parent.trackJob.callbackDialog(data.message);
                        else
                            parent.configJob.callbackDialog(data.message);
                    }
                    else{
                        $.ligerDialog.error(data.message);
                        //按钮恢复
                        $("a[href='#finish']").bind("click",function(){editorJob.save();});
                    }
                },
                error :function(data){
                    $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
                    //按钮恢复
                    $("a[href='#finish']").bind("click",function(){editorJob.save();});
                }
            });
        },

+ 0 - 235
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/jobLayoutJs.jsp

@ -1,235 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script>
    /* ************************** 全局变量定义 **************************** */
    var Util = $.Util;
    var schemeVersionList = [];
    /* *************************** 自定义模块 ***************************** */
    var jobLayout = {
        dialog:null,
        grid:null,
        init:function(){
            var me = this;
            $('.m-retrieve-area').show();
            $.ajax({
                url: '${contextRoot}/datacollect/getLayout',
                dataType: "json",
                success: function (data) {
                    if(data.successFlg){
                        schemeVersionList = data.detailModelList || [];
                    }else{
                        $.ligerDialog.error(data.message);
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    $.ligerDialog.error("获取适配方案版本列表失败!")
                }
            });
            me.grid = $("#div_grid").ligerGrid({
                url: '${contextRoot}/datacollect/getSchemeVersionList',
                usePager: false,
                columns: [
                    { display: 'schemeId', name: 'schemeId', hide:true },
                    { display: 'id', name: 'id', hide:true },
                    {display:'适配方案',name:'', width: '20%',render: function (row, rowindex, value, column) {
                        var select= '<select class="sel-scheme-name form-control"  id="schemeNm'+rowindex+'" style="margin-top:3px;font-size:12px;">';
                        for(var i=0;i<schemeVersionList.length;i++){
                            select+='<option value="'+schemeVersionList[i].schemeId+'">'+schemeVersionList[i].name+'</option>';
                        }
                        select = $(select+"</select>");
                        $('option[value="'+row.schemeId+'"]',select).attr('selected',true);
                        return  select.prop("outerHTML");
                    }},
                    {display:'版本',name:'',width: '20%',render: function (row, rowindex, value, column) {
                        var select= '<select class="sel-version-name form-control"  id="versionNm'+rowindex+'" style="margin-top:3px;font-size:12px;">';
                        var versionList = [];
                        for(var i=0;i<schemeVersionList.length;i++){
                            if(schemeVersionList[i].schemeId == row.schemeId){
                                versionList = schemeVersionList[i].versionList;
                                for(var j=0;j<versionList.length;j++){
                                    select+='<option value="'+versionList[j].id+'">'+versionList[j].name+'</option>';
                                }
                            }
                        }
                        select = $(select+"</select>");
                        $('option[value="'+row.id+'"]',select).attr('selected',true);
                        return  select.prop("outerHTML");
                    }},
                    {display:'数据集名称',name:'dataSets', width: '40%',render: function (row, rowindex, value, column) {
                        var dataSets = value.toString().substring(0,value.length-1);
                        var html = '<input style="margin-top:3px;font-size:12px;" data-rowindex="'+rowindex+'" class="sel-dataset-name form-control" value="'+(dataSets || "")+'" >' +
                                '<div style="display: none;" id="datasetId'+rowindex+'"></div>';
                        return html;
                    }},
                    {display:'操作', name: 'operator', width: '20%', render: function (row) {
                        var html = '<div class="m-inline-buttons" style="width:55px;">';
                        html += '<a href="javascript:void(0)" onclick="javascript:jobLayout.mapping(\''+row.id+'\')">数据映射</a>';
                        return html;
                    }}
                ],
                onAfterShowData: function (gridData) {//显示完数据事件
                    //【适配方案】change事件
                    $(".sel-scheme-name").on("change", function() {
                        var rowIndex = $(this).attr("id").replace("schemeId","");
                        var option = "";
                        for(var i=0;i<schemeVersionList.length;i++){
                            if(schemeVersionList[i].schemeId == $(this).val()){
                                versionList = schemeVersionList[i].versionList;
                                for(var j=0;j<versionList.length;j++){
                                    option+='<option value="'+versionList[j].id+'">'+versionList[j].name+'</option>';
                                }
                            }
                        }
                        $("#versionId"+rowIndex).html("");
                        $("#versionId"+rowIndex).append(option);
                    });
                    //【数据集名称】focus事件
                    $(".sel-dataset-name").on("focus", function() {
                        var rowindex = $(this).attr("data-rowindex");
                        jobLayout.grid.select(rowindex);//选中行
                        var row = jobLayout.grid.getSelectedRow();
                        var  params = {schemeId:row.schemeId,version:row.id,schemeNm:$("#schemeNm"+rowindex).find("option:selected").text()};
                        me.dialog = $.ligerDialog.open({
                            height: 600,
                            width: 600,
                            title: "数据集选择器",
                            url: '${contextRoot}/datacollect/datasetDetail',
                            //load: true,
                            urlParms: params
                        });
                    });
                }
            });
            me.bindEvents();
        },
        //绑定按钮事件
        bindEvents: function () {
            var me = this;
            $('#btnAdd').click(function () {
                me.editor();
            });
            $('#btnSave').click(function(){
                //获取选择行
                debugger
                var row = me.grid.getSelectedRow();
                if(row!=null &&row.id!=undefined&&row.id.length>0)
                {
                    $.ligerDialog.success("已交由后台运行!");
                    var jobId = row.id;
                    $.ajax({ //ajax处理
                        type: "POST",
                        url : "${contextRoot}/datacollect/crawler/job",
                        dataType : "json",
                        data:{jobId:jobId},
                        cache:false,
                        success :function(data){
                            if(!data.successFlg) {
                                $.ligerDialog.error(data.message);
                            }
                        },
                        error :function(data){
                            $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
                        }
                    });
                }
                else{
                    $.ligerDialog.warn('请选择要执行任务!');
                }
            });
        },
        //编辑弹窗
        editor:function(id){
            var me = this;
            var title = "新增任务";
            var params = null;
            if(id!=undefined&&id!=null)
            {
                title = "编辑任务";
                params = {jobId:id};
            }
            me.dialog = $.ligerDialog.open({
                height: 556,
                width: 700,
                title: title,
                url: '${contextRoot}/datacollect/editorJob',
                //load: true,
                urlParms: params
            });
        },
        //数据映射
        mapping:function(id){
            var me = this;
            var  params = {jobId:id};
            me.dialog = $.ligerDialog.open({
                height: 600,
                width: 800,
                title: "数据映射",
                url: '${contextRoot}/datacollect/jobDataMapping',
                //load: true,
                urlParms: params
            });
        },
        //删除任务
        delete:function(id)
        {
            $.ligerDialog.confirm("确定要删除该任务吗?", function (confirm) {
                if (confirm)
                {
                    $.ajax({ //ajax处理
                        type: "POST",
                        url : "${contextRoot}/datacollect/deleteJob",
                        dataType : "json",
                        data:{jobId:id},
                        cache:false,
                        success :function(data){
                            if(data.successFlg) {
                                $.ligerDialog.success(data.message);
                                jobLayout.grid.reload();
                            }
                            else{
                                $.ligerDialog.error(data.message);
                            }
                        },
                        error :function(data){
                            $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
                        }
                    });
                }
            });
        },
        //弹窗返回消息
        callbackDialog:function(message){
            $.ligerDialog.success(message);
            this.grid.reload();
            this.dialog.close();
        }
    }
    $(function () {
        jobLayout.init();
    });
</script>

+ 5 - 5
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/configurationJs.jsp

@ -194,7 +194,7 @@
            var url = '${contextRoot}' + cfg[cfgModel].left.search;
            reloadGrid.call(this, url, values, this.getColumn());
          }else{
            this.grid.setOptions({parms: $.extend({},values)});
            this.grid.setOptions({parms: $.extend({},values),newPage: 1});
            //重新查询
            this.grid.loadData(true);
          }
@ -471,7 +471,7 @@
          if (changeFlag){
            reloadGrid.call(this, '${contextRoot}'+cfg[cfgModel].right.search, values, this.getColumn());
          }else{
            this.grid.setOptions({parms: $.extend({},values)});
            this.grid.setOptions({parms: $.extend({},values),newPage: 1});
            //重新查询
            this.grid.loadData(true);
          }
@ -620,7 +620,7 @@
              dataType : "json",
              async:false,
              success :function(data){
                debugger
                
                if(data.successFlg){
                  entryMaster.reloadGrid(); //重新查询,返回json记录集
                  $.ligerDialog.success(data.message);
@ -689,7 +689,7 @@
              dataType : "json",
              async:false,
              success :function(data){
                debugger
                
                if(data.successFlg){
                  entryMaster.reloadGrid(); //重新查询,返回json记录集
                  $.ligerDialog.success(data.message);
@ -1068,7 +1068,7 @@
              dataType : "json",
              url: url,
              processResults: function (data, page) {
                debugger
                
                if(data.successFlg){
                  if(targer=="adapterDatasetCode" || targer=="adapterMetadataCode"
                          || targer=="adapterDictCode" || targer=="adapterEntryCode" || targer=="stdEntryCode"){//由于机构适配值的数据格式为id:id+“,”+code,text:name,但是机构适配值为id:id+","+name,text:code,所以需要重新组装数据

+ 2 - 2
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/indexJs.jsp

@ -235,7 +235,7 @@
      var row = adapterplan.list.grid.getParent(adapterplan.list.grid.getSelectedRow());
      var name = "";
      if(row!=null){//是父节点
        name = row.name+"_"+adapterplan.list.grid.getSelectedRow().name;
        name = encodeURIComponent(row.name+"_"+adapterplan.list.grid.getSelectedRow().name);
      }
      indexPage.openChildPage("",'${contextRoot}/adapterPlan/configuration?version='+version+"&status="+status+"&schemeId="+schemeId+"&stdVersion="+stdVersion+"&adapterStdVersion="+adapterStdVersion+"&name="+name);
@ -292,7 +292,7 @@
            dataType: "json",
            data: {versionId: Number(versionId)},
            success: function (data) {
              debugger
              
              if(data.successFlg){
                $.ligerDialog.success(data.message);
                adapterplan.list.getTypeList();

+ 2 - 2
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/appIndexJs.jsp

@ -226,7 +226,7 @@
      var rootRow =  standard.list.grid.getParent(standard.list.grid.getParent(standard.list.grid.getSelectedRow()));
      var name = "";
      if(rootRow!=null && row!=null){//是父节点
        name =  rootRow.name+"_"+row.name+"_"+standard.list.grid.getSelectedRow().name;
        name =  encodeURIComponent(rootRow.name+"_"+row.name+"_"+standard.list.grid.getSelectedRow().name);
      }
      indexPage.openChildPage("",'${contextRoot}/integration/configuration?version='+code+"&stdId="+pid+"&type="+$("#type").val()+"&status="+status+"&name="+name);
@ -271,7 +271,7 @@
                }
              },
            error: function (jqXHR, textStatus, errorThrown) {
              debugger
              
                $.ligerDialog.error("删除失败!");
            }
          })

+ 4 - 5
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/configurationJs.jsp

@ -3,7 +3,6 @@
<link href="${contextRoot}/develop/lib/select2/select2.min.css" rel="stylesheet">
<script src="${contextRoot}/develop/lib/select2/select2.js"></script>
<script >
      /* ************************** 全局变量定义 **************************** */
      var status = $("#publish_status").val();
      var Util = $.Util;
@ -233,7 +232,7 @@
            var url = '${contextRoot}' + cfg[cfgModel].left.search;
            reloadGrid.call(this, url, values, this.getColumn());
          }else{
            this.grid.setOptions({parms: $.extend({},values)});
            this.grid.setOptions({parms: $.extend({},values),newPage: 1});
            //重新查询
            this.grid.loadData(true);
          }
@ -385,7 +384,7 @@
          if (changeFlag){
            reloadGrid.call(this, '${contextRoot}'+cfg[cfgModel].right.search, values, this.getColumn());
          }else{
            this.grid.setOptions({parms: $.extend({},values)});
            this.grid.setOptions({parms: $.extend({},values),newPage: 1});
            //重新查询
            this.grid.loadData(true);
          }
@ -555,7 +554,7 @@
            dataType: "json",
            data:{activityFlag:'1'},
            success: function (data) {
              debugger
              
              if(data.successFlg && !Util.isStrEmpty(data.detailModelList)){
                orgList = data.detailModelList;
              }else{
@ -660,7 +659,7 @@
          if (changeFlag){
            reloadGrid.call(this, '${contextRoot}/datacollect/getDatasetSource', values, this.getColumn());
          }else{
            this.grid.setOptions({parms: $.extend({},values)});
            this.grid.setOptions({parms: $.extend({},values),newPage: 1});
            //重新查询
            this.grid.loadData(true);
          }

+ 5 - 3
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/indexJs.jsp

@ -154,7 +154,8 @@
      });
    },
    add: function (id,name,description, type) {
        if($("#div_cda_type_gridgrid").find(".l-grid-body-table tr").eq(1).length>0){//机构下已有标准数据,则”新增标准“按钮隐藏
      
        if($("#div_cda_type_gridgrid").find(".l-grid-body-table tr").eq(1).length>0 && type==""){//机构下已有标准数据,则”新增标准“按钮隐藏
          $.ligerDialog.error("当前已有集成标准,无法新增!");
          return false;
       }
@ -224,14 +225,15 @@
      standard.list.showDialog(_tital, _url, 300, 400, callback);
    },
    config: function (code,pid,status,rowindex) {
      
      standard.list.grid.select(rowindex);//选中行
      var row = standard.list.grid.getParent(standard.list.grid.getSelectedRow());
      var name = "";
      if(row!=null){//是父节点
        name = row.name+"_"+standard.list.grid.getSelectedRow().name;
        name = encodeURIComponent( row.name+"_"+standard.list.grid.getSelectedRow().name);
      }
      indexPage.openChildPage("",'${contextRoot}/integration/configuration?version='+code+"&stdId="+pid+"&type="+$("#type").val()+"&status="+status+"&name="+name);
      indexPage.openChildPage("",'${contextRoot}/integration/configuration?version='+code+"&stdId="+pid+"&name="+name+"&type="+$("#type").val()+"&status="+status);
    },
    deleted: function (id,name,rowindex) {
      standard.list.grid.select(rowindex);//选中行

+ 1 - 1
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/standardDetail.jsp

@ -12,7 +12,7 @@
  <div class="m-form-group">
    <label>发布机构:</label>
    <div class="l-text-wrapper m-form-control">
      <label type="text" class="f-w240" id="lbl_publisher" data-align="left" style="text-align: left"></label>
      <label type="text" class="f-w240" id="lbl_publisher" data-align="left" style="text-align: left;height: 32px;overflow: hidden; text-overflow: ellipsis;white-space: nowrap;"></label>
    </div>
  </div>
  <div class="m-form-group">

+ 2 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/standardDetailJs.jsp

@ -40,6 +40,7 @@
                  success: function (data) {
                      if(data.successFlg){
                          $("#lbl_publisher").text(data.publisher);
                          $("#lbl_publisher").attr("title",data.publisher);
                          $("#lbl_publisherOrgCode").text(data.publisherOrgCode);
                          u.$form.attrScan();
                          u.$form.Fields.fillValues({
@ -79,6 +80,7 @@
                  success: function (data) {
                      if(data.successFlg){
                          $("#lbl_publisher").text(data.name);
                          $("#lbl_publisher").attr("title",data.name);
                          $("#lbl_publisherOrgCode").text(data.code);
                      }else{
                          $.ligerDialog.error(data.message);

+ 2 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/versionDetailJs.jsp

@ -127,6 +127,7 @@
            $("#btn_save").html("确认中...").css("pointer-events","none");
            var _url = "";
            var resultData;
            
            standard.version.$addform.attrScan();
            var jsonString = $.parseJSON(standard.version.$addform.Fields.toJsonString());
              if( $("#type").val()=="0"){//新增保存
@ -147,6 +148,7 @@
                  var data = standard.version._getData;
                  data.name = jsonString.name;
                  resultData = data;
                  resultData.publishTime = new Date(resultData.publishTime);
                  _url = standard.version._url+"/standardCenter/updateVersion";
              }

+ 2 - 2
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/datasource/editorSourceJs.jsp

@ -50,8 +50,8 @@
                            $("#ip").val((configStr.split("\/")[2]).split(":")[0]);
                            $("#port").val((configStr.split("\/")[2]).split(":")[1]);
                            $("#dataSourceName").val((configStr.split("\/")[3]).split("?")[0]);
                            $("#userName").val((configStr.split("\/")[3]).split("?")[1].split(";")[0].split("=")[1]);
                            $("#password").val((configStr.split("\/")[3]).split("?")[1].split(";")[1].split("=")[1]);
                            $("#userName").val((configStr.split("\/")[3]).split("?")[1].split("&")[0].split("=")[1]);
                            $("#password").val((configStr.split("\/")[3]).split("?")[1].split("&")[1].split("=")[1]);
                        }else{
                            $("#ip").val(configStr.split("\/")[3].split(":")[0]);
                            $("#port").val(configStr.split("\/")[3].split(":")[1]);

+ 3 - 3
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictItemDialog.jsp

@ -8,7 +8,7 @@
        <div class="m-form-control ">
                <input data-type="select" id="dictName" type="text" class="l-text-field required"name="dictName"/>
                <input data-type="select" id="dictName" type="text" class="l-text-field required" name="dictName"/>
        </div>
    </div>
@ -48,14 +48,14 @@
        <div class="m-form-control ">
            <div class="l-text">
                <input type="text" class="l-text-field" class="l-text-field"name="sort">
                <input type="text" class="l-text-field" class="l-text-field" name="sort">
            </div>
        </div>
    </div>
    <!-- 隐藏字段 -->
    <div class="m-form-group" style="display: none;">
        <inputname="id" hidden="hidden"/>
        <input name="id" hidden="hidden"/>
    </div>
    <div class="m-form-bottom">
        <div id="btnCancel" class="l-button l-button-no">

+ 6 - 2
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictItemDialogJs.jsp

@ -6,7 +6,7 @@
    /* *************************** 模块初始化 ***************************** */
    var dictItemDialog = {
        actionUrl:"${contextRoot}/dict/addDictItem",
        actionUrl:"${contextRoot}/dict/"+("${mode}" != "modify"?"addDictItem":"updateDictItem"),
        $dictName:$("#dictName"),
        init: function () {
@ -67,7 +67,10 @@
                if (!$("#div_info_form").ligerAutoForm("validate")) {
                    return;
                }
                var data = $("#div_info_form").ligerAutoForm("getData");
                debugger
                var dictName = data.dictName;
                $.ajax({ //ajax处理
                    type: "POST",
                    url : me.actionUrl,
@ -76,7 +79,8 @@
                    cache:false,
                    success :function(data){
                        if(data.successFlg) {
                            parent.dict.dialogSuccess(data.message,"1");
                            //parent.dict.$dictItemGrid.loadServerData({dictId:dictName});
                            parent.dict.dialogSuccess(data.message,"2");
                        }
                        else{
                            $.ligerDialog.error(data.message);

+ 5 - 4
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictJs.jsp

@ -98,7 +98,7 @@
                urlParms: params
            });
        },
       deleteResourceRest: function (id) {
       deleteResourceRest: function (id,dictName) {
            var message = "确定要删除该字典项吗?";
            jQuery.ligerDialog.confirm(message, function (confirm) {
                if (confirm)
@ -112,7 +112,7 @@
                        success :function(data){
                            if(data.successFlg) {
                                $.ligerDialog.success(data.message);
                                dict.$dictItemGrid.reload();
                                dict.$dictItemGrid.loadServerData({dictId:dictName});
                            }
                            else{
                                $.ligerDialog.error(data.message);
@ -183,7 +183,8 @@
                    dict.editorResourceRestDialog(data.id);
                },
                onSelectRow:function(rowdata, rowid, rowobj) {
                    dict.$dictItemGrid.loadServerData({dictId:rowdata.dictName});
                    dict.$dictItemGrid.setParm("dictId",rowdata.dictName);
                    dict.$dictItemGrid.reload();
                }
            });
@ -196,7 +197,7 @@
                        display: '操作', name: 'operator', width: '17%', render: function (row) {
                        var html = '<div class="m-inline-buttons" style="width:80px;">';
                        html += "<a class=\"m-btn-edit\" onclick=\"dict.editorResourceRestDetailDialog('"+row.id+"')\"></a>";
                        html += "<a class=\"m-btn-delete\" onclick=\"dict.deleteResourceRest('"+row.id+"')\"></a>";
                        html += "<a class=\"m-btn-delete\" onclick=\"dict.deleteResourceRest('"+row.id+"','" + row.dictName + "')\"></a>";
                        html += '</div>';
                        return html;
                    }

+ 2 - 2
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menu/menuJs.jsp

@ -32,7 +32,7 @@
                    },
                    {display: 'url', name: 'url', width: '57%', align: "center"},
                    {
                        display: '操作', name: 'operator', width: '17%', render: function (row) {
                        display: '操作', name: 'operator', width: '17%', render: function (row,rowid) {
                        var html = '<div class="m-inline-buttons" style="width:150px;">';
                        if (row.valid == 'true') {
                            html += '<a href="javascript:void(0)" onclick="javascript:menu.activity(\'' + row.id + '\',\'false\')">失效</a>';
@ -40,7 +40,7 @@
                            html += '<a href="javascript:void(0)" onclick="javascript:menu.activity(\'' + row.id + '\',\'true\')">开启</a>';
                        }
                        html += "<a class=\"m-btn-edit\" onclick=\"menu.editorDialog('"+row.id+"')\"></a>";
                        html += "<a class=\"m-btn-delete\" onclick=\"menu.delete('"+row.id+"')\"></a>";
                        html += "<a class=\"m-btn-delete\" onclick=\"menu.delete('"+rowid+"')\"></a>";
                        html += '</div>';
                        return html;
                    }

+ 2 - 2
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/editorUser.jsp

@ -45,8 +45,8 @@
        <label>性别:</label>
        <div class="u-checkbox-wrap m-form-control ">
            <input type="radio" value="1" name="inp_field_is_null" name="userSex">男
            <input type="radio" value="2" name="inp_field_is_null" name="userSex">女
            <input type="radio" value="1"  name="userSex">男
            <input type="radio" value="2"  name="userSex">女
        </div>
    </div>

+ 0 - 21
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/editorUserCss.jsp

@ -1,21 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style>
    #div_wrapper #div_wrapper_right .div_wrapper_right_top .m-form-inline .m-form-group {
        margin-bottom: 0px;
    }
    #div_wrapper #div_wrapper_right .div_wrapper_right_top .m-form-inline .m-form-group span {
        line-height: 2
    }
    #div_wrapper #div_wrapper_right .div_wrapper_right_top .m-form-inline .m-form-group center hr {
        height: 1px;
        border: none;
        border-top: 1px solid #2d9bd2;
        margin-top: 0px;
        margin-bottom: 0px
    }
</style>

+ 3 - 1
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/editorUserJs.jsp

@ -39,7 +39,9 @@
                data:data,
                validate:{
                    loginCode:"required",
                    userQq:"digits",
                    userEmail:"email",
                    userMobile:"phone"
                },
                message:{

+ 39 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/roleDistribute.jsp

@ -0,0 +1,39 @@
<%@ page import="org.springframework.util.StringUtils" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<div id="layoutPanel">
    <div position="top">
        <div class="m-form-group" style="margin-top:10px">
            <label style="width:70px">用户:</label>
            <div class="m-form-control ">
                <div class="l-text" >
                    <input type="text"  disabled class="l-text-field"  name="loginCode"  value="${model.loginCode}"/>
                </div>
            </div>
            <div class="m-form-control right" style="margin-right:10px">
                <div id="btnReset" class="l-button">
                    <span>重置</span>
                </div>
            </div>
        </div>
        <div class="m-form-group" style="display: none;">
            <input name="id" hidden="hidden" value="${userId}"/>
        </div>
    </div>
    <div position="left" style="margin-left:10px;margin-right:10px;">
        <div id="roleGrid"></div>
    </div>
    <div position="center" style="margin-right:10px;">
        <div id="roleDistributeGrid"></div>
    </div>
    <div position="bottom">
        <div class="m-form-bottom">
            <div id="btnCancel" class="l-button l-button-no">
                <span>关闭</span>
            </div>
            <div id="btnSave" class="l-button">
                <span>保存</span>
            </div>
        </div>
    </div>
</div>

+ 125 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/roleDistributeJs.jsp

@ -0,0 +1,125 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script>
    var roleDistribute = {
        roleId:'',
        roleGrid:'',
        userId:"${userId}",
        roleId:"${roleId}",
        roleDistributeGrid:'',
        init:function(){
            var me = this;
            $("#btnSave").click(function () {
                var roleId = "",roleData = me.roleDistributeGrid.getData();
                if(roleData && roleData.length > 0)
                {
                    for(var i =0;i < roleData.length;i++)
                    {
                        roleId += (roleId == ""?"":",") + roleData[i].roleId;
                    }
                }
                $.ajax({ //ajax处理
                    type: "POST",
                    url: "/user/userRoleDistribute",
                    dataType: "json",
                    data: {userId:me.userId,roleId:roleId},
                    cache: false,
                    success: function (data) {
                        if (data.successFlg) {
                            parent.user.dialogSuccess(data.message);
                        }
                        else {
                            $.ligerDialog.error(data.message);
                        }
                    },
                    error: function (data) {
                        $.ligerDialog.error("Status:" + data.status + "(" + data.statusText + ")");
                    }
                });
            });
            $("#btnCancel").click(function () {
                parent.user.dialog.close();
            });
            $("#btnReset").click(function () {
                me.roleDistributeGrid.set("data",[])
            });
            $("#layoutPanel").ligerLayout({
                leftWidth:350
                ,centerWidth:230
            })
            me.roleDistributeGrid = $("#roleDistributeGrid").ligerGrid({
                columns:[
                    {display:"已分配角色",name:"roleName",align:"center"}
                ]
                ,url:""
                ,width:225
                ,height:300
                ,usePager:false
                ,onDblClickRow :function(data,rowid,rowdata){
                    me.roleDistributeGrid.deleteRow(rowid);
                }
            })
            me.roleGrid = $("#roleGrid").ligerGrid({
                columns:[
                    {display:"角色",name:"name",align:"center",width:120},
                    {display:"说明",name:"remark",align:"center",width:175}
                ]
                ,url:"/role/getRoleList"
                ,height:300
                ,usePager:false
                ,onDblClickRow :function(data,rowid,rowdata){
                    var roleDistriData = me.roleDistributeGrid.getData();
                    var isExist  = false;
                    for(var i = 0;i < roleDistriData.length;i++)
                    {
                        if( roleDistriData[i].roleId == data.id)
                        {
                            isExist = true;
                            break;;
                        }
                    }
                    if(isExist)
                        return;
                    me.roleDistributeGrid.addRow({roleId:data.id,roleName:data.name});
                }
                ,onSuccess:function(data,grid)
                {
                    if(me.roleId && data)
                    {
                        var roleArray = me.roleId.split(",");
                        var roleData = data.detailModelList, roleDisData = [];
                        for(var i =0;i < roleArray.length;i++)
                        {
                            for(var j =0; j < roleData.length;j++)
                            {
                                if(roleData[j].id == roleArray[i])
                                {
                                    roleDisData.push({roleId:roleData[j].id,roleName:roleData[j].name});
                                }
                            }
                        }
                        me.roleDistributeGrid.addRows(roleDisData);
                    }
                    return true;
                }
            })
        }
    }
    $(function(){
        roleDistribute.init();
    })
</script>

+ 16 - 1
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/userJs.jsp

@ -32,7 +32,8 @@
                        }
                        html += "<a class=\"m-btn-edit\" onclick=\"user.editorDialog('"+row.id+"')\"></a>";
                        html += "<a class=\"m-btn-delete\" onclick=\"user.delete('"+row.id+"')\"></a>";
                        html+= '<a href="javascript:void(0)" onclick="javascript:user.restP(\'' + row.id + '\')">重置密码</a> ';
                        html+= '<a href="javascript:void(0)" style="width:70px" onclick="javascript:user.restP(\'' + row.id + '\')">重置密码</a> ';
                        html+= '<a href="javascript:void(0)" style="width:70px" onclick="javascript:user.roleDistribute(\'' + row.id + '\')">角色分配</a> ';
                        html += '</div>';
                        return html;
                    }
@ -46,6 +47,20 @@
            me.bindEvents();
        },
        roleDistribute:function(id){
            var me = this;
            var title = "角色分配";
            var params = {userId:id};
            me.dialog = $.ligerDialog.open({
                height:460,
                width: 600,
                title: title,
                url: '${contextRoot}/user/roleDistribute',
                //load: true,
                urlParms: params
            });
        },
        restP:function(id){

+ 9 - 7
Hos-resource/src/main/webapp/develop/lib/jobMapping/tableViewer.js

@ -86,9 +86,11 @@
		var $fromTr,$toTr;
		_.each(relsData,function(rel) {
			$fromTr = tables[rel.from].$node.find('li.u-table-tr[code='+rel.fromPort+']'),
			$toTr = tables[rel.to].$node.find('li.u-table-tr[code='+rel.toPort+']');
			TV.drawLine($fromTr,$toTr);
			if(tables[rel.from]!=undefined && tables[rel.to]!=undefined){
				$fromTr = tables[rel.from].$node.find('li.u-table-tr[code='+rel.fromPort+']'),
					$toTr = tables[rel.to].$node.find('li.u-table-tr[code='+rel.toPort+']');
				TV.drawLine($fromTr,$toTr);
			}
		});
		
		TV.updateMeta();
@ -791,7 +793,7 @@
	})
	// 处理鼠标进入表格覆盖层
	.on('mouseenter','div.j-cover',function() {
			debugger
			
		var code = $(this).attr('code'),
		TV = $.TableView,
		$table = TV.tables[code].$node;
@ -804,7 +806,7 @@
	})
	// 处理鼠标离开表格覆盖层
	.on('mouseleave','.m-table-viewer',function() {
			debugger
			
		var code = $(this).find('ul').attr('code'),
		TV = $.TableView,
		$table = TV.tables[code].$node;
@ -816,7 +818,7 @@
	// 绑定窗口大小改变事件
	$(window).on('resize',function() {
		debugger
		
		var TV = $.TableView,
			curTV = TV.curTV;
		curTV.reInit();
@ -824,7 +826,7 @@
	})
	// 监听窗口滚动
	.on('scroll',function() {
			debugger
			
		$.TableView.resizeCanvas();
	});
})(window, jQuery);

+ 13 - 1
Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerEx.js

@ -870,7 +870,8 @@
            minlength: "最少要输入{0}个字符",
            max: "请输入不大于{0}的数值",
            min: "请输入不小于{0}的数值",
            custom:"自定义函数出错"
            custom:"自定义函数出错",
            phone:"请输入有效的电话号码"
        },
        __getType: function ()
        {
@ -1078,6 +1079,17 @@
                                }
                                break;
                            }
                            case "phone":
                            {
                                debugger
                                var isPhone = /^(0[1-9]{2})-\d{8}$|^(0[1-9]{3}-(\d{7,8}))$/;
                                var isMobile = /^(13|14|15|17|18)[0-9]{9}$/
                                if (!isPhone.test(value) && !isMobile.test(value)) {
                                    return message;
                                }
                                break;
                            }
                            case "ip":
                            {
                                 var re =new RegExp("^(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})$");

+ 28 - 4
Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerOverwrite.js

@ -211,6 +211,18 @@
                }
            }
        },
        _setDisabled: function (value)
        {
            //禁用样式
            if (value)
            {
                this.wrapper.addClass('l-text-disabled');
                $(".l-trigger-cancel").remove();
            } else
            {
                this.wrapper.removeClass('l-text-disabled');
            }
        },
        //获取扩展字段
        getExtendValue: function () {
            try {
@ -271,6 +283,18 @@
            h = g._calculateGridBodyHeight(h);
            if (h > 0)
            {
                /** 列表高度计算bug修改 **/
                var gridHeaderHeight = (p.headerRowHeight+1) * (g._columnMaxLevel - 1) + p.headerRowHeight + 1;
                /***********************/
                /******** 隐藏表头 add by hzp at 2016-05-05 ************/
                if(p.hideHeader)
                {
                    h += 41;
                    g.gridheader.hide();
                    gridHeaderHeight = 0;
                }
                /*****************************************************/
                g.gridbody.height(h);
                if (p.frozen)
                {
@ -281,16 +305,15 @@
                    {
                        if (h > 6)
                            g.f.gridbody.height(h - 6);
                    } else
                    }
                    else
                    {
                        g.f.gridbody.height(h);
                    }
                    /********************************************/
                }
                /** 列表高度计算bug修改 **/
                var gridHeaderHeight = (p.headerRowHeight+1) * (g._columnMaxLevel - 1) + p.headerRowHeight + 1;
                /***********************/
                g.gridview.height(h + gridHeaderHeight);
            }
            g._updateHorizontalScrollStatus.ligerDefer(g, 10);
@ -333,6 +356,7 @@
                        var dict = $.ehrDict.getDictData(_col.dictName, col.dictType, col.dictWhere, function (response) {
                            g.refreshColumn(_col.dictName, response);
                        });
                        dict = $.ehrDict.listToDict(dict);
                        if (dict != null) {
                            if (dict[data] != null) {
                                return dict[data].value;

+ 1 - 1
Hos-resource/src/main/webapp/develop/lib/ligerui/ligerui.all.js

@ -12752,7 +12752,7 @@
            stat = stat.replace(/{to}/, r2);
            stat = stat.replace(/{total}/, p.total);
            stat = stat.replace(/{pagesize}/, p.pageSize);
            $('.l-bar-text', g.toolbar).html(stat);
            $('.l-bar-text', g.toolbar).html(stat).attr("title",stat);
            if (!p.total)
            {
                $(".l-bar-btnfirst span,.l-bar-btnprev span,.l-bar-btnnext span,.l-bar-btnlast span", g.toolbar)

+ 3 - 1
Hos-resource/src/main/webapp/develop/lib/ligerui/skins/custom/css/all.css

@ -199,4 +199,6 @@ td.l-filter-rowlastcell{vertical-align:top;line-height:27px;}
.l-verify-tip-corner{top:12px;}
.l-verify-tip-content{line-height:30px;padding-top:0px;padding-bottom:0px;}
.f-pl5{padding-left: 5px;}
.f-pl5{padding-left: 5px;}
#div_left_grid .l-bar-group.l-bar-message{    overflow: hidden;  text-overflow: ellipsis;  white-space: nowrap;  width: 80px;  left: 305px;  height: 30px;}
#div_relation_grid .l-bar-group.l-bar-message{    overflow: hidden;  text-overflow: ellipsis;  white-space: nowrap;  width: 216px;  height: 30px;}