Pārlūkot izejas kodu

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

wangzhinan 1 gadu atpakaļ
vecāks
revīzija
8a404c27cf
22 mainītis faili ar 376 papildinājumiem un 203 dzēšanām
  1. 3 0
      business/base-service/src/main/java/com/yihu/jw/device/dao/PatientDeviceDao.java
  2. 22 0
      business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java
  3. 5 5
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/Device.java
  4. 9 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/statistics/ScreenQvo.java
  5. 141 117
      starter/elasticsearch-starter/src/main/java/com/yihu/jw/elasticsearch/ElasticSearch7Util.java
  6. 6 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java
  7. 1 1
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/zy/IotDeviceController.java
  8. 30 7
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/service/IotDeviceService.java
  9. 7 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/im/ImJobService.java
  10. 20 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/statistics/EsStatisticsEndpoint.java
  11. 2 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/KnowledgeArticleService.java
  12. 1 1
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/QrcodeService.java
  13. 99 46
      svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/controller/JobController.java
  14. 0 1
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/door/controller/WlyyDoorServiceOrderController.java
  15. 1 1
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/door/service/WlyyDoorServiceOrderService.java
  16. 2 1
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/DeviceController.java
  17. 5 3
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/DoctorDeviceController.java
  18. 4 2
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/PatientDeviceController.java
  19. 8 2
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/DeviceService.java
  20. 1 1
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/DeviceUploadService.java
  21. 6 7
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/PatientDeviceService.java
  22. 3 8
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/utils/QrcodeUtil.java

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/device/dao/PatientDeviceDao.java

@ -42,6 +42,9 @@ public interface PatientDeviceDao extends JpaRepository<DevicePatientDevice, Lon
    DevicePatientDevice findByDeviceSnAndUserType(String deviceSn, String userType);
    @Query("select a from DevicePatientDevice a where a.deviceSn=?1 and a.userType =?2 ")
    List<DevicePatientDevice> findByDeviceSnAndUserType2(String deviceSn, String userType);
    @Query("select pd from DevicePatientDevice pd where pd.deviceSn = ?1 and pd.del=0")
    List<DevicePatientDevice> findByDeviceSn(String deviceSn);

+ 22 - 0
business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java

@ -6507,8 +6507,14 @@ public class StatisticsEsService {
            listOfLists.add(list03);
            listOfLists.add(list04);
            listOfLists.add(list05);
            System.out.println("医生数据==>" + JSON.toJSONString(listOfLists));
            //数据转换
            List<Map<String, Object>> list = mergeAndSortLists(listOfLists, "2");
            System.out.println("合并医生数据==>" + JSON.toJSONString(list));
            //过滤科室和医生
            if (StringUtils.isNotBlank(qvo.getDeptCode()) || StringUtils.isNotBlank(qvo.getDoctorName())) {
                List<Map<String, Object>> filterDoctortList = new ArrayList<>();
@ -6540,6 +6546,7 @@ public class StatisticsEsService {
                        }
                    }
                }
                System.out.println("最后数据==>" + JSON.toJSONString(filterDoctortList));
                result.put("resultList", filterDoctortList);
                result.put("resultListSize", filterDoctortList.size());
            } else {
@ -7876,4 +7883,19 @@ public class StatisticsEsService {
        resultMap.put("urlAddress", urlAddress);
        return resultMap;
    }
    public Map<String, Object> getDoctorOrgCode(ScreenQvo qvo) {
        Map<String, Object> resultMap = new HashMap<>();
        String doctorCode = qvo.getDoctorCode();
        String sql = "SELECT org_code FROM base_doctor_hospital  WHERE doctor_code='" + doctorCode + "'";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        if (!list.isEmpty()) {
            Map<String, Object> map = list.get(0);
            resultMap.put("orgCode", map.get("org_code").toString());
        }else {
            resultMap.put("orgCode", "350211A1004");//三院
        }
        return resultMap;
    }
}

+ 5 - 5
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/Device.java

@ -14,13 +14,13 @@ import java.util.Date;
@SequenceGenerator(name="id_generated", sequenceName="dm_device")
public class Device extends IdEntity {
	private String categoryCode;
	private String photo;
	private String brands;
	private String model;
	private String categoryCode;//设备类型
	private String photo;//
	private String brands;//设备品牌
	private String model;//设备型号
	private String isMultiUser;
	private String multiUser;
	private String name;
	private String name;//名称
	private Date czrq;
	private String del;
	private String serviceTopic;//设备所属专题 防走失 preventLost

+ 9 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/statistics/ScreenQvo.java

@ -26,6 +26,7 @@ public class ScreenQvo {
    private String deptCode;//科室code
    private String deptName;//科室名称
    private String doctorName;//医生名称
    private String doctorCode;//医生code
    private int page;
@ -39,6 +40,14 @@ public class ScreenQvo {
    private String name;
    private String mobile;
    public String getDoctorCode() {
        return doctorCode;
    }
    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }
    public String getName() {
        return name;
    }

+ 141 - 117
starter/elasticsearch-starter/src/main/java/com/yihu/jw/elasticsearch/ElasticSearch7Util.java

@ -1,14 +1,13 @@
package com.yihu.jw.elasticsearch;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLExprParser;
import com.alibaba.druid.sql.parser.Token;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.searchbox.core.Update;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequest;
@ -26,8 +25,6 @@ import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentType;
@ -50,13 +47,9 @@ import org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
import org.elasticsearch.search.sort.SortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.nlpcn.es4sql.domain.Select;
import org.nlpcn.es4sql.domain.Where;
import org.nlpcn.es4sql.exception.SqlParseException;
import org.nlpcn.es4sql.jdbc.ObjectResult;
import org.nlpcn.es4sql.jdbc.ObjectResultsExtractor;
import org.nlpcn.es4sql.parse.ElasticSqlExprParser;
import org.nlpcn.es4sql.parse.SqlParser;
import org.nlpcn.es4sql.parse.WhereParser;
@ -74,8 +67,6 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.util.*;
@ -90,7 +81,7 @@ public class ElasticSearch7Util {
    private static final Logger logger = LoggerFactory.getLogger(ElasticSearch7Util.class);
    @Resource(name="restHighLevelClient")
    @Resource(name = "restHighLevelClient")
    private RestHighLevelClient restHighLevelClient;
    @Autowired
@ -101,6 +92,7 @@ public class ElasticSearch7Util {
    /**
     * 执行sql
     *
     * @param sql
     * @return
     */
@ -125,11 +117,11 @@ public class ElasticSearch7Util {
        SearchHit[] searchHits = hits.getHits();
        //遍历查询结果
        for(SearchHit hit : searchHits){
            Map<String,Object> datas = hit.getSourceAsMap();
            for (Object o:datas.values()){
                if (o instanceof Double){
                    Double valueTemp =Double.valueOf((Double)o);
        for (SearchHit hit : searchHits) {
            Map<String, Object> datas = hit.getSourceAsMap();
            for (Object o : datas.values()) {
                if (o instanceof Double) {
                    Double valueTemp = Double.valueOf((Double) o);
                    DecimalFormat df = new DecimalFormat("######0");
                    return Long.parseLong(df.format(valueTemp));
                }
@ -138,20 +130,20 @@ public class ElasticSearch7Util {
        return 0L;
    }
    public List<Map<String,Object>> executeSQLStream(String sql) throws Exception {
    public List<Map<String, Object>> executeSQLStream(String sql) throws Exception {
        ResultSet resultSet = elasticSearch7Pool.restHighLevelClientStream(sql);
        return resultSetUtil.resultToMapList(resultSet);
    }
    public <T> List<T> executeSQLStreamDO(String sql,Class<T> target) throws Exception {
    public <T> List<T> executeSQLStreamDO(String sql, Class<T> target) throws Exception {
        ResultSet resultSet = elasticSearch7Pool.restHighLevelClientStream(sql);
        return resultSetUtil.resultToEntity(resultSet,target);
        return resultSetUtil.resultToEntity(resultSet, target);
    }
    /**
     * 执行sql
     */
    public List<Map<String,Object>> executeSQL(String sql) throws IOException {
    public List<Map<String, Object>> executeSQL(String sql) throws IOException {
        //实例化查询请求对象
        SearchRequest request = new SearchRequest();
        //实例化SearchSourceBuilder
@ -159,7 +151,7 @@ public class ElasticSearch7Util {
        //根据索引、查询条件构建查询构造器
        BoolQueryBuilder boolQueryBuilder = createQueryBuilderBySql(sql);
        //将查询构造器注入SearchSourceBuilder
        searchBuilder.query(boolQueryBuilder).sort("quotaDate",SortOrder.DESC).sort("createTime",SortOrder.DESC);
        searchBuilder.query(boolQueryBuilder).sort("quotaDate", SortOrder.DESC).sort("createTime", SortOrder.DESC);
        //设置请求查询的索引(查询构造器中已指定,无需重复设置)
        //request.indices(indexName);
        //将构建好的SearchSourceBuilder注入请求
@ -171,10 +163,10 @@ public class ElasticSearch7Util {
        SearchHits hits = searchResponse.getHits();
        SearchHit[] searchHits = hits.getHits();
        List<Map<String,Object>> listData = new ArrayList<>();
        List<Map<String, Object>> listData = new ArrayList<>();
        //遍历查询结果
        for(SearchHit hit : searchHits){
            Map<String,Object> datas = hit.getSourceAsMap();
        for (SearchHit hit : searchHits) {
            Map<String, Object> datas = hit.getSourceAsMap();
            listData.add(datas);
            logger.info(datas.toString());
        }
@ -185,7 +177,7 @@ public class ElasticSearch7Util {
    /**
     * 执行sql
     */
    public <T> List<T> executeSql(String sql,Class<T> clazz) throws Exception {
    public <T> List<T> executeSql(String sql, Class<T> clazz) throws Exception {
        //实例化查询请求对象
        SearchRequest request = new SearchRequest();
        //实例化SearchSourceBuilder
@ -207,10 +199,10 @@ public class ElasticSearch7Util {
        SearchHit[] searchHits = hits.getHits();
        List<T> listData = new ArrayList<>();
        //遍历查询结果
        for(SearchHit hit : searchHits){
            Map<String,Object> datas = hit.getSourceAsMap();
        for (SearchHit hit : searchHits) {
            Map<String, Object> datas = hit.getSourceAsMap();
            T t = clazz.newInstance();
            BeanUtils.copyProperties(t,datas);
            BeanUtils.copyProperties(t, datas);
            listData.add(t);
            logger.info(datas.toString());
        }
@ -220,8 +212,9 @@ public class ElasticSearch7Util {
    /**
     * 构建查询构造器
     * @param indexName  索引名
     * @param whereExpress  查询条件:(f1=2 and f2=1) or (f3=1 and f4=1)
     *
     * @param indexName    索引名
     * @param whereExpress 查询条件:(f1=2 and f2=1) or (f3=1 and f4=1)
     * @return
     */
    public BoolQueryBuilder createQueryBuilderByWhere(String indexName, String whereExpress) {
@ -242,7 +235,7 @@ public class ElasticSearch7Util {
                boolQuery = QueryMaker.explan(where);
            }
        } catch (SqlParseException e) {
            logger.info("ReadES.createQueryBuilderByExpress-Exception,"+e.getMessage());
            logger.info("ReadES.createQueryBuilderByExpress-Exception," + e.getMessage());
            e.printStackTrace();
        }
        return boolQuery;
@ -250,6 +243,7 @@ public class ElasticSearch7Util {
    /**
     * 构建查询构造器
     *
     * @return
     */
    public BoolQueryBuilder createQueryBuilderBySql(String sql) {
@ -266,7 +260,7 @@ public class ElasticSearch7Util {
                boolQuery = QueryMaker.explan(where);
            }
        } catch (SqlParseException e) {
            logger.info("ReadES.createQueryBuilderByExpress-Exception,"+e.getMessage());
            logger.info("ReadES.createQueryBuilderByExpress-Exception," + e.getMessage());
            e.printStackTrace();
        }
        return boolQuery;
@ -290,17 +284,18 @@ public class ElasticSearch7Util {
    /**
     * 查询指定索引下的信息
     *
     * @param indexName 索引名称
     * @param condition 查询条件
     *  queryIndexContent("user_site"," and phone_no in('12234567890') ");
     *                  queryIndexContent("user_site"," and phone_no in('12234567890') ");
     */
    public List<Map<String,Object>> queryIndexContent(String indexName, String condition) throws IOException {
    public List<Map<String, Object>> queryIndexContent(String indexName, String condition) throws IOException {
        //实例化查询请求对象
        SearchRequest request = new SearchRequest();
        //实例化SearchSourceBuilder
        SearchSourceBuilder searchBuilder = new SearchSourceBuilder();
        //根据索引、查询条件构建查询构造器
        BoolQueryBuilder boolQueryBuilder = createQueryBuilderByWhere(indexName,condition);
        BoolQueryBuilder boolQueryBuilder = createQueryBuilderByWhere(indexName, condition);
        //将查询构造器注入SearchSourceBuilder
        searchBuilder.query(boolQueryBuilder);
        //设置请求查询的索引(查询构造器中已指定,无需重复设置)
@ -314,10 +309,10 @@ public class ElasticSearch7Util {
        SearchHits hits = searchResponse.getHits();
        SearchHit[] searchHits = hits.getHits();
        List<Map<String,Object>> listData = new ArrayList<>();
        List<Map<String, Object>> listData = new ArrayList<>();
        //遍历查询结果
        for(SearchHit hit : searchHits){
            Map<String,Object> datas = hit.getSourceAsMap();
        for (SearchHit hit : searchHits) {
            Map<String, Object> datas = hit.getSourceAsMap();
            listData.add(datas);
            logger.info(datas.toString());
        }
@ -327,6 +322,7 @@ public class ElasticSearch7Util {
    /**
     * 查询语句转换
     *
     * @param filters
     * @return
     */
@ -335,24 +331,24 @@ public class ElasticSearch7Util {
        if (StringUtils.isEmpty(filters)) {
            return boolQueryBuilder;
        }
        String [] filterArr = filters.split(";");
        String[] filterArr = filters.split(";");
        for (String filter : filterArr) {
            if (filter.contains("||")){
                String [] fields = filter.split("\\|\\|");
            if (filter.contains("||")) {
                String[] fields = filter.split("\\|\\|");
                BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
                for (String filed : fields) {
                    String [] condition = filed.split("=");
                    String[] condition = filed.split("=");
                    queryBuilder.should(QueryBuilders.termQuery(condition[0], condition[1]));
                }
                boolQueryBuilder.must(queryBuilder);
            } else if (filter.contains("?")) {
                String [] condition = filter.split("\\?");
                String[] condition = filter.split("\\?");
                MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery(condition[0], condition[1]);
                boolQueryBuilder.must(matchPhraseQueryBuilder);
            } else if (filter.contains("<>")) {
                String [] condition = filter.split("<>");
                String[] condition = filter.split("<>");
                if (condition[1].contains(",")) {
                    String [] inCondition = condition[1].split(",");
                    String[] inCondition = condition[1].split(",");
                    TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery(condition[0], inCondition);
                    boolQueryBuilder.mustNot(termsQueryBuilder);
                } else {
@ -360,29 +356,29 @@ public class ElasticSearch7Util {
                    boolQueryBuilder.mustNot(termQueryBuilder);
                }
            } else if (filter.contains(">=")) {
                String [] condition = filter.split(">=");
                String[] condition = filter.split(">=");
                RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(condition[0]);
                rangeQueryBuilder.gte(condition[1]);
                boolQueryBuilder.must(rangeQueryBuilder);
            } else if (filter.contains(">")) {
                String [] condition = filter.split(">");
                String[] condition = filter.split(">");
                RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(condition[0]);
                rangeQueryBuilder.gt(condition[1]);
                boolQueryBuilder.must(rangeQueryBuilder);
            } else if (filter.contains("<=")) {
                String [] condition = filter.split("<=");
                String[] condition = filter.split("<=");
                RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(condition[0]);
                rangeQueryBuilder.lte(condition[1]);
                boolQueryBuilder.must(rangeQueryBuilder);
            } else if (filter.contains("<")) {
                String [] condition = filter.split("<");
                String[] condition = filter.split("<");
                RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(condition[0]);
                rangeQueryBuilder.lt(condition[1]);
                boolQueryBuilder.must(rangeQueryBuilder);
            } else if (filter.contains("=")) {
                String [] condition = filter.split("=");
                String[] condition = filter.split("=");
                if (condition[1].contains(",")) {
                    String [] inCondition = condition[1].split(",");
                    String[] inCondition = condition[1].split(",");
                    TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery(condition[0], inCondition);
                    boolQueryBuilder.must(termsQueryBuilder);
                } else {
@ -396,11 +392,12 @@ public class ElasticSearch7Util {
    /**
     * 多条件查询
     *
     * @param mustMap
     * @param length
     * @return
     */
    public List<String> multiSearch(Map<String,Object> mustMap,int length,String index) {
    public List<String> multiSearch(Map<String, Object> mustMap, int length, String index) {
        // 根据多个条件 生成 boolQueryBuilder
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
@ -416,15 +413,16 @@ public class ElasticSearch7Util {
        searchSourceBuilder.size(length);
        // 其中listSearchResult是自己编写的方法,以供多中查询方式使用。
        return listSearchResult(searchSourceBuilder,index);
        return listSearchResult(searchSourceBuilder, index);
    }
    /**
     * 用来处理搜索结果,转换成链表
     *
     * @param builder
     * @return
     */
    public List<String> listSearchResult(SearchSourceBuilder builder,String index) {
    public List<String> listSearchResult(SearchSourceBuilder builder, String index) {
        // 提交查询
        SearchRequest searchRequest = new SearchRequest(index);
        searchRequest.source(builder);
@ -441,7 +439,7 @@ public class ElasticSearch7Util {
        List<String> list = new LinkedList<>();
        SearchHits hits = searchResponse.getHits();
        Iterator<SearchHit> iterator = hits.iterator();
        while(iterator.hasNext()) {
        while (iterator.hasNext()) {
            SearchHit next = iterator.next();
            list.add(next.getSourceAsString());
        }
@ -449,20 +447,20 @@ public class ElasticSearch7Util {
    }
    /**
     * @param boolQueryBuilder  查询参数 build
     * @param sortName 排序字段名称
     * @param boolQueryBuilder 查询参数 build
     * @param sortName         排序字段名称
     * @return
     */
    public List<Map<String, Object>> queryList(String index,BoolQueryBuilder boolQueryBuilder,String sortName,Integer size) throws IOException {
    public List<Map<String, Object>> queryList(String index, BoolQueryBuilder boolQueryBuilder, String sortName, Integer size) throws IOException {
        //实例化查询请求对象
        SearchRequest request = new SearchRequest();
        //实例化SearchSourceBuilder
        SearchSourceBuilder searchBuilder = new SearchSourceBuilder();
        //将查询构造器注入SearchSourceBuilder
        if (StringUtils.isNoneBlank(sortName)){
        if (StringUtils.isNoneBlank(sortName)) {
            searchBuilder.query(boolQueryBuilder).sort(sortName, SortOrder.DESC);
        }
        if (size!=null){
        if (size != null) {
            searchBuilder.size(size);
        }
        //设置请求查询的索引(查询构造器中已指定,无需重复设置)
@ -477,10 +475,10 @@ public class ElasticSearch7Util {
        SearchHits hits = searchResponse.getHits();
        SearchHit[] searchHits = hits.getHits();
        List<Map<String,Object>> listData = new ArrayList<>();
        List<Map<String, Object>> listData = new ArrayList<>();
        //遍历查询结果
        for(SearchHit hit : searchHits){
            Map<String,Object> datas = hit.getSourceAsMap();
        for (SearchHit hit : searchHits) {
            Map<String, Object> datas = hit.getSourceAsMap();
            listData.add(datas);
            logger.info(datas.toString());
        }
@ -510,16 +508,17 @@ public class ElasticSearch7Util {
    }
        /**
    /**
     * 创建映射
     *  注意:保存数据之前如果没有创建相应的字
     *  段映射会导致搜索结果不准确
     * 注意:保存数据之前如果没有创建相应的字
     * 段映射会导致搜索结果不准确
     *
     * @param index
     * @param source
     * @param setting - 该设置根据需要进行配置
     * @throws IOException
     */
    public void mapping (String index, Map<String, Map<String, String>> source, Map<String, Object> setting) throws IOException{
    public void mapping(String index, Map<String, Map<String, String>> source, Map<String, Object> setting) throws IOException {
        RestHighLevelClient restHighLevelClient1 = elasticSearch7Pool.restHighLevelClient();
        XContentBuilder xContentBuilder = XContentFactory.jsonBuilder().startObject().startObject("properties");
        for (String field : source.keySet()) {
@ -548,8 +547,9 @@ public class ElasticSearch7Util {
    }
        /**
    /**
     * 添加数据
     *
     * @param index
     * @param source
     * @return
@ -560,7 +560,8 @@ public class ElasticSearch7Util {
        if (StringUtils.isEmpty(_id)) {
            IndexRequest request = new IndexRequest(index);
            request.source(source);
            IndexResponse response = restHighLevelClient.index(request, RequestOptions.DEFAULT);;
            IndexResponse response = restHighLevelClient.index(request, RequestOptions.DEFAULT);
            ;
            source.put("_id", response.getId());
        } else {
            UpdateRequest request = new UpdateRequest();
@ -573,12 +574,13 @@ public class ElasticSearch7Util {
    }
        /**
    /**
     * 批量删除数据
     *
     * @param index
     * @param idArr
     */
    public void bulkDelete (String index, String [] idArr) throws IOException {
    public void bulkDelete(String index, String[] idArr) throws IOException {
        if (idArr.length > 0) {
            BulkRequest bulkRequest = new BulkRequest();
            for (String id : idArr) {
@ -601,15 +603,16 @@ public class ElasticSearch7Util {
        }
    }
        /**
    /**
     * 根据条件批量删除数据
     *
     * @param index
     * @param queryBuilder
     */
    public void deleteByFilter(String index,  QueryBuilder queryBuilder) throws IOException {
    public void deleteByFilter(String index, QueryBuilder queryBuilder) throws IOException {
        long count = count(index, queryBuilder);
        long page = count/10000 == 0 ? 1 :count/10000 +1;
        for (long i =0;i<page;i++) {
        long page = count / 10000 == 0 ? 1 : count / 10000 + 1;
        for (long i = 0; i < page; i++) {
            List<String> idList = getIds(index, queryBuilder);
            if (idList.size() > 0) {
                String[] idArr = new String[idList.size()];
@ -638,6 +641,7 @@ public class ElasticSearch7Util {
    /**
     * 根据字段批量删除数据
     *
     * @param index
     * @param type
     * @param field
@ -649,6 +653,7 @@ public class ElasticSearch7Util {
    /**
     * 根据条件批量删除数据
     *
     * @param index
     * @param type
     * @param filters
@ -658,7 +663,7 @@ public class ElasticSearch7Util {
        deleteByFilter(index, queryBuilder);
    }
   /* *//**
    /* *//**
     * 根据条件批量删除数据
     * @param index
     * @param type
@ -696,41 +701,45 @@ public class ElasticSearch7Util {
    /**
     * 更新数据 - 返回最新文档
     *
     * @param index
     * @param id
     * @param source
     * @return
     * @throws DocumentMissingException
     */
    public Map<String, Object> update(String index,  String id, Map<String, Object> source) throws DocumentMissingException, IOException {
    public Map<String, Object> update(String index, String id, Map<String, Object> source) throws DocumentMissingException, IOException {
        source.remove("_id");
        UpdateRequest request = new UpdateRequest();
        request.index(index).id("_id");
        request.doc(JSONObject.toJSONString(source), XContentType.JSON);
        request.retryOnConflict(5);
        System.out.println("request==>" + JSON.toJSONString(request));
        UpdateResponse response = restHighLevelClient.update(request, RequestOptions.DEFAULT);
        return findById(index,  id);
        return findById(index, id);
    }
    /**
     * 更新数据 - 不返回文档
     *
     * @param index
     * @param id
     * @param source
     * @throws DocumentMissingException
     */
    public void voidUpdate (String index, String id, Map<String, Object> source) throws IOException {
    public void voidUpdate(String index, String id, Map<String, Object> source) throws IOException {
        source.remove("_id");
        UpdateRequest request = new UpdateRequest();
        request.index(index);
        request.id(id);
        request.doc(source);
        request.retryOnConflict(5);
        UpdateResponse response = restHighLevelClient.update(request,RequestOptions.DEFAULT);
        UpdateResponse response = restHighLevelClient.update(request, RequestOptions.DEFAULT);
    }
    /**
     * 批量更新数据
     *
     * @param index
     * @param source
     * @throws DocumentMissingException
@ -739,7 +748,7 @@ public class ElasticSearch7Util {
        if (source.size() > 0) {
            BulkRequest bulkRequest = new BulkRequest();
            source.forEach(item -> {
                String _id = (String)item.remove("_id");
                String _id = (String) item.remove("_id");
                if (!org.springframework.util.StringUtils.isEmpty(_id)) {
                    UpdateRequest request = new UpdateRequest();
                    request.index(index);
@ -747,12 +756,13 @@ public class ElasticSearch7Util {
                    bulkRequest.add(request);
                }
            });
            BulkResponse bulkResponse = restHighLevelClient.bulk(bulkRequest,RequestOptions.DEFAULT);
            BulkResponse bulkResponse = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
        }
    }
    /**
     * 根据ID查找数据
     *
     * @param index
     * @param id
     * @return
@ -770,6 +780,7 @@ public class ElasticSearch7Util {
    /**
     * 根据字段查找数据
     *
     * @param index
     * @param field
     * @param value
@ -781,28 +792,31 @@ public class ElasticSearch7Util {
    /**
     * 获取文档列表
     *
     * @param index
     * @param filters
     * @return
     */
    public List<Map<String, Object>> list(String index,  String filters) throws IOException {
    public List<Map<String, Object>> list(String index, String filters) throws IOException {
        QueryBuilder queryBuilder = getQueryBuilder(filters);
        System.out.println("queryBuilder==>" + JSON.toJSONString(queryBuilder));
        return list(index, queryBuilder);
    }
    /**
     * 获取文档列表
     *
     * @param index
     * @param queryBuilder
     * @return
     */
    public List<Map<String, Object>> list(String index,  QueryBuilder queryBuilder) throws IOException {
        int size = (int)count(index, queryBuilder);
    public List<Map<String, Object>> list(String index, QueryBuilder queryBuilder) throws IOException {
        int size = (int) count(index, queryBuilder);
        SearchSourceBuilder builder = SearchSourceBuilder(queryBuilder, null, 0, size);
        SearchRequest request = new SearchRequest(index);
        request.searchType(SearchType.DFS_QUERY_THEN_FETCH);
        request.source(builder);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        SearchHits hits = response.getHits();
        List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
        for (SearchHit hit : hits.getHits()) {
@ -815,6 +829,7 @@ public class ElasticSearch7Util {
    /**
     * 获取文档分页
     *
     * @param index
     * @param type
     * @param filters
@ -828,6 +843,7 @@ public class ElasticSearch7Util {
    /**
     * 获取文档分页
     *
     * @param index
     * @param type
     * @param filters
@ -842,6 +858,7 @@ public class ElasticSearch7Util {
    /**
     * 获取分档分页 - 带分页功能
     *
     * @param index
     * @param type
     * @param filters
@ -858,6 +875,7 @@ public class ElasticSearch7Util {
    /**
     * 获取分档分页 - 带分页功能
     *
     * @param index
     * @param type
     * @param queryBuilder
@ -871,7 +889,7 @@ public class ElasticSearch7Util {
        SearchRequest request = new SearchRequest(index);
        request.searchType(SearchType.DFS_QUERY_THEN_FETCH);
        request.source(builder);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        SearchHits hits = response.getHits();
        List<Map<String, Object>> resultList = new ArrayList<>();
        for (SearchHit hit : hits.getHits()) {
@ -879,36 +897,37 @@ public class ElasticSearch7Util {
            source.put("_id", hit.getId());
            resultList.add(source);
        }
        PageRequest pageRequest = PageRequest.of(page-1,size);
        PageRequest pageRequest = PageRequest.of(page - 1, size);
        return new PageImpl<>(resultList, pageRequest, hits.getTotalHits().value);
    }
    /**
     * 获取ID列表
     *
     * @param index
     * @param filters
     * @return
     */
    public List<String> getIds (String index,  String filters) throws IOException {
    public List<String> getIds(String index, String filters) throws IOException {
        QueryBuilder queryBuilder = getQueryBuilder(filters);
        return getIds(index,  queryBuilder);
        return getIds(index, queryBuilder);
    }
    /**
     * 获取ID列表
     *
     * @param index
     * @param queryBuilder
     * 最多只能一万条
     * @param queryBuilder 最多只能一万条
     * @return
     */
    public List<String> getIds (String index, QueryBuilder queryBuilder) throws IOException {
        int size = (int)count(index,queryBuilder);
        size = size > 10000 ? 10000:size;
    public List<String> getIds(String index, QueryBuilder queryBuilder) throws IOException {
        int size = (int) count(index, queryBuilder);
        size = size > 10000 ? 10000 : size;
        SearchSourceBuilder builder = SearchSourceBuilder(queryBuilder, null, 0, size);
        SearchRequest request = new SearchRequest(index);
        request.searchType(SearchType.DFS_QUERY_THEN_FETCH);
        request.source(builder);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        SearchHits hits = response.getHits();
        List<String> resultList = new ArrayList<>();
        for (SearchHit hit : hits.getHits()) {
@ -919,6 +938,7 @@ public class ElasticSearch7Util {
    /**
     * 获取文档数
     *
     * @param index
     * @param type
     * @param filters
@ -926,11 +946,12 @@ public class ElasticSearch7Util {
     */
    public long count(String index, String type, String filters) throws IOException {
        QueryBuilder queryBuilder = getQueryBuilder(filters);
        return count(index,queryBuilder);
        return count(index, queryBuilder);
    }
    /**
     * 获取文档数
     *
     * @param index
     * @param queryBuilder
     * @return
@ -940,17 +961,14 @@ public class ElasticSearch7Util {
        SearchRequest request = new SearchRequest(index);
        request.searchType(SearchType.DFS_QUERY_THEN_FETCH);
        request.source(builder);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        return response.getHits().getTotalHits().value;
    }
    /**
     * 根据日期分组
     *
     * @param index
     * @param filters
     * @param start
@ -974,7 +992,7 @@ public class ElasticSearch7Util {
        builder.aggregation(dateHistogramBuilder);
        SearchRequest request = new SearchRequest(index);
        request.source(builder);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        Histogram histogram = response.getAggregations().get(index + "-" + field);
        Map<String, Long> temp = new HashMap<>();
        histogram.getBuckets().forEach(item -> temp.put(item.getKeyAsString(), item.getDocCount()));
@ -983,6 +1001,7 @@ public class ElasticSearch7Util {
    /**
     * 查询去重数量
     *
     * @param index
     * @param filters
     * @param filed
@ -995,13 +1014,14 @@ public class ElasticSearch7Util {
        builder.aggregation(cardinality);
        SearchRequest request = new SearchRequest(index);
        request.source(builder);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        InternalCardinality internalCard = response.getAggregations().get("cardinality");
        return new Double(internalCard.getProperty("value").toString()).intValue();
    }
    /**
     * 分组统计
     *
     * @param index
     * @param filters
     * @param groupField
@ -1013,7 +1033,7 @@ public class ElasticSearch7Util {
        AbstractAggregationBuilder aggregation = AggregationBuilders.terms("count").field(groupField);
        builder.aggregation(aggregation);
        SearchRequest request = new SearchRequest(index);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        Terms terms = response.getAggregations().get("count");
        List<Terms.Bucket> buckets = (List<Terms.Bucket>) terms.getBuckets();
        Map<String, Long> groupMap = new HashMap<>();
@ -1026,6 +1046,7 @@ public class ElasticSearch7Util {
    /**
     * 分组求和
     *
     * @param index
     * @param filters
     * @param sumField
@ -1034,17 +1055,17 @@ public class ElasticSearch7Util {
     */
    public Map<String, Double> sumByGroup(String index, String filters, String sumField, String groupField) throws IOException {
        QueryBuilder queryBuilder = getQueryBuilder(filters);
        SearchSourceBuilder builder = SearchSourceBuilder( queryBuilder, null, null, null);
        SearchSourceBuilder builder = SearchSourceBuilder(queryBuilder, null, null, null);
        TermsAggregationBuilder aggregation = AggregationBuilders.terms("sum_query").field(groupField);
        SumAggregationBuilder sumBuilder= AggregationBuilders.sum("sum_row").field(sumField);
        SumAggregationBuilder sumBuilder = AggregationBuilders.sum("sum_row").field(sumField);
        aggregation.subAggregation(sumBuilder);
        builder.aggregation(aggregation);
        SearchRequest request = new SearchRequest(index);
        SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        Terms terms = response.getAggregations().get("sum_query");
        List<Terms.Bucket> buckets = (List<Terms.Bucket>) terms.getBuckets();
        Map<String, Double> groupMap = new HashMap<>();
        for (Terms.Bucket bucket : buckets){
        for (Terms.Bucket bucket : buckets) {
            Sum sum2 = bucket.getAggregations().get("sum_row");
            groupMap.put(bucket.getKey().toString(), sum2.getValue());
        }
@ -1053,6 +1074,7 @@ public class ElasticSearch7Util {
    /**
     * 获取基础请求生成器
     *
     * @param queryBuilder
     * @param sortBuilders
     * @return
@ -1075,6 +1097,7 @@ public class ElasticSearch7Util {
    /**
     * 排序语句转换
     *
     * @param sorts
     * @return
     */
@ -1083,7 +1106,7 @@ public class ElasticSearch7Util {
        if (org.springframework.util.StringUtils.isEmpty(sorts)) {
            return sortBuilderList;
        }
        String [] sortArr = sorts.split(";");
        String[] sortArr = sorts.split(";");
        for (String sort : sortArr) {
            String operator = sort.substring(0, 1);
            SortBuilder sortBuilder = new FieldSortBuilder(sort.substring(1));
@ -1100,8 +1123,9 @@ public class ElasticSearch7Util {
    }
        /**
    /**
     * 根据SQL查找数据
     *
     * @param field
     * @param sql
     * @return
@ -1121,7 +1145,7 @@ public class ElasticSearch7Util {
                boolQuery = QueryMaker.explan(where);
            }
        } catch (SqlParseException e) {
            logger.info("ReadES.createQueryBuilderByExpress-Exception,"+e.getMessage());
            logger.info("ReadES.createQueryBuilderByExpress-Exception," + e.getMessage());
            e.printStackTrace();
        }
        //实例化查询请求对象
@ -1142,18 +1166,18 @@ public class ElasticSearch7Util {
        SearchHits hits = searchResponse.getHits();
        SearchHit[] searchHits = hits.getHits();
        List<Map<String,Object>> listData = new ArrayList<>();
        List<Map<String, Object>> listData = new ArrayList<>();
        //遍历查询结果
        for(SearchHit hit : searchHits){
            Map<String,Object> datas = hit.getSourceAsMap();
            Map<String,Object> result = new HashMap<>();
        for (SearchHit hit : searchHits) {
            Map<String, Object> datas = hit.getSourceAsMap();
            Map<String, Object> result = new HashMap<>();
            for (String _field : field) {
                result.put(_field, datas.get(_field));
            }
            listData.add(result);
            logger.info(result.toString());
        }
      return listData;
        return listData;
    }

+ 6 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -517,8 +517,14 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                mems.setCreateTime(new Date());
                baseTeamMemberDao.save(mems);
            }
        }
        //生成医生二维码
        if("xm_dsyy_wx".equals(wxId)){
            String url = "http://127.0.0.1:10022/open/noLogin/setXcxQrCode";
            String response = httpClientUtil.get(url,"UTF-8");
        }
        result.put("response", ConstantUtils.SUCCESS);
        result.put("msg", baseDoctorDO);
        return result.toJSONString();

+ 1 - 1
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/zy/IotDeviceController.java

@ -49,7 +49,7 @@ public class IotDeviceController extends EnvelopRestEndpoint {
    @ApiOperation(value = "设备相关基础信息注册")
    public Envelop deviceRegistration(Long id) {
        try {
            return success(iotDeviceService.deviceRegistration());
            return success(iotDeviceService.deviceRegistration(id));
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("查询失败");

+ 30 - 7
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/service/IotDeviceService.java

@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.device.dao.DevicePatientHealthIndexDao;
import com.yihu.jw.device.dao.PatientDeviceDao;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.device.DevicePatientHealthIndex;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.iot.gateway.GcToken;
@ -20,10 +22,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -47,6 +46,10 @@ public class IotDeviceService {
    private DevicePatientHealthIndexDao patientHealthIndexDao;
    @Autowired
    private BasePatientDao patientDao;
    private static String iotHospital = "350211A1004";
    private static String iotHospitalName = "厦门市第三医院";
    @Autowired
    private PatientDeviceDao patientDeviceDao;
    /**
     * 获取accesstoken,i健康写法暂时不能用
@ -125,13 +128,31 @@ public class IotDeviceService {
        String response = sdkRunnerService.post("wlw/uploadDeviceData","设备业务数据信息上传",params,header,true,true);
        return response;
    }
    //设备相关基础信息注册
    @Transactional
    public String deviceRegistration(){
    public String deviceRegistration(Long id){
        Map<String,String> header = new HashMap<>();
        String jsonData = "{\"deviceSn\":\"xty_test\",\"deviceModel\":\"测试\",\"name\":\"血糖仪TEST\",\"hospital\":\"350211A1004\",\"hospitalName\":\"厦门市第三医院\",\"categoryCode\":\"2\",\"categoryName\":\" 血糖仪\",\"commonName\":\" 血糖仪\",\"combinationMethod\":\"1\",\"networkTransmission\":\" 11\",\"deviceUse\":\"2\",\"dropLocation\":\"2\",\"dataAcquisition\":\"IoT_equipment_blood_glucose_mete\",\"companyName\":\"血糖仪厂商名称\",\"companyType\":\"3\"}";
        JSONObject json = new JSONObject();
        DevicePatientDevice device = patientDeviceDao.findById(id).orElse(null);
        json.put("deviceSn",device.getDeviceSn());
        json.put("deviceModel",device.getDeviceName());
        json.put("name",device.getDeviceName());
        json.put("hospital",iotHospital);
        json.put("hospitalName",iotHospitalName);
        json.put("categoryCode",device.getCategoryCode());
        json.put("categoryName","1".equals(device.getCategoryCode())?"血糖仪":"血压仪");
        json.put("commonName",device.getDeviceName());
        json.put("combinationMethod","1");
        json.put("networkTransmission","11");
        json.put("deviceUse","1");
        json.put("dropLocation","2");
        json.put("dataAcquisition","IoT_equipment_blood_glucose_mete");
        json.put("companyName","厂商名称");
        json.put("companyType","3");
        Map<String,String> params = new HashMap<>();
        params.put("jsonData",jsonData);
        params.put("jsonData",json.toJSONString());
        header.put("accesstoken",getAccessToken());
        String response = sdkRunnerService.post("wlw/deviceRegistration","设备相关基础信息注册",params,header,true,true);
        return response;
@ -181,4 +202,6 @@ public class IotDeviceService {
        return null;
    }
}

+ 7 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/im/ImJobService.java

@ -93,6 +93,13 @@ public class ImJobService {
                String sessionId = map.get("id")+"";
                try {
                    imUtil.sendImMsg(dictDO.getDictCode(), dictDO.getDictValue(), sessionId, "1", content, "1", null);
                    //踢出非客服的医生
                    String participantsSql = "SELECT p.participant_id from im.participants p,base_doctor d " +
                            "WHERE p.session_id='"+sessionId+"' and p.participant_id=d.id and p.participant_id!='customer'";
                    List<Map<String,Object>> participantsList = jdbcTemplate.queryForList(participantsSql);
                    for (Map<String,Object> participants:participantsList){
                        imUtil.deleteParticipants(sessionId, participants.get("participant_id")+"");
                    }
                    imUtil.updateSessionStatus(sessionId,"1");
                }catch (Exception e){
                    e.printStackTrace();

+ 20 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/statistics/EsStatisticsEndpoint.java

@ -1824,5 +1824,25 @@ class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        }
    }
    /**
     * 获取登录医生的医院
     */
    @GetMapping(value = "/getDoctorOrgCode")
    @ApiOperation(value = "获取登录医生的医院")
    public Envelop getDoctorOrgCode(@RequestParam(required = true) String strJson) {
        ScreenQvo qvo = JSON.parseObject(strJson, ScreenQvo.class);
        try {
            System.out.println("调用==>获取登录医生的医院");
            Map<String, Object> result = statisticsEsService.getDoctorOrgCode(qvo);
            return success(result);
        } catch (Exception e) {
            e.printStackTrace();
            return failed("系统繁忙");
        }
    }
}

+ 2 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/KnowledgeArticleService.java

@ -301,6 +301,8 @@ public class KnowledgeArticleService extends BaseJpaService<KnowledgeArticleDO,
					if (null!=wlyySurveyTemplateDO){
						object.put("title",wlyySurveyTemplateDO.getTitle());
						object.put("content",wlyySurveyTemplateDO.getTemplateComment());
						object.put("doctor",patientBusinessDO.getDoctor());
						object.put("doctorName",patientBusinessDO.getDoctorName());
						object.put("id",wlyySurveyTemplateDO.getId());
					}
					imUtil.sendImMsg(patientBusinessDO.getDoctor(), patientBusinessDO.getDoctorName(), patientBusinessDO.getSessionId(), "17", object.toJSONString(),"1",null);

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/QrcodeService.java

@ -174,7 +174,7 @@ public class QrcodeService {
    /**
     * 生成某个医生的小程序二维码
     *
     * 小程序page的页面需要上线
     * @param doctor
     * @return
     * @throws Exception

+ 99 - 46
svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/controller/JobController.java

@ -1,5 +1,7 @@
package com.yihu.jw.statistics.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.elasticsearch.ElasticSearch7Util;
import com.yihu.jw.statistics.service.JobService;
import com.yihu.jw.statistics.util.hibernate.HibenateDemo;
import io.swagger.annotations.Api;
@ -7,10 +9,10 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
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.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
@ -23,9 +25,13 @@ import org.springframework.web.bind.annotation.RestController;
@Api(description = "后台-任务控制")
public class JobController extends BaseController {
    @Autowired
    private  JobService jobService;
    private JobService jobService;
    @Autowired
    private HibenateDemo hibenateDemo;
    @Autowired
    ElasticSearch7Util elasticSearchUtil;
    @Autowired
    ObjectMapper objectMapper;
    /**
     * 启动任务
@ -36,7 +42,7 @@ public class JobController extends BaseController {
    @ApiOperation(value = "根据ID立即单个任务")
    @RequestMapping(value = "startNowById", method = RequestMethod.GET)
    public String startNowById(
            @ApiParam(name = "id", value = "任务ID", required = true)@RequestParam(value = "id", required = true) String id) {
            @ApiParam(name = "id", value = "任务ID", required = true) @RequestParam(value = "id", required = true) String id) {
        try {
            jobService.startNowById(id);
            return success("启动成功!");
@ -54,7 +60,7 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "生成过去几天的数据")
    @RequestMapping(value = "productDataByDay", method = RequestMethod.GET)
    public String productDataByDay(  @ApiParam(name = "day", value = "距离今天的天数(如果是要生成昨天的数据,day=1)")@RequestParam(value = "day", required = true) int day) {
    public String productDataByDay(@ApiParam(name = "day", value = "距离今天的天数(如果是要生成昨天的数据,day=1)") @RequestParam(value = "day", required = true) int day) {
        try {
            jobService.productDataByDay(day);
            return success("启动成功!");
@ -72,7 +78,7 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "生成过去某一天的全部的数据")
    @RequestMapping(value = "productDataByOneDay", method = RequestMethod.GET)
    public String productDataByOneDay( @ApiParam(name = "day", value = "yyyy-MM-dd")@RequestParam(value = "day", required = true)String day) {
    public String productDataByOneDay(@ApiParam(name = "day", value = "yyyy-MM-dd") @RequestParam(value = "day", required = true) String day) {
        try {
            jobService.productDataByOneDay(day);
            return success("启动成功!");
@ -81,6 +87,7 @@ public class JobController extends BaseController {
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    /**
     * 生成过去某一天到某一天的全部的数据
     *
@ -90,16 +97,17 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "生成过去某一天到某一天的全部的数据(包含头尾)")
    @RequestMapping(value = "productDataByDayToDay", method = RequestMethod.GET)
    public String productDataByDayToDay( @ApiParam(name = "start", value = "yyyy-MM-dd", required = true)@RequestParam(value = "start", required = true)String start,
                                         @ApiParam(name = "end", value = "yyyy-MM-dd", required = true)@RequestParam(value = "end", required = true)String end) {
    public String productDataByDayToDay(@ApiParam(name = "start", value = "yyyy-MM-dd", required = true) @RequestParam(value = "start", required = true) String start,
                                        @ApiParam(name = "end", value = "yyyy-MM-dd", required = true) @RequestParam(value = "end", required = true) String end) {
        try {
            jobService.productDataByDayToDay(start,end);
            jobService.productDataByDayToDay(start, end);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    /**
     * 生成过去某一天到某一天的某个指标的数据
     *
@ -109,18 +117,19 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "生成过去某一天到某一天的某个指标的数据(包含头尾)")
    @RequestMapping(value = "productDataByDayToDayAndId", method = RequestMethod.GET)
    public String productDataByDayToDayAndId( @ApiParam(name = "start", value = "yyyy-MM-dd")@RequestParam(value = "start", required = true)String start,
                                         @ApiParam(name = "end", value = "yyyy-MM-dd")@RequestParam(value = "end", required = true)String end,
                                         @ApiParam(name = "ids", value = "任务ids多个逗号分割")@RequestParam(value = "ids", required = true)String ids) {
    public String productDataByDayToDayAndId(@ApiParam(name = "start", value = "yyyy-MM-dd") @RequestParam(value = "start", required = true) String start,
                                             @ApiParam(name = "end", value = "yyyy-MM-dd") @RequestParam(value = "end", required = true) String end,
                                             @ApiParam(name = "ids", value = "任务ids多个逗号分割") @RequestParam(value = "ids", required = true) String ids) {
        try {
            
            jobService.productDataByDayToDayAndId(start,end,ids);
            jobService.productDataByDayToDayAndId(start, end, ids);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    /**
     * 生成过去某一天的某一个指标的数据
     *
@ -130,8 +139,8 @@ public class JobController extends BaseController {
    @ApiOperation(value = "生成过去某一天的全部的数据")
    @RequestMapping(value = "productDataByOneDayWithId", method = RequestMethod.GET)
    public String productDataByOneDayWithId(
            @ApiParam(name = "day", value = "yyyy-MM-dd")@RequestParam(value = "day", required = true)String day,
            @ApiParam(name = "id", value = "任务id")@RequestParam(value = "id", required = true)String id) {
            @ApiParam(name = "day", value = "yyyy-MM-dd") @RequestParam(value = "day", required = true) String day,
            @ApiParam(name = "id", value = "任务id") @RequestParam(value = "id", required = true) String id) {
        try {
            jobService.productDataByOneDayWithId(day, id);
            return success("启动成功!");
@ -140,6 +149,7 @@ public class JobController extends BaseController {
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    /**
     * 生成过去到现在的全部的数据
     *
@ -149,8 +159,8 @@ public class JobController extends BaseController {
    @ApiOperation(value = "生成过去到现在的全部的数据")
    @RequestMapping(value = "productDataByDayAndId", method = RequestMethod.GET)
    public String productDataByDayAndId(
            @ApiParam(name = "day", value = "距离今天的天数(如果是要生成昨天的数据,day=1)")@RequestParam(value = "day", required = true) int day,
            @ApiParam(name="id",required=true)@RequestParam(value = "id", required = true) String id) {
            @ApiParam(name = "day", value = "距离今天的天数(如果是要生成昨天的数据,day=1)") @RequestParam(value = "day", required = true) int day,
            @ApiParam(name = "id", required = true) @RequestParam(value = "id", required = true) String id) {
        try {
            jobService.productDataByDayAndId(day, id);
            return success("启动成功!");
@ -165,11 +175,11 @@ public class JobController extends BaseController {
     *
     * @param id id
     * @return
    */
     */
    @ApiOperation(value = "启动单个任务")
    @RequestMapping(value = "startById", method = RequestMethod.GET)
    public String startById(
            @ApiParam(name="id",value="任务id",required=true)@RequestParam(value = "id", required = true) String id) {
            @ApiParam(name = "id", value = "任务id", required = true) @RequestParam(value = "id", required = true) String id) {
        try {
            jobService.startById(id);
            return success("启动成功!");
@ -187,7 +197,7 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "停止单个任务")
    @RequestMapping(value = "stopById", method = RequestMethod.GET)
    public String stopById(@ApiParam(name="id",value="任务id",required=true)@RequestParam(value = "id", required = true)String id) {
    public String stopById(@ApiParam(name = "id", value = "任务id", required = true) @RequestParam(value = "id", required = true) String id) {
        try {
            jobService.stopById(id);
            return success("停止成功!");
@ -230,6 +240,7 @@ public class JobController extends BaseController {
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    @ApiOperation(value = "清除緩存")
    @RequestMapping(value = "cleanCache", method = RequestMethod.GET)
    public String cleanCache() {
@ -277,6 +288,7 @@ public class JobController extends BaseController {
    }
    //================================================没有休眠时间=============================================================
    /**
     * 生成过去某一天到某一天的某个指标的数据
     *
@ -286,13 +298,13 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "生成过去某一天到某一天的某个指标的数据(包含头尾)没有休眠时间")
    @RequestMapping(value = "productDataByDayToDayAndIdNoSleep", method = RequestMethod.GET)
    public String productDataByDayToDayAndIdNoSleep( @ApiParam(name = "start", value = "yyyy-MM-dd")@RequestParam(value = "start", required = true)String start,
                                                     @ApiParam(name = "end", value = "yyyy-MM-dd")@RequestParam(value = "end", required = true)String end,
                                                     @ApiParam(name = "id", value = "任务id")@RequestParam(value = "id", required = true)String id,
                                                     @ApiParam(name = "sleepTime", value = "任务间隔时间(秒)")@RequestParam(value = "sleepTime", required = true)Long sleepTime) {
    public String productDataByDayToDayAndIdNoSleep(@ApiParam(name = "start", value = "yyyy-MM-dd") @RequestParam(value = "start", required = true) String start,
                                                    @ApiParam(name = "end", value = "yyyy-MM-dd") @RequestParam(value = "end", required = true) String end,
                                                    @ApiParam(name = "id", value = "任务id") @RequestParam(value = "id", required = true) String id,
                                                    @ApiParam(name = "sleepTime", value = "任务间隔时间(秒)") @RequestParam(value = "sleepTime", required = true) Long sleepTime) {
        try {
            jobService.productDataByDayToDayAndIdNoSleep(start,end,id,sleepTime);
            jobService.productDataByDayToDayAndIdNoSleep(start, end, id, sleepTime);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
@ -308,10 +320,10 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "生成过去某一天的全部的数据")
    @RequestMapping(value = "productDataByOneDayNoSleep", method = RequestMethod.GET)
    public String productDataByOneDayNoSleep( @ApiParam(name = "day", value = "yyyy-MM-dd")@RequestParam(value = "day", required = true)String day,
                                              @ApiParam(name = "sleepTime", value = "任务间隔时间(秒)")@RequestParam(value = "sleepTime", required = true)Long sleepTime) {
    public String productDataByOneDayNoSleep(@ApiParam(name = "day", value = "yyyy-MM-dd") @RequestParam(value = "day", required = true) String day,
                                             @ApiParam(name = "sleepTime", value = "任务间隔时间(秒)") @RequestParam(value = "sleepTime", required = true) Long sleepTime) {
        try {
            jobService.productDataByOneDayNoSleep(day,sleepTime);
            jobService.productDataByOneDayNoSleep(day, sleepTime);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
@ -330,17 +342,17 @@ public class JobController extends BaseController {
     */
    @ApiOperation(value = "生成过去某一天到某一天的全部的数据(包含头尾)按周或月统计")
    @RequestMapping(value = "productDataByDayToDay2", method = RequestMethod.GET)
    public String productDataByDayToDay2( @ApiParam(name = "start", value = "yyyy-MM-dd", required = true)@RequestParam(value = "start", required = true)String start,
                                         @ApiParam(name = "end", value = "yyyy-MM-dd", required = true)@RequestParam(value = "end", required = true)String end,
                                          @ApiParam(name = "incrementInterval", value = "2周,3月", required = true)@RequestParam(value = "incrementInterval", required = true)Integer incrementInterval,
                                          @ApiParam(name = "id", value = "指标id,逗号分隔(为空表示全部)", required = false)@RequestParam(value = "id", required = false)String id) {
    public String productDataByDayToDay2(@ApiParam(name = "start", value = "yyyy-MM-dd", required = true) @RequestParam(value = "start", required = true) String start,
                                         @ApiParam(name = "end", value = "yyyy-MM-dd", required = true) @RequestParam(value = "end", required = true) String end,
                                         @ApiParam(name = "incrementInterval", value = "2周,3月", required = true) @RequestParam(value = "incrementInterval", required = true) Integer incrementInterval,
                                         @ApiParam(name = "id", value = "指标id,逗号分隔(为空表示全部)", required = false) @RequestParam(value = "id", required = false) String id) {
        try {
            if(incrementInterval==2){
                jobService.productWeekByDayToDay(start,end,id);
            }else if(incrementInterval==3){
            if (incrementInterval == 2) {
                jobService.productWeekByDayToDay(start, end, id);
            } else if (incrementInterval == 3) {
                jobService.productMonthByDayToDay(start,end,id);
            }else{
                jobService.productMonthByDayToDay(start, end, id);
            } else {
                return success("启动失败!");
            }
            return success("启动成功!");
@ -353,20 +365,61 @@ public class JobController extends BaseController {
    @ApiOperation(value = "測試oracle")
    @RequestMapping(value = "testOracle", method = RequestMethod.GET)
    public String testOracle(@ApiParam(name = "id", value = "id")
                                 @RequestParam(value = "id", required = false)String id,
                             @RequestParam(value = "id", required = false) String id,
                             @ApiParam(name = "name", value = "姓名")
                                 @RequestParam(value = "name", required = false)String name,
                             @RequestParam(value = "name", required = false) String name,
                             @ApiParam(name = "createTime", value = "创建时间")
                                 @RequestParam(value = "createTime", required = false)String createTime,
                             @RequestParam(value = "createTime", required = false) String createTime,
                             @ApiParam(name = "page", value = "第几页,1开始")
                                 @RequestParam(value = "page", required = true)Integer page,
                             @RequestParam(value = "page", required = true) Integer page,
                             @ApiParam(name = "size", value = "每页大小")
                                 @RequestParam(value = "size", required = true)Integer size) {
                             @RequestParam(value = "size", required = true) Integer size) {
        try {
            return write(200,"启动成功!","data",hibenateDemo.findDoctorInfo(id,name,createTime,page,size));
            return write(200, "启动成功!", "data", hibenateDemo.findDoctorInfo(id, name, createTime, page, size));
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    @RequestMapping(value = "esUpdate", method = RequestMethod.PUT)
    @ApiOperation(value = "更新数据")
    public String update(
            @ApiParam(name = "index", value = "索引名称", required = true) @RequestParam(value = "index") String index,
            @ApiParam(name = "type", value = "索引类型", required = true) @RequestParam(value = "type") String type,
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id, @ApiParam(name = "source", value = "值", required = true)
            @RequestParam(value = "source") String source) throws Exception {
        Map<String, Object> sourceMap = objectMapper.readValue(source, Map.class);
        Map<String, Object> result = elasticSearchUtil.update(index, id, sourceMap);
        if (result != null) {
            return write(200, "成功", "data", result);
        }
        return error(-1, "更新失败");
    }
    @RequestMapping(value = "findById", method = RequestMethod.GET)
    @ApiOperation(value = "获取单条数据")
    public String findById(
            @ApiParam(name = "index", value = "索引名称", required = true) @RequestParam(value = "index") String index,
            @ApiParam(name = "type", value = "索引类型", required = true) @RequestParam(value = "type") String type,
            @ApiParam(name = "id", value = "id", required = true) @PathVariable(value = "id") String id) throws Exception {
        Map<String, Object> result = elasticSearchUtil.findById(index, id);
        return write(200, "成功", "data", result);
    }
    @RequestMapping(value = "findByField", method = RequestMethod.GET)
    @ApiOperation(value = "获取结果集")
    public String findByField(
            @ApiParam(name = "index", value = "索引名称", required = true) @RequestParam(value = "index") String index,
            @ApiParam(name = "type", value = "索引类型", required = true) @RequestParam(value = "type") String type,
            @ApiParam(name = "field", value = "字段", required = true) @RequestParam(value = "field") String field,
            @ApiParam(name = "value", value = "字段值", required = true) @RequestParam(value = "value") Object value
    ) throws Exception {
        List<Map<String, Object>> resultList = elasticSearchUtil.findByField(index, field, value);
        return write(200, "成功", "data", resultList);
    }
}

+ 0 - 1
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/door/controller/WlyyDoorServiceOrderController.java

@ -288,7 +288,6 @@ public class WlyyDoorServiceOrderController extends EnvelopRestEndpoint {
            e.printStackTrace();
            return failed(e.getMessage());
        }
        return success(result.get(ResponseContant.resultMsg));
    }

+ 1 - 1
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/door/service/WlyyDoorServiceOrderService.java

@ -654,7 +654,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
    /**
     * 创建上门服务工单
     */
//    @Transactional(rollbackFor = Exception.class)
    @Transactional(rollbackFor = Exception.class)
    public JSONObject create(String jsonData) throws Exception {
        logger.info("创建上门服务jsonData参数:" + jsonData);

+ 2 - 1
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/DeviceController.java

@ -140,7 +140,7 @@ public class DeviceController extends BaseController {
    public void addHeader(WritableSheet ws) throws WriteException {
        String[] header = {"设备名称","设备型号","SN码", "SIM卡号", "厂家名称", "厂家地址","法人", "联系人", "联系电话"};
        String[] header = {"设备名称","设备型号","SN码", "SIM卡号", "厂家名称", "厂家地址","法人", "联系人", "联系电话","设备类型编码"};
        int i = 0;
        for (String h : header) {
            addCell(ws, 0, i, h);//表名,行,列,header
@ -164,6 +164,7 @@ public class DeviceController extends BaseController {
                addCell(ws, i, 6, m.getRepresentative(),"");
                addCell(ws, i, 7, m.getLinkman(),"");
                addCell(ws, i, 8, m.getTel(),"");
                addCell(ws, i, 9, m.getCategoryCode(),"");
                i++;
            }
            wwb.write();

+ 5 - 3
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/DoctorDeviceController.java

@ -88,7 +88,9 @@ public class DoctorDeviceController extends BaseController {
	@ApiOperation("设备保存接口--医生端")
	@RequestMapping(value = "SavePatientDevice",method = RequestMethod.POST)
	public String saveDevice(@ApiParam(name="data",value="设备数据json",defaultValue = "{\"user\":\"915cca0a-5b1d-11e6-8344-fa163e8aee56\",\"deviceId\": \"3\",\"deviceName\": \"血压计-优瑞恩\",\"deviceSn\": \"16C000337\",\"categoryCode\": \"1\",\"userType\": \"-1\"}")
							  @RequestParam(value="data",required = true) String data) {
							  @RequestParam(value="data",required = true) String data,
							 @ApiParam(name="isScan",value="是否扫一扫 1是0否,默认否",required = false)
							 @RequestParam(value="isScan",required = false) String isScan) {
		try {
			DevicePatientDevice device = objectMapper.readValue(data,DevicePatientDevice.class);
			if(StringUtils.isBlank(device.getDeviceSn())){
@ -104,7 +106,7 @@ public class DoctorDeviceController extends BaseController {
			Map<String,Object> checkMap = patientDeviceService.checkBindingFirstAndType(device);
			boolean flag = (Boolean)checkMap.get("flag");
			//绑定
			patientDeviceService.saveDevice(device);
			patientDeviceService.saveDevice(device,isScan);
			patientDeviceLogService.savePatientDeviceLog(device,device.getDeviceSn(),1,1);
			//修改设备表中{"1":"0", "2":"0"}绑定次数 和其他绑定信息,
@ -141,7 +143,7 @@ public class DoctorDeviceController extends BaseController {
			boolean flag = (Boolean)checkMap.get("flag");
			//绑定
			patientDeviceService.saveDevice(device);
			patientDeviceService.saveDevice(device,null);
			patientDeviceLogService.savePatientDeviceLog(device,device.getDeviceSn(),1,1);
			//修改设备表中{"1":"0", "2":"0"}绑定次数 和其他绑定信息,

+ 4 - 2
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/PatientDeviceController.java

@ -173,7 +173,9 @@ public class PatientDeviceController extends BaseController {
    @ApiOperation("设备保存接口")
    @RequestMapping(value = "SavePatientDevice", method = RequestMethod.POST)
    public String saveDevice(@ApiParam(name = "json", value = "设备数据json", defaultValue = "{\"deviceId\": \"3\",\"deviceName\": \"血压计-优瑞恩\",\"deviceSn\": \"06B52305030267\",\"categoryCode\": \"1\",\"userType\": \"-1\"}")
                             @RequestParam(value = "json", required = true) String json) {
                             @RequestParam(value = "json", required = true) String json,
                             @ApiParam(name="isScan",value="是否扫一扫 1是0否,默认否",required = false)
                             @RequestParam(value="isScan",required = false) String isScan) {
        try {
            DevicePatientDevice device = objectMapper.readValue(json, DevicePatientDevice.class);
            if(StringUtils.isBlank(device.getDeviceSn())){
@ -197,7 +199,7 @@ public class PatientDeviceController extends BaseController {
            }
            String sn = device.getDeviceSn();
            synchronized (sn.intern()){
                patientDeviceService.saveDevice(device);
                patientDeviceService.saveDevice(device,isScan);
                patientDeviceLogService.savePatientDeviceLog(device,device.getDeviceSn(),2,1);
            }
            //修改设备表中{"1":"0", "2":"0"}的绑定次数 和其他绑定信息

+ 8 - 2
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/DeviceService.java

@ -91,7 +91,7 @@ public class DeviceService {
			if(wlyyDevice.size()>0) {
				device.setId(wlyyDevice.get(0).getId());
			}
			qrcodeUtil.makeDeviceXcxQrcode(device,null,false);
			qrcodeUtil.makeDeviceXcxQrcode(device,null,true);
			deviceList.add(device);
		}
		deviceDetailDao.saveAll(deviceList);
@ -186,7 +186,13 @@ public class DeviceService {
				device.setTel(data);
			}
		});
		//设备类型编码
		dataMap.put(9, new ExcelData() {
			@Override
			public void transform(String data) {
				device.setCategoryCode(data);
			}
		});
		return dataMap;
	}

+ 1 - 1
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/DeviceUploadService.java

@ -171,7 +171,7 @@ public class DeviceUploadService {
        DevicePatientDevice device = null;
        DeviceDetail deviceDetail = null;
        List<DeviceDetail> deviceDetails = deviceDetailDao.findByDeviceCode(deviceSn);
        if (deviceDetails != null || deviceDetails.size()!=0){
        if (deviceDetails != null && deviceDetails.size()>0){
            deviceDetail = deviceDetails.get(0);
            if (deviceDetail.getGrantOrgCode() != null&& deviceDetail.getGrantOrgCode().equals("3502050300")){//
                List<DevicePatientDevice> patientDeviceList =  patientDeviceDao.findByDeviceSnAndCategoryCode(deviceSn, type);

+ 6 - 7
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/PatientDeviceService.java

@ -81,7 +81,7 @@ public class PatientDeviceService  {
    /**
     * 保存患者设备
     */
    public boolean saveDevice(DevicePatientDevice patientDevice) throws Exception {
    public boolean saveDevice(DevicePatientDevice patientDevice,String isScan) throws Exception {
        //判断sn码是否被使用
        String sn = patientDevice.getDeviceSn();
        String type = patientDevice.getCategoryCode();
@ -107,6 +107,11 @@ public class PatientDeviceService  {
        //校验sn码是否被使用
        if (needVerify) {
            if("1".equals(isScan)){
                //解绑
                List<DevicePatientDevice> devices = patientDeviceDao.findByDeviceSnAndUserType2(sn, userType);
                patientDeviceDao.deleteAll(devices);
            }
            DevicePatientDevice device = patientDeviceDao.findByDeviceSnAndUserType(sn, userType);
            if (device != null && !device.getId().equals(patientDevice.getId())) {
                throw new ServiceException("sn码" + sn + "已被使用!");
@ -120,12 +125,6 @@ public class PatientDeviceService  {
        patientDevice.setUserIdcard(patient.getIdcard());
        savePatientDevice(patientDevice);
//        if(checkDeviceSn(sn)){
//            savePatientDevice(patientDevice);
//        }else {
//            String message = "设备不存在";
//            throw new ServiceException(message);
//        }
        return true;
    }

+ 3 - 8
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/utils/QrcodeUtil.java

@ -8,7 +8,6 @@ import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.file_upload.FileUploadService;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@ -43,14 +42,10 @@ public class QrcodeUtil {
    @Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;
    @Autowired
    private WxAccessTokenService wxAccessTokenService;
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    //获取设备二维码前缀
    // https://hlw.xmdsyy.cn/hlw/ims-wx/#/healthRecords/deviceBind?SN=
    // https://hlw.xmdsyy.cn/hlw/ims-wx/#/healthRecords/deviceBind?SN=&deviceId=
    public String devicePriUrl(){
        WlyyHospitalSysDictDO dictDO = wlyyHospitalSysDictDao.findById("devicePriUrl").orElse(null);
        if(dictDO!=null){
@ -66,7 +61,7 @@ public class QrcodeUtil {
            String url = devicePriUrl();
            if (device!=null){
                if (flag||StringUtils.isBlank(device.getQrcode())){
                    InputStream ipt = com.yihu.jw.util.common.QrcodeUtil.createQrcode(url+device.getDeviceCode(), 300, "png");
                    InputStream ipt = com.yihu.jw.util.common.QrcodeUtil.createQrcode(url+device.getDeviceCode()+"&deviceId="+device.getCategoryCode(), 300, "png");
                    String qrcode = getFullUri(ipt);
                    device.setQrcode(qrcode);
//                deviceDetailDao.save(device);
@ -77,7 +72,7 @@ public class QrcodeUtil {
            }else {
                for (DeviceDetail deviceTmp : deviceDetailList) {
                    if (StringUtils.isBlank(deviceTmp.getQrcode())){
                        InputStream ipt = com.yihu.jw.util.common.QrcodeUtil.createQrcode(url+deviceTmp.getDeviceCode(), 300, "png");
                        InputStream ipt = com.yihu.jw.util.common.QrcodeUtil.createQrcode(url+deviceTmp.getDeviceCode()+"&deviceId="+device.getCategoryCode(), 300, "png");
                        String qrcode = getFullUri(ipt);
                        deviceTmp.setQrcode(qrcode);
                        deviceDetailDao.save(deviceTmp);