Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

吴世龙 3 năm trước cách đây
mục cha
commit
59cf656d36

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

@ -117,7 +117,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
	@PostMapping(value = "sendGetuiMessage")
	@ApiOperation(value = "im推送个推消息")
	public Envelop sendGetuiMessage(String sessionId,String type,String senderName,String senderId,String targetId){
	public Envelop sendGetuiMessage(String sessionId,String type,String contentType,String senderName,String senderId,String targetId){
		try {
			logger.info("im推送1个推消息"+sessionId+","+senderName+","+targetId);
			String body = "收到来自"+senderName+"的一条消息,请关注并及时处理。";
@ -129,6 +129,8 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			}
			String url = "/chatroom/index?type="+type+"&peerId=&peerName="+peerName+"&sessionId="+sessionId;
			messageUtil.sendDoctorGetuiMessage(targetId,"4",url,"im消息",body);
			messageUtil.sendDoctorDingdingMessage(null,targetId,"text","4",body,null,null);
			return Envelop.getSuccess("请求成功");
		}catch (Exception e){
			e.printStackTrace();

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/orderLogProcess/OrderLogProcessController.java

@ -36,7 +36,7 @@ public class OrderLogProcessController extends BaseController {
    @Autowired
    UserAgent userAgent;
    @RequestMapping(value = "phoneLogSave", method = RequestMethod.POST)
    @RequestMapping(value = "yujingboda", method = RequestMethod.POST)
    @ApiOperation(value = "110/120拨打日志保存")
    public String phoneLogSave(@ApiParam(name = "logJson")
                               @RequestParam(value = "logJson") String logJson,

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

@ -20,6 +20,7 @@ import com.yihu.jw.care.service.contacts.ContactsService;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.doctor.DoctorServicePermissionsService;
import com.yihu.jw.care.service.family.PatientFamilyMemberService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.care.util.ConstantUtil;
import com.yihu.jw.care.util.CountDistance;
import com.yihu.jw.care.util.HttpClientUtilCare;
@ -133,6 +134,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
    private DeviceDetailDao deviceDetailDao;
    @Autowired
    private PermissionService permissionService;
    @Autowired
    private ServicePackageService servicePackageService;
    /**
     * 获取百度天气
@ -300,6 +303,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
                }catch (Exception e){}
                String body = "您好,"+assistanceDO.getPatientName()+"居民发起紧急呼叫,请关注并及时处理。";
                messageUtil.sendDoctorGetuiMessage(doctorDO.getId(),"2","/sos/index?tabActive=1","紧急呼叫",body);
                messageUtil.sendDoctorDingdingMessage(doctorDO,null,"text","2",body,null,null);
                imUtill.sendMDTSocketMessageToDoctor(doctorDO.getId(),message.toString());
            }
            //pc管理端端推送消息
@ -1513,94 +1517,134 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
    @Transactional(rollbackFor = Exception.class)
    public void initialize(){
        String sql ="SELECT DISTINCT o.id AS id,o.doctor AS doctor,o.doctor_name AS doctorName,o.`status` AS status, DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') AS createTime,DATE_FORMAT(o.update_time,'%Y-%m-%d %H:%i:%s') as updateTime,o.patient AS patient,o.patient_name AS patientName FROM base_emergency_assistance_order o LEFT JOIN base_emergency_warn_conclusion c ON o.id=c.order_id  " +
                "  UNION SELECT DISTINCT o.id AS id,o.doctor AS doctor,o.doctor_name AS doctorName,o.`status` AS status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') AS createTime,DATE_FORMAT(o.update_time,'%Y-%m-%d %H:%i:%s') as updateTime,o.patient AS patient,o.patient_name AS patientName FROM base_security_monitoring_order o LEFT JOIN base_emergency_warn_conclusion c ON o.id=c.order_id";
        List<Map<String, Object>> emeList = jdbcTemplate.queryForList(sql);
         List<BaseEmergencyWarnLogDO> list =new ArrayList<>();
         List<EmergencyWarnConclusionDO> listC = new ArrayList<>();
        for (Map<String, Object> map : emeList) {
            BaseEmergencyWarnLogDO baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
            String sqlLog = "SELECT * FROM base_emergency_warn_log WHERE order_id = '"+map.get("id")+"' AND (type IS NULL OR  type = '')";
            List<Map<String, Object>> logList = jdbcTemplate.queryForList(sqlLog);
            if (logList.size()<=0){
                switch (map.get("status").toString()){
                    case "0" :
                        //小结完成
                        baseEmergencyWarnLogDO.setType(5);
                        baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDateLong(map.get("createTime").toString()));
                        baseEmergencyWarnLogDO.setContent("完成服务小结");
                        baseEmergencyWarnLogDO.setUserType(2);
                        baseEmergencyWarnLogDO.setUserCode(map.get("doctor").toString());
                        baseEmergencyWarnLogDO.setUserName(map.get("doctorName").toString());
                        baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
                        list.add(baseEmergencyWarnLogDO);
                        baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
                        //已知悉
                        baseEmergencyWarnLogDO.setType(1);
                        baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("createTime").toString()));
                        baseEmergencyWarnLogDO.setContent("已知悉");
                        baseEmergencyWarnLogDO.setUserType(2);
                        baseEmergencyWarnLogDO.setUserCode(map.get("doctor").toString());
                        baseEmergencyWarnLogDO.setUserName(map.get("doctorName").toString());
                        baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
                        list.add(baseEmergencyWarnLogDO);
                        break;
                    case "-1":    //取消
                        baseEmergencyWarnLogDO.setType(6);
                        baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("updateTime").toString()));
                        baseEmergencyWarnLogDO.setContent("已取消");
                        baseEmergencyWarnLogDO.setUserType(1);
                        baseEmergencyWarnLogDO.setUserCode(map.get("patient").toString());
                        baseEmergencyWarnLogDO.setUserName(map.get("patientName").toString());
                        baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
                        list.add(baseEmergencyWarnLogDO);
                        break;
                    case "-2":  //误报警
                        String sqlsign = "SELECT sign_doctor_code AS signDoctorCode,sign_doctor_name AS signDoctorName FROM wlyy_sign_family WHERE patient = '"+map.get("patient").toString()+"' LIMIT 1";
                        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sqlsign);
                        String signCode = "";
                        String signName = "";
                        if (maps.size()<=0) {
                             signCode = "";
                             signName = "";
                        }else {
                            signCode = maps.get(0).get("signDoctorCode").toString();
                            signName = maps.get(0).get("signDoctorName").toString();
                        }
                        //创建小结
                        String countSql = "SELECT COUNT(id) FROM base_emergency_warn_conclusion WHERE order_id = '"+map.get("id").toString()+"'";
                        List<Map<String, Object>> countList = jdbcTemplate.queryForList(countSql);
                        if (countList.size()<=0) {
                            EmergencyWarnConclusionDO emergencyWarnConclusionDO = new EmergencyWarnConclusionDO();
                            emergencyWarnConclusionDO.setOrderId(map.get("id").toString());
                            emergencyWarnConclusionDO.setConclusion("误报警!");
                            emergencyWarnConclusionDO.setPatient(map.get("patient").toString());
                            emergencyWarnConclusionDO.setPatientName(map.get("patientName").toString());
                            emergencyWarnConclusionDO.setDoctor(signCode);
                            emergencyWarnConclusionDO.setDoctorName(signName);
                            emergencyWarnConclusionDO.setCreateTime(DateUtil.strToDate(map.get("updateTime").toString()));
                            emergencyWarnConclusionDO.setCreateUser(signCode);
                            emergencyWarnConclusionDO.setCreateUserName(signName);
                            emergencyWarnConclusionDO.setEmergencyReason(3);
                            emergencyWarnConclusionDO.setEmergencyTreatmentStatus(3);
                            listC.add(emergencyWarnConclusionDO);
                        }
                        //完成服务小结
                        baseEmergencyWarnLogDO.setType(5);
                        baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("createTime").toString()));
                        baseEmergencyWarnLogDO.setContent("完成服务小结");
                        baseEmergencyWarnLogDO.setUserType(1);
                        baseEmergencyWarnLogDO.setUserCode(signCode);
                        baseEmergencyWarnLogDO.setUserName(signName);
                        baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
                        list.add(baseEmergencyWarnLogDO);
                        break;
                }
            }
        }
        emergencyWarnConclusionDao.save(listC);
        logDao.save(list);
//        String sql = "  select o.`status`,o.id,o.patient,o.patient_name,o.doctor AS doctor,o.doctor_name,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') AS createTime,DATE_FORMAT(o.update_time,'%Y-%m-%d %H:%i:%s') AS updateTime from base_emergency_assistance_order o  where 1=1\n" +
//                "  \t\n" +
//                "UNION\n" +
//                " select o.`status`,o.id,o.patient,o.patient_name,o.doctor AS doctor,o.doctor_name,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') AS createTime,DATE_FORMAT(o.update_time,'%Y-%m-%d %H:%i:%s') AS updateTime from base_security_monitoring_order o  where 1=1    ";
//        List<Map<String, Object>> emeList = jdbcTemplate.queryForList(sql);
//        List<BaseEmergencyWarnLogDO> list =new ArrayList<>();
//        List<EmergencyWarnConclusionDO> listC = new ArrayList<>();
//
//        for (Map<String, Object> map : emeList) {
//            BaseEmergencyWarnLogDO baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
//            BaseDoctorDO doctorDO =  null;
//            if (null!=map.get("doctor")&&StringUtils.isNotBlank(map.get("doctor").toString())){
//                doctorDO = doctorDao.findById(map.get("doctor").toString());
//            }else {
//                List<BaseDoctorDO> doctorDOS =  servicePackageService.findSignDoctor(map.get("patient").toString(),null);
//                if (doctorDOS.size()>0){
//                    doctorDO = doctorDOS.get(0);
//                }
//            }
//            if (null!=doctorDO){
//                switch (map.get("status").toString()){
//                    case "0" :
//                        //小结完成
//                        sql = " select count(id) from base_emergency_warn_log where order_id ='"+map.get("id").toString()+"' and type=1 ";
//                        if (jdbcTemplate.queryForObject(sql,Integer.class)==0){
//                            //已知悉
//                            baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
//                            baseEmergencyWarnLogDO.setType(1);
//                            baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("createTime").toString()));
//                            baseEmergencyWarnLogDO.setContent("已知悉");
//                            baseEmergencyWarnLogDO.setUserType(2);
//                            baseEmergencyWarnLogDO.setUserCode(doctorDO.getId());
//                            baseEmergencyWarnLogDO.setUserName(doctorDO.getName());
//                            baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
//                            list.add(baseEmergencyWarnLogDO);
//                        }
//                        sql = " select count(id) from base_emergency_warn_log where order_id ='"+map.get("id").toString()+"' and type=5 ";
//                        if (jdbcTemplate.queryForObject(sql,Integer.class)==0){
//                            baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
//                            baseEmergencyWarnLogDO.setType(5);
//                            baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDateLong(map.get("updateTime").toString()));
//                            baseEmergencyWarnLogDO.setContent("完成服务小结");
//                            baseEmergencyWarnLogDO.setUserType(2);
//                            baseEmergencyWarnLogDO.setUserCode(doctorDO.getId());
//                            baseEmergencyWarnLogDO.setUserName(doctorDO.getName());
//                            baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
//                            list.add(baseEmergencyWarnLogDO);
//                        }
//                        sql = " select count(id) from base_emergency_warn_log where order_id ='"+map.get("id").toString()+"' and type=1 ";
//                        if (jdbcTemplate.queryForObject(sql,Integer.class)==0){
//                            //已知悉
//                            baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
//                            baseEmergencyWarnLogDO.setType(1);
//                            baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("createTime").toString()));
//                            baseEmergencyWarnLogDO.setContent("已知悉");
//                            baseEmergencyWarnLogDO.setUserType(2);
//                            baseEmergencyWarnLogDO.setUserCode(doctorDO.getId());
//                            baseEmergencyWarnLogDO.setUserName(doctorDO.getName());
//                            baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
//                            list.add(baseEmergencyWarnLogDO);
//                        }
//                        break;
//                    case "-1":    //取消
//                        sql = " select count(id) from base_emergency_warn_log where order_id ='"+map.get("id").toString()+"' and type=6 ";
//                        if (jdbcTemplate.queryForObject(sql,Integer.class)==0){
//                            baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
//                            baseEmergencyWarnLogDO.setType(6);
//                            baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("updateTime").toString()));
//                            baseEmergencyWarnLogDO.setContent("已取消");
//                            baseEmergencyWarnLogDO.setUserType(1);
//                            baseEmergencyWarnLogDO.setUserCode(map.get("patient").toString());
//                            baseEmergencyWarnLogDO.setUserName(map.get("patient_name").toString());
//                            baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
//                            list.add(baseEmergencyWarnLogDO);
//                        }
//                        break;
//                    case "-2":  //误报警
//                        //创建小结
//                        String countSql = "SELECT COUNT(id) FROM base_emergency_warn_conclusion WHERE order_id = '"+map.get("id").toString()+"'";
//                        List<Map<String, Object>> countList = jdbcTemplate.queryForList(countSql);
//                        if (countList.size()<=0) {
//                            EmergencyWarnConclusionDO emergencyWarnConclusionDO = new EmergencyWarnConclusionDO();
//                            emergencyWarnConclusionDO.setOrderId(map.get("id").toString());
//                            emergencyWarnConclusionDO.setConclusion("误报警!");
//                            emergencyWarnConclusionDO.setPatient(map.get("patient").toString());
//                            emergencyWarnConclusionDO.setPatientName(map.get("patient_name").toString());
//                            emergencyWarnConclusionDO.setDoctor(doctorDO.getId());
//                            emergencyWarnConclusionDO.setDoctorName(doctorDO.getName());
//                            emergencyWarnConclusionDO.setCreateTime(DateUtil.strToDate(map.get("updateTime").toString()));
//                            emergencyWarnConclusionDO.setCreateUser(doctorDO.getId());
//                            emergencyWarnConclusionDO.setCreateUserName(doctorDO.getName());
//                            emergencyWarnConclusionDO.setEmergencyReason(3);
//                            emergencyWarnConclusionDO.setEmergencyTreatmentStatus(3);
//                            listC.add(emergencyWarnConclusionDO);
//                        }
//                        //完成服务小结
//                        sql = " select count(id) from base_emergency_warn_log where order_id ='"+map.get("id").toString()+"' and type=5 ";
//                        if (jdbcTemplate.queryForObject(sql,Integer.class)==0){
//                            baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
//                            baseEmergencyWarnLogDO.setType(5);
//                            baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("createTime").toString()));
//                            baseEmergencyWarnLogDO.setContent("完成服务小结");
//                            baseEmergencyWarnLogDO.setUserType(1);
//                            baseEmergencyWarnLogDO.setUserCode(doctorDO.getId());
//                            baseEmergencyWarnLogDO.setUserName(doctorDO.getName());
//                            baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
//                            list.add(baseEmergencyWarnLogDO);
//                        }
//                        sql = " select count(id) from base_emergency_warn_log where order_id ='"+map.get("id").toString()+"' and type=1 ";
//                        if (jdbcTemplate.queryForObject(sql,Integer.class)==0){
//                            //已知悉
//                            baseEmergencyWarnLogDO = new BaseEmergencyWarnLogDO();
//                            baseEmergencyWarnLogDO.setType(1);
//                            baseEmergencyWarnLogDO.setCreateTime(DateUtil.strToDate(map.get("createTime").toString()));
//                            baseEmergencyWarnLogDO.setContent("已知悉");
//                            baseEmergencyWarnLogDO.setUserType(2);
//                            baseEmergencyWarnLogDO.setUserCode(doctorDO.getId());
//                            baseEmergencyWarnLogDO.setUserName(doctorDO.getName());
//                            baseEmergencyWarnLogDO.setOrderId(map.get("id").toString());
//                            list.add(baseEmergencyWarnLogDO);
//                        }
//
//                        break;
//                }
//            }
//        }
//        logDao.save(list);
    }

+ 23 - 10
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java

@ -1049,6 +1049,17 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                    devInfoObj.put("routes", locations);
                    break;
                case "7"://报警器 紧急工单
                    com.alibaba.fastjson.JSONObject response = getAqgDeviceInfo2(deviceSn);
                    //电量
                    if (response.containsKey("remaining_power") && response.get("remaining_power") != null) {
                        devInfoObj.put("remaining_power", response.get("remaining_power"));
                    }
                    //在线状态实时获取
                    if (!response.getBoolean("online")) {//设备在线状态
                        devInfoObj.put("contactStatus",0);
                    } else {
                        devInfoObj.put("contactStatus",1);
                    }
                    break;
                case "12"://监控 视频地址
                    com.alibaba.fastjson.JSONObject tmp = ysDeviceService.getDeviceLiveAddress(patient, deviceSn, 1, null);
@ -1731,17 +1742,19 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
    }
    public com.alibaba.fastjson.JSONObject getAqgDeviceInfo2(String imei){
        try {
            String url = MessageFormat.format(AqgConfig.deviceInfo, imei);
            HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(url, null, HttpMethod.GET, getCookie());
            com.alibaba.fastjson.JSONObject json = response.getBody();
            if(!json.getBoolean("success")){
                return  null;
        synchronized (imei.intern()){
            try {
                String url = MessageFormat.format(AqgConfig.deviceInfo, imei);
                HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(url, null, HttpMethod.GET, getCookie());
                com.alibaba.fastjson.JSONObject json = response.getBody();
                if(!json.getBoolean("success")){
                    return  null;
                }
                return json.getJSONObject("obj");
            }catch (Exception e){
                e.printStackTrace();
                return null;
            }
            return json.getJSONObject("obj");
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }

+ 11 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -306,6 +306,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            }
            String body = "您好," + orderDO.getPatientName() + "居民" + orderDO.getServeDesc() + ",请关注并及时处理。";
            messageUtil.sendDoctorGetuiMessage(doctorDO.getId(), "1", "/securityMonitoring/index", "安防紧急预警", body);
            messageUtil.sendDoctorDingdingMessage(doctorDO,null,"text","1",body,null,null);
            imUtil.sendMDTSocketMessageToDoctor(doctorDO.getId(), message.toString());
        }
        //pc管理端端推送消息
@ -1924,8 +1925,10 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                        Double lat = locationTmp.getJSONArray("coordinates").getDouble(1);
                        if (!response.getBoolean("online")) {//设备离线 取居民表定位
                            result.put("X1online", false);
                            result.put("contactStatus", 0);
                        } else {
                            result.put("X1online", true);
                            result.put("contactStatus", 1);
                        }
                        JSONObject tmp = gpsUtil.gcj02_To_Bd09(lat, lon);
                        tmp.put("city", response.getString("last_city"));
@ -2113,6 +2116,14 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                        sleepInfo.put("sleepPlan", false);
                    }
                    sleepInfo.put("online", tmp.getBooleanValue("online"));
                    if(tmp.getBooleanValue("online")){
                        sleepInfo.put("contactStatus", 1);
                    }
                    else {
                        sleepInfo.put("contactStatus", 0);
                    }
                    if (tmp.getBooleanValue("onbed")) {
                        sleepInfo.put("bedStatus", 1);
                        sleepInfo.put("heartRate", tmp.getString("heartrate"));

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java

@ -672,7 +672,7 @@ public class PatientInfoPlatFormService {
        String sql = " SELECT idx.id,idx.user,idx.`name`,p.archive_type archiveType,p.residential_area residentialArea,'健康监测' as serve_desc, " +
                "idx.czrq,value1,value2,value3,value4,value5,value6,value7,type FROM wlyy_patient_health_index idx " +
                " INNER JOIN base_patient p on idx.user = p.id and p.del=1\n" +
                " WHERE idx.del = 1 AND idx.type < 3 "+filter+" ORDER BY idx.czrq ";
                " WHERE idx.del = 1 AND idx.type < 3 "+filter+" ORDER BY idx.czrq desc ";
        String countSql = "select count(id) from ("+sql+")A ";
        long count = jdbcTemplate.queryForObject(countSql,long.class);
        sql +=" limit "+page*pageSize+","+pageSize;

+ 22 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/DingdingUtil.java

@ -42,6 +42,11 @@ public class DingdingUtil {
    private static final String dingtalk_app_user = "/rpc/oauth2/dingtalk_app_user.json";
    private static final String get_by_mobiles = "/mozi/employee/get_by_mobiles";
    private static final String getuserinfo_bycode = "/rpc/oauth2/getuserinfo_bycode.json";
    private static final String sendMsg = "/chat/sendMsg";
    //单聊默认发送者id
    private static final String p2pSenderId = "821606";
    public static final String picMediaId = "$iwHSAADGgQoAC9EkWgKsb2N0ZXQtc3RyZWFtAwAEAAUABrzrLoqjhIdIKXPi5GCsroJXXzE3ZmI0OGFiNWJhBwAIAAmhMA";
    //executableClient要单例,并且使用前要初始化,只需要初始化一次
    private static ExecutableClient executableClient = null;
@ -193,4 +198,21 @@ public class DingdingUtil {
        return null;
    }
    /**
     * 发送单聊消息
     */
    public void sendP2pMsg(String msg,String receiverId){
        PostClient postClient = executableClient.newPostClient(sendMsg);
        //Set the parameters
        postClient.addParameter("msg", msg);
        postClient.addParameter("senderId", p2pSenderId);
        postClient.addParameter("receiverId", receiverId);
        postClient.addParameter("chatId", "");
        postClient.addParameter("tenantId", tenantId);
        postClient.addParameter("chatType", "1");
        //Call API
        String apiResult = postClient.post();
        logger.info(apiResult);
    }
}

+ 36 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java

@ -72,6 +72,8 @@ public class MessageUtil {
    private GetuiService getuiService;
    @Autowired
    private GetuiClientDao getuiClientDao;
    @Autowired
    private DingdingUtil dingdingUtil;
    /**
     * 您好{1}有一条新的在线报名申请,请及时前往APP消息应用进行处理。
@ -113,6 +115,40 @@ public class MessageUtil {
        }
    }
    /**
     * 发送钉钉消息
     * type 1 安防紧急预警 2紧急呼叫 4im 5生日祝福
     * msgtype 消息类型 text
     */
    public void sendDoctorDingdingMessage(BaseDoctorDO doctorDO,String doctorCode,String msgtype,String type,String content,String title,String url){
        try {
            if(doctorDO == null){
                doctorDO = baseDoctorDao.findById(doctorCode);
            }
            if(StringUtils.isBlank(doctorDO.getYktDoctorId())){
                //没有钉钉id不推送
                return;
            }
            JSONObject msg = new JSONObject();
            msg.put("msgtype",msgtype);
            if("text".equals(msgtype)){
                JSONObject text = new JSONObject();
                text.put("content",content);
                msg.put("text",text);
            }else if("link".equals(msgtype)){
                JSONObject link = new JSONObject();
                link.put("messageUrl",url);
                link.put("title",title);
                link.put("text",content);
                link.put("picMediaId",DingdingUtil.picMediaId);
                msg.put("link",link);
            }
            dingdingUtil.sendP2pMsg(msg.toString(), doctorDO.getYktDoctorId());
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     *
     * @param wechatId