浏览代码

Merge branch 'dev' of zd_123/patient-co-management into dev

chenweida 7 年之前
父节点
当前提交
3f8e3fae83

+ 52 - 36
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/jkedu/service/EduArticleService.java

@ -752,28 +752,22 @@ public class EduArticleService {
    private void deleteEsDataByBatch(String batchNo) {
        JestClient jestClient = null;
        try {
            int i = 0;
            jestClient = elasticFactory.getJestClient();
            //先根据条件查找出来
            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
            searchSourceBuilder.query(
                    new BoolQueryBuilder()
                            .must(QueryBuilders.matchQuery("batchNo", batchNo))
            ).size(500000);//一次取10000条
            Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(esIndex).addType(esType)
                    .build();
            SearchResult result = jestClient.execute(search);
            List<HealthEduArticleES> healthEduArticleESs = result.getSourceAsObjectList(HealthEduArticleES.class);
            //根据id批量删除
            Bulk.Builder bulk = new Bulk.Builder().defaultIndex(esIndex).defaultType(esType);
            for (HealthEduArticleES obj : healthEduArticleESs) {
                Delete index = new Delete.Builder(obj.getId()).build();
                bulk.addAction(index);
            String sql = "select id from " + esIndex + " where batchNo='" + batchNo + "'";
            List<Map<String, Object>> returnList = elasticsearchUtil.excuteDataModel(sql);
            //根据id批量删除
            for (Map<String, Object> obj : returnList) {
                if (obj.containsKey("_id")) {
                    i++;
                    Delete index = new Delete.Builder(obj.get("id").toString()).build();
                    bulk.addAction(index);
                }
            }
            BulkResult br = jestClient.execute(bulk.build());
            logger.info("delete data count:" + healthEduArticleESs.size());
            logger.info("delete data count:" + i);
            logger.info("delete flag:" + br.isSucceeded());
        } catch (Exception e) {
            e.printStackTrace();
@ -886,6 +880,9 @@ public class EduArticleService {
            if (healthEduArticleESSaveList != null && healthEduArticleESSaveList.size() > 0) {
                HealthEduArticleES healthEduArticleESUserType2 = healthEduArticleESSaveList.get(0);
                healthEduArticleESUserType2.setUserType(2);
                healthEduArticleESUserType2.setCzrq(null);
                healthEduArticleESUserType2.setPatientCode(null);
                healthEduArticleESUserType2.setPatientName(null);
                healthEduArticleESSaveList.add(healthEduArticleESUserType2);
            }
@ -928,7 +925,7 @@ public class EduArticleService {
            List<Map<String, Object>> returnList = elasticsearchUtil.excuteDataModel(sql);
            //根据id批量删除
            for (Map<String, Object> obj : returnList) {
                if (obj.containsKey("id")) {
                if (obj.containsKey("_id")) {
                    i++;
                    Delete index = new Delete.Builder(obj.get("id").toString()).build();
                    bulk.addAction(index);
@ -1036,23 +1033,42 @@ public class EduArticleService {
                HealthEduArticle healthEduArticle = articleMap.get(healthEduArticlePatient.getArticle());
                healthEduArticleES.setArticleId(healthEduArticle.getCode());
                healthEduArticleES.setArticleContent(healthEduArticle.getContent());
                healthEduArticleES.setArticleTitle(healthEduArticle.getTitle());
                healthEduArticleES.setIsRead(healthEduArticlePatient.getRead());
                healthEduArticleES.setOperatorId(doctorCode); //之前旧数据没有文章作者 默认是发送人
                healthEduArticleES.setArticleCover(healthEduArticle.getUrl());
                healthEduArticleES.setArticleSource(adminTeam.getOrgName());//文章来源 旧数据默认是医生的所在团队的所属机构
                healthEduArticleES.setOperatorId(wjwCode); //之前旧数据没有文章作者 默认是发送人
                healthEduArticleES.setArticleSource("厦门市卫生与计划生育委员会");//文章来源 旧数据默认是医生的所在团队的所属机构
                if (healthEduArticle.getContent().length() >= 100) {
                    healthEduArticleES.setArticleContent(healthEduArticle.getContent().substring(0, 100));
                } else {
                    healthEduArticleES.setArticleContent(healthEduArticle.getContent());
                }
                healthEduArticleES.setFirstLevelCategoryId(firstId);
                healthEduArticleES.setFirstLevelCategoryName(firstName);
                if (secondList != null && secondList.size() > 0) {
                    for (NewCategoryModel newCategoryModel : secondList) {
                        if (newCategoryModel.getCategoryName().equals(healthEduArticle.getKeyword())) {
                            healthEduArticleES.setSecondLevelCategoryId(newCategoryModel.getCategoryId());
                            healthEduArticleES.setSecondLevelCategoryName(newCategoryModel.getCategoryName());
                        }
                    }
                }
                //数据库中的isRead 0已读,1未读--->Es中isRead 0未读 1已读
                if (healthEduArticlePatient.getRead() == null) {
                    healthEduArticleES.setIsRead(1);
                    healthEduArticleES.setCzrq(healthEduArticlePatient.getCzrq());
                } else {
                    healthEduArticleES.setCzrq(null);
                    healthEduArticleES.setIsRead(0);
                }
                healthEduArticleES.setAdminTeamCode(adminTeam.getId());
                healthEduArticleES.setAdminTeamName(adminTeam.getName());
                healthEduArticleES.setHospital(adminTeam.getOrgCode());
                healthEduArticleES.setHospitalName(adminTeam.getOrgName());
                healthEduArticleES.setTown(adminTeam.getTownCode());
                healthEduArticleES.setTownName(adminTeam.getTownName());
                if (adminTeam!=null){
                    healthEduArticleES.setAdminTeamCode(adminTeam.getId());
                    healthEduArticleES.setAdminTeamName(adminTeam.getName());
                }
                healthEduArticleES.setCreateTime(new Date());
                healthEduArticleES.setUserType(1);//患者
                healthEduArticleES.setAllCount(healthEduArticlePatientTemps.size());
                healthEduArticleESSaveList.add(healthEduArticleES);
@ -1079,15 +1095,15 @@ public class EduArticleService {
            HealthEduArticle healthEduArticle = articleMap.get(healthEduArticlePatientTemps.get(0).getArticle());
            healthEduArticleES.setArticleId(healthEduArticle.getCode());
            healthEduArticleES.setArticleTitle(healthEduArticle.getTitle());
            healthEduArticleES.setArticleCover(healthEduArticle.getUrl());
            healthEduArticleES.setOperatorId(wjwCode); //之前旧数据没有文章作者 默认是卫计委
            healthEduArticleES.setArticleSource("厦门市卫生与计划生育委员会");//文章来源 旧数据默认是卫计委
            if (healthEduArticle.getContent().length() >= 100) {
                healthEduArticleES.setArticleContent(healthEduArticle.getContent().substring(0, 100));
            } else {
                healthEduArticleES.setArticleContent(healthEduArticle.getContent());
            }
            healthEduArticleES.setArticleTitle(healthEduArticle.getTitle());
            healthEduArticleES.setArticleCover(healthEduArticle.getUrl());
            healthEduArticleES.setOperatorId(wjwCode); //之前旧数据没有文章作者 默认是卫计委
            healthEduArticleES.setArticleSource("厦门市卫生与计划生育委员会");//文章来源 旧数据默认是卫计委
            healthEduArticleES.setFirstLevelCategoryId(firstId);
            healthEduArticleES.setFirstLevelCategoryName(firstName);
            if (secondList != null && secondList.size() > 0) {
@ -1131,7 +1147,7 @@ public class EduArticleService {
    public Map<String, Object> deleteEsOldArticlePatient() throws Exception {
        Map<String, Object> returnMap = new HashMap<>();
        String sql = "select batch_no code from wlyy_health_edu_article_patient_copy group by batch_no";
        String sql = "select batch_no code from wlyy_health_edu_article_patient_copy WHERE admin_team_code IS NOT NULL AND batch_no IS NOT NULL group by batch_no";
        List<Map<String, Object>> queryids = jdbcTemplate.queryForList(sql);
        List<String> ids = queryids.stream().map(one -> one.containsKey("code") ? one.get("code").toString() : "").collect(Collectors.toList());
        int count = deleteEsByBatchNo(ids);
@ -1153,8 +1169,8 @@ public class EduArticleService {
                List<Map<String, Object>> returnList = elasticsearchUtil.excuteDataModel(sql);
                //根据id批量删除
                for (Map<String, Object> obj : returnList) {
                    if (obj.containsKey("id")) {
                        Delete index = new Delete.Builder(obj.get("id").toString()).build();
                    if (obj.containsKey("_id")) {
                        Delete index = new Delete.Builder(obj.get("_id").toString()).build();
                        bulk.addAction(index);
                        i++;
                    }