Prechádzať zdrojové kódy

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

liubing 2 rokov pred
rodič
commit
4fc7b03969

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 4 - 1
common/common-entity/sql记录


+ 1 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -874,6 +874,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        loginTypeList.add("5");//支付宝登录
        loginTypeList.add("6");//第三方登录-医联康护
        loginTypeList.add("7");//家人登录
        //loginTypeList.add("8");//4k 大屏登入
    }
    public boolean setRolePhth(String loginType, OAuth2AccessToken token, String id, StringRedisTemplate redisTemplate) {

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

@ -615,9 +615,11 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "deviceinfoStatisticsNum")
    @ApiOperation(value = "获取设备数量")
    public ObjEnvelop deviceinfoStatisticsNum(@ApiParam(name = "type",value = "设备类型0健康 1安防",required = true)
                                              @RequestParam(value = "type",required = true)String type){
                                              @RequestParam(value = "type",required = true)String type,
                                              @ApiParam(name = "deviceCategory",value = "设备code",required = false)
                                              @RequestParam(value = "deviceCategory",required = false)String deviceCategory){
        try {
            JSONObject jsonObject = statisticsService.deviceinfoStatisticsNum(type);
            JSONObject jsonObject = statisticsService.deviceinfoStatisticsNum(type,deviceCategory);
            return success(jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
@ -674,6 +676,20 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "findPatientFamilyAndDoctor")
    @ApiOperation(value = "获取居民 社工,助老元,家人信息 ")
    public ObjEnvelop findPatientFamilyAndDoctor(@ApiParam(name = "patient",value = "居民code",required = true)
                                                 @RequestParam(value = "patient",required = true)String patient,
                                                 @ApiParam(name = "orderId",value = "工单Id",required = true)
                                                 @RequestParam(value = "orderId",required = true)String orderid){
        try {
            return success(statisticsService.findPatientFamilyAndDoctor(patient, orderid));
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException2(e);
        }
    }
}

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

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.message.BaseServiceNewsDao;
import com.yihu.jw.care.dao.security.EmergencyWarnDoctorResponseDao;
import com.yihu.jw.care.service.patient.CarePatientService;
import com.yihu.jw.care.service.role.RoleService;
import com.yihu.jw.care.util.CommonUtil;
@ -19,6 +20,7 @@ import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.assistance.EmergencyAssistanceDO;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.message.BaseServiceNews;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.es.es.ElasticSearchHelperUtil;
import com.yihu.jw.es.util.ElasticsearchUtil;
import com.yihu.jw.es.util.SaveModel;
@ -90,6 +92,8 @@ public class StatisticsService {
    private RoleService roleService;
    @Autowired
    private BaseServiceNewsDao baseServiceNewsDao;
    @Autowired
    private EmergencyWarnDoctorResponseDao emergencyWarnDoctorResponseDao;
    private static final String defalutArea = "330100";
@ -2238,7 +2242,6 @@ public class StatisticsService {
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        if (list.size()>0){
            //街道老人暂时写死
            list.stream().forEach(m->m.put("jd_num",32661));
            list.stream().forEach(m->m.put("zf_num",signOldNum!=null?signOldNum:0));
            list.stream().forEach(m->m.put("xzf_num",unSignOldNum!=null?unSignOldNum:0));
            return list.get(0);
@ -3740,7 +3743,7 @@ public class StatisticsService {
    //获取设备
    public JSONObject deviceinfoStatisticsNum(String type){
    public JSONObject deviceinfoStatisticsNum(String type,String deviceCategory){
        JSONObject jsonObject = new JSONObject();
@ -3763,10 +3766,15 @@ public class StatisticsService {
                "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " +
                "                where dev.contact_status=1 and pd.device_type = 0  AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
        String deviceCategorySql = "";
        if (StringUtils.isNotBlank(deviceCategory)){
            deviceCategorySql = " AND device_category= '"+deviceCategory+"' ";
        }
        //七天使用      AND device_category= 4  手表
        String sevenDayUseSql ="select count(distinct pd.device_sn) total 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 pd.device_type = "+type+"  AND EXISTS(SELECT 1 FROM device_data_push_log pl WHERE pl.device_sn = pd.device_sn  AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= pl.create_time ) AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
                "                where pd.device_type = "+type+"  AND EXISTS(SELECT 1 FROM device_data_push_log pl WHERE pl.device_sn = pd.device_sn "+deviceCategorySql+" AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= pl.create_time ) AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
        List<Integer> total = jdbcTemplate.queryForList(typeTotalSql, Integer.class);
@ -3799,6 +3807,64 @@ public class StatisticsService {
        return jdbcTemplate.queryForList(sql);
    }
    public JSONObject findPatientFamilyAndDoctor(String patient,String orderId){
        JSONObject jsonObject = new JSONObject();
        //自己
        String patientSql = " SELECT name,mobile,photo,sex, idcard FROM base_patient WHERE id = '"+patient+"'  ";
        //家属
        String familySql = "SELECT DISTINCT p.`name`,p.id,p.photo FROM base_patient p WHERE p.id IN (SELECT fm.family_member FROM base_patient_family_member fm WHERE fm.patient = '"+patient+"')";
        //社工
        String doctorSql ="SELECT DISTINCT d.`name`,d.id,d.photo FROM base_service_package_sign_record sr,base_service_package_record r,base_service_package i,base_team_member m," +
                " base_doctor d WHERE sr.id = r.sign_id AND sr.STATUS = 1 AND sr.patient = '"+patient+"' AND r.service_package_id = i.id AND i.del = 1 AND m.team_code = r.team_code " +
                " AND sr.id = r.sign_id AND m.doctor_code = d.id AND m.del = '1'";
        //助老元
        String dHelpSql = "SELECT DISTINCT ph.doctor,ph.doctor_name,d.photo FROM base_patient_helper ph INNER JOIN base_doctor d  WHERE ph.patient= '"+patient+"' AND ph.del = 1 GROUP BY ph.id";
        List<Map<String, Object>> doctorList = jdbcTemplate.queryForList(doctorSql);
        List<Map<String, Object>> familyList = jdbcTemplate.queryForList(familySql);
        List<Map<String, Object>> helperList = jdbcTemplate.queryForList(dHelpSql);
        List<Map<String, Object>> patientList = jdbcTemplate.queryForList(patientSql);
        patientList.stream().forEach(patientMap-> patientMap.put("age",IdCardUtil.getAgeForIdcard(patientMap.get("idcard").toString())));
        doctorList.stream().forEach(doctorMap->{
            doctorMap.put("statusName", "未响应");
            doctorMap.put("status", 0);
            if (emergencyWarnDoctorResponseDao.findByDoctorAndOrderId(doctorMap.get("id").toString(), orderId) != null) {
                doctorMap.put("statusName","已响应");
                doctorMap.put("status", 1);
            }
        });
        familyList.stream().forEach(familyMap->{
            SystemMessageDO byRelationCodeAndReceiver = systemMessageDao.findByRelationCodeAndReceiver(orderId, patient);
            familyMap.put("statusName", "未读");
            familyMap.put("status", 0);
            if (null!=byRelationCodeAndReceiver){
                if (StringUtils.isNotBlank(byRelationCodeAndReceiver.getIsRead())) {
                    //familyMap.put("status", Integer.parseInt(byRelationCodeAndReceiver.getIsRead()));
                    if (Integer.parseInt(byRelationCodeAndReceiver.getIsRead()) == 1) {
                        familyMap.put("statusName", "已读");
                        familyMap.put("status", 1);
                    }
                }
            }
        });
        jsonObject.put("doctors",doctorList);
        jsonObject.put("familys",familyList);
        jsonObject.put("helpers",helperList);
        jsonObject.put("patient",patientList);
        return jsonObject;
    }