Просмотр исходного кода

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

trick9191 7 лет назад
Родитель
Сommit
154cf95d8e

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

@ -7,6 +7,7 @@ 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.apache.commons.collections.map.HashedMap;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@ -18,6 +19,7 @@ import org.springside.modules.utils.Clock;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
@ -50,39 +52,44 @@ public class DeviceWxMessageService extends BaseService {
        }
        //批量插入数据
        deviceWxMessageDao.save(messageList);
        //放入队列的数据集
        List<DeviceWxMessageDTO> deviceWxMessageDTOS = new ArrayList<>();
        List<DeviceWxMessageDTO> deviceWxMessageDTOS1 = new ArrayList<>();
        //放入队列的数据集(相同用户不同设备各发一条  相同设备发一条)
        Map<String,List<String>> map = new HashedMap();
        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);
            List<String> deviceTypeList = null;
            if (map.containsKey(deviceWxMessage.getPatient())){
                deviceTypeList = map.get(deviceWxMessage.getPatient());
                if (deviceTypeList==null){
                    deviceTypeList = new ArrayList<>();
                    deviceTypeList.add(deviceWxMessage.getCategoryCode());
                    map.put(deviceWxMessage.getPatient(),deviceTypeList);
                }else {
                    boolean flag = false;
                    if (!deviceTypeList.contains(deviceWxMessage.getCategoryCode())){
                        flag=true;
                    }
                    //当居民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);
                    if (flag){
                        deviceTypeList.add(deviceWxMessage.getCategoryCode());
                        map.put(deviceWxMessage.getPatient(),deviceTypeList);
                    }
                }
            }else {
                deviceTypeList = new ArrayList<>();
                deviceTypeList.add(deviceWxMessage.getCategoryCode());
                map.put(deviceWxMessage.getPatient(),deviceTypeList);
            }
         }
        List<DeviceWxMessageDTO> deviceWxMessageDTOS = new ArrayList<>();
        for (Map.Entry<String, List<String>> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
            String patient = entry.getKey();
            List<String> list = entry.getValue();
            for (String deviceType : list){
                DeviceWxMessageDTO deviceWxMessageDTO =  new DeviceWxMessageDTO();
                deviceWxMessageDTO.setPatient(patient);
                deviceWxMessageDTO.setDeviceType(Integer.valueOf(deviceType));
                deviceWxMessageDTO.setCzrq(DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss"));
                deviceWxMessageDTOS.add(deviceWxMessageDTO);
            }
        }
        return deviceWxMessageDTOS;

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

@ -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 and sf.doctor= ''" +doctor+"'"+
                "   pd.is_del = 1 and sf.doctor= '" +doctor+"'"+
                "  ORDER BY" +
                "  create_time DESC) a" +
                " GROUP BY a.device_sn) b" +

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

@ -5,6 +5,7 @@ import com.yihu.wlyy.entity.consult.ConsultTeam;
import com.yihu.wlyy.entity.message.Message;
import com.yihu.wlyy.entity.message.MessageNoticeSetting;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.health.repository.DevicePatientHealthIndexDao;
import com.yihu.wlyy.repository.consult.ConsultTeamDao;
import com.yihu.wlyy.repository.message.MessageDao;
@ -13,6 +14,7 @@ import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.HttpClientUtil;
import com.yihu.wlyy.util.IdCardUtil;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@ -693,12 +695,12 @@ public class MessageService extends BaseService {
        }
    }
    public List<Map<String,Object>> getDevcieMessageByDoctorAndRead(String doctor,int read,int pageSize,int pageNo){
    public List<Map<String,Object>> getDevcieMessageByDoctor(String doctor,int pageSize,int pageNo){
        /*PageRequest pageRequest = new PageRequest(pageNo, pageSize);
        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.receiver='"+doctor+"' order by a.czrq desc limit ?,?";
        List<Map<String,Object>> messagelist = jdbcTemplate.queryForList(sql,new Object[]{start,pageSize});
        return messagelist;
    }

+ 3 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/message/DoctorMessageController.java

@ -468,10 +468,12 @@ public class DoctorMessageController extends BaseController {
            page = "1";
        }
        try {
           return write(200,"查询成功!","data",messageService.getDevcieMessageByDoctorAndRead(getUID(),1,Integer.valueOf(pageSize),Integer.valueOf(page)));
           return write(200,"查询成功!","data",messageService.getDevcieMessageByDoctor(getUID(),Integer.valueOf(pageSize),Integer.valueOf(page)));
        }catch (Exception e){
            error(e);
            return error( -1, "查询失败!");
        }
    }
}