فهرست منبع

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

humingfen 5 سال پیش
والد
کامیت
699d7d2ebd

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorService.java

@ -50,6 +50,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                " base_doctor a " +
                " JOIN base_doctor_hospital b ON a.id = b.doctor_code " +
                " JOIN wlyy_charge_dict e ON a.charge_type = e.charge_type " +
                " JOIN base_doctor_mapping c ON a.id = c.doctor " +
                " WHERE " +
                " 1 = 1";
        if (StringUtils.isNotBlank(city)){
@ -90,6 +91,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                " base_doctor a " +
                " JOIN base_doctor_hospital b ON a.id = b.doctor_code " +
                " JOIN wlyy_charge_dict e ON a.charge_type = e.charge_type " +
                " JOIN base_doctor_mapping c ON a.id = c.doctor " +
                " WHERE 1=1";
        if (StringUtils.isNotBlank(city)){
            sql += " AND a.city_name =:city";

+ 3 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -1013,7 +1013,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    " AND t.start_time <='"+endDate+"'"+
                    " )";
        }
        sql += " LIMIT " + (page - 1) * size + "," + size + "";
        sql += " AND d.del='1'AND d.charge_type is not null LIMIT " + (page - 1) * size + "," + size + "";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        if(list!=null&&list.size()>0){
            //获取排班
@ -2880,7 +2880,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        }
    
        if(StringUtils.isNotBlank(outpatientType)){
            sql+=" AND d.outpatient_type = '"+outpatientType+"' ";
            sql+=" AND d.outpatient_type like '%"+outpatientType+"%' ";
        }
    
        if(StringUtils.isNotBlank(keyName)){
@ -2896,7 +2896,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            sql+=" AND d.consult_status = '"+consultStatus+"' ";
        }
    
        sql += " order by a.total "+ consutlSort +" limit "+page * pagesize +","+pagesize;
        sql += " and d.del='1' and d.charge_type is not null order by a.total "+ consutlSort +" limit "+page * pagesize +","+pagesize;
        
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        logger.info("findDoctorByHospitalAndDiseaseAndDept end:"+DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss:SSS"));

+ 5 - 1
business/es-service/pom.xml

@ -82,7 +82,11 @@
            <artifactId>x-pack-transport</artifactId>
            <version>5.6.1</version>
        </dependency>
        <!--elasticsearch end-->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>6.2.3</version>
        </dependency>
        <!--   poi xml导入导出工具 end -->
    </dependencies>

+ 43 - 0
business/es-service/src/main/java/com/yihu/jw/es/es/ElasticFactory.java

@ -3,7 +3,16 @@ package com.yihu.jw.es.es;
import io.searchbox.client.JestClient;
import io.searchbox.client.JestClientFactory;
import io.searchbox.client.config.HttpClientConfig;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
@ -109,4 +118,38 @@ public class ElasticFactory {
            }
        }
    }
    //-----------------------------------restHighLevelClient----------------------------------------
    private RestHighLevelClient restHighLevelClient = null;
    public RestHighLevelClient getHighLevelClient() {
        try {
            initHighLevelClient();
            return restHighLevelClient;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    private synchronized void initHighLevelClient() throws UnknownHostException {
        //初始化ES操作客户端172.26.0.112:9200
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        String user[] = securityUser.split(":");
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials(user[0], user[1]));  //es账号密码
        restHighLevelClient = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost(esHost, 9200)
                ).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                        httpClientBuilder.disableAuthCaching();
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                })/*.setMaxRetryTimeoutMillis(2000)*/
        );
    }
}

+ 102 - 0
business/es-service/src/main/java/com/yihu/jw/es/es/Test.java

@ -0,0 +1,102 @@
package com.yihu.jw.es.es;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.*;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.search.Scroll;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static org.elasticsearch.index.query.QueryBuilders.matchQuery;
/**
 * Created by Trick on 2019/12/18.
 */
public class Test {
    private static RestHighLevelClient client = null;
    static {
        //初始化ES操作客户端172.26.0.112:9200
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("elastic", "changeme"));  //es账号密码
        client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("172.26.0.156", 9200)
                ).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                        httpClientBuilder.disableAuthCaching();
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                })/*.setMaxRetryTimeoutMillis(2000)*/
        );
    }
    public static void main(String[] args) throws Exception {
//        BulkRequest request = new BulkRequest();
//        request.add(new IndexRequest("test", "test", "1")
//                .source(XContentType.JSON, "field", "foo"));
//        request.add(new IndexRequest("test", "test", "2")
//                .source(XContentType.JSON, "field", "bar"));
//        request.add(new IndexRequest("test", "test", "3")
//                .source(XContentType.JSON, "field", "baz"));
//同步
//        BulkResponse bulkResponse = esClient.bulk(request);
        search();
    }
    static void index() throws Exception {
        GetRequest getRequest = new GetRequest("test", "test", "1");
        GetResponse response = client.get(getRequest);
        System.out.println(response.getId());
    }
    static void search()throws Exception{
        final Scroll scroll = new Scroll(TimeValue.timeValueMinutes(1L));
        SearchRequest searchRequest = new SearchRequest("posts");
        searchRequest.scroll(scroll);
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(matchQuery("title", "Elasticsearch"));
        searchRequest.source(searchSourceBuilder);
        SearchResponse searchResponse = client.search(searchRequest);
        String scrollId = searchResponse.getScrollId();
        SearchHit[] searchHits = searchResponse.getHits().getHits();
        while (searchHits != null && searchHits.length > 0) {
            SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId);
            scrollRequest.scroll(scroll);
            searchResponse = client.searchScroll(scrollRequest);
            scrollId = searchResponse.getScrollId();
            searchHits = searchResponse.getHits().getHits();
        }
        ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
        clearScrollRequest.addScrollId(scrollId);
        ClearScrollResponse clearScrollResponse = client.clearScroll(clearScrollRequest);
        boolean succeeded = clearScrollResponse.isSucceeded();
    }
}

+ 20 - 0
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -44,6 +44,7 @@ import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.util.common.FileUtil;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
@ -53,6 +54,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -67,6 +69,7 @@ import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
/**
@ -152,6 +155,9 @@ public class ImService {
	@Autowired
	private BaseDoctorRoleDao baseDoctorRoleDao;
	
	@Autowired
	private StringRedisTemplate redisTemplate;
	
	
	
	/**
@ -2296,4 +2302,18 @@ public class ImService {
		result = jdbcTemplate.query(sql, new BeanPropertyRowMapper(ConsultVO.class));
		return result;
	}
	
	/**
	 * 修改视频会话邀请状态
	 * @param session_id session_id
	 * @param status 1发起,0挂断
	 */
	public void changeVideoInviteStatus(String session_id,Integer status) throws Exception{
		if(1 == status){
			redisTemplate.opsForValue().set("video_invite_"+session_id,"1");
		}
		if(0== status){
			redisTemplate.opsForValue().set("video_invite_"+session_id,"0");
		}
	}
}

+ 6 - 1
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -508,7 +508,12 @@ public class BaseHospitalRequestMapping {
    
        //医生端:医生提醒居民上线
        public static final String alertPatientOnline="alertPatientOnline";
    
        //医生端:发起/断开 会话视频邀请
        public static final String videoInviteStatus="videoInviteStatus";
    
        //医生端:查询会话视频邀请状态
        public static final String getVideoInviteStatus="getVideoInviteStatus";
    }

+ 7 - 5
svr/svr-internet-hospital/pom.xml

@ -117,11 +117,11 @@
            <artifactId>mysql-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>elasticsearch-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>com.yihu</groupId>-->
            <!--<artifactId>elasticsearch-starter</artifactId>-->
            <!--<version>2.0.0</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>io.github.swagger2markup</groupId>
@ -232,6 +232,8 @@
            <version>2.0.0</version>
        </dependency>
        <!--oracle驱动-->
        <dependency>
            <groupId>com.oracle</groupId>

+ 22 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/DoctorConsultEndpoint.java

@ -25,6 +25,7 @@ import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.sms.service.ZhongShanSMSService;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.wlyy.service.WlyyBusinessService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -720,4 +721,25 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
		return success("转发成功",wlyyBusinessService.wlyyMessageForward(senderIdcard,reciverIdcard,messageids,title,sessionType));
	}
	
	@PostMapping(value = BaseHospitalRequestMapping.DodtorIM.videoInviteStatus)
	@ApiOperation(value = "医生端:发起/断开 会话视频邀请", notes = "医生端:发起/断开 会话视频邀请")
	public Envelop videoInviteStatus(@ApiParam(name = "session_id", value = "会话ID")
	                                  @RequestParam(value = "session_id",required = true) String session_id,
	                                 @ApiParam(name = "status", value = "会话ID:1发起,0挂断")
	                                 @RequestParam(value = "status",required = true) Integer status)throws Exception  {
		imService.changeVideoInviteStatus(session_id,status);
		return success("操作成功");
	}
	
	@GetMapping(value = BaseHospitalRequestMapping.DodtorIM.getVideoInviteStatus)
	@ApiOperation(value = "医生端:查询会话视频邀请状态", notes = "医生端:查询会话视频邀请状态")
	public Envelop getVideoInviteStatus(@ApiParam(name = "session_id", value = "会话ID")
	                                 @RequestParam(value = "session_id",required = true) String session_id)throws Exception  {
		String status = redisTemplate.opsForValue().get("video_invite_"+session_id);
		if(StringUtil.isBlank(status)){
			status = "0";
		}
		return success("查询成功",status);
		
	}
}

+ 44 - 41
svr/svr-internet-hospital/src/main/resources/application.yml

@ -85,14 +85,14 @@ spring:
    url: jdbc:mysql://172.26.0.114/base?useUnicode:true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: root
    password: jkzlehr
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
#  elasticsearch:
#    cluster-name: jkzl #集群名 默认elasticsearch
#    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
#    client-transport-sniff: false
#    jest:
#      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
#      connection-timeout: 60000 # Connection timeout in milliseconds.
#      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://172.26.0.116:61616
    user: admin
@ -140,6 +140,7 @@ es:
  host:  http://172.26.0.112:9200
  tHost: 172.26.0.112:9300
  clusterName: jkzl
  securityUser: elastic:elastic
# 上传文件临时路径配置
FileTempPath:
@ -155,14 +156,14 @@ spring:
    url: jdbc:mysql://172.26.0.104/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
    username: ssgg
    password: ssgg@jkzl2019
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
#  elasticsearch:
#    cluster-name: jkzl #集群名 默认elasticsearch
#    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
#    client-transport-sniff: false
#    jest:
#      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
#      connection-timeout: 60000 # Connection timeout in milliseconds.
#      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://172.26.0.116:61616
    user: admin
@ -202,6 +203,7 @@ es:
  host:  http://172.26.0.112:9200
  tHost: 172.26.0.112:9300
  clusterName: jkzl
  securityUser: elastic:elastic
# 上传文件临时路径配置
FileTempPath:
@ -218,14 +220,14 @@ spring:
    url: jdbc:mysql://172.16.1.42:3306/base?useUnicode:true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: im
    password: 2oEq3Kf7
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 192.0.33.26:9200 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://192.0.33.26:9300
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
#  elasticsearch:
#    cluster-name: jkzl #集群名 默认elasticsearch
#    cluster-nodes: 192.0.33.26:9200 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
#    client-transport-sniff: false
#    jest:
#      uris: http://192.0.33.26:9300
#      connection-timeout: 60000 # Connection timeout in milliseconds.
#      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://59.61.92.90:9103
    user: jkzl
@ -293,14 +295,14 @@ spring:
#    url: jdbc:mysql://172.19.103.77/base?useUnicode:true&characterEncoding=utf-8&autoReconnect=true
#    username: root
#    password: 123456
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
#  elasticsearch:
#    cluster-name: jkzl #集群名 默认elasticsearch
#    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
#    client-transport-sniff: false
#    jest:
#      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
#      connection-timeout: 60000 # Connection timeout in milliseconds.
#      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://172.26.0.116:61616
    user: admin
@ -361,14 +363,14 @@ spring:
        show_sql: true
    database: oracle
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
#  elasticsearch:
#    cluster-name: jkzl #集群名 默认elasticsearch
#    cluster-nodes: 172.26.0.115:9300,172.26.0.115:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
#    client-transport-sniff: false
#    jest:
#      uris: http://172.26.0.112:9200,http://172.26.0.112:9200
#      connection-timeout: 60000 # Connection timeout in milliseconds.
#      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://172.26.0.116:61616
    user: admin
@ -413,4 +415,5 @@ es:
    Statistics: hlw_quota_test
  host:  http://172.26.0.112:9200
  tHost: 172.26.0.112:9300
  clusterName: jkzl
  clusterName: jkzl
  securityUser: elastic:elastic

+ 1 - 0
wlyy-lib-parent-pom/pom.xml

@ -29,6 +29,7 @@
        <module>../business/base-service</module>
        <module>../business/sms-service</module>
        <module>../business/im-service</module>
        <module>../business/es-service</module>
    </modules>
</project>