Explorar el Código

Merge branch 'dev' of yeshijie/jw2.0 into dev

yeshijie hace 7 años
padre
commit
5b6c0ba68d
Se han modificado 20 ficheros con 716 adiciones y 338 borrados
  1. 1 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/security/core/EhrWebUsernamePasswordAuthenticationFilter.java
  2. 29 7
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/common/BaseService.java
  3. 1 1
      app/app-iot-server/src/main/resources/application.yml
  4. 0 68
      app/app-iot-server/src/main/webapp/front/views/detail.html
  5. 0 168
      app/app-iot-server/src/main/webapp/front/views/search.html
  6. 0 27
      app/app-iot-server/src/main/webapp/front/views/trace.html
  7. 24 3
      common/common-entity/src/main/java/com/yihu/jw/iot/device/IotPatientDeviceDO.java
  8. 20 48
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java
  9. 0 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/archives/PatientArchivesVO.java
  10. 3 3
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotPatientDeviceVO.java
  11. 1 2
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java
  12. 181 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotPatientDeviceController.java
  13. 30 2
      svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotPatientDeviceDao.java
  14. 100 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotPatientDeviceService.java
  15. 1 0
      web-gateway/pom.xml
  16. 1 0
      web-gateway/src/main/java/com/yihu/jw/commnon/iot/IotCommonContants.java
  17. 114 0
      web-gateway/src/main/java/com/yihu/jw/controller/iot/device/IotPatientDeviceController.java
  18. 134 0
      web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/device/IotPatientDeviceFallbackFactory.java
  19. 9 9
      web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotDeviceFeign.java
  20. 67 0
      web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotPatientDeviceFeign.java

+ 1 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/security/core/EhrWebUsernamePasswordAuthenticationFilter.java

@ -55,6 +55,7 @@ public class EhrWebUsernamePasswordAuthenticationFilter extends AbstractAuthenti
     * @return
     * @throws AuthenticationException
     */
    @Override
    public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
        if(this.postOnly && !request.getMethod().equals("POST")) {
            throw new AuthenticationServiceException("Authentication method not supported: " + request.getMethod());

+ 29 - 7
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/common/BaseService.java

@ -2,25 +2,31 @@ package com.yihu.ehr.iot.service.common;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.iot.util.CurrentRequest;
import com.yihu.ehr.agModel.user.UserDetailModel;
import com.yihu.ehr.iot.model.AccessToken;
import com.yihu.ehr.iot.model.ListResult;
import com.yihu.ehr.iot.model.ObjectResult;
import com.yihu.ehr.iot.model.Result;
import com.yihu.ehr.iot.util.encode.AES;
import com.yihu.ehr.iot.util.encode.Base64;
import com.yihu.ehr.iot.util.http.HttpHelper;
import com.yihu.ehr.iot.util.http.HttpResponse;
import com.yihu.ehr.iot.util.operator.StringUtil;
import com.yihu.ehr.iot.model.AccessToken;
import com.yihu.ehr.iot.model.ListResult;
import com.yihu.ehr.iot.model.ObjectResult;
import com.yihu.ehr.iot.model.Result;
import com.yihu.ehr.util.rest.Envelop;
import org.apache.commons.lang.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.session.SessionInformation;
import org.springframework.security.core.session.SessionRegistry;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Serveice - 基类
@ -51,7 +57,23 @@ public class BaseService {
    @Value("${app.oauth2OuterUrl}")
    protected String oauth2OuterUrl;
    @Autowired
    private CurrentRequest currentRequest;
    protected SessionRegistry sessionRegistry;
    @Autowired
    protected HttpServletRequest request;
    /**
     * 获取当前登录用户,当前已登录的用户都缓存在session中
     * @return
     */
    public UserDetailModel getCurrentUser(){
        String sessionId = request.getSession().getId();
        UserDetailModel user = null;
        SessionInformation sessionInformation = sessionRegistry.getSessionInformation(sessionId);
        if(null != sessionInformation.getPrincipal()){
            user = (UserDetailModel)sessionInformation.getPrincipal();
        }
        return user;
    }
    public String readFile(String filePath, String charSet) {

+ 1 - 1
app/app-iot-server/src/main/resources/application.yml

@ -21,7 +21,7 @@ spring:
    name: app-iot-server
    message: App IOT Server
  resources:
    static-locations: classpath:/
    static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/front/,classpath:/
#    cache-period: 0

+ 0 - 68
app/app-iot-server/src/main/webapp/front/views/detail.html

@ -1,68 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!--[if lt IE 9]>
    <meta http-equiv="refresh" content="0;ie.html" />
    <![endif]-->
    <title>急救查询</title>
    <link href="../css/bootstrap.min14ed.css" rel="stylesheet">
    <link href="../css/index.css?v=2" rel="stylesheet">
    <style>
        p{
            padding-bottom: 10px;
        }
        p span:first-child{
            width: 100px;
            display: inline-block;
        }
        .line{
            border-bottom: 1px solid #ddd;
            padding-bottom: 10px;
        }
        .content{
            padding: 10px 20px 0;
        }
    </style>
</head>
<body>
    <div style="padding:20px 0px 20px 100px;">
        <div class="line">
            基本信息
        </div>
        <div class="content">
            <p><span class="color4">接警号码</span><span id="alarmTel"></span></p>
            <p><span class="color4">急救地址</span><span id="callAddress"></span></p>
            <p><span class="color4">患者人数</span><span id="patientNum"></span></p>
            <p><span class="color4">患者性别</span><span id="patientGender"></span></p>
            <p><span class="color4">主&#12288;&#12288;诉</span><span id="chiefComplaint"></span></p>
            <p><span class="color4">初步诊断</span><span id="disease"></span></p>
        </div>
        <div class="line">
            急救信息
        </div>
        <div class="content">
            <p><span class="color4">目&nbsp;&nbsp;的&nbsp;&nbsp;地</span><span id="callAddress1" class="main-color"></span></p>
            <p><span class="color4">派遣车辆</span><span id="carId"></span></p>
            <p><span class="color4">医&#12288;&#12288;生</span><span id="yisheng"></span></p>
            <p><span class="color4">护&#12288;&#12288;士</span><span id="hushi"></span></p>
            <p><span class="color4">司&#12288;&#12288;机</span><span id="siji"></span></p>
            <p><span class="color4">送达医院</span><span id="deliverAddress" class="main-color"></span></p>
        </div>
        <div class="line">
            调度员
        </div>
        <div class="content">
            <p><span class="color4">姓&#12288;&#12288;名</span><span id="realName"></span></p>
            <p><span class="color4">调度时间</span><span id="createDate"></span></p>
        </div>
    </div>
    <script src="../js/lib/plugins/require/require.js"></script>
    <script src="../js/common/config.js"></script>
    <script src="../js/scripts/detail.js?v=8"></script>
</body>
</html>

+ 0 - 168
app/app-iot-server/src/main/webapp/front/views/search.html

@ -1,168 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!--[if lt IE 9]>
    <meta http-equiv="refresh" content="0;ie.html" />
    <![endif]-->
    <title>急救查询</title>
    <link href="../css/bootstrap.min14ed.css" rel="stylesheet">
    <link href="../css/plugins/dataTables/dataTables.bootstrap.css" rel="stylesheet">
    <link href="../css/index.css" rel="stylesheet">
    <style>
        .table-border tr {
            border-bottom: 1px solid #e2e2e2;
        }
        .dataTables_wrapper .bottom {
            margin-top: 10px;
        }
        .body-grey .bottom {
            padding: 0 15px;
        }
        .dataTables_wrapper .bottom:after {
            clear: both;
        }
        .dataTables_wrapper .bottom:after, .dataTables_wrapper .bottom:before {
            display: table;
            content: " ";
        }
        .dataTables_length, .dataTables_filter, .dataTables_info, .dataTables_paginate {
            margin-bottom: 10px;
            display: inline-block;
        }
        .dataTables_length, .dataTables_info {
            float: left;
        }
        .dataTables_info {
            line-height: 26px;
            margin-left: 10px;
        }
        .dataTables_filter, .dataTables_paginate {
            float: right;
        }
        .dataTables_length .layui-form-select {
            display: none;
        }
        .dataTables_length select, .dataTables_filter input[type=search] {
            width: 100px;
            height: 26px;
            border: 1px solid #ccc;
            padding: 0 5px;
            display: inline-block;
        }
        .dataTables_paginate a.paginate_button {
            border-radius: 2px;
            padding: 0 12px;
            background-color: #f1eff0;
        }
        .dataTables_paginate a, .dataTables_paginate > span > span {
            box-sizing: border-box;
            display: inline-block;
            min-width: 2em;
            height: 26px;
            line-height: 26px;
            border: 1px solid transparent;
            padding: 0 0.5em;
            margin-left: 6px;
            text-align: center;
            text-decoration: none;
            cursor: pointer;
        }
        .dataTables_paginate span a.current {
            color: white;
            background: #2e8ded;
        }
        .dataTables_length select {
            width: 60px;
            border-radius: 2px;
        }
        .table {
            width: 100%!important;
        }
        label {
            float: left;
            padding-right: 15px;
            padding-left: 15px;
        }
        .form-control{
            display: inline-block;
            width: auto;
            float: left;
        }
    </style>
</head>
<body>
    <div class="container-fluid">
        <div class="row-fluid">
            <div style="text-align:center;margin:10px 0 10px 0;">
                <div class="form-horizontal query-form">
                    <!-- 这里添加查询条件 -->
                    <div class="form-group">
                        <div class="col-xs-6">
                            <label class="control-label" for="startDate">急救时间</label>
                            <input id="startDate" type="text" class="form-control input-md laydate-icon" style="width: 150px">
                            <label class="control-label" for="endDate">至</label>
                            <input id="endDate" type="text" class="form-control input-md laydate-icon" style="width: 150px">
                        </div>
                        <div class="col-xs-6">
                            <label class="control-label " for="startDate">车牌号码</label>
                            <input id="carId" type="text" class="form-control input-md">
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-xs-6">
                            <label class="control-label " for="startDate">呼救地点</label>
                            <input id="callAddress" type="text" class="form-control input-md" style="width: 345px">
                        </div>
                        <div class="col-xs-6">
                            <label class="control-label " for="startDate">送达医院</label>
                            <input id="deliverAddress" type="text" class="form-control input-md">
                            <button id="searchBtn" class="btn btn-primary">
                                <i class="glyphicon glyphicon-search"></i> 查询
                            </button>
                        </div>
                    </div>
                </div>
            </div>
            <table id="dateTable" class="table table-bordered table-striped">
                <thead>
                <tr>
                    <th>急救时间</th>
                    <th>接警电话</th>
                    <th>呼救地点</th>
                    <th>派遣救护车</th>
                    <th>送达医院</th>
                    <th>操作</th>
                </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
    </div>
    <script src="../js/lib/jquery.min.js"></script>
    <script src="../js/lib/plugins/dataTables/jquery.dataTables.js"></script>
    <script src="../js/lib/plugins/layer/layer.min.js"></script>
    <script src="../js/lib/plugins/layer/laydate/laydate.js"></script>
    <script src="../js/scripts/search.js?v=9"></script>
</body>
</html>

+ 0 - 27
app/app-iot-server/src/main/webapp/front/views/trace.html

@ -1,27 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!--[if lt IE 9]>
    <meta http-equiv="refresh" content="0;ie.html" />
    <![endif]-->
    <title>急救查询</title>
    <link href="../css/bootstrap.min14ed.css" rel="stylesheet">
    <link href="../css/index.css?v=2" rel="stylesheet">
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=mHjQLONxGpRtrZHZkxr9t3cD3n0HupQ0"></script>
</head>
<body>
    <div class="map-content">
        <div id="map" style="height:100%;width: 100%;">
        </div>
    </div>
    <script src="../js/lib/plugins/require/require.js"></script>
    <script src="../js/common/config.js"></script>
    <script src="../js/scripts/trace.js"></script>
</body>
</html>

+ 24 - 3
common/common-entity/src/main/java/com/yihu/jw/iot/device/IotPatientDeviceDO.java

@ -23,21 +23,26 @@ public class IotPatientDeviceDO extends IdEntityWithOperation implements Seriali
    private String patientName;//居民姓名
    @Column(name = "idcard")
    private String idcard;//居民身份证
    @Column(name = "category_code")
    private String categoryCode;//设备类型标识
    @Column(name = "device_id")
    private String deviceId;//设备id
    @Column(name = "device_name")
    private String deviceName;//设备名称
    @Column(name = "device_sn")
    private String deviceSn;//设备sn码
    @Column(name = "sim")
    private String sim; //sim卡号
    @Column(name = "doctor")
    private String doctor;//质检负责人
    private String doctor;//医生code
    @Column(name = "agent")
    private String agent;//质检负责人联系方式
    private String agent;//代理人
    @Column(name = "user_type")
    private String userType;//质检状态
    private String userType;//按键号
    @Column(name = "del")
    private Integer del;//删除标志
    public String getSaasId() {
        return saasId;
    }
@ -125,4 +130,20 @@ public class IotPatientDeviceDO extends IdEntityWithOperation implements Seriali
    public void setDel(Integer del) {
        this.del = del;
    }
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public String getSim() {
        return sim;
    }
    public void setSim(String sim) {
        this.sim = sim;
    }
}

+ 20 - 48
common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java

@ -19,6 +19,7 @@ public class IotRequestMapping {
        public static final String order = api_iot_common + "/order";
        public static final String device = api_iot_common + "/device";
        public static final String quality = api_iot_common + "/quality";
        public static final String patientDevice = api_iot_common + "/patientDevice";
        public static final String message_success_update = "update success";
@ -85,13 +86,6 @@ public class IotRequestMapping {
        public static final String message_success_create = "create success";
        public static final String message_success_find_functions = "find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_is_no_exist = "is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
@ -107,6 +101,25 @@ public class IotRequestMapping {
    }
    /**
     * 居民设备模块常量
     */
    public static class PatientDevice {
        public static final String findByPage = "findByPage";
        public static final String addPatientDevice = "addPatientDevice";
        public static final String findById = "findById";
        public static final String updPatientDevice= "updPatientDevice";
        public static final String delPatientDevice= "delPatientDevice";
        public static final String findByDeviceSnAndUserType= "findByDeviceSnAndUserType";
        public static final String findByPatient= "findByPatient";
        public static final String findByPatientAndDeviceSn= "findByPatientAndDeviceSn";
        public static final String findByDeviceSnAndCategoryCode= "findByDeviceSnAndCategoryCode";
        public static final String findByDeviceSnAndCategoryCodeAndUserType= "findByDeviceSnAndCategoryCodeAndUserType";
        public static final String updatePatientDevice= "updatePatientDevice";
        public static final String findListByPatient= "findListByPatient";
    }
    /**
     * 设备字典模块常量
@ -125,13 +138,6 @@ public class IotRequestMapping {
        public static final String message_success_create = "deviceDict create success";
        public static final String message_success_find_functions = "deviceDict find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotDeviceDict_is_no_exist = "iotDeviceDict is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
@ -159,13 +165,6 @@ public class IotRequestMapping {
        public static final String message_success_create = "device create success";
        public static final String message_success_find_functions = "device find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotDevice_is_no_exist = "iotDevice is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
@ -193,13 +192,6 @@ public class IotRequestMapping {
        public static final String message_success_create = "deviceOrder create success";
        public static final String message_success_find_functions = "deviceOrder find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotDeviceOrder_is_no_exist = "iotDeviceOrder is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
@ -214,12 +206,6 @@ public class IotRequestMapping {
        public static final String queryQualityPlanPage = "queryQualityPlanPage";
        public static final String findById = "findById";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
@ -239,13 +225,6 @@ public class IotRequestMapping {
        public static final String message_success_create = "deviceLabel create success";
        public static final String message_success_find_functions = "deviceLabel find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotDeviceLabel_is_no_exist = "iotDeviceLabel is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
@ -265,13 +244,6 @@ public class IotRequestMapping {
        public static final String message_success_create = "deviceLabelInfo create success";
        public static final String message_success_find_functions = "deviceLabelInfo find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotDeviceLabelInfo_is_no_exist = "iotDeviceLabelInfo is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
}

common/common-rest-model/src/main/java/com/yihu/jw/restmodel/archives/PatientArchivesVo.java → common/common-rest-model/src/main/java/com/yihu/jw/restmodel/archives/PatientArchivesVO.java


+ 3 - 3
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/device/IotPatientDeviceVO.java

@ -27,11 +27,11 @@ public class IotPatientDeviceVO extends BaseVO implements Serializable {
    private String deviceName;
    @ApiModelProperty("设备sn码")
    private String deviceSn;
    @ApiModelProperty("质检负责人")
    @ApiModelProperty("医生code")
    private String doctor;
    @ApiModelProperty("质检负责人联系方式")
    @ApiModelProperty("代理人code")
    private String agent;
    @ApiModelProperty("质检状态")
    @ApiModelProperty("按键号")
    private String userType;
    public String getPatient() {

+ 1 - 2
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java

@ -24,7 +24,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
@ -48,7 +47,7 @@ public class IotDeviceController extends EnvelopRestController{
    @Autowired
    private IotDeviceImportRecordDao iotDeviceImportRecordDao;
    @PostMapping(value = IotRequestMapping.Device.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = IotRequestMapping.Device.api_create)
    @ApiOperation(value = "创建设备", notes = "创建设备")
    public Envelop<IotDeviceVO> create(@ApiParam(name = "json_data", value = "", defaultValue = "")
                          @RequestParam String jsonData) {

+ 181 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotPatientDeviceController.java

@ -0,0 +1,181 @@
package com.yihu.iot.controller.device;
import com.yihu.iot.service.device.IotPatientDeviceService;
import com.yihu.jw.iot.device.IotPatientDeviceDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import static com.yihu.jw.rm.iot.IotRequestMapping.Common.patientDevice;
/**
 * @author yeshijie on 2018/2/8.
 */
@RestController
@RequestMapping(patientDevice)
@Api(tags = "居民设备管理相关操作", description = "居民设备管理相关操作")
public class IotPatientDeviceController extends EnvelopRestController{
    @Autowired
    private IotPatientDeviceService iotPatientDeviceService;
    @PostMapping(value = IotRequestMapping.PatientDevice.addPatientDevice)
    @ApiOperation(value = "设备绑定", notes = "设备绑定")
    public Envelop<IotPatientDeviceVO> create(@ApiParam(name = "json_data", value = "", defaultValue = "")
                                       @RequestParam String jsonData) {
        try {
            IotPatientDeviceDO patientDevice = toEntity(jsonData, IotPatientDeviceDO.class);
            iotPatientDeviceService.create(patientDevice);
            return Envelop.getSuccess(IotRequestMapping.Device.message_success_create);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndUserType)
    @ApiOperation(value = "按sn码和按键号查找", notes = "按sn码和按键号查找")
    public Envelop<IotPatientDeviceVO> findByDeviceSnAndUserType(
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn,
            @ApiParam(name = "userType", value = "按键号", defaultValue = "")
            @RequestParam(value = "userType",required = true) String userType) {
        try {
            IotPatientDeviceDO patientDevice = iotPatientDeviceService.findByDeviceSnAndUserType(deviceSn, userType);
            IotPatientDeviceVO patientDeviceVO = convertToModel(patientDevice,IotPatientDeviceVO.class);
            return Envelop.getSuccess(IotRequestMapping.Device.message_success_create,patientDeviceVO);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByPatient)
    @ApiOperation(value = "按居民code查找", notes = "按居民code查找")
    public Envelop<IotPatientDeviceVO> findByPatient(
            @ApiParam(name = "patient", value = "居民code", defaultValue = "")
            @RequestParam(value = "patient",required = true) String patient) {
        try {
            List<IotPatientDeviceDO> list = iotPatientDeviceService.findByPatient(patient);
            //DO转VO
            List<IotPatientDeviceVO> iotPatientDeviceVOList = convertToModels(list,new ArrayList<>(list.size()),IotPatientDeviceVO.class);
            return Envelop.getSuccess(IotRequestMapping.Device.message_success_create,iotPatientDeviceVOList);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByPatientAndDeviceSn)
    @ApiOperation(value = "按居民和sn码查找", notes = "按居民和sn码查找")
    public Envelop<IotPatientDeviceVO> findByPatientAndDeviceSn(
            @ApiParam(name = "patient", value = "居民code", defaultValue = "")
            @RequestParam(value = "patient",required = true) String patient,
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn) {
        try {
            List<IotPatientDeviceDO> list = iotPatientDeviceService.findByPatientAndDeviceSn(patient,deviceSn);
            //DO转VO
            List<IotPatientDeviceVO> iotPatientDeviceVOList = convertToModels(list,new ArrayList<>(list.size()),IotPatientDeviceVO.class);
            return Envelop.getSuccess(IotRequestMapping.Device.message_success_create,iotPatientDeviceVOList);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findListByPatient)
    @ApiOperation(value = "按居民分页查找", notes = "按居民分页查找")
    public Envelop<IotDeviceVO> findListByPatient(
            @ApiParam(name = "patient", value = "居民code", defaultValue = "")
            @RequestParam(value = "patient", required = true) String patient,
            @ApiParam(name = "page", value = "第几页", defaultValue = "")
            @RequestParam(value = "page", required = true) Integer page,
            @ApiParam(name = "pagesize", value = "页面大小", defaultValue = "")
            @RequestParam(value = "pagesize", required = true) Integer pagesize){
        try {
            PageRequest pageRequest = new PageRequest(page - 1, pagesize);
            List<IotPatientDeviceDO> list = iotPatientDeviceService.findByPatient(patient,pageRequest);
            //DO转VO
            List<IotPatientDeviceVO> iotPatientDeviceVOList = convertToModels(list,new ArrayList<>(list.size()),IotPatientDeviceVO.class);
            return Envelop.getSuccess(IotRequestMapping.Company.message_success_find_functions,iotPatientDeviceVOList);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndCategoryCode)
    @ApiOperation(value = "按sn码和设备类型查找", notes = "按sn码和设备类型查找")
    public Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCode(
            @ApiParam(name = "categoryCode", value = "设备类型", defaultValue = "")
            @RequestParam(value = "categoryCode",required = true) String categoryCode,
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn) {
        try {
            List<IotPatientDeviceDO> list = iotPatientDeviceService.findByDeviceSnAndCategoryCode(deviceSn,categoryCode);
            //DO转VO
            List<IotPatientDeviceVO> iotPatientDeviceVOList = convertToModels(list,new ArrayList<>(list.size()),IotPatientDeviceVO.class);
            return Envelop.getSuccess(IotRequestMapping.Device.message_success_create,iotPatientDeviceVOList);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndCategoryCodeAndUserType)
    @ApiOperation(value = "按sn码,设备类型及按键号查找", notes = "按sn码,设备类型及按键号查找")
    public Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCodeAndUserType(
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn,
            @ApiParam(name = "categoryCode", value = "设备类型", defaultValue = "")
            @RequestParam(value = "categoryCode",required = true) String categoryCode,
            @ApiParam(name = "userType", value = "按键号", defaultValue = "")
            @RequestParam(value = "userType",required = true) String userType) {
        try {
            IotPatientDeviceDO patientDevice = iotPatientDeviceService.findByDeviceSnAndCategoryCodeAndUserType(deviceSn,categoryCode, userType);
            IotPatientDeviceVO patientDeviceVO = convertToModel(patientDevice,IotPatientDeviceVO.class);
            return Envelop.getSuccess(IotRequestMapping.Device.message_success_create,patientDeviceVO);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.PatientDevice.updatePatientDevice)
    @ApiOperation(value = "更换患者绑定的血糖仪", notes = "更换患者绑定的血糖仪")
    public Envelop<IotPatientDeviceVO> updatePatientDevice(
            @ApiParam(name = "patient", value = "sn码", defaultValue = "")
            @RequestParam(value = "patient",required = true) String patient,
            @ApiParam(name = "deviceSN", value = "设备类型", defaultValue = "")
            @RequestParam(value = "deviceSN",required = true) String deviceSN,
            @ApiParam(name = "newDeviceSN", value = "设备类型", defaultValue = "")
            @RequestParam(value = "newDeviceSN",required = true) String newDeviceSN,
            @ApiParam(name = "userType", value = "sn码", defaultValue = "")
            @RequestParam(value = "userType",required = true) String userType,
            @ApiParam(name = "sim", value = "按键号", defaultValue = "")
            @RequestParam(value = "sim",required = true) String sim) {
        try {
            iotPatientDeviceService.updatePatientDevice(patient, deviceSN, newDeviceSN, userType, sim);
            return Envelop.getSuccess(IotRequestMapping.Device.message_success_create);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
}

+ 30 - 2
svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotPatientDeviceDao.java

@ -1,14 +1,42 @@
package com.yihu.iot.dao.device;
import com.yihu.jw.iot.device.IotPatientDeviceDO;
import com.yihu.jw.iot.device.IotQualityRecordDO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * @author yeshijie on 2018/1/16.
 */
public interface IotPatientDeviceDao extends PagingAndSortingRepository<IotQualityRecordDO, String>,
        JpaSpecificationExecutor<IotQualityRecordDO> {
public interface IotPatientDeviceDao extends PagingAndSortingRepository<IotPatientDeviceDO, String>,
        JpaSpecificationExecutor<IotPatientDeviceDO> {
    @Query("from IotPatientDeviceDO a where a.patient = ?1 and a.del=1 ")
    List<IotPatientDeviceDO> findByPatient(String patient);
    @Query("from IotPatientDeviceDO a where a.patient = ?1 and a.deviceSn=?2 and a.del=1")
    List<IotPatientDeviceDO> findByPatientAndDeviceSn(String patient,String deviceSn);
    @Query("from IotPatientDeviceDO a where a.patient=?1 and a.del=1 ")
    List<IotPatientDeviceDO> findByPatient(String patient, Pageable pageRequest);
    @Query("from IotPatientDeviceDO a where a.categoryCode = ?2 and a.deviceSn=?1 and a.del=1 ")
    List<IotPatientDeviceDO> findByDeviceSnAndCategoryCode(String deviceSn, String categoryCode);
    @Query("from IotPatientDeviceDO a where a.patient = ?1 and a.deviceSn=?2 and a.del=1 ")
    IotPatientDeviceDO findByDeviceSnAndCategoryCodeAndUserType(String deviceSn, String categoryCode, String userType);
    @Query("from IotPatientDeviceDO a where a.userType = ?2 and a.deviceSn=?1 and a.del=1 ")
    IotPatientDeviceDO findByDeviceSnAndUserType(String deviceSn, String userType);
    //更换患者绑定的血糖仪
    @Modifying
    @Query("update IotPatientDeviceDO t set t.deviceSn = ?3 , t.userType = ?4,t.sim=?5 where t.patient = ?1 and t.deviceSn = ?2 and t.del=1 ")
    int updatePatientDevice(String patient, String deviceSN, String newDeviceSN,String userType,String sim);
}

+ 100 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotPatientDeviceService.java

@ -3,13 +3,113 @@ package com.yihu.iot.service.device;
import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.iot.dao.device.IotPatientDeviceDao;
import com.yihu.jw.iot.device.IotPatientDeviceDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @author yeshijie on 2018/1/16.
 */
@Service
public class IotPatientDeviceService extends BaseJpaService<IotPatientDeviceDO,IotPatientDeviceDao> {
    @Autowired
    private IotPatientDeviceDao iotPatientDeviceDao;
    /**
     * 新增
     * @param patientDevice
     * @return
     */
    public IotPatientDeviceDO create(IotPatientDeviceDO patientDevice) {
        patientDevice.setSaasId(getCode());
        patientDevice.setDel(1);
        return iotPatientDeviceDao.save(patientDevice);
    }
    /**
     * 按id查找
     * @param id
     * @return
     */
    public IotPatientDeviceDO findById(String id) {
        return iotPatientDeviceDao.findOne(id);
    }
    /**
     * 按sn码和按键号查找
     * @param deviceSn
     * @param userType
     * @return
     */
    public IotPatientDeviceDO findByDeviceSnAndUserType(String deviceSn,String userType){
        return iotPatientDeviceDao.findByDeviceSnAndUserType(deviceSn, userType);
    }
    /**
     * 按居民code查找
     * @param patient
     * @return
     */
    public List<IotPatientDeviceDO> findByPatient(String patient){
        return iotPatientDeviceDao.findByPatient(patient);
    }
    /**
     * 按居民和sn码查找
     * @param patient
     * @param deviceSn
     * @return
     */
    public List<IotPatientDeviceDO> findByPatientAndDeviceSn(String patient,String deviceSn){
        return iotPatientDeviceDao.findByPatientAndDeviceSn(patient,deviceSn);
    }
    /**
     * 按居民分页查找
     * @param patient
     * @param pageRequest
     * @return
     */
    public List<IotPatientDeviceDO> findByPatient(String patient, Pageable pageRequest){
        return iotPatientDeviceDao.findByPatient(patient,pageRequest);
    }
    /**
     * 按sn码和设备类型查找
     * @param deviceSn
     * @param categoryCode
     * @return
     */
    public List<IotPatientDeviceDO> findByDeviceSnAndCategoryCode(String deviceSn, String categoryCode){
        return iotPatientDeviceDao.findByDeviceSnAndCategoryCode(deviceSn, categoryCode);
    }
    /**
     * 按sn码,设备类型及按键号查找
     * @param deviceSn
     * @param categoryCode
     * @param userType
     * @return
     */
    public IotPatientDeviceDO findByDeviceSnAndCategoryCodeAndUserType(String deviceSn, String categoryCode, String userType){
        return iotPatientDeviceDao.findByDeviceSnAndCategoryCodeAndUserType(deviceSn, categoryCode, userType);
    }
    /**
     * 更换患者绑定的血糖仪
     * @param patient
     * @param deviceSN
     * @param newDeviceSN
     * @param userType
     * @param sim
     * @return
     */
    public int updatePatientDevice(String patient, String deviceSN, String newDeviceSN,String userType,String sim){
        return iotPatientDeviceDao.updatePatientDevice(patient, deviceSN, newDeviceSN, userType, sim);
    }
}

+ 1 - 0
web-gateway/pom.xml

@ -13,6 +13,7 @@
    <groupId>com.yihu.jw</groupId>
    <artifactId>web-gateway</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>
    <dependencies>
        <dependency>

+ 1 - 0
web-gateway/src/main/java/com/yihu/jw/commnon/iot/IotCommonContants.java

@ -19,6 +19,7 @@ public class IotCommonContants {
        public static final String order = api_iot_common + "/wg/order";
        public static final String device = api_iot_common + "/wg/device";
        public static final String quality = api_iot_common + "/wg/quality";
        public static final String patientDevice = api_iot_common + "/wg/patientDevice";
    }
}

+ 114 - 0
web-gateway/src/main/java/com/yihu/jw/controller/iot/device/IotPatientDeviceController.java

@ -0,0 +1,114 @@
package com.yihu.jw.controller.iot.device;
import com.yihu.jw.commnon.iot.IotCommonContants;
import com.yihu.jw.feign.iot.device.IotPatientDeviceFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author yeshijie on 2018/2/8.
 */
@RestController
@RequestMapping(IotCommonContants.Common.patientDevice)
@Api(tags = "居民设备管理相关操作", description = "居民设备管理相关操作")
public class IotPatientDeviceController extends EnvelopRestController{
    @Autowired
    private IotPatientDeviceFeign iotPatientDeviceFeign;
    @PostMapping(value = IotRequestMapping.PatientDevice.addPatientDevice)
    @ApiOperation(value = "设备绑定", notes = "设备绑定")
    public Envelop<IotPatientDeviceVO> create(@ApiParam(name = "json_data", value = "", defaultValue = "")
                                       @RequestParam String jsonData) {
        return iotPatientDeviceFeign.create(jsonData);
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndUserType)
    @ApiOperation(value = "按sn码和按键号查找", notes = "按sn码和按键号查找")
    public Envelop<IotPatientDeviceVO> findByDeviceSnAndUserType(
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn,
            @ApiParam(name = "userType", value = "按键号", defaultValue = "")
            @RequestParam(value = "userType",required = true) String userType) {
        return iotPatientDeviceFeign.findByDeviceSnAndUserType(deviceSn, userType);
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByPatient)
    @ApiOperation(value = "按居民code查找", notes = "按居民code查找")
    public Envelop<IotPatientDeviceVO> findByPatient(
            @ApiParam(name = "patient", value = "居民code", defaultValue = "")
            @RequestParam(value = "patient",required = true) String patient) {
        return iotPatientDeviceFeign.findByPatient(patient);
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByPatientAndDeviceSn)
    @ApiOperation(value = "按居民和sn码查找", notes = "按居民和sn码查找")
    public Envelop<IotPatientDeviceVO> findByPatientAndDeviceSn(
            @ApiParam(name = "patient", value = "居民code", defaultValue = "")
            @RequestParam(value = "patient",required = true) String patient,
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn) {
        return iotPatientDeviceFeign.findByPatientAndDeviceSn(patient, deviceSn);
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findListByPatient)
    @ApiOperation(value = "按居民分页查找", notes = "按居民分页查找")
    public Envelop<IotDeviceVO> findListByPatient(
            @ApiParam(name = "patient", value = "居民code", defaultValue = "")
            @RequestParam(value = "patient", required = true) String patient,
            @ApiParam(name = "page", value = "第几页", defaultValue = "")
            @RequestParam(value = "page", required = true) Integer page,
            @ApiParam(name = "pagesize", value = "页面大小", defaultValue = "")
            @RequestParam(value = "pagesize", required = true) Integer pagesize){
        return iotPatientDeviceFeign.findListByPatient(patient, page, pagesize);
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndCategoryCode)
    @ApiOperation(value = "按sn码和设备类型查找", notes = "按sn码和设备类型查找")
    public Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCode(
            @ApiParam(name = "categoryCode", value = "设备类型", defaultValue = "")
            @RequestParam(value = "categoryCode",required = true) String categoryCode,
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn) {
        return iotPatientDeviceFeign.findByDeviceSnAndCategoryCode(categoryCode, deviceSn);
    }
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndCategoryCodeAndUserType)
    @ApiOperation(value = "按sn码,设备类型及按键号查找", notes = "按sn码,设备类型及按键号查找")
    public Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCodeAndUserType(
            @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
            @RequestParam(value = "deviceSn",required = true) String deviceSn,
            @ApiParam(name = "categoryCode", value = "设备类型", defaultValue = "")
            @RequestParam(value = "categoryCode",required = true) String categoryCode,
            @ApiParam(name = "userType", value = "按键号", defaultValue = "")
            @RequestParam(value = "userType",required = true) String userType) {
        return iotPatientDeviceFeign.findByDeviceSnAndCategoryCodeAndUserType(deviceSn, categoryCode, userType);
    }
    @PostMapping(value = IotRequestMapping.PatientDevice.updatePatientDevice)
    @ApiOperation(value = "更换患者绑定的血糖仪", notes = "更换患者绑定的血糖仪")
    public Envelop<IotPatientDeviceVO> updatePatientDevice(
            @ApiParam(name = "patient", value = "sn码", defaultValue = "")
            @RequestParam(value = "patient",required = true) String patient,
            @ApiParam(name = "deviceSN", value = "设备类型", defaultValue = "")
            @RequestParam(value = "deviceSN",required = true) String deviceSN,
            @ApiParam(name = "newDeviceSN", value = "设备类型", defaultValue = "")
            @RequestParam(value = "newDeviceSN",required = true) String newDeviceSN,
            @ApiParam(name = "userType", value = "sn码", defaultValue = "")
            @RequestParam(value = "userType",required = true) String userType,
            @ApiParam(name = "sim", value = "按键号", defaultValue = "")
            @RequestParam(value = "sim",required = true) String sim) {
        return iotPatientDeviceFeign.updatePatientDevice(patient, deviceSN, newDeviceSN, userType, sim);
    }
}

+ 134 - 0
web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/device/IotPatientDeviceFallbackFactory.java

@ -0,0 +1,134 @@
package com.yihu.jw.feign.fallbackfactory.iot.device;
import com.yihu.jw.feign.iot.device.IotPatientDeviceFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import feign.hystrix.FallbackFactory;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * @author yeshijie on 2018/2/8.
 */
@Component
public class IotPatientDeviceFallbackFactory implements FallbackFactory<IotPatientDeviceFeign> {
    @Autowired
    private Tracer tracer;
    @Override
    public IotPatientDeviceFeign create(Throwable e) {
        return new IotPatientDeviceFeign() {
            @Override
            public Envelop<IotPatientDeviceVO> create(@ApiParam(name = "json_data", value = "", defaultValue = "")
                                                      @RequestParam String jsonData) {
                tracer.getCurrentSpan().logEvent("设备绑定失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("jsonData:" + jsonData);
                return null;
            }
            @Override
            public Envelop<IotPatientDeviceVO> findByDeviceSnAndUserType(
                    @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
                    @RequestParam(value = "deviceSn",required = true) String deviceSn,
                    @ApiParam(name = "userType", value = "按键号", defaultValue = "")
                    @RequestParam(value = "userType",required = true) String userType) {
                tracer.getCurrentSpan().logEvent("按sn码和按键号查找失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("deviceSn:" + deviceSn);
                tracer.getCurrentSpan().logEvent("userType:" + userType);
                return null;
            }
            @Override
            public Envelop<IotPatientDeviceVO> findByPatient(
                    @ApiParam(name = "patient", value = "居民code", defaultValue = "")
                    @RequestParam(value = "patient",required = true) String patient) {
                tracer.getCurrentSpan().logEvent("按居民code查找失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("patient:" + patient);
                return null;
            }
            @Override
            public Envelop<IotPatientDeviceVO> findByPatientAndDeviceSn(
                    @ApiParam(name = "patient", value = "居民code", defaultValue = "")
                    @RequestParam(value = "patient",required = true) String patient,
                    @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
                    @RequestParam(value = "deviceSn",required = true) String deviceSn) {
                tracer.getCurrentSpan().logEvent("按居民和sn码查找失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("patient:" + patient);
                tracer.getCurrentSpan().logEvent("deviceSn:" + deviceSn);
                return null;
            }
            @Override
            public Envelop<IotDeviceVO> findListByPatient(
                    @ApiParam(name = "patient", value = "居民code", defaultValue = "")
                    @RequestParam(value = "patient", required = true) String patient,
                    @ApiParam(name = "page", value = "第几页", defaultValue = "")
                    @RequestParam(value = "page", required = true) Integer page,
                    @ApiParam(name = "pagesize", value = "页面大小", defaultValue = "")
                    @RequestParam(value = "pagesize", required = true) Integer pagesize){
                tracer.getCurrentSpan().logEvent("按居民分页查找失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("patient:" + patient);
                tracer.getCurrentSpan().logEvent("page:" + page);
                tracer.getCurrentSpan().logEvent("pagesize:" + pagesize);
                return null;
            }
            @Override
            public Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCode(
                    @ApiParam(name = "categoryCode", value = "设备类型", defaultValue = "")
                    @RequestParam(value = "categoryCode",required = true) String categoryCode,
                    @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
                    @RequestParam(value = "deviceSn",required = true) String deviceSn) {
                tracer.getCurrentSpan().logEvent("按sn码和设备类型查找失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("categoryCode:" + categoryCode);
                tracer.getCurrentSpan().logEvent("deviceSn:" + deviceSn);
                return null;
            }
            @Override
            public Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCodeAndUserType(
                    @ApiParam(name = "deviceSn", value = "sn码", defaultValue = "")
                    @RequestParam(value = "deviceSn",required = true) String deviceSn,
                    @ApiParam(name = "categoryCode", value = "设备类型", defaultValue = "")
                    @RequestParam(value = "categoryCode",required = true) String categoryCode,
                    @ApiParam(name = "userType", value = "按键号", defaultValue = "")
                    @RequestParam(value = "userType",required = true) String userType) {
                tracer.getCurrentSpan().logEvent("按sn码,设备类型及按键号查找失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("categoryCode:" + categoryCode);
                tracer.getCurrentSpan().logEvent("deviceSn:" + deviceSn);
                tracer.getCurrentSpan().logEvent("userType:" + userType);
                return null;
            }
            @Override
            public Envelop<IotPatientDeviceVO> updatePatientDevice(
                    @ApiParam(name = "patient", value = "sn码", defaultValue = "")
                    @RequestParam(value = "patient",required = true) String patient,
                    @ApiParam(name = "deviceSN", value = "设备类型", defaultValue = "")
                    @RequestParam(value = "deviceSN",required = true) String deviceSN,
                    @ApiParam(name = "newDeviceSN", value = "设备类型", defaultValue = "")
                    @RequestParam(value = "newDeviceSN",required = true) String newDeviceSN,
                    @ApiParam(name = "userType", value = "sn码", defaultValue = "")
                    @RequestParam(value = "userType",required = true) String userType,
                    @ApiParam(name = "sim", value = "按键号", defaultValue = "")
                    @RequestParam(value = "sim",required = true) String sim) {
                tracer.getCurrentSpan().logEvent("更换患者绑定的血糖仪失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("patient:" + patient);
                tracer.getCurrentSpan().logEvent("deviceSN:" + deviceSN);
                tracer.getCurrentSpan().logEvent("newDeviceSN:" + newDeviceSN);
                tracer.getCurrentSpan().logEvent("userType:" + userType);
                tracer.getCurrentSpan().logEvent("sim:" + sim);
                return null;
            }
        };
    }
}

+ 9 - 9
web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotDeviceFeign.java

@ -22,23 +22,23 @@ import org.springframework.web.bind.annotation.*;
public interface IotDeviceFeign{
    @PostMapping(value = IotRequestMapping.Device.api_create)
    public Envelop<IotDeviceVO> create(@RequestParam(value = "jsonData", required = true) String jsonData);
    Envelop<IotDeviceVO> create(@RequestParam(value = "jsonData", required = true) String jsonData);
    @GetMapping(value = IotRequestMapping.Device.api_getById)
    public Envelop<IotDeviceVO> findByCode(@RequestParam(value = "id", required = true) String id);
    Envelop<IotDeviceVO> findByCode(@RequestParam(value = "id", required = true) String id);
    @GetMapping(value = IotRequestMapping.Device.isSnExist)
    public Envelop<ExistVO> isSnExist(@RequestParam(value = "sn", required = true) String sn);
    Envelop<ExistVO> isSnExist(@RequestParam(value = "sn", required = true) String sn);
    @GetMapping(value = IotRequestMapping.Device.isSimExist)
    public Envelop<ExistVO> isSimExist(@RequestParam(value = "sim", required = true) String sim);
    Envelop<ExistVO> isSimExist(@RequestParam(value = "sim", required = true) String sim);
    @PostMapping(value = IotRequestMapping.Device.updSim)
    public BaseEnvelop updSim(@RequestParam(value = "sim", required = true) String sim,
    BaseEnvelop updSim(@RequestParam(value = "sim", required = true) String sim,
                             @RequestParam(value = "id", required = true) String id);
    @GetMapping(value = IotRequestMapping.Device.api_queryPage)
    public Envelop<IotDeviceVO> findProductPageByCompanyId(
    Envelop<IotDeviceVO> findProductPageByCompanyId(
            @RequestParam(value = "sn", required = false) String sn,
            @RequestParam(value = "hospital", required = false) String hospital,
            @RequestParam(value = "orderId", required = false) String orderId,
@ -47,13 +47,13 @@ public interface IotDeviceFeign{
            @RequestParam(value = "size", required = false) Integer size);
    @GetMapping(value = IotRequestMapping.Device.isImportDevice)
    public Envelop<ExistVO> isImportDevice(@RequestParam(value = "purcharseId", required = true) String purcharseId);
    Envelop<ExistVO> isImportDevice(@RequestParam(value = "purcharseId", required = true) String purcharseId);
    @PostMapping(value = IotRequestMapping.Device.importDevice)
    public Envelop<IotDeviceImportRecordVO> uploadStream(@RequestBody String jsonData);
    Envelop<IotDeviceImportRecordVO> uploadStream(@RequestBody String jsonData);
    @GetMapping(value = IotRequestMapping.Device.queryImportRecordPage)
    public Envelop<IotDeviceImportRecordVO> queryImportRecordPage(
    Envelop<IotDeviceImportRecordVO> queryImportRecordPage(
           @RequestParam(value = "purcharseId", required = true) String purcharseId,
           @RequestParam(value = "page", required = false) Integer page,
           @RequestParam(value = "size", required = false) Integer size);

+ 67 - 0
web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotPatientDeviceFeign.java

@ -0,0 +1,67 @@
package com.yihu.jw.feign.iot.device;
import com.yihu.jw.feign.fallbackfactory.iot.device.IotPatientDeviceFallbackFactory;
import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * @author yeshijie on 2018/2/8.
 */
@FeignClient(
        name = CommonContants.svr_iot // name值是eurika的实例名字
        ,fallbackFactory  = IotPatientDeviceFallbackFactory.class
)
@RequestMapping(IotRequestMapping.Common.patientDevice)
public interface IotPatientDeviceFeign{
    @PostMapping(value = IotRequestMapping.PatientDevice.addPatientDevice)
    Envelop<IotPatientDeviceVO> create(@RequestParam(value = "jsonData", required = true) String jsonData);
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndUserType)
    Envelop<IotPatientDeviceVO> findByDeviceSnAndUserType(
            @RequestParam(value = "deviceSn",required = true) String deviceSn,
            @RequestParam(value = "userType",required = true) String userType);
    @GetMapping(value = IotRequestMapping.PatientDevice.findByPatient)
    Envelop<IotPatientDeviceVO> findByPatient(
            @RequestParam(value = "patient",required = true) String patient);
    @GetMapping(value = IotRequestMapping.PatientDevice.findByPatientAndDeviceSn)
    Envelop<IotPatientDeviceVO> findByPatientAndDeviceSn(
            @RequestParam(value = "patient",required = true) String patient,
            @RequestParam(value = "deviceSn",required = true) String deviceSn);
    @GetMapping(value = IotRequestMapping.PatientDevice.findListByPatient)
    Envelop<IotDeviceVO> findListByPatient(
            @RequestParam(value = "patient", required = true) String patient,
            @RequestParam(value = "page", required = true) Integer page,
            @RequestParam(value = "pagesize", required = true) Integer pagesize);
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndCategoryCode)
    Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCode(
            @RequestParam(value = "categoryCode",required = true) String categoryCode,
            @RequestParam(value = "deviceSn",required = true) String deviceSn);
    @GetMapping(value = IotRequestMapping.PatientDevice.findByDeviceSnAndCategoryCodeAndUserType)
    Envelop<IotPatientDeviceVO> findByDeviceSnAndCategoryCodeAndUserType(
            @RequestParam(value = "deviceSn",required = true) String deviceSn,
            @RequestParam(value = "categoryCode",required = true) String categoryCode,
           @RequestParam(value = "userType",required = true) String userType);
    @PostMapping(value = IotRequestMapping.PatientDevice.updatePatientDevice)
    Envelop<IotPatientDeviceVO> updatePatientDevice(
            @RequestParam(value = "patient",required = true) String patient,
            @RequestParam(value = "deviceSN",required = true) String deviceSN,
            @RequestParam(value = "newDeviceSN",required = true) String newDeviceSN,
            @RequestParam(value = "userType",required = true) String userType,
            @RequestParam(value = "sim",required = true) String sim);
}