Pārlūkot izejas kodu

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

 Conflicts:
	svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java
吴世龙 3 gadi atpakaļ
vecāks
revīzija
c7893e3a6e

+ 12 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/assistance/EmergencyAssistanceDO.java

@ -78,6 +78,18 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
    private double distance;//医生与患者距离 单位km
    private String otherDoctorDistance;
    //居民绑定的设备code
    private String patientDevices;
    @Transient
    public String getPatientDevices() {
        return patientDevices;
    }
    public void setPatientDevices(String patientDevices) {
        this.patientDevices = patientDevices;
    }
    /**
     * 服务小结
     */

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 40 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java


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

@ -510,6 +510,7 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "findOldOrg")
    @ApiOperation(value = "获取照护老人社区")
    public ListEnvelop findOldOrg(){

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

@ -781,11 +781,34 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        sql.append(" order by ord.create_time "+sort+" limit "+page*pageSize+","+pageSize);
        List<EmergencyAssistanceDO> resultList = jdbcTemplate.query(sql.toString(),new BeanPropertyRowMapper(EmergencyAssistanceDO.class));
        List<String> patientCodes = new ArrayList<>();
        for (EmergencyAssistanceDO obj:resultList){
            BasePatientDO patientDO = patientDao.findById(obj.getPatient());
            obj.setPatientPhoto(patientDO.getPhoto());
            obj.setPatientSex(patientDO.getSex());
            obj.setPatientAge(IdCardUtil.getAgeForIdcard(patientDO.getIdcard()));
            if(!patientCodes.contains(obj.getPatient())){
                patientCodes.add(obj.getPatient());
            }
        }
        String inSql = "";
        for (String code : patientCodes) {
            inSql += "'"+code+"',";
        }
        if(StringUtils.isNotBlank(inSql)){
            inSql = inSql.substring(0,inSql.lastIndexOf(","));
            //居民绑定的设备code
            String deviceSql = "SELECT user,GROUP_CONCAT( DISTINCT category_code SEPARATOR ',' ) code  " +
                    "from wlyy_patient_device where del = 0 and user in ("+inSql+") group by user";
            List<Map<String, Object>> list = jdbcTemplate.queryForList(deviceSql);
            for (Map<String, Object> map : list) {
                for (EmergencyAssistanceDO em : resultList) {
                    if(map.get("user").toString().equals(em.getPatient())){
                        em.setPatientDevices(map.get("code").toString());
                    }
                }
            }
        }
        return resultList;
    }

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 79 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/DetectionPlatformService.java


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

@ -437,16 +437,16 @@ public class StatisticsService {
    public PageEnvelop getUserListByPage(String type,Integer page,Integer pageSize,String name,String idCard){
        page = page>0?page-1:0;
        String selectSql = "SELECT a.id,a.name,\n" +
                "\tCASE\n" +
                "\t\ta.sex \n" +
                "\t\tWHEN 1 THEN\n" +
                "\t\t'男' \n" +
                "\t\tWHEN 2 THEN\n" +
                "\t\t'女' ELSE a.sex \n" +
                "\tEND AS sex,\n" +
                "\tTIMESTAMPDIFF(YEAR,a.birthday,now()) AS age,\n" +
                "\ta.doctor_level,a.mobile,h.org_name,a.idcard ";
        String countSql = "select count(a.id)";
                " CASE\n" +
                " a.sex \n" +
                " WHEN 1 THEN\n" +
                " '男' \n" +
                " WHEN 2 THEN\n" +
                " '女' ELSE a.sex \n" +
                " END AS sex,\n" +
                " TIMESTAMPDIFF(YEAR,a.birthday,now()) AS age,\n" +
                " a.doctor_level,a.mobile,h.org_name,a.idcard ";
        String countSql = " select count(a.id)";
        String fromSql = " from base_doctor a,base_doctor_hospital h where a.id=h.doctor_code and a.del = '1' and h.del = '1' " +
                " 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'  )  and a.doctor_level="+type+"  ";

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

@ -1100,57 +1100,56 @@ public class PatientInfoPlatFormService {
            orgCodes = orgCodes.replaceAll(",","','");
            filter = " and ord.patient not in ('"+orgCodes+"') ";
        }
        String sql1 = "SELECT\n" +
                "\t'20' AS OrderType,\n" +
                "\tp.archive_type archiveType,\n" +
                "\tp.residential_area residentialArea,\n" +
                "\tord.id,\n" +
                "\tord.patient,\n" +
                "\tp.NAME,\n" +
                "\t'紧急呼叫' AS serve_desc,\n" +
                "\tDATE_FORMAT( ord.create_time, '%Y-%m-%d %H:%i:%S' ) createTime,\n" +
                "\tord.`status`,\n" +
                "CASE\n" +
                "\t\tp.sex \n" +
                "\t\tWHEN 1 THEN\n" +
                "\t\t'男' \n" +
                "\t\tWHEN 2 THEN\n" +
                "\t\t'女' ELSE p.sex \n" +
                "\tEND AS sex,\n" +
                "\tTIMESTAMPDIFF(YEAR,p.birthday,now()) AS age \n" +
                "FROM\n" +
                "\tbase_emergency_assistance_order ord\n" +
                "\tINNER JOIN base_patient p ON ord.patient = p.id \n" +
                "\tAND p.del = 1 \n" +
                "WHERE\n" +
                "\tord.STATUS = 1 "+filter;
        String sql2 = "SELECT\n" +
                "\t\t'22' AS 'OrderType',\n" +
                "\t\tp.archive_type archiveType,\n" +
                "\t\tp.residential_area residentialArea,\n" +
                "\t\tord.id,\n" +
                "\t\tord.patient,\n" +
                "\t\tp.NAME,\n" +
                "\t\tord.serve_desc,\n" +
                "\t\tDATE_FORMAT( ord.create_time, '%Y-%m-%d %H:%i:%S' ) createTime,\n" +
                "\t\tord.`status`,\n" +
                "\tCASE\n" +
                "\t\t\tp.sex \n" +
                "\t\t\tWHEN 1 THEN\n" +
                "\t\t\t'男' \n" +
                "\t\t\tWHEN 2 THEN\n" +
                "\t\t\t'女' ELSE p.sex \n" +
                "\t\tEND AS sex,\n" +
                "\t\tTIMESTAMPDIFF(YEAR,p.birthday,now()) AS age \n" +
                "\tFROM\n" +
                "\t\tbase_security_monitoring_order ord\n" +
                "\t\tINNER JOIN base_patient p ON ord.patient = p.id \n" +
                "\t\twhere ord.status = 1"+filter;
        String sql1 = " SELECT\n" +
                " '20' AS OrderType,\n" +
                " p.archive_type archiveType,\n" +
                " p.residential_area residentialArea,\n" +
                " ord.id,\n" +
                " ord.patient,\n" +
                " p.name,\n" +
                " '紧急呼叫' AS serve_desc,\n" +
                " DATE_FORMAT( ord.create_time, '%Y-%m-%d %H:%i:%S' ) createTime,\n" +
                " ord.`status`,\n" +
                " CASE \n" +
                " p.sex \n" +
                " WHEN 1 THEN\n" +
                " '男' \n" +
                " WHEN 2 THEN\n" +
                " '女' ELSE p.sex \n" +
                " END AS sex,\n" +
                " TIMESTAMPDIFF(YEAR,p.birthday,now()) AS age \n" +
                " FROM \n" +
                " base_emergency_assistance_order ord\n" +
                " INNER JOIN base_patient p ON ord.patient = p.id \n" +
                " AND p.del = 1 \n" +
                " WHERE " +
                " ord.STATUS = 1 "+filter;
        String sql2 = " SELECT \n" +
                " '22' AS 'OrderType',\n" +
                " p.archive_type archiveType,\n" +
                " p.residential_area residentialArea,\n" +
                " ord.id,\n" +
                " ord.patient,\n" +
                " p.name,\n" +
                " ord.serve_desc,\n" +
                " DATE_FORMAT( ord.create_time, '%Y-%m-%d %H:%i:%S' ) createTime,\n" +
                " ord.`status`,\n" +
                " CASE \n" +
                "  p.sex \n" +
                "  WHEN 1 THEN\n" +
                "  '男' \n" +
                "  WHEN 2 THEN\n" +
                " '女' ELSE p.sex \n" +
                " END AS sex,\n" +
                " TIMESTAMPDIFF(YEAR,p.birthday,now()) AS age \n" +
                " FROM\n" +
                " base_security_monitoring_order ord \n" +
                " INNER JOIN base_patient p ON ord.patient = p.id \n" +
                " where ord.status = 1"+filter;
        String sql = "select * FROM (" +
                "\t"+sql1+" UNION "+sql2 +
                "\t) t order by t.createTime desc limit "+page*pageSize+","+pageSize;
                " "+sql1+" UNION "+sql2 +
                " ) t order by t.createTime desc limit "+page*pageSize+","+pageSize;
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return PageEnvelop.getSuccessListWithPage("获取成功",list,page,pageSize,this.getWarningCountByEmergencyAndSecurity(filter));
    }
@ -1174,37 +1173,37 @@ public class PatientInfoPlatFormService {
            orgCodes = orgCodes.replaceAll(",","','");
            filter = " and idx.user not in ('"+orgCodes+"') ";
        }
        String sql = "SELECT\n" +
                "\t\tidx.id,\n" +
                "\t\tidx.user,\n" +
                "\t\tidx.`name`,idx.type,\n" +
                "\t\tp.archive_type archiveType,\n" +
                "\t\tp.residential_area residentialArea,\n" +
                "\t\t'健康监测' AS serve_desc,\n" +
                "\tTIMESTAMPDIFF(YEAR,p.birthday,now()) AS age, \n" +
                "\t\tidx.czrq,\n" +
                "\t\tvalue1,\n" +
                "\t\tvalue2,\n" +
                "\t\tvalue3,\n" +
                "\t\tvalue4,\n" +
                "\t\tvalue5,\n" +
                "\t\tvalue6,\n" +
                "\t\tvalue7,\n" +
                "\t\ttype,DATE_FORMAT( idx.czrq, '%Y-%m-%d %H:%i:%S' ) createTime, \n" +
                "\tCASE\n" +
                "\t\t\tp.sex \n" +
                "\t\t\tWHEN 1 THEN\n" +
                "\t\t\t'男' \n" +
                "\t\t\tWHEN 2 THEN\n" +
                "\t\t\t'女' ELSE p.sex \n" +
                "\t\tEND AS sex\n" +
                "\tFROM\n" +
                "\t\twlyy_patient_health_index idx\n" +
                "\t\tINNER JOIN base_patient p ON idx.USER = p.id AND p.del = 1 \n" +
                "\tWHERE\n" +
                "\t\tidx.del = 1 \n" +
                "\t\tand idx.status=1 \n" +
                "\t\tAND idx.type < 3 "+filter+" ORDER By idx.czrq DESC limit "+page*pageSize+","+pageSize;
        String sql = " SELECT\n" +
                " idx.id,\n" +
                " idx.user,\n" +
                " idx.`name`,idx.type,\n" +
                " p.archive_type archiveType,\n" +
                " p.residential_area residentialArea,\n" +
                " '健康监测' AS serve_desc,\n" +
                " TIMESTAMPDIFF(YEAR,p.birthday,now()) AS age, \n" +
                " idx.czrq,\n" +
                " value1,\n" +
                " value2,\n" +
                " value3,\n" +
                " value4,\n" +
                " value5,\n" +
                " value6,\n" +
                " value7,\n" +
                " type,DATE_FORMAT( idx.czrq, '%Y-%m-%d %H:%i:%S' ) createTime, \n" +
                " CASE\n" +
                " p.sex \n" +
                " WHEN 1 THEN\n" +
                " '男' \n" +
                " WHEN 2 THEN\n" +
                " '女' ELSE p.sex \n" +
                " END AS sex\n" +
                " FROM\n" +
                " wlyy_patient_health_index idx\n" +
                " INNER JOIN base_patient p ON idx.USER = p.id AND p.del = 1 \n" +
                " WHERE\n" +
                " idx.del = 1 \n" +
                " and idx.status=1 \n" +
                " AND idx.type < 3 "+filter+" ORDER By idx.czrq DESC limit "+page*pageSize+","+pageSize;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        if(!ObjectUtils.isEmpty(list)){
            //查体征预警信息,偏高偏低
@ -1235,22 +1234,22 @@ public class PatientInfoPlatFormService {
    Long getWarningCountByEmergencyAndSecurity(String filter){
        //紧急呼救
        String emergencySql = "SELECT count( ord.id ) warningCount \n" +
                "\tFROM\n" +
                "\t\tbase_emergency_assistance_order ord\n" +
                "\t\tINNER JOIN base_patient p ON ord.patient = p.id and p.del=1  \n" +
                "\tWHERE\n" +
                "\t\t ord.STATUS = 1"+filter;
                " FROM " +
                " base_emergency_assistance_order ord " +
                " INNER JOIN base_patient p ON ord.patient = p.id and p.del=1  \n" +
                " WHERE\n" +
                "  ord.STATUS = 1"+filter;
        //安防监护
        String securitySql = "SELECT count( ord.id ) warningCount \n" +
                "\tFROM\n" +
                "\t\tbase_security_monitoring_order ord\n" +
                "\t\tINNER JOIN base_patient p ON ord.patient = p.id and p.del=1 \n" +
                "\t\tAND ord.STATUS = 1"+filter;
                " FROM\n" +
                " base_security_monitoring_order ord\n" +
                " INNER JOIN base_patient p ON ord.patient = p.id and p.del=1 \n" +
                " AND ord.STATUS = 1"+filter;
        String sqlCount = "SELECT\n" +
                "\tsum( warningCount ) warningCount\n" +
                "FROM\n" +
                "\t( " + emergencySql + " UNION ALL " + securitySql +
                ") t";
                " sum( warningCount ) warningCount\n" +
                " FROM\n" +
                " ( " + emergencySql + " UNION ALL " + securitySql +
                " ) t";
        return jdbcTemplate.queryForObject(sqlCount, Long.class);
    }
@ -1261,14 +1260,14 @@ public class PatientInfoPlatFormService {
     */
    Long getWarningCountByHealth(String filter){
        String healthSql = "SELECT\n" +
                "\tcount( idx.id ) \n" +
                "FROM\n" +
                "\twlyy_patient_health_index idx\n" +
                "\tINNER JOIN base_patient p ON idx.USER = p.id AND p.del = 1 \n" +
                "WHERE\n" +
                "\tidx.status = 1 \n" +
                "\tAND idx.del = 1 \n" +
                "\tAND idx.type < 3 \n" + filter;
                " count( idx.id ) \n" +
                " FROM\n" +
                " wlyy_patient_health_index idx\n" +
                " INNER JOIN base_patient p ON idx.USER = p.id AND p.del = 1 \n" +
                " WHERE\n" +
                " idx.status = 1 \n" +
                " AND idx.del = 1 \n" +
                " AND idx.type < 3 \n" + filter;
        return jdbcTemplate.queryForObject(healthSql, Long.class);
    }
}