Explorar o código

Merge branch 'dev' of chinawu123/wlyy2.0 into dev

liubing %!s(int64=3) %!d(string=hai) anos
pai
achega
14892d4834

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

@ -229,7 +229,9 @@ public class DoctorDeviceController extends BaseController {
                                @ApiParam(name = "page")
                                @RequestParam(value = "page")Integer page,
                                @ApiParam(name = "pageSize")
                                @RequestParam(value = "pageSize")Integer pageSize
                                @RequestParam(value = "pageSize")Integer pageSize,
								@ApiParam(name = "status",value = "报修状态:0 报修中、1 已完成")
								@RequestParam(value = "status",required = false)String status
                                ){
        try {
            JSONObject param = new JSONObject();
@ -237,7 +239,7 @@ public class DoctorDeviceController extends BaseController {
            if(permissionService.noPermission(2,param)){
                return write(-1,"该操作没有权限");
            }
            return write(200,"成功","data",deviceManageService.getRepairList(doctor,categoryCode,patientName,page,pageSize));
            return write(200,"成功","data",deviceManageService.getRepairList(doctor,categoryCode,patientName,page,pageSize,status));
        } catch (Exception e) {
            error(e);
			return errorResult(e);

+ 4 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/DoctorMessageEndpoint.java

@ -109,9 +109,11 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
    public ObjEnvelop getDeviceLostMessageList(@ApiParam(name="doctor",value = "医生ID,当前查看列表医生",required = true)
                                          @RequestParam(value = "doctor")String doctor,
                                               @ApiParam(name = "deviceCode",value = "设备类型code",required = false)
                                               @RequestParam(value = "deviceCode")String deviceCode){
                                               @RequestParam(value = "deviceCode",required = false)String deviceCode,
                                               @ApiParam(name = "deviceName",value = "设备名字",required = false)
                                               @RequestParam(value = "deviceName",required = false)String deviceName){
        try {
            return ObjEnvelop.getSuccess("查询成功",doctorMessageService.getDeviceLostMessageList(doctor,deviceCode));
            return ObjEnvelop.getSuccess("查询成功",doctorMessageService.getDeviceLostMessageList(doctor,deviceCode,deviceName));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }

+ 4 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/org/OrgEndpoint.java

@ -77,12 +77,12 @@ public class OrgEndpoint extends EnvelopRestEndpoint {
    public ListEnvelop findCommunity(){
        try {
            JSONObject param = new JSONObject();
           /* JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ListEnvelop.getError("该操作没有权限");
            }
            }*/
            List<Map<String, Object>> community = orgService.findCommunity();
            return success(community);
@ -96,12 +96,12 @@ public class OrgEndpoint extends EnvelopRestEndpoint {
    public ListEnvelop findCommunityZly(@ApiParam(name = "teamId", value = "teamId")
                                        @RequestParam(value = "teamId", required = true) String teamId){
        try {
            JSONObject param = new JSONObject();
            /*JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ListEnvelop.getError("该操作没有权限");
            }
            }*/
            List<Map<String, Object>> communityZly = orgService.findCommunityZly(teamId);
            return success(communityZly);

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

@ -249,10 +249,11 @@ public class StatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation("设备分析--异常消息通知")
    public PageEnvelop getAllDeviceLostMessage(@RequestParam(required = false) String area,
                                              @RequestParam(required = false) Integer deviceCode,
                                              @RequestParam(required = false) String deviceName,
                                              @RequestParam(required = false) Integer page,
                                              @RequestParam(required = false) Integer size){
        try {
           return statisticsService.getAllDeviceLostMessage(area,deviceCode,page,size);
           return statisticsService.getAllDeviceLostMessage(area,deviceCode,deviceName,page,size);
        }catch (Exception e){
            return failedPageEnvelopException2(e);
        }

+ 5 - 0
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.message.BaseServiceNewsService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.care.util.ConstantUtil;
import com.yihu.jw.care.util.CountDistance;
@ -136,6 +137,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
    private PermissionService permissionService;
    @Autowired
    private ServicePackageService servicePackageService;
    @Autowired
    private BaseServiceNewsService baseServiceNewsService;
    /**
     * 获取百度天气
@ -312,6 +315,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            emergencyAssistanceDao.save(assistanceDO);
            result.put("resultFlag", ResponseContant.success);
            result.put("resultMsg",assistanceDO);
            baseServiceNewsService.addServiceNews(patientDO.getName(),patientDO.getId(),"5",null,assistanceDO.getId(),1);
            return result;
        }
    }

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

@ -77,7 +77,7 @@ public class DeviceManageService extends BaseJpaService<BaseDeviceRepairEntity,B
    }
    /*报修列表*/
    public List<Map<String, Object>> getRepairList(String doctor,String categoryCode, String patientName, int page, int pageSize) {
    public List<Map<String, Object>> getRepairList(String doctor,String categoryCode, String patientName, int page, int pageSize,String status) {
        BaseDoctorDO doctorById = baseDoctorDao.findById(doctor);
        String repairSql = "";
        if (null != doctorById) {
@ -131,6 +131,10 @@ public class DeviceManageService extends BaseJpaService<BaseDeviceRepairEntity,B
            repairSql += " and pd.category_code ='" + categoryCode + "'";
        }
        if (StringUtils.isNotBlank(status)){
            repairSql += " and dr.status ='"+status+"'";
        }
        repairSql += " ORDER BY pd.czrq DESC LIMIT " + (page - 1) * pageSize + " , " + pageSize + " ";
        return jdbcTemplate.queryForList(repairSql);
    }

+ 7 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/BaseServiceNewsService.java

@ -252,7 +252,7 @@ public class BaseServiceNewsService {
     * 添加服务动态信息-大屏展示用
     * @param name
     * @param code
     * @param type 类型 1上门辅导、2发起咨询、3发起生活照料、4代预约
     * @param type 类型 1上门辅导、2发起咨询、3发起生活照料、4代预约、5紧急救助、6安防
     */
    public void addServiceNews(String name,String code,String type,String patientName,String relationCode,Integer userType){
        BaseServiceNews serviceNews = new BaseServiceNews();
@ -275,6 +275,12 @@ public class BaseServiceNewsService {
            case "4":
                content = "为"+patientName+"代预约";
                break;
            case "5":
                content = "发起了紧急救护";
                break;
            case "6":
                content = "发起了安防";
                break;
            default:
                content = "";
                break;

+ 8 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java

@ -14,6 +14,7 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.notice.UserNoticeDO;
import com.yihu.jw.entity.care.message.OrgNoticeDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
@ -316,18 +317,21 @@ public class DoctorMessageService {
        return orgNoticeDao.findOne(noticeId);
    }
    public  List<Map<String, Object>> getDeviceLostMessageList(String doctor,String deviceCode){
       // List<SystemMessageDO> systemMessageDOS = messageDao.getByReceiverAndType(doctor,"43");
    public  List<Map<String, Object>> getDeviceLostMessageList(String doctor,String deviceCode,String deviceName){
        //List<SystemMessageDO> systemMessageDOS = messageDao.getByReceiverAndType(doctor,"43");
        String sql =  "select DISTINCT GROUP_CONCAT(sm.id) id,sm.type AS type,sm.title AS title,sm.sender AS sender,sm.sender_name AS senderName,\n" +
                "  sm.receiver AS receiver,sm.receiver_name AS receiver_name,sm.relation_code AS relationCode,\n" +
                "  sm.data AS data,sm.is_read AS isRead,sm.create_time AS createTime,sm.sender_photo AS sender_photo\n" +
                "  from base_system_message sm LEFT JOIN wlyy_patient_device pd ON sm.relation_code = pd.device_sn where sm.receiver = '"+doctor+"' AND sm.type=43 and sm.del=1 ";
        if (StringUtils.isNotBlank(deviceCode)){
        if (StringUtils.isNotBlank(deviceCode)&&!"''".equals(deviceCode)){
            sql +=" AND pd.category_code = '"+deviceCode+"'";
        }
        sql+= " GROUP BY sm.relation_code order by sm.create_time desc";
        if (StringUtils.isNotBlank(deviceName)){
            sql += " and pd.device_name LIKE '%"+deviceName+"%'";
        }
        sql+= "  order by sm.create_time desc";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);

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

@ -17,6 +17,7 @@ import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.device.YsDeviceService;
import com.yihu.jw.care.service.doctor.DoctorServicePermissionsService;
import com.yihu.jw.care.service.family.PatientFamilyMemberService;
import com.yihu.jw.care.service.message.BaseServiceNewsService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.care.util.ConstantUtil;
import com.yihu.jw.care.util.CountDistance;
@ -147,6 +148,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
    private DeviceService deviceService;
    @Autowired
    private PermissionService permissionService;
    @Autowired
    private BaseServiceNewsService baseServiceNewsService;
    private Logger logger = LoggerFactory.getLogger(SecurityMonitoringOrderService.class);
@ -314,6 +317,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        result.put("resultFlag", 1);
        result.put("resultMsg", orderDO);
        baseServiceNewsService.addServiceNews(patientDO.getName(),patientDO.getId(),"6",null,orderDO.getId(),1);
        return result;
    }

+ 14 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -1479,10 +1479,12 @@ public class StatisticsService {
        return result;
    }
    public PageEnvelop getAllDeviceLostMessage(String area, Integer deviceCode,Integer page, Integer size) {
    public PageEnvelop getAllDeviceLostMessage(String area, Integer deviceCode,String deviceName,Integer page, Integer size) {
        page = page > 0 ? page - 1 : 0;
        String sql = "";
        if (null == deviceCode) {
        boolean dc = null==deviceCode;
        boolean dn = StringUtils.isBlank(deviceName);
        if (dc ||dn) {
             sql = "select GROUP_CONCAT(id) id,type,title,sender,sender_name senderName,\n" +
                    "receiver,receiver_name receiverName,relation_code relationCode,\n" +
                    "data,is_read isRead,create_time createTime,sender_photo\n" +
@ -1491,7 +1493,16 @@ public class StatisticsService {
             sql = "select DISTINCT GROUP_CONCAT(sm.id) id,sm.type AS type,sm.title AS title,sm.sender AS sender,sm.sender_name AS senderName,\n" +
                    " sm.receiver AS receiver,sm.receiver_name AS receiver_name,sm.relation_code AS relationCode,\n" +
                    " sm.data AS data,sm.is_read AS isRead,sm.create_time AS createTime,sm.sender_photo AS sender_photo\n" +
                    " from base_system_message sm LEFT JOIN wlyy_patient_device pd ON sm.relation_code = pd.device_sn where sm.type=43 and sm.del=1 AND pd.category_code = '"+deviceCode+"' GROUP BY sm.relation_code order by sm.create_time desc;\n";
                    " from base_system_message sm LEFT JOIN wlyy_patient_device pd ON sm.relation_code = pd.device_sn where sm.type=43 and sm.del=1  ";
            if (dc) {
                sql +=" AND pd.category_code = '"+deviceCode+"'";
            }
            if(dn){
                sql +=" and pd.device_name LIKE '%"+deviceName+"%'";
            }
             sql +="GROUP BY sm.relation_code order by sm.create_time desc";
        }
        Long count = jdbcTemplate.queryForObject(" select count(id) from (" + sql + ")A ", Long.class);

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

@ -11,6 +11,7 @@ import com.yihu.jw.care.dao.security.SecurityMonitoringOrderDao;
import com.yihu.jw.care.service.course.CourseService;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.device.PatientHealthIndexService;
import com.yihu.jw.care.service.device.YsDeviceService;
import com.yihu.jw.care.service.doorCoach.PatientDoorCoachOrderService;
import com.yihu.jw.care.service.lifeCare.LifeCareOrderService;
import com.yihu.jw.care.service.security.SecurityMonitoringOrderService;
@ -27,7 +28,9 @@ import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
import com.yihu.jw.entity.care.securitymonitoring.SecurityMonitoringOrderDO;
import com.yihu.jw.entity.care.sign.CapacityAssessmentRecordDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.GpsUtil;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang.StringUtils;
@ -79,6 +82,10 @@ public class PatientInfoPlatFormService {
    private PatientSafeAreaDao patientSafeAreaDao;
    @Autowired
    private CountDistance countDistance;
    @Autowired
    private YsDeviceService ysDeviceService;
    @Autowired
    private GpsUtil gpsUtil;
    /**
@ -700,10 +707,10 @@ public class PatientInfoPlatFormService {
     * 手表4:电量、佩戴状态、是否预警、在线状态
     * 报警器7:电量  是否报警、在线状态
     * 床带13:是否压床、是否预警、心率和呼吸频率、在线状态
     * 监控12:是否预警、在线状态
     * 烟雾15:浓度、是否预警、在线状态
     * 监控12:是否预警、在线状态、播放地址
     * 烟雾15:浓度、是否预警、在线状态 、最近一次温度
     * 燃气14 :浓度、是否预警、在线状态
     * 拐杖16:是否预警、在线状态
     * 拐杖16:是否预警、在线状态、定位
     * 血压2:最近一次收缩压,舒张压、在线状态
     * 血糖1:最近一次血糖、在线状态
     */
@ -772,6 +779,36 @@ public class PatientInfoPlatFormService {
                } else {
                    detailInfo.put("contact_status",1);
                }
                sql = "select * from base_patient_step where 1=1  and device_sn='"+deviceSn+"' order by create_time desc limit 1";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0) {
                    detailInfo.put("steps",sqlResult.get(0).get("steps"));
                }else {
                    detailInfo.put("steps","无步数数据");
                }
                sql ="SELECT * FROM wlyy_patient_health_index WHERE type = 5 and device_sn = '"+deviceSn+"' AND del = 1 ORDER BY record_date DESC LIMIT 1";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.put("heartRate",sqlResult.get(0).get("value1"));
                }else {
                    detailInfo.put("heartRate","无心率数据");
                }
                //获取手表定位
                JSONObject dw = patientDeviceService.getAqgDeviceInfo2(deviceSn);
                if (dw != null) {
                    //定位信息
                    if (dw.containsKey("last_location") && dw.get("last_location") != null) {
                        JSONObject locationTmp = dw.getJSONObject("last_location");
                        Double lon = locationTmp.getJSONArray("coordinates").getDouble(0);
                        Double lat = locationTmp.getJSONArray("coordinates").getDouble(1);
                        JSONObject tmp = gpsUtil.gcj02_To_Bd09(lat, lon);
                        tmp.put("city", dw.getString("last_city"));
                        tmp.put("province", dw.getString("last_province"));
                        tmp.put("address", dw.getString("last_address"));
                        detailInfo.put("location", tmp);
                    }
                }
                break;
            case "7"://报警器 电量  是否报警、在线状态
                sql = "  select o.id,p.id patient,p.name,p.idcard,p.residential_area,'20' OrderType,'1' type,o.serve_address,'紧急呼叫' serve_desc,  " +
@ -808,6 +845,15 @@ public class PatientInfoPlatFormService {
                }else {
                    detailInfo.put("warnStatus",false);
                }
                com.alibaba.fastjson.JSONObject tmp = ysDeviceService.getDeviceLiveAddress(patient, deviceSn, 1, null);
                detailInfo.put("monitorInfoStatus", tmp.getIntValue(ResponseContant.resultFlag));
                if (tmp.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                    detailInfo.put("monitorInfo", tmp.getString(ResponseContant.resultMsg));
                } else {
                    detailInfo.put("monitorInfo", tmp.getJSONObject(ResponseContant.resultMsg));
                }
                break;
            case "13"://床带 是否压床、 心率和呼吸频率、在线状态
                sql = " select o.id,p.id patient,p.name,p.idcard,p.residential_area,'22' OrderType,'1' type,o.serve_address,o.serve_desc,  " +
@ -904,13 +950,15 @@ public class PatientInfoPlatFormService {
                }else {
                    detailInfo.put("warnStatus",false);
                }
                sql = " select value,record_time from base_device_health_index where device_sn='"+deviceSn+"' ORDER BY record_time desc limit 1 ";
                sql = "SELECT * FROM base_yxdevice_index  WHERE sn = '" + deviceSn + "' AND lon != 0 AND lat != 0 ORDER BY create_time DESC limit 1";
                sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    detailInfo.putAll(sqlResult.get(0));
                    detailInfo.put("newlonlat",sqlResult.get(0));
                    JSONObject dz =  gpsUtil.gcj02_To_Bd09(Double.parseDouble(sqlResult.get(0).get("lat").toString()),Double.parseDouble(sqlResult.get(0).get("lon").toString()));
                    detailInfo.put("location", dz);
                }else {
                    detailInfo.put("value",null);
                    detailInfo.put("record_time",null);
                    detailInfo.put("newlonlat",null);
                    detailInfo.put("location", null);
                }
                break;
        }