liubing пре 3 година
родитељ
комит
bd259c6092

+ 58 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/label/BaseCapacityLabelDO.java

@ -5,6 +5,9 @@ import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.ArrayList;
import java.util.List;
/**
 * 能力状况记录表
@ -163,4 +166,59 @@ public class BaseCapacityLabelDO extends UuidIdentityEntityWithCreateTime {
    public void setTakeExercise(String takeExercise) {
        this.takeExercise = takeExercise;
    }
    @Transient
    public List<String> getCapacityLabels(){
        List<String> list = new ArrayList<>();
        if ("1".equals(hypertension)){
            list.add("高血压:是");
        }
        if ("1".equals(hyperglycemia)){
            list.add("高血糖:是");
        }
        if ("1".equals(hyperglycemia)){
            list.add("心脏疾病:是");
        }
        if(null!=workStatus){
            switch (workStatus){
                case "1":list.add("行走状态:迟缓");break;
                case "2":list.add("行走状态:一般");break;
                case "3":list.add("行走状态:健步如飞");break;
            }
        }
        if(null!=visualCondition){
            switch (visualCondition){
                case "1":list.add("视觉状况:看不见");break;
                case "2":list.add("视觉状况:近距离");break;
                case "3":list.add("视觉状况:正常");break;
            }
        }
        if(null!=auditoryCondition){
            switch (auditoryCondition){
                case "1":list.add("听觉状况:听不见");break;
                case "2":list.add("听觉状况:大声量");break;
                case "3":list.add("听觉状况:正常");break;
            }
        }
        if(null!=communication){
            switch (communication){
                case "1":list.add("交流情况:不善于");break;
                case "2":list.add("交流情况:一般");break;
                case "3":list.add("交流情况:善于");break;
            }
        }
        if ("1".equals(mentalIllness)){
            list.add("精神类疾病:是");
        }
        if ("1".equals(oftenGoOut)){
            list.add("经常外出:是");
        }
        if ("1".equals(usePhone)){
            list.add("会使用智能手机:是");
        }
        if ("1".equals(takeExercise)){
            list.add("参加锻炼:是");
        }
        return list;
    }
}

+ 52 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java

@ -199,9 +199,12 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "platformPeople")
    @ApiOperation(value = "平台人员实时统计")
    public ObjEnvelop platformPeople() {
    public ObjEnvelop platformPeople(@ApiParam(name="area",value = "查询区域code")
                                     @RequestParam(required = false) String area,
                                     @ApiParam(name="level",value = "区域等级 2市3区4机构5团队6医生")
                                     @RequestParam(required = false) Integer level) {
        try {
            JSONObject result = statisticsService.platformPeople();
            JSONObject result = statisticsService.platformPeople(area,level);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
@ -216,12 +219,16 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
                                  @RequestParam(value = "name", required = false) String name,
                                  @ApiParam(name = "residentialArea", value = "居住小区")
                                  @RequestParam(value = "residentialArea", required = false) String residentialArea,
                                  @ApiParam(name="area",value = "查询区域code")
                                  @RequestParam(required = false) String area,
                                  @ApiParam(name="level",value = "区域等级 2市3区4机构5团队6医生")
                                  @RequestParam(required = false) Integer level,
                                  @ApiParam(name = "page", value = "第几页")
                                  @RequestParam(value = "page", required = false) Integer page,
                                  @ApiParam(name = "size", value = "页面大小")
                                  @RequestParam(value = "size", required = false) Integer size) {
        try {
            return success("修改成功", patientService.findUserByType(type, name, residentialArea, page, size));
            return success("修改成功", patientService.findUserByType(type, name, residentialArea,area,level, page, size));
        } catch (Exception e) {
            return failedException2(e);
        }
@ -351,5 +358,47 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getOlderOverview")
    @ApiOperation("获取老人概况")
    public ObjEnvelop getOlderOverview(){
        try {
            return ObjEnvelop.getSuccess("查询成功",statisticsService.getOlderOverview("330100","2"));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getServerSituation")
    @ApiOperation("获取老人服务情况(助老服务、紧急救助、医生服务、监测设备)")
    public ObjEnvelop getServerSituation(@RequestParam(required = true,defaultValue = "") String area,
                                       @RequestParam(required = true,defaultValue = "2") int level){
        try {
            return ObjEnvelop.getSuccess("查询成功",statisticsService.getServerSituation(area,level));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getServerSituationItem")
    @ApiOperation("获取老人服务项目数量情况(助老服务、紧急救助、医生服务)")
    public ObjEnvelop getServerSituationItem(@RequestParam(required = true) String endDate,
                                       @RequestParam(required = true) String area,
                                       @RequestParam(required = true) int level){
        try {
            return ObjEnvelop.getSuccess("查询成功",statisticsService.getServerSituationItem(endDate,area,level));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getOlderTeamList")
    @ApiOperation("获取养老服务社区团队列表")
    public ObjEnvelop getOlderTeamList(){
        try {
            return ObjEnvelop.getSuccess("查询成功",statisticsService.getOlderTeamList());
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
}

+ 23 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/platForm/PatientInfoPlatFormEndpoint.java

@ -141,6 +141,28 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getEmeAndOlderServiceInfo")
    @ApiOperation("大屏获取老人紧急预警、助老服务情况")
    public ObjEnvelop getEmeAndOlderServiceInfo(@ApiParam(name="patient",value = "居民id",required = true)
                                                @RequestParam(value = "patient")String patient){
        try {
            return ObjEnvelop.getSuccess("查询成功",patientInfoPlatFormService.getEmeAndOlderServiceInfo(patient));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getPatientHealthStatistic")
    @ApiOperation("大屏获取老人健康管理")
    public ObjEnvelop getPatientHealthStatistic(@ApiParam(name="patient",value = "居民id",required = true)
                                                @RequestParam(value = "patient")String patient){
        try {
            return ObjEnvelop.getSuccess("查询成功",patientInfoPlatFormService.getPatientHealthStatistic(patient));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getPatientEvent")
    @ApiOperation("获取就诊事件")
    public ObjEnvelop getPatientEvent(@ApiParam(name="patient",value = "居民id",required = true)
@ -256,7 +278,7 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping("getLifeCareByOrderId")
    @ApiOperation(value = "根据工单id获取相应的工单")
    @ApiOperation(value = "根据工单id获取相应的生活照料工单")
    public ObjEnvelop getByOrderId(
            @ApiParam(value = "工单id", name = "orderId")
            @RequestParam(value = "orderId", required = true) String orderId) {

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

@ -160,56 +160,57 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
     * @return
     */
    public JSONObject newOrder(String patient,String jsonData,String proxyPatient,Integer orderSource,String agent) throws Exception{
        JSONObject result = new JSONObject();
        EmergencyAssistanceDO assistanceDO = JSON.parseObject(jsonData,EmergencyAssistanceDO.class);
        BasePatientDO patientDO = patientDao.findById(patient);
        if (patientDO==null){
            String failMsg = "当前居民未存在,请先进行建档";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        if (emergencyAssistanceDao.findByPatientAndStatus(patient,EmergencyAssistanceDO.Status.apply.getType()).size()>0){
            String failMsg = "当前居民存在发起中工单,请完成后再申请";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        assistanceDO.setOrderSource(orderSource);
        assistanceDO.setStatus(1);
        assistanceDO.setPatient(patient);
        assistanceDO.setPatientIdcard(patientDO.getIdcard());
        assistanceDO.setPatientName(patientDO.getName());
        assistanceDO.setPatientPhone(patientDO.getMobile());
        if (proxyPatient==null){//设备发起时该字段为空
            assistanceDO.setProxyPatient(patient);
            assistanceDO.setProxyPatientName(patientDO.getName());
            assistanceDO.setProxyPatientPhone(patientDO.getMobile());
            assistanceDO.setType(1);
        }
        else{
            if(StringUtils.isNotBlank(agent)){
                BasePatientDO agentPatient = patientDao.findById(agent);
                if (null!=agentPatient){
                    assistanceDO.setProxyPatient(agentPatient.getId());
                    assistanceDO.setProxyPatientName(agentPatient.getName());
                    assistanceDO.setProxyPatientPhone(agentPatient.getMobile());
                }
                assistanceDO.setType(4);
        synchronized (patient.intern()){
            JSONObject result = new JSONObject();
            EmergencyAssistanceDO assistanceDO = JSON.parseObject(jsonData,EmergencyAssistanceDO.class);
            BasePatientDO patientDO = patientDao.findById(patient);
            if (patientDO==null){
                String failMsg = "当前居民未存在,请先进行建档";
                result.put(ResponseContant.resultFlag, ResponseContant.fail);
                result.put(ResponseContant.resultMsg,failMsg);
                return result;
            }
            else if(patient.equals(proxyPatient)) {//本人发起
            if (emergencyAssistanceDao.findByPatientAndStatus(patient,EmergencyAssistanceDO.Status.apply.getType()).size()>0){
                String failMsg = "当前居民存在发起中工单,请完成后再申请";
                result.put(ResponseContant.resultFlag, ResponseContant.fail);
                result.put(ResponseContant.resultMsg,failMsg);
                return result;
            }
            assistanceDO.setOrderSource(orderSource);
            assistanceDO.setStatus(1);
            assistanceDO.setPatient(patient);
            assistanceDO.setPatientIdcard(patientDO.getIdcard());
            assistanceDO.setPatientName(patientDO.getName());
            assistanceDO.setPatientPhone(patientDO.getMobile());
            if (proxyPatient==null){//设备发起时该字段为空
                assistanceDO.setProxyPatient(patient);
                assistanceDO.setProxyPatientName(patientDO.getName());
                assistanceDO.setProxyPatientPhone(patientDO.getMobile());
                assistanceDO.setType(1);
            }else {//家人
                BasePatientDO proxyPatientDO = patientDao.findById(proxyPatient);
                assistanceDO.setProxyPatient(proxyPatient);
                assistanceDO.setProxyPatientName(proxyPatientDO.getName());
                assistanceDO.setProxyPatientPhone(proxyPatientDO.getMobile());
                assistanceDO.setType(2);
            }
        }
            else{
                if(StringUtils.isNotBlank(agent)){
                    BasePatientDO agentPatient = patientDao.findById(agent);
                    if (null!=agentPatient){
                        assistanceDO.setProxyPatient(agentPatient.getId());
                        assistanceDO.setProxyPatientName(agentPatient.getName());
                        assistanceDO.setProxyPatientPhone(agentPatient.getMobile());
                    }
                    assistanceDO.setType(4);
                }
                else if(patient.equals(proxyPatient)) {//本人发起
                    assistanceDO.setProxyPatient(patient);
                    assistanceDO.setProxyPatientName(patientDO.getName());
                    assistanceDO.setProxyPatientPhone(patientDO.getMobile());
                    assistanceDO.setType(1);
                }else {//家人
                    BasePatientDO proxyPatientDO = patientDao.findById(proxyPatient);
                    assistanceDO.setProxyPatient(proxyPatient);
                    assistanceDO.setProxyPatientName(proxyPatientDO.getName());
                    assistanceDO.setProxyPatientPhone(proxyPatientDO.getMobile());
                    assistanceDO.setType(2);
                }
            }
//        if (emergencyAssistanceDao.findByPatientAndStatus(patient,1)!=null){
//            String failMsg = "当前居民存在申请中的救助,请完成后再申请";
@ -217,98 +218,99 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
//            result.put(ResponseContant.resultMsg,failMsg);
//            return result;
//        }
        //签约防走失服务包
        String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack  \n" +
                "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 \n" +
                "and  sr.patient  = '"+assistanceDO.getPatient()+"' and i.code='emergencyAssistance' ";
        List<Map<String,Object>> items = jdbcTemplate.queryForList(sql);
        if (items.size()==0){
            String failMsg = "当前居民未签约紧急救助服务项,请先进行签约";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        Map<String,Object> mapTmp = items.get(0);
        List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembersByLevel(mapTmp.get("team_code").toString(),2);
        if (StringUtils.isNotBlank((mapTmp.get("org_code").toString()))){
            assistanceDO.setOrgCode(mapTmp.get("org_code").toString());
        }
        if (StringUtils.isNotBlank((mapTmp.get("org_name").toString()))){
            assistanceDO.setOrgName((mapTmp.get("org_name").toString()));
        }
        assistanceDO.setTeamCode(mapTmp.get("team_code").toString());
        if (doctorDOS.size()==0){
            String failMsg = "紧急救助服务项服务医生为空,不可发起救助";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        assistanceDO = emergencyAssistanceDao.save(assistanceDO);
        //创建im会话  紧急救助咨询的sessionid  为居民code+20
        JSONObject IMObj = consultTeamService.addServiceConsult(assistanceDO.getId(),patient,agent,null);
        String sessionId=patient + "_20";
        assistanceDO.setSessionId(sessionId);
        //向会话中发送一条消息
        ConsultTeamDo consultTeam = consultTeamDao.queryByRelationCode(assistanceDO.getId());
        if (consultTeam!=null){
            if (StringUtils.isNotBlank(assistanceDO.getSendMessage())){
                imUtill.sendTopicIM(patient,patientDO.getName(),consultTeam.getConsult(),"1",assistanceDO.getSendMessage(),null);
            //签约防走失服务包
            String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack  \n" +
                    "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 \n" +
                    "and  sr.patient  = '"+assistanceDO.getPatient()+"' and i.code='emergencyAssistance' ";
            List<Map<String,Object>> items = jdbcTemplate.queryForList(sql);
            if (items.size()==0){
                String failMsg = "当前居民未签约紧急救助服务项,请先进行签约";
                result.put(ResponseContant.resultFlag, ResponseContant.fail);
                result.put(ResponseContant.resultMsg,failMsg);
                return result;
            }
        }
        //推送socket给医生
        JSONObject message = new JSONObject();
        String latLon = assistanceDO.getServeLat()+","+assistanceDO.getServeLon();
        message.put("latLon",latLon);
        message.put("session_id",assistanceDO.getSessionId());
        message.put("sender_name",assistanceDO.getPatientName());
        message.put("content_notice",assistanceDO.getPatientName()+" 发起紧急救助!");
        message.put("sender_code",assistanceDO.getPatient());
        message.put("OrderType",20);
        message.put("OrderStatus","new");
        message.put("order_id",assistanceDO.getId());
        message.put("content_type",40);
        message.put("serverDesc","紧急呼叫");
        message.put("categoryCode","");
        message.put("orgType","");
        message.put("contactStatus","");
        message.put("residentialArea",patientDO.getResidentialArea());
        if (null!=assistanceDO.getDeviceSn()){
            String device_sn = assistanceDO.getDeviceSn();
            if (org.apache.commons.lang.StringUtils.isNotBlank(device_sn)){
                DeviceDetail deviceDetail = deviceDetailDao.findBySn(device_sn);
                if (null!=deviceDetail){
                    message.put("contactStatus",deviceDetail.getContactStatus());
                    message.put("categoryCode",deviceDetail.getCategoryCode());
            Map<String,Object> mapTmp = items.get(0);
            List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembersByLevel(mapTmp.get("team_code").toString(),2);
            if (StringUtils.isNotBlank((mapTmp.get("org_code").toString()))){
                assistanceDO.setOrgCode(mapTmp.get("org_code").toString());
            }
            if (StringUtils.isNotBlank((mapTmp.get("org_name").toString()))){
                assistanceDO.setOrgName((mapTmp.get("org_name").toString()));
            }
            assistanceDO.setTeamCode(mapTmp.get("team_code").toString());
            if (doctorDOS.size()==0){
                String failMsg = "紧急救助服务项服务医生为空,不可发起救助";
                result.put(ResponseContant.resultFlag, ResponseContant.fail);
                result.put(ResponseContant.resultMsg,failMsg);
                return result;
            }
            assistanceDO = emergencyAssistanceDao.save(assistanceDO);
            //创建im会话  紧急救助咨询的sessionid  为居民code+20
            JSONObject IMObj = consultTeamService.addServiceConsult(assistanceDO.getId(),patient,agent,null);
            String sessionId=patient + "_20";
            assistanceDO.setSessionId(sessionId);
            //向会话中发送一条消息
            ConsultTeamDo consultTeam = consultTeamDao.queryByRelationCode(assistanceDO.getId());
            if (consultTeam!=null){
                if (StringUtils.isNotBlank(assistanceDO.getSendMessage())){
                    imUtill.sendTopicIM(patient,patientDO.getName(),consultTeam.getConsult(),"1",assistanceDO.getSendMessage(),null);
                }
            }
        }
        String orgCode = assistanceDO.getOrgCode();
        BaseOrgDO orgDO = orgDao.findByCode(orgCode);
        if (null!=orgDO){
            message.put("orgType",orgDO.getType());
        }
            //推送socket给医生
            JSONObject message = new JSONObject();
            String latLon = assistanceDO.getServeLat()+","+assistanceDO.getServeLon();
            message.put("latLon",latLon);
            message.put("session_id",assistanceDO.getSessionId());
            message.put("sender_name",assistanceDO.getPatientName());
            message.put("content_notice",assistanceDO.getPatientName()+" 发起紧急救助!");
            message.put("sender_code",assistanceDO.getPatient());
            message.put("OrderType",20);
            message.put("OrderStatus","new");
            message.put("order_id",assistanceDO.getId());
            message.put("content_type",40);
            message.put("serverDesc","紧急呼叫");
            message.put("categoryCode","");
            message.put("orgType","");
            message.put("contactStatus","");
            message.put("residentialArea",patientDO.getResidentialArea());
            if (null!=assistanceDO.getDeviceSn()){
                String device_sn = assistanceDO.getDeviceSn();
                if (org.apache.commons.lang.StringUtils.isNotBlank(device_sn)){
                    DeviceDetail deviceDetail = deviceDetailDao.findBySn(device_sn);
                    if (null!=deviceDetail){
                        message.put("contactStatus",deviceDetail.getContactStatus());
                        message.put("categoryCode",deviceDetail.getCategoryCode());
                    }
                }
            }
            String orgCode = assistanceDO.getOrgCode();
            BaseOrgDO orgDO = orgDao.findByCode(orgCode);
            if (null!=orgDO){
                message.put("orgType",orgDO.getType());
            }
        for (BaseDoctorDO doctorDO:doctorDOS){
            try {
                if (StringUtils.isNotBlank(doctorDO.getMobile())){
                    messageUtil.sendTXYSJson("1099807",doctorDO.getMobile(),assistanceDO.getPatientName(),"紧急呼叫");
                }
            }catch (Exception e){}
            String body = "您好,"+assistanceDO.getPatientName()+"居民发起紧急呼叫,请关注并及时处理。";
            messageUtil.sendDoctorGetuiMessage(doctorDO.getId(),"2","/sos/index?tabActive=1","紧急呼叫",body);
            imUtill.sendMDTSocketMessageToDoctor(doctorDO.getId(),message.toString());
        }
        //pc管理端端推送消息
        imUtill.sendPcManageMessageToPc("cloudCare_pcManage",message.toString());
            for (BaseDoctorDO doctorDO:doctorDOS){
                try {
                    if (StringUtils.isNotBlank(doctorDO.getMobile())){
                        messageUtil.sendTXYSJson("1099807",doctorDO.getMobile(),assistanceDO.getPatientName(),"紧急呼叫");
                    }
                }catch (Exception e){}
                String body = "您好,"+assistanceDO.getPatientName()+"居民发起紧急呼叫,请关注并及时处理。";
                messageUtil.sendDoctorGetuiMessage(doctorDO.getId(),"2","/sos/index?tabActive=1","紧急呼叫",body);
                imUtill.sendMDTSocketMessageToDoctor(doctorDO.getId(),message.toString());
            }
            //pc管理端端推送消息
            imUtill.sendPcManageMessageToPc("cloudCare_pcManage",message.toString());
        emergencyAssistanceDao.save(assistanceDO);
        result.put("resultFlag", ResponseContant.success);
        result.put("resultMsg",assistanceDO);
        return result;
            emergencyAssistanceDao.save(assistanceDO);
            result.put("resultFlag", ResponseContant.success);
            result.put("resultMsg",assistanceDO);
            return result;
        }
    }
    public JSONObject getOrderDetail(String orderID,String doctor){

+ 33 - 6
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/common/PermissionService.java

@ -10,8 +10,10 @@ import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.role.DoctorRole;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.sms.dao.HospitalSysDictDao;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -42,6 +44,8 @@ public class PermissionService {
    @Autowired
    private BaseDoctorDao doctorDao;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private HospitalSysDictDao hospitalSysDictDao;
    @Autowired
    private BaseDoctorHospitalDao doctorHospitalDao;
@ -92,7 +96,7 @@ public class PermissionService {
    /**
     * 判断是否有权限
     *  loginType 1user 登录 2医生登录 3居民登录 4第三方同步患者账号 5支付宝登录 6第三方登录-医联康护 7家人登录
     *  type 类型 0只能管理员访问,1doctor相关 2生日祝福模板
     *  type 类型 0只能管理员访问,1医生/居民相关 2生日祝福模板
     *  param 参数 不同类型参数不一样
     * @return true表示没权限
     */
@ -117,7 +121,10 @@ public class PermissionService {
            if (2==doctorDO.getLevel()||4==doctorDO.getLevel()){
                LoginType="2";
            }
        } else {
        } else if(isAgent()) {//家属端登录
            userId = getUID();
            LoginType = "3";
        }else {
            userId = loginLogDO.getUserId();
        }
        //目前只判断医生端
@ -143,13 +150,21 @@ public class PermissionService {
        }
        //居民
        if ("3".equals(LoginType)){
            if(type == 1){
                String patient = param.getString("patient");
                if(!userId.equals(patient)){
                    return true;
                }
            }
        }
        return false;
    }
    public String getUID(){
        if (isObserver()){
            return getAgentUID();
        if (isObserver()||isAgent()){
            return getHeaderUID();
        }else {
            BaseLoginLogDO loginLogDO = getLoginLog();
            if(loginLogDO != null){
@ -229,7 +244,19 @@ public class PermissionService {
        return false;
    }
    public String getAgentUID() {
    //是否为家属登录
    public boolean isAgent(){
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        org.json.JSONObject json = getAgent(request);
        String agent = json.has("agent") ? json.getString("agent") : "";
        //为家属登录
        if(StringUtils.isNotBlank(agent)&&"1".equals(agent)){
            return true;
        }
        return false;
    }
    public String getHeaderUID() {
        try {
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java

@ -168,7 +168,7 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
    /**
     * 根据id获取服务工单信息
     * 根据工单id获取相应的生活照料工单
     * @param id
     * @return
     */

+ 51 - 17
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java

@ -515,12 +515,14 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
    /**
     *
     * @param type 类型:1幼儿,2老人,3社工,4医生。不传返回四个类型的数据
     * @param type 类型:1幼儿,2老人,3社工,4医生。5家属 不传返回四个类型的数据
     * @param name 姓名
     * @param area 查询区域 目前仅支持查询老人、社工、家属
     * @param level 区域等级 2市3区4机构5团队6医生
     * @param residentialArea 居住小区
     * @return
     */
    public JSONObject findUserByType(String type,String name,String residentialArea,Integer page,Integer size){
    public JSONObject findUserByType(String type,String name,String residentialArea,String area,Integer level,Integer page,Integer size){
        JSONObject re = new JSONObject();
        if(page == null){
            page = 1;
@ -531,7 +533,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        String limit = " limit "+(page-1)*size+","+size;
        String filter ="";
        if("1".equals(type)||StringUtil.isBlank(type)){
        if("1".equals(type)||StringUtil.isBlank(type)){//新生儿
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
            if(listtmp.size()>0){
@ -544,7 +546,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
            re.put("child",list);
            re.put("childTotal",findChildTotal(name,residentialArea,filter));
        }
        if("2".equals(type)||StringUtil.isBlank(type)){
        if("2".equals(type)||StringUtil.isBlank(type)){//老人
            filter = "";
            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);
@ -554,11 +556,11 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
                filter = " and a.id not in ('"+orgCodes+"')";
            }
            List<Map<String,Object>> list = findOld(name,residentialArea,limit,filter);
            List<Map<String,Object>> list = findOld(name,residentialArea,area,level,limit,filter);
            re.put("old",list);
            re.put("oldTotal",findOldTotal(name,residentialArea,filter));
            re.put("oldTotal",findOldTotal(name,residentialArea,area,level,filter));
        }
        if("3".equals(type)||StringUtil.isBlank(type)){
        if("3".equals(type)||StringUtil.isBlank(type)){//社工
            filter = "";
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
@ -567,10 +569,10 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and h.org_code not in ('"+orgCodes+"')";
            }
            List<Map<String,Object>> list = findHelper(name,limit,filter);
            List<Map<String,Object>> list = findHelper(name,area,level,limit,filter);
            re.put("helper",list);
            re.put("helperTotal",findHelperTotal(name,filter));
            re.put("helperTotal",findHelperTotal(name,area,level,filter));
        }
        if("5".equals(type)||StringUtils.isBlank(type)){//老人家属
            filter = "";
@ -581,9 +583,9 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and t2.id not in ('"+orgCodes+"')";
            }
            List<Map<String,Object>> list = findOlderFamily(name,limit,filter);
            List<Map<String,Object>> list = findOlderFamily(name,limit,area,level,filter);
            re.put("oldFamily",list);
            re.put("oldFamilyCount",findOlderFamilyTotal(name,filter));
            re.put("oldFamilyCount",findOlderFamilyTotal(name,area,level,filter));
        }
        return re;
    }
@ -642,7 +644,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
     * @param limit
     * @return
     */
    public List<Map<String,Object>> findOld(String name,String residentialArea,String limit,String filter1){
    public List<Map<String,Object>> findOld(String name,String residentialArea,String area,Integer level,String limit,String filter1){
        String sql = "SELECT a.id,a.name,a.photo,a.idcard,CAST(IFNULL(a.birthday,'') AS char ) birthday,a.residential_area residentialArea,a.sex " +
                ",a.ykt_id yktId, case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online,IFNULL(sign_status,0) signStatus from base_patient a " +
                " WHERE a.archive_type = 1 and a.del = '1' ";
@ -655,6 +657,12 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        if(!StringUtil.isBlank(residentialArea)){
            sql+= " and residential_area = '"+residentialArea+"' ";
        }
        if (StringUtils.isNotBlank(area)&&5==level){
            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='"+area+"') ";
        }
        sql += filter1;
        sql += " GROUP BY a.id,a.name,a.photo,a.idcard,a.birthday,a.residential_area,a.sex,a.ykt_id,online,signStatus ";
        sql += " ORDER BY online desc,a.ykt_id desc,signStatus desc";
@ -694,7 +702,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        return list;
    }
    public Integer findOldTotal(String name,String residentialArea,String filter){
    public Integer findOldTotal(String name,String residentialArea,String area,Integer level,String filter){
        String sql = "SELECT count(a.id) from base_patient a  WHERE a.archive_type = 1 and a.del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
@ -702,6 +710,12 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        if(!StringUtil.isBlank(residentialArea)){
            sql+= " and residential_area = '"+residentialArea+"' ";
        }
        if (StringUtils.isNotBlank(area)&&5==level){
            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='"+area+"' ) ";
        }
        sql += filter;
        return jdbcTemplate.queryForObject(sql,Integer.class);
    }
@ -712,12 +726,16 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
     * @param limit
     * @return
     */
    public List<Map<String,Object>> findHelper(String name,String limit,String fileter){
    public List<Map<String,Object>> findHelper(String name,String area,Integer level,String limit,String fileter){
        String sql = "SELECT a.id,a.name,a.photo,a.sex,IFNULL(a.on_line,0) online from base_doctor a,base_doctor_hospital h" +
                "  WHERE a.id=h.doctor_code and a.doctor_level = 2 and a.del = '1' and h.del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and a.name like '%"+name+"%' ";
        }
        if (StringUtils.isNotBlank(area)&&5==level){
            sql += " and EXISTS ( select 1 from base_team_member mem where mem.doctor_code = a.id " +
                    " and mem.team_code='"+area+"' and mem.del=1 )  ";
        }
        sql += fileter;
        sql += " ORDER BY online desc";
        sql+=limit;
@ -747,16 +765,20 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        return list;
    }
    public Integer findHelperTotal(String name,String filter){
    public Integer findHelperTotal(String name,String area,Integer level,String filter){
        String sql = "SELECT count(a.id) from base_doctor a,base_doctor_hospital h WHERE  a.id=h.doctor_code and a.doctor_level = 2 and a.del = '1' and h.del = '1'  ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
        if (StringUtils.isNotBlank(area)&&5==level){
            sql += " and EXISTS ( select 1 from base_team_member mem where mem.doctor_code = a.id " +
                    " and mem.team_code='"+area+"' and mem.del=1 )  ";
        }
        sql += filter;
        return jdbcTemplate.queryForObject(sql,Integer.class);
    }
    public List<Map<String,Object>> findOlderFamily(String name,String limit,String fileter){
    public List<Map<String,Object>> findOlderFamily(String name,String limit,String area,Integer level,String fileter){
        String sql = "select t2.id,t2.name,t2.sex,t2.mobile,t2.idcard,if(t2.openid is null,0,1) online,t2.photo,t1.family_relation,t1.patient older,t3.name olderName " +
                "from base_patient t2 left JOIN base_patient_family_member t1 on t1.family_member = t2.id " +
                "left join base_patient t3 on t3.id = t1.patient  " +
@ -764,6 +786,12 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        if (StringUtils.isNotBlank(name)){
            sql += " and t3.name like '%"+name+"%' ";
        }
        if (StringUtils.isNotBlank(area)&&5==level){
            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)  = t3.id and r.team_code='"+area+"' ) ";
        }
        sql += fileter + " GROUP BY t2.id,t1.patient ORDER BY online desc ";
        sql += limit;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
@ -773,7 +801,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        return list;
    }
    public Integer findOlderFamilyTotal(String name,String fileter){
    public Integer findOlderFamilyTotal(String name,String area,Integer level,String fileter){
        String sql = "select t2.id,t1.patient " +
                "from base_patient t2 left JOIN base_patient_family_member t1 on t1.family_member = t2.id " +
                "left join base_patient t3 on t3.id = t1.patient  " +
@ -781,6 +809,12 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        if (StringUtils.isNotBlank(name)){
            sql += " and t3.name like '%"+name+"%' ";
        }
        if (StringUtils.isNotBlank(area)&&5==level){
            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)  = t3.id and r.team_code='"+area+"' ) ";
        }
        sql += fileter +" group by t2.id,t1.patient ";
        String sqlCount = "SELECT count(*) from ( "+sql+")A";
        return jdbcTemplate.queryForObject(sqlCount,Integer.class);

+ 1 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/prescription/BaseCarePrescriptionService.java

@ -195,6 +195,7 @@ public class BaseCarePrescriptionService {
        prescriptionDO.setPatient(patient);
        prescriptionDO.setPatientName(patientDO.getName());
        prescriptionDO.setStatus(1);
        prescriptionDO.setDealTime(new Date());
        carePrescriptionDao.save(prescriptionDO);
        return prescriptionDO;
    }

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

@ -118,6 +118,9 @@ public class StatisticsService {
        // 39 老人-生活照料-服务工单数
        // 44 老人-生活照料-代预约
        // 54 新生儿-上门辅导-工单发起数
        // 64 活动浏览数
        // 65 课程播放数
        // 66 活动报名数
        String index = "28,31,35,37,39,44,54";
        String[] indexes = index.split(",");
@ -126,6 +129,17 @@ public class StatisticsService {
            SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, ind, SaveModel.timeLevel_DDL);
            res.put("index_" + ind, saveModel.getResult2().longValue());
        }
        // activity-1   活动浏览次数64
        // activity-2   公艺课程播放65
        // activity-3   公艺课程播放65
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "64", SaveModel.timeLevel_DDL);
        res.put("activity_1", saveModel.getResult2().longValue());
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "65", SaveModel.timeLevel_DDL);
        res.put("activity_2", saveModel.getResult2().longValue());
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "66", SaveModel.timeLevel_DDL);
        res.put("activity_3", saveModel.getResult2().longValue());
        //41紧急预警43安防要与实时一样,查sql
        String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' ";
        List<Map<String, Object>> listtmp = jdbcTemplate.queryForList(sqltmp);
@ -159,21 +173,6 @@ public class StatisticsService {
        //居民健康标签纬度
        res.put("patientLabelStatistic", statisticsOrderServer("47", endDate, 2, "2"));
        // activity-1   活动浏览次数
        // activity-2   公艺课程播放
        res.put("activity_1", 0);
        res.put("activity_2", 0);
        String sql = " SELECT activity_type, COUNT(id) total  FROM base_activity_click WHERE activity_type IN (1, 2) GROUP BY activity_type";
        List<Map<String, Object>> lists = jdbcTemplate.queryForList(sql);
        for (Map<String, Object> tmp : lists) {
            Integer num = Integer.parseInt(tmp.get("total").toString());
            res.put("activity_" + tmp.get("activity_type").toString(), num);
        }
        //activity-3 幼儿活动报名-总数
        sql = " select count(id) as total from base_child_activity_registration and org.code not in (SELECT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org') ";
        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
        res.put("activity_3", count);
        return res;
    }
@ -639,8 +638,11 @@ public class StatisticsService {
    /**
     * 平台人员实时统计
     * @param area 查询区域 目前仅支持查询老人、社工、家属
     * @param level 区域等级 2市3区4机构5团队6医生
     */
    public JSONObject platformPeople() {
    public JSONObject platformPeople(String area,Integer level) {
        String areaFilter = " ";
        JSONObject result = new JSONObject();
        Integer olderTotal = 0;
        Integer childTotal = 0;
@ -692,9 +694,14 @@ public class StatisticsService {
            oldFilter = " and a.id not in ('" + orgCodes + "')";
        }
        String sql1 = "SELECT COUNT(*) c,case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online from base_patient a WHERE archive_type = 1" +
                " and del='1' " + oldFilter + " GROUP BY online";
        if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
            areaFilter = " 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='"+area+"') ";
        }
        String sql1 = "SELECT COUNT(*) c,case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online from base_patient a WHERE archive_type = 1 " +
                " and del='1' "+areaFilter+" " + oldFilter + " GROUP BY online";
        List<Map<String, Object>> list1 = jdbcTemplate.queryForList(sql1);
        for (Map<String, Object> map : list1) {
            Integer num = Integer.valueOf(map.get("c").toString());
@ -709,7 +716,12 @@ public class StatisticsService {
        childTotal = childOff + childOn;
        //社工和教师注册人数
        String sql2 = "SELECT COUNT(a.id) c,a.doctor_level,IFNULL(a.on_line,0) online from base_doctor a,base_doctor_hospital h where a.id=h.doctor_code and a.del = '1' and h.del = '1' " +
        if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
            areaFilter = " and EXISTS ( select 1 from base_team_member mem where mem.doctor_code = a.id " +
                    " and mem.team_code='"+area+"' and mem.del=1 )  ";
        }
        String sql2 = "SELECT COUNT(a.id) c,a.doctor_level,IFNULL(a.on_line,0) online " +
                "from base_doctor a,base_doctor_hospital h where a.id=h.doctor_code and a.del = '1' and h.del = '1' " +areaFilter+
                "and a.doctor_level is not null and h.org_code not in ( " +
                "SELECT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org'  " +
                ") GROUP BY a.doctor_level,on_line";
@ -746,7 +758,21 @@ public class StatisticsService {
            orgCodes = orgCodes.replaceAll(",", "','");
            olderRelativeFilter = " and t2.id not in ('" + orgCodes + "') ";
        }
        sql2 = " select count(id) count,if(openid is null,0,1) online from base_patient t2 where  archive_type=3 and del=1 "+olderRelativeFilter+" GROUP BY online; ";
        if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
            //有社区只查询该社区老人的家属列表
            areaFilter = " 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)  = t3.id and r.team_code='"+area+"' ) ";
            sql2 = " select count(distinct t2.id) count,if(t2.openid is null,0,1) online " +
                    "from base_patient t2 left JOIN base_patient_family_member t1 on t1.family_member = t2.id " +
                    "left join base_patient t3 on t3.id = t1.patient   " +
                    "where t2.archive_type=3 and t2.del=1 and t3.archive_type=1 and t3.del=1 "+olderRelativeFilter+areaFilter + "GROUP BY online ";
        }else {
            sql2 = " select count(id) count,if(openid is null,0,1) online from base_patient t2 where  archive_type=3 and del=1 "+olderRelativeFilter+" GROUP BY online; ";
        }
        List<Map<String, Object>> oldFamilyList2 = jdbcTemplate.queryForList(sql2);
        for(Map<String,Object>tmp:oldFamilyList2){
            Integer num = Integer.valueOf(tmp.get("count").toString());
@ -760,9 +786,15 @@ public class StatisticsService {
        }
        olderFamilyTotal = olderFamilyOff+olderFamilyOn;
        //家属绑定老人数量
        if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
            areaFilter = " 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)  = t3.id and r.team_code='"+area+"' ) ";
        }
        sql2 = " select count(distinct t3.id) total from base_patient t2 left JOIN base_patient_family_member t1 on t1.family_member = t2.id " +
                " Inner join base_patient t3 on t3.id = t1.patient " +
                " where t2.archive_type=3 and t2.del=1 and t3.archive_type=1 and t3.del=1 ";
                " where t2.archive_type=3 and t2.del=1 and t3.archive_type=1 and t3.del=1 "+areaFilter ;
        olderFamilyBinding = jdbcTemplate.queryForObject(sql2,Integer.class);
@ -1072,9 +1104,9 @@ public class StatisticsService {
     */
    public JSONObject lifeCareAnalysis(String endDate, String area, int level) throws Exception {
        JSONObject res = new JSONObject();
        String totalIndex = "38";
        String noReplyIndex = "39";
        String inTimeIndex = "40";
        String totalIndex = "38";//已服务人数
        String noReplyIndex = "39"; //工单数 (除了已取消与未支付)
        String inTimeIndex = "48"; //工单项目数 (除了已取消与未支付)
        //老人数
        SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL);
        //工单数
@ -1300,7 +1332,7 @@ public class StatisticsService {
            if (ind.equals("46")){
                list = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(DateUtil.getStringDateShort(), DateUtil.getStringDateShort(), defalutArea, 2, "46", SaveModel.timeLevel_DDL, null, "-2,0,1", null, null, "4", "1");
            }else {
                elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, defalutArea, level, ind, SaveModel.timeLevel_DDL, null, null, areaLevel);
                list =  elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, defalutArea, level, ind, SaveModel.timeLevel_DDL, null, null, areaLevel);
            }
            for (int i = 0; i < list.size(); i++) {
                SaveModel saveModel = list.get(i);
@ -1962,7 +1994,6 @@ public class StatisticsService {
    }
    //老人整体概况
    public Map<String,Object> getOlderOverview(String currentUserRole,String  currentUserRoleLevel){
        String year = DateUtil.getNowYear()+"";
        String sql = " select * from base_older_num where type='"+currentUserRoleLevel+"' and code='"+currentUserRole+"' and year='"+year+"' ";
@ -1987,12 +2018,6 @@ public class StatisticsService {
        for (int i = 0; i < list.size(); i++) {
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            if (saveModel.getResult2().longValue() == 0 && StringUtils.isBlank(saveModel.getSlaveKey1())) {
                continue;
            }
            if ("0".equals(saveModel.getSlaveKey1())) {
                continue;
            }
            json.put("num", saveModel.getResult2().longValue());
            json.put("code", saveModel.getSlaveKey1());
            json.put("name", saveModel.getSlaveKey1Name());
@ -2074,4 +2099,240 @@ public class StatisticsService {
        res.put("wishesPeople", saveModel.getResult2().longValue());
        return res;
    }
    /**
     *
     * @param area
     * @param level 2 市  3区  4医院 5、团队 6医生
     *获取老人服务情况(助老服务、紧急救助、医生服务、监测设备)
     */
    public JSONObject getServerSituation(String area,int level) throws Exception {
        JSONObject result = new JSONObject();
        Long finishCount = 0l;
        Long unfinishCount = 0l;
        //助老服务 生活照料
        JSONObject olderServiceInfo = new JSONObject();
        olderServiceInfo.put("finish",0);
        olderServiceInfo.put("unfinish",0);
        olderServiceInfo.put("law",0);
        //紧急救助 呼叫+安防 指标67
        JSONObject emeAssistance = new JSONObject();
        emeAssistance.put("finish",0);
        emeAssistance.put("unfinish",0);
        emeAssistance.put("law",0);
        //医生服务 老人健康咨询咨询+续方
        JSONObject doctorServiceInfo = new JSONObject();
        doctorServiceInfo.put("finish",0);
        doctorServiceInfo.put("unfinish",0);
        doctorServiceInfo.put("law",0);
        //监测设备
        JSONObject monitorDevice = new JSONObject();
        monitorDevice.put("healthDevice",0);
        monitorDevice.put("securityDevice",0);
        monitorDevice.put("offlineDevice",0);
        String areaFilter = "";
        if (StringUtils.isNotBlank(area)&&2!=level){
            if (4==level){
                areaFilter = " and pack.org_code='"+area+"' ";
            }
            if (5==level){//团队
                areaFilter = " and r.team_code='"+area+"' ";
            }
        }
        String olderFilter = " 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)  = {patient} " +
                " 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') "+areaFilter+" ) ";
        //助老服务 生活照料 已完成
        String sql = " select count(life.id) from base_life_care_order life  where life.`status`=2 "+olderFilter.replace("{patient}","life.patient") +"" ;
        finishCount = jdbcTemplate.queryForObject(sql,Long.class);
        olderServiceInfo.put("finish",finishCount);
        sql = " select count(life.id) from base_life_care_order life where life.status in (1,3)  "+olderFilter.replace("{patient}","life.patient")+"  " ;
        unfinishCount = jdbcTemplate.queryForObject(sql,Long.class);
        olderServiceInfo.put("unfinish",unfinishCount);
        olderServiceInfo.put("law",commonUtil.getRangeDouble(finishCount.intValue(),(finishCount.intValue()+unfinishCount.intValue())));
        result.put("olderServiceInfo",olderServiceInfo);
        //紧急救助 呼叫+安防
        //紧急救助 已响应
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(DateUtil.getStringDateShort(), area, level, "67", SaveModel.timeLevel_DDL,"-2,0");
        SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(DateUtil.getStringDateShort(), area, level, "67", SaveModel.timeLevel_DDL,"1");
        finishCount = saveModel.getResult2().longValue();
        unfinishCount = saveModel2.getResult2().longValue();
        emeAssistance.put("finish",finishCount);
        emeAssistance.put("unfinish",unfinishCount);
        emeAssistance.put("law",commonUtil.getRangeDouble(finishCount.intValue(),(finishCount.intValue()+unfinishCount.intValue())));
        result.put("emeAssistance",emeAssistance);
        //医生服务 老人健康咨询咨询+续方
        sql = " SELECT count(p.id) FROM base_care_prescription p where p.status=2 "+olderFilter.replace("{patient}","p.patient")+"  ";
        finishCount = jdbcTemplate.queryForObject(sql,Long.class);
        sql = " SELECT count(p.id) FROM base_care_prescription p where p.status=1 "+olderFilter.replace("{patient}","p.patient")+"  ";
        unfinishCount = jdbcTemplate.queryForObject(sql,Long.class);
        //老人健康咨询咨询
        sql = " SELECT count(o.consult) FROM wlyy_consult_team o INNER JOIN base_doctor d on o.doctor = d.id " +
                " where o.status=1 and o.type = 25 AND d.del = 1  "+olderFilter.replace("{patient}","o.patient")+"  ";
        finishCount += jdbcTemplate.queryForObject(sql,Long.class);
        sql = " SELECT count(o.consult) FROM wlyy_consult_team o INNER JOIN base_doctor d on o.doctor = d.id " +
                " where o.status=0 and o.type = 25 AND d.del = 1  "+olderFilter.replace("{patient}","o.patient")+"  ";
        unfinishCount += jdbcTemplate.queryForObject(sql,Long.class);
        doctorServiceInfo.put("finish",finishCount);
        doctorServiceInfo.put("unfinish",unfinishCount);
        doctorServiceInfo.put("law",commonUtil.getRangeDouble(finishCount.intValue(),(finishCount.intValue()+unfinishCount.intValue())));
        //监测设备
        sql = " select count(distinct pd.device_sn) from wlyy_patient_device pd INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " +
                "where pd.device_type=0 "+olderFilter.replace("{patient}","pd.user");
        Long count = jdbcTemplate.queryForObject(sql,Long.class);//健康设备
        monitorDevice.put("healthDevice",count);
        sql = " select count(distinct pd.device_sn) from wlyy_patient_device pd INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " +
                "where pd.device_type=1 "+olderFilter.replace("{patient}","pd.user");
        count = jdbcTemplate.queryForObject(sql,Long.class);//安防设备
        monitorDevice.put("securityDevice",count);
        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 (dev.contact_status=0 or dev.contact_status is null ) "+olderFilter.replace("{patient}","pd.user");
        count = jdbcTemplate.queryForObject(sql,Long.class);//离线设备
        monitorDevice.put("offlineDevice",count);
        result.put("olderServiceInfo",olderServiceInfo);
        result.put("emeAssistance",emeAssistance);
        result.put("doctorServiceInfo",doctorServiceInfo);
        result.put("monitorDevice",monitorDevice);
        return result;
    }
    /**
     *获取老人服务情况(助老服务、紧急救助、医生服务 项目数量)
     */
    public JSONObject getServerSituationItem(String endDate,String area,int level) throws Exception {
        JSONObject result = new JSONObject();
        //助老服务 生活照料 (出去已取消和未支付)
        JSONArray olderServiceInfo = new JSONArray();
        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate, endDate, area, level, "48", SaveModel.timeLevel_DDL, null, null);
        for (int i = 0; (i < list.size() && i < 5); i++) {
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("num", saveModel.getResult2().longValue());
            json.put("code", saveModel.getSlaveKey1());
            json.put("name", saveModel.getSlaveKey1Name());
            olderServiceInfo.add(json);
        }
        //紧急救助 呼叫68+安防46 已取消不算
        JSONArray emeAssistance = new JSONArray();
        list = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(endDate, endDate, area, level, "46", SaveModel.timeLevel_DDL, null, "-2,0,1", null, null, "4", "1");
        for (int i = 0; i < list.size(); i++) {
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("num", saveModel.getResult2().longValue());
            json.put("code", saveModel.getSlaveKey1());
            json.put("name", saveModel.getSlaveKey1Name());
            emeAssistance.add(json);
        }
        //紧急呼叫
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "68", SaveModel.timeLevel_DDL, "-2,0,1");
        JSONObject json = new JSONObject();
        json.put("num", saveModel.getResult2().longValue());
        json.put("code", "jjhj");
        json.put("name", "紧急呼叫");
        emeAssistance.add(json);
        emeAssistance.sort(Comparator.comparing(obj -> ((JSONObject) obj).getLongValue("num")).reversed());
        //医生服务 老人健康咨询咨询+续方
        String areaFilter = "";
        if (StringUtils.isNotBlank(area)&&2!=level){
            if (4==level){
                areaFilter = " and pack.org_code='"+area+"' ";
            }
            if (5==level){//团队
                areaFilter = " and r.team_code='"+area+"' ";
            }
        }
        String olderFilter = " 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)  = {patient} " +
                " 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') "+areaFilter+" ) ";
        JSONArray doctorServiceInfo = new JSONArray();
        String sql = " SELECT count(p.id) FROM base_care_prescription p where 1=1 "+olderFilter.replace("{patient}","p.patient")+"  ";
        Long count = jdbcTemplate.queryForObject(sql,Long.class);
        json = new JSONObject();
        json.put("num", count);
        json.put("code", "cfxf");
        json.put("name", "处方续方");
        doctorServiceInfo.add(json);
        sql = " SELECT count(o.consult) FROM wlyy_consult_team o INNER JOIN base_doctor d on o.doctor = d.id " +
                " where  o.type = 25 AND d.del = 1  "+olderFilter.replace("{patient}","o.patient")+"  ";
        count = jdbcTemplate.queryForObject(sql,Long.class);
        json = new JSONObject();
        json.put("num", count);
        json.put("code", "jkzx");
        json.put("name", "健康咨询");
        doctorServiceInfo.add(json);
        result.put("olderServiceItemInfo",olderServiceInfo);
        result.put("emeAssistanceItem",emeAssistance);
        result.put("doctorServiceItemInfo",doctorServiceInfo);
        return result;
    }
    /**
     * 获取养老服务社区团队列表
     */
    public List<Map<String,Object>> getOlderTeamList() throws Exception {
        List<Map<String,Object>> teamList  = new ArrayList<>();
        String 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') ";
        teamList = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:teamList){
            //1 获取社工人数(该团队人数) 2.预警数(紧急呼叫+安防监护 已取消的不算)
            //3助老服务(该社区所有老人的生活照料总数 已取消的不算) 4物联设备(健康设备绑定量+安防设备绑定量)
            String teamName = map.get("teamName").toString();
            String teamId = map.get("teamId").toString();
            teamName = teamName.replace("团队","社区");
            if(!teamName.contains("社区")){
                teamName = teamName+"社区";
            }
            map.put("teamName",teamName);
            sql = " select count(doc.id) from base_team_member mem ,base_doctor doc where mem.team_code='"+teamId+"' " +
                    " and mem.doctor_code = doc.id and mem.del=1 and doc.del=1 ";
            Integer count = jdbcTemplate.queryForObject(sql,Integer.class);
            map.put("doctorCount",count);
            SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(DateUtil.getStringDateShort(), teamId, 5, "67", SaveModel.timeLevel_DDL,"-2,0,1");
            map.put("emeAssistanceCount",saveModel.getResult2().longValue());
            sql = " SELECT count(o.id) FROM base_life_care_order o WHERE o.status<>0 and o.status<>-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)  = o.patient " +
                    " 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("olderServiceCount",count);
            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);
        }
        return teamList;
    }
}

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

@ -5,6 +5,7 @@ import com.yihu.jw.es.util.SaveModel;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
@ -23,9 +24,21 @@ public class StatisticsUtilService {
    @Autowired
    private ElasticsearchUtil elasticsearchUtil;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public List<SaveModel> findDateAllQuotaLevel1Sort(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel) throws Exception {
        List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(startDate,endDate,area,level,index,timeLevel,interval,lowLevel,"6");
        String areaLevel="6";
        if (!index.contains(",")){
            String sqlArea = " select area_level from wlyy_job_config_new where id='"+index+"' ";
            List<String> areaLevels = jdbcTemplate.queryForList(sqlArea,String.class);
            if (areaLevels.size()>0){
                if (org.apache.commons.lang3.StringUtils.isNotBlank(areaLevels.get(0))){
                    areaLevel = areaLevels.get(0);
                }
            }
        }
        List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(startDate,endDate,area,level,index,timeLevel,interval,lowLevel,areaLevel);
        list.sort((a, b) -> Double.compare(b.getResult2(), a.getResult2()));
        return list;
    }

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

@ -36,6 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -148,7 +149,7 @@ public class PatientInfoPlatFormService {
     * @param patientType 1老人 2新生儿
     * @return
     */
    public JSONObject getPatientInfoNew(String patient,Integer patientType){
    public JSONObject getPatientInfoNew(String patient,Integer patientType) throws IllegalAccessException {
        JSONObject result = new JSONObject();
        JSONObject tmp = new JSONObject();
        BasePatientDO patientDO = patientDao.findById(patient);
@ -194,11 +195,117 @@ public class PatientInfoPlatFormService {
            //能力状况
            BaseCapacityLabelDO capacityLabelDO = capacityLabelDao.findByPatient(patient);
            result.put("capacityLabelDO",capacityLabelDO);
            result.put("capacityLabelDOStr",capacityLabelDO.getCapacityLabels());
            return result;
        }
        return null;
    }
    /**
     * 大屏获取老人紧急预警、助老服务情况
     * @return
     */
    public JSONObject getEmeAndOlderServiceInfo(String patient){
        JSONObject result = new JSONObject();
        JSONObject emeWarn = new JSONObject(); //紧急预警
        emeWarn.put("lastOlder",null);
        JSONObject olderService = new JSONObject(); //养老服务(生活照料)
        olderService.put("lastOlder",null);
        String sql = " select count(o.id) total,`status` from base_emergency_assistance_order o where patient='"+patient+"' " +
                " and `status` <>-1 " +
                "UNION ALL " +
                "select count(o.id) total,status from base_security_monitoring_order o where patient='"+patient+"' and `status` <>-1 " +
                "GROUP BY `status` ";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        Integer all=0;
        Integer unfinish=0;
        Integer finish=0;
        for (Map<String,Object> map:list){
            if ("0".equals(map.get("status").toString())){
                finish += Integer.parseInt(map.get("total").toString());
            }else {
                unfinish +=Integer.parseInt(map.get("total").toString());
            }
            all += Integer.parseInt(map.get("total").toString());
        }
        emeWarn.put("all",all);
        emeWarn.put("unfinish",unfinish);
        emeWarn.put("finish",finish);
        //获取最近一次工单
        sql = " select o.id,p.id patient,p.name,p.idcard,p.residential_area,'20' orderType,'1' type,o.serve_address,'紧急呼叫' serve_desc, " +
                " o.status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_emergency_assistance_order o INNER JOIN base_patient p on p.id = o.patient " +
                " where o.patient='"+patient+"' and o.`status` <>-1 " +
                " UNION " +
                "select o.id,p.id patient,p.name,p.idcard,p.residential_area,'22' orderType,'1' type,o.serve_address,o.serve_desc, " +
                " o.status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order o INNER JOIN base_patient p on p.id = o.patient " +
                " where o.patient='"+patient+"' and o.`status` <>-1 " +
                "ORDER BY create_time desc limit 1 ";
        list = jdbcTemplate.queryForList(sql);
        if (list.size()>0){
            emeWarn.put("lastOlder",list.get(0));
        }
        all=0;
        unfinish=0;
        finish=0;
        sql = " select count(id) as total,`status` from base_life_care_order where patient='"+patient+"' and `status`<>-1 and `status`<>0 " +
                "GROUP BY `status` ";
        list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:list){
            if ("2".equals(map.get("status").toString())){
                finish += Integer.parseInt(map.get("total").toString());
            }else {
                unfinish +=Integer.parseInt(map.get("total").toString());
            }
            all += Integer.parseInt(map.get("total").toString());
        }
        olderService.put("all",all);
        olderService.put("unfinish",unfinish);
        olderService.put("finish",finish);
        //最近一次记录
        sql = " select o.id,p.name,p.id as patient,p.idcard,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time,GROUP_CONCAT(DISTINCT fed.name SEPARATOR '、' ) serveItems " +
                " from base_life_care_order o INNER JOIN base_patient p on o.patient = p.id INNER JOIN base_life_care_fee_detail fed on o.id = fed.order_id " +
                " and fed.status<>3 where o.patient='"+patient+"' and o.`status`<>-1 and o.`status`<>0  " +
                "GROUP BY o.id ORDER BY create_time desc limit 1; ";
        list = jdbcTemplate.queryForList(sql);
        if (list.size()>0){
            olderService.put("lastOlder",list.get(0));
        }
        result.put("emeWarn",emeWarn);
        result.put("olderService",olderService);
        return result;
    }
    /**
     * 大屏获取老人健康管理
     */
    public JSONObject getPatientHealthStatistic(String patient){
        JSONObject result = new JSONObject();
        JSONObject healthIndex = new JSONObject();
        healthIndex.put("lastHealthIndex",null);
        List<Map<String,Object>> list = new ArrayList<>();
        String sql = " select count(id) total,`status` from wlyy_patient_health_index where user='"+patient+"' and type in (1,2) GROUP BY `status` ";
        list = jdbcTemplate.queryForList(sql);
        Long total = 0l;
        Long warnCount = 0l;
        for (Map<String,Object> map:list){
            if ("1".equals(map.get("status"))){
                warnCount += Long.parseLong(map.get("status").toString());
            }
            total+= Long.parseLong( map.get("total").toString());
        }
        healthIndex.put("all",total);
        healthIndex.put("warn",warnCount);
        sql = " select *,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date, " +
                " CAST(DATE_FORMAT(sort_date,'%Y-%m-%d %H:%i:%S') as char) sort_date, " +
                " CAST(DATE_FORMAT(czrq,'%Y-%m-%d %H:%i:%S') as char) czrq from wlyy_patient_health_index where user='"+patient+"' and type in (1,2) ORDER BY sort_date DESC LIMIT 1 ";
        list = jdbcTemplate.queryForList(sql);
        if (list.size()>0){
            healthIndex.put("lastHealthIndex",list.get(0));
        }
        result.put("healthIndex",healthIndex);
        return  result;
    }
    /**
     * 老人--获取签约服务

+ 3 - 3
svr/svr-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/compute/ComputeHelper.java

@ -212,7 +212,7 @@ public class ComputeHelper {
                " FROM " +
                "base_org o" +
                " WHERE "+
                " o.del='1' and o.code not in('fxty','lxyl')";
                " o.del='1' and o.code not in(SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_org')";
        if(StringUtils.isNotBlank(orgType)){
            sql += " and o.type = '"+orgType+"'";
        }
@ -240,7 +240,7 @@ public class ComputeHelper {
                " bt.org_code = o.CODE  " +
                " AND bt.del = 1  " +
                " AND o.del = 1  " +
                " AND o.CODE NOT IN ( 'fxty', 'lxyl' ) ";
                " AND o.CODE NOT IN ( SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_org' ) ";
        if(StringUtils.isNotBlank(orgType)){
            sql += " and o.type = '"+orgType+"'";
        }
@ -271,7 +271,7 @@ public class ComputeHelper {
                " WHERE bdh.doctor_code = bd.id  " +
                "AND hd.code= bdh.dept_code " +
                "AND o.code = bdh.org_code " +
                "AND bdh.del=1 and o.del=1 and o.code not in('fxty','lxyl')";
                "AND bdh.del=1 and o.del=1 and o.code not in(SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_org')";
        if(StringUtils.isNotBlank(orgType)){
            sql += " and o.type = '"+orgType+"'";
        }