liubing 3 vuotta sitten
vanhempi
commit
d062b0bbf9

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

@ -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();
            }