|
@ -139,63 +139,65 @@ public class DeviceService {
|
|
|
Double lat= Double.parseDouble(request.getParameter("lat"));
|
|
|
Double lon= Double.parseDouble(request.getParameter("lon"));
|
|
|
List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(imei);
|
|
|
DevicePatientDevice deviceDO = devicePatientDeviceDos.get(0);
|
|
|
BasePatientDO patientDO = patientDao.findById(deviceDO.getUser());
|
|
|
DeviceSosLogDO logDO = new DeviceSosLogDO();
|
|
|
logDO.setPatient(patientDO.getId());
|
|
|
logDO.setPatientName(patientDO.getName());
|
|
|
logDO.setIdcard(patientDO.getIdcard());
|
|
|
logDO.setCategoryCode(deviceDO.getCategoryCode());
|
|
|
logDO.setDeviceSn(deviceDO.getDeviceSn());
|
|
|
logDO.setCreateTime(new Date());
|
|
|
if (deviceDO.getCategoryCode().equals("4")) {
|
|
|
JSONObject position = gpsUtil.gcj02_To_Bd09(lat,lon);
|
|
|
logDO.setSosAddress(address);
|
|
|
logDO.setSosLat(position.getDouble("lat")+"");
|
|
|
logDO.setSosLon(position.getDouble("lon")+"");
|
|
|
}
|
|
|
if (deviceDO.getCategoryCode().equals("7")) {
|
|
|
logDO.setSosAddress(deviceDO.getSosAddress());
|
|
|
Map<String, String> json = null;
|
|
|
if (StringUtils.isNotBlank(deviceDO.getSosAddress())) {
|
|
|
json = LatitudeUtils.getGeocoderLatitude(deviceDO.getSosAddress().replace("G.", "").replace("(糖友网)", "").replace("(高友网)", ""));
|
|
|
}
|
|
|
if (json != null) {
|
|
|
logDO.setSosLat(json.get("lat").toString());
|
|
|
logDO.setSosLon(json.get("lng").toString());
|
|
|
}
|
|
|
}
|
|
|
//发送紧急救助
|
|
|
String sql =" select Distinct pack.org_code,pack.org_name\n" +
|
|
|
"from base_service_package_sign_record sr INNER JOIN base_service_package_record pr\n" +
|
|
|
"on sr.id = pr.sign_id and sr.status=1 INNER JOIN base_service_package_item item on pr.service_package_id = item.service_package_id and item.del=1 \n" +
|
|
|
"INNER JOIN base_service_package pack pack on pr.service_package_id = pack.id where item.code='emergencyAssistance' and sr.patient='"+patientDO.getId()+"'";
|
|
|
List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
|
|
|
if (sqlResult.size()>0){
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("serveAddress",logDO.getSosAddress());
|
|
|
jsonObject.put("serveLon",logDO.getSosLon());
|
|
|
jsonObject.put("serveLat",logDO.getSosLat());
|
|
|
jsonObject.put("orgCode",sqlResult.get(0).get("org_code").toString());
|
|
|
jsonObject.put("orgName",sqlResult.get(0).get("org_name").toString());
|
|
|
jsonObject.put("patient",logDO.getPatient());
|
|
|
jsonObject.put("patientName",logDO.getPatientName());
|
|
|
jsonObject.put("deviceSn",logDO.getDeviceSn());
|
|
|
String url = cloudCareUrl+"cloudCare/noLogin/emergency_assistance/newOrder";
|
|
|
List<NameValuePair> params = new ArrayList<>();
|
|
|
params.add(new BasicNameValuePair("jsonData", jsonObject.toJSONString()));
|
|
|
params.add(new BasicNameValuePair("patientId", logDO.getPatient()));
|
|
|
if (devicePatientDeviceDos.size()>0){
|
|
|
DevicePatientDevice deviceDO = devicePatientDeviceDos.get(0);
|
|
|
BasePatientDO patientDO = patientDao.findById(deviceDO.getUser());
|
|
|
DeviceSosLogDO logDO = new DeviceSosLogDO();
|
|
|
logDO.setPatient(patientDO.getId());
|
|
|
logDO.setPatientName(patientDO.getName());
|
|
|
logDO.setIdcard(patientDO.getIdcard());
|
|
|
logDO.setCategoryCode(deviceDO.getCategoryCode());
|
|
|
logDO.setDeviceSn(deviceDO.getDeviceSn());
|
|
|
logDO.setCreateTime(new Date());
|
|
|
if (deviceDO.getCategoryCode().equals("4")) {
|
|
|
params.add(new BasicNameValuePair("orderSource", "2"));//工单来源工单发起来源状态 1APP 2手环 3居家报警
|
|
|
JSONObject position = gpsUtil.gcj02_To_Bd09(lat,lon);
|
|
|
logDO.setSosAddress(address);
|
|
|
logDO.setSosLat(position.getDouble("lat")+"");
|
|
|
logDO.setSosLon(position.getDouble("lon")+"");
|
|
|
}
|
|
|
if (deviceDO.getCategoryCode().equals("7")) {
|
|
|
params.add(new BasicNameValuePair("orderSource", "3"));
|
|
|
logDO.setSosAddress(deviceDO.getSosAddress());
|
|
|
Map<String, String> json = null;
|
|
|
if (StringUtils.isNotBlank(deviceDO.getSosAddress())) {
|
|
|
json = LatitudeUtils.getGeocoderLatitude(deviceDO.getSosAddress().replace("G.", "").replace("(糖友网)", "").replace("(高友网)", ""));
|
|
|
}
|
|
|
if (json != null) {
|
|
|
logDO.setSosLat(json.get("lat").toString());
|
|
|
logDO.setSosLon(json.get("lng").toString());
|
|
|
}
|
|
|
}
|
|
|
String response = httpClientUtil.post(url, params,"UTF-8");
|
|
|
System.out.println(response);
|
|
|
//发送紧急救助
|
|
|
String sql =" select Distinct pack.org_code,pack.org_name\n" +
|
|
|
"from base_service_package_sign_record sr INNER JOIN base_service_package_record pr\n" +
|
|
|
"on sr.id = pr.sign_id and sr.status=1 INNER JOIN base_service_package_item item on pr.service_package_id = item.service_package_id and item.del=1 \n" +
|
|
|
"INNER JOIN base_service_package pack pack on pr.service_package_id = pack.id where item.code='emergencyAssistance' and sr.patient='"+patientDO.getId()+"'";
|
|
|
List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
|
|
|
if (sqlResult.size()>0){
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("serveAddress",logDO.getSosAddress());
|
|
|
jsonObject.put("serveLon",logDO.getSosLon());
|
|
|
jsonObject.put("serveLat",logDO.getSosLat());
|
|
|
jsonObject.put("orgCode",sqlResult.get(0).get("org_code").toString());
|
|
|
jsonObject.put("orgName",sqlResult.get(0).get("org_name").toString());
|
|
|
jsonObject.put("patient",logDO.getPatient());
|
|
|
jsonObject.put("patientName",logDO.getPatientName());
|
|
|
jsonObject.put("deviceSn",logDO.getDeviceSn());
|
|
|
String url = cloudCareUrl+"cloudCare/noLogin/emergency_assistance/newOrder";
|
|
|
List<NameValuePair> params = new ArrayList<>();
|
|
|
params.add(new BasicNameValuePair("jsonData", jsonObject.toJSONString()));
|
|
|
params.add(new BasicNameValuePair("patientId", logDO.getPatient()));
|
|
|
if (deviceDO.getCategoryCode().equals("4")) {
|
|
|
params.add(new BasicNameValuePair("orderSource", "2"));//工单来源工单发起来源状态 1APP 2手环 3居家报警
|
|
|
}
|
|
|
if (deviceDO.getCategoryCode().equals("7")) {
|
|
|
params.add(new BasicNameValuePair("orderSource", "3"));
|
|
|
}
|
|
|
String response = httpClientUtil.post(url, params,"UTF-8");
|
|
|
System.out.println(response);
|
|
|
|
|
|
}
|
|
|
sosLogDao.save(logDO);
|
|
|
}
|
|
|
sosLogDao.save(logDO);
|
|
|
}catch(Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|