Browse Source

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

liubing 3 years ago
parent
commit
31292bd9db

+ 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);

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

@ -108,10 +108,12 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
    @ApiOperation("获取设备离线通知列表")
    public ObjEnvelop getDeviceLostMessageList(@ApiParam(name="doctor",value = "医生ID,当前查看列表医生",required = true)
                                          @RequestParam(value = "doctor")String doctor,
                                               @ApiParam(name = "deviceCode",value = "设备类型code",required = true)
                                               @RequestParam(value = "deviceCode")String deviceCode){
                                               @ApiParam(name = "deviceCode",value = "设备类型code",required = false)
                                               @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);
        }

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

@ -1,5 +1,7 @@
package com.yihu.jw.care.endpoint.org;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.org.BaseOrgService;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -10,6 +12,9 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * Created by yeshijie on 2021/3/3.
 */
@ -20,9 +25,11 @@ public class OrgEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseOrgService orgService;
    @Autowired
    private PermissionService permissionService;
    @RequestMapping(value = "/findOrgList", method = RequestMethod.GET)
    @ApiOperation(value = "获取机构成员")
    @ApiOperation(value = "获取机构")
    public ListEnvelop findOrgList(@ApiParam(name = "type", value = "机构类型1. 等级医院2. 社区医院3.  养老机构 4.  托育机构")
                                      @RequestParam(value = "type", required = false) String type,
                                      @ApiParam(name = "name", value = "机构名称")
@ -30,6 +37,14 @@ public class OrgEndpoint extends EnvelopRestEndpoint {
                                      @ApiParam(name = "orgCode", value = "orgCode")
                                      @RequestParam(value = "orgCode", required = false) String orgCode) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ListEnvelop.getError("该操作没有权限");
            }
            return ListEnvelop.getSuccess("获取成功",orgService.findOrgList(type,name,orgCode));
        } catch (Exception e) {
            return failedListEnvelopException2(e);
@ -43,11 +58,58 @@ public class OrgEndpoint extends EnvelopRestEndpoint {
                                   @ApiParam(name = "orgCode", value = "orgCode")
                                   @RequestParam(value = "orgCode", required = false) String orgCode) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess("获取成功",orgService.findOrgByCode(orgCode));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "/findCommunity")
    @ApiOperation(value = "获取机构社区-朝晖街道养老机构用")
    public ListEnvelop findCommunity(){
        try {
            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);
        } catch (Exception e) {
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = "/findCommunityZly")
    @ApiOperation(value = "获取社区成员-朝晖街道养老机构用")
    public ListEnvelop findCommunityZly(@ApiParam(name = "teamId", value = "teamId")
                                        @RequestParam(value = "teamId", required = true) String teamId){
        try {
            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);
        } catch (Exception e) {
            return failedListEnvelopException2(e);
        }
    }
}

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

@ -234,10 +234,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);
        }

+ 18 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/wlyygc/WlyygcDataEndpoint.java

@ -15,13 +15,15 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
 * Created by yeshijie on 2022/1/18.
 */
@RestController
@RequestMapping(value = "/gc/data")
@RequestMapping(value = "open/gc/data")
@Api(value = "对外开放统计数据", tags = {"对外开放统计数据"})
public class WlyygcDataEndpoint extends EnvelopRestEndpoint {
@ -277,6 +279,21 @@ public class WlyygcDataEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "communityTotal")
    @ApiOperation(value = "社区信息计数统计")
    public  ListEnvelop getOlderTeamListWithPage(@ApiParam(name = "page", value = "分页大小", required = true)
                                                @RequestParam(value = "page") Integer page,
                                                @ApiParam(name = "size", value = "页码", required = true)
                                                @RequestParam(value = "size") Integer size) {
        try {
            List<Map<String, Object>> olderTeamListWithPage = wlyygcStatisticsService.getOlderTeamListWithPage(page, size);
            return success(olderTeamListWithPage);
        } catch (Exception e) {
            return failedListEnvelopException2(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;

+ 14 - 3
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,13 +317,23 @@ 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 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.receiver = '"+doctor+"' AND sm.type=43 and sm.del=1 ";
        if (StringUtils.isNotBlank(deviceCode)&&!"''".equals(deviceCode)){
            sql +=" AND pd.category_code = '"+deviceCode+"'";
        }
        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);
        return maps;
    }

+ 21 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/org/BaseOrgService.java

@ -20,6 +20,8 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
    @Autowired
    private BaseOrgDao orgDao;
    private final String orgCode = "zdjsylfwyxgszhfgs";
    public List<BaseOrgDO> findOrgList(String type,String name,String orgCode){
        String sql = "select a.* from base_org a where a.del = 1";
        if(!StringUtil.isBlank(type)){
@ -33,6 +35,8 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
            sql += " and a.code = '"+orgCode+"' ";
        }
        sql += "a.code NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null)";
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(BaseOrgDO.class));
    }
@ -50,4 +54,21 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
        }
        return maps;
    }
    public List<Map<String, Object>>  findCommunity() {
   /*     String orgSql = "SELECT tm.team_code AS teamCode,tm.org_code AS orgCode,tm.doctor_code AS doctorCode,d.`name` AS `name` " +
                " FROM base_team_member tm LEFT JOIN base_doctor d ON tm.doctor_code = d.id WHERE tm.del = 1 AND d.del =1 AND org_code = '" + orgCode + "'";
   */
        String orgSql = "SELECT id,org_code,org_name,`name` from base_team WHERE org_code = '"+orgCode+"' ";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(orgSql);
        return maps;
    }
    public List<Map<String, Object>> findCommunityZly(String teamId){
        String sql = "SELECT tm.team_code AS teamCode,tm.org_code AS orgCode,tm.doctor_code AS doctorCode,d.`name` AS `name`  FROM base_team_member tm LEFT JOIN base_doctor d ON tm.doctor_code = d.id WHERE tm.del = 1 AND d.del =1 AND tm.team_code = '"+teamId+"'";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;
    }
}

+ 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

@ -1490,10 +1490,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" +
@ -1502,7 +1504,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);

+ 71 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/WlyygcStatisticsService.java

@ -13,10 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -784,7 +781,7 @@ public class WlyygcStatisticsService {
        res.put("yl",orgList.get(0).get("yl"));
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(zlSql);
        res.put("yl",maps.get(0).get("yh"));
        res.put("yh",maps.get(0).get("yh"));
        res.put("sg",maps.get(0).get("sg"));
        res.put("zly",maps.get(0).get("zly"));
        //指标
@ -805,6 +802,75 @@ public class WlyygcStatisticsService {
    /**
     * 社区计数
     */
    public List<Map<String,Object>> getOlderTeamListWithPage(Integer page,Integer size) throws Exception {
        List<Map<String,Object>> teamList  = new ArrayList<>();
        page = page>0?page-1:0;
        String sql = " select count(distinct org.code) from " +
                " base_service_package pack INNER JOIN base_org org on pack.org_code = org.code " +
                "INNER JOIN base_team te on te.org_code = org.`code` " +
                " where  org.del=1 and org.type=3 and te.del=1 and org.code not in " +
                " (select dict_code from wlyy_hospital_sys_dict where dict_name='jkzl_org') ";
        Long totalNum = jdbcTemplate.queryForObject(sql,Long.class);
        sql = " select distinct org.code as orgCode,org.name as orgName,te.id as teamId,te.name as teamName from " +
                " base_service_package pack INNER JOIN base_org org on pack.org_code = org.code " +
                "INNER JOIN base_team te on te.org_code = org.`code` " +
                " where  org.del=1 and org.type=3 and te.del=1 and org.code not in " +
                " (select dict_code from wlyy_hospital_sys_dict where dict_name='jkzl_org') order by org.code asc " +
                "limit "+(page*size)+","+size ;
        teamList = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:teamList){
            Integer count = 0;
            //1 获取社工人数(该团队人数) 2.预警数(紧急呼叫+安防监护 已取消的不算)
            //3助老服务(该社区所有老人的生活照料总数 已取消的不算) 4物联设备(健康设备绑定量+安防设备绑定量)
            String teamName = map.get("teamName").toString();
            String teamId = map.get("teamId").toString();
            teamName = teamName.replace("团队","社区");
            teamName = teamName.replace("服务","");
            if(!teamName.contains("社区")){
                teamName = teamName+"社区";
            }
            map.put("teamName",teamName);
            sql = " SELECT count(o.bussiness_id) " +
                    "FROM ( SELECT o.id AS bussiness_id,o.team_code as dept,o.`status`,o.update_time " +
                    "FROM base_security_monitoring_order o UNION ALL  " +
                    "SELECT o.id AS bussiness_id,o.team_code as dept,o.`status`,o.update_time " +
                    "FROM base_emergency_assistance_order o " +
                    ") o WHERE 1=1  and dept='"+teamId+"' and `status` = 1 ";
            Long emeAssistanceCount = jdbcTemplate.queryForObject(sql,Long.class);
            map.put("emeAssistanceCount",emeAssistanceCount);//救助服务
            sql = "  select count(distinct pd.device_sn) from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code  " +
                    " INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1  " +
                    " where 1=1 and EXISTS ( " +
                    " select 1 from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i," +
                    " base_service_package pack " +
                    " where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
                    "  and i.del = 1  and sr.`status`=1 and CONVERT(sr.patient USING utf8)  = p.id " +
                    " and CONVERT(sr.patient USING utf8) not in (SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` " +
                    " WHERE `dict_name` = 'jkzl_older' or dict_name='jkzl_child') and r.team_code='"+teamId+"' ) ";
            count = jdbcTemplate.queryForObject(sql,Integer.class);
            map.put("bindingDeviceCount",count);
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_older' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
            String filter ="";
            if(listtmp.size()>0){
                String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and a.id not in ('"+orgCodes+"')";
            }
            sql = "SELECT count(a.id) from base_patient a  WHERE a.archive_type = 1 and a.del = '1' ";
            sql += " and EXISTS ( select 1 from " +
                    "base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
                    " where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
                    " and i.del = 1  and sr.`status`=1 and CONVERT(sr.patient USING utf8)  = a.id and r.team_code='"+teamId+"' ) "+filter;
            count =  jdbcTemplate.queryForObject(sql,Integer.class);
            map.put("oldTotal",count);//照护老人数量
        }
        return  teamList;
    }

+ 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;
        }