Bläddra i källkod

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

trick9191 7 år sedan
förälder
incheckning
48ef275da9
22 ändrade filer med 366 tillägg och 20 borttagningar
  1. 13 1
      common/common-entity/src/main/java/com/yihu/wlyy/entity/device/DeviceWxMessage.java
  2. 105 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/device/vo/DeviceWxMessageDTO.java
  3. 96 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/DeviceMeasureListener.java
  4. 17 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/StartListener.java
  5. 20 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/task/PushMsgTask.java
  6. 2 0
      patient-co/patient-co-wlyy-job/src/main/resources/application-dev.yml
  7. 3 0
      patient-co/patient-co-wlyy-job/src/main/resources/application-devtest.yml
  8. 2 0
      patient-co/patient-co-wlyy-job/src/main/resources/application-prod.yml
  9. 2 0
      patient-co/patient-co-wlyy-job/src/main/resources/application-test.yml
  10. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/health/repository/DeviceDetailDao.java
  11. 62 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/DeviceWxMessageService.java
  12. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/PatientDeviceLogService.java
  13. 7 4
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/PatientDeviceService.java
  14. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/message/MessageService.java
  15. 18 6
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/device/DoctorDeviceController.java
  16. 7 3
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/device/PatientDeviceController.java
  17. 1 0
      patient-co/patient-co-wlyy/src/main/resources/application-dev.yml
  18. 1 0
      patient-co/patient-co-wlyy/src/main/resources/application-devtest.yml
  19. 1 0
      patient-co/patient-co-wlyy/src/main/resources/application-local.yml
  20. 1 0
      patient-co/patient-co-wlyy/src/main/resources/application-localtest.yml
  21. 2 0
      patient-co/patient-co-wlyy/src/main/resources/application-prod.yml
  22. 1 0
      patient-co/patient-co-wlyy/src/main/resources/application-test.yml

+ 13 - 1
common/common-entity/src/main/java/com/yihu/wlyy/entity/device/DeviceWxMessage.java

@ -16,6 +16,8 @@ public class DeviceWxMessage extends IdEntity{
    private String patient;
    private String deviceName;
    private String deviceSn;
    //设备类型(1血糖仪 2血压计)
    private String categoryCode;
    private Date czrq;
@ -24,10 +26,11 @@ public class DeviceWxMessage extends IdEntity{
    }
    /** full constructor */
    public DeviceWxMessage(String patient, String deviceName, String deviceSn, Date czrq) {
    public DeviceWxMessage(String patient, String deviceName, String deviceSn, String categoryCode, Date czrq) {
        this.patient = patient;
        this.deviceName = deviceName;
        this.deviceSn = deviceSn;
        this.categoryCode = categoryCode;
        this.czrq = czrq;
    }
@ -61,6 +64,15 @@ public class DeviceWxMessage extends IdEntity{
        this.patient = patient;
    }
    @Column(name = "category_code")
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    @Column(name = "czrq")
    public Date getCzrq() {
        return czrq;

+ 105 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/device/vo/DeviceWxMessageDTO.java

@ -0,0 +1,105 @@
package com.yihu.wlyy.entity.device.vo;
import java.util.Date;
/**
 * Created by zd on 2018/06/13.
 */
public class DeviceWxMessageDTO{
    private long id;
    //患者openId
    private String openId;
    //患者code
    private String patient;
    //患者名字
    private String patientName;
    //医生code
    private String doctor;
    //医生名称
    private String doctorName;
    //1血糖仪 2血压计
    private int deviceType;
    //创建时间
    private String czrq;
    /** default constructor */
    public DeviceWxMessageDTO() {
    }
    /** full constructor */
    public DeviceWxMessageDTO(long id, String openId, String patient, String patientName, String doctor, String doctorName, int deviceType, String czrq) {
        this.id = id;
        this.openId = openId;
        this.patient = patient;
        this.patientName = patientName;
        this.doctor = doctor;
        this.doctorName = doctorName;
        this.deviceType = deviceType;
        this.czrq = czrq;
    }
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public int getDeviceType() {
        return deviceType;
    }
    public void setDeviceType(int deviceType) {
        this.deviceType = deviceType;
    }
    public String getCzrq() {
        return czrq;
    }
    public void setCzrq(String czrq) {
        this.czrq = czrq;
    }
}

+ 96 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/DeviceMeasureListener.java

@ -0,0 +1,96 @@
package com.yihu.wlyy.activemq;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import java.util.Date;
/**
 * Created by zhangdan on 2018/06/13.
 * 设备测量监听
 */
@Component
public class DeviceMeasureListener implements MessageListener {
    private Logger logger = LoggerFactory.getLogger(DeviceMeasureListener.class);
    @Autowired
    private PushMsgTask pushMsgTask;
    @Autowired
    private PatientService patientService;
    @Autowired
    private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
    @Autowired
    private SignFamilyDao signFamilyDao;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    @Override
    public void onMessage(Message message) {
        try {
            TextMessage textMessage = (TextMessage) message;
            JSONObject obj = JSONObject.fromObject(textMessage.getText());
            if(obj.get("patient")==null){
                return;
            }
            String patientCode = obj.get("patient")!=null?obj.get("patient").toString():null;
            Integer devcieType = obj.get("deviceType")!=null?(Integer)obj.get("deviceType"):null;
            String czrq = obj.get("czrq")!=null?(String)obj.get("czrq"):DateUtil.dateToStrLong(new Date());
            Patient patient = patientService.findByCode(patientCode);
            SignFamily signFamily = signFamilyDao.findByPatient(patientCode);
            String doctorName = "";
            String name = "";
            String openId="";
            if (signFamily!=null){
                doctorName = signFamily.getDoctorName();
            }
            if (patient!=null){
                name = patient.getName();
                openId = patient.getOpenid();
            }
            org.json.JSONObject sendJson = new org.json.JSONObject();
            String first = "";
            String remark = "";
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_device_measure_notice","sbsltx");
            first = templateConfig.getFirst();
            first = first.replace("key1",(doctorName==null?"":doctorName+"(全科)"));
            remark = templateConfig.getRemark();
            sendJson.put("keyword1", name);
            sendJson.put("keyword2", czrq);
            if (devcieType==1){
                //血糖
                sendJson.put("keyword3", "血糖未测量");
                sendJson.put("keyword4","签约居民多采用社区发放的设备测量血糖,医生指导更准确!");
            }else if (devcieType==2){
                //血压
                sendJson.put("keyword3", "血压未测量");
                sendJson.put("keyword4","签约居民多采用社区发放的设备测量血压,医生指导更准确!");
            }
            sendJson.put("first", first);
            sendJson.put("remark", remark);
            System.out.println(sendJson.toString());
            pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 21, openId, name, sendJson);
            //返回服务器表示消息消费成功
            message.acknowledge();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

+ 17 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/StartListener.java

@ -26,16 +26,21 @@ public class StartListener {
    @Value("${activemq.queue.healtHarticleQueue}")
    private String healtHarticleQueue;
    @Value("${activemq.queue.deviceMeasurementRemindingQueue}")
    private String deviceMeasurementRemindingQueue;
    @Value("${activemq.consumers.count}")
    private Integer count;
    @Autowired
    private HealthArtListener healthArtListener;
    @Autowired
    private CachingConnectionFactory cachingConnectionFactory;
    @Autowired
    private DeviceMeasureListener deviceMeasureListener;
    @PostConstruct
    public void startListener() {
        startHealthArticQueueListener();
        startDeviceMeasureQueueListener();
    }
    /**
@ -51,6 +56,18 @@ public class StartListener {
        }
    }
    /**
     * 启动设备测量提醒监听
     */
    private void startDeviceMeasureQueueListener(){
        try {
            startReceiverByQueueName(deviceMeasureListener,deviceMeasurementRemindingQueue);
            logger.info("start deviceMeasureListener success");
        }catch (Exception e){
            logger.error("start deviceMeasureListener error");
        }
    }
    /**
     * 启动
     *

+ 20 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/task/PushMsgTask.java

@ -58,6 +58,8 @@ public class PushMsgTask {
    private String template_doctor_audit;//审核结果通知
    @Value("${wechat.message.template_doctor_service}")
    private String template_doctor_service;//服务结果通知
    @Value("${wechat.message.template_device_measure_notice}")
    private String template_device_measure_notice;//设备测量提醒
    @Autowired
    private WechatPushLogDao wechatPushLogDao;
@ -650,6 +652,24 @@ public class PushMsgTask {
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("keyword3"));
                m.put("keyword3", keyword3);
            }else if (type==21){//设备测量提醒
                temp.setTemplate_id(template_device_measure_notice);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("keyword1"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("keyword2"));
                m.put("keyword2", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("keyword3"));
                m.put("keyword3", keyword3);
                WechatTemplateData keyword4 = new WechatTemplateData();
                keyword4.setColor("#000000");
                keyword4.setValue(json.getString("keyword4"));
                m.put("keyword4", keyword4);
            }
            temp.setData(m);

+ 2 - 0
patient-co/patient-co-wlyy-job/src/main/resources/application-dev.yml

@ -69,6 +69,8 @@ wechat:
   template_doctor_audit:  OFyLUeBW3r9trWw-i6pbB1sPSTD4J2recCv_mc-gKxA
   #服务结果通知
   template_doctor_service:  ezr5RlX0nvh7bGU9aVsGDMJbjKDp1uMKP-AGGYXwI5g
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 3 - 0
patient-co/patient-co-wlyy-job/src/main/resources/application-devtest.yml

@ -69,6 +69,8 @@ wechat:
    template_doctor_audit:  lCtOgJgL1tBJbAytqN7cn-FgCH_Usg99FENEy2TrC08
    #服务结果通知
    template_doctor_service: i34rq3xFLnpf_VN2Jor9n2YlQqJMM7oXyYvuctriISw
    #设备测量提醒
    template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/
@ -105,6 +107,7 @@ activemq:
  url: tcp://172.19.103.87:61616
  queue:
    healtHarticleQueue: healthArticleChannel_devtest
    deviceMeasurementRemindingQueue : deviceMeasurementChannel_test #设备测量提醒
  consumers:
    count: 10 #消费者集群数

+ 2 - 0
patient-co/patient-co-wlyy-job/src/main/resources/application-prod.yml

@ -71,6 +71,8 @@ wechat:
   template_doctor_audit:  egrX5Larpkv8opQW67_hwsZoT0OHwwUpE1v7HeU_Jnw
   #服务结果通知
   template_doctor_service:  xhi1LEudiZwJfZylOHuZNo8EiA73GtSshPQv5XOt9Lk
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://api.yihu.com.cn/OpenPlatform/cgiBin/1.0/

+ 2 - 0
patient-co/patient-co-wlyy-job/src/main/resources/application-test.yml

@ -70,6 +70,8 @@ wechat:
   template_doctor_audit:  lCtOgJgL1tBJbAytqN7cn-FgCH_Usg99FENEy2TrC08
   #服务结果通知
   template_doctor_service:  i34rq3xFLnpf_VN2Jor9n2YlQqJMM7oXyYvuctriISw
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/health/repository/DeviceDetailDao.java

@ -25,6 +25,6 @@ public interface DeviceDetailDao extends PagingAndSortingRepository<DeviceDetail
    void updateAfterBinding(String adminTeam, String hospital, String isFirstBinding,String deviceSn,int isBinding);
    @Modifying
    @Query("update DeviceDetail dd set dd.isBinding=0 where dd.deviceCode=?1")
    @Query("update DeviceDetail dd set dd.isBinding=?1 where dd.deviceCode=?2")
    void updateUnbindAll(int isbinding,String deviceSn);
}

+ 62 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/DeviceWxMessageService.java

@ -1,15 +1,24 @@
package com.yihu.wlyy.service.app.device;
import com.yihu.wlyy.entity.device.DeviceWxMessage;
import com.yihu.wlyy.entity.device.vo.DeviceWxMessageDTO;
import com.yihu.wlyy.repository.patient.DeviceWxMessageDao;
import com.yihu.wlyy.repository.patient.PatientDeviceDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.DateUtil;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.utils.Clock;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Component
@Transactional(rollbackFor = Exception.class)
@ -25,5 +34,57 @@ public class DeviceWxMessageService extends BaseService {
    private JdbcTemplate jdbcTemplate;
    public List<DeviceWxMessageDTO> batchSaveAndSendActiveMq(String data)throws Exception{
        JSONArray jsonArray = new JSONArray(data);
        List<DeviceWxMessage> messageList = new ArrayList<>();
        for (int i=0;i<jsonArray.length();i++){
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            //DeviceWxMessage deviceWxMessage = (DeviceWxMessage) jsonArray.get(i);
            DeviceWxMessage deviceWxMessage = new DeviceWxMessage();
            deviceWxMessage.setPatient(jsonObject.getString("patient"));
            deviceWxMessage.setCategoryCode(jsonObject.getString("categoryCode"));
            deviceWxMessage.setDeviceName(jsonObject.getString("deviceName"));
            deviceWxMessage.setDeviceSn(jsonObject.getString("deviceSn"));
            deviceWxMessage.setCzrq(new Date());
            messageList.add(deviceWxMessage);
        }
        //批量插入数据
        deviceWxMessageDao.save(messageList);
        //放入队列的数据集
        List<DeviceWxMessageDTO> deviceWxMessageDTOS = new ArrayList<>();
        List<DeviceWxMessageDTO> deviceWxMessageDTOS1 = new ArrayList<>();
        for (DeviceWxMessage deviceWxMessage : messageList) {
            deviceWxMessageDTOS1.clear();
            deviceWxMessageDTOS1.addAll(deviceWxMessageDTOS);
            int i = 0;
            if (deviceWxMessageDTOS1.size()==0){
                DeviceWxMessageDTO deviceWxMessageDTO = new DeviceWxMessageDTO();
                deviceWxMessageDTO.setPatient(deviceWxMessage.getPatient());
                deviceWxMessageDTO.setDeviceType(Integer.valueOf(deviceWxMessage.getCategoryCode()));
                deviceWxMessageDTO.setCzrq(DateUtil.dateToStr(deviceWxMessage.getCzrq(),"yyyy-MM-dd HH:mm:ss"));
                deviceWxMessageDTOS.add(deviceWxMessageDTO);
            }else {
                for (DeviceWxMessageDTO wxMessageDto : deviceWxMessageDTOS1) {
                    i++;
                    //当居民没有重复的时候添加一条发送
                    if (i==deviceWxMessageDTOS1.size() && (!deviceWxMessage.getPatient().equals(wxMessageDto.getPatient()))){
                        DeviceWxMessageDTO deviceWxMessageDTO = new DeviceWxMessageDTO();
                        deviceWxMessageDTO.setPatient(deviceWxMessage.getPatient());
                        deviceWxMessageDTO.setDeviceType(Integer.valueOf(deviceWxMessage.getCategoryCode()));
                        deviceWxMessageDTO.setCzrq(DateUtil.dateToStr(deviceWxMessage.getCzrq(),"yyyy-MM-dd HH:mm:ss"));
                        deviceWxMessageDTOS.add(deviceWxMessageDTO);
                    }
                    //当居民code重复且设备类型不重复也添加一条发送
                    if (deviceWxMessage.getPatient().equals(wxMessageDto.getPatient()) && Integer.valueOf(deviceWxMessage.getCategoryCode())!=wxMessageDto.getDeviceType()){
                        DeviceWxMessageDTO deviceWxMessageDTO = new DeviceWxMessageDTO();
                        deviceWxMessageDTO.setPatient(deviceWxMessage.getPatient());
                        deviceWxMessageDTO.setDeviceType(Integer.valueOf(deviceWxMessage.getCategoryCode()));
                        deviceWxMessageDTO.setCzrq(DateUtil.dateToStr(deviceWxMessage.getCzrq(),"yyyy-MM-dd HH:mm:ss"));
                        deviceWxMessageDTOS.add(deviceWxMessageDTO);
                    }
                }
            }
        }
        return deviceWxMessageDTOS;
    }
}

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/PatientDeviceLogService.java

@ -64,7 +64,7 @@ public class PatientDeviceLogService extends BaseService {
        patientDeviceLogDao.save(patientDeviceLog);
    }
    public Map<String,Object> getDevicesList(String noGaugeDay,String isBinding,String categoryCode,String isSend,int pageNo,int pageSize){
    public Map<String,Object> getDevicesList(String doctor,String noGaugeDay,String isBinding,String categoryCode,String isSend,int pageNo,int pageSize){
        List<Map<String,Object>> resultList =  new ArrayList<>();
        Map<String,Object> resultMap = new HashedMap();
        int start = (pageNo-1)*pageSize;
@ -72,7 +72,7 @@ public class PatientDeviceLogService extends BaseService {
                "  SELECT sf.name, pd.* FROM wlyy_patient_device_log pd" +
                "  LEFT JOIN wlyy_sign_family sf ON pd.patient = sf.patient" +
                "  WHERE" +
                "   pd.is_del = 1" +
                "   pd.is_del = 1 and sf.doctor= ''" +doctor+"'"+
                "  ORDER BY" +
                "  create_time DESC) a" +
                " GROUP BY a.device_sn) b" +

+ 7 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/device/PatientDeviceService.java

@ -1201,15 +1201,18 @@ public class PatientDeviceService extends BaseService {
        if("2".equals(userType)){
            keyType = "2";
        }
        String sql = "SELECT binding_count FROM wlyy_devices WHERE device_code='"+deviceSn+"'";
        Map<String,Object> devicesMap = jdbcTemplate.queryForMap(sql);
        if (devicesMap!=null){
            JSONObject jsonObject =new JSONObject(String.valueOf(devicesMap.get("binding_count")));
        DeviceDetail deviceDetail = deviceDetailDao.findBySn(deviceSn);
        if (deviceDetail!=null && StringUtils.isNotEmpty(deviceDetail.getBindingCount())){
            JSONObject jsonObject =new JSONObject(String.valueOf(deviceDetail.getBindingCount()));
            if (jsonObject.getInt(keyType)>0){
                flag=false;
                msg="设备不是首次绑定";
                code = -20000;
            }
        }else {
            flag=false;
            msg="数据有问题!";
            code= -30000;
        }
        resultMap.put("flag",flag);
        resultMap.put("msg",msg);

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/message/MessageService.java

@ -210,7 +210,7 @@ public class MessageService extends BaseService {
        List<Message> deviceUnbindList = messageDao.findUnReadByReceiverAndType(doctor,301);
        JSONObject deviceMesJson = new JSONObject();
        if (deviceUnbindList != null && deviceUnbindList.size() > 0) {
            articleMesJson.put("amount", deviceUnbindList.size());
            deviceMesJson.put("amount", deviceUnbindList.size());
            JSONObject deviceJson = new JSONObject();
            deviceJson.put("title", "解绑消息");
            deviceJson.put("type", 301);
@ -686,7 +686,7 @@ public class MessageService extends BaseService {
        Page<Message> msgs = messageDao.deviceByReceiver(doctor, 1,pageRequest);
        */
        int start = (pageNo-1)*pageSize;
        String sql = "select * from wlyy_message a where a.type = 301 and a.has_read= "+ read+"and a.receiver='"+doctor+"' order by a.czrq desc limit ?,?";
        String sql = "select * from wlyy_message a where a.type = 301 and a.has_read= "+ read+" and a.receiver='"+doctor+"' order by a.czrq desc limit ?,?";
        List<Map<String,Object>> messagelist = jdbcTemplate.queryForList(sql,new Object[]{start,pageSize});
        return messagelist;
    }

+ 18 - 6
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/device/DoctorDeviceController.java

@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.aop.ObserverRequired;
import com.yihu.wlyy.entity.device.DeviceWxMessage;
import com.yihu.wlyy.entity.device.PatientDevice;
import com.yihu.wlyy.entity.device.vo.DeviceWxMessageDTO;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
import com.yihu.wlyy.entity.patient.Patient;
@ -12,6 +13,7 @@ import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.app.device.DeviceDetailService;
import com.yihu.wlyy.service.app.device.DeviceWxMessageService;
import com.yihu.wlyy.service.app.device.PatientDeviceLogService;
import com.yihu.wlyy.service.app.device.PatientDeviceService;
import com.yihu.wlyy.service.app.team.AdminTeamService;
@ -80,11 +82,13 @@ public class DoctorDeviceController extends BaseController {
	private PatientDeviceLogService patientDeviceLogService;
	@Autowired
	private CommonUtil commonUtil;
	@Autowired
	private DeviceWxMessageService deviceWxMessageService;
	@Autowired
	private JmsTemplate jmsTemplate;
	@Value("${activemq.queue.deviceMeasurementRemindingQueue}")
	private String channelName;
	private String devcieChannelName;
	private ObjectMapper  objectMapper=new ObjectMapper();
@ -422,7 +426,7 @@ public class DoctorDeviceController extends BaseController {
			page = "1";
		}
		try {
			return  write(200,"查找成功!","data",patientDeviceLogService.getDevicesList(noGaugeDay,isBinding,categoryCode,isSend,Integer.valueOf(page),Integer.valueOf(pageSize)));
			return  write(200,"查找成功!","data",patientDeviceLogService.getDevicesList(getUID(),noGaugeDay,isBinding,categoryCode,isSend,Integer.valueOf(page),Integer.valueOf(pageSize)));
		} catch (Exception e) {
			error(e);
			return error( -1, "查询失败!");
@ -432,14 +436,22 @@ public class DoctorDeviceController extends BaseController {
	@RequestMapping(value = "/sendDeviceWxMessage",method = RequestMethod.POST)
	@ApiOperation("给没有测量的居民发送微信消息提醒")
	@ResponseBody
	public String sendDevcieWxMessage(){
		return "";
	public String sendDevcieWxMessage(@ApiParam(name = "data",value = "[{\"patient\":\"1\",\"deviceName\":\"同学1\",\"deviceSn\":\"123\",\"categoryCode\":\"1\"}]")
									  @RequestParam(value = "data",required = true)String data){
		try {
			List<DeviceWxMessageDTO> deviceWxMessageDTOList = deviceWxMessageService.batchSaveAndSendActiveMq(data);
			sender(deviceWxMessageDTOList);
			return write(200,"提醒成功!");
		}catch (Exception e){
			error(e);
			return error( -1, "提醒失败!");
		}
	}
	public void sender(List<DeviceWxMessage> deviceWxMessageList){
	public void sender(List<DeviceWxMessageDTO> deviceWxMessageList){
		//发送到队列
		deviceWxMessageList.stream().forEach(one->{
			jmsTemplate.send(channelName, new MessageCreator() {
			jmsTemplate.send(devcieChannelName, new MessageCreator() {
				@Override
				public Message createMessage(Session session) throws JMSException {
					TextMessage textMessage = session.createTextMessage();

+ 7 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/device/PatientDeviceController.java

@ -220,6 +220,10 @@ public class PatientDeviceController extends BaseController {
            //患者和设备是否首绑
            Map<String,Object> checkMap = patientDeviceService.checkBindingFirstAndType(device);
            boolean flag = (Boolean)checkMap.get("flag");
            int code = (Integer)checkMap.get("code");
            if (code==-30000){
                return write(-1,"设备不存在或者数据存在错误!");
            }
            Patient patient = patientService.findByCode(getRepUID());
            if(!getUID().equals(getRepUID())&&device.getId()==null){
@ -382,9 +386,6 @@ public class PatientDeviceController extends BaseController {
                // 删除设备
                patientDeviceService.deleteDevice(id, getRepUID());
//                patientDeviceService.deleteDevice(id, getUID());
                //全部解绑后去判断就更新设备表中是否绑定字段
                deviceDetailService.unBindUpdateIsBinding(pd.getDeviceSn());
                patientDeviceLogService.savePatientDeviceLog(pd,pd.getDeviceSn(),2,2);
                //居民自主解绑设备时发送消息给医生
                Patient patient = patientService.findByCode(getRepUID());
                SignFamily signFamily = signFamilyDao.findByPatient(patient.getCode());
@ -412,6 +413,9 @@ public class PatientDeviceController extends BaseController {
                message.setData("");
                message.setDel("1");
                messageDao.save(message);
                //全部解绑后去判断就更新设备表中是否绑定字段
                deviceDetailService.unBindUpdateIsBinding(pd.getDeviceSn());
                patientDeviceLogService.savePatientDeviceLog(pd,pd.getDeviceSn(),2,2);
                return success("设备已删除!");
            } else {
                return error(-1, "不存在该设备!");

+ 1 - 0
patient-co/patient-co-wlyy/src/main/resources/application-dev.yml

@ -157,6 +157,7 @@ activemq:
  url: tcp://172.19.103.87:61616
  queue:
    healtHarticleQueue: healthArticleChannel_dev  #健康文章推送
    deviceMeasurementRemindingQueue : deviceMeasurementChannel_dev #设备测量提醒
##如果是外网项目就是flase 内网是true
neiwang:

+ 1 - 0
patient-co/patient-co-wlyy/src/main/resources/application-devtest.yml

@ -160,6 +160,7 @@ activemq:
  url: tcp://172.19.103.87:61616
  queue:
    healtHarticleQueue: healthArticleChannel_test  #健康文章推送
    deviceMeasurementRemindingQueue : deviceMeasurementChannel_test #设备测量提醒
##如果是外网项目就是flase 内网是true
neiwang:

+ 1 - 0
patient-co/patient-co-wlyy/src/main/resources/application-local.yml

@ -147,6 +147,7 @@ activemq:
  url: tcp://10.95.22.168:61616
  queue:
    healtHarticleQueue: healthArticleChannel_devtest  #健康文章推送
    deviceMeasurementRemindingQueue : deviceMeasurementChannel_test #设备测量提醒
##如果是外网项目就是flase 内网是true
neiwang:

+ 1 - 0
patient-co/patient-co-wlyy/src/main/resources/application-localtest.yml

@ -143,6 +143,7 @@ activemq:
  url: tcp://172.19.103.87:61616
  queue:
    healtHarticleQueue: healthArticleChannel_devtest  #健康文章推送
    deviceMeasurementRemindingQueue : deviceMeasurementChannel_test #设备测量提醒
##如果是外网项目就是flase 内网是true
neiwang:

+ 2 - 0
patient-co/patient-co-wlyy/src/main/resources/application-prod.yml

@ -156,6 +156,8 @@ activemq:
  url: tcp://59.61.92.90:9103
  queue:
    healtHarticleQueue: healthArticleChannel  #健康文章推送
    deviceMeasurementRemindingQueue : deviceMeasurementChannel #设备测量提醒
##如果是外网项目就是flase 内网是true
neiwang:

+ 1 - 0
patient-co/patient-co-wlyy/src/main/resources/application-test.yml

@ -149,6 +149,7 @@ activemq:
  url: tcp://172.19.103.87:61616
  queue:
    healtHarticleQueue: healthArticleChannel_test  #健康文章推送
    deviceMeasurementRemindingQueue : deviceMeasurementChannel_test #设备测量提醒
##如果是外网项目就是flase,false会调用内网http接口项目提交  内网是true直接上传fastDfs
neiwang: