Browse Source

物联网相关

yeshijie 7 years ago
parent
commit
2288059172

+ 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);
}