Browse Source

弹框部分

liubing 3 years ago
parent
commit
3b8168b05f

+ 1 - 0
business/im-service/src/main/java/com/yihu/jw/im/util/ImUtil.java

@ -779,6 +779,7 @@ public class ImUtil {
	public static final String SESSION_TYPE_SECURITY_WARN = "22";//安防咨询
	public static final String SESSION_TYPE_ONLINE = "23";//新生儿在线咨询
	public static final String SESSION_TYPE_ONLINEAged = "24";//老人在线咨询
	public static final String SESSION_TYPE_HealthConsult = "25";//老人在线咨询
	public static final String CONTENT_TYPE_TEXT = "1";
	

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java

@ -293,7 +293,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			@RequestParam(value = "patientCode",required = false) String patientCode) {
		try {
			int resutl = consultService.finish(consult,patientCode,1);
			BasePatientDO basePatientDO = basePatientService.findByIdAndDel(patientCode);
			BasePatientDO basePatientDO = basePatientDao.findById(patientCode);
			JSONObject msgObj = new JSONObject();
			msgObj.put("msg",basePatientDO.getName()+"结束了咨询");
			msgObj.put("consultcode",consult);

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PadDeviceController.java

@ -241,4 +241,16 @@ public class PadDeviceController extends BaseController {
        }
    }
    @RequestMapping(value ="open/getPatientSafeArea",method = RequestMethod.GET)
    @ApiOperation(value = "获取患者安全区域")
    public String openGetPatientSafeArea(@ApiParam(name = "patient", value = "patient", defaultValue = "patient")
                                     @RequestParam(value = "patient", required = true) String patient){
        try {
            return write(200,"获取成功","data",contactsService.getPatientSafeArea(patient));
        }catch (Exception e){
            return errorResult(e);
        }
    }
}

+ 2 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java

@ -453,4 +453,6 @@ public class PatientDeviceController extends BaseController {
        }
    }
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java

@ -521,7 +521,7 @@ public class SignEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "doctorId", value = "医生id", required = false)
            @RequestParam(value = "doctorId",required = false) String doctorId,
            @ApiParam(name = "userRole", value = "管理员权限,没有传空", required = false)
            @RequestParam(value = "userRole",defaultValue = "0",required = false) String userRole,
            @RequestParam(value = "userRole",required = false) String userRole,
            @ApiParam(name = "signStatus", value = "签约状态", required = false)
            @RequestParam(value = "signStatus",required = false) Integer signStatus,
            @ApiParam(name = "name", value = "居民姓名", required = false)

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java

@ -155,7 +155,7 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
                                       @RequestParam(value = "patient")String patient,
                                       @ApiParam(name="deviceSN")
                                       @RequestParam(value = "deviceSN")String deviceSn,
                                       @ApiParam(name="type",value = "0全部 1日常监护 2预警记录")
                                       @ApiParam(name="type",value = "0全部 1日常监护 2预警记录(工单列表)")
                                       @RequestParam(value = "type",required = false)String type,
                                       @ApiParam(name="page")
                                       @RequestParam(value = "page")Integer page,

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -352,7 +352,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            tmp.setTimeInfo(DateUtil.getDifferentTimeInfo(new Date(),tmp.getCreateTime(),0));
        }
        if (logDOS.size()==0&&1==emergencyOrderVO.getStatus()){//未响应
            emergencyOrderVO.setOverTimeNotResponse(DateUtil.getDifferentTimeInfo1(new Date(),assistanceDO.getCreateTime()));
        }
        emergencyOrderVO.setOrderLogInfo(logDOS);
        List<PatientSosContactsDO> contactsDOS = contactsService.getPatientSosContacts(assistanceDO.getPatient());

+ 2 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultService.java

@ -243,7 +243,7 @@ public class ConsultService {
        List<Map<String,Object>> result = hibenateUtils.createSQLQuery(sql,page,pagesize);
        Map<String,Integer> unreadNum = new HashedMap();
        for (Map<String,Object> map:result){
            if(type.equals(ImUtil.SESSION_TYPE_ONLINE)||type.equals(ImUtil.SESSION_TYPE_ONLINEAged)){
            if(type.equals(ImUtil.SESSION_TYPE_ONLINE)||type.equals(ImUtil.SESSION_TYPE_ONLINEAged)||type.equals(ImUtil.SESSION_TYPE_HealthConsult)){
                String sessionId = patient+"_"+String.valueOf(map.get("doctorCode"))+"_"+type;
                //新增未读消息数量
                if(unreadNum.containsKey(sessionId)){
@ -477,7 +477,7 @@ public class ConsultService {
                }
            }
            if(type.equals(ImUtil.SESSION_TYPE_ONLINE)||type.equals(ImUtil.SESSION_TYPE_ONLINEAged)){
            if(type.equals(ImUtil.SESSION_TYPE_ONLINE)||type.equals(ImUtil.SESSION_TYPE_ONLINEAged)||type.equals(ImUtil.SESSION_TYPE_HealthConsult)){
                String sessionId = String.valueOf(map.get("patient"))+"_"+doctor+"_"+type;
                //新增未读消息数量
                Integer count = imUtil.UserSessionsUnreadMessageCount(sessionId,doctor);

+ 0 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java

@ -162,9 +162,6 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
            }
        }
    }

+ 0 - 1
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java

@ -881,7 +881,6 @@ public class DeviceService {
                List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(device);
                if (devicePatientDeviceDos.size()>0){
                    DevicePatientDevice tmp = devicePatientDeviceDos.get(0);
                    tmp.setOnlineStatus(Integer.parseInt(onlinestatu));
                    patientDeviceDao.save(tmp);
                }
            }

+ 20 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java

@ -8,6 +8,8 @@ import com.yihu.jw.care.job.device.PatientSosContactsJob;
import com.yihu.jw.care.job.message.DoctorSendUnreadJob;
import com.yihu.jw.care.job.message.PatientSendUnreadJob;
import com.yihu.jw.care.job.order.CancelPayOrderJob;
import com.yihu.jw.care.job.order.EmeWarnOrderDayJob;
import com.yihu.jw.care.job.order.EmeWarnOrderJob;
import com.yihu.jw.care.util.SystemConf;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -93,6 +95,24 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
                logger.info("DEVICE_LOST_ASSOCIATION_JOB exist");
            }
            //#居民紧急预警工单超时未处理弹框推送
            if (!quartzHelper.isExistJob("EME_WARNING_OVERTIME_NOT_RESPONSE")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("EME_WARNING_OVERTIME_NOT_RESPONSE");
                quartzHelper.addJob(EmeWarnOrderJob.class, trigger, "EME_WARNING_OVERTIME_NOT_RESPONSE", new HashMap<String, Object>());
                logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE success");
            } else {
                logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE exist");
            }
            //#居民紧急预警工单超时未处理弹框推送
            if (!quartzHelper.isExistJob("EME_WARNING_OVERTIME_NOT_RESPONSE_DAY")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("EME_WARNING_OVERTIME_NOT_RESPONSE_DAY");
                quartzHelper.addJob(EmeWarnOrderDayJob.class, trigger, "EME_WARNING_OVERTIME_NOT_RESPONSE_DAY", new HashMap<String, Object>());
                logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE_DAY success");
            } else {
                logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE_DAY exist");
            }
        } catch (Exception e) {
            logger.info(" job start failed");
        }

+ 81 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/order/EmeWarnOrderDayJob.java

@ -0,0 +1,81 @@
package com.yihu.jw.care.job.order;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.im.util.ImUtil;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
/**
 * Created by Bing on 2021/10/14.
 */
@DisallowConcurrentExecution//解决执行频率和间隔时间的问题。到了执行时间点前一任务还在执行中,不会执行下一次任务,直至该次任务完成
public class EmeWarnOrderDayJob implements Job {
    private static Logger logger = LoggerFactory.getLogger(EmeWarnOrderDayJob.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private ImUtil imUtil;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE start");
        try {
            //救助工单>=1天未处理
            String sql = " select o.id,o.session_id sessionId,o.patient,o.patient_name patientName,o.create_time,20 as type from " +
                    "base_emergency_assistance_order o where status=1 and (TIMESTAMPDIFF(DAY,o.create_time,now()) >=1) and not EXISTS ( " +
                    " select 1 from base_emergency_warn_log log where log.order_id = o.id) ";
            List<Map<String,Object>>  list = jdbcTemplate.queryForList(sql);
            //安防>=1天未处理
            sql = " select o.id,o.patient,o.patient_name patientName,o.serve_desc serverDesc,ct.id consult,22 as type from base_security_monitoring_order o " +
                    " INNER JOIN wlyy_consult ct on o.id = ct.relation_code where o.status=1 and (TIMESTAMPDIFF(DAY,o.create_time,now()) >=1 ) and not EXISTS ( " +
                    " select 1 from base_emergency_warn_log log where log.order_id = o.id); ";
            list.addAll(jdbcTemplate.queryForList(sql));
            for (Map<String,Object> map:list){
                Integer type = Integer.parseInt(map.get("type").toString()) ;
                JSONObject message = null;
                if (20==type){
                    message = new JSONObject();
                    message.put("session_id",map.get("sessionId"));
                    message.put("sender_name",map.get("patientName"));
                    message.put("content_notice",map.get("patientName")+" 发起紧急救助!");
                    message.put("sender_code",map.get("patient"));
                    message.put("OrderType",20);
                    message.put("OrderStatus","new");
                    message.put("order_id",map.get("id"));
                    message.put("content_type",40);
                }else {
                    message = new JSONObject();
                    String sessionId = map.get("patient")+"_"+ map.get("consult") + "_22";
                    message.put("session_id",sessionId);
                    message.put("sender_name",map.get("patientName"));
                    message.put("content_notice",map.get("patientName")+" "+map.get("serverDesc")+"!");
                    message.put("sender_code",map.get("patient"));
                    message.put("OrderType",22);
                    message.put("OrderStatus","new");
                    message.put("order_id",map.get("id"));
                    message.put("content_type",40);
                }
                if (null!=message){
                    imUtil.sendPcManageMessageToPc("cloudCare_pcManage",message.toString());
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE end");
    }
}

+ 83 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/order/EmeWarnOrderJob.java

@ -0,0 +1,83 @@
package com.yihu.jw.care.job.order;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.im.util.ImUtil;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
/**
 * Created by Bing on 2021/10/14.
 */
@DisallowConcurrentExecution//解决执行频率和间隔时间的问题。到了执行时间点前一任务还在执行中,不会执行下一次任务,直至该次任务完成
public class EmeWarnOrderJob implements Job {
    private static Logger logger = LoggerFactory.getLogger(EmeWarnOrderJob.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private ImUtil imUtil;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE start");
        try {
            //救助工单<=1小时&&<1未处理
            String sql = " select o.id,o.session_id sessionId,o.patient,o.patient_name patientName,o.create_time,20 as type from " +
                "base_emergency_assistance_order o where status=1 and (TIMESTAMPDIFF(HOUR,o.create_time,now()) >=1 " +
                "and TIMESTAMPDIFF(HOUR,o.create_time,now()) <24) and not EXISTS ( " +
                    " select 1 from base_emergency_warn_log log where log.order_id = o.id) ";
            List<Map<String,Object>>  list = jdbcTemplate.queryForList(sql);
            //安防<=1小时&&<1天未处理
             sql = " select o.id,o.patient,o.patient_name patientName,o.serve_desc serverDesc,ct.id consult,22 as type from base_security_monitoring_order o " +
                     " INNER JOIN wlyy_consult ct on o.id = ct.relation_code where o.status=1 and (TIMESTAMPDIFF(HOUR,o.create_time,now()) >=1 " +
                     " AND TIMESTAMPDIFF(HOUR,o.create_time,now()) <24) and not EXISTS ( " +
                    " select 1 from base_emergency_warn_log log where log.order_id = o.id); ";
            list.addAll(jdbcTemplate.queryForList(sql));
            for (Map<String,Object> map:list){
                Integer type = Integer.parseInt(map.get("type").toString()) ;
                JSONObject message = null;
                if (20==type){
                    message = new JSONObject();
                    message.put("session_id",map.get("sessionId"));
                    message.put("sender_name",map.get("patientName"));
                    message.put("content_notice",map.get("patientName")+" 发起紧急救助!");
                    message.put("sender_code",map.get("patient"));
                    message.put("OrderType",20);
                    message.put("OrderStatus","new");
                    message.put("order_id",map.get("id"));
                    message.put("content_type",40);
                }else {
                    message = new JSONObject();
                    String sessionId = map.get("patient")+"_"+ map.get("consult") + "_22";
                    message.put("session_id",sessionId);
                    message.put("sender_name",map.get("patientName"));
                    message.put("content_notice",map.get("patientName")+" "+map.get("serverDesc")+"!");
                    message.put("sender_code",map.get("patient"));
                    message.put("OrderType",22);
                    message.put("OrderStatus","new");
                    message.put("order_id",map.get("id"));
                    message.put("content_type",40);
                }
                if (null!=message){
                    imUtil.sendPcManageMessageToPc("cloudCare_pcManage",message.toString());
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        logger.info("EME_WARNING_OVERTIME_NOT_RESPONSE end");
    }
}

+ 7 - 1
svr/svr-cloud-job/src/main/resources/system.properties

@ -18,4 +18,10 @@ CANCEL_PAY_ORDER_OVERTIME_JOB=0 0/3 * * * ?
PATIENT_SOS_CONTACTS_JOB=0 0/2 * * * ?
#\u533B\u517B\u7269\u8054\u7F51\u68C0\u6D4B\u5927\u5C4F\u5931\u8054\u7387
DEVICE_LOST_ASSOCIATION_JOB=0 30 23 * * ?
DEVICE_LOST_ASSOCIATION_JOB=0 30 23 * * ?
#\u7D27\u6025\u9884\u8B66\u5DE5\u5355\u8D85\u65F6\u672A\u54CD\u5E94\u63A8\u9001\u5F39\u6846
EME_WARNING_OVERTIME_NOT_RESPONSE=0 0 * * * ?
#\u7D27\u6025\u9884\u8B66\u5DE5\u5355\u8D85\u65F6\u672A\u54CD\u5E94\u63A8\u9001\u5F39\u68462
EME_WARNING_OVERTIME_NOT_RESPONSE_DAY=0 30 9 * * ?